ディープラーニング始め方

この記事はディープラーニングをやりたいけれど、一歩踏み出せてない人の一歩を助けるような記事を目指してます (なので、プログラミングも機械学習も全く知らないという人向けの記事とはなってはいないです)。 自分はデータ分析が好きで、ディープラーニングが世間で盛り上がっていたのですが、 なかなか手をつけられていませんでした。

というのにも2つの理由がありました。

・ロジックがブラックボックスGPUが用意できない

ロジックがブラックボックス

説明ができないものを作っても利用価値がないのでは? と思ったりしてましたが、 画像処理だけでも、自分の持っている写真を分類したり、物体検出するものを作るだけでも、 面白いものが作れたというモノづくりの楽しさがあります。

GPUが用意できない

GPUに関しては、Googleが無料で提供しているものがあります。 詳しくは後ほど。

オススメの教材

深層学習(http://amzn.asia/a4ftmnj)

こちらは深層学習の理論的な背景を紹介しています。

知識としては、解析学線形代数機械学習の基礎知識があった方が望ましいです。 ※後者に関しては自分はcourseraの授業(無料)機械学習 | Coursera と「Python機械学習プログラミング」( http://amzn.asia/0Z2qcY0 )で学びました。

pythonとkerasによるディープラーニング」( http://amzn.asia/aPl06BN )

こちらは深層学習を実装する方法を紹介しています。 その際に、pythonとkerasというフレームワークを利用しています。 (フレームワークについては後ほど)。 翻訳本なので仕様がないことではないことですが、 多少わかりにくい部分もあります。 英語が得意であれば、もともとの書籍をオススメします。 自分は翻訳本を書籍で、原本を電子書籍で買ってます。 電子書籍はコードのコピペや文字検索もできるので、 使いやすかったりします。

オススメの環境

GPU

よく紹介されているGPU環境はAWSNVIDIAですが、 どちらもお金がかかる。。。 そこでGoogleColaboratoryです! こちら無料でGPUが使えるんです。 ただ制限があり、詳細はこちらで紹介されています。 大事なところとしては、タブ閉じる、時間経過で落ちてしまいます。 解決策としてはGoogleDriveなどと連携が必要です。

フレームワーク

・Keras 上記の参考書でも利用されているフレームワークで記述も書きやすく、初心者向けとなっております。 ただ、執筆時自分も参加していたKaggleの画像処理のコンテストの参考コード(Kernel)でも多く見られ、 実用的でも最初に使うフレームワークとしてオススメできると思います。

・tensorflow おそらく最も有名なディープラーニングフレームワーク。Kerasの裏でも動いてしています。 参考文献情報も豊富。

・Pytorch 後発のフレームワークながら、学術会では人気があり、新しい論文はPytorchで記述されていることも多い。

・Chainer われらが日本の誇るディープラニングフレームワーク。日本のベンチャー企業Preferred Networksが開発している。 日本では人気があるものの、世界的な利用状況を考えると、他のフレームワークの方がよいかと思われる。

この記事は自分の成長と共に更新予定となっています。 ちなみに第一稿時点では、自分も簡単な画像処理がディープラーニングでやっとできるようになった段階です。