老三樣(一):邏輯回歸--LR
來自專欄從零學AI4 人贊了文章
作為一個初學者,我會用盡量多的大白話來描述,如果有不貼切的地方,歡迎指出。
1、線性回歸
回歸模型是是一種易理解、解釋性強的模型,相當於n元一次方程y=f(x),表明自變數x與因變數y的關係。常見的問題比如匯率預測問題,當我們買入時技術面、消息面、歷史走勢來判定匯率接下來的壓力位或者支撐位,其中技術面、消息面和歷史走勢就是獲取自變數x,根據x,判斷匯率走勢就相當於獲取因變數y,即回歸預測。
最簡單的回歸就是線性回歸。線性回歸(Linear Regression)是利用稱為線性回歸方程的最小平方函數對一個或多個自變數和因變數之間關係進行建模的一種回歸分析。這種函數是一個或多個稱為回歸係數的模型參數的線性組合。只有一個自變數的情況稱為簡單回歸,大於一個自變數情況的叫做多元回歸。
一個變數受n個因素影響,即每個因素為一個特徵,每個訓練樣本有n個特徵。第i條樣本的輸入x(i):
所有訓練樣本的輸入表示為x,輸出表示為y,共有m個輸入:
θ就是我們要求的回歸參數,因為是線性回歸,所以為沒個特徵x(i)添加一個參數θ(i),所以h函數的形式如下:
為了公式表示方便,將x0設定為1,同時將所有θ表示成向量:
則:
以估計值與觀測值的平方和作為損失函數,目標為保證各個觀測點與估計點的距離的平方和達到最小。
即:
最小二乘法求解:
梯度下降法:
對於上面給的J(θ)有:
θ的迭代公式為:
1.1、梯度下降法大家族(BGD,SGD,MBGD)
1.1.1、批量梯度下架降法(Batch Gradient Descent)
批量梯度下降法,是梯度下降法最常用的形式,具體做法也就是在更新參數時使用所有的樣本來進行更新,剛剛我們用的梯度下降演算法就是批量梯度下降法。
由於我們有m個樣本,這裡求梯度的時候就用了所有m個樣本的梯度數據。
1.1.2、隨機梯度下架降法(Stochastic Gradient Descent)
隨機梯度下降法,原理和批量梯度下降法類似,區別在與求梯度時沒有用所有的m個樣本的數據,而是僅僅選取一個樣本j來求梯度。對應的更新公式是:
隨機梯度下降法,和4.1的批量梯度下降法是兩個極端,一個採用所有數據來梯度下降,一個用一個樣本來梯度下降。自然各自的優缺點都非常突出。對於訓練速度來說,隨機梯度下降法由於每次僅僅採用一個樣本來迭代,訓練速度很快,而批量梯度下降法在樣本量很大的時候,訓練速度不能讓人滿意。對於準確度來說,隨機梯度下降法用於僅僅用一個樣本決定梯度方向,導致解很有可能不是最優。對於收斂速度來說,由於隨機梯度下降法一次迭代一個樣本,導致迭代方向變化很大,不能很快的收斂到局部最優解。
那麼兩種辦法折中,就有了接下來要說的小批量梯度下降法。
1.1.3、小批量梯度下架降法(Mini-batch Gradient Descent)
小批量梯度下降法是批量梯度下降法和隨機梯度下降法的折衷,也就是對於m個樣本,我們採用x個樣子來迭代,1<x<m。一般可以取x=10,當然根據樣本的數據,可以調整這個x的值。對應的更新公式是:
這裡給大家兩張關於SDG優化的圖:
SGD各優化演算法損失曲面上的表現
SGD各優化演算法損失曲面鞍點處上的表現
1.1.4、無約束優化演算法對比
在機器學習中的無約束優化演算法,除了梯度下降以外,還有前面提到的最小二乘法,此外還有牛頓法和擬牛頓法。
梯度下降法和最小二乘法相比,梯度下降法需要選擇步長,而最小二乘法不需要。梯度下降法是迭代求解,最小二乘法是計算解析解。如果樣本量不算很大,且存在解析解,最小二乘法比起梯度下降法要有優勢,計算速度很快。但是如果樣本量很大,用最小二乘法由於需要求一個超級大的逆矩陣,這時就很難或者很慢才能求解解析解了,使用迭代的梯度下降法比較有優勢。
梯度下降法和牛頓法/擬牛頓法相比,兩者都是迭代求解,不過梯度下降法是梯度求解,而牛頓法/擬牛頓法是用二階的海森矩陣的逆矩陣或偽逆矩陣求解。相對而言,使用牛頓法/擬牛頓法收斂更快。但是每次迭代的時間比梯度下降法長。
1.1.5、關於學習率α
α的選取對於梯度下降法是非常關鍵的,選取合適的話J(θ)能順利下降並最終收斂,如果選取不合適的話J(θ)可能下降非常緩慢,也有可能最終發散。
下圖是遞歸下降失敗的情況,J(θ)未能隨每次迭代順利下降,說明α太大,當α充分小時,每一步迭代J(θ)都會下降的。所以,此時可以嘗試減小α。
但是,當α過於小時,J(θ)會下降的非常緩慢,因此需要迭代更多次數才能達到效果,浪費計算資源。所以要選擇合適的α值,太大太小都不合適。一般在訓練樣本時,多次嘗試不同的α值,對比結果(可以繪製出J(θ)迭代的圖形)後進行選擇。一般會有以下嘗試:先選擇一個較小的α值,收斂太慢的話以3倍來增加α值。
2、邏輯回歸(Logistic Regression)
邏輯回歸(Logistic Regression)是用於處理因變數為分類變數的回歸問題,常見的是二分類或二項分布問題,也可以處理多分類問題,它實際上是屬於一種分類方法。
二分類問題的概率與自變數之間的關係圖形往往是一個S型曲線,採用Sigmoid函數實現。Sigmoid函數可以減小預測範圍,將預測值限定為[0,1]間。
LR推導部分:
3、L1正則和L2正則
在實際應用中出現的非常頻繁的問題:過擬合與規則化,監督機器學習問題無非就是「minimizeyour error while regularizing your parameters」,也就是在規則化參數的同時最小化誤差。最小化誤差是為了讓我們的模型擬合我們的訓練數據,而規則化參數是防止我們的模型過分擬合我們的訓練數據。因為參數太多,會導致我們的模型複雜度上升,容易過擬合,也就是我們的訓練誤差會很小。但訓練誤差小並不是我們的最終目標,我們的目標是希望模型的測試誤差小,也就是能準確的預測新的樣本。所以,我們需要保證模型「簡單」的基礎上最小化訓練誤差,這樣得到的參數才具有好的泛化性能(也就是測試誤差也小),而模型「簡單」就是通過規則函數來實現的。另外,規則項的使用還可以約束我們的模型的特性。這樣就可以將人對這個模型的先驗知識融入到模型的學習當中,強行地讓學習到的模型具有人想要的特性,例如稀疏、低秩、平滑等等。由於人和機器的交流目前還沒有那麼直接的方法,目前這個媒介只能由規則項來擔當了。
還有幾種角度來看待規則化的。規則化符合奧卡姆剃刀(Occams razor)原理:在所有可能選擇的模型中,我們應該選擇能夠很好地解釋已知數據並且十分簡單的模型。從貝葉斯估計的角度來看,規則化項對應於模型的先驗概率。
一般來說,監督學習可以看做最小化下面的目標函數:
其中,第一項L(yi,f(xi;w)) 衡量我們的模型(分類或者回歸)對第i個樣本的預測值f(xi;w)和真實的標籤yi之前的誤差。因為我們的模型是要擬合我們的訓練樣本的嘛,所以我們要求這一項最小,也就是要求我們的模型盡量的擬合我們的訓練數據。但正如上面說言,我們不僅要保證訓練誤差最小,我們更希望我們的模型測試誤差小,所以我們需要加上第二項,也就是對參數w的規則化函數Ω(w)去約束我們的模型盡量的簡單。
機器學習的大部分帶參模型都和這個不但形似,而且神似。是的,其實大部分無非就是變換這兩項而已。對於第一項Loss函數,如果是Square loss,那就是最小二乘了;如果是Hinge Loss,那就是著名的SVM了;如果是exp-Loss,那就是牛逼的 Boosting了;如果是log-Loss,那就是Logistic Regression了;還有等等。不同的loss函數,具有不同的擬合特性,這個也得就具體問題具體分析的。但這裡,我們先不究loss函數的問題,我們把目光轉向「規則項Ω(w)」。
換到初中數學來給大家解釋一下子上面那個公式,已知定義域Ω(w),求第一項L(yi,f(xi;w))的最優解。這個問題大家應該都遇到過,某直線在某區域的最大值。。。
定義域Ω(w)常用的有L1正則和L2正則,L1和L2正則都是比較常見和常用的正則化項,都可以達到防止過擬合的效果。L1正則化的解具有稀疏性,可用於特徵選擇。L2正則化的解都比較小,抗擾動能力強。不知道大家有沒有想起來兩幅非常經典的圖,我們一起來看一下。
3.1、L1正則
對模型參數w的L1正則項為:
設帶L1正則化的損失函數:
將損失函數在二維上求解,則可以畫出圖像:
彩色實線是 的等值線,黑色實線是L1正則的等值線。二維空間(權重向量只有 和 )上,L1正則項的等值線是方形,方形與 的等值線相交時相交點為頂點的概率很大,所以 或 等於零的概率很大。所以使用L1正則項的解具有稀疏性。
3.2、L1正則
對模型參數w的L1正則項為:
設帶L1正則化的損失函數:
將損失函數在二維上求解,則可以畫出圖像:
彩色實線是 的等值線,黑色實線是L2正則的等值線。二維空間(權重向量只有 和 )上,L2正則項的等值線是圓,與 的等值線相交時 或 等於零的概率很小。所以使用L2正則項的解不具有稀疏性。在求解過程中,L2通常傾向讓權值儘可能小,最後構造一個所有參數都比較小的模型。因為一般認為參數值小的模型比較簡單,能適應不同的數據集,也在一定程度上避免了過擬合現象。參數足夠小,數據偏移得多一點也不會對結果造成什麼影響,可以說「抗擾動能力強」。
推廣到更大維度空間也是同樣道理,L2正則項的等值線或等值面是比較平滑的,而L1正則項的等值線或等值面是比較尖銳的,所以這些突出的點與 接觸的機會更大,而在這些突出的點上,會有很多權值等於0。
由L1正則化導出的稀疏性質已被廣泛用於特徵選擇,特徵選擇可以從可用的特徵子集中選擇有意義的特徵。
推薦閱讀:
※全球最難數獨遊戲數學天才挑戰你
※【拓撲】連續函數、積拓撲、(箱拓撲*)
※關於GTM⑨的抄書日記-11
※【公元1800~1849年】- 數學與計算進化史 07
※章建躍:論數學教學中的基礎與創新