變分貝葉斯學習(variational bayesian learning)及重參數技巧(reparameterization trick)


摘要:常規的神經網絡權重是一個確定的值,貝葉斯神經網絡(BNN)中,將權重視為一個概率分布。BNN的優化常常依賴於重參數技巧(reparameterization trick),本文對該優化方法進行概要介紹。

論文地址:http://proceedings.mlr.press/v37/blundell15.pdf

網絡權重的點估計

常規神經網絡可以基於MLE或MAP對權重作點估計。

基於MLE(maximum likelihood estimation):

基於MAP(maximum a posteriori):

對權重施加先驗,等價於進行正則化。如果施加的是高斯先驗,相當於進行L2正則,如果是一個laplace先驗,相當於L1正則。

 貝葉斯方法

貝葉斯推斷在給定訓練數據的情況下,計算網絡參數的后驗概率,理論上可以通過以下方式對樣本標簽所服從的分布進行預測:

 Hinton等人提出對網絡權重的貝葉斯后驗分布進行變分估計,變分學習尋找參數θ,來最小化分布q(w|θ)和權重真實后驗分布之間的KL距離,這里的參數θ可理解為w所服從分布的參數,比如高斯的μ和σ:

 這個loss函數就是變分自由能(variational free energy),也稱為期望下界(expected lower bound, ELBO)。

可以將loss函數簡記為:

損失函數的后半部分代表與數據相關,稱之為似然損失,前半部分與先驗有關,稱為先驗損失。該損失也被稱為最小描述長度(minimum description length, MDL)

 無偏蒙特卡洛梯度

我們使用梯度下降的方式對上述損失進行優化。

在特定的條件下,期望的微分等於微分的期望。

命題1:假設ε服從分布q(ε),令w = t(θ, ε),其中t(θ, ε)是一個確定性函數,假如w的邊緣密度q(w|θ)滿足q(ε) dε = q(w|θ) dw,那么:

證明:

 確定性函數 t(θ, ε)將一個隨機噪聲和變分后驗參數轉換為一個變分后驗。

,我們可以將命題1用於優化。通過蒙特卡洛采樣,可以通過反向傳播算法對網絡進行優化。

 命題1就是所謂的重參數技巧(reparameterization trick)。

變分高斯后驗

基於高斯后驗的變分學習訓練過程如下:

這里就是常規反向傳播算法得到的梯度。

基於tensorflow probability的貝葉斯全連接網絡示例

import tensorflow as tf
import tensorflow_probability as tfp

model = tf.keras.Sequential([
    tfp.layers.DenseReparameterization(512, activation=tf.nn.relu),
    tfp.layers.DenseReparameterization(10),
])

logits = model(features)
neg_log_likelihood = tf.nn.softmax_cross_entropy_with_logits(
    labels=labels, logits=logits)
kl = sum(model.losses)

# loss由兩部分構成:(1)負對數似然(2)參數分布與其先驗分布(regularizer)之間的KL距離
loss = neg_log_likelihood + kl
train_op = tf.train.AdamOptimizer().minimize(loss)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM