bohemia日記

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

エアコンが冷えすぎる問題をIoTで分析してみる

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

今年の夏は暑かったですね。エアコンが大活躍だったわけですが、多くの家庭で 「設定27度なのにエアコン冷えすぎてない?」と感じる人がいたと思います。 個人差の場合もありますが、うちの場合は計測してみると、明らかに冷えすぎていました。

エアコンの制御の仕組み

エアコンはリモコンで設定温度を27度とかにして信号を送ると、その温度になるように稼働します。 エアコンの中に気温を計測するセンサがあり、部屋の気温を設定温度に近づけようと動きます。

以下は26度設定でエアコンをつけた場合の気温の推移です。計測方法などは後述します。

f:id:bohemian916:20180906170642p:plain

続きを読む

未来のIoTなおうちに起こりうる面白い事故たち

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

日本でもAmazon Echo, Google Home, LINE Clover WAVE などのAIスピーカーが発売され始め、少しづつおうちがスマートになっていく今日このごろです。
しかし新しい技術の黎明期には事故がつきもの。というわけで、未来のAIやIoTなおうちに実際に起きたおもしろ事件をまとめてみました。

続きを読む

アメリカの警官の対応における人種差別に関する研究 

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

最近ネット界隈では、警官の対応のまずさが話題になることが多い気がします。

www.sankei.com

cpplover.blogspot.jp

先日ハワイで行われたCVPR2017というコンピュータビジョンのトップカンファレンスに行ってきたのですが、その基調講演でアメリカの警察と住民のコミュニケーションに関する研究が紹介されていて、とても面白かったので紹介したいと思います。
簡単に言うと、アメリカの警察はボディカメラの着用をしており、会話や行動が記録されています。その会話データから、黒人と白人への対応の違いを研究、警察と協力してトレーニングに活かそうという、日本じゃまだまだ考えられないような先進的な内容でした。

講演はスタンフォード大学のDan Jurafsky先生によるもので、Youtubeですべて見られます。

youtu.be

続きを読む

擬人化されて誤解される人工知能

こんにちは。ぼへみあです。
いま名古屋で開催されている、人工知能学会全国大会2017に遊びに来ています。

以前から、「人工知能」という言葉の使い方に疑問を覚えたり、人工知能が仕事を奪うなどの言説を見て、馬鹿じゃないの?と思っていたりしていたのですが、基調講演を聞いてその原因が自分の中でスッキリしたので書いてみます。

f:id:bohemian916:20170524012619p:plain

続きを読む

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

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

こんな記事を読みました。
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

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

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

続きを読む