深度學習二:概率和反向傳播的變種

JYRoy發表於2020-09-25

概率

高斯分佈

高斯分佈(Gaussian Distribution)

又叫正態分佈(Normal Distribution), 記作\(N(μ,σ^2)\),概率密度和為 1。

\[P(x)=\frac{1}{\sqrt{2 \pi} \sigma} e^{-\frac{1}{2\sigma^2}(x-\mu)^2}​ \]

  • \(\mu\) = mean, 數學期望 /mu/。\(\mu\) 是正態分佈的位置引數,描述正態分佈的集中趨勢位置。概率規律為取與 \(\mu\) 鄰近的值的概率大,而取離μ越遠的值的概率越小。正態分佈以 \(X=\mu\) 為對稱軸,左右完全對稱。正態分佈的期望、均數、中位數、眾數相同,均等於 \(\mu\)
  • \(\sigma\) = standard deviation 標準偏差 /sigma/。\(\sigma\) 描述正態分佈資料資料分佈的離散程度,\(\sigma\) 越大,資料分佈越分散,\(\sigma\) 越小,資料分佈越集中。也稱為是正態分佈的形狀引數,\(\sigma\) 越大,曲線越扁平,\(\sigma\) 越小,曲線越瘦高。
  • \(\sigma^2\) = variance 方差
  • \(\mu\) = 0,\(\sigma\) = 1 的時候,高斯分佈是標準正態分佈。

多元高斯

獨立多元高斯分佈

多元高斯分佈(Multivariate Gaussian),假設 n 個變數 \(x=[x_1,x_2,⋯,x_n]^T\) 互不相關, 且服從正太分佈,各個變數的均值 \(E(x)=[μ_1,μ_2,⋯,μ_n]^T\) ,標準偏差為 \(σ(x)=[σ_1,σ_2,⋯,σ_n]^T\) ,根據聯合概率密度公式:

\[f(x)=p(x_1,x_2....x_n)=p(x_1)p(x_2)....p(x_n)=\frac{1}{\sqrt{2\pi}^n\sigma_1\sigma_2...\sigma_n}e^{-\frac{(x_1-\mu_1)^2}{2\sigma_1^2}-\frac{(x_2-\mu_2)^2}{2\sigma_2^2}...-\frac{(x_n-\mu_n)^2}{2\sigma_n^2}} \]

化簡為:

\[P_{\mu,\sigma}|(x) = \prod_iP_{\mu_i,\sigma_i}(x_i) \]

如,令\(z^2 = \frac{(x_1-\mu_1)^2}{\sigma_1^2}+\frac{(x_2-\mu_2)^2}{\sigma_2^2}...+\frac{(x_n-\mu_n)^2}{\sigma_n^2}\) , \(\sigma_z = \sigma_1\sigma_2...\sigma_n\), 則

\[f(z) = \frac{1}{\sqrt{2\pi}^n\sigma_z}e^-\frac{z^2}{2} \]

最大似然估計

Maximum Likelihood Estimation 簡稱 MLE,又叫極大似然估計,是根據資料取樣來估計概率分佈的經典方法,事實上,概率模型的訓練過程就是引數估計(parameter estimation)過程。

首先,我們宣告一個假設 \(h \in H\) ,令 \(D_c\) 表示訓練集 D 中第 c 類樣本組成的集合,那麼 \(P(D_c|h)\) 是在假設 h 的情況下,資料 \(D_c\) 產生的概率。則假設 h 對資料集 \(D_c\) 的似然是

\[P(D_c|h) = \prod_{x \in D_c}P(x|h) \]

對 h 進行最大似然估計,就是尋找能最大化似然\(P(D_c|h)\)的假設h。

在上式中,用到了連乘操作,我們都知道連乘操作中,一旦資料過大會造成下溢,所以我們通常使用對數似然(Log-Likelihood)公式來替代上面的連乘公式:

\[LL(h) = log P(D_c|h) = \sum_{x \in D_c}logP(x|h) \]

那麼最大似然估計的目的就可以寫為公式:

\[h_c = argmax_{h_c}LL(h_c) \]

既然我們已經瞭解了最大似然估計,知道它可以用來求引數值,那麼我們現在可以來求高斯分佈的引數 \(\mu_c\)\(\sigma_c^2\)的最大似然估計

\[\mu_c = \frac{1}{|D_c|}\sum_{x \in D_c}x \]

\[\sigma_c^2 = \frac{1}{|D_c|}\sum_{x \in D_c}(x - \mu_c)(x - \mu)^T \]

即,通過最大似然估計求得的正態分佈均值就是樣本均值,方差就是 \((x - \mu_c)(x - \mu)^T\) 的均值。

最小二乘法的推導

交叉熵的推導

貝葉斯法則

