機器學習學習筆記(一)

題外話---------------------

好像很久沒有更新了,這學期事比較多,然後之前的幾篇博客寫的也不是很好的樣子,會盡量在假期整理一下。

寫在前面------------------

言歸正傳,這個學習筆記會長期更新,具體內容以及圖片之類的來源主要依賴於同類型的博客以及正在聽的B站上的公開課(地址如下:https://www.bilibili.com/video/av14111147?from=search&seid=1948962273802098210

會依據b站分p來整理

牽涉到matlab以及線代等等的知識可能會備註,也可能直接放鏈接醬紫。

然後可能會寫一些自己的理解,會用斜體標出,但是因爲剛剛接觸可能不具有參考性,如果有問題,請大家不吝珠玉在評論區之處,十分感謝。

因爲是照着我的紙質筆記打的,聽課的時候又查了很多資料,一個字一個字打時間代價太高,就會複製粘貼別人的博客,但是都會註明出處

---------------------------------------------------------------------------

P1  機器學習的動因及應用

學習前要求掌握:

1.計算機科學基本知識&基本技能及原理

2.O

3.數據結構(隊列、棧、二叉樹)

4、基本的概率統計

5、線性代數

definition:

(1959)Field of study that gives computers the ability to learn withoutbeing explicitly programmed.

(1998)A computer program is said to learn from experience E,with respect to some task T and some performance measure P,if its performance on T,as measured by P, improves with experience E.

定義,簡而言之,就是讓機器學習。

這裏提到了:①監督學習(Supervised Learning)②學習理論(Learning Theory)

③無監督學習(Unsupervised Learning)④強化學習(Reinforcement Learning)

視頻在這裏舉了幾個例子來說明這四種算法,都很有意思。記得比較清楚的是雞尾酒會問題(可參見https://www.jianshu.com/p/94ed7e6c67ed),還有就是圖像處理等等。

 

P2  監督學習應用與梯度下降

首先是本課程貫穿始終的幾個標記符:

m:訓練樣本的數量(就是給機器學習的信息的數量)

x:輸入變量(查詢)

y:輸出變量或稱目標變量(由既定模型推導出的結果)

(x,y):一個樣本(從這裏可以看出,一個樣本就是一個條件+一個結論)

(x(i),y(i)):第i個樣本(注:這裏的(i)是上標)

注:當然,x可以不止一個,畢竟生活中影響因素是有很多的

監督學習:告訴算法每個樣本的正確答案,學習後的算法對新的輸入也能輸入正確的答案。監督指的是在訓練樣本答案的監督下。

(也就是說,每一個問題都有其標準答案)

(也就是訓練集通過算法得到函數h,輸入x,x經過h的作用得到y)

在上節課提到了一個關於房子的面積和價格的例子,數據如下:

監督學習過程:

1)      將訓練樣本提供給學習算法

2)      算法生成一個輸出函數(一般用h表示,成爲假設)

3)      這個函數接收輸入,輸出結果。(本例中爲,接收房屋面積,輸出房價)將x映射到y。

因爲式子很難打出來,所以就用了截屏,來源:https://blog.csdn.net/crcr/article/details/39481307

關於梯度下降,就要先提一下梯度,這個在高數裏有提到過(梯度的本意是一個向量(矢量),表示某一函數在該點處的方向導數沿着該方向取得最大值,即函數在該點處沿着該方向(此梯度的方向)變化最快,變化率最大(爲該梯度的模)。)

(和高數那個感覺很像,就是容易聯想到地理中學過的等高線,然後就想地理老師教我們怎麼找山脊(好像是這麼叫的),就是沿着等高線下降的方向這樣去找)

梯度下降算法的思想是,我們要選取一個初使點,可能是0向量,也可能是一個隨機生成的點。想象看到的圖形是一個三維地表:

想象這個圖描述的是你所處的環境,你的周圍有很多小山。你站在其中一點,轉一圈,然後選擇下山最快的路,走一步,繼續轉一圈,再選擇下山最快的路,再走一步。事實上這個下山最快的方向正是梯度的方向,直到你達到了這個山的最低點,也就是這個函數的一個局部最小值。

這裏有學生提問,如何讓機器環顧四周(笑),老師給的回答是,通過計算偏導數(總之和高數講梯度的那裏高度一致啦)

 

迴歸在數學上來說是給定一個點集,能夠用一條曲線去擬合之,如果這個曲線是一條直線,那就被稱爲線性迴歸,如果曲線是一條二次曲線,就被稱爲二次迴歸,迴歸還有很多的變種,如locally weighted迴歸,logistic迴歸,等等。

用一個很簡單的例子來說明迴歸,大概就是,做一個房屋價值的評估系統,一個房屋的價值來自很多地方,比如說面積、房間的數量(幾室幾廳)、地 段、朝向等等,這些影響房屋價值的變量被稱爲特徵(feature)

假設有一個房屋銷售的數據如下:

面積(m^2)  銷售價錢(萬元)

123            250

150            320

87              160

102            220

…               …

這個表類似於帝都5環左右的房屋價錢,我們可以做出一個圖,x軸是房屋的面積。y軸是房屋的售價,如下:

 

 

 

