全くの初心者がディープラーニングの学習を始めて、最初につまづくのは次の点だと思います。

  1. 圧倒される数式群
  2. 理解できないチャート
  3. プログラミング言語(Python)
  4. 行列(テンソル)の操作

1.圧倒される数式群

殆どのサイトがディープラーニングの説明で、数式から入っていきます。

場合によってはコレだけでディープラーニングの世界に飛び込むのを躊躇してしまうかもしれません。

でも大丈夫!
数式なんて雰囲気さえわかれば十分なのです!
ディープラーニングの応用が目的ならば、スキップして先に進みましょう!

2.理解できないチャート

shimizuがディープラーニングを調べ始めたときに、様々なチャートがでてきましたが、全く意味が理解できませんでした。

大丈夫、初心者なのだから最初は理解できないのは当然です。
学習を進めていけば理解できるようになります。

3.プログラミング言語(Python)

これはあまり問題にならないと思います。
Pythonでなくても、プログラミング言語を扱ったことがあるならば、すぐになれると思います。

4.行列(テンソル)の操作

shimizuはこれが一番大変でした。
2次元までなら脳内でイメージできますが、3次元以上になるとイメージするのが大変です。
しかも、ディープラーニングの世界では

行列を行列のまま処理する

のです。
慣れていない人にはこれが一番大変だと思います。
しかも数式と違って、先に進むためにスキップするわけにはいきません・・・

慣れるためには実践しかありません。
ぱっと見て理解できないコードに自分で手をいれて
・テンソルのサイズ(型)を確認する
・テンソルの軸を確認する
これを積み重ねて少しずつ慣れていくしかないと思います。

そのために必要なのが

実行可能なコードと詳しい解説のある入門サイト

です。

検索して出てくるものに商用や個人サイトが多いですが、
・商用サイト:集客が目的なので表層をなぞった紹介程度のものが多い
・個人サイト:個人知識の備忘・発表がメインなので初心者に役立つものは少ない
       (いきなり”フレームワーク使って〇〇してみた”等)
※あくまで個人の感想です

shimizuが色々とネットの海をさ迷って探した結果、たどりついたのがここでした。

Dive into Deep Learning

構成はこんな感じです

良い点

  1. 入門にふさわしく、概念はもちろん、基本的な行列操作の説明から始まっている
  2. 実装部分にはすべてソースコードがついている(疑問点は自分で動かして確認できる)
  3. ソースコードはgluon@mxnetを使用したものと、スクラッチビルドした2種類がある
  4. 説明はかなり丁寧
  5. 数式は多めだが、読み飛ばしてもかなり理解が進む
  6. 今も活きている公式フォーラムがある(mxnetに関してのフォーラムになるが)

悪い点

  1. 英語版しかない(日本語で書かれても理解できないことを英語で書かれても・・・w)
  2. mxnetに強く結びついているので、”TensorFlowで始めたい”初心者には向かない

shimizuはディープラーニングをkeras+CNTKで始めたのですが、

・kerasがTensorFlowと統合された > keras+CNTKではこの先はなさそう
・天邪鬼なのでTensorFlowは使いたくない
・ライブラリ生で使うより、薄皮をはさんで楽に使いたい
・gluonというライブラリがあるらしい(しかもCNTKサポート予定)
・gluonと同梱のmxnetはRNNに強いらしい(最終目的のLSTMはRNNの一種)
・gluon+CNTKの実装時期がいつまでも発表されない

でmxnetにたどり着きました。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です