本筆記內容為「概率與資訊理論的基礎知識」。內容主要參考《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,...