如果來了一個新的面積,假設在銷售價錢的記錄中沒有的,我們怎麼辦呢?

我們可以用一條曲線去儘量準的擬合這些數據,然後如果有新的輸入過來,我們可以在將曲線上這個點對應的值返回。如果用一條直線去擬合,可能是下面的樣子:

 

 

 

綠色的點就是我們想要預測的點。

首先給出一些概念和常用的符號,在不同的機器學習書籍中可能有一定的差別。

房屋銷售記錄表 - 訓練集(training set)或者訓練數據(training data), 是我們流程中的輸入數據,一般稱爲x

房屋銷售價錢 - 輸出數據,一般稱爲y

擬合的函數(或者稱爲假設或者模型),一般寫做 y = h(x)

訓練數據的條目數(#training set), 一條訓練數據是由一對輸入數據和輸出數據組成的

輸入數據的維度(特徵的個數,#features),n

下面是一個典型的機器學習的過程,首先給出一個輸入數據,我們的算法會通過一系列的過程得到一個估計的函數,這個函數有能力對沒有見過的新數據給出一個新的估計,也被稱爲構建一個模型。就如同上面的線性迴歸函數。

 

 

 

我們用X1,X2..Xn 去描述feature裏面的分量,比如x1=房間的面積,x2=房間的朝向,等等,我們可以做出一個估計函數:

 

 

 

θ在這兒稱爲參數,在這兒的意思是調整feature中每個分量的影響力,就是到底是房屋的面積更重要還是房屋的地段更重要。爲了如果我們令X0 = 1,就可以用向量的方式來表示了:

 

 

 

我們程序也需要一個機制去評估我們θ是否比較好,所以說需要對我們做出的h函數進行評估,一般這個函數稱爲損失函數(loss function)或者錯誤函數(error function),描述h函數不好的程度,在下面,我們稱這個函數爲J函數

在這兒我們可以做出下面的一個錯誤函數:

 

 

 

這個錯誤估計函數是去對x(i)的估計值與真實值y(i)差的平方和作爲錯誤估計函數,前面乘上的1/2是爲了在求導的時候,這個係數就不見了。

(引用自https://www.cnblogs.com/ECJTUACM-873284962/p/8620058.html

(1) 批梯度下降算法:

上述爲處理一個訓練樣本的公式,將其派生成包含m個訓練樣本的算法,循環下式直至收斂:

 

複雜度分析:

對於每個的每次迭代,即上式所示,時間爲O(m)

每次迭代(走一步)需要計算n個特徵的梯度值,複雜度爲O(mn)

 

一般來說,這種二次函數的的三維圖形爲一個碗狀,有一個唯一的全局最小值。其等高線爲一個套一個的橢圓形,運用梯度下降會快速收斂到圓心。

 

梯度下降性質:接近收斂時,每次的步子會越來越小。其原因是每次減去乘以梯度,但是梯度會越來越小,所以步子會越來越小。

 

下圖爲使用梯度下降擬合的上例房屋大小和價格的曲線

 

檢測是否收斂的方法:

1)      檢測兩次迭代的改變量,若不再變化,則判定收斂

2)      更常用的方法:檢驗,若不再變化,判定收斂

 

批梯度下降算法的優點是能找到局部最優解,但是若訓練樣本m很大的話,其每次迭代都要計算所有樣本的偏導數的和,當訓練集合數據量大時效率比較低,需要的時間比較長,於是採用下述另一種梯度下降方法。

 

(2) 隨機梯度下降算法(增量梯度下降算法):

 

每次計算不需要再遍歷所有數據,而是隻需計算樣本i即可。

批梯度下降中,走一步爲考慮m個樣本;隨機梯度下降中,走一步只考慮1個樣本

每次迭代複雜度爲O(n)。當m個樣本用完時,繼續循環到第1個樣本。

增量梯度下降算法可以減少大訓練集收斂的時間(比批量梯度下降快很多),但可能會不精確收斂於最小值而是接近最小值。

上述使用了迭代的方法求最小值,實際上對於這類特定的最小二乘迴歸問題,或者普通最小二乘問題,存在其他方法給出最小值,接下來這種方法可以給出參數向量的解析表達式,如此一來就不需要迭代求解了。

 

 正規方程組

給定一個函數J,J是一個關於參數數組的函數,定義J的梯度關於的導數,它自己也是一個向量。向量大小爲n+1維(從0到n),如下:

所以,梯度下降算法可寫成:

J:關於參數數組的函數;

下三角:梯度

更普遍的講,對於一個函數f,f的功能是將一個m*n的矩陣映射到實數空間上,即:

假設輸入爲m*n大小的矩陣A,定義f關於矩陣A的導數爲:

導數本身也是個矩陣,包含了f關於A的每個元素的偏導數。

 

如果A是一個方陣,即n*n的矩陣,則將A的跡定義爲A的對角元素之和,即:

 

trA即爲tr(A)的簡化。跡是一個實數。

 

一些關於跡運算符和導數的定理:

1)      trAB = trBA

2)      trABC = trCAB = trBCA

3)      

4)      

5)      若 ,tra = a

6)      

  

有了上述性質,可以開始推導了:

