はのちゃ爆発

はのちゃが技術ネタとか日常のこととかを書いてます。

ゼロから作る deep learning をやった話 (feedforce Advent Calendar 2018 2日目)

この記事は feedforce Advent Calendar 2018 2日目の記事です。

adventar.org

1日目の記事は id:sawapp の「織田信長鉄甲船に学ぶシンプルな考え方」でした。

sawapp.hateblo.jp

3年連続アドベントカレンダーで初日を担当してるの素直に凄いと思います。私もちゃんと続いていきます!

ディープラーニングをやった話ですが、あんまりディープラーニングについての話は出てきません。ご了承ください。


今年の7月31日から『ゼロから作る Deep Leaning』(以下ゼロつく) という本の読書会…勉強会?をやっていました。

当初は3, 4名程度の参加希望者が居た…のですが、いろいろあってだいたい id:pokotyamu と二人での会になっていました。

10月末ぐらいに無事最終章まで読了したので、そもそもどういうモチベーションで取り組んでいたのか、どんな感じでやっていたのかをちょっと振り返ってみようと思います。

モチベーションについて

そもそもなんでゼロつくを始めたのかという話。

私は今 EC Booster というプロダクトの開発チームに所属しています。

ecbooster.jp

この EC Booster 、裏側で広告出稿のパラメータ調整などを自動化し、効率のよい広告出稿、および運用を行なっています。

この裏側で行なっている処理に機械学習を使い、より高度な広告の最適化や、さらなる出稿処理の時間短縮を試みたい…というのが大きなモチベーションでした。

私はもともと高専時代に機械学習を(ほんの少しですが)学んだ事があり、最近のAIブームにも興味があったのですがなかなかキャッチアップする時間が取れずにいました。

そこに EC Booster も今年無事リリースされ、今後はここから更に効率的な運用、出稿を行っていきたいという流れが来て、 機械学習を学習するのに十分な理由付け、動機が出来た、という感じです。

ゼロつく本は元弊社同僚氏が Twitter でオススメしていたのもあって気になっていたのですが、 実際に購入してざっと全体を流し読みしてみた感じでも非常に分かりやすく、 基礎からディープラーニングまで一通りしっかり学べるところが良さそうだと感じたので選びました。

やったこと

やり方としては以下のような感じ。

  • まず本を読む
  • 読んでいく中でコードが出てきたら写経、実際に動かしてみる
  • 書いてある内容と実行結果について疑問点があったらお互いに確認する

そんなに変わったことをしていたわけではなく、ゼロつくを頭から一つ一つこなしていっただけではあります。

特筆するとしたら、やっていく中でわからないことは随時お互いに確認し合いながら進めた、というぐらいでしょうか…?

開催頻度は基本的に週3日、1回は1時間という枠を決めて取り組んでいました。

わかったこと

本そのものについて

やる前からなんとなく分かってはいましたが、ゼロつく本はよく出来ている本だったと思います。

前述の通り、かつてニューラルネットワークを少しかじっていたことがある私でしたが、昔学んだ時はあまりしっかりとした理解をできないまま進んでしまっていました。

今回ゼロつくを一通りやってみて、知っている知識も多くありましたが、ニューラルネットワークがどうやって動いているのか、 誤差逆伝搬の仕組みや流れ、そこから畳み込みとディープラーニングへの応用、が一つに繋がる感覚を得ることが出来ました。

これまでの「なんとなく知っている」というレベルから「ある程度理解している」という、理解度が一つ上の段階になったような、そんな感覚が得られました。

やり方について

やり方についてですが、二人での読書会でしたが、お互いがどれだけ今やっている内容を理解しているのかをしっかりと確認しながら進められたのは非常に良かった点だと思います。 人数の多い読書会だとこのあたりの理解度のすり合わせが難しくなるイメージがあるのでなおさら。

開催頻度については、頻度自体は週3日は意外とイケるラインだったという感じ…ですが、ちょっと時間の設定が良くなかったような気はしています。

基本的に月、火、木の夜7時〜8時を使っていたのですが、7時〜8時はやはりちょっと遅く、プライベートの予定で開催できなかったりといったケースが多くありました。 可能ならもう少し早い時間…7時前までの時間におさめたいところですが、なかなか。

つぎやること

今回やったゼロつくですが、実は vol.2 が出ていたりします。

ゼロから作るDeep Learning ? ―自然言語処理編

ゼロから作るDeep Learning ? ―自然言語処理編

Vol.1 は画像処理メイン、ニューラルネットワークの基礎からCNN(畳み込みニューラルネットワーク)を扱っていましたが、 Vol.2 は自然言語処理メインで、RNN(リカレントニューラルネットワーク)を扱う本になっています。 基礎的な部分は Vol.2 にも載ってはいますが、 Vol.1 をやっていたほうがいいような感じの構成になっています。

Vol.1 が終わって機械学習の基礎知識が身についたので、継続してゼロつく2の読書会も実施しています! これも同じく id:pokotyamu と一緒に2人でやっています。 他の参加者募集したんだけど誰も来てくれなかった

これが終わったら技術ブログあたりに何か記事を書きたい気持ち。目標は来年の Rubykaigi 開催までに終わらせることです。やっていき。

明日の feedforce Advent Calendar は

明日は id:critical_alert がなんかいい話を書いてくれるようです。楽しみですね! キーボードの話かな!!