bohemia日記

おうちハックとか画像処理、DeepLearningなど

あなたの会社は本当に機械学習を導入すべきなのか?

こんにちは。ぼへみあです。

こんな記事を読みました。
japan.zdnet.com

よくあることだと思いますが、上から降ってきた機械学習プロジェクトは99%失敗し、導入したとしても技術的負債という形でエンジニアを苦しめることになるので、やらないほうがいいと思います。

僕は普段から、ディープラーニング面白しれー、機械学習サイコーと世に広めてしまっているのですが、 こちらの講演を聞き、機械学習をシステムに組み込んで運用する際に、普通のシステム以上に技術的負債が発生しやすく、どの企業でも気軽に導入を進めるべきでないと思いましたので、今の考えをまとめてみました。

ディープラーニング、実サービスへの導入の実際 〜niconicoにおけるレコメンド、コメント解析、画像解析〜 | Peatix

機械学習は技術的負債の高利子クレジットカード

近年高い成果を上げ、ブームになっている機械学習を導入したいと考える企業はたくさんあると思います。
しかし機械学習とは、便利だから気軽に使ってしまうと、あっという間に技術的負債が膨れ上がり後々困る、クレジットカードのようなものだと言われています。

これは、機械学習の分野では世間の5年以上先を行くと言われているGoogleが、自社での機械学習システムの導入・運用の経験を元に、2014年の機会学習におけるトップカンファレンスのNIPSで発表した論文で述べられています。 ここに書かれていることは、Googleがすでに経験し、今後我々が直面する問題と考えられます。 Machine Learning: The High Interest Credit Card of Technical Debt

少しだけ内容をまとめますと、

長期的に運用される機械学習システムは、技術的負債があっという間に膨らむ傾向がある。 機械学習が技術的負債を生みやすい原因として、

  • 外界のデータを元に学習を行うため、外界の変化に対応する必要がある
  • 外界の複雑さがシステムに侵食し、モデルを複雑にする

などが述べられています。 外部データに依存するため、従来のコードメンテナンスに対する知見のみでは技術的負債を返すのは難しいとされています。

こちらの記事で論文の要約がされています。

atl.recruit-tech.co.jp

一般的に、技術的負債がたまると、システムの柔軟な変更や迅速な対応ができなくなり、イノベーションの阻害となります。
最悪、誰も手がつけられないシステムとなってしまう可能性もあります。

特にディープラーニングにおいては、内部でどういう働きをしているのか、人間が把握することは難しく、ブラックボックスになってしまう可能性がさらに大きいです。外界の変化にも影響し、内部で何をやっているか分からないシステムなんてヤバイです。

先日、情報処理学会主催のIPSJ-ONEという企画で、高度に発達したシステムの異常は神の怒りと見分けがつかないという発表がありましたが、まさしくこのような状態になりそうです。

エンジニアや研究者の体制が重要

Googleは世界最高の技術者たちを大量に抱えていますが、一般的な会社はそうは行きません。機械学習を扱える人材は限られています。
なぜなら機械学習は、数学的素養がないと扱うことができず、技術の習得に時間を要するからです。
一部の機械学習ができるエンジニアによって、システムに機械学習は導入できるでしょう。しかしその後の運用体制はどうなるでしょうか?

もしそのエンジニアが別の部署に異動したり、辞めたりすると、保守運用が非常に困難になります。
先日、パラメータや実験結果をドキュメントに残すべしという記事を書いたのですが、現実問題、人を介さずドキュメントのみでは引き継ぎは難しいと考えます。
モデルを作成した時の背景の知識や知見を共有することが重要で、引き継ぐには一定期間同じ場所で働いて、知見を共有することが必要だと考えます。複雑なモデルの場合、優秀な研究者でも、ポイッとドキュメントとコードを渡されただけでは理解するのは難しいです。
きちんと引き継がれなかった場合、外界の変化に柔軟に対応できなかったり、今はちゃんと動いているけど誰も触れないオーパーツのようなシステムに成り果てます。5年、10年に渡ってそうなる可能性があるのです。

こういう状況を避けるためには、会社の中で特定の人のみが機械学習ができるという属人化の状況を避け、幅広く機械学習の知見を持つ人間が会社に存在している必要があります。

