パロアルトインサイト/ PALO ALTO INSIGHT, LLC.

ブログBLOG

パロアルトインサイト/PALO ALTO INSIGHT, LLC. > ブログ > データ無しからの機械学習:どのように機械学習のポートフォリオを作るか

データ無しからの機械学習:どのように機械学習のポートフォリオを作るか

2019/07/09 ブログ 
by 長谷川貴久 

(この記事はEdouard Harris氏が書いたThe cold start problem: how to build your machine learning portfolioを、著者の許可を得て日本語訳したものです。)

私はY Combinator出資のスタートアップ企業に勤務する物理学者です。我々は新卒の学生が機械学習の仕事に付くことを支援しています。一昔前に、機械学習の仕事に付くためにすべきことについて書きました。その投稿の中でやるべきことの一つとして、機械学習プロジェクトのポートフォリオを作ることをお勧めました。しかし、どのようにすればポートフォリオを作れるかということについては書かなかったので、今回の投稿ではその話をします。[1]

我々のスタートアップの事業がら、私は良いものも悪いものも含め数百に登るプロジェクトを見て来ました。その中から2つの素晴らしいプロジェクトを紹介します。

一社に全てをかける

この話は実話です。プライバシーを守るために名前は変更しています。

X社はAIを使ってスーパーマーケットが新たな在庫を注文するタイミングを知らせるサービスを展開しています。我々の生徒の一人であるロンは、なんとしてでもX社で働きたかったのです。そのために、100%の確率でX社で面接が取れるようなプロジェクトを考案しました。

通常はこのような形で1社をターゲットしたプロジェクトは推薦しません。特に学び始めの段階では、かなりのリスクを伴う戦略です。しかし、ロンはなんとしてもその会社で働きたかったのです。

彼は何を開発したか?

赤い四角が足りない商品を示す

  1. ロンはまずショッピングカートに自分のスマホをテープで貼り付けました。そして携帯で動画を録画しながらスーパーの中で通路を行ったり来たりしたのです。複数のスーパーで10回〜12回繰り返しました。
  2. 家に帰ってから、機械学習のモデルを作り始めました。彼のモデルはスーパーの棚で空いている箇所を特定しました。例えば、棚からシリアルが抜けている箇所などです。
  3. ここがすごいところです。ロンはこのモデルをリアルタイムでGitHub上で公の場で開発しました。毎日モデルの改善をし、試行錯誤の経緯をREADMEで記述しました。
  4. X社がロンのプロジェクトのことを知った時、興味津々でした。いや、それ以上に少し脅威に感じました。なぜ脅威に感じたか?実はロンは知らず知らずのうちに、数日でX社の極秘技術の一部を複製してしまったからです。[2]

X社はものすごく有能で、業界の中でも有数の技術を保有しています。それでも、ロンのプロジェクトは4日も立たないうちにX社のCEOの目に止まりました。

パイロットプロジェクト

もう一つの実話です。

アレックスは大学で歴史を先行しながらロシア言語学を勉強していました(本当の話です)。歴史専攻にしては珍しく、機械学習に興味を持ちました。さらに珍しく、彼は1行のPythonを書いたこともないのに、機械学習を学ぶことを決意しました。

アレックスはハンズオンで学ぶことにしました。彼は飛行機の中で意識を失ってしまったパイロットを検知するための分類機を作ることにしました。アレックスはパイロットの動画から検知することを目標としました。人間が動画を見れば比較的簡単にパイロットが意識を失っていることを検知できることを知っていたので、機械にも検知は可能だろうと当たりを付けていました。

アレックスはそれから数ヶ月かけて次のようにプロジェクトを進めていきました。

