NVIDIA Deep Learning Day 2016 Spring の個人的まとめ

# イベント概要
2016/4/27開催＠ベルサール高田馬場
2016/4/4〜7＠米国 NVIDIA GPU Technology Conference 2016の情報を紹介する日本のイベント。

- Deep Learing入門
- GTC 2016の基調講演紹介
- 最新のディープラーニング情報紹介
- 最新の活用事例を共有

## イベント詳細ページ
(connpass) http://nvidia.connpass.com/event/27582/
(nvidia公式) http://www.nvidia.co.jp/object/event-jp.html?id=280

## イベント資料
<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">【本日開催 NVIDIA <a href="https://twitter.com/hashtag/DeepLearning?src=hash">#DeepLearning</a> Day 2016 Spring】ハッシュタグは <a href="https://twitter.com/hashtag/NVDLD?src=hash">#NVDLD</a>。GTC 2016の基調講演の内容、世界の最新事例をご紹介します。資料→<a href="https://t.co/9wjBF7Q8VD">https://t.co/9wjBF7Q8VD</a> <a href="https://t.co/Myk5k57rJi">pic.twitter.com/Myk5k57rJi</a></p>&mdash; NVIDIA Japan (@NVIDIAJapan) <a href="https://twitter.com/NVIDIAJapan/status/725088133633683457">2016年4月26日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

## toggetter
http://togetter.com/li/967942
<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">【本日開催 <a href="https://twitter.com/hashtag/NVDLD?src=hash">#NVDLD</a> 2016 Spring のつぶやきまとめ】ご参加された方、つぶやいてくれた方、ありがとうございます！このTogetterは誰でも編集可能ですので、自分のつぶやきの追加や気に入った表現の強調などぜひどうぞ。 <a href="https://t.co/YM3H8ShXmE">https://t.co/YM3H8ShXmE</a></p>&mdash; NVIDIA Japan (@NVIDIAJapan) <a href="https://twitter.com/NVIDIAJapan/status/725246188937576449">2016年4月27日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

# 講演内容と個人的まとめ

## 「エヌビディアが加速するディープラーニング～進化するニューラルネットワークとその開発方法について～」
by エヌビディア合同会社　プラットフォームビジネス本部　
ディープラーニングソリューションアーキテクト 兼 
CUDA エンジニア　村上 真奈さん
http://www.slideshare.net/NVIDIAJapan/ss-61344653

### まとめ
- NCCL(ニックル)はGPU間でメッセージパッシングができる
- DIGITS(デジット)でWeb UIからDeep Learningが触れる
- Deep Learningフレームワーク毎の簡単な説明が助かる
 - caffe (C++ /Python/Matlab):CNN特化、コミュニティが活発。
 - torch7 (Lua/C) 高速。アルゴリズムが豊富。
 - Theano、TensorFlow、Chainer (Python)：柔軟だが玄人向け。TensorFlowはWeb UIのTensorBoardがあり、可視化もしやすい。
- NVIDIA Deep Learning学習コースがすごい
 - Deep Learningの基本部分を無償で体験できる(何度でもOK)。
 - AWS使っているので**GPU持ってなくてもOK**
 - ハンズオンのコンテンツは**日本語化済み**
 - 各フレームワークに軽く触るところまでが無償。
 - 各フレームワークへの入門編は有償だが、AWSの利用料払うだけで試せる。 
 - 今後もコンテンツ増やすとな。

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr"><a href="https://twitter.com/hashtag/NVDLD?src=hash">#NVDLD</a> いま村上が説明している、ディープラーニング入門のハンズオンラボはこちら→ <a href="https://t.co/4sHs56ql38">https://t.co/4sHs56ql38</a> 日本語で受講できるの、やっぱりうれしいですね。</p>&mdash; Yuko Fujiyama (藤山裕子) (@yukofuji) <a href="https://twitter.com/yukofuji/status/725142830293737476">2016年4月27日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

登録までは英語なのかな。