このように機械学習が使えるエンジニアが散在している組織は非常に限られます。個人的な経験からすると、

  • テクノロジー重視の文化がある
  • コンピュータサイエンスやデータサイエンスの素養のある人が多くいる
  • 自発的に勉強会などに参加するエンジニアがいる
  • 理系・情報系卒のエンジニアを優遇している
  • 修士や博士が多い
  • 研究開発組織を持っている

といった特徴を多く満たしている企業が機械学習に取り組んでおり、全く当てはまらない会社では自社での機械学習システムの開発はやめたほうがいいと思います。公開されている機械学習APIで頑張るべきです。

先ほど述べた技術的負債の解消には、機械学習に対して深い知見を持つ研究者と、実際の開発に携わるエンジニアの両者が近いところで協力しあえる環境が重要とされています。ソフトウェア工学の知見を持つエンジニアだけでなく、外界のデータの扱いや最新の機械学習の手法に精通している研究者の存在が重要です。

結論としては、多くの企業は安易に機械学習を導入すべきではないと思います。
機械学習は、便利だからつい使ってしまうクレジットカードです。後で負債を払う羽目になります。

小さく始め、知見を蓄えられる環境を整える

それでも機械学習を導入したいと考える方のために以下アドバイスです。

まず、部下にAIや機械学習をやれ、というのはやめましょう。失敗します。
ソフトウェアエンジニアなんて文系でもできる、という人も諦めてください。公開されているAPIで我慢してください。

社内の高い技術者のレベルがないとうまくいきません。テクノロジー重視の文化を作りましょう。
「大丈夫、うちのエンジニアは技術力高いから」という会社ほど技術力が低いので気をつけてください。

そう簡単に文化なんてできないので、オススメは、情報系卒だけど全然違うことをやっているエンジニアをそそのかすことです。
1~2か月くらい時間あげて、勉強させてあげましょう。やりたいエンジニアを公募してみるのもいいでしょう。

と同時に、企画者やアキーテクトになりうる人にも勉強させてあげましょう。企画者は、その機械学習モデルがどれだけのビジネス価値を持つのか理解する能力とともに、そのモデルがどれほどの技術的負債を生むのかを把握する必要があります。負債>価値と判断したら、導入を止める人が必要です。

とにかく始めはボトムアップで小さく始めます。すぐに成果を期待してはいけません。果報は寝て待ってください。 もし成果が出てきても、すぐに運用向けに実装してはいけません。まずは期間限定やバッヂ処理での運用を考えてください。 知見がたまる前に運用に載せてしまうと、技術的負債をどんどん生み出す装置になってしまいます。

ある程度知見を貯め、本当に運用に載せる段階になったのならば、機械学習専門のチームを立ち上げましょう。 ごく少数のエンジニアで導入を進めるという状況から、長期的に組織的に機械学習に取り組むチームを作ることで、属人要素を少なくしていきます。同時に機械学習のスキルを評価し、昇格させます。導入した人が辞めると機械学習システムは本当にオーパーツ化するので、ちゃんと評価してあげて、辞めさせないようにしましょう。こういうチームを作ることで、チーム内でスキルを磨き合い、機械学習の知見をどんどん貯めてゆける土壌を整えていきます。全員がエンジニアではなく、最新の論文を読んだりカンファレンスに参加して技術動向を掴んで、次の実装モデルの研究開発を行うポジションの人もいると良いでしょう。しかし、研究者は現場から離れすぎてはいけません。

このような流れで、機械学習プロジェクトの属人化の排除と技術的負債の低減を行いながら、進めていくといいと思います。

最後に

技術軽視の潮流が日本の企業にはあるので、技術が評価されずエンジニアがやりづらい世の中なんだと思います。
しかし既に独創的なアイデアとサービスデザインによるサービスやプロダクトのを作る時代は終わりを迎えており、 AIやVR, AR, IoTといったテクノロジーの幅広い知見が求められるようになってきています。やったほうがいいと飛びつくのは良いですが、技術には積み重ねが必要であり、一夕一朝でできるものではありません。日本の企業が、テクノロジーを重視する文化の重要性を本当の意味で理解することを願っています。

機械学習をやると、AIより人間の方が詳しくなる現象

こんにちは。ぼへみあです。

機械学習がすっかりブームになって、仕事や趣味でディープラーニングを使ったことがある人が増えていると思います。
特に画像分野でディープラーニングは成果を上げているので、特定のものを判別・識別するといった事例が多いかと思います。
そうした画像系のディープラーニング経験者なら経験する現象があります。

