ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

ディープラーニングのCNNとKerasを対応づけてみたーその1機械学習(8日追加)

2017-05-07 22:34:08 | Weblog
こんなかんじ?

このあと、model.fitする。そこで、エポック数など指定する

-----PythonのディープラーニングのライブラリKerasでのコードの説明-----

詳しく知らないので、ロリポおじさん程度の正確さで説明してみる。

【概要】

基本的には、中間層の構成

#畳み込み層
model.add(Convolution2D(32, 3, 3))
model.add(Activation("relu"))

#プーリング層
model.add(MaxPooling2D())
model.add(Dropout(0.5))

が続いている形になっている。これらについては、中間層で詳しく説明する。まずは順番に・・・


【入力層】

model = Sequential()

で、モデル領域を作成する。このmodelに付け足していく形

入力層も、まず、

  畳み込み(コンボリューション)層 Convolution2D
を追加した後
  活性化関数 Activation
を追加するが、

入力層の場合は、input_shapeというので、入力データのサイズ、チャネル数を指定する必要がある
(はじめにin_shape = (32, 32, 3)ととり、それを指定している)

【中間層】

●畳み込み層
定番のConvolutional Neural Networkをゼロから理解する
https://deepage.net/deep_learning/2016/11/07/convolutional_neural_network.html


のはじめの図、


(上記サイトより引用)

の緑のConv層が畳み込み層でConvolution2Dで指定している。

model.add(Convolution2D(32, 2, 2))

のとき、32は、緑の層がいっぱいならんでいるけど、そこが32個あるということ

そのあとの2,2は、図の灰色の部分、2X2のフィルタ(Kerasのドキュメントでは畳み込みカーネル)の縦横を指定している。

一般的な画像処理だと、たとえば、画像加工するとき

-1 0 1
-1 0 1
-1 0 1

のようなテキトーな行列をかける、あの行列の縦横の大きさを指定している
(かける値wは、ディープラーニングで学習する)

これで行列処理した後(つまり、この行列が上記サイトのConvolution層の説明のΣwx+bの部分。
上の場合は3X3のフィルタといったが、実際にはRGBの3色あるので、27個の部分になるが、
以下めんどくさいので3X3で通す。)各値を活性化関数に通す

活性化関数は、Reluが流行っているんで、
model.add(Activation("relu"))
にしている。

●プーリング層
 たとえば、いまここで
1 2 という値があったとき
7 1

1の部分の影響は小さく、7の部分は大きくしたいんだけど、
このあとつながる部分によっては(左上の)1の影響も、大きくなってしまうかもしれない
そうすると、本来小さい影響しか与えないものが、大きな作用を生み出し、
結果が頑健でなくなる。そこで、小さい値しか影響しないものは、
この段階で切り捨てたい。

その作業をするのが、プーリング層。この場合、影響の大きい7を生かしたい。
このようなのが、MaxPoolingで、
model.add(MaxPooling2D())
を実行している。

さらに頑健にする為に、適当に連結をおとしているのが、Dropout

model.add(Dropout(0.5))

で、結合をさらに適当に落とすことで、頑健に(過学習しないように)している

【出力層】

出力層の最後は、
model.add(Dense(cls_num))
で、全結合する。ここでcls_num(クラス数)とは、最終的な判別結果は、何個(のクラス)にわけるか?を指定する
YES,Noなら2こ、赤、青、黄色なら3こということになる。
で、この活性化関数は、softmaxが使われる。

その1個前は、平坦化するため
model.add(Flatten())
している

【そのあと】

これで、モデルが出来たので
コンパイルして  model.compile
学習をさせるため model.fit を実行する
  このとき、nb_epochで、エポック数を指定する
  エポック数とは訓練データを回す回数のこと
で、結果確認を  model.evaluate
で行い、保存するときは
  model.to_json    でJSON形式になり
  model.save_weights で重みを保存できる


あわせて読みたい
CNNとRNNとLSTMを図示してみる
http://blog.goo.ne.jp/xmldtp/e/18e441801d90b3c4eba917654b45748c

(ここのCNNの図と上の図は、上下が逆)

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

「カーネルおじさん」のラブロマンス小説をKindleで無料配信中

2017-05-07 18:25:37 | ネットワーク
「スパイシーでマイルドな放し飼いの愛」

どういうことなの……? 米KFCが「カーネルおじさん」のラブロマンス小説をKindleで無料配信中
http://nlab.itmedia.co.jp/nl/articles/1705/06/news022.html

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

仮想通貨ビットコインとアルトコインの動き

2017-05-07 12:32:11 | Weblog
仮想通貨ビットコイン「世界取引量7億ドル到達」第2の波か|Bitcoinとアルトコインの動き
http://virtualmoney.jp/I0001067

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

トヨタ車に10年乗ったら、アンチトヨタになった話

2017-05-07 08:31:25 | ネットワーク
告発】トヨタ車に10年乗ったら、アンチトヨタになった話【拡散希望
http://anond.hatelabo.jp/20170502233806


10年間ほぼ毎年同じ不具合が発生し、毎回「障害は発生してません」と嘘をつかれ、最終的に通信障害が発覚する。

今まで通信障害が原因だった確率は、100%!

その事を何度も指摘してるのに、全く改善しないし、再発防止策も考えないし、上辺だけの中身の無い回答を繰り返す。


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

HIVの予防薬ツルバダのジェネリック薬のホームページを作って何千人もの人を救った

2017-05-07 00:44:02 | Weblog
ホームレスの話

何千人もの人をHIV感染からを救った男は無職のホームレスだった
https://www.buzzfeed.com/bfjapannews/the-man


ちなみに、そのホームページ

I Want PrEP Now
https://www.iwantprepnow.co.uk/


PrEP=暴露前予防投薬

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする