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

機率

高斯分佈

高斯分佈(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)過程。post

首先,咱們聲明一個假設 \(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。spa

在上式中,用到了連乘操做,咱們都知道連乘操做中,一旦數據過大會形成下溢,因此咱們一般使用對數似然(Log-Likelihood)公式來替代上面的連乘公式:3d

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

那麼最大似然估計的目的就能夠寫爲公式:orm

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

既然咱們已經瞭解了最大似然估計,知道它能夠用來求參數值,那麼咱們如今能夠來求高斯分佈的參數 \(\mu_c\)\(\sigma_c^2\)的最大似然估計blog

\[\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一般用在處理多分類問題,經常使用於輸出層,將輸出轉換成機率,輸出總和爲1。公式爲:

\[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,效果如何