定義矩陣X,稱爲設計矩陣,包含了訓練集中所有輸入的矩陣,第i行爲第i組輸入數據,即:

則由於,所以可得:

又因爲對於向量z,有,則有:

由上述最後一個性質可得:

通過上述6個性質,推導:

倒數第三行中,運用最後一個性質

 

置爲0,則有:

稱爲正規方程組

可得:

結束P2之前再安利一個博客:https://blog.csdn.net/xiazdong/article/details/7950084

還有就是有關線性代數的內容,如果時間足夠而且還想順便練英語的話,安利http://open.163.com/special/opencourse/daishu.html

如果沒時間的話,可以先簡要了解一下相關的計算方法:

①逆矩陣https://jingyan.baidu.com/article/925f8cb8a74919c0dde056e7.html

②特徵方程https://jingyan.baidu.com/article/6fb756ec6f8624241858fbda.html

③矩陣的跡https://blog.csdn.net/caimouse/article/details/59697453

 

P3  欠擬合與過擬合概念

(所謂欠擬合,就是特徵集過少導致模型過於簡單,簡而言之就是可能誤差較大;所謂過擬合就是特徵集過大導致模型過於複雜,簡而言之就是不具有代表性)

一下內容來自https://blog.csdn.net/maverick1990/article/details/11721453

複習:

 –第i個訓練樣本

,以參數向量爲條件,對於輸入x,輸出爲:

n爲特徵數量

定義成本函數J,定義爲:

m爲訓練樣本

通過正規方程組推導的結論:

 

1、 過擬合與欠擬合

通常,你選擇交給學習算法處理的特徵的方式對算法的工作過程有很大影響。

例:上次課的例子中,用x1表示房間大小。通過線性迴歸,在橫軸爲房間大小,縱軸爲價格的圖中,畫出擬合曲線。迴歸的曲線方程爲:

 

若定義特徵集合爲:x1表示房子大小,x2表示房子大小的平方,使用相同的算法,擬合得到一個二次函數,在圖中即爲一個拋物線,即:

以此類推,若訓練集有7個數據,則可擬合出最高6次的多項式,可以找到一條完美的曲線,該曲線經過每個數據點。但是這樣的模型又過於複雜,擬合結果僅僅反映了所給的特定數據的特質,不具有通過房屋大小來估計房價的普遍性。而線性迴歸的結果可能無法捕獲所有訓練集的信息。

 

所以,對於一個監督學習模型來說,過小的特徵集合使得模型過於簡單,過大的特徵集合使得模型過於複雜

 

對於特徵集過小的情況,稱之爲欠擬合(underfitting)

對於特徵集過大的情況,稱之爲過擬合(overfitting)

 

解決此類學習問題的方法:

1)       特徵選擇算法:一類自動化算法,在這類迴歸問題中選擇用到的特徵

2)       非參數學習算法:緩解對於選取特徵的需求,引出局部加權迴歸

 

參數學習算法(parametric learning algorithm)

定義:參數學習算法是一類有固定數目參數,以用來進行數據擬合的算法。設該固定的參數集合爲。線性迴歸即使參數學習算法的一個例子

 

非參數學習算法(Non-parametric learning algorithm)

定義:一個參數數量會隨m(訓練集大小)增長的算法。通常定義爲參數數量雖m線性增長。換句話說,就是算法所需要的東西會隨着訓練集合線性增長,算法的維持是基於整個訓練集合的,即使是在學習以後。

 

2、  局部加權迴歸(Locally Weighted Regression)

一種特定的非參數學習算法。也稱作Loess。

算法思想:

假設對於一個確定的查詢點x,在x處對你的假設h(x)求值。

對於線性迴歸,步驟如下:

1)       擬合出,使最小

2)       返回

對於局部加權迴歸,當要處理x時:

1)       檢查數據集合,並且只考慮位於x周圍的固定區域內的數據點

2)       對這個區域內的點做線性迴歸,擬合出一條直線

3)       根據這條擬合直線對x的輸出,作爲算法返回的結果

用數學語言描述即:

1)       擬合出,使最小

2)       w爲權值,有很多可能的選擇,比如:

 

-          其意義在於,所選取的x(i)越接近x,相應的w(i)越接近1;x(i)越遠離x,w(i)越接近0。直觀的說,就是離得近的點權值大,離得遠的點權值小。

-          這個衰減函數比較具有普遍意義,雖然它的曲線是鐘形的,但不是高斯分佈。

-          被稱作波長函數,它控制了權值隨距離下降的速率。它越小,鐘形越窄,w衰減的很快;它越大,衰減的就越慢。

3)         返回

總結:對於局部加權迴歸,每進行一次預測,都要重新擬合一條曲線。但如果沿着x軸對每個點都進行同樣的操作,你會得到對於這個數據集的局部加權迴歸預測結果,追蹤到一條非線性曲線。

*局部加權迴歸的問題:

由於每次進行預測都要根據訓練集擬合曲線,若訓練集太大,每次進行預測的用到的訓練集就會變得很大,有方法可以讓局部加權迴歸對於大型數據集更高效,詳情參見Andrew Moore的關於KD-tree的工作。

 

