ゼロから始めたDeep Learning――其の壱

Pocket

はじめに

AIチームに配属されてから約10ヶ月が経ちました。巷でも機械学習やDeep Learningがブームとなっていますね。この分野は理論や数式、実装方法などが難しいため、1から始めようとすると、未経験者にとっては大きな壁となると思います。

しかし、様々なライブラリやフレームワークなどが登場したことで、未経験者でもあまり壁を感じずに、AIの世界に進出できるようになりました。「面白そうだし自分もやってみよう!」と始める方も多くなってきたのではないでしょうか?しかしながら、まずは何から始めればよいのか、どんなステップで学習していくのが効率がよいのか分からず、結局諦めてしまうケースもあると思います。

そこで、「ゼロから始めたDeep Learning」と題し、Deep Learningについて未経験だった私がAIという分野を学び始め、実際に画像判別機を開発するまでのストーリーをご紹介していきたいと思います。第1回目となる今回は、AIチームに配属されてからの学習ステップをご紹介します。

Python修得

AIチームに配属される前の私のスキルとしては、新人研修で約2ヶ月半Javaを学び、以下の過去記事にてご紹介したロボコン活動でC++での開発を約5ヶ月経験した程度で、他の言語についてはほぼ未経験でした。

そんな中、AIチームに配属された訳ですが、数値計算が非常に多いDeep Learningを始めるにあたって、まずはPythonを修得することになりました。Deep Learningを行うために、Pythonが適している理由は大きく3つあります。

  • インタプリタ(対話)型の言語である
     ⇒Deep Learningを始めると、実装→実行→修正…といったサイクルで開発することが多いため、コンパイルを必要とせず、対話的に結果を見れるPythonは、JavaやC++よりも適していると言えます。

  • 統計処理や数値計算を高速で行うライブラリが豊富
     ⇒難解な数式等を1から実装する必要がなく、既に提供されているものを使うことができるので、比較的容易に実装できます。

  • Deep Learningのフレームワークを操作できるインターフェースが提供されている
     ⇒こちらも上記と同様、Deep Learningでよく使われるフレームワークが使えるため、モデル構築など直感的に実装できます。

上記のような点で、Deep LearningにはPythonが適している訳ですが、このPythonを修得するために、私は以下のような教材を使いました。

Udemy:【世界で5万人が受講】実践 Python データサイエンス

こちらはUdemyのコースで、Jupyter Notebookを使って実際に手を動かしながら学習できるので、コースを進めて行けば実践力はつくと思います。動画を見ながらなので少し時間はかかりましたが、各ライブラリの使い方やデータ解析の基礎、そして機械学習にも触れるので幅広く学べました。

【世界で5万人が受講】実践 Python データサイエンス

書籍:入門Python3 Bill Lubanovic(著)

こちらはPython3でできることを、基礎から順に少し高度なテーマまで進んでいくような内容になっていました。未経験の私には少しハードルが高い箇所が多かったため、辞書代わりに使っていました。

【入門Python3】

  • 著者名:Bill Lubanovic(ビル・ルバノビック)
  • 書名:入門Python3
  • 出版社:株式会社オライリー・ジャパン
  • 出版年:2015年12月

TensorFlowでDeep Learningを体験

Pythonをある程度学び理解できてきたら、次はDeep Learningの世界に突入です。本来であれば、もう少しAI、すなわち機械学習やDeep Learningといった概念について勉強してから体験した方が良いのだと思うのですが、私の場合は、「とりあえず手を動かしてDeep Learningを試してみよう!」ということで、ここでもUdemyの講座を受けてみました。

Udemy:【4日で体験しよう!】 TensorFlow x Python 3 で学ぶディープラーニング体験講座

動画内で、Deep Learningで使う畳み込みやプーリング、バックプロパゲーションなどの基本的な仕組みや概念を、図解で分かりやすく説明してくれてはいますが、1回動画を見ただけではあまり理解できなかったので、繰り返し再生してみると良いかもしれません。ここで初めて、Deep Learningのチュートリアルとも言える手書き文字(MNIST)認識プログラムの動作を体験し、モデルの構築・学習方法や精度の推移などを学ぶことができました。手順も丁寧に説明されているので、まずは体験してみたい!という人にはオススメです。

【4日で体験しよう!】 TensorFlow x Python 3 で学ぶディープラーニング体験講座

Deep Learningのいろはを学ぶ

Udemyの講座でDeep Learningの世界を体験はしたのですが、Deep Learningに関する知識をより深めるために、次のステップとして、以下で紹介する書籍とオンライン教育プログラムを受けました。

書籍:ゼロから作るDeep Learning 斎藤康毅 (著)

上でご紹介したUdemyのコースでは、便利なライブラリを使っていましたが、この書籍ではそういったライブラリは使わずに、ゼロから実装していくことをコンセプトとしているため、ブラックボックスとなっていた箇所の原理が分かるようになります。私自身、最初は「よく分からないけど、Deep Learningではとりあえず層を深くしてモデルを構築すれば精度があがるんでしょ」と思っていたところもあったのですが、その理由についても言及されていたりと、未経験者でも分かるように説明されているので、とても参考になりました。また、この書籍を読み進める際に私たちのチームでは、各章ごとに学んだ内容をアウトプットし、知識の定着とチーム全体のスキルアップを図る共有会を行ったりもしました。難しい分野なだけに、ただインプットするだけではなかなか身につかない部分もあるので、ぜひ試してみてください。

【ゼロから作るDeep Learning】

  • 著者名:斎藤 康毅(さいとう こうき)
  • 書名:ゼロから作るDeep Learning -Pythonで学ぶディープラーニングの理論と実装
  • 出版社:株式会社オライリー・ジャパン
  • 出版年:2016年9月

オンラインプログラム:DL4US

DL4USとは、東大松尾研監修の、『高度なDeep Learning技術者を育成することを目的とした,アプリケーション指向の無償オンライン教育プログラム』です。(DL4USのHPより一部抜粋)

毎週、Jupyter Notebook形式の講義資料が公開され、Deep Learningの基礎から画像認識・ニューラル言語モデル・画像生成などの幅広いトピックスを、演習中心で学習することができました。課題提出などもあり、「モデルの学習状況を確認しながらパラメータの調整をし精度を上げていく」というDeep Learningでの一連の流れを経験できるので、実践力は付くと思います。また、GPUを利用した「iLect.net」というWebブラウザからアクセスできるクラウド上の開発環境が使えるので、環境構築の必要が無く、処理に時間がかかるDeep Learningにとってはよい環境でした。

※現時点では、第2期の募集は終わってしまいましたが、今後も募集はされると思います。
参考までに東大松尾研では、DL4US以外にもDeep Learning講座が無償公開されているので、詳細はこちらからご確認ください。

次回は…画像判別機の実装に挑戦!

いかがだったでしょうか?あまり各コンテンツに関する詳細は述べませんでしたが、Deep Learningについて未経験だった私がAIチームに配属され、積み重ねてきた学習ステップをご紹介しました。今回ご紹介した教材の中でも「ゼロから作るDeep Learning」と「DL4US」は特にオススメなので、少しでもこれから始める方の参考になれば幸いです。

次回は、教材等で学んだ内容を活かして、画像判別機を実装した結果をご紹介したいと思います。

お問い合わせ先

執筆者プロフィール

Kubota Wataru
Kubota Watarutdi IT技術推進部
配属後、ロボコン担当として、ETロボコン2017東京地区大会優勝・ITAロボコン2017優勝に貢献。現在は、AIチームの一員として、機械学習、ディープラーニングなどに挑戦しています。
Pocket

関連記事