#cmdevio2016 (レポート: E-2) TensorFlowと機械学習の今

devio2016_eyecatch

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

平田です。

先日、Developer.IO 2016にて、「TensorFlowと機械学習の今」というタイトルで、TensorFlowと深層学習についてセッションを行いました。他セッションとはかなり毛色の違う内容なので、閑古鳥も覚悟していましたが、結果は満員御礼でした。

普段の業務では深層学習には触れていないため、素人考えの発表となっています。内容に不備や誤りが多々あるかと思いますので、予めご了承ください。

機械学習の現在

最近の機械学習で、話を聞かない日はないと言ってもいいくらい、今の機械学習は深層学習が中心です。

今回は、この深層学習について簡単に概要を話し、なぜ今機械学習ライブラリが必要とされているのか、深層学習の登場によって他領域の機械学習にどのような影響を与えているのかを、ざっくりと自分なりにまとめて話しました。

深層学習について

ニューラルネットワークの多層化には壁があり、そのため長く精度の向上が見込めない時期が続きました。

この問題に対して、RBMを段階的に積み上げていくというアイデアで多層化に成功し、ネットワークの多層化が画像識別の分野で非常に高い実績を挙げました。

この結果として、多層化されたニューラルネットワークにはまだまだ表現力に多くの余地があると考え、様々な分野に深層学習を適用しはじめます。これが昨今の深層学習ブームにつながります。

一方で、深層学習の研究のために様々なネットワークが作られるにつれ、構築するネットワークは複雑化していき、結果として以下の二つの問題が生まれます。

  • 学習にかかる計算コストの肥大化
  • 研究成果の共有・検証が困難

TensorFlowについて

深層学習が登場して以降、それに対応する形で様々な機械学習ライブラリが登場します。TensorFlowもそのうちの一つという位置付けです。

深層学習を含め複雑・大規模な学習を行う場合、如何に計算を高速化・並列化するかという問題は非常に重要です。TensorFlowもその問題に非常に重きを置いています。

また、問題に対してニューラルネットワークをどのようにデザインし、構築していくかという問題については、まだ理論的に明らかになっておらず、手探りで行っているという状況です。

このため、成果をお互いに共有し、それぞれのモデルを簡単に検証できるような共通の基盤として、機械学習ライブラリが求められているという背景もあると考えられます。

Deep Q-Network

深層学習が他分野の機械学習に対して影響を与えた例として、Deep Q-Networkを紹介しました。

深層学習の特徴抽出をQ学習に組み込んだ結果として、1つの学習モデルで様々なゲームを攻略するという成果を上げています。比較的シンプルなモデルで大きな実績をあげており、非常に面白い内容でした。