omuriceman's blog

iOS / AWS / Firebase / Deep Learning を中心とした技術を発信します

DL4US第1期修了生が振り返る / 無償公開されたDeep Learning講座「DL4US」のススメ

f:id:omuriceman:20190517185432p:plain

みなさんこんにちは。omuricemanです。

先日AIで有名な東京大学 松尾研究室より「DL4US」が無償公開されるとの案内がありました。

weblab.t.u-tokyo.ac.jp

私は1年以上前の第1期DL4USが開催されたタイミングで応募・一次試験を経て3ヶ月間オンライン授業をうけて修了しましたので、そちらを振り返ってみます。

DL4USとは

ディープラーニングの基礎講座を学ぶことができるオンラインの教育プログラムです。

リンクだけまだ残っておりました。 dl4us.com

初回にもかからわずかなりの募集数だったようです。

倍率数倍の中で選ばれたのはかなり幸運でした。最終的に300名程度が講座を受けることができたようです。

一次試験の内容

numpyを使った行列の基本操作問題が20問超ありました。Before / Afterの行列が表示されていてそれを実現するためにどのようなプログラムを組むか。というものです。 プログラムを記載する行数も決まっていたのでnumpyにある行列操作の関数を使用することになっていました。 vstackなどが出てきた記憶があります。

numpy.vstack — NumPy v1.14 Manual

試験を2時間以内に完了するというものでしたが、実際は1時間もかからないで終わりました。

受講に必要な条件の知識レベルとして、

  • A Whirlwind Tour of Python(Pythonの記法などの教材)
  • 100 numpy exercises(numpyの行列操作で有名な教材)

上記の2つが提示されていました。 後者の100 numpy exercisesの難易度が結構高く、試験に出されたら困るなと思っていたのですがもっと基本的な問題でした。 100 numpy exercisesでいうと9問目くらいまでの難易度です。

github.com

github.com

どちらも面白いので是非一度手を動かしてみてください!

講座内容について

講座内容は現在無償公開されているものとほぼ変わりありません。

github.com

また隔週ごとに課題の提出と全てのLessonを終えた後に最終課題の提出がありました。隔週ごとの課題は「ディープラーニングのモデルの精度を競う」ものと最終課題は「授業で学んだ技術を利用して独自プロジェクトに取り組み、その結果をレポートしてください」というものです。

私が受講していた時は、全員にiLectというGPU付きのJupyter Notebook環境が与えられました。教材の学習と課題提出はそれを活用しながら、最終課題の際は自前のGPU環境も活用していました。

iLect | Scientific Education Service

上記の教材はGPU環境がないと学習の実行に時間がかかります。私のオススメはGoogleが無償で提供しているColaboratoryでランタイムのタイプをGPUにして実行することです。 Lesson2の教材を復習を兼ねながらコードを実行してみましたがColaboratoryでエラーは発生しませんでした。Lesson7は実行できない可能性があります。 GitHub上で教材を読みながらコードはColaboratoryで実行する。がいいですね。補足までに教材内容はすべてKerasというライブラリーを使用しています。

colab.research.google.com

それ以外の方法として、からあげさんがDockerを活用した環境構築のブログも公開していましたので紹介します。

karaage.hatenadiary.jp

理解度に関してですがLesson2のCNNまではとても理解できる!だったのですが、RNNあたりからは「少し難しい!」。Lesson4以降は「概念はわかるけど実装できない!」という状態でした。

あと記憶にあるのは、本講座の受講者が主催者側の作成したGitHubのレポジトリに対してissue上で自己紹介していくのですが、大学生や高専生も多くいて意識が高くて素晴らしいなと感じました。

懇親会

オンライン講座の修了生全員を招待した懇親会が東京大学で行われました。 私も他の方々のAIの知識具合も知りたいし、松尾豊教授に会いたい!という思いで参加してきました。

懇親会では隔週の課題で出されたCNNモデル構築の精度がよかった受講者から、精度を上げるためのチューニング方法の発表がありました。

また最終課題で提出されたディープラーニングを使ったアイデアの中から優秀作品のLTが行われました。 個人的に印象深いのが「漫画の画像からそのコマに見合った効果音を出す」という発表でした。

ちなみに私は「クレジットカード / 運転免許証 / マイナンバーカード / 保険証の写真を分類する」というMCR(マルチカードリーダー)を作りました。 全然面白くないですね(^_^;)OCRの前処理に使えたらいいなと思い作成したものです。

今もHeroku上で動いているのですが、無課金で動かしているためメモリ不足で頻繁に落ちます。そのうち皆さんにお披露目できればいいなぁ。

松尾豊教授からのありがたいお言葉

「あなた方には活躍してもらう義務がある!」

私の松尾豊教授との一方的な出会いはこちらの本からなのですが、

3年越しくらいに懇親会でお会いでき感無量でした。

今後作ってみたいもの

  • Tensorflow.jsとPWAを使ったオフラインのブラウザ環境でも動く画像認識スタンプラリー
  • Firebase ML KitとBluetooth Low Energyを活用した対戦型の画像認識ゲーム

まとめ

  • 東京大学 松尾研究室より「DL4US」が無償公開された
  • 一年前に受講した時はnumpyを使った一次試験が行われた
  • 講座内容はCNN / RNN / LSTM / VAE / GAN / DQNなどといった一通りのディープラーニングにまつわる概念を学習できる

もう少し初歩的なところから学習したい!という方はこちらの松尾豊教授の動画も見てみてくださいね!

omuriceman.hatenablog.com