Innovation Tips

Innovation, Data Science, Research, Business, etc.

深層学習を超えた手法とは何か

最近、深層学習の精度を超えた手法が発表されています。
今回は、昨日(6月17日)ニュースになったDeepmindによるPredictron(自動計画+強化学習)も含めて、紹介します。
*少し長くなっておりますので、必要な部分だけ読んでいただけたらと思います。

目次
1.Predictron


1.Predictron

・Predictronとは何か
Predictronとは多段階の反応や行動を解く「自動計画」と、試行錯誤を通じて価値を最大化するような行動を学習する「強化学習」を融合した新しい人工知能技術です。

昨日のニュースで話題になりましたが、実は論文自体は、もう少し前から公開されていたようです(最初に提出されたのは、2016年12月28日のようです)。


ニュースの中では、Deepmindが構築した新しい手法について、ビリヤードを用いて検証を行ったとのことでした。
“簡易型ビリヤードで性能を検証。四つのボールをランダムに配置し、その中の白玉を転がして他のボールをコーナーに落とす。ボールを転がす角度や速度によって壁や別のボールにどう跳ね返り、ボールが転がるかAIに予測させる。その結果、50回中27回でコーナーに落とせた。従来技術では10回だった。
従来のAIでは連続的な問題を解く際に、1段階での学習を繰り返していたため、全体としての成功率が上がりづらかった。プレディクトロンでは、多段階で長めの計画を立てられるようになった。”

図5

動画:Predictron network on pool dmain


・自動計画とは何か
自動計画は英語でAutomated planning and schedulingです。
一言でいうと、
Planningでは、目的を達成するためのアクションを決めます。
Schedulingでは、決めたアクションに対して、何を、いつ、どのように実行するかを決めます。

このようにして戦略や行動順序の具体化していきます。典型的な例として、知的エージェント、自律型ロボット、無人航空機などでの利用があります。自動計画の解は複雑で未知であるため、多次元空間における発見と最適化が必要とされています。

x2


・Predictronの成果
この自動計画と強化学習を組み合わせ、PlanningとSchedulingを最適になるように学習します。
これによって、Deepmindは、深層学習(論文中では、Conventional deep neural network)を用いた方法よりも高い精度の計算結果を出すことができました。
*Convolutional Neural Networkについては、以下参照
*以下の図中、赤い線Predictronで黒い線が深層学習。縦軸が誤差の大きさ。Predictronの方が誤差が小さい。
*具体的な実験方法、前提条件につきましては、論文をご覧ください。

 
今後、Predictron(自動計画+強化学習)もさらに注目されるかもしれません。


2017年2月28日付けでarXivに投稿された ” Deep Forest: Towards An Alternative to Deep Neural Networks” (Zhi-Hua Zhou, Ji Feng) という文献があります。「Deep Neural Networkの代替へ向けて」というなかなか挑戦的なタイトルですが、本文の内容もタイトル負けしていません。

この文献の中では、”Deep forest”という方法を紹介していますが、これが何かを説明する前に、前提となる知識をインプットさせていただきます。

・決定木
決定木は上(親)から順に条件分岐(If…then…)を辿っていくことで、結果を得る手法です。

 z4

・アンサンブル学習
個々に学習した複数の識別器を融合させて汎化能力(未学習データに対する予測能力)を向上させ、一つの識別器を作成することです。
 z5

・バギング
学習データのブートストラップサンプルを用いて複数の識別器を学習させ、新しい入力データクラスは、それらの識別器の多数決で決めるという方法です。
(ブートストラップとは、サンプルを取得する方法の1つです。N個のデータからN回復元抽出を行います。サンプルしたデータを元にもどし、常にN個の同じ集合からN回サンプリングします。)

・ランダムフォレスト
ランダムフォレストは決定木を複数組み合わせて、各決定木の予測結果を多数決すること(バギング)によって結果を得ます。

以下にアルゴリズムを示します。

