初心者プログラマのひとり勉強部屋

若葉マークのプログラマー☺️

【python入門】「ゼロから作るディープラーニング」を読み始めました

こんにちは。

機械学習からディープラーニングの基礎をしようと、
TensorFlowのチュートリアルに挑戦していたところ、初めてのニューラルネットワークニューラルネットワークのレイヤーが分からずつまづきました。

www.tensorflow.org


チュートリアルではコードが全部載っていて、その通りに書けば動きますが、「この内容なに?」となった時に理論が分からなければ止まってしまいます(私の頭が)、、
他サイト様でもニューラルネットワークの図による説明はたくさんありますが、何度見ても
「畳み込み層ってなに?」「プーリング層ってなに?」「実際になにしてるの?」となります。。

そのため理論の勉強に「ゼロから作るディープラーニング」オライリー)を読書中です。
オライリーは英語の日本語訳が多く、冗長になるため避けていましたが、こちらの本は日本の方が書いた本だからか分かりやすくて感動しております。

まず機械学習ディープラーニングの違いとは何でしょうか。


機械学習
大量のデータから特徴を学習させ、その学習結果から未知のデータに対して予測することです。
(例えば私が最初にトライしていたopenCVでの顔認識は画像認識の一つで、大量の人の顔の画像データから”目”や”鼻”や”口”を画像の明暗で認識させて学習させ、新しい写真を表示させた時に学習結果(画像の明暗)から顔を認識しています。)
【python入門】画像認識盛り込んでみた - mocomoの勉強部屋


このように大量のデータ(文や画像)から特徴を集めたモデルを作成しテストデータに当てはめます。


ディープラーニング
機械学習の一つで、人間の脳のニューラルネットワークの仕組みを模倣してコンピュータで再現したものです。
ニューラルネットワークを3層以上重ねた機械学習ディープラーニングです。
機械学習では、大量のデータから学ぶ特徴を自分で設定しますが、ディープラーニングは自動で設定します。それによって精度が高くなります。

・・・と言われます。
ここでよく分からん。どうやって特徴を設定してるの?どうやって精度高めているの?となります。


第2章パーセプトロンを読み終えたところで、この何を言っていたのか分からない「層(レイヤー)」についてなるほど!と思いました。つまり論理回路を考えれば良いのですね。

詳細は本の内容ですので割愛しますが、数学に明るくない私でも分かりやすい内容で助かっております。
読み終えて理解したらまた読後の感想を記録しようと思います☺️