DEEP LEARNING: Convolutional Neural Network: AI-Anesth 4

LeNet Convolution Neural Networkの構築
全体の構造の特徴
1)入力側から出力側へ、畳み込み層(convolution)とプーリング層(pooling)がペアで複数回繰り返される。
2) 畳み込み層とプーリング層のあとに、隣接層間のユニットが全結合する全結合層(fully-connected layer)を配置する。
ここでは、以下の5つの層をシンプルに構成させる。

第一畳み込み層(convolution):
この層では、行列化したイメージデータに対して、サイズの小さいイメージ様の行列フィルタを掛け合わせる。今回、機械学習にアプライさせるMNISTの数字画像は28 x 28 = 784 数値で構成されている。
ここでは、Filter size = 5×5 のフィルター(重みに相当)とする。このフィルターを20セット
Input data channelsは、入力画像のチャンネルを指すが、カラー画像だったらRBGの3xチャンネルだけど、MNISTの白黒画像では、1チャンネル。
この小さなフィルター行列を画像行列に掛け合わせる際、フィルター移動の条件として「Stride ストライド」を決める。xy方向にひとつづつ移動させるので、(1,1)
ここでのactivation functionは y=f(x)=x: Identityとする。
第0層(Layer 0)を書き上げると、

第一プーリング層(pooling):
(2×2)のサイズで、最もの大きな画素値(max pooling)を代表値として取り出し、ダウンサイジング(その歳、ストライドは2,2)を図る。
第1層(Layer 1)を書き上げると、

第ニ畳み込み層(convolution):
Filter size = 5×5 のフィルター、ストライド(1,1)で、このフィルターを50セットとして、第2層(Layer 2)を書き上げると、

第ニプーリング層(pooling):
(2×2)のサイズで、最もの大きな画素値(max pooling)を代表値として取り出し、ダウンサイジング(その歳、ストライドは2,2)を図る。
第3層(Layer 3)を書き上げると、

第4層(デンス層):
ここでの入力ニューロン数は、20×50=1000となっている。
ReLU関数でのアクチベーションで、outputを500とする。

第5層(出力層): 活性化関数としてSoftmax関数を利用し、10個のアウトプットとする。

6層をまとめて、ハイパーパラメータを以下のように定義して、

MultiLayrConfiguration Confを上げると、

NMISTのデータのロードには、DL4Jの専用クラスMnistDataSetInteratorを用いる。

重要なハイパーパラメータも定義しておく。

最後にモデルに対してデータをアプライして、トレーニングとテスト評価を行う。

全部コードをまとめると

プログラムを実行してみると、