Forkwell Press

SHARE

5枚目の画像
Career

TensorFlow と出会った「ドルヲタ」エンジニアが1年かけてたどり着いた境地 - LINE すぎゃーん

エンジニアに役立つ情報を定期的にお届けします。

この連載では、「Forkwell Jobs」の開発にも関わるフリーランスエンジニアの後藤大輔(@idesaku)が、さまざまな企業で働くエンジニアとリレー形式で対談を行っていきます。今回のゲストは、LINE の「すぎゃーん」(@sugyan) こと杉義宏氏です。「作りたいものがあれば技術は身につく」と語るすぎゃーん氏。

「仕事外活動」を突き詰めるすぎゃーん氏の底なしのモチベーションはどこから来るのでしょうか。

今回のリレーインタビューは2部構成にてお届けします!

後編はこちらから

キャリアに大きな影響を与えた「Perl コミュニティ」

idesaku前回の kamipo さんからのご紹介で、今回のリレーインタビューは LINE の「すぎゃーん」(@sugyan)こと、杉義宏さんにお話をお伺いします。よろしくお願いします。

sugyanよろしくお願いします。ちなみに、僕、kamipo さんから、どんな感じで紹介されたのでしょうか?

idesakuえーと、「会社での仕事もさることながら、プライベートでの活動がアクティブで楽しそうな人」とのことでした。

sugyanつまり「仕事に対する意識の低い人」というわけですね?(笑)

idesakuいや、そういうことではなくて(笑)。すぎゃーんさんといえば、TensorFlow を使ったディープラーニングによる「アイドル顔識別」の第一人者であり、LINE が主催する Webアプリケーション最適化コンテスト「ISUCON」で最多優勝を誇るスゴ腕と伺っています。今日は、そのあたりの活動のことについても聞かせていただければと思っています。

ところで、Twitter などを見る限り、前回ご登場いただいた kamipo さんとは、とても仲が良さそうですね。知り合われたきっかけは何だったのでしょうか。

sugyankamipo さんを初めて知ったのは「はてブ」でしたね。よく、自分と同じ記事をブックマークしている「kamipo」という人がいて、名前はそのころから意識していました。その後、何かの勉強会で、たまたま名刺交換する機会があって「あぁ、この人が kamipo さんなんだ」と。

その後、毎年の YAPC で顔を合わせたり、同じ1982年生まれなので同年代の飲み会でもよく会ったりといった感じです。

idesaku今回も「YAPC」の名前が出てきました。Perl コミュニティの影響力、強いですね。ちなみに、すぎゃーんさんは、ずっと Web開発系のキャリアを積んでこられたのでしょうか。

sugyan新卒で入った最初の会社は SIer でした。そこから、プログラマーをやりたくてグルージェントという会社に移り、Web系や iOSアプリの開発に関わりました。そのころから YAPC のような社外のイベントや勉強会に顔を出すようになり、多くのエンジニアの方と知り合うことができました。

idesaku前職は「カヤック」でいらっしゃいましたよね。

sugyanええ。カヤックへの転職も、YAPC などを通じて知り合ったカヤックの元エンジニアの方からの影響が大きかったです。カヤックでは2年ほど働いたのですが、その後ライブドアに就職しようとしたらなくなってしまって(笑)、結果的に今いる LINE にお世話になることになりました。そろそろ5年になりますね。

idesakuこれまでのインタビューでも、勉強会やコミュニティイベントのような「社外活動」がエンジニアとしてのキャリアに大きな影響を与えるきっかけになったという方は多かったです。社外からの刺激というのは本当に大事なんですね。

sugyan勉強会やコミュニティの場を通じて、多くの社外のエンジニアの方と知り合えたのは、本当に良かったと思っています。

「自分がやらなきゃ、ほかのだれもやらない」精神

1枚目の画像

idesakuさて、すぎゃーんさんと言えば「TensorFlow による Deep Learning でのアイドル顔識別」の人というのが代名詞のようになっていますけれど、そもそも「ディープラーニング」自体に興味を持たれたのはいつごろだったんでしょうか。

sugyanGoogle が TensorFlow を初めて公開した、2015年の11月くらいですね。

idesakuなぜやろうと思われたのですか。

sugyanその時期、ちょうど「少しでも興味を持ったことは勉強してみよう」という思いが強かったんですよ。2015年10月くらいから、GitHub で毎日コードを書く、いわゆる「Write Code Every Day」みたいなことを始めていたんですが、そのネタが尽きて困りだしたころに、TensorFlow が出てきたので「新しいことに手を出したら、新しいコードが書けるかも」と思って、いじってみたというのが最初ですね。

2枚目の画像

idesakuなるほど。ディープラーニングに「画像識別」というのは、やはり相性の良い組み合わせですよね。サンプルコードでも「文字画像の識別」というのがありますし。ただ、そこに「アイドルの顔」というキャッチーな題材を持ってきたあたりが、あざとい……いや、うまいと思っていました(笑)。