3、 概率解釋

 概率解釋所解決的問題:

在線性迴歸中,爲什麼選擇最小二乘作爲計算參數的指標,使得假設預測出的值和真正y值之間面積的平方最小化?

我們提供一組假設,證明在這組假設下最小二乘是有意義的,但是這組假設不唯一,還有其他很多方法可以證明其有意義。

 

(1)  假設1:

假設輸入與輸出爲線性函數關係,表示爲:

其中,爲誤差項,這個參數可以理解爲對未建模效應的捕獲,如果還有其他特徵,這個誤差項表示了一種我們沒有捕獲的特徵,或者看成一種隨機的噪聲。

假設服從某個概率分佈,如高斯分佈(正態分佈):,表示一個均值是0,方差是的高斯分佈。

高斯分佈的概率密度函數:

根據上述兩式可得:

即,在給定了特徵與參數之後,輸出是一個服從高斯分佈的隨機變量,可描述爲:

*爲什麼選取高斯分佈?

1)     便於數學處理

2)     對絕大多數問題,如果使用了線性迴歸模型,然後測量誤差分佈,通常會發現誤差是高斯分佈的。

3)    中心極限定律:若干獨立的隨機變量之和趨向於服從高斯分佈。若誤差有多個因素導致,這些因素造成的效應的總和接近服從高斯分佈。

注意:並不是一個隨機變量,而是一個嘗試估計的值,就是說它本身是一個常量,只不過我們不知道它的值,所以上式中用分號表示。分號應讀作“以…作爲參數”,上式讀作“給定x(i)以爲參數的y(i)的概率服從高斯分佈”。

假設每個 爲IID(independently and identically distributed)獨立同分布

即誤差項彼此之間是獨立的,並且他們服從均值和方差相同的高斯分佈

 

(2) 假設2:

的似然性爲(即給定x(i)以爲參數的y(i)的概率):

由於是獨立同分布,所以上式可寫成所有分佈的乘積:

 

(3)假設3:

極大似然估計:選取使似然性最大化(數據出現的可能性儘可能大)

定義對數似然函數爲

上式兩個加項,前一項爲常數。所以,使似然函數最大,就是使後一項最小,即:

這一項就是之前的 ,由此得證,即之前的最小二乘法計算參數,實際上是假設了誤差項滿足高斯分佈,且獨立同分布的情況,使似然最大化來計算參數。

注意:高斯分佈的方差對最終結果沒有影響,由於方差一定爲正數,所以無論取什麼值,最後結果都相同。這個性質會在下節課講到。

 

4、 Logistic迴歸

這是我們要學習的第一個分類算法。之前的迴歸問題嘗試預測的變量y是連續變量,在這個分類算法中,變量y是離散的,y只取{0,1}兩個值。

一般這種離散二值分類問題用線性迴歸效果不好。比如x<=3,y=0;x>3,y=1,那麼當x>3的樣本佔得比例很大是,線性迴歸的直線斜率就會越來越小,y=0.5時對應的x判決點就會比3大,造成預測錯誤。

若y取值{0,1},首先改變假設的形式,使假設得到的值總在[0,1]之間,即:

所以,選取如下函數:

其中:

g函數一般被稱爲logistic函數,圖像如下:

 

z很小時,g(z)趨於0,z很大時,g(z)趨於1,z=0時,g(z)=0.5

對假設的概率解釋:

假設給定x以爲參數的y=1和y=0的概率:

可以簡寫成:

參數的似然性:

求對數似然性:

爲了使似然性最大化,類似於線性迴歸使用梯度下降的方法,求對數似然性對的偏導,即:

因爲求最大值,此時爲梯度上升。

偏導數展開:

則:

即類似上節課的隨機梯度上升算法,形式上和線性迴歸是相同的,只是符號相反,爲logistic函數,但實質上和線性迴歸是不同的學習算法。

 

5、 感知器算法

在logistic方法中,g(z)會生成[0,1]之間的小數,但如何是g(z)只生成0或1?

所以,感知器算法將g(z)定義如下:

同樣令,和logistic迴歸的梯度上升算法類似,學習規則如下:

儘管看起來和之前的學習算法類似,但感知器算法是一種非常簡便的學習算法,臨界值和輸出只能是0或1,是比logistic更簡單的算法。後續講到學習理論是,會將其作爲基本的構造步驟。

 

(想簡要談一下個人的看法,單單從前三節課的內容來看,還不是很能理解機器學習到底如何操作,不過可以看出來的是,無論是梯度下降還是梯度上升包括後面會提到的牛頓方法,都是在解決如何處理數據使得數據能代表普遍情況,以便做出預測或者說決策。當然這是個人的觀點)

還有就是關於課程內容的註釋:

①高斯分佈的概率密度函數(高斯分佈就是大家熟悉的正態分佈):

高斯分佈(Gaussian Distribution)的概率密度函數(probability density function)

(看百度百科的意思是這個是一維情況,然而我也不是很確定百度百科的正確性)

然後這個是維基的鏈接https://en.m.wikipedia.org/wiki/Normal_distribution個人覺得寫的還不錯

