標籤:

機器學習系列-Logistic回歸:我看你像誰 (下篇)

作者:向日葵

Logistic回歸

書接上回,在我們有了最小二乘法與極大似然估計做基礎之後,這樣我們就做好了Logistic回歸的準備,漸漸的進入到我們的主題Logistic回歸。 很多都屬於分類的問題了,郵件(垃圾郵件/非垃圾郵件),腫瘤(良性/惡性)。二分類問題,可以用如下形式來定義它: y∈{0,1},其中0屬於負例,1屬於正例。 現在來構造一種狀態,一個向量來代表腫瘤(良性/惡性)和腫瘤大小的關係。

Sigmoid 函數在有個很漂亮的「S"形,如下圖所示(引自維基百科):

綜合上述兩式,我們得到邏輯回歸模型的數學表達式:

Cost函數和J函數如下,它們是基於最大似然估計推導得到的。

下面詳細說明推導的過程:

最大似然估計就是求使l(θ)取最大值時的θ,其實這裡可以使用梯度上升法求解,求得的θ就是要求的最佳參數。但是,在Andrew Ng的課程中將J(θ)取為下式,即:

梯度下降法求的最小值

向量化Vectorization

Vectorization是使用矩陣計算來代替for循環,以簡化計算過程,提高效率。 如上式,Σ(...)是一個求和的過程,顯然需要一個for語句循環m次,所以根本沒有完全的實現vectorization。

下面介紹向量化的過程: 約定訓練數據的矩陣形式如下,x的每一行為一條訓練樣本,而每一列為不同的特稱取值:

Logistic回歸的推導過程,採用的是極大似然法和梯度下降法取得各個參數的迭代過程。以後很多公式的推導也是類似這個過程,機器學習的過程大部分的演算法都歸結到概率論,如果概率論不是很熟,可以繼續溫習一下。所以很多人都在總覺,機器學習的問題,歸宗到底就是概率論的問題。而採用極大似然的演算法,其中隱藏著一個道理:求出來的參數會是最符合我們觀察到的結果,實驗數據決定了我們的參數。

TensorFlow下的Logistic回歸

現在有大量的機器學習的框架,個人開發者,大公司等都有。比較出名的還是FaceBook和谷歌的開源框架。

TensorFlow是谷歌2015年開源的學習框架,結合了大量的機器學習的演算法,官方的文檔也比較清楚,開篇的初學者入門講的就是關於Logistic回歸的問題,這裡簡單的介紹一下,主要是想說明TensorFlow還是屬於比較強大的工具,可以進行工具的學習。

這篇文檔的主要介紹如何使用TensorFlow識別MNIST,關於MNIST在之前神經網路的介紹有介紹過。MNIST里存放著一些手寫的數據:

每個數字都可以用二進位向量數組來表示:

這些數據為神經網路的輸入:

利用Logistic回歸的訓練求解上面的參數。 代碼在raw.githubusercontent.com下可以自己參看。

總結

這個章節里介紹了Logistic回歸和推導的這個過程,Logistic回歸是機器學習里最經常用到的演算法,也是最基礎的演算法,通過推導Logistic回歸就能夠清楚機器學習的基礎知識,後面有些演算法的思想也和Logistic回歸演算法類似。


推薦閱讀:

Python語言下的機器學習庫
機器學習-異常檢測演算法(一):Isolation Forest
這樣能解決知乎質量越來越低,老用戶離開的情況么?
生成式對抗網路 NIPS 2016 課程 第 3 節

TAG:机器学习 |