もう、アルゴリズム自分で書いてる場合じゃない?機械学習が開発手法を変える─de:code 2016セッションレポート

連載: de:code 2016 特集 (6)

de:code 2016に参加中の、編集長の白石です。

今回は、編集部のメンバーそれぞれが興味あるセッションに参加してセッションレポートを書こう、ということになってまして、ぼくは「Big Data/機械学習がソフトウェア開発手法を変える! 〜静的アルゴリズム生成から動的アルゴリズム生成への道〜」というセッションを聴講しました。 スピーカーである田丸健三郎さんの語り口が心地よく、機械学習についてはかじったことくらいしかないぼくにとってはレベル感もちょうど良く、知らなかったことも数多く学べてとても満足でした。

以下に、簡単なセッションレポートを掲載します。機械学習については素人の、Webエンジニアによるレポートではありますが、何かのお役に立てば幸いです。 (ちなみに画像に沿えた文章は白石による補足文章であり、スピーカーご本人による発言ではないことをお断りしておきます)。

IMG_5044

日本マイクロソフト株式会社 技術統括室 ナショナルテクノロジーオフィサー 田丸健三郎氏

日本マイクロソフト株式会社 技術統括室 ナショナルテクノロジーオフィサー 田丸健三郎氏

もはやとても身近な技術、機械学習

今の時代、データソースは拡大の一途をたどっています。

IMG_5048

そんな中、機械学習が非常に注目されています。以前は、ビッグデータの分析といえば高い専門性が必要な分野でしたが、機械学習によって安価で高品質な分析が可能になりつつあります。

IMG_5049

従来アルゴリズムといえば、従来は職人による新規性、進歩性を競う芸術(?)の世界でした。

IMG_5051

しかしそれでも、従来は機械学習によるデータ分析のアプローチよりは、職人によるアルゴリズム開発のほうが開発コストが低かったのです。かつてはデータ量も限られ、コンピュータリソースは非常に高価だったからです。

IMG_5053

しかし今や、データ+機械学習のアプローチのほうが、アルゴリズムをプログラミングするよりも開発コストが安上がりになりつつあります。それは、クラウドによってほぼ無限とも言えるコンピュータリソースを手に入れられるようになったからです。

IMG_5054

また、開発コストの面だけではありません。機械学習にとっての学習データの爆発的な増加、学習精度の大幅な向上など、機械学習を取り巻く環境も大きく進歩しています。

IMG_5055

それにより、従来のようにアルゴリズムを静的にプログラミングするのではなく、データを分析し、アルゴリズムを動的に生成するというアプローチが採用されることが増えているのです。

IMG_5056

機械学習とMicrosoft

例えば、Microsoftの製品においても機械学習は既に広く利用されています。意外な製品にも使われていると思われるのではないでしょうか?(白石的には、Kinectが関節の位置を特定するのに機械学習を使っているというのが少し驚きでした。まさかそんなところにも応用できるとは…)。

IMG_5057

そして、ディープラーニングによる画像認識の精度は、人間の認識力すら超えつつあります。実際以下のグラフのように、Microsoftによる2015年の成果では、人間の認識エラー率を下回っているのです。

IMG_5058

この進化は、ニューラルネットワークの多層化によってもたらされています。2012年には8層、2014年には19層、そして現在ではなんと152層にまで深く階層化できるようになっています。

IMG_5060

IMG_5061

実は、画像内のオブジェクトの認識率では、Microsoftは世界トップクラス。

IMG_5062

動画のタグ付けなどにも実用化されています。

IMG_5063

以下はMicrosoftにおける機械学習の歴史です。

IMG_5064

Microsoftが今公開している対話型AIとしては、以下の2つが有名です。Cortanaは生産性の向上を目指して開発されており、女子高生AI「りんな」や、中国で大人気のXiaoIceは、人間の感情に寄り添うことを目指しています。

IMG_5065

IMG_5066

マイクロソフトのIoT基盤は、以下の様なビジネス上の変革を実際にもたらしています。

IMG_5069

また、自動翻訳の分野も、機械学習が応用されている分野です。Microsoftも、Translatorというサービスを提供しており、現在50言語に対応しています。

IMG_5070

次のバージョンであるバージョン4では、翻訳精度が大きく向上する予定だそうです。期待したいですね。

IMG_5071

セッションを聞いての感想

はじめにも書きましたが、ぼくは機械学習の分野についてはほとんど知識がなく、軽くかじったことがあるくらいです。 そんなぼくにとっては、「機械学習による動的なアルゴリズム生成のコストが、プログラマーによる静的なアルゴリズム開発のコストを下回りつつある」というのはとても驚きました。

それが本当だとすると(実際本当なのでしょうが)、開発にあたって考えるべきはまず機械学習、データをどう収集してどう分析するかを最初に設計すべきだということになります。ぼくらプログラマーの仕事が大きく変わるかもしれない…と感じ、焦りと同時にワクワク感を感じたセッションでした。

Powered byNTT Communications

tag list

アクセシビリティ イベント エンタープライズ デザイン ハイブリッド パフォーマンス ブラウザ プログラミング マークアップ モバイル 海外 高速化 Angular2 AngularJS Chrome Cordova CSS de:code ECMAScript Edge Firefox Google Google I/O 2014 HTML5 Conference 2013 html5j IoT JavaScript Microsoft Mozilla Node.js PhoneGap Polymer React Safari SkyWay TypeScript UI UX W3C W3C仕様 Webアプリ Web Components WebGL WebRTC WebSocket