1. ランダムにデータを抽出する
2. 決定木を成長させる
3. 1,2ステップを指定回繰り返す
4. 予測結果を多数決することによって分類閾値(ラベル)を決定する。

図1


以上のような前提知識の準備が整ったうえで、Deep forestの説明を行います。

Deepforestとは何か
(論文の説明上、Deepforestを用いた手法は”gcForest”として記載されているため、”gcForest”として以下説明させていただきます。)

gcForestはディープニューラルネットワークと高度に互角以上の性能を持つ決定木アンサンブル手法です。

・gcForestのメリット(論文から抜粋)
-ハイパーパラメータチューニングに多大な労力を必要とするディープニューラルネットワークとは対照的に、gcForestは訓練が非常に容易。
⇒gcForestは異なるドメインの異なるデータに適用された場合でも、ほとんど同じハイパーパラメータ設定で優れた性能を達成する。
-gcForestの訓練過程は効率的でスケーラブルである。実験においてPCでの実行時間は,GPU設備有りでのディープニューラルネットワークの実行時間と互角であり、gcForestが並列実装に適しているためその効率性の利点はより明らかとなるだろう。
-大規模な訓練データを必要とするディープニューラルネットワークとは対照的に、gcForestは小規模データしかない場合でも良く動作する。
-決定木ベースのアプローチであるため、gcForestはディープニューラルネットワークよりも論理的な解析が容易(解析の根拠がより明確)。

・gcForestアルゴリズムの構造
このgcForestでは、前述のランダムフォレストを以下の図のように何層にも重ねて計算に用いています。この段(Cascade)のようになっている層が”Deep”と呼ばれる所以です。なお、今回のDeep forestは、深層学習の一種ではなく、アンサンブル学習の一種です。深層学習については様々な定義がありますが、あくまで多層の「ニューラルネットワーク」を用いた機械学習が深層学習に該当するため、ニューラルネットワークを用いていないgcForestは深層学習に分類されません。

 図2
図:gcForestの全体像(カスケード構造の説明)
(カスケードの各階層(Level)は2つのランダムフォレスト(青色)と2つの完全ランダム決定木フォレスト(黒)を含む。予測すべき3つのクラスがあるものとする。それ故、各フォレストは3次元クラスベクトルを出力し、その後それらは元入力の再表現のために結合される。)

・gcForestの成果
gcForestはDeep neural networkと比べて互角、またはより優れた性能を達成しています。以下にその成果を示します。画像分類、顔認識、音楽分類、ジェスチャー認識等でgcForestは優れた性能を示していますが、以下は顔認識の精度を一例として示しています。精度のの詳細につきましては、原文をご覧いただけたらと思います。

顔認識: ORLデータセットでのテストaccuracyの比較
 図4


・実際のプログラムの中身
gcforestを実装した内容が以下のURLに記載されています。

このgcForestは良い結果を出していますが、色々と議論を呼んでいるようです。
https://www.reddit.com/r/MachineLearning/comments/5x4a52/r_deep_forest_towards_an_alternative_to_deep/


■おわりに
今回はPredictronとDeepforestを紹介しました。しかし、常にこれらの手法が最適という訳ではありません。深層学習を精度で超えた手法が出てきたといえども、最終的には分析するデータのタイプ、求められる精度、結果を出すまでの期間等によって、最適な分析手法を選ぶことが大事なのかなと思います。
今後も新たな手法が、AIの領域を発展させることを期待しています。




参考文献

・The Predictron: End-To-End Learning and Planning

・グーグル子会社、深層学習より高い予測性能を実現
 http://newswitch.jp/p/9402 ニュースイッチ

・Lecture slides for Automated Planning:Theory and Practice

・Convolutional Neural Networkとは何なのか

・Deep Forest: Towards An Alternative to Deep Neural Networks

・深層学習 機械学習プロフェッショナルシリーズ

・はじめてのパターン認識

・Qiita:Deep Forest :Deep Neural Networkの代替へ向けて
・Slide share “Deep forest”