↓デモの様子
<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">ディープラーニングの勉強がブラウザひとつで簡単に。実行結果がでてる <a href="https://twitter.com/hashtag/NVDLD?src=hash">#NVDLD</a> <a href="https://t.co/kWSSyI6G0X">pic.twitter.com/kWSSyI6G0X</a></p>&mdash; ɯsı¯ɹǝʇsɐ (@aster_ism) <a href="https://twitter.com/aster_ism/status/725146687195348992">2016年4月27日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">Jupyter notebookが開いて、そこに説明やコードも書かれてるのでそのままエンター押したらAWSで実行結果かえってきてるし、ネットワーク定義を修正して実行もできて便利感。しかも日本語。 <a href="https://twitter.com/hashtag/NVDLD?src=hash">#NVDLD</a> <a href="https://t.co/ioUlUQBlT8">pic.twitter.com/ioUlUQBlT8</a></p>&mdash; ɯsı¯ɹǝʇsɐ (@aster_ism) <a href="https://twitter.com/aster_ism/status/725145767866814468">2016年4月27日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

## 「NVIDIA Deep Learning SDK を利用した画像認識」
by エヌビディア合同会社　プラットフォームビジネス本部
シニア CUDA エンジニア　森野 慎也さん
http://www.slideshare.net/NVIDIAJapan/nvidia-deep-learning-sdk

### まとめ
- 学習済みモデルを実際に実行する時の話 ※実際に実行することを「推論」と呼んでいる
- GPU - DRAMメモリ間の転送を極力減らしてオンダイ(SRAM)で計算できるようにあれこれしてるよって話
- 混合精度演算
 - PASCALで追加 
 - 8bit整数を使うと、うまくはまれば計算効率4倍に

(↓午後の部)
##「GTC 2016 基調講演からディープラーニング関連情報のご紹介」
エヌビディア合同会社 プラットフォームビジネス本部
部長 林 憲一さん
(スライドアップされてました！調査不足すみませんm(__)m)
slideshare: http://www.slideshare.net/NVIDIAJapan/gtc-2016

pdf (slideshareのものと同じです): http://images.nvidia.com/content/APAC/events/deep-learning-day-2016-jp/NV-DL-Hayashi-Session.pdf

### まとめ
- コグニティブコンピューティングの例としてIBM Watson紹介
 - IBM Watsonは情報量の爆発的増大に対処するための１つのツール（もはや人が処理できる情報量じゃなくなりつつあるので）
- 自動運転にDeep Learingを使っているよという話
- Pascalの紹介
- GTC Japan 2016開催のお知らせ ＠ヒルトンお台場 2016 10/5(水)
 - NVIDIAのCEOも基調講演に来るとのこと

## 「GTC リピートセッション」
### P6139 Heterogeneous Learning for Multi-task Facial Analysis Using Single Deep Convolutional Network
中部大学工学部 情報工学科 講師 山下隆義さん
http://www.slideshare.net/Takayosi/deeplearningday2016spring
<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">今日の講演の資料です．<a href="https://t.co/iDY2sXjfaz">https://t.co/iDY2sXjfaz</a><br>　<a href="https://twitter.com/hashtag/NVDLD?src=hash">#NVDLD</a></p>&mdash; Takayoshi Yamashita (@takayosiy) <a href="https://twitter.com/takayosiy/status/725240915304935424">2016年4月27日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

#### まとめ
- GTCのご飯はおいしい
- ポスター発表のTop20に選ばれた
- ヘテロジーニアス・ラーニングすごい
 - １つのニューラルネットで認識も推論も両立する研究
 - 従来法に比べて、分類の精度が上がった
 - シーンラベリングは**動画から**リアルタイムに道路と歩道を綺麗に認識できる。歩行者や車両も検出できる
- 現状の応用例としては車載カメラでの歩行者検知
  - 移動方向
  - 傘差しているかどうか
- 自動車の移動する向きも車載カメラから判定できる

↓シーンラベリング
<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">カメラ映像から道路や人や建物、空の領域を認識して切り分けて表示してる。メッチャ綺麗に判定できてるやん　　<a href="https://twitter.com/hashtag/NVDLD?src=hash">#NVDLD</a> <a href="https://t.co/vgGzlif8jb">pic.twitter.com/vgGzlif8jb</a></p>&mdash; 海行プログラム (@kaigyoPG) <a href="https://twitter.com/kaigyoPG/status/725200849463431172">2016年4月27日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

