adish intelligence

アディッシュ株式会社のエンジニアブログです。

ITエンジニアのためのDeepLearning #6 レポート

こんにちは。ここ最近先輩にボウリングで大敗し、ボウリング熱が再燃しているshirakiyaです。

今回は2016年7月7日に弊社セミナールームで開催されたITエンジニアのためのDeepLearning #6 - connpassのレポートです。

当日は約50人の方に参加いただきました。こういった勉強会ってあまりQ&Aの時間で質問が少ないことも多いという印象を持っていますが、今回のイベントでは多くの質問が飛び出し、参加者のみなさんの関心の度合いが高いことを感じました。

何のイベント?

イベント告知ページにあるように

深層学習やパターン認識系の本の罠と、本には載っていない貴重な情報や、数式を全く使わない考え方を初学者向けに提供しています。

としたセミナー形式のイベントです。今回は6回目ということもあり、一目にはかなりディープな内容でしたが、特に畳み込みやプーリング等、主に画像認識の畳み込みニューラルネットワークで使われる処理について、かなりわかりやすい説明がなされました。

講師紹介

f:id:tech-adish:20160707215255p:plain

Pegara, Inc. Chief Technology Officer and Co-Founder 中塚氏

オープニングで「あっきーと呼んでください」とのことなので、以下、あっきーさんでw

f:id:tech-adish:20160707214412p:plain

アジェンダ

  • DeepLearningセッション (最新の事情編)
  • アディッシュの紹介
  • ライトニングトーク
  • DeepLearningセッション (技術背景、実装、Demo編)
  • 懇親会

DeepLearning 概要編

あっきーさんの自己紹介から始まります。 Caffe等のライブラリなしで、C/C++とOpenCLを使って1からDeepLearningを実装したとのこと。すごすぎる。

  • DeepLearningあらゆる分野に広がっている
    • インターネットや開発ツールだけでなく、教育機関や防衛などにも
    • 例えば、シェールガスの埋蔵調査で、調査結果の波形出力から地下に存在するかどうか判定するなど
  • 画像認識が専攻分野
    • Googleフォトやドローンの自動航行
  • マーケット分析や音声認識

のようなお話がありました。印象的だったのは、教師データの収集が困難とのことで、ちゃんとしたものを作ろうと思ったら5,000万円位かかるし、Googleレベルは数億~数十億かかけているのでは、とのこと。

また、画像認識の例として「コンピュータが写真を理解するようになるまで」の動画が紹介されました。この動画は2015年3月のものです。

www.ted.com

この動画では、画像認識よりも1つ上のタスクである画像キャプションの自動生成について、著名なDeepLearning研究者の一人であるフェイフェイ・リーさんがTEDでお話しているものです。

今回のセミナーでは画像キャプションの自動生成の話題まで触れなかったため、参考までにこちらの東京大学の牛久先生の記事が良くまとまっていますので載せておきます。

www.slideshare.net

アディッシュ紹介

会場提供させてもらったということもあり、軽く弊社の会社紹介をさせてもらいました。 (公式Webサイトはこちら→ adish.co.jp)

f:id:tech-adish:20160707220622p:plain

↑事業紹介に続いて、

f:id:tech-adish:20160707220723p:plain

↑ 私が取り組んでいる、Web技術を用いた教師データ作成について簡単に紹介しました。
(簡単なアプリケーションを作ってデモすることを折り込んでいたのですが、開始30分前までできていなくてとても焦っていたのですが、間に合って良かったです。)
この発表の中で話した、Bing Search APIを用いた画像の収集についての詳細は 当ブログ7月7日の記事 に書きましたので、ご参考まで。

アディッシュでは、DeepLearningによる画像認識で判断できることは任せてしまい、人じゃないと判断が難しいところに集中できるようにする、という方針でDeepLearningを活用できないか、にチャレンジしています。

ライトニングトーク

f:id:tech-adish:20160708154158p:plain シリコンバレー在住の山中さんに「論文をAIに査読させる」試みについてLTしていただきました。

f:id:tech-adish:20160708154433p:plain

論文内に含まれる語の出現数からクラスタリングし、近年の論文の傾向を見るということをされていました。

個人的には、t-SNE(多次元のベクトルを二次元ベクトルに次元圧縮し、可視化するライブラリ)が便利そう(だし、社内外でプレゼンをするときにオッ、っと思わせることがでそう)なので、一度試しに使ってみようと思いました。

また、「シリコンバレーに住むメリットは?」という問いに対して「Meet up がたくさん行われている。そこで優れたエンジニアにいっぱい会えるのがいい」との質疑応答がありました。

DeepLearning 技術編

f:id:tech-adish:20160708161432p:plain

初心者がDeepLearningを始めるには、まず用語と用途を知るところから始めるのが良いと、あっきーさんは仰っていました。

今回の資料の中にも、一例ですが

  • Perceptron(パーセプトロン)
  • MLP(MultiLayer Perceptron、多層パーセプトロン)
  • DCNN(Deep Convolutional Neural Network、深層畳み込みニューラルネットワーク)
  • RNN(Recurrent Nueral Network、再帰型ニューラルネットワーク)
  • Activation Function(活性化関数)

...などの用語が出てきました。それぞれどういう意味で、何をするためのものなのかを理解していくことが大事ですね。

また、高校レベルの数学(線形代数)の知識は必須とのこと。私も最低限のところで、行列の内積計算はできるようになっていないといけないと思っています。

今回、「ハンバーガー」「ライス」「スパゲティ」「ステーキ」の画像を判別するデモを行いました。

やはり、用語と用途を知るのはとても重要だと思います。

画像認識タスクで今やデファクトスタンダードになっているDCNNでは、出現する技術要素の出現もある程度落ち着いてきたかなところで、こちらの書籍などで出現するワードを抑えられていると、かなりのレベルアップだと思います。ただ、若干難しいので、ネットの記事やスライドなどを数見ていくと、おおよそ理解が進んでいくと思います。

Q&A

Q1: DeepLearningは、AI(人工知能)の閃きなどにつながるのか?

A1: 残念ながらないです。人間が課題を与えることが必要なので、プログラムによるひらめきではない。

Q2: 初心者が始めるには何から始めたらいいか?

A2:

  1. DeepLearning周りで使われている単語の意味を知る
  2. プログラムを書いて、学習させてみる
  3. チューニングするときに試行錯誤する

という順番だったかなと思います。あっきーさんはその中で、DeepLearningライブラリを使わずに実装するという変な方向に進んでしまった、とのことですがw

まとめ

講義後の懇親会でも、あっきーさんはおそらく全員とお話されていたと思います。参加者のみなさんも水曜夜にもかかわらず遅くまで盛り上がっていました。

f:id:tech-adish:20160708160825p:plain

普段私が参加するようなWebエンジニアが集まる勉強会と違って、年齢層が広く、聞いたところによると定年退職された方も勉強会に来ていらっしゃったとか。それだけこの領域の技術に魅力を感じているひとが多いのだなと感じました。

今回は第6回でしたが、7回、8回と予定されているようですので、ご興味のある方は追ってみてはいかがでしょうか。
主催者の田中さんのイベント情報→tanaka_j_tomohiroさんのプロフィール(主催イベント一覧) - connpass