②似然性https://blog.csdn.net/lwq1026/article/details/70161857原來是數理裏的概念,還沒學難怪聽課的時候一直聽不明白,不過這個沒有關係,很初步的概念和高中關係挺大的,可以回憶一下

在開始P4之前,再安利一個博客https://www.cnblogs.com/shixiangwan/p/7532830.html

 

P4  牛頓方法

第一遍聽課的時候就聽懂了幾點:1.牛頓方法很快……2.牛頓方法與前面的各種梯度的區別還有這個是二階收斂。3.牛頓方法大概在計算上比較麻煩?

(私以爲可以理解爲就像一次函數和二次函數的區別那樣。二次函數比一次函數增長的速度快,但是同樣的在計算上就沒有一階線性那麼美好了。就像解題的各種方法裏,最快的、或者說最美的,可能思維量最大、或者說往往需要另闢蹊徑……扯遠了)

(啊啊啊,好不容易編完的東西又不見了,是不是又有bug了)

引用自:http://www.cnblogs.com/BYRans/p/4720436.html

     邏輯迴歸中利用Sigmoid函數g(z)和梯度上升來最大化ℓ(θ)。現在我們討論另一個最大化ℓ(θ)的算法----牛頓方法。

     牛頓方法是使用迭代的方法尋找使f(θ)=0的θ值,在這裏θ是一個真實的值,不是一個參數,只不過θ的真正取值不確定。牛頓方法數學表達式爲:

     

      牛頓方法簡單的理解方式爲:先隨機選一個點,然後求出f在該點的切線,即f在該點的導數。該切線等於0的點,即該切線與x軸相交的點爲下一次迭代的值。直至逼近f等於0的點。過程如下圖:

     

 

 

牛頓方法最大化Likelihood

      牛頓方法提供了一種尋找f(θ)=0的θ值的方法。怎麼用於最大化似然函數ℓ (θ)呢?ℓ的最大值對應點處的一階導數ℓ'(θ)爲零。所以讓f(θ) = ℓ'(θ),最大化ℓ (θ)就可以轉化爲:用牛頓方法求ℓ'(θ)=0的θ的問題。由牛頓方法的表達式,θ的迭代更新公式爲:

     

 

牛頓-拉夫森迭代法(Newton-Raphson method)

     邏輯迴歸中θ是一個向量,所以我們把上面的表達式推廣到多維的情況就是牛頓-拉夫森迭代法(Newton-Raphson method),表達式如下:

     

      表達式中表示的ℓ(θ)對的偏導數;H是一個n*n的矩陣,稱爲Hessian矩陣。Hessian矩陣的表達式爲:

     

 

 

牛頓方法VS梯度下降

      如下圖是一個最小化一個目標方程的例子,紅色曲線是利用牛頓法迭代求解,綠色曲線是利用梯度下降法求解:

     

      牛頓方法通常比梯度下降收斂速度快,迭代次數也少。

      但因爲要計算Hessian矩陣的逆,所以每次迭代計算量比較大。當Hessian矩陣不是很大時牛頓方法要優於梯度下降。

注:老師在課堂上回答學生問題的時候提到牛頓方法並不適用所有的函數,要求f必須滿足一定的條件(但是老師並沒有提到是什麼條件,也可能是我上課走神了……)

softmax迴歸被普遍認爲是logistic迴歸的推廣

 

小結

已經寫到P4了,希望可以繼續堅持下去。

在這裏小結一下到目前爲止老師在課堂上提到的各種分佈:高斯分佈、伯努利分佈、泊松分佈、伽馬分佈、β分佈、Wishart分佈、Dirichlet分佈……

(本來在這裏還有各種分佈的中文版介紹,但是不曉得爲啥被吞了,實在沒力氣寫了,就放在下面翻譯的內容裏吧)

介於個人比較喜歡維基百科英文版的介紹,覺得比較看得懂,所以就在之後放上一些摘錄,希望在自己做筆記的同時也可以幫大家更好得理解。

高斯分佈

In probability theory, the normal (or Gaussian or Gauss or Laplace–Gauss) distribution is a very common continuous probability distribution. Normal distributions are important in statistics and are often used in the natural and social sciences to represent real-valued random variables whose distributions are not known.[1][2] A random variable with a Gaussian distribution is said to be normally distributed and is called a normal deviate.

(抓狂!!每次都吞我的內容)

伯努利分佈

In probability theory and statistics, the Bernoulli distribution, named after Swiss mathematician Jacob Bernoulli,[1] is the discrete probability distribution of a random variable which takes the value 1 with probability p {\displaystyle p} p and the value 0 with probability q = 1 − p {\displaystyle q=1-p} q=1-p, that is, the probability distribution of any single experiment that asks a yes–no question; the question results in a boolean-valued outcome, a single bit of information whose value is success/yes/true/one with probability p and failure/no/false/zero with probability q. It can be used to represent a coin toss where 1 and 0 would represent "head" and "tail" (or vice versa), respectively. In particular, unfair coins would have p ≠ 0.5 {\displaystyle p\neq 0.5} p\neq 0.5.

The Bernoulli distribution is a special case of the binomial distribution where a single experiment/trial is conducted (n=1). It is also a special case of the two-point distribution, for which the outcome need not be a bit, i.e., the two possible outcomes need not be 0 and 1.

