TadaoYamaokaの開発日記

個人開発しているスマホアプリや将棋AIの開発ネタを中心に書いていきます。

【論文】In deep reinforcement learning, a pruned network is a good networkを読む

DeepMindarXiv上で発表した、深層強化学習のモデルを段階的な枝刈りすることでモデルサイズのスケーリングが可能になることを示した「In deep reinforcement learning, a pruned network is a good network」を読んだ際のメモ。

概要

  • 深層強化学習はモデルサイズをスケーリングことは困難だった
  • 段階的に枝刈りすることでスケーリングが可能であることを実証した
  • 枝刈りすることでパフォーマンスも向上する

導入

  • 深層強化学習では訓練中に多数のパラメータが休止状態になる
  • 最近の研究でResNetバックボーンのDQNで段階的な枝刈りで元のパラメータの10%で50%パフォーマンスが向上ことが発見された
  • この論文では、段階的な枝刈りによって、ネットワークのサイズに比例してパフォーマンスが向上することを示す

関連研究

  • 深層強化学習でネットワークをスケーリングすることは、強化学習特有の不安定性により困難だった
  • CNNよりもResNetがスケーリングに適していることが示された
  • 大きすぎるパラメータのネットワークは過剰適合する傾向がある
  • ネットワークが初期のデータに過剰適合する傾向がある

方法

  • 訓練の20%で枝刈りを開始し、80%で最終的なスパースレベル(0.95)になるように段階的に枝刈りする
  • 15層のResNet
  • 15のアタリゲームで評価
  • オンライン、オフラインの両方で調査

結果

スケール則


  • 枝刈りしないネットワークはスケールを増やすとパフォーマンスが低下する
  • 段階的な枝刈りしたネットワークはスケールを増やすほどパフォーマンスが向上する
  • 段階的な枝刈りを使用すると、パラメータ効率が向上することを示唆している

スパース性


  • 90%から95%でパフォーマンスが向上
  • 99%でパフォーマンス維持

他、CNN、再生率、データ量、オフライン設定の実験結果があるが省略

結論

  • これまでの強化学習エージェントは利用可能なパラメーターを十分に活用しない傾向があった
  • この活用不足は訓練全体を通じて増加し、ネットワーク サイズが増加するにつれて増幅される
  • 段階的な枝刈りがネットワーク パラメータ効率を最大するのに効果的であることを示した
  • ネットワークのスケールを上げることでパフォーマンスが向上することは、一種のスケーリング則を示唆している
  • 長時間トレーニングした場合に安定したパフォーマンスを維持する

感想

将棋AIのモデルでは、パラメータ数を上げるほど強くなることが経験的にわかっている。
現在、大会で実績のある最大のモデルは、dlshogiのResNet 30ブロック384フィルタのモデルである。
これ以上モデルサイズを大きくした場合にどれくらい強くなるかに興味があった。
より大規模なモデルで実験できるように、マルチGPUでの学習に取り組んでいる。

この論文の示唆するところを考慮すると、大規模なモデルは限界がありそうである。
枝刈りの手法により深層強化学習のパフォーマンスが向上することが示されており、将棋AIでも効果があるか試してみたい。
ニューラルネットワークの枝刈りは、推論速度を上げる代わりに精度がある程度犠牲になる認識だったが、深層強化学習では逆にパフォーマンスが向上するというのが興味深い。
枝刈りにより推論速度も上がるため、探索においても効果があるので一石二鳥な手法のように思う。

dlshogiのモデルで、95%に枝刈りして追加学習した場合と、枝刈りなしで追加学習した場合で比較を行ってみたい。

まとめ

段階的な枝刈りにより深層強化学習のパフォーマンスが向上しスケーリングが可能になることを示した論文を読んだ。
将棋AIでも段階的な枝刈りが効果があるか試してみたい。