はじめに
Webアプリケーションエンジニア6年目の私がディープラーニングに挑戦することになりましたので、やったことを記事にまとめていこうと思います。
ちなみに理系大学出身なので、線形代数や確率統計、微分積分はできるポーズを取っています。
ゼロから作る Deep Learning (期間:4週間くらい)
まず最初にO'Reilly Japan社の「ゼロから作る Deep Learning」を読了しました。
https://www.oreilly.co.jp/books/9784873117584/
一通り読んだ後、気になるところをPythonで写経した感じですが、この分野の未経験者だと一筋縄で理解できるものではないかなという印象です。
TensorFlowのチュートリアルの実施(期間:2週間くらい)
https://www.tensorflow.org
ずっと本を読んでいても進まないので、実際に使用できそうな機械学習のライブラリであるTensorFlowのチュートリアルを実施しました。
意味を調べながらビギナーとエキスパートのチュートリアルを実施しましたが理解度はまだ微妙な感じですね。
ただ、「ゼロから作る Deep Learning」が辞書代わりになったお陰で少し理解ができたかなっという印象です。
チュートリアル ビギナー
https://www.tensorflow.org/versions/master/tutorials/mnist/beginners/
チュートリアル エキスパート
https://www.tensorflow.org/tutorials/mnist/pros/#deep-mnist-for-experts
スタンフォード大学の機械学習講座
https://www.coursera.org/learn/machine-learning
無料で受けられる機械学習講座です。
Enroll Now から簡単に登録して始めることができます。
全て英語ですが動画に日本語訳の字幕を出せるので、なんとかなります!
Coursera Week1を実施(期間:1週間くらい)
メモ
-
教師あり学習と教師なし学習に大別される。
教師あり学習は例として正解がラベル付けされたデータが与えられている。- (教師あり学習の例)
腫瘍が悪性か陽性かを見分けるために教師データを用意する。 - (教師なし学習の例)
雑音と声が混ざった音声のアルゴリズムを解析し、音声のみを取り出す。
- (教師あり学習の例)
-
実装はJavaやC#、Pythonでも可能だが、Octaveが一番ラク。(Pythonでやろうとしてましたが…。)
-
目的関数(cost function)は予測値と実測値がどれくらいずれているのか、平均値を出して示す。
0であれば一致していることとなる。 -
最急降下法は目的関数の最小値を探す方法。何度も繰り返すことで少しずつ値を減らしていく。
最小値が近づくにつれて1ステップが小さくなる。 -
目的関数と最急降下法の問題がむずい。(何度も復習してやっとクリア…)
-
最後の線形代数がご褒美レベルに優しい。
-
3〜4時間程度で終わると聞いていましたが、私は8時間程かかってしまった。
容量良くやりたいけど難しい…!
Week2以降は以下にリンク。
Coursera Week2
Coursera Week3
Coursera Week4
Coursera Week5
Coursera Week6
Coursera Week7
Coursera Week8
Coursera Week9
Coursera Week10
Coursera Week11