モデルの表現力を十分複雑にしてから、最後に無駄を省き最適にする

読んだもの

Deep Clustered Convolutional Kernelsという論文を読む。

アブストとイントロのみ理解する。

アブスト

Deep Neural Networks(DNN)はネットワーク構造などのパラメータ設定に関してトライアンドエラーを繰り返す必要がありコストが高くなる。

そしてそれらは最終的な性能を決定する重要な要素である。

本手法では自動でそれらを決定する手法を提案する。

この手法では、訓練時においてモデルの複雑さを少しずつ上げていき、かつモデルの冗長性も選択的に除去していく。

CNNにおいては、この手法は逐次的に分離、統合クラスとリングを畳み込みカーネルに対して確率的勾配法に基づき行う。

イントロ

DNNは性能が良くて注目されている。

しかしその複雑さゆえにDNNのモデル構造選択は難しく、専門家による慎重に選ばれる必要がある。

そしてこのモデル選択によってDNNの性能が大きく左右されている。

このモデル構造最適化問題は、組合せ爆発しており非常に解くのが難しいが、従来、層数の少ない簡単なモデルに関しては戦略が編み出されており、本論ではそれを参考にしている。

例えば音声認識などで使われる混合ガウスをベースにした隠れマルコフモデルでは、split/mergeアルゴリズムを用いる事で各コンポーネント毎にHMMが持つ状態の複雑さを独立に変動させて性能向上を行っている。

情報理論においても最小記述長(Minimum description length, MDL)を指標にする事でモデル選択を行っている。

しかしながら、これらの手法は全て浅いネットワーク(隠れ層の数が少ない)に対するものでありDNNへの応用はなかった。

DNNに関して確認出来るものは、ヒューリスティックなものや、ランダム最適化、あるいはベイズ最適化などである。

これらの手法は、しかしながら、DNNの構造パラメータの一部のもの最適化であり、それ以外のDNNのネットワーク構造(層数、各層のフィルタ数、カーネルサイズ等)はまだトライアンドエラーに頼るものである。

本論ではターゲットを畳み込みNNにしぼり、それらの各層の複雑さを最適化する手法を提案する。

すなわち、本論の手法では、従来と違い、モデルの複雑さは訓練時に逐次的に最適化される(確率的勾配法を用いる)。

その他

結局、提案する手法はDeep Clustered Convolutional Kernels(DCCKs)と呼ばれる。

DCCKsでは、split/merge法を訓練時に適用する。

これは、最初にデータから新たな変動性(パターン)が観測されるにつれ、モデルの表現力(複雑さ)を上げていく方向に最適化していく。

そして最終的にはモデルの表現性を逆に下げていき、モデルの冗長性を最小化する。

この手法は音声認識等で使われるGaussian kernel HMMsで用いられるsplit/merge法や、オッカムの剃刀の哲学にもとづいている。

所感

baysian optimizationてモデル構造含め全部ハイパーパラメータ最適化出来ると思ってたけどやっぱ違うのか。