WIP ドロップアウト

machine-learning

Variational dropout and the local reparameterization trick

  • Diederik P. Kingma, Tim Salimans, Max Welling
  • https://arxiv.org/abs/1506.02557

ドロップアウトは

Y = (X \circ \Xi) \Theta

として表される。ここで、$X$ は $M \times K$ 入力行列、$\Theta$ は $K \times L$ 重み行列、$Y$ は $M \times L$ 出力行列、$\Xi$ は $M \times K$ ノイズ行列 ($\xi_{ij} \sim p(\xi_{ij})$) である。

ベルヌーイ型

$p(\xi_{ij})$ をベルヌーイ分布とすると、ドロップアウトで残す率を $p$ として、$\xi_{ij} = \frac{\lfloor \zeta_{ij} + p \rfloor}{p}$ にする。ただし、$\zeta_{ij} \sim \mathcal{U}(0, 1))$。

ガウシアン型

$p(\xi_{ij})$ を正規分布とすると、ドロップアウト率を $p$ として、$\xi_{ij} \sim \mathcal{N}\left(1, \alpha = \frac{p}{1-p}\right)$ ($\alpha$ は分散) にする。つまり $\xi_{ij} = 1 + \zeta_{ij} \sqrt{\alpha}$。ただし $\zeta_{ij} \sim \mathcal{N}(0, 1)$。

:TODO:

これは $Y = X W$ と考えて $w_{ij} \sim \mathcal{N}\left(\theta_{ij}, \alpha \theta_{ij}^{2}\right)$ ($w_{ij} = \theta_{ij} \left(1 + \sqrt{\alpha} \zeta_{ij}\right)$, $\zeta_{ij} \sim \mathcal{N}(0, 1)$) となる local reparameterization trick を適用していると解釈できる。そのため $\alpha$ 自体を最適化のパラメータとでき、下記の変分下限を最適化することで、ドロップアウト率を適応的に調整できる。

\mathbb{E}_{q_{\alpha}}\left[L_\mathcal{D}(\theta)\right] - D_\mathrm{KL}(q_{\alpha}(w) \parallel p(w))

ここで $\alpha$ の正則化項である KL 距離の部分は対数一様分布を仮定して

\begin{aligned}
-D_\mathrm{KL}(q_{\alpha}(w) \parallel p(w))
 &= \frac{1}{2} \ln \alpha - \mathbb{E}_{\epsilon \sim \mathcal{N}(1, \alpha_{ij})} \ln |\epsilon| + C
 \\
 &\approx \frac{1}{2} \ln \alpha + c_{1} \alpha + c_{2} \alpha^{2} + c_{3} \alpha^{3} + C
\end{aligned}

という近似を利用できる。$C$ は定数。

\begin{aligned}
c_{1} &= +1.16145124 \\
c_{2} &= -1.50204118 \\
c_{3} &= +0.58629921
\end{aligned}

ただし、計算の安定性のために $\alpha \leq 1$ と制約をつける。

Variational dropout sparsifies deep neural networks

  • Dmitry Molchanov, Arsenii Ashukha, Dmitry Vetrov
  • https://arxiv.org/abs/1701.05369

上記の local reparameterization では、

\frac{\partial w_{ij}}{\partial \theta_{ij}} = 1 + \sqrt{\alpha_{ij}}  \zeta_{ij}

と勾配が大きくなってしまう問題がある。そこで

\begin{aligned}
w_{ij} &= \theta_{ij} \left(1 + \sqrt{\alpha_{ij}} \zeta_{ij} \right)\\
       &= \theta_{ij} + \sigma_{ij} \zeta_{ij}
\end{aligned}

という形式にする。$\alpha_{ij} \in (0, \infty)$ とできる。

-D_\mathrm{KL}(q_{\alpha}(w) \parallel p(w))
  \approx k_{1} \varsigma(k_{2} + k_{3} \ln \alpha_{ij})
    - \frac{1}{2} \ln \left(1 + \frac{1}{\alpha_{ij}}\right) + C
\begin{aligned}
k_{1} &= 0.63576 \\
k_{2} &= 1.87320 \\
k_{3} &= 1.48695
\end{aligned}

$C = -k_{1}$ とすると $\alpha \rightarrow \infty$ のとき $D_\mathrm{KL} \rightarrow 0$ となる。

\begin{aligned}
k_{1} \varsigma(k_{2} + k_{3} \ln \alpha_{ij})
 &= \frac{k_{1}}{1 + \exp\left(-k_{2} - k_{3} \ln \alpha_{ij}\right)} \\
 &= \frac{k_{1}}{1 + \exp(-k_{2}) \alpha_{ij}^{-k_{3}}} \\
 &= \frac{0.63576}{1 + 0.153631 \alpha_{ij}^{-1.48695}} \\
\end{aligned}

Generalized dropout

  • Suraj Srinivas, R. Venkatesh Babu
  • https://arxiv.org/abs/1611.06791

ベイズ推定の枠組みで Dropout を定義した Generalized dropout (Dropout++) を提案している。Dropout++ では、ドロップアウトで残す割合の事前分布をベータ分布 $p \sim \mathcal{B}(\alpha, \beta)$ として、最小化する目的関数を

\begin{aligned}
\theta^{*}, k^{*}
  &= \mathrm{argmin}_{\theta, k} -\ln P_{\theta, k}(\mathcal{D} \mid \epsilon) - (\alpha - 1) \ln p(k) - (\beta - 1) \ln \left[1 - p(k)\right]
  \\
  &= \mathrm{argmin}_{\theta, k} -\ln P_{\theta, k}(\mathcal{D} \mid \epsilon) + (\alpha + \beta - 2) \mathrm{softplus}(-k) + (\beta - 1) k
\end{aligned}

と定義する。ここで $\epsilon \sim \mathcal{U}(0, 1)$ は確率変数で、学習時にサンプリングする。これからレイヤーの出力マスクを $\frac{\lfloor \epsilon + p(k) \rfloor}{p(k)}$ とする。ただし、確率を $p(k) = \varsigma(k) = \frac{1}{1 + \exp(-k)}$ とシグモイド関数で定義している。

Dropout inference in Bayesian neural networks with alpha-divergences

  • Yingzhen Li, Yarin Gal
  • https://arxiv.org/abs/1703.02914

あとで読む

Dropout as a Bayesian approximation

  • Yarin Gal, Zoubin Ghahramani
  • Representing model uncertainty in deep learning: https://arxiv.org/abs/1506.02142
  • Appendix: https://arxiv.org/abs/1506.02157

あとで読む

Dropout training as adaptive regularization

  • Stefan Wager, Sida Wang, Percy Liang
  • https://arxiv.org/abs/1307.1493

あとで読む

Adversarial dropout for supervised and semi-supervised learning

  • Sungrae Park, Jun-Keon Park, Su-Jin Shin, Il-Chul Moon
  • https://arxiv.org/abs/1707.03631

あとで読む

Max-pooling dropout for regularization of convolutional neural networks

  • Haibing Wu, Xiaodong Gu
  • https://arxiv.org/abs/1512.01400

あとで読む