ベイジアン研究所

プログラミング言語(アルゴリズム的な話が中心)やガジェットの紹介をしています。時々心理学の話も。

深層学習の勉強方法

昨今、「AI」と言う技術が流行っている。AIは深層学習と言う機械学習理論の一部から成り立っている。AIを理論的に知るためには深層学習を知る事が重要である。

ここでは深層学習の学習手順を理論と実装面から述べる。

理論編
1. 数学
もし、行列や偏微分などの数学用語に馴染みがあればこのステップは飛ばしても構わない。これらの数学用語になじみがなければ次を勉強すれば良い。

数学の分野としては、線形代数学と、(多変数)微分積分学である。

時間がある人向け

線型代数入門 (基礎数学)

線型代数入門 (基礎数学)

線形代数の基礎を勉強するのにおすすめの一冊。第1章〜第3章の行列の基本的な扱い方を勉強するだけでも効果的。第4章からのベクトル空間に関する話は興味があれば読めば良い。

微分積分 (共立講座 21世紀の数学)

微分積分 (共立講座 21世紀の数学)

本格的な微分積分学を最初に学習するのに最適な1冊。前半が1変数の微分積分、後半が多変数の微分積分に関する内容である。「偏微分」と言う概念が理解できれば良い(勾配の概念も習得できればなお良い)。

時間がない人向け
巣籠悠輔「詳解ディープラーニング第2版」マイナビ出版

本書は深層学習に関するものであるが、第1章が深層学習で使う数学的準備に当てられている。微分積分などの用語を全く聞いた事がない以外は、時間がない場合はこちらを読むだけでも良いと思う。

2. 深層学習
深層学習の理論的内容に関しては、次のいずれかの本を読むと良い。

齋藤康毅「ゼロから作るディープラーニング

ゼロから作るDeep Learning ❷ ―自然言語処理編

ゼロから作るDeep Learning ❷ ―自然言語処理編

  • 作者:斎藤 康毅
  • 発売日: 2018/07/21
  • メディア: 単行本(ソフトカバー)

本書は、scikit-learnと言うPythonライブラリを使って深層学習の実装を学習する内容であるが、理論的内容を読むだけでも非常にわかりやすくおすすめである。興味があれば実装も合わせて学習するとよい。

巣籠悠輔「詳解ディープラーニング第2版」マイナビ出版

こちらは数学の準備でも紹介した本だが、第2章以降は深層学習の理論的内容に関する解説である。深層学習ライブラリである、TensorFlow、Keras、PyTorchを使った深層学習プログラムの実装方法も解説している。理論的内容を読むだけでも十分だが、実装も興味があれば勉強すると良い。

実装編
プログラミングで深層学習プログラムを実装して、AIを作る方法の学習方法を解説する。基本的にはPythonと言うプログラミング言語を用いて深層学習ライブラリを使えば、実装して実験することは可能である。

1. プログラミング
もし、プログラミングの基礎がわかっていれば、この手順を飛ばしても良い。

プログラミングが全くわからなければC言語などのプログラミング言語から勉強するのがおすすめである(Pythonを勉強し始めるのも良いが、Pythonは内部操作が隠されており、プログラミングの基礎があまり身につかない可能性がある。)。

C言語に関しては次を読めば十分である。

柴田望洋「新・明解C言語入門編」SB creative

新・明解C言語 入門編 (明解シリーズ)

新・明解C言語 入門編 (明解シリーズ)

C言語の基礎を学習するのに最適な1冊である。本ブログでもこの本を基礎にして、C言語の解説を試みている。こちらも参考に。

camelsan.hatenablog.com

2. Python
深層学習プログラムはPythonで実装されている事が多い。そのため、Pythonに関して勉強するのは重要である。

Pythonに関しては次の本がおすすめである。

大重美幸「詳細!Python3入門ノート」ソーテック社

詳細! Python 3 入門ノート

詳細! Python 3 入門ノート

本書はPythonの基礎が述べられている。

3. 深層学習ライブラリ
深層学習の実装はPythonのライブラリというものを使う事で実装する事ができる。

深層学習ライブラリとして、PyTorchを紹介する。PyTorchはFacebookで開発された深層学習ライブラリである。

PyTochに関しては、次の公式サイトを参考にすると良い。

pytorch.org

学習方法としては、次のように勉強するのがおすすめである。

1.次のチュートリアルを学習する。

pytorch.org

2.google colaboratory上で実際に深層学習プログラムを動かしてみる。PyTorchでは、画像分類プログラムを実行する事ができる。 (チュートリアルの各ページの左上に、"Run in Google Colab"と書かれているのでここをクリックすれば良い。ただし、googleのアカウントが必要。)