### S6309 - Capitalico - Chart Pattern Matching in Financial Trading Using RNN
Alpaca Chief Engineering Officer 林 佑樹さん
(スライドはアップロードされていない模様)

#### まとめ
- トレーダー向けの傾向判定ツールを作った
- ダウントレンドの検出をするために２層LSTMを利用した
- backtesting：過去の時系列データを使ってモデルを再評価すること

### S6523 - Chainer: A Powerful, Flexible, and Intuitive Deep Learning Framework
株式会社Preferred Networks 取締役副社長 岡野原 大輔さん
http://www.slideshare.net/shoheihido/chainer-gtc-2016
<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">私が今日のNVIDIA Deep Learning Dayで話したChainerの解説スライドはこちら <a href="https://t.co/jTryniQ8CW">https://t.co/jTryniQ8CW</a> 最初の自動運転のデモやロボットの動画はこちらでみれます <a href="https://t.co/WUAxBwMBVk">https://t.co/WUAxBwMBVk</a> <a href="https://twitter.com/hashtag/NVDLD?src=hash">#NVDLD</a></p>&mdash; 岡野原 大輔 (@hillbig) <a href="https://twitter.com/hillbig/status/725233455332622336">2016年4月27日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

#### まとめ
- Chainerは柔軟！
 - 使用するニューラルネットをダイナミックに切り替えることもできる！
 - (他のフレームワークは動かしている間は１つに固定)
 - 一方のTensorFlowはスケーラビリティ重視
- Chainer使ったデモ動画(ラジコンカー)
 - https://www.youtube.com/watch?v=7A9UwxvgcV0&feature=youtu.be
 - 交通ルールを学習済みの車達の中に、ルール無視した人間操作の赤いラジコンカーを混ぜても自動運転は壊れない！
 - ※ルール無視した運転は冗談抜きでメチャクチャです

#### 後で調べる
<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">有名人の岡野原さんのお話♪( &#39;ω&#39; و(و &quot;何か新しいのがあるかなぁと思ったらこの前話題のstochastic depthが早速加わってた_(-ω-`_)⌒)_ <a href="https://twitter.com/hashtag/NVDLD?src=hash">#NVDLD</a> <a href="https://t.co/hzWs2JNJVJ">pic.twitter.com/hzWs2JNJVJ</a></p>&mdash; どんあき (@dondokono) <a href="https://twitter.com/dondokono/status/725211311886356480">2016年4月27日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

##「GTC 2016 ディープラーニング最新情報」
エヌビディア合同会社 エンタープライズビジネス事業部
DLビジネスデベロップメント シニアマネージャー　井﨑 武士 さん
(スライドアップされてました！調査不足すみませんm(__)m)
slideshare : http://www.slideshare.net/NVIDIAJapan/gtc-2016-61441440

pdf (slideshareのものと同じです) : http://images.nvidia.com/content/APAC/events/deep-learning-day-2016-jp/NV-DL-Izaki-Session.pdf

### まとめ
- 服とか鞄とかを撮影して、類似する商品を検索するサービスの話(アリババ)
 - ニラ玉(料理)の写真を元に、似たような柄の服を探せるという事例
 - <blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr"><a href="https://twitter.com/hashtag/%E3%83%87%E3%82%A3%E3%83%BC%E3%83%97%E3%83%A9%E3%83%BC%E3%83%8B%E3%83%B3%E3%82%B0?src=hash">#ディープラーニング</a> を活用したファッション系の類似デザインの検索。右側はニラ玉をもとに検索した場合なんだけど、ニラ玉っぽい柄のワンピースなどがヒット。 <a href="https://twitter.com/hashtag/NVDLD?src=hash">#NVDLD</a> <a href="https://t.co/80EZdnNjRU">pic.twitter.com/80EZdnNjRU</a></p>&mdash; Yuko Fujiyama (藤山裕子) (@yukofuji) <a href="https://twitter.com/yukofuji/status/725220077738422272">2016年4月27日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
 - 服の襟の形なんかも検出する。Deep Learingじゃないと辛いらしい
