機械学習とかコンピュータビジョンとか

CVやMLに関する勉強のメモ書き。

Learning Implicitly Recurrent CNNs Through Parameter Sharingを読んだのでメモ

はじめに

Learning Implicitly Recurrent CNNs Through Parameter Sharingを読んだのでメモ.

soft parameter sharing

基本的な考え方としてはCNNの畳み込みフィルタを基底となるフィルタの線型結合で表現し,基底を各層で共有すればパラメータ数を減らせるというもの.なのでポイントとなる式は以下.

\displaystyle
\mathbf{W}^{(i)}:=\sum_{j=1}^k\alpha_j^{(i)}\mathbf{T}^{(j)}

\mathbf{W}^{(i)}i層目の畳み込みフィルタで,\mathbf{T}^{j}j番目の基底フィルタ,\alpha_j^{(i)}i層目の学習パラメータでj番目の基底に対する線型結合の係数を表す.なのでi層目の畳み込みは次のような計算になる.kはハイパーパラメータで基底フィルタの枚数を表す.

\displaystyle
\mathbf{U}^{(i)}(\mathbf{X})=\mathbf{W}^{(i)}\ast\mathbf{X}=\sum_{j=1}^k\alpha_j^{(i)}\mathbf{T}^{(j)}\ast\mathbf{X}

基本的に1層のCNNが持つパラメータ数は正方形のフィルタで入出力のチャネル数が等しいとすれば,カーネルサイズK,チャネル数CとしてC^2K^2となるのに対し,提案法ではk+kC^2K^2となる.なので基底を共有する層の数Lより基底の数kが少なければパラメータ数の削減となる.

この論文で面白いところは線型結合表現とRNNを結びつけたところで,仮に結合係数\alphai番目の層とj番目の層で等しければ同一の演算を行なっていることになり,recurrentな計算をしていることになる.そこでこの論文ではlayer similarity matrix (LSM)を定義して層間の類似度を表している.LSMは次のようなコサイン類似度で表される.

\displaystyle
S_{i,j}=s(\mathbf{\alpha}^{(i)},\mathbf{\alpha}^{(j)})=\frac{|\langle\mathbf{\alpha}^{(i)},\mathbf{\alpha}^{(j)}\rangle |}{|\mathbf{\alpha}^{(i)}||\mathbf{\alpha}^{(j)}|}

線型結合は内積に等しいので,コサイン類似度が高い値を持てば畳み込みで得られる情報はスケール倍を除いて等しくなる.ここではこのLSMを正則化として利用する方法を提案しており,ループ構造を強制するようなことができる.これにより学習後にパラメータ数を削減することができる.正則化自体は所望の目的関数\mathcal{L}に対し,-\lambda_R\sum_{i,j}S_{i,j}を加えることで実現可能.ただし,\lambda_R正則化の強さを表すハイパーパラメータ.

終わりに

線型結合で表現するのはtrivialな感じだが,再帰計算としての側面で見るのが面白かった.