TensorFlow學習筆記5 概率與資訊理論

2022-07-25 21:33:09 字數 4510 閱讀 7640

本筆記內容為「概率與資訊理論的基礎知識」。內容主要參考《deep learning》中文版。

連續型變數:概率密度函式(probability density function, pdf) \(p(x)\)表示無窮小區域的概率為 \(p(x)\delta x\)。

邊緣概率

條件概率

\(p(y=y_ 0|x=x_ 0)=\frac\)

條件概率的鏈式法則

\(p(a,b,c)=p(a|b,c)p(b,c)p(c)\)

\[p(\boldsymbol)=p(x_ )\prod^_ p(x_ |x_ ,...,x_ )

\]貝葉斯規則:

\[p(x|y)=\frac

\]變數的獨立性

期望:方差:\(var(f(x))=e[(f(x)-e(f(x)))^2]\)

協方差:\(cov(f(x),g(y))=e[(f(x)-e(f(x)))(g(y)-e(g(y)))]\)

相互獨立的兩個隨機變數協方差一定為0。協方差為0的兩個變數不一定獨立。

協方差矩陣\(cov(x)_ = cov(x_ i, x_ j)\),其對角元是方差\(cov(x_ i, x_ i)=var(x_i)\)

\[p(x=1)=\phi

\]\[p(x=0)= 1-\phi

\]\[f(x)=\sqrt} \exp(})

\]

其中$\mu$為期望,$\sigma ^2$為方差,$\beta = 1/\sigma^2$為精度。

標準正態分佈為$\mu=0,\sigma =1$的正態分佈。

\[\boldsymbol} \exp( (x-\mu)}})}

\]

其中$\boldsymbol$為期望,向量形式,$\boldsymbol$是分布的協方差矩陣。
\[p(x;\lambda)=\lambda \exp(-\lambda x), subject\ to\ x \geq 0

\]\[laplace(x;\mu,\gamma)=\frac \exp(- \frac)

\]\[p(x)=\delta (x-\mu)

\]\[\hat(x)=\frac\sum^m_ \delta (x-x^)

\]\[p(x)=\sum_ p(c=i)p(x|c=i)

\]

混合分布由一系列形如$p(x|c=i)$的元件分布組成。常見的高斯混合模型的元件$p(x|c=i)$是高斯分布。**可用來擬合多峰函式。**

高斯混合模型是概率密度的通用近似器。

\[p_y(y) = p_ (g^(y))|\frac}|\]或

\[p_x(x) = p_ (g(x))|\frac}|

\]高維空間中,擴充套件為:

\[p_x(\boldsymbol) = p_ (g(\boldsymbol))|\det(\frac)}}})|

\]事件\(x=x_0\)的自資訊為\(i(x)=-\log p(x)\)。當底數為\(e\)時,資訊量單位為奈特(nats),底數為2時,單位為位元或夏農。這裡底數為\(e\)。

夏農熵為$$h(x)=e_ [i(x)]=-\sum_ p(x_ )\log p(x_ )$$

對同乙個隨機變數的兩種單獨的概率分布\(p(x)\)和\(q(x)\),其差異用kl散度衡量:$$d_ (p||q)=e_ [\log \frac]

=e_ [\log p(x) - \log q(x)]=\sum_ p(x_ )(\log p(x_ )- \log q(x_ ))$$

注意計算\(d_ (p||q)\)還是\(d_ (q||p)\)是不一樣的,因為\(d_ (p||q) \neq d_ (q||p)\)

kl散度是不對稱的。

一般已經拿到了\(p(x)\)的分布,用\(q(x)\)去近似。可以選擇最小化\(d_ (p||q)\)或\(d_ (q||p)\)。

在機器學習中,\(p(x),q(x)\)分別為基於資料集的經驗分布(已知的)與設計的模型概率分布(估計的)。

最大化似然就是最小化kl散度,由於\(\sum_i p(x_i)logp(x_i)\)與模型無關,故最小化kl散度就是最小化交叉熵

交叉熵

\[h(p,q)=-e_ [\log q(x)]=-\sum_ p(x_ )\log q(x_ ) \tag

\]綜上:在機器學習中,最大似然估計,等價於最小化交叉熵。即:任何時候優化函式就是交叉熵,也就是對數似然組成的損失函式(即式\((1)\))。

若3個隨機變數a,b,c滿足:a影響b的取值,b影響c的取值,但a和c在給定b時是條件獨立的(\(p(a,c|b)=p(a|b)p(c|b)\)),則:

