こんにちは!
現役パラレルワーカー フクコです。
前回の記事↓に続き
www.fukuko-parallel-work.com
来年の2月の試験に向けてE資格試験勉強中のため
E資格とは?の記事はコチラ↓
ゼロつくシリーズでおなじみ
オーライリーから出版されている
ディープラーニングの本格的な入門書でよくおススメされる
「ゼロからつくる Deep Learning」本
この本↑を毎日5ページずつコツコツこなすと
約2か月間で今年中に終了するので
来年のE資格試験までにこれで基礎力をつけることにしました。(^^)
ついつい私は何もないとだらけてしまうので(笑)
毎日5ページ終わった後の記録とまとめを書いていこうと思います。
と、まとめに入る前に…
やる気を出すためのコトバをシェアします!!(主に私のやる気を出すために 笑)
しっかりしろ!!泣くな!!逃げるな!!
そんな行動に意味は無い!!
by じいちゃん(桑島慈悟郎)
私の大好きな「鬼滅の刃」から
じいちゃん、こと桑島慈悟郎の名言です。
ホント、泣いても、逃げても、意味がないんですよね…苦笑
私も最初の頃、
仕事がイヤでイヤで仕方なくて、
責任を誰かにおしつけて逃げたりしてましたが、
結局のところ、
当初の10倍、100倍以上重くなって自分に返ってきましたよ。笑
自分のお題としてやってくるものは、
一見、自分には無理難題に見えたとしても
おそらく
その時点で背伸びすれば何とか自分でこなせるもの
なことが多いんです。
こなしている間は、
キツイかもしれない…
泣きたくなるかもしれない…
でも、結局
自分のことは自分で完結するしかない!
そして、
やってみないとできるかどうかなんて、わからない!
だからとりあえずやってみる!!
じいちゃん、どうもありがとう! (^0^)
今日もやる気が出てきました!
よし!! 今日も頑張るぞ~! お~!!
というコトで、
私もキツイし、泣きたくなる時もありますが、今日も毎日のノルマはゼッタイこなしますよ! 笑
ではでは、いい加減まとめに入ります。笑
その前に本の目次の紹介です。
ゼロつくディープラーニングは、下記↓の合計8章で構成されています。
本の目次
- 1章 Python入門
- 2章 パーセプトロン
- 3章 ニューラルネットワーク
- 4章 ニューラルネットワークの学習
- 5章 誤差伝播法
- 6章 学習に関するテクニック
- 7章 畳み込みニューラルネットワーク
- 8章 ディープラーニング
ちなみに…
ゼロつくディープラーニングの第1章はPython入門のセクション(20ページ分)なので、
とりあえず今回私は飛ばし、第2章からまとめています。
現在は、第7章 畳み込みニューラルネットワークで~す。
第7章 畳み込みニューラルネットワーク つづき
第7章のテーマは、
畳み込みニューラルネットワーク(Convolutional Neural Network: CNN)。
7.3 プーリング層
プーリング:タテとヨコ方向の空間を小さくする演算。
プーリングの種類
1.Max Pooling:最大値
2.Average Pooling:平均
↓の図の例のように
Max Poolingの場合、
ストライドを2x2とすると、最大値は2となる。
よって、
左上の数字は、2となる。
7.3.1 プーリング層の特徴
プーリング層には以下↓のとおりの特徴がある。
- 学習するパラメータがない:プーリング層は畳み込み層と違って、学習するパラメータを持たない。
- チャンネル数は変化しない:入力データと出力データのチャンネル数は変わらない。
- 微小な位置変化に対してロバスト:入力データの小さなズレに対して、プーリングは同じような結果を返す。
7.4 Convolution / Poolingレイヤの実装
畳み込み層やPooling層の実装をPythonで行うを準備をしていく。
7.4.1 4次元配列
CNN(畳み込みニューラルネットワーク)では、
各層を流れるデータは4次元のデータ。
たとえば、
データの形状が(10, 1, 28, 28)だとすると
これは、高さ=28、横幅=28、1チャンネル、データが10個あるということ。
これをPythonで実装すると↓のとおり。
# 7.4.1 4次元配列 # 各層を流れるデータは4次元のデータ # データの形状が(10, 1, 28, 28) import numpy as np x = np.random.rand(10, 1, 28, 28)#ランダムにデータの形状が(10, 1, 28, 28)のデータを生成 x.shape
1つめのデータにアクセスする場合、↓のように実装する。
# 7.4.1 4次元配列 # 1つ目のデータにアクセスしたい場合 x[0].shape#答えは、(1, 28, 28)
1つめのデータの1チャンネルめの空間データにアクセスする場合、
↓のように実装する。
# 7.4.1 4次元配列 # 1つめのデータの1チャンネルめの空間データにアクセスする場合 x[0,0]
↑の実装の答えの例は、↓のとおり。
array([[4.32165625e-01, 9.47095032e-01, 1.86474524e-01, 3.91455977e-01,
5.12681749e-01, 6.30251318e-01, 4.76077665e-01, 1.19922228e-01,
4.56386557e-02, 8.14971582e-01, 7.93222591e-01, 4.44018125e-02,
6.83058800e-01, 2.23486033e-01, 4.19489956e-01, 6.33558600e-01,
3.78441276e-01, 2.24073290e-01, 6.92822600e-01, 7.20482083e-01,
7.25699918e-01, 9.58762238e-01, 3.60844706e-01, 3.83049058e-01,
3.58330128e-01, 8.11028049e-02, 4.02979889e-01, 7.23055847e-01],
…途中省略
[5.58920150e-01, 3.72923727e-01, 8.16057084e-01, 8.08264519e-02,
1.82472587e-01, 7.87306730e-01, 5.29459803e-01, 2.87961048e-01,
9.56106891e-01, 3.91421800e-01, 2.34442094e-01, 9.17206536e-01,
1.21508081e-01, 9.03239527e-01, 3.56627622e-01, 4.90704273e-01,
4.31934644e-01, 3.87488312e-01, 3.40747478e-01, 7.04225178e-02,
2.00487687e-01, 3.42557081e-01, 2.86660662e-02, 5.75197617e-01,
9.20747511e-01, 2.80770904e-01, 8.66959854e-01, 6.89887522e-02]])
今日のまとめ
ハイ、今日はここまで!!
今日はページ数のわりに進んでない気分…(笑)
引き続き頑張りまっす。
最後まで読んでくださり、ありがとうございます!
フクコ
ディープラーニング入門書おススメ本
E資格とは?