強化学習でDeepLearnigのネット構造を自動生成する論文を読む

ランニングできず 英語:Toeic

強化学習でDeepLearnigのネット構造を自動生成する論文を読む

[1708.05552] Practical Network Blocks Design with Q-Learning

下図の様に画像識別型のDeepLearningは限界まで識別精度を上げるため、複雑なネットワーク構成を人間が試行錯誤で作成している。ここで下図のブロックは層を表す。

(高さと奥行きはフィルターのサイズ 幅はチャンネル数を表す ブロックの中のブロックは畳込みを表す)

f:id:mabonki0725:20170829075854p:plain

ImageNet CNN Architecture Image | FromData

この論文は中国人達の投稿で、下図の様にDeepLearningの最適なネット構造を強化学習で自動生成する話である。この話が本当なら今まで人間が試行錯誤でネット構造を作っていたが自動化できる可能性がある。

f:id:mabonki0725:20170829073136p:plain

手法としては下表の様なDeepLearningの層をブロックとして強化学習で最適に組合わせるものである。しかし主要な構成要素であるチャンネルや畳込みサイズについては記述が無い。

この強化学習は一般的な教科書通りの方法である。

・状態sは現在のネットワーク構造

・行動aは下表のペア(ブロックの型、層のサイズ、下位連結数、上位連結数)

 の組合せを選んでネットワークを連結する

・報酬rは判別精度(Accuracy)の向上

・探査方法はQ_Learning

f:id:mabonki0725:20170829075207p:plain

強化学習の一般的な問題として、同じパターンの状況sと行動aが繰返されて学習が進まないことである。そのため以下の戦略を採っている。

・左図の様に複数の環境env1 \sim envNを用意して同時に学習させるバッチ方式を採っている。

 バッチ方式では学習の重みは全環境の重みの平均となる。

    ここで中央のBlock listは上表の選択結果が収納されている。

・50ブロック程度で学習を早期に計算を打ち切り次のネットワークへ拡大する。

 右図に示す様に報酬関数を以下で修正すれば打ち切りでも精度は維持できることを示している。

 reward = accuracy - \frac{1}{2}\log(FLOPs) - \frac{1}{2} \log (density)

 ここでdensityはブロックの密度、FLOPsは計算速度と思われる。詳細不明

     

f:id:mabonki0725:20170829085101p:plain

実験結果

・画像認識用データ CIFAR-100で強化学習させ、CIFAR-10での試験精度は最小で3.46%のエラーであった。

・計算時間は32CPUで3日を要した

f:id:mabonki0725:20170829092735p:plain

感想

下図はバッチの数と精度の関係を示しているが、緑線や活性化の意味が不明である。報酬関数では定義がはっきりしていない。また構成要素のチャンネルについて記述がない。全般的に曖昧な記述が多く俄かに信じられる内容ではない。この中国人達のプログラムの公開や次の成果の発表が期待される。

f:id:mabonki0725:20170829091543p:plain