Andrew Ng机器学习课程6
Andrew Ng機器學習課程6
說明
在前面跟隨者臺大機器學習基石課程和機器學習技法課程的設置,對機器學習所涉及到的大部分的知識有了一個較為全面的了解,但是對于沒有動手寫程序并加以使用的情況,基本上是不可能掌握好的。特別是我的學習進程是突擊式的,因此,會很快忘掉,心中只剩下一個基本的綱要,所以后面要通過講解更為詳細的Andrew Ng教授的機器學習課程進行回顧和總結,希望能夠抓住它的來龍去脈。所以總結的內(nèi)容主要是推導的思路,只要能夠把握住思路,就能保持長久的記憶。
主要內(nèi)容
樸素貝葉斯分類器
1. 垃圾郵件特征提取方法
通過垃圾郵件的篩選,介紹了樸素貝葉斯分類器。對于垃圾郵件,建立一個垃圾郵件中經(jīng)常出現(xiàn)的詞的字典,用于將一封郵件通過這個字典轉換為特征向量,這個特征向量的長度等于字典中詞的個數(shù)N=5000,且其每一個位置上的值僅取“1”或“0”,表示對應位置上是否出現(xiàn)了垃圾詞。
2. 樸素貝葉斯假設與樸素貝葉斯分類器
已經(jīng)得到了特征矢量,我們要構建一個generative model。這里先說明一下先驗概率與后驗概率的含義:
先驗概率是指基于先驗知識所得到某一件事情發(fā)生或出現(xiàn)的概率,通常采用大數(shù)據(jù)統(tǒng)計就可以得到先驗概率。比如罹患肝癌(y)的概率,通過統(tǒng)計醫(yī)院的資料,可以計算出先驗概率p(y)來。而后驗概率則是指當某一件事情已經(jīng)發(fā)生或出現(xiàn),回推導致這件事情發(fā)生的因素的概率。比如某人已經(jīng)查出罹患肝癌(y),而導致肝癌發(fā)生的因素有x={酒精、多脂肪、病毒、毒素},即后驗概率就是指p(x|y)。
然后再說明一下機器學習中兩種不同的model:
discrimination model和generative model, 兩者的區(qū)別在于對概率密度的建模上:以二分類問題為例,樣本特征矢量為x,樣本標簽為y,y∈{?1,+1},discrimination model是直接對p(y|x)進行建模,類似logistic regression,思路就是從已知的樣本集(x,y)中直接學習出給定x,輸出y為1的概率是多少。等于說是直接構建以x為輸入?yún)?shù)的y的概率模型。而generative model則是先分別對p(x|y=0)和p(x|y=1)進行建模,然后再通過后驗概率公式(貝葉斯公式)計算得到:
p(y=1|x)=p(x|y=1)×p(y=1)p(x)p(y=0|x)=p(x|y=0)×p(y=0)p(x),這樣就考慮了樣本的產(chǎn)生模型p(y),同時除去分母是不影響判斷的,所以實際上generative model是對聯(lián)合概率密度進行的建模p(y,x)=p(x|y)×p(y)。而對于discrimination model則沒有考慮樣本的生成模型,或者說是認為樣本生成模型是均勻分布的。通常對于generative model要求樣本無窮大或盡可能大,而discrimination model則不需要。為了對p(x|y)進行建模,引入了一個非常強的假設,即假設給定y的情況下,xi是條件獨立的,即每個xi之間是沒有約束關系的。這個假設叫做樸素貝葉斯假設(Naive Bayes assumption),而這樣得到的學習算法就叫做樸素貝葉斯分類器。
3. 垃圾郵件的樸素貝葉斯分類器
接著對垃圾郵件進行建模,有:
很顯然,建立的模型的參數(shù)為p(xi|y)和p(y)。聯(lián)合概率密度的似然函數(shù)為:
L(?y,?j|y=0,?j|y=1)=∏i=1mp(x(i),y(i))
通過最大化聯(lián)合似然函數(shù),可以得到模型參數(shù)的最大似然估計,從而構建出如下模型:
p(y=1|x)=p(x|y=1)×p(y=1)p(x)=(∏ni=1p(xi|y=1))×p(y=1)p(x)p(y=0|x)=p(x|y=0)×p(y=0)p(x)=(∏ni=1p(xi|y=0))×p(y=0)p(x)
選擇具有最高后驗概率的class作為判定依據(jù)。
Ng教授繪制了一種通常的情況用于說明通過典型的generative model :GDA(Gaussian Discrimination Analysis model)方法建立的兩類后驗概率,生成分類邊界實際上與logistic regression的邊界一樣。這說明了兩種模型實際上是有共通之處的,就是上面說過的如果忽略了樣本的產(chǎn)生模型p(y)兩者基本上是類似的。
拉普拉斯平滑
在處理一些還沒有出現(xiàn)或發(fā)生過的事件A時,如果采用上面那種聯(lián)合似然函數(shù)估計出來的p(A)=0,這是不合理的,因為只是在有限的訓練集中沒有看到這個事件發(fā)生,并不代表它一定不發(fā)生,即p(A)=0。這個時候采用laplace smoothing會有更好的估計效果。以估計一個多項隨機變量z∈{1,2,...,k}的均值情況為例,多項分布的參數(shù)為?i=p(z=i),假定m個獨立的觀測值{z(1),...,z(m)},很簡單地得到最大似然估計為:
如前面所講,如果使用最大似然估計,很有可能一些?i=p(z=i)會是0。為了克服這個問題,使用laplace smoothing取代上面的估計:
?i=∑mi+11{z(i)=j}+1m+k
laplace smoothing的效果就是使在觀測值中沒有出現(xiàn)的事件的概率估計保持一定的小概率出現(xiàn),而不是直接認定概率為0。
事件模型
對于上面構建垃圾郵件分類器,實際上丟掉了一些信息,即沒有考慮文本的上下文。Naive Bayes采用multi-variable Bernoulli event model可以解決這樣的問題。認為郵件是這樣產(chǎn)生的:首先根據(jù)先驗概率p(y)隨機生成郵件或垃圾郵件,然后發(fā)送郵件的人遍歷這個垃圾郵件的字典,根據(jù)概率p(xi=1|y)=?i|y獨立決定是否包含第i個word。所以,這個message的概率為:
而multinomial event model是一個不同的模型,將具有n個words的email表示為(xi)(n),不同的郵件的words的長度n可以不同。xi表示的是這個email的第i個word是字典中的第x_i個word的索引index。所以message的概率為:
p(y)∏i=1np(xi|y)
雖然multi-variable Bernoulli event model與multinomial event model得到的概率模型在公式上表現(xiàn)了相同,但是具體的含義卻差別很大,multinomial event model中的xi|y表示的是一個多項分布,而ulti-variable Bernoulli event model中的xi|y表示的是一個bernoulli分布。
神經(jīng)網(wǎng)絡模型
Ng教授通過兩個視頻的例子說明了神經(jīng)網(wǎng)絡模型的力量,一個是手寫體的識別,另一個是模擬小孩說話聲音。都表現(xiàn)出了很好的性能。神經(jīng)網(wǎng)絡是在logistic regression的基礎上引入的,采用sigmoid函數(shù)作為激活函數(shù)。神經(jīng)網(wǎng)絡最大的缺點就是變量太多,導致很容易陷入局部最優(yōu)。神經(jīng)網(wǎng)絡的部分,可以參看我的其他博客文章神經(jīng)網(wǎng)絡模型的總結,有很深入的介紹。
支持向量機的開篇
Ng教授對支撐向量機(support vector machine)是從線性可分問題入手的,介紹了怎樣的分類邊界是好的。對于logistic regression,當θTX遠大于0時,就有很大的confidence認為y=+1,而當θTX遠小于0時,就有很大的confidence認為y=?1。從而引入了兩個margin,一個是function margin,另一個是geometry margin。定義了點(xi,yi)到超平面(w,b)的距離作為function margin: function margin=y(i)(wTx+b),我們求取所有點到?jīng)Q策平面的距離中的最小值作為樣本到?jīng)Q策平面的距離。剩下要做的就是maximize 這個margin。樣本是固定的,而決策超平面是不定的,是由參數(shù)(w,b)決定的。我們所要做的就是調(diào)整(w,b),而如果參數(shù)同時放大時,這個margin也會放大,這樣最大化就沒意義了。所以,定義了geometric margins,約束||w||=1,從而得到了如下的公式化的優(yōu)化問題:
2015-8-23
藝少
轉載于:https://www.cnblogs.com/huty/p/8519223.html
總結
以上是生活随笔為你收集整理的Andrew Ng机器学习课程6的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: const与#define的异同
- 下一篇: 【转】找到 MySQL 数据库中的不良索