とある理系の成長記録

どこにでもいる理系学生が自己成長のために奮闘するブログ

プログラミング(ゼロから作るDeep Learning)

最初はプログラミングから手を付けていこうと思います。

使う教材はこちら!

f:id:toaru_rikei:20190313225233p:plain

ゼロから作るDeep Leaning (O'REILLY)


ディープラーニングの入門書としては、もう有名すぎるほど有名な一冊です。

とりあえず、この本を使って勉強を始めていこうと思います。

使用するプログラミング言語pythonです。

目標習得期間は1か月!

 

自己紹介にもあるとおり、現時点で僕のプログラミングスキルはほぼゼロ!!

この本でであった文法をその都度覚えながら進めていきます。

初めにこの本の目次を大まかに掲載しておきます。 

第一章 Python入門

第二章 パーセプトロン

第三章 ニューラルネットワーク

第四章 ニューラルネットワークの学習

第五章 誤差逆伝搬法

第六章 学習に関するテクニック

第七章 畳み込みニューラルネットワーク

第八章 ディープラーニング

 

 

早速本日は第二章までざっと勉強してみたのでまとめます。

 

・第一章 Python入門(学習時間10分)

 テーマの通りPythonの入門です。pcにpythonでの開発環境(Anaconda)を導入する方法から、簡単な文法の説明がありました。環境の導入のみを行い、文法は実際に使っていく過程でその都度覚えていく方針なので流し読み。とりあえずさらっと終えました。

また戻ってこようと思います。

 

・第二章 パーセプトロン(学習時間30分)

 パーセプトロンと呼ばれる、ニューラルネットのもととなる回路の説明。

入力層と出力層のみからなり、入力層の各ニューロンからの信号の総和が、出力層ニューロンに設定された閾値以上であれば出力層のニューロンもまた信号を出す(発火する)。入力層からの信号はニューロン間をつなぐ回路に設定された重みによって決定される。

 このパーセプトロンを用いれば、重みと閾値を調節することでANDゲート、NANDゲート、ORゲートを作成することができるが、XORゲートを作ることはできない。これはXORゲートは線形分離できないアルゴリズムであり、今考えているパーセプトロンでは重み付き信号の和という線形な関数で表現される処理しかできないためである。

 

しかし、この問題はパーセプトロンを複数組み合わせることで容易に解決できる。実際にパーセプトロンの組み合わせでXORゲートを作成できることを確認した。

 

このことから、基本となるパーセプトロンを組み合わせていくことでどんな演算で会っても理論上は可能であることが説明されている。

 

この章も少し計算をしながらざっと読んでみましたが今のところ理解しやすく易しい内容であるな、という印象です。pythonで与えられたコードを使って各ゲートを実際に再現しながら学習したため頭にもよく入ってきました。もう一度戻ってくるとしたら、XORゲートの実装をクイズ感覚でノーヒントでやってみたりすると面白いかもしれません。

 

それでは今日はこの辺で。明日も勉強を頑張ります!