Bernoulli
Parameters 0 < p < 1 , p ∈ R {\displaystyle 0<p<1,p\in \mathbb {R} } 0<p<1,p\in \mathbb {R}
Support k ∈ { 0 , 1 } {\displaystyle k\in \{0,1\}\,} k\in \{0,1\}\,
pmf { q = ( 1 − p ) for  k = 0 p for  k = 1 {\displaystyle {\begin{cases}q=(1-p)&{\text{for }}k=0\\p&{\text{for }}k=1\end{cases}}} {\begin{cases}q=(1-p)&{\text{for }}k=0\\p&{\text{for }}k=1\end{cases}}
CDF { 0 for  k < 0 1 − p for  0 ≤ k < 1 1 for  k ≥ 1 {\displaystyle {\begin{cases}0&{\text{for }}k<0\\1-p&{\text{for }}0\leq k<1\\1&{\text{for }}k\geq 1\end{cases}}} {\displaystyle {\begin{cases}0&{\text{for }}k<0\\1-p&{\text{for }}0\leq k<1\\1&{\text{for }}k\geq 1\end{cases}}}
Mean p {\displaystyle p\,} p\,
Median { 0 if  q > p 0.5 if  q = p 1 if  q < p {\displaystyle {\begin{cases}0&{\text{if }}q>p\\0.5&{\text{if }}q=p\\1&{\text{if }}q<p\end{cases}}} {\begin{cases}0&{\text{if }}q>p\\0.5&{\text{if }}q=p\\1&{\text{if }}q<p\end{cases}}
Mode { 0 if  q > p 0 , 1 if  q = p 1 if  q < p {\displaystyle {\begin{cases}0&{\text{if }}q>p\\0,1&{\text{if }}q=p\\1&{\text{if }}q<p\end{cases}}} {\begin{cases}0&{\text{if }}q>p\\0,1&{\text{if }}q=p\\1&{\text{if }}q<p\end{cases}}
Variance p ( 1 − p ) ( = p q ) {\displaystyle p(1-p)(=pq)\,} p(1-p)(=pq)\,
Skewness 1 − 2 p p q {\displaystyle {\frac {1-2p}{\sqrt {pq}}}} {\frac {1-2p}{\sqrt {pq}}}
Ex. kurtosis 1 − 6 p q p q {\displaystyle {\frac {1-6pq}{pq}}} {\frac {1-6pq}{pq}}
Entropy − q ln ⁡ ( q ) − p ln ⁡ ( p ) {\displaystyle -q\ln(q)-p\ln(p)\,} -q\ln(q)-p\ln(p)\,
MGF q + p e t {\displaystyle q+pe^{t}\,} q+pe^{t}\,
CF q + p e i t {\displaystyle q+pe^{it}\,} q+pe^{it}\,
PGF q + p z {\displaystyle q+pz\,} q+pz\,
Fisher information 1 p ( 1 − p ) {\displaystyle {\frac {1}{p(1-p)}}} {\frac {1}{p(1-p)}}

 

泊松分佈

In probability theory and statistics, the Poisson distribution (French pronunciation: ​[pwasɔ̃]; in English often rendered /ˈpwɑːsɒn/), named after French mathematician Siméon Denis Poisson, is a discrete probability distribution that expresses the probability of a given number of events occurring in a fixed interval of time or space if these events occur with a known constant rate and independently of the time since the last event.[1] The Poisson distribution can also be used for the number of events in other specified intervals such as distance, area or volume.

For instance, an individual keeping track of the amount of mail they receive each day may notice that they receive an average number of 4 letters per day. If receiving any particular piece of mail does not affect the arrival times of future pieces of mail, i.e., if pieces of mail from a wide range of sources arrive independently of one another, then a reasonable assumption is that the number of pieces of mail received in a day obeys a Poisson distribution.[2] Other examples that may follow a Poisson include the number of phone calls received by a call center per hour and the number of decay events per second from a radioactive source.

Examples[edit]

The Poisson distribution may be useful to model events such as

  • The number of meteorites greater than 1 meter diameter that strike Earth in a year
  • The number of patients arriving in an emergency room between 10 and 11 pm
Poisson

Probability mass function

Plot of the Poisson PMF
The horizontal axis is the index k, the number of occurrences. λ is the expected number of occurrences. The vertical axis is the probability of k occurrences given λ. The function is defined only at integer values of k. The connecting lines are only guides for the eye.

Cumulative distribution function

Plot of the Poisson CDF
The horizontal axis is the index k, the number of occurrences. The CDF is discontinuous at the integers of k and flat everywhere else because a variable that is Poisson distributed takes on only integer values.
Parameters λ > 0 (real) — rate
Support k ∈ N ∪ { 0 } {\displaystyle k\in \mathbb {N} \cup \{0\}} {\displaystyle k\in \mathbb {N} \cup \{0\}}
pmf λ k e − λ k ! {\displaystyle {\frac {\lambda ^{k}e^{-\lambda }}{k!}}} {\displaystyle {\frac {\lambda ^{k}e^{-\lambda }}{k!}}}
CDF

Γ ( ⌊ k + 1 ⌋ , λ ) ⌊ k ⌋ ! {\displaystyle {\frac {\Gamma (\lfloor k+1\rfloor ,\lambda )}{\lfloor k\rfloor !}}} {\frac {\Gamma (\lfloor k+1\rfloor ,\lambda )}{\lfloor k\rfloor !}}, or e − λ ∑ i = 0 ⌊ k ⌋ λ i i !   {\displaystyle e^{-\lambda }\sum _{i=0}^{\lfloor k\rfloor }{\frac {\lambda ^{i}}{i!}}\ } e^{-\lambda }\sum _{i=0}^{\lfloor k\rfloor }{\frac {\lambda ^{i}}{i!}}\, or Q ( ⌊ k + 1 ⌋ , λ ) {\displaystyle Q(\lfloor k+1\rfloor ,\lambda )} Q(\lfloor k+1\rfloor ,\lambda )

(for k ≥ 0 {\displaystyle k\geq 0} k\geq 0, where Γ ( x , y ) {\displaystyle \Gamma (x,y)} \Gamma (x,y) is the upper incomplete gamma function, ⌊ k ⌋ {\displaystyle \lfloor k\rfloor } \lfloor k\rfloor is the floor function, and Q is the regularized gamma function)
Mean λ {\displaystyle \lambda } \lambda
Median ≈ ⌊ λ + 1 / 3 − 0.02 / λ ⌋ {\displaystyle \approx \lfloor \lambda +1/3-0.02/\lambda \rfloor } \approx \lfloor \lambda +1/3-0.02/\lambda \rfloor
Mode ⌈ λ ⌉ − 1 , ⌊ λ ⌋ {\displaystyle \lceil \lambda \rceil -1,\lfloor \lambda \rfloor } \lceil \lambda \rceil -1,\lfloor \lambda \rfloor
Variance λ {\displaystyle \lambda } \lambda
Skewness λ − 1 / 2 {\displaystyle \lambda ^{-1/2}} \lambda ^{-1/2}
Ex. kurtosis λ − 1 {\displaystyle \lambda ^{-1}} \lambda ^{-1}
Entropy

λ [ 1 − log ⁡ ( λ ) ] + e − λ ∑ k = 0 ∞ λ k log ⁡ ( k ! ) k ! {\displaystyle \lambda [1-\log(\lambda )]+e^{-\lambda }\sum _{k=0}^{\infty }{\frac {\lambda ^{k}\log(k!)}{k!}}} \lambda [1-\log(\lambda )]+e^{-\lambda }\sum _{k=0}^{\infty }{\frac {\lambda ^{k}\log(k!)}{k!}} (for large λ {\displaystyle \lambda } \lambda)

1 2 log ⁡ ( 2 π e λ ) − 1 12 λ − 1 24 λ 2 − {\displaystyle {\frac {1}{2}}\log(2\pi e\lambda )-{\frac {1}{12\lambda }}-{\frac {1}{24\lambda ^{2}}}-{}} {\displaystyle {\frac {1}{2}}\log(2\pi e\lambda )-{\frac {1}{12\lambda }}-{\frac {1}{24\lambda ^{2}}}-{}}
19 360 λ 3 + O ( 1 λ 4 ) {\displaystyle \qquad {\frac {19}{360\lambda ^{3}}}+O\left({\frac {1}{\lambda ^{4}}}\right)} \qquad {\frac {19}{360\lambda ^{3}}}+O\left({\frac {1}{\lambda ^{4}}}\right)
MGF exp ⁡ ( λ ( e t − 1 ) ) {\displaystyle \exp(\lambda (e^{t}-1))} \exp(\lambda (e^{t}-1))
CF exp ⁡ ( λ ( e i t − 1 ) ) {\displaystyle \exp(\lambda (e^{it}-1))} \exp(\lambda (e^{it}-1))
PGF exp ⁡ ( λ ( z − 1 ) ) {\displaystyle \exp(\lambda (z-1))} \exp(\lambda (z-1))
Fisher information 1 λ {\displaystyle {\frac {1}{\lambda }}} \frac{1}{\lambda}

有關分佈的一篇:https://blog.csdn.net/lv_tianxiaomiao/article/details/69389761

 

P5 生成學習算法

(摘自:https://blog.csdn.net/andrewseu/article/details/46789121

本講大綱:

1.生成學習算法(Generative learning algorithm)
2.高斯判別分析(GDA,Gaussian Discriminant Analysis)
3.樸素貝葉斯(Naive Bayes)
4.拉普拉斯平滑(Laplace smoothing)

1.生成學習算法

判別學習算法(discriminative learning algorithm):直接學習p(y|x)(比如說logistic迴歸)或者說是從輸入直接映射到{0,1}.

生成學習算法(generative learning algorithm):p(x|y)(和p(y))進行建模.

簡單的來說,判別學習算法的模型是通過一條分隔線把兩種類別區分開,而生成學習算法是對兩種可能的結果分別進行建模,然後分別和輸入進行比對,計算出相應的概率。

比如說良性腫瘤和惡性腫瘤的問題,對良性腫瘤建立model1(y=0),對惡性腫瘤建立model2(y=1),p(x|y=0)表示是良性腫瘤的概率,p(x|y=1)表示是惡性腫瘤的概率.

根據貝葉斯公式(Bayes rule)推導出y在給定x的概率爲:這裏寫圖片描述

2.高斯判別分析

GDA是我們要學習的第一個生成學習算法.

GDA的兩個假設:

  • 假設輸入特徵x∈Rn,並且是連續值;
  • p(x|y)是多維正態分佈(multivariate normal distribution);

2.1 多維正態分佈
若x服從多維正態分佈(也叫多維高斯分佈),均值向量(mean vector)這裏寫圖片描述,協方差矩陣(convariance matrix)這裏寫圖片描述,寫成x~這裏寫圖片描述, 其密度函數爲:
這裏寫圖片描述
這裏寫圖片描述表示行列式(determinant).

均值:這裏寫圖片描述
協方差Cov(Z)=這裏寫圖片描述=這裏寫圖片描述 = ∑

高斯分佈的一些例子:
這裏寫圖片描述
左圖均值爲零(2*1的零向量),協方差矩陣爲單位矩陣I(2*2)(成爲標準正態分佈).
中圖協方差矩陣爲0.6I,
右圖協方差矩陣爲2I

這裏寫圖片描述
均值爲0,方差分別爲:
這裏寫圖片描述

2.2 高斯判別分析模型
這裏寫圖片描述
寫出概率分佈:
這裏寫圖片描述

模型的參數爲φ,μ0,μ1,∑,對數似然性爲:
這裏寫圖片描述

求出最大似然估計爲:
這裏寫圖片描述

結果如圖所示:
這裏寫圖片描述

1.3 討論GDA和logistic迴歸
GDA模型和logistic迴歸有一個很有意思的關係.
如果把這裏寫圖片描述看做是x的函數,則有:
這裏寫圖片描述
其中這裏寫圖片描述這裏寫圖片描述的函數,這正是logistic迴歸的形式.

關於模型的選擇:
剛纔說到如果p(x|y)是一個多維的高斯分佈,那麼p(y|x)必然能推出一個logistic函數;反之則不正確,p(y|x)是一個logistic函數並不能推出p(x|y)服從高斯分佈.這說明GDA比logistic迴歸做了更強的模型假設.

  • 如果p(x|y)真的服從或者趨近於服從高斯分佈,則GDA比logistic迴歸效率高.
  • 當訓練樣本很大時,嚴格意義上來說並沒有比GDA更好的算法(不管預測的多麼精確).
  • 事實證明即使樣本數量很小,GDA相對logisic都是一個更好的算法.

但是,logistic迴歸做了更弱的假設,相對於不正確的模型假設,具有更好的魯棒性(robust).許多不同的假設能夠推出logistic函數的形式. 比如說,如果這裏寫圖片描述這裏寫圖片描述那麼p(y|x)是logistic. logstic迴歸在這種類型的Poisson數據中性能很好. 但是如果我們使用GDA模型,把高斯分佈應用於並不是高斯數據中,結果是不好預測的,GDA就不是很好了.

3.樸素貝葉斯

在GDA模型中,特徵向量x是連續的實數向量.如果x是離散值,我們需要另一種學習算法了.

例子:垃圾郵件分類問題
首先是把一封郵件作爲輸入特徵,與已有的詞典進行比對,如果出現了該詞,則把向量的xi=1,否則xi=0,例如:
這裏寫圖片描述
我們要對p(x|y)建模,但是假設我們的詞典有50000個詞,那麼這裏寫圖片描述,如果採用多項式建模的方式,會有這裏寫圖片描述,明顯參數太多了,這個方法是行不通的.

爲了對p(x|y)建模,我們做一個很強的假設,假設給定y,xi是條件獨立(conditionally independent)的.這個假設成爲樸素貝葉斯假設(Naive Bayes assumption).

因此有:
這裏寫圖片描述

雖然說樸素貝葉斯假設是很強的,但是其實這兒算法在很多問題都工作的很好.

模型參數包括:這裏寫圖片描述這裏寫圖片描述

聯合似然性(joint likelihood)爲:
這裏寫圖片描述
得到最大似然估計值:
這裏寫圖片描述

很容易計算:
這裏寫圖片描述

樸素貝葉斯的問題:
假設在一封郵件中出現了一個以前郵件從來沒有出現的詞,在詞典的位置是35000,那麼得出的最大似然估計爲:
這裏寫圖片描述
也即使說,在訓練樣本的垃圾郵件和非垃圾郵件中都沒有見過的詞,模型認爲這個詞在任何一封郵件出現的概率爲0.
假設說這封郵件是垃圾郵件的概率比較高,那麼
這裏寫圖片描述
模型失靈.

在統計上來說,在你有限的訓練集中沒有見過就認爲概率是0是不科學的.

4.laplace平滑

爲了避免樸素貝葉斯的上述問題,我們用laplace平滑來優化這個問題.
這裏寫圖片描述

回到樸素貝葉斯問題,通過laplace平滑:
這裏寫圖片描述

分子加1,分母加1就把分母爲零的問題解決了.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章