前回はこちら:https://qiita.com/fs-shinji-tomiyama/items/1b3343e9861b3bbc07b3
概要
本エントリーは、早くシンギュラリティが実現して、生理食塩の水槽に脳ミソ一つでプカプカ浮かびながら、無限大の時間と空間を飛び回りたいと望んでいる筆者のポエムです。
#ディープラーニング
「シンギュラリティ = 超AI」ということで、まずは流行りのディープラーニングを実際に動かして体験してみようというのが本エントリの目的です。
#ガイド本
独学で新しい技術を学ぶ時、1冊はそのテーマの実装方法が詳細してある技術本を購入して、実際に動かして遊んでみるのが早道だというのが私の経験則です。
ディープラーニングについては、2年ぐらい前から、良い本がないかと本屋をチェックしていましたが、なかなか丁度良い感じのものがなかったのですが、昨年末にこちらの本を見つけ、今回はこの本で紹介されているサンプルをとにかく全部動かしてみることを目的にしました。
以上、ここまでテンプレ
早速動かして。。。その前にお勉強
前回のエントリで、ガイド本の1章 概要と準備でディープラーニングのための環境構築まで進みました。
早速、GPUをグリグリしたいところですが、サンプルコードを実際に動かすのは、ガイド本の4章からで、その前に2章、3章があります。
いきなり4章にいってサンプルコードを動かすこともできると思いますが、初めてのディープラーニングという方は、「2章 ネットワークの構成」はしっかり読むことをお勧めします。
図解入りで、基本的なことが解説されているので、後でサンプルコードを動かす時に「なるほどなるほど、そういうことね」になるとと思います。
ディープラーニングを机上でお勉強する際にハードルとなる行列系の数式はなく、出てきても足し算と掛け算ぐらいです。
とにかく単純な足し算と掛け算をパラメータを変えながら膨大な回数行うことがディープラーニングの実態だというのがよく理解でき、GPU使うと早くなる理由もなんとなく感じることができました。
3章は基本用語の章で、ディープラーニングの具体的な手法の解説です。
数式もだいぶ出てきますが、そこは軽く目を通すレベルで頑張って読み進みますw
最初に読む際は、ディープラーニングの学習フェーズと推測フェーズの具体的な流れを把握した上で、その際に使われるエポックとかウェートとかバリデーションとかの用語がなんとなくわかるレベルでいいと思われます。
この後行う、データの準備や、サンプルプログラムの実行を進めるにつれて、その実態がより理解出るようになりました。
そして、いよいよ4章に突入し、サンプルプログラム実行!
と行きたいのですが、4章の前半ではディープラーニングに使うデータセットの準備を行います。
公開されている画像データセットのダウンロードを行い、データ拡張を行って学習用データを増やしたりと、おそらく実戦でディープラーニングを行う時に必要となるデータの作成の基本的な流れを抑えることができたと思います。
注意点としては、画像データや、この後使うモデルなどをダウンロードすることが結構ありますが、でかいファイルが多いです。
回線状態は良いに越したことはないですね。
#そしてディープラーニング!
学習用のデータ作成ができたら、お待たせしましたディープラーニングです。
最初のお題は画像認識によるクラス分けです。
サンプルプログラムのコードベースでの解説もしており、後でもいいのでコードをしっかり読めば何をやっているか把握できると思います。
サンプルコードは書籍の巻末に全て印刷されていますが、記載されているURLからダウンロードできますので、写経する必要はありません。
実行はターミナルからのコマンド実行です。パラメータの指定などが結構長くてタイポしやすですが、記載内容をしっかり確認しながら入力すれば動くはずです。
そして、初めての学習がこちら。。。
いやー、なかなか地味ですね。
しかし、書籍内で出力されている数値の解説もあり、「ほうほう、なるほど、この数値がこうなっていくのね」というのがわかり、学習している時間中の約40分間、ディープラーニングしている気分にどっぷり浸れます。
ちなみにGPUなしだと、今時のCPUでも10時間ぐらいかかる処理だとのことです。
ということで、初めての学習を実行したところまでで、一旦終了。
続き:https://qiita.com/fs-shinji-tomiyama/items/28dd4d942cc47ae25026