\[p(a,b,c)=p(a)p(b|a)p(c|b)

\]通常我們有樣本,卻不知道其中的概率密度模型如何。設每次取樣是獨立同分布的。

測試集樣本獨立同分布很多時,中心極限定理:樣本均值接近高斯分布。

統計中的量:

樣本均值:m個樣本的平均值\(\bar=\fracx_ }\)

樣本方差:\(\sigma ^2 = \frac\sum^m_ (x_ -\bar)^2\)

概率論中的量:

數學期望:\(e(f(x))=\sum_ f(x_ )p(x_ )\)或\(e(f(x))=\int f(x)p(x)dx\)

方差:\(var [f(x)]=e[(f(x)-e[f(x)])^2]\)

常用樣本均值估計:

常用樣本方差估計:

估計量的偏差:\(bias(\hat_ )=e(\hat_ )-\theta\)

其中,\(\hat_ \)為你從m個樣本資料中計算出來的估計量,\(\theta\)為你要估計的模型中的引數。

估計量的方差用公式\(var [\hat_ ]=e[(\hat_ -e[\hat_ ])^2]\)計算。

估計量的標準差為:\(\sigma = \sqrt)}\)

那麼優化時,選擇優化估計量的偏差還是優化估計量的方差呢?

\[mse=e[(\hat_ -\theta)]=bias(\hat)_ ^2 + var(\hat_ )

\]以回歸任務為例:對測試樣本\(x\),令\(y_ \)為\(x\)在資料集中的標記,\(y\)為\(x\)的真實模型中標記,\(f(x;d)\)為訓練集\(d\)上的模型的**輸出。

在乙個訓練集\(d\)上模型 \(f\) 對測試樣本 \(x\)的**輸出為 \(y'=f(x;d)\), 那麼學習演算法 \(f\) 對測試樣本 \(x\) 的期望**為:

\[\bar(x)=e_ [f(x;d)]

\]上面的期望**也就是針對不同資料集 \(d\), \(f\) 對 \(x\) 的**值取其均值, 也被叫做均值**.

使用樣本數相同的不同訓練集產生的方差為:

\[var(x)=e_ [(f(x;d)−\bar(x))^2]

\]雜訊為真實標記與資料集中的實際標記間的偏差:

\[ϵ^2=e_ [(y_ −y)^2]

\]為方便起見,設雜訊期望為0,即\(e_ [y_ -y]=0\)

期望**與真實標記的誤差稱為偏差(bias), 為了方便起見, 我們直接取偏差的平方:

\[bias^2(\bar(x))=(\bar(x)−y)^2

\][1]

:\[=var(f(x;d))+bias^2(\bar(\boldsymbol))+\epsilon^2

\]其中應用到了\(e_[y_d -y]=0\)和\(e[f(x;d)]=\bar(x)\)。

實際應用時 直接計算均方誤差

\[mse_ =\frac \sum^m_||y'_i-y_i||^2

\]學習演算法的平方**誤差期望為(記\(y'=f(x;d)\))[2]

:\[\begin

err(x)&=e[(y−f(x;d))^2]=e[(y−y')^2] \\

&=e[y'^2]-2e[yy']+e[y^2] \\

&=e[y'^2]-e(y')^2+e(y')^2-2ye[y']+y^2 \\

&=e[(y'-e(y'))^2]+[e(y')-y]^2 \\

&=var(y')+bias(y')^2

\end \tag

\]兩者的差別在於:式\((1)\) 沒有考慮\(y_d\) 與 \(y\) 之間的誤差,這就是雜訊。

源自《機器學習》周志華,第45頁。個人更喜歡這個解釋。 ↩︎

源自《深度學習》伊恩·古德費洛,第81頁。 ↩︎

tensorflow學習筆記

tensorflow安裝可以直接通過命令列或者原始碼安裝,在此介紹tensorflow8命令列安裝如下 安裝tensorflow sudo pip install upgrade 另外,解除安裝tensorflow命令為 sudo pip uninstall tensorflow tensorflo...

Tensorflow學習筆記

1.如何在虛擬機器中安裝tensor flow 1 首先安裝pip pip install 2 pip install 2.學習tensorflow需要學習 python and linux 3.使用 tensorflow,你必須明白 tensorflow 1 使用圖 graph 來表示計算任務.2...

TensorFlow學習筆記

1 擬合直線 import the library import tensorflow as tf import numpy as np prepare train data train x np.linspace 1,1,100 temp1 train x,temp2 train x.shape,...