いぬいぬいぬい

逆から読んでみてください

論文のIntroを淡々と和訳する - 3. Capacity and Trainability in Recurrent Neural Networks

今回は以下の論文のイントロを和訳します。

 

Capacity and Trainability in Recurrent Neural Networks

(再帰ニューラルネットワークの容量と学習可能性)

著者: J.Collins, J.Sohl-Dickstein, D.Sussillo (Google Brain)

 

RNNの研究と応用は最近数年間で爆発的な成長をしており、

RNNは深層学習におけるいくつかのとても成功しているモデルクラスや応用分野の重要な部品となっている(例えば、音声認識、DRAWモデル、教育への応用、科学的な発見)。

これらの最近の成功にも関わらず、複雑なモデルのRNN部分をデザインし訓練することは非常に厄介なことであることが広く知られている。

RNNの専門知識の獲得が大半の事業の成功にいまだに必要不可欠となっている。

 

RNNモデルのデプロイに含まれる一つの主要な戦略はLSTMネットワーク、最近ではGRUを使うことである。

その結果モデルはより容易に訓練できるようになり、より低い誤差を達成することが確認されている。

RNNは普遍近似関数であることは広く理解されている一方で、ゲートモデルがその訓練の簡単さに対してどれだけ実際に計算的にパワフルであるかは未解決問題である。

 

ここでは我々はゲートモデルが通常のRNNモデルに対して確認されている優位性がほとんどすべて学習可能性によって引き起こされるものであるという証拠を提供する。

はじめに、様々なRNN構造が苦しむとされる容量ボトルネックを二種類示す:

タスクを解くためのパラメータの効率性と歴史を覚える能力である。

次に、非常に徹底的にハイパーパラメータを最適化する訓練を含め、これらのボトルネックの影響を紐解く実験設定を示す。

最後に、我々の容量実験(パラメータ毎、ユニット毎)と、学習可能性の実験(ゲートモデルがおそらく良い結果をしめすと合理的に期待される非常に難しいタスクで訓練すること)の結果をしめす。

 

1.1 容量ボトルネック

RNNには潜在的ないくつかのボトルネックがある。

例えば、パラメータの中にタスクに関するどれだけの情報を保持しておくことができるか?

ユニットの中に入力の歴史についてどれだけの歴史を保持しておくことができるか?

このはじめの二つのボトルネックは共に異なるタイプの記憶での(一つはタスク、一つは入力に対する)記憶容量とみなすことができる。

 

それとは別に、RNNの実行できる計算の基本形から他の種の容量が発する。

例えば、二つの数をかけたいとしよう。

ユニットの数と時間ステップから言えば、このタスクは特定の計算の原始的なものと力学を用いればとても直接的なものかもしれないが、他のものを使えばリソースを過度に使ってしまうかもしれない。

計算の基本形の差異による計算容量の違いは、パフォーマンスにおいて大きな役割を果たすと思われるかもしれない。

しかしながら、ゲート構造が(通常のRNNと異なり)隠れ層の間の乗法の基本形を纏っているにも関わらず、我々の実験の中で計算的なボトルネックを示すものは全く見つからなかった。

そこで我々は、RNNが訓練中にタスクを学習するためのパラメータ毎の容量とRNNへの入力を覚えているだけのユニット毎の記憶容量のみに注目することにする。

 

1.2 実験設定

RNNは行列のスケールやバイアス、非線形関数の形など多くのハイパーパラメータをもつ。

最適化法や学習率の選択など、学習に含まれるさらに多くのハイパーパラメータも存在する。

モデルを学習するために我々はSpearmintと似たガウス過程モデルを用いたハイパーパラメータ調整を採用した。

基本的なアイデアは、調整器からハイパーパラメータを要求し、その値を用いて最適化を完了すると、バリデーション損失を返すというものだ。

調整器はそれまでに得られた損失と一緒にこの損失を使って、多くの実験の中でバリデーション損失を最小にするような新しいハイパーパラメータの値を選ぶ。

実験では、(各構造とタスクに対して数百から数千回の実験をして)タスクに高度に最適化した後に(ハイパーパラメータ最適化器の返したバリデーション損失とは別に)評価損失を出している。

 

実験ではよく知られたRNNの構造を用いた。

例えば通常のRNN、新しいIRNN、さらにGRUやLSTMなどのゲートつきRNNである。

我々はUpdate Gate RNN(UGRNN)とIntersection RNN(+RNN)と呼ぶ二つの新しいRNN構造を発明し、これを加えたものを実験に使うモデルとする。

UGRNNは「ゲートを最も小さくした」RNN構造で、再帰隠れ状態と隠れ状態の更新の間に二つだけのゲートをもつ。

+RNNは再帰と深さ次元の両方に直接的な方法でゲートする二つのゲートをもつ。

 

それぞれのRNN構造の強みと弱みをさらに調べるために、いくつかの深さを用いた(実験では1,2,4,8)。

ほとんどの実験で、異なる構造や深さに渡ってパラメータの個数を固定した。

正確に言えば、一つの実験に対し、入力次元と出力次元に沿ってパラメータの最大値を設定した。

そうして各層の隠れユニットの数は、すべての層に渡って足し上げたパラメータの数がその許容される最大値を超えないように設定された。

 

6つの各タスクと6つのRNNの亜種、4種類の深さと6あまりのモデルサイズの各々について、関連する損失関数を最適化するためにハイパーパラメータ調整器を走らせた。

大抵これにより数百から数千のハイパーパラメータ評価が行われ、それぞれは最大数百万の訓練ステップになる訓練となった。

合わせると、これはCPU-millennia に相当する計算である。

 

 

まだ続くのですが、長いのでとりあえずここまでで…

結構評価されているらしい論文なので、ちゃんと目を通したいです。