アレックスの無意識検知分類機のデモ

  1. アレックスはYouTubeでパイロットが飛行中の動画(コックピットからの視点のもの)を片っ端からダウンロードしました。(このような動画は数十個あります。)
  2. 次にデータのラベル付けを開始しました。アレックスは数千枚の動画のフレームを閲覧し、「意識あり」のボタンと「無意識」のボタンを押せば正しいフォルダにフレームを保存するツールを開発しました。ラベル付けはとてもとても面倒で何日もかかりました。
  3. アレックスはコックピットの背景からパイロットを切取るためのデータパイプラインも開発しました。分類機がよりパイロットにフォーカスしやすくするためです。最後に無意識分類機を作りました。
  4. 上記の作業をしながら並行して採用担当者とイベントなどで会ってプロジェクトの映像などを披露していました。彼がスマホを取り出しプロジェクトを見せるたびに、採用担当者は色んな質問をしました。どうやって作ったか、画像処理パイプラインの詳細、どうやってデータを収集したのか、などを聞かれる中、一つだけ聞かれなかったことがあります。聞かれなかった質問はモデルの精度についてです。そして彼のモデルの精度は50%以下だったのです。

もちろんアレックスはモデルの精度を改善するつもりでしたが、その機会がないうちに採用されてしまったのです。モデルの精度なんかよりも、彼のデータを集める姿勢や、プロジェクトのビジュアルなインパクトの方が企業にとって魅力的だったのです。

アレックスが歴史先行でロシア言語学を勉強していたことは言いましたっけ?

彼らに共通すること

彼らの成功要因はなんだったのか?彼らは以下の4つのことをものすごくうまく実行しています。

  1. ロンとアレックスはモデリングに大した時間をかけていません。これは滑稽に聞こえるかもしれませんが、最近ではモデル作りは解決済みの課題なのです。機械学習の現場においては、最先端の機械学習の研究をしていない限り、8割から9割の時間はデータを整えて綺麗な形にすることに費やします。個人のプロジェクトもしかりです。
  2. ロンとアレックスは独自のデータを収集しました。このため、彼らが取得したデータはKaggleやUCI Repositoryなどで公開されているものと比べて比較的整っていないものでした。しかしこの整っていないデータと格闘することにより、どのように生のデータと立ち向かえば良いかということを学びました。また、公開サーバーから綺麗なデータをダウンロードすることと比べて、データのことをより良く知るように強制されました。
  3. ロンとアレックスは見栄えするものを作りました。面接とは全知全能な判事があなたのスキルを客観的包括的に評価する場ではありません。面接とは他の人間に自分を売り込む場です。人間はとてもビジュアルな生き物です。なのであなたがポケットからスマホを引っ張り出して面接官に自分のプロジェクトを披露するなら、興味を惹くものである必要があります。
  4. ロンとアレックスは普通ではないことをしたように見えます。そして実際普通ではありません。普通の人はショッピングカートにスマホを貼り付けたりしません。普通の人は何日もかけてYouTubeのビデオからパイロットの部分のみを切取るようなことはしません。どんな人がそういうことをするか?自分の仕事を実行するためにはなんでもやる人です。優良企業はそういう人をとても欲しがっています。

このようなプロジェクトは1回か2回やれば十分です。アレックスとロンのプロジェクトは何回も他の面接で再利用されました。

なので良い機械学習プロジェクトの秘密を要約するならば、「集めるのに苦労した面白いデータセットを使ってビジュアル的にも興味を惹くプロジェクトを作る」ということになります。

あなたがプロジェクトのアイデアがありそのアイデアの評価が必要な場合はツイッターで聞いてください。私のハンドルは@neutronsNeuronsで、DM歓迎です:)

[1]なぜこれが重要かというと、採用担当者はあなたの過去の経歴を見ながら判断するからです。もし全くの未経験者ならば個人プロジェクトがそれの代替となります。
[2]ロンのプロジェクトは完璧とは程遠いものでした:X社はかなりの資源を投入してこの問題に取り組んでいました。しかし、あまりにも似ていたため、X社からレポジトリーをプライベートに変更してくれと頼まれました。

BACK TO BLOG

NEWSLETTERニュースレター

非公開の最新AI情報が
満載のニュースレターをお届け

PAGE TOP