ただ、すぎゃーんさんの場合、その突き詰め方が尋常ではないようにも思うんですよ。普通だったら、「ももクロの5人であれば75%くらいまで識別できる(参照)」ところまできたら、そこで満足してしまいそうです。

しかし、すぎゃーんさんは、そこから1年以上かけて、識別できる人数を増やし、人力でのラベル付けで精度を上げて、さらには「顔生成」の段階に踏み込んだりもされていますよね。…今あのシステムは何人くらいのアイドルの顔を識別できるんですか?

sugyan2,000人分くらいのデータが入っていて、うち1,000人程度は識別が可能ですね

idesakuアイドルの方って、そんなにいらっしゃるんですか!

sugyanただ、アイドルも入れ替わりの激しい業界なので、この1年でそのうちの250人ほどが、解散や卒業などでアイドルではなくなってしまったんですよ。現在「アイドルでない人」を「アイドル」だと識別してしまうのは問題なので、情報収集をしながら、そういった画像からはラベルを外すようにしています。作業しながら、ちょっと寂しくなる瞬間です。

idesaku…その底なしのモチベーションは、どこから生まれているんでしょう。

sugyanやっぱり「アイドル顔認識をやりたかった」ことに尽きると思います。前からその思いがあったからこそ、飽きずに続けられているのでしょうね。あと、「アイドル好きで、その自撮り画像をテーマに機械学習をやっている」という人は、私以外にまずいないんです(笑)。「自分がやらなきゃ、ほかのだれもやらない」ことに対しては、モチベーションが続きますね

idesaku「好き」であることと「オンリーワン」であることがカギなんですね。実際、手作業でのラベル付けのような作業は、好きでないとできないですよ。

3枚目の画像

「作りたいもの」があれば「技術」は身につく

idesaku実際に「自動で画像認識」をするにあたっては、TensorFlow にデータを食わせる前の、収集や画像加工の工程が必要ですよね。この部分でも、かなりやらなければならないことが多くて大変そうな印象があるんですが。

sugyanたしかに前工程は必要ですが、そこについては、自分がこれまで Webアプリケーションを作る中で身に付けた知識で対応できる部分が多かったんです。

画像の加工、管理を含めて「どういうデータを、どういう形に持っておき、どういうふうに処理すれば、こうなる」といった部分は、比較的すんなりクリアできました。画像の管理やラベル付けのツールに関しては、専用のものを自分で作って使っているんですよ。

idesaku意外なところで過去の経験が役に立ったのですね。とはいえ、あの仕組みを実現するために、いろいろと新しい技術にも手を出されていますよね。例えば、管理部分は Rails で、TensorFlow 上のロジックは Python で、連携する Bot については Go で、フロントエンドは webpack で…といった感じで。

sugyanそのあたりは、もともとプログラミングが好きなので、いろいろ手を出して自分の知識の幅を広げてみたいという思いで挑戦していますね。

idesaku新しい技術を学ぶときに、心がけていることはありますか。

sugyan「アイドル顔認識」もそうなんですが、私の場合は「作りたいもの」がまず先にあって、そのためにツールが使えるようになるというパターンがほとんどですね

例えば、以前 Node.js を使っていた時期があるのですが、ちょうど Socket.IO が出てきて「リアルタイムWeb」が盛り上がっていたころに「複数のユーザーでエディタをリアルタイム共有するアプリを作りたい」と思ったのが、始めるきっかけになったんですよ。そのエディタは当時ちょっと話題になったのですが、それを見て Node.js に関心を持った古川陽介さんが、今、Node.js 日本ユーザーグループの代表をやっています。「会長はワシが育てた」と、ネタにさせてもらってます(笑)。

あと、Go を始めたきっかけも「ターミナルの操作を記録して再生する」というツールを Go で作ってみたくなったからなんです。 Go なら標準ライブラリで GIFアニメも作れるし、キャプチャの処理を並行でできたりして題材としてもちょうど良さそうだったんです。

idesaku根っからの「サービス指向」なんですね。目で見て分かる何かを実現すること目指して、技術を学ぶというか。

sugyan自分の作りたいものに対して「この技術が使える」ことに気付くと覚えられますね。純粋にライブラリや言語を「勉強」する感覚で始めてしまうと、続かないことのほうが多いです。それで何か立派なサービスを作ったわけではないのですが、とりあえずブログのネタにできる程度にまでは、自分のものにしたいという気持ちで続けています。

後編へ続く

すぎゃーんさんがリレー相手としてご指名するエンジニアは…?

4枚目の画像

執筆:高橋美津

ForlkwellPress ロゴ画像

編集部

Follow

エンジニアに役立つ情報を定期的にお届けします。

エンジニアに役立つ情報を定期的にお届けします。

SHARE

目次

目次