Bayes' Law,又稱貝葉斯定理(Bayes' theorem)或者貝葉斯規則(Bayes' rule)

公式:事件A發生的情況下事件B發生的概率:

\[P(A|B) = \frac{P(B|A)P(A)}{P(B)} \]

通常用於已經觀察到一個結果後,評估潛在的原因的可能性,可以將上述公式寫成:

\[P(Cause|Effect) = \frac{P(Effect|Cause)P(Cause)}{P(Effect)} \]

貝葉斯推論 Bayes'Inference

  • \(P(D|h)\) :所有假設中資料D在假設h下生成的概率($h \in H $),其實就是我們上面提到的似然函式
  • \(P(h|D)\) :在資料D被觀察到的情況下,假設h是正確的概率,後驗概率(posterior)
  • \(P(h)\):先驗概率(prior)
  • 貝葉斯定理(Bayes' theorem):
    • \(P(h|D)P(D) = P(D|h)P(h)\)
    • \(P(h|D) = \frac{P(D|h)P(h)}{P(D)}\)

也就是說貝葉斯推論是將後驗概率推導為兩個先驗概率和似然函式的結果。

反向傳播的變種

Softmax

這裡說的變種,主要是針對損失函式的變種,除了均方誤差和交叉熵,我們還可以利用 Softmax 誤差(Softmax Error)。

Softmax通常用在處理多分類問題,常用於輸出層。公式為:

\[P_i = \frac{e^{z_i}}{\sum_{j=1}^N e^{z_j}} \]

誤差為:

\[E = -log P_i = -(z_i - log \sum_j e^{z_j}) \]

其中 N 是輸出層神經元的個數,P_i 是第 i 個神經元的輸出。從公式中可以看出,Softmax函式的分子是輸入訊號 \(z_i\) 的指數函式,分母是所有輸入訊號的指數函式的和。

共軛梯度

Conjugate gradients,是一種給迭代演算法,在迭代中最終求得結果。

自然梯度

Natural gradients

權重衰減

Weight Decay,又叫L2正則化,主要用來抑制過擬合。眾所周知,許多的過擬合現象是由於權重引數取值過大引起的。而權重衰退法通過對大的權重進行懲罰和抑制過擬合。假設損失函式利用平方損失函式(MSE),則引入 L2 正則化後的誤差公式為:

\[E = \frac{1}{2} \sum_i(z_i-t_i)^2 + \frac{\lambda}{2} \sum_j w_j^2 \]

  • \(\lambda\) :控制正則化強度的超引數,/lambda/。該值越大,對大的權重懲罰的就越重。
  • \(\frac{\lambda}{2}\):是為了求導之後消去移下來的 2.
  • \(w^2_j\): 平方範數,square norm。 \(w^Tw\)
  • 我們更新權重的公式也相應改變為 \(w\leftarrow w - \eta \frac{\delta E}{\delta w} - \eta \lambda w\).
  • 由公式可以看出,如果一個權重越大,則相當於誤差越大,在調整權重的時候也會調整的幅度更大。這樣相當於我們鼓勵整個神經網路都將權重保持在較小的值上,也就達到了抑制過擬合的作用。

動量

Momentum,這是一個從物理學中引申出的概念。Momentum 的出現主要是為了解決隨機梯度下降法(SGD)的缺點。

SGD的缺點:如果函式的形狀非均向,梯度的方向沒有指向最小值的方向,那麼像SGD這種一直沿著梯度方向前進的演算法就變得不那麼高效,如下圖,這是方程 \(f(x,y)=\frac{1}{20}x^2+y^2\) 的影像:

該方程的等高線是沿x軸方向延申的橢圓狀。

該方程的梯度如下,y 軸方向上梯度大,x 軸方向上梯度小,從圖中可以看出,雖然 \(f(x, y)\) 的最小值在 \((0, 0)\) 上,但是很多位置上的梯度方向沒有指向 \((0,0)\) 點:

我們應用一下SGD,可以看到路徑如圖所示,沿著“之”字型移動,效率非常的低。:

為了避免 SGD 的這個缺點,我們考慮利用動量方法來替代,Momentum適合用來處理高曲率、小但一致的梯度,或者帶噪聲的梯度,公式如下。

\[v \leftarrow \alpha v - \eta \frac{\delta E}{\delta w} \]

\[w\leftarrow w + v \]

  • \(w\):要更新的權重引數
  • \(\frac{\delta E}{\delta w}\):損失函式關於 \(w\) 的梯度
  • \(\eta\):學習率
  • \(v\):對應物理學中的速度
  • \(\alpha\):承擔使物體逐漸減速的任務,例如設定為 0.9。對應物理學中的地面摩擦或者空氣阻力。

第一個公式表示了物體在梯度方向上的受力,在這個力的作用下,物體的速度增加這一個物理法則。如果我們的梯度函式的刨面形狀像一個水槽,權重更新的路徑就會像一個小球在碗中運動一樣。

出現這樣的運動軌跡的原因:動量的更新過程其實就是在減弱橫向振動,並放大了向下運動。當連續的梯度指向相同的方向時,步長最大。即如果動量演算法總是觀察到梯度g,那麼它會在方向-g上不停加速,直到達到最終速度,其中步長大小為(由\(v \leftarrow \alpha v - \eta \frac{\delta E}{\delta w}\)得來)

\[\frac{\eta \frac{\delta E}{\delta w}}{1-\alpha} \]

如果 \(\alpha\) = 0.9,\(1-\alpha\) = 0.1,帶入上述公式,即動量中最大速度是SGD中的10倍,這個提升是顯而易見的。

注:在實際應用中,\(\alpha\) 初始值一般設定的比較小如0.5,0.9,0.99,然後逐漸增大,但是 \(\alpha\) 的調整沒有 \(\eta\) 的調整重要。

常見面試題

  • L1和L2正則化的區別
  • 如何防止過擬合/過擬合的解決辦法
  • 方差偏差的分解公式
  • 用過哪些 Optimizer,效果如何

相關文章