- Deep Font
 - 学習データの用意の仕方をあれこれ工夫している
 - ノイズ加えたり、変形したり
 - OCRの代替技術になるとな

- 弾性波探査データの特徴抽出の自動化
 - 石油埋まってそうな地層を探したいので、断層を検出する
 - 学習データは実データだけだと足りないのでシミュレーションデータを使ったとな
- 肌のケアのための肌年齢推定
 - シワから判定する
 - 従来手法は、顔を領域分類して、パーツ毎にシワを判定する。領域分類上手くいかないとか、照明でシワ消えるとかで難しいらしい
 - 学習データはAIが判定する国際ビューティーコンテストという名目で集めた
- ラインスタンプのおすすめ作成
 - 課題：できたてホヤホヤのスタンプを、欲しがりそうなユーザにお勧めできない(cold start問題)
 - クリックデータとか駆使してDeep Learingにかけたという話
- Baiduの音声認識
 - 損失関数にWarp-CTS(OSSとして公開中)を使っている
 - <blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr"><a href="https://twitter.com/hashtag/NVDLD?src=hash">#NVDLD</a> baiduはdeep speechでよく知られている。baiduは、損失関数としてCTCを使っている。open source化されている。<a href="https://t.co/pzCnAIvoLt">https://t.co/pzCnAIvoLt</a> で参照可能。</p>&mdash; はろ (@hidenorly) <a href="https://twitter.com/hidenorly/status/725225677981544449">2016年4月27日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
- CNN(コンボリューショナルニューラルネット)を用いた方言分類
 - 会話の音声データを２次元スペクトル画像にして、画像認識の要領で言語毎に方言を分類する
 - 会話している環境が電話なのか、屋外なのかなどでスペクトルが変わるのが面白いとな
- ビデオの音声から都市を特定する話
 - 銃声とか車の騒音とか室外機の音とかが年ごとに違うのでは？という発想
 - シドニーとか東京とかロンドンとかあちこちを学習データにしている
 - <blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">ビデオの映像を一切使わず、音声だけで都市を推定する発表。映像を使うのはみんなやってるから違うことやってやろうというチャレンジ精神が見えるな。 <a href="https://twitter.com/hashtag/NVDLD?src=hash">#NVDLD</a></p>&mdash; おーた(&#39;A`) (@43x2) <a href="https://twitter.com/43x2/status/725229224244613120">2016年4月27日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
- 3次元物体検知
 - 部屋の中の家具の配置を検知する
 - ２次元のニューラルネットだと難しいので、３次元のを使ったとな
 - 撮影する角度も重要→これもDeep Learningで決めちゃう
- ジェスチャー認識
 - 運転操作の補助に応用したいらしい
 - ジェスチャー実行中に認識したい→オンライン・ジェスチャー認識
 - アプリでジェスチャーを入力に使うなら、ジェスチャー実行中に判定し始めないと遅いとのこと(そんな無茶なと思いつつできてたすごい)
- 監視カメラの画像認識
 - 商店街みたいにごみごみした環境は従来手法だとキツイ
 - 雨や雪の日も従来手法だとキツイ
 - Deep Learingならいろいろ精度よく検出できる
 - 車の中で電話掛けているか、まで分かる
- VQA(質問に答えてくれる)システム
 - 訊いたら認識した結果を検索して答えてくれる。
 - 家の中での捜し物は便利かもしれない
 - MSCOCOの画像データを学習に利用。
 - 教師データの作成協力者の平均年齢は９歳だそうでバイアスかかってるかも
- AIによる画像合成(DCGAN)
 - ベッドルームの合成とか
 - ピンぼけ画像から元の風景を推定するとか(！)
- NumPyのGPU連携版：MinPy
 - importをminpyにするだけでいいっぽい
- 車からの景色の学習データをどう用意するか
 - ゲーム内で撮ればいいじゃない(天候自由に設定できるし)
- ニューラルネットの簡素化
 - プルーニング(pruning)
 - 冗長なニューラルネットのリンクを整理して、精度を落とさずに効率化する。
 - 削除するたびに、追加学習をする
 - 最終的にコネクション9割減でも、精度を保てるとな。