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

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

Improving Discrete Latent Representations With Differentiable Approximation Bridgesを読んだのでメモ

はじめに

Improving Discrete Latent Representations With Differentiable Approximation Bridgesを読んだのでメモ.

気持ち

ニューラルネットの学習のために非連続な関数の勾配を近似/推論したいというもの.そのためにdifferentiable approximation bridge (DAB)と呼ばれる方法を提案.これをsort,top-k,kmeansなどの離散の課題に対して適用して有効性を検証.

Model

X_{tr}=\{x_i\}^N_{i=0},x_i\in\mathbb{R}^{M\times M}を学習データの集合,Y_{tr}=\{y_i\}_{i=0}^Nを対応するラベル,ただし分類問題においてはy_i\in\mathbb{R}^jで再構成においてはy_i\in\mathbb{R}^{M\times M}.目標はパラメータ\thetaf_\theta:x_i\rightarrow y_i,を事前に定義されたメトリック\mathcal{M}(f_\theta(X_{te}),Y_{te})に対して最適化すること.

まずモデルをf_\theta=l_{\theta_3}\circ l_{\theta_2}\circ l_{\theta_1}に分解し,それぞれの出力を\{z_3,z_2,z_1\}とする.ここでは微分可能な関数l_{\theta_2}微分不可能な関数l_\text{hard}に置き換えることを考える.l_{\theta_2}を直接l_{hard}に置き換えることは,l_{hard}微分不可能でありbackpropによって学習ができなくなるため非現実的である.

微分不可能な関数への置き換え方法を探るため,まず通常のニューラルネットが非連続な関数を近似していく過程を可視化する.ターゲットの値y_i\epsilon-margin signum function y_i=sgn(x_i,\epsilon),x_i\sim U(-1,1),\epsilon=0.5とする.ただし,sgn(x_i,\epsilon)x_iの絶対値が\epsilon以下の場合に0を出力し,\epsilon以上の場合に符号化関数として振る舞う関数.これを活性化関数にELUを使った3層ニューラルネットワークで近似する.損失は二乗誤差を使いAdamで最適化を行なったとのこと.ニューラルネットはVAEやWord2Vecのような潜在空間の補間に利用されることがあり,この論文ではこの補間を可能にしているのは入力をターゲット値に変換するためにsmooth K-Lipschitz mappingを学習するためであるとしている(論文では仮定としていないが引用がなかったためここではこの論文ではとしている).smooth K-Lipschitz mappingを学習しているということは滑らかな勾配を持つ関数を非連続な関数に当てはめているということを意味するため,この性質を利用してDABl_\phi,を構築する.

DABは前の層からz_1=l_{\theta_1}(x)を受け取り出力z_\phi=l_\phi(z_1)を返す.この出力はL2正則化によって真の非連続関数の出力z_{hard}=l_{hard}(z_1)に近しい値であるという制約を課せられる.すなわち\mathcal{L}_{DAB}=\gamma\|z_{hard}-z_\phi\|_2^2を制約として課せられる.ただし\gamma正則化の強さをコントロールするハイパーパラメータ.実験的に\gammaの値の設定は結果にあまり影響はなく頑張って良い値を見つける必要はないとのこと.このDAB正則化を目的関数に加えてモデルを学習することで非連続な関数の微分を近似する.

\min_{\theta,\phi}\underbrace{\mathcal{L}(l_{\theta_3}(l_{hard}(l_{\theta_1}(x_i))),y_i)}_{\text{typical loss}}+\underbrace{\gamma\|l_{hard}(z_1)-l_\phi(z_1)\|_2^2}_{\text{DAB loss }(\mathcal{L}_{DAB})}

言ってしまえば非連続な関数を近似する小規模なニューラルネットを別途用意しようというもの.推論時にはDABl_{hard}を置き換えて計算するため余計なメモリは使わないとのこと.

まとめ

非常に単純なアイディアで今まで本当に提案されていなかったのか不思議.実験結果を見ると有名なGumbel-Softmaxをoutperformする結果を示していてなかなか驚き.