ニューラルネットワークの予測の不確実性(Stochastic gradient Langevin dynamics・概要編)


はじめに

Stochastic gradient Langevin dynamics (SGLD) でニューラルネットワークの予測の不確実性を算出する手法を紹介します。

Stochastic gradient Langevin dynamics

確率的勾配降下法とランジュバン動力学によるを組み合わせて、パラメータの事後分布をサンプリングする手法です。
SGLDの更新式に従ってパラメータを更新し、その過程のパラメータを事後分布からのサンプリングとして近似的に使用します。

バッチサイズを$${b}$$、データセットのサイズを$${n}$$、パラメータの更新量は下記になります。

$$
\Delta \theta = \frac{\alpha}{2}\Bigl(\frac{n}{b}\sum_i \nabla \log p(y_i|x_i,\theta) + \nabla \log p(\theta)\Bigr) + \sqrt{\alpha} \mathcal{N}(0,\rm{I})
$$

ここで、$${\alpha}$$はSGLDのパラメータです。
上式は確率的勾配降下法によるパラメータの更新に正規分布に従うノイズを付加した形になっています。

パラメータ$${\theta}$$でのデータ$${x}$$の予測を$${p(y|x,\theta)=\mathcal{N}(f(x;\theta),\sigma^2)}$$、正解を$${y}$$とすると、$${\log p(y|x,\theta)=-\frac{\log 2\pi\sigma^2}{2} - \frac{(y-f(x;\theta))^2}{2\sigma^2}}$$となります。
つまり、この場合2乗誤差を最小化すればよいことになります。
また、$${p(\theta)}$$に関しても平均0の正規分布を仮定すれば、パラメータのL2ノルムを最小化すればよいことになります。

DP-SGDとの関係

SGLDの更新式は、差分プライバシーを保証した確率的勾配法(DP-SGD)と等価であることが知られています。
DP-SGDの更新式は下記で定義されます。

$$
\Delta \theta = \eta \biggl( \frac{1}{b} \sum_{i} {\rm clip}C (\nabla \log p(y_i|x_i, \theta)) + \frac{1}{n}\nabla{\theta} \log p(\theta) + \mathcal{N}(0,\sigma^2c^2\rm{I}) \biggr)
$$

ここで、$${{\rm clip}_C}$$はベクトルのL2ノルムを最大$C$に制限する関数、$${\eta}$$は学習率、$${c}$$と$${\sigma}$$はDP-SGDのパラメータです。
DP-SGDのパラメータが$${C=\frac{b\sqrt{2}}{\sigma \sqrt{\eta n}}}$$を満たす際に、SGLDと等価になります。

不確実性の算出

推論結果の事後分布は、パラメータの分布$${p(\theta)}$$を考え、積分で$${\theta}$$を消去することで求めます。

$$
p(y|x) = \int p(y|x, \theta)p(\theta) {\rm d}\theta
$$

この積分をSGLDでパラメータをサンプリングした結果$${\theta_1, \cdots, \theta_n}$$を用いて近似します。

事後分布の期待値と分散は下記の通り求めることができます。

$$
\mu(y) = \frac{1}{n}\sum_{i=1}^n f(x;\theta_i)
$$

$$
{\rm Var}(y) = \sigma^2 + \frac{1}{n}\sum_{i=1}^n f(x;\theta_i)^T f(x;\theta_i) - \mu(y)^T \mu(y)
$$

参考資料

  • M. Welling and Y. W. Teh, Bayesian learning via stochastic gradient
    Langevin dynamics, ICML, 2011.

  • M. Abadi, et al., Deep learning with differential privacy, ACM CCS, 2016.

  • B. Li, et al., On connecting stochastic gradient MCMC and differential privacy, AISTATS, 2019.

この記事が気に入ったらサポートをしてみませんか?