今月の8月13日〜16日にかけて、アメリカ合衆国コロラド州デンバーにて開催された「360|iDev 2017」にて登壇してきました。
(発表中の様子)
トークのタイトルは "Deep Learning on iOS" で、スライドはこちら。
持ち時間が45分もあったので、スライドの内容プラス、トークの序盤・終盤でライブデモを2つ(配布されているモデルを使用した一般物体認識/自分で学習させたモデルを使用したロゴ認識)実施しました。
360 iDev カンファレンスについて
raywenderlich.com の毎年の恒例記事 "Top 10 iOS Conferences" に3年連続でエントリーしている、歴史と由緒あるカンファレンスです。
- https://www.raywenderlich.com/149517/top-10-ios-conferences-2017
- https://www.raywenderlich.com/127022/top-10-ios-conferences-in-2016
- https://www.raywenderlich.com/93886/top-10-ios-conferences-in-2015
参加人数は今年は250人程度とのこと。
開催場所のコロラド州デンバーは、カリフォルニアから東に行った、アメリカのちょうど真ん中あたりにあります。
登壇の経緯
相変わらず招待されたとかではなくて、4月に出したCfPが採択されての登壇でした。今年の3月にtry! Swift TokyoのLTで話した内容 *1 の完全版をどこかでやりたくて、応募しました。
ちなみに今年のCfPはいまのところ4つのカンファレンスに応募して、3勝1敗(通った: try! Swift, 360iDev, iOSDC, 落ちた: UIKonf)です。
カンファレンスの様子
スピーカーは飛行機代が出るのと、会期中のホテルはカンファレンスが用意してくれます。
開催前日の夜はスピーカーディナー。
(写ってないように見えますが、写ってます。。)
スピーカーディナーは今までちょっと苦手意識があったのですが、今回はAltConfのオーガナイザーやってて僕のことを覚えててくれた人や、日本語勉強してて僕のブログを読んでくれている(!)人、ベルリンのカンファレンスで同じくスピーカーだった人とかもいて、今回は非常に楽しめました。
会場はホテル内にあり、最大4トラックが同時進行します。
(ゲストスピーカー用の一番広い会場)
SlackにはポケモンGOチャンネルやNintendo Switchでマリオカートやるチャンネルとかもありました。
(会場から届くとこにフリーザーが出たのでみんなで狩るの図 )
ランチのシステムがユニークで、カンファレンスでもらえるバウチャー持って、フードトラックが集まる公園まで行って、自分で好きなのを注文して食べる、という形式。
観光にもなるし、会場の外の空気を吸えるので非常にいい仕組みだと思いました。
こちらはスポンサーブースでももらった、Firebaseのハンドスピナー、ホットソース、ウッドステッカー。
ハンドスピナーは(置いて回すときは)回転中もロゴが見えるし、色で個性も出しやすいので企業やサービスのグッズとしては結構いいのではないでしょうか。
僕の出番は2日目のランチ前。
(いよいよ次…)
出る直前はソワソワしましたが、話し始めたら緊張は忘れて、練習時よりもうまくしゃべれたと思います。
デモもうまくいったし(バックアッププランもたくさん用意しておいた)、終わった後「良かったよ」と声もかけてもらえました。
ただ正直な所、今回のトークの「内容」については100%最高と思える所まで持っていけたとは思ってなくて、悔やまれる部分もあります。そこらへんは結局のところ自分の準備不足、努力不足に帰結するので、今後精進します。(詳しくは後述)
まぁそんなわけでちょっと発表内容については勝手に凹んだりしてたのですが、かの世界的に有名なiOSチュートリアルサイト "raywenderlich.com" の『360|iDev 2017 Conference Highlights』(360iDevのハイライト)という記事で、なんと僕のセッションが紹介されてました。
"Can't miss"(必見!)と書いてあったので、嬉しかったです。
準備段階での悩み
今回は悩みまくりました。CfPを出した時点では、WWDC17開催前で、つまりCore MLの発表前で、Metal Performance Shaders の CNN API (MPSCNN) 使って実際にiOSデバイス上でGPU AcceleratedでCNN走らせてる人って当時はあまりいなくて、情報もものすごく少なかったので、まだ価値があったわけですよ。
それが、Core MLが発表されて、MPSCNNのレイヤーを直接たたく意味はあまりなくなってしまった。敷居がグッと下がって、注目度がバーンと上がって、プレイヤーもドッと増えて。
Core ML使うとiOS側の実装云々よりもほとんど機械学習側での知見と努力がモノを言うのだけど、Courseraのコースやっただけの自分はまだ人様に講釈するようなレベルではないし。。
悩みに悩んで、
- MPSCNNであればiOS 10でも使える
- BNNSとの使い分け
- Core ML+Visionはどこをどう簡単にしたか
- デモ
という話で構成しました。こういう切り口としては、わかりやすく、かつ理解と興味がつながっていくようにうまく説明できたと思います。
ただ、try! SwiftでのLT含め、そもそもの僕がこの分野でプライベートの時間を使って勉強したり勉強会やカンファレンスで登壇したりしてきたのは、「いろいろと革新的で面白いことができそう」というワクワク感からで、ここをほとんど「実践」できないまま登壇して、結果的に自分のトーク内容にもその「ワクワク感」があまりこめられなかったなと。理想的には、もっと色々な実案件をやったり大量のデモをつくってみたりして、そういうのを紹介しつつ、どう、おもしろそうでしょう、というところから話を展開したかった。WWDCの発表で大幅に当初の思惑が狂ったとはいえ、既存の知見をこねくりまわしてどう発表に落とし込むかに準備時間の大半を使ってしまったなと反省しています。
その後のデンバー滞在/リモートワーク
生まれて初めてのデンバー行きで、「この広いアメリカ、同じ場所をもう一度訪れるチャンスはそうそうないかもしれない」と思い、滞在を1週間ほど延長して、リモートワークしてました。これが最高に良かったのですが、facebookに日々色々と書いてたのでここでは割愛します。
(皆既日食中のデンバー)
おわりに
360iDev登壇、デンバーの旅、反省点も含め、非常に良い経験になりました。これもあって執筆が遅れていたのですが、今必死で巻き返しております・・・!
*1:LTは5分だったので、具体的なことはほとんど何も説明できなかった