それは、
その分野について、作ったAIよりも自分が詳しくなる
という現象です。

続きを読む

人工知能や機械学習プロジェクトを進める際に気をつけること

こんにちは。ぼへみあです。

先日、Developers Summit 2017に行ってきました。 去年は登壇していましたが、今年は訳あってHololense体験コーナーで「Hololenseスゴイやろ」ってドヤ顔してましたが、セッションも少しだけ見てきました。

機械学習や人工知能系のセッションは、ブームのせいかどこも人がいっぱいでした。 特に気になったのは、「AI礼賛時代にエンジニアはいかにしてサバイブすべきか」というセッションでした。

speakerdeck.com

特に、機械学習をサービスに導入しようとするプロジェクトの陥りがちなポイントに触れられていて、共感したと同時にとても参考になりました。

そこで本記事では、当該セッションの内容に自分の経験を加えて、機械学習プロジェクトのコツを述べたいと思います。

続きを読む

【おうちハック】自宅をIoT化しすぎて不便になったこと

こんにちは。おうちハッカーのぼへみあです。

CESではIoTデバイスが盛り上がり、特にAmazon Alexa無双だったということです。Alexaは日本上陸していないので、使うことができず、取り残されているようで残念ですが。

このように、IoTブームが続いており、多くのIoTデバイスが発表されて盛り上がりを見せているのですが、それは本当に生活を変えうるものでしょうか?
私はこれまでIoTデバイスを買いまくり、自宅に取り入れることで身をもって経験してきました。

bohemia.hatenablog.com

そうした経験から、IoTが生活を不便にしてしまった実例をお伝えしたいと思います。これからおうちハックをしたい人、IoTハードウェア開発者などの糧になると嬉しいです。
以前にも、失敗談と称して記事を書いていますので、こちらもご参考ください。

おうちハックの失敗から学んだこと - bohemia日記

続きを読む

人工知能でアニメの作画監督の仕事を助けよう 〜検証編〜

こんにちは。ぼへみあです。

前回の記事、人工知能でアニメの作画監督の仕事を助けよう 〜準備編〜では、作画監督の苦労を減らすべく、ディープラーニングで作画判定できるかを検証すべく、SHIROBAKOを題材として、各話数の宮森の顔のデータセットを作りました。

今日は学習結果について検証して、今後の展望を述べたいと思います。

続きを読む

人工知能でアニメの作画監督の仕事を助けよう 〜準備編〜

こんにちは。ぼへみあです。

SHIROBAKO Advent Calendar 2016の26日目を勝手にやります。今年は申し込み忘れてしまったので。

SHIROBAKOを見て、仕事を頑張る人の人間関係や仕事の進め方に大きく感銘を受けたのですが、同時にアニメ業界の過酷さを世に広めた作品でもあります。

また最近では、製作会社のP.Aワークスの動画マンの待遇がブラックすぎるということで炎上騒ぎになってしまいました。
社会一般的な待遇と比較すると厳しいものがあるのですが、アニメ制作会社の中ではこれでも育成に力を入れているとのことです。
詳しくは、こちらのP.AワークスのQ&Aを読めば分かります。

P.A.WORKSが必要としているのは原画マンです。誤解を招くかもしれませんが、動画は原画育成のための先行投資として考えています。動画はスピード、物量、単価の面から業界全体が海外への依存度を高めています。これを食い止めることは出来ません。日本のアニメーションの生き残る道は、多様な原画の表現の継承にしか無いと考えています。条件面で頑張っているのは、この規模の会社が、地方で作画を育成することの大きな可能性を信じているからです。

状況が厳しい中頑張っていらっしゃるですが、それでも炎上してしまう待遇ということは、そもそもアニメ業界全体が存続の危機にあると見ています。そうした状況で、少しでもアニメ業界の効率化のためのアイデアとして、作画監督の補佐AIが作れないか、検証してみたいと思います。

続きを読む

これからは自分の知能をAI化して売る世の中になる!

これは株式会社ネクスト(Lifull) Advent Calendar 2016の17日目の記事です。

こんにちは。ぼへみあです。 SFにありそうな大層なタイトルを付けましたが、割と現実的に起こりえそうという話をします。

より具体的には、ディープラーニングによる弱い人工知能の発達で、専門的な領域の判断能力をAI化し、知能を販売もしくはAPI提供するというビジネスが成立していくのではないかと思っています。

続きを読む