TensorFlowとMLサービスの2016年の布教活動報告

これは[TensorFlow Advent Calendar 2016](http://qiita.com/advent-calendar/2016/tensorflow)の記事です。

といっても、皆さんみたいにTFで面白いもん作ってみた、みたいなネタがない（TF力が足りない）ので、TensorFlowとMLサービスのエバンジェリストとしての2016年の布教活動をまとめたいと思います。

ちなみに私は2012年〜2014年は[GCPのソリューションアーキテクトとしていろんなソリューションを作る](http://d.hatena.ne.jp/kazunori_279/20131207/1386385834)のがお仕事でしたが、2015年からはデベロッパー・アドボケイトとして布教活動とコミュニティ支援活動を担当しており、もうすぐ2年（Googleに入って6年）になります。

# 2016年に参加したイベント

2016年は国内外合わせておよそ120件のイベントでお話させていただいたのですが、そのほとんどがTensorFlowと[Cloud ML](https://cloud.google.com/ml/)、そしてVision APIやSpeech API等の[ML API](https://cloud.google.com/products/#machine-learning)の紹介でした。毎週、あちこちに移動してはお話していました。もはや旅芸人です。

![image](https://dl.dropboxusercontent.com/u/4207279/public/public_images/d8068c1d-66f3-8d84-05d3-06a08541d380.png)
![image](https://dl.dropboxusercontent.com/u/4207279/public/public_images/300e8319-d395-ad34-ec96-b444c98439a0.png)
Strata+Hadoop World 2016 NYC

今年セッションを持った大きなイベントだけリストアップすると、

- Strata+Hadoop World 2016 San Jose & NYC
- Google I/O 2016
- ODSC East Boston & ODSC West Santa Clara
- GOTO Amsterdam
- Hadoop Summit San Jose 2016
- MLconf Atlanta
- SACon London
- WebTech Con Munich
- GDG DevFest Hong Kong
- その他、APACや国内のイベント

などなど、海外の大規模イベントで登壇できる機会をたくさんいただいて、とてもよい経験になりました。東京で働きながらも世界あちこちの仕事に携われるフラットさが、Googleという会社のほんとすばらしいところです。

国内でもたくさんのイベントに参加しました。同じ日に4つのイベント（LinuxCon、db tech showcase、Google for Mobile、お客様向けイベント）で登壇することもありました。これはスケジュールがきびしかった。

![image](https://dl.dropboxusercontent.com/u/4207279/public/public_images/d4325813-eef8-0eaf-3e32-1e590e90e8c6.png)

引き続き来年も、[Google Cloud Next 2017 San Francisco](https://cloudnext.withgoogle.com/)やStrata+Hadoop World 2017 LondonでTensorFlowのセッションを持つ予定です。

# 2016年に作ったコンテンツ

## Cloud Vision Bot

イベントでの登壇に加えて、もうひとつのお仕事がデモやブログ等のコンテンツの作成です。Cloud Vision APIで作ったRasPiロボットカー「[Cloud Vision Bot](http://qiita.com/kazunori279/items/768c7fdf96cdf45a9d16)」は社内でも好評で、Google I/Oのセッションでは[ほとんど猿回しな様子](https://youtu.be/HpPyhsC4q9M?t=26m5s)がウケてたので結果オーライでした。その他、GCP NEXT LondonやAtmosphere MelbourneとMumbai、バルセロナのMobile World Congress等々、あちこちのイベントからお声がかかって、ボット君を抱えてデモしに行きました。

![image](https://dl.dropboxusercontent.com/u/4207279/public/public_images/d5ff8ab0-5404-0950-8f67-20b75d19aad5.png)
ボット君とのボケ・ツッコミの猿回し芸を確立

## Cloud Vision Explorer

今年3月にGCP NEXTというイベントがサンフランシスコで開催されたのですが、その2週間ほど前にUSのプロダクトマネージャから「Jeff Deanのキーノートデモ用に、Cloud Vision APIのカッコいいデモ作ってくれないか」とむちゃぶりされて、その方面でファンタスティックな能力を持つ[Reactiveさんにお願いして10日で作っていただいた](https://bita.jp/dml/reacitive_vision_explorer?1480518021257=1)のが[Cloud Vision Explorer](https://cloudplatform-jp.googleblog.com/2016/05/cloud-vision-api.html)です。

![image](https://dl.dropboxusercontent.com/u/4207279/public/public_images/fe1f6ad7-d7e3-fe7e-76ad-e0f92cf1bfd3.png)
GCP NEXT SFでのJeff Deanのキーノート

Vision APIで8万枚の画像のラベルとスコアを取得して、それをTensorFlowで実装したt-SNEで次元削減、3D空間上に表示するデモです。カッコいい。個人的にはJeff様と直接お仕事のやりとり（仕様決め、レビュー、修正など）をできたのが感無量でした。

ちなみに、このデモはGoogle Cloud Storageだけでホスティングされており、完全サーバレス。なのでメンテ不要だし、一般公開しても可用性や負荷について気にする必要がありません（デモの一般公開ってこの点が難しい）。今でも社内外でVision APIのデモに広く利用されています。

## TensorFlowできゅうりの仕分け

GCP公式ブログで今年書いた記事のうち、いちばん注目されたのは「[How a Japanese cucumber farmer is using deep learning and TensorFlow](https://cloud.google.com/blog/big-data/2016/08/how-a-japanese-cucumber-farmer-is-using-deep-learning-and-tensorflow)」（日本語版：[キュウリ農家とディープラーニングをつなぐ TensorFlow](https://cloudplatform-jp.googleblog.com/2016/08/tensorflow_5.html)）でした。

![image](https://qiita-image-store.s3.amazonaws.com/0/38290/fc45100a-7b8e-3a2a-38cd-76ccc65e2760.png)
小池さんご一家ときゅうり畑

[小池さんのブログ記事](http://workpiles.com/2016/06/ccb9-prototype2-recognition_system/)を見て、これはすごい、絶対取材に行きたい！　って思ったとき、私の頭のなかには「青空の下に広がるきゅうり畑の写真から始まるディープラーニング記事」のイメージが浮かんでいました。静岡にある小池さんのきゅうり畑に伺い、その思い通りの絵が撮れて、さらにお父さんとお母さんからもきゅうりの仕分けの難しさや新鮮さの証である表面の「イボ」について詳しくお話を聞けたのがとても嬉しかったです。このディテールとリアリティ。取材に行ってよかった。

このきゅうり記事はグローバルでバズり、[英語版のNewsweek](http://europe.newsweek.com/artificial-intelligence-cucumber-farm-raspberry-pi-495289?rm=eu)をはじめ多数の海外メディアでシェアされました。各国にいる私の同僚達も、「日本ではきゅうり農家がディープラーニング試してるんです。あれ、皆さんはまだですか」って感じで紹介してくれています。

### ディープラーニングの民主化

小池さんの事例のすばらしい点は、TensorFlowによる**ディープラーニングの民主化**を体現しているところです。

ディープラーニングを使いこなすのは簡単ではありませんが、最先端の現代数学を駆使したロケットサイエンスというわけでもありません。enakai先生も[こうつぶやいて](https://twitter.com/enakai00/status/809982034169004032)ます。

> たとえば、「ディープラーニング」に限定すれば、あれ、数学的には必要な範囲は相当せまくて、ぶっちゃけ、行列計算と微分ができればいいですよ。いまのディープラーニングの発展は、ネットワークの構造をどう作るかという工学的な様相を呈していて、数学として面白い何かって少ないきがするんです。

例えばTensorFlowの「テンソル」と言っても、つまり多次元配列のことであり、物理学のテンソルを理解する必要はありません。ちなみに、私はニューラルネットの教科書に**エントロピー**という言葉が出てきたところで「熱力学や情報理論の理解が必要なのか……シャノンの定理なんて忘れたよ……」と絶望しましたが、そんなことはありませんでした。いろいろ素人トラップが多すぎで困ります。

むしろ、最先端の研究者にとってもディープラーニングは未だに謎が多いブラックボックスで、どうやら「よく分かってない部分も多いがいろいろ試してみて良い結果が出たもん勝ち」という状況のようです。データサイエンティストでなくてもディープラーニングの簡単なモデルなら十分に使いこなせることは、[すぎゃーんさんのアイドル顔識別](http://qiita.com/sugyan/items/f89cba95d67ab297d306)や[有山さんのめがねっ娘識別](http://amzn.asia/eyKoA13)などのすばらしい事例でも示されています。

![image](https://qiita-image-store.s3.amazonaws.com/0/38290/8f309042-267b-e99c-678e-ea02a3dc59b7.png)
[すぎゃーんさんがDCGANで生成した非実在アイドル顔画像](http://memo.sugyan.com/entry/2016/10/12/084751)

どういう学習データを集められるか、小池さんの例で言うときゅうりを毎日的確に選別してくれる**お母さん**がいてくれること、そして日々の現場の課題をTensorFlowで解決しようという小池さんの発想と「やってみた」が、きゅうり事例の重要な要素となっています。今後ディープラーニングや機械学習の応用をより簡単にするサービスが提供されていけば、こうした「民主化」はより広がっていくだろうと感じています。

## TensorFlow Playgroundのすばらしさを伝えたい

もうひとつ、GCPブログ記事としては「[Understanding Neural Network with TensorFlow Playground](https://cloud.google.com/blog/big-data/2016/07/understanding-neural-networks-with-tensorflow-playground)」（日本語版：[TensorFlow Playgroundでわかるニューラルネットワーク](https://cloudplatform-jp.googleblog.com/2016/07/tensorflow-playground.html)）を書きました。

![image](https://qiita-image-store.s3.amazonaws.com/0/38290/087d59b5-d7f3-da6e-0073-6d4d75cd8e36.png)
TensorFlow Playgroundで二重らせん問題を解く

TensorFlow Playgroundって**本当に**すばらしいデモなのですが、それを使ってニューラルネットのしくみをじっくり解説している記事は見当たらない。その一方で、一般的なニューラルネットの解説記事ではまず学習アルゴリズムであるバックプロパゲーションや勾配降下法が出てくるので、その偏微分の式が出てきた時点で私のような数学苦手な読者はそっとページを閉じてるだろうな……コンバージョン率低そう……と感じていました。

![image](https://lh3.googleusercontent.com/Vzixq1FWnXGZZnTcOEk8yXa74LU4v6mfokTJQ2n0rWk2eohfDrZCHqn4BK_SUscho3RTqXfMthrhFQv5TGgg6vKRxi7zFiEkUIjo6aklgS4QvLgS1i32EQ_nKJs5Y3bZFR0PmpO_)
（図はイメージです）

そこで、学習アルゴリズムとその数式の解説をとりあえず置いといて、まずはPlaygroundを手元で実際に動かしながら直感的なとっかかりを得ることを意図したのがこの記事です。一般のITエンジニアやビジネスユーザの方に「コンピュータががんばってデータから特徴を見つけ出そうと[もがいているようす](https://goo.gl/45rBHp)」を見てもらい、ニューラルネットや機械学習が普通のプログラミングと決定的に違うところを感じてほしいと思いました。

![image](https://qiita-image-store.s3.amazonaws.com/0/38290/78de6d12-b897-7d8e-400b-d0b2f1c2180e.png)
[colah大先生のブログ](http://colah.github.io/posts/2015-01-Visualizing-Representations/)から

もうひとつ、私自身が理解に時間を要したのが、ニューラルネットにおける隠れ層の役割です。これについてはenakai先生とDavid Ha先生、それにcolah大先生から助言をいただいて、「データを特徴空間にマッピングして超平面で分割する」という隠れ層の働きをcolahさんのビジュアルと**いらすとや**の組み合わせでなんとか伝えようとしています。Googleの公式ブログでいらすとやを使えたのが嬉しかったです。

![image](https://qiita-image-store.s3.amazonaws.com/0/38290/c7266f1c-e8ce-fce7-28ae-6cbc0f65875f.png)
隠れ層ってつまりこういうことか

## TensorFlow User Groupはじまる

そして10月には、[TensorFlow User Group](https://tfug-tokyo.connpass.com/)（TFUG）がスタートしました。もともとはブレインパッドの下田さんやJSOLの中村さん、GCPのパートナーセールス担当の山本さんと、そろそろTFのユーザー会がほしいですね〜と話していたのがきっかけです。下田さんと中村さんのお二人が発起人となり、旗揚げしていただきました。

![images](https://dl.dropboxusercontent.com/u/4207279/public/public_images/Screen%20Shot%202016-12-15%20at%2011.37.55%20AM.png)

第1回、第2回ともに270名近い登録をいただく人気ぶりです。第1回ではJeff DeanとともにTensorFlowチームを立ち上げたGreg Corradoをキーノートに招き、さらにNHKさんの取材班も入って翌朝7時の「おはよう日本」で紹介されるという謎の盛り上がりを見せました。

![images](https://dl.dropboxusercontent.com/u/4207279/public/public_images/IMG_0026.JPG)

10月ごろにMountain Viewに行ってGoogle BrainのTensorFlow開発チームとミーティングしたとき、この日本でのTFUGの盛り上がりを紹介してきました。[TFUG for Biz](https://tfug-tokyo.connpass.com/event/44318/)でも発表のあったアクサさんの自動車保険事例やオークネットさんの自動車画像認識デモを紹介すると、Rajat MongaやMartin Wicke、Pete WardenといったTFチームのリーダ達が**すっごく**喜んでくれました。

### コミュニティとエコシステムで「実案件で使えるディープラーニング」に

TensorFlowのいいところは何か？　と聞かれると、スケーラビリティや分散実行環境についても説明しますが、なんといってもTFUGに代表される**ユーザーコミュニティとエコシステムの層の厚さ**をいつも強調します。そのおかげで、TFは単なるバズで終わらない**実案件で使えるディープラーニング技術**に育っていると思います。

ここ1年ほど、Googleの機械学習に興味を持っていただいたお客様に、ML APIやTFについて説明する機会がとても増えました。私の説明を聞いていただいて、これは面白い！　ぜひやろう！　と話が進んだとき、次のステップとして、お客様が持っているデータとML APIやTFで実際に何をどこまで実現できるのか、というブレストやPoCの段階に進みます。

ここでとても重要なのが、ディープラーニングを使いこなして実際のPoCまで進められる数多くのパートナー企業さんの存在と、[今年のTF Advent Calendar](http://qiita.com/advent-calendar/2016/tensorflow)のように「TFでやってみた」系の日本語記事をたくさんシェアしてくれるエンジニアの皆さんの存在です。TFUGのミートアップや論文飲み会、[Facebookグループ](https://www.facebook.com/groups/178559235921208/)では、TFやML APIで実績を持つエンジニアの皆さんが集まり、新しい手法やtips、苦労した話、うまく行かなかったケースなどがシェアされています。

![image](https://dl.dropboxusercontent.com/u/4207279/public/public_images/Screen%20Shot%202016-12-15%20at%205.28.13%20PM.png)

TFUGに集まるエンジニアも、TFのでかいモデルをぎゅっと圧縮してスマホに収めた人、自動車向けの画像認識で圧倒的に強い人、音声認識で国内第一人者な人、誰でも扱えるUIを作った人、FPGAで激速化した人、さらには金融、医療、製造、流通、マーケティングなどなど、それぞれに異なる得意分野で**ディープラーニングと戦って経験を積みながら成果を上げている**方々が集まっています。

### AIやりたい → TFパートナーが支援 → IT部門で実開発

こうしたエコシステムのおかげで、「CxOレベルでのディープラーニングへの興味関心」にとどまらず、実際に「IT部門による実開発」へと進む案件がいくつか現れています。オークネット（AUCNET IBS）さんによる[Konpeki](https://aucnet-ibs.com/konpeki/2016/10/25/konpeki-demo.html)の事例も、そうしたケースのひとつです。

![image](https://dl.dropboxusercontent.com/u/4207279/public/public_images/Screen%20Shot%202016-12-15%20at%203.27.03%20PM.png)
AUCNET IBSさんが開発したクルマ画像判定システム[Konpeki](https://aucnet-ibs.com/konpeki/2016/10/25/konpeki-demo.html)。

一年ほど前に私がオークネットさんにお伺いしてGoogleの機械学習について紹介したとき、オークネットさん自身はディープラーニングや機械学習の経験をお持ちではありませんでした。そこでまずはブレインパッドさんと吉積情報さんによるコンサルティングとPoC開発を提案し、TFの使い方やGCPと組み合わせたシステム構築の手法、転移学習による学習効率の改善などの技術導入を進めていただきました。そして現在では、オークネットさん単独で[TFによる画像認識プラットフォーム](https://aucnet-ibs.com/solution/kogane.html)の開発がぐんぐん進んでおり、まもなく大手中古車ディーラーさんでの実運用が始まります（このいきさつについてはTFUG for Bizでも紹介されましたが、来年はじめにGCPブログで詳しくレポートしたいと思います）。

この事例のように、TFコミュニティのパートナー企業の力を借りて、**一般のITエンジニアがディープラーニングを学んで使いこなしていく**という流れが始まりつつあります。こうしてコミュニティとエコシステムの力を得てTensorFlowが現場で役に立つ技術として育っていくのを見て、そのきっかけ作りに携われたのがとても嬉しい一年でした。

## 2017年もTensorFlowとMLサービスを布教します

ということで、2016年は私にとってTensorFlowとMLサービスの年でした。たくさんのエンジニアやお客様とお話して、まじすごいって思える事例も目の当たりにし、こりゃ来年ドカンとくるなという手応えを感じています。来年も引き続き布教活動に勤しんでいきたいと思います。

---

Disclaimer この記事は個人的なものです｡ここで述べられていることは私の個人的な意見に基づくものであり､私の雇用者には関係はありません｡