[机器学习] Coursera ML笔记 - 逻辑回归(Logistic Regression)
引言
機器學習欄目記錄我在學習Machine Learning過程的一些心得筆記,涵蓋線性回歸、邏輯回歸、Softmax回歸、神經網絡和SVM等等。主要學習資料來自Standford Andrew Ng老師在Coursera的教程以及UFLDL Tutorial,Stanford CS231n等在線課程和Tutorial,同一時候也參考了大量網上的相關資料(在后面列出)。
前言
本文主要介紹邏輯回歸的基礎知識。文章小節安排例如以下:
1)邏輯回歸定義
2)如果函數(Hypothesis function)
3)決策邊界(Decision Boundary)
4)代價函數(Cost Function)
5)優化方法
邏輯回歸定義
簡單來說,
邏輯回歸(Logistic Regression)是一種用于解決二分類(0 or 1)問題的機器學習方法。用于預計某種事物的可能性。比方某用戶購買某商品的可能性。某病人患有某種疾病的可能性,以及某廣告被用戶點擊的可能性等。
注意。這里用的是“可能性”。而非數學上的“概率”,logisitc回歸的結果并不是數學定義中的概率值,不能夠直接當做概率值來用。該結果往往用于和其它特征值加權求和,而非直接相乘。
那么邏輯回歸與線性回歸是什么關系呢?
邏輯回歸(Logistic Regression)與線性回歸(Linear Regression)都是一種廣義線性模型(generalized linear model)。
邏輯回歸如果因變量 y 服從伯努利分布。而線性回歸如果因變量 y 服從 高斯分布。
因此與線性回歸有非常多同樣之處,去除Sigmoid映射函數的話。算法就是一個線性回歸。能夠說。邏輯回歸是以線性回歸為理論支持的,可是邏輯回歸通過Sigmoid函數引入了非線性因素。因此能夠輕松處理0/1分類問題。
機器學習中的不論什么算法都有著數學基礎,有著不同的前提如果和對應的約束。因此如果想要深入的掌握機器學習算法。必須要撿起數學課本,包含統計、概率、微積分等。
如果函數(Hypothesis function)
邏輯回歸的如果函數形式例如以下:
這個函數稱為Sigmoid函數,也稱為邏輯函數(Logistic function)。其函數曲線例如以下:
從上圖能夠看到sigmoid函數是一個s形的曲線。它的取值在[0, 1]之間,在遠離0的地方函數的值會非常快接近0/1。這個性質使我們能夠以概率的方式來解釋。
一個機器學習的模型。實際上是把決策函數限定在某一組條件下,這組限定條件就決定了模型的如果空間。當然。我們還希望這組限定條件簡單而合理。
而邏輯回歸模型所做的如果是:
這里的 g(h) 是上邊提到的 sigmoid 函數。對應的決策函數為:
選擇0.5作為閾值是一個一般的做法。實際應用時特定的情況能夠選擇不同閾值。如果對正例的判別準確性要求高,能夠選擇閾值大一些。對正例的召回要求高,則能夠選擇閾值小一些。
決策邊界(Decision Boundary)
決策邊界,也稱為決策面。是用于在N維空間。將不同類別樣本分開的平面或曲面。
首先看Andrew Ng老師課程上的兩張圖:
線性決策邊界:
決策邊界:
非線性決策邊界:
決策邊界:
上面兩張圖非常清晰的解釋了什么是決策邊界,決策邊界事實上就是一個方程,在邏輯回歸中。決策邊界由theta’X=0定義。
要注意理解如果函數和決策邊界函數的差別與聯系。決策邊界是如果函數的屬性,由如果函數的參數決定。
在邏輯回歸中,如果函數(h=g(z))用于計算樣本屬于某類別的可能性;決策函數(h=1(g(z)>0.5))用于計算(給出)樣本的類別。決策邊界(θ^Tx=0)是一個方程。用于標識出分類函數(模型)的分類邊界。
代價函數(Cost Function)
線性回歸中的代價函數:
線性回歸中的代價函數看上去非常好理解。但卻不能用于邏輯回歸。原因例如以下:
如果我們使用這個代價值形式,J(θ)會變成參數θ的非凸函數,由于在邏輯回歸中,H(θ)是一個Sigmoid函數,其曲線例如以下:
該函數是一個非凸函數,有非常多局部最優值。
如果你把梯度下降法用在一個這種函數上,不能保證它會收斂到全局最小值。
對應地我們希望我們的代價函數J(θ)是一個凸函數,是一個單弓形函數,例如以下:
如果對它使用梯度下降法。我們能夠保證梯度下降法會收斂到該函數的全局最小值。
由于H(θ)是一個sigmoid函數,導致J(θ)成為一個非凸函數,因此。我們須要另外找到一個不同的代價函數,它是凸函數,使得我們能夠使用非常好的算法,如梯度下降法,并且能保證找到全局最小值。
因此,我們採用例如以下的形式計算樣本的代價值:
邏輯回歸中的代價函數:
補充資料:極值 和 最優化問題
所謂極值。簡單地說,是指一群同類量中的最大量(或最小量).對于極值問題的研究,歷來被視為一個引人入勝的課題.波利亞說過:“雖然每一個人都有他自己的 問題,我們能夠注意到。這些問題大多是些極大或極小問題.我們總希望以盡可能低的代價來達到某個目標。或者以一定的努力來獲得盡可能大的效果,或者在一定 的時間內做最大的功,當然,我們還希望冒最小的風險。
我相信數學上關于極大和極小的問題,之所以引起我們的興趣,是由于它能使我們日常生活中的問題理想 化.”波利亞,《數學與猜想》,第一卷。第133頁我們將看到。很多實際問題和數學問題。都可歸結為形形色色的極值問題,才干得到統一地解決.
優化方法
在邏輯回歸中,依舊使用梯度下降法對代價函數進行優化。完整形式例如以下:
注意:
邏輯回歸和線性回歸問題中。梯度下降算法的形式看上去是一致的(更新參數的規則看起來基本同樣),但實際上兩者是全然不同的。由于如果函數是不同的,須要特別注意這一點。
其向量化實現(vectorized implementation)例如以下:
總結
以上是生活随笔為你收集整理的[机器学习] Coursera ML笔记 - 逻辑回归(Logistic Regression)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 了解区块链,从挖矿开始
- 下一篇: Java线程与并发编程实践----同步器