ディープラーニングを独学で学びたい!という方、多いのではないでしょうか。
ですが参考書はたくさんあって、どれからはじめればいいのかわからない……
そんな方のために、プログラミングの学習からディープラーニングの基礎までを学んでいくのに必要な最短経路の勉強方法をご提案します!
是非この記事を参考にして、ディープラーニングの勉強をはじめてみてください!
この記事のターゲット
この記事で紹介する「ディープラーニング入門の最短経路」のターゲットは
- プログラミングをしたことが無い人
- プログラミングはしたことがあるが、Pythonは使ったことがない人
- Pythonは書けるが、ディープラーニングのことはわからない人
になります。
ディープラーニング入門のフローチャート
ここではディープラーニング入門におすすめの参考書をメインに、勉強の流れを紹介します。
「ゼロから作るDeep Learning」と「人工知能プログラミングのための数学がわかる本」の組み合わせが非常に有効なので、これプラスPythonの基礎を学ぶ本を紹介していきます。
必要になるスキル
ディープラーニングの勉強をするにあたって、現実的に必要になるのは以下の二つのスキルです。
- Python(+Numpy)
- 線形代数や統計の基礎の基礎
まずは最低限、Pythonでオブジェクト指向プログラミングができること、Numpyなどの科学計算用のライブラリが使えることなどのPythonのスキルが求められます。
実はPython以外の言語でも、Deep Learningの実装をすることは可能です。
ですが実際のところ、PythonがDeep Learning開発の標準のプログラミング言語になっています。
ですのでこれは必須だとします。
次に、線形代数や統計学の基礎知識です。
Deep Learningの最新研究を理解するには、基礎と言わず深い知識が必要になるものもあります。
ですがDeep Learning初心者のラインに到達するところまでなら、行列の計算やベイズ統計学の基礎などの部分を抑えることで対応ができるはずです。
例えば中学校や高校の数学に自信がないという人、案外多いんじゃないでしょうか。
そんな方はそういう本当の基礎知識までさかのぼって勉強をする必要があるはずです。
それでは、次の節からはDeep Learning入門の手順を紹介していきます。
ステップ1:Pythonを勉強する
プログラミングをしたことがない人はここからスタートです。
プログラミングをしたことがある人、Pythonの勉強をしっかりしたい人もここからはじめてください。
それ以外の方は次のステップへ。
まずは必要なプログラミングスキルを習得しましょう。
ここではPythonの基本文法~オブジェクト指向プログラミングまでを勉強してもらいます。
Numpyが必要だと上述しましたが、Numpyの勉強はDeep Learningの勉強の最中にやるため、ここではPythonに慣れる事を第一目標にしてみてください。
さて、このステップでおすすめしたい入門書を紹介します。
「みんなのPython」は有名なPythonの入門書です。
この本では現在主流になっているPython3*をメインにPythonの勉強ができます。
(* PythonにはVersion 2.7系と3.X系の二種類があり、現在では3.6などの3系が主流です)
プログラミングをしたことがない人でも、この本ならばPythonによるプログラミングを覚えることができるでしょう。
更に、Jupyter Notebookなどの「データサイエンス・機械学習の現場で使われている開発環境」についても紹介している点も素敵です。
「Pythonがわからない」という方はこの本を1~3ヶ月かけてPythonを習得することをおすすめします。
ステップ2:Deep Learningの基礎を勉強する
Pythonを勉強し終えた人、既にPythonを使ったことがある人はここからスタートです。
いきなりDeep Learningの勉強をするのは難しいので、
- ニューラルネットワークの基礎にあたるアルゴリズムであるパーセプトロン
- パーセプトロンを多層化した多層パーセプトロン
- 多層パーセプトロンのパラメータをデータとラベルを使って学習する方法
などを抑えてから、CNNやRNNなどに進む事になると思います。
パーセプトロンの解説からディープラーニングの初歩までを丁寧に解説している本として、以下をおすすめします。
ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装
この本は本当にディープラーニングがわからない人でも、CNNなどの有名なニューラルネットワークモデルの実装ができるレベルまで引き上げてくれます。
実はこの本の冒頭にも、Pythonの基礎文法の解説があります。
ですが実際にPythonを知らない人がこの本だけでチャレンジすると、もしかしたらPythonでつまずく人もいるかも知れません。
そのため別途Pythonの入門書をおすすめしています。
また、この本ではDeep Learningの初歩までに必要な数学的操作の解説も書かれています。
なのでもしかしたらこの本だけで最後までいけちゃう人も多いでしょう。
ですがわかったつもりになっている知識でも、案外曖昧な理解になっている人も多いです。
そんな方はこの本を勉強しながらorこの本を勉強する前に、次のステップの勉強を行ってください。
ステップ3:必要な数学を勉強する
1次関数や2次関数、微分や偏微分などのニューラルネットワーク・ディープラーニングの勉強で絶対必用になるような数学的操作の勉強には、以下の本がおすすめです。
人工知能プログラミング、と銘打っていますが、この本はDeep Learningに特化した内容になっているように感じます。
私も読んでみたのですが、本当に解説が丁寧でおすすめできる良書だと思います。
できれば「ゼロから作るDeep Learning」と一緒に買っておくことをおすすめします。
「Deep Learningという言葉に興味を持ったのに、数学は中学校のレベルから不安だ……」
という人がいたとしても、この本をしっかり勉強したのならニューラルネットワークをイチから実装する/そのアルゴリズムを理解することができるようになるでしょう。
まとめ
以上、章タイトルを並べてみると当たり前の事を書いただけのような気もしますが、現状でおすすめできるDeep Learning入門の方法(参考書)をご紹介しました。
ここで紹介した以外にも、「専門家をインストラクターのマン・ツー・マンレッスンを受ける」という方法もあります。
これは侍エンジニアで行っていますので、よければ確認してみて下さい。
Deep Learningに数学はいらない!という人もいますが、私はそんなことは無いと思います。
最低限覚えておいてほしい数学的操作はやっぱりありますので、地道に、しっかりと理解しながら勉強してもらいたいです。