摘要:首先機器學習中最常用也是最重要的內容就是線性模型了,這裏先搞清楚幾個關係,線性模型在有些資料中會被寫爲迴歸,這是因爲線性模型中的幾類常用模型的名字都叫做xx迴歸,但線性模型並不是只用在迴歸當中,在二分類和多分類問題上也常常使用。
Data:(x,y),y是連續的(比如身高)就是迴歸;y是離散的就是分類
迴歸這個詞來自高爾頓(達爾文的表弟),他在研究父輩和子輩身高的關係時發現,高父親的孩子不一定特別高,矮父親的孩子不至於太矮,就這樣發現了大自然中有一隻無形的手,讓人的身高迴歸到一個值,這也就是迴歸這個詞的由來。
目錄
線性迴歸
這應該是最簡單的線性迴歸方程了,中學數學中涉及到通過最小二乘法來求這樣的一元線性迴歸方程(圖1左)。這個過程其實就是一個選擇模型(線性迴歸模型),訓練得出學習器(求參a和b)的過程。 那麼考慮兩個變量的變量的時候,同樣如此,方程的形式可以寫做
(圖2右)
爲了讓這個方程更容易適用到更多變量去,我們將常數的係數寫作,且,二元線性迴歸方程就可以寫成
這樣的話就可以說線性迴歸模型的通式子既可以寫做
對於線性迴歸求解參數值的方式,需要用到最小二乘法,另外就是經典的梯度下降法。
爲什麼是最小二乘--用極大似然估計解釋最小二乘
前文中提到,線性迴歸模型的通式
爲模型所得到的估計值,假設實際的函數值爲,那麼可以將其寫做
其中是預測值和函數值的誤差,這個誤差是獨立同分布的,根據中心極限定理,其服從均值爲0,方差爲某定值的高斯分佈。即,~
故誤差的概率密度函數爲
那麼的似然函數就是
到這裏,其實要做的就是求出能使似然值最大的的值,將上式取對數,得到高斯的對數似然,之後就能看到爲何使用最小二乘法可以作爲求解線性迴歸的理由了。
取對數似然爲
利用對數的計算性質,則
從這個看起來很複雜的式子中可以得到損失函數,既然要讓似然值最大,那麼對數似然值也就最大,那麼式子中的決定因素就是
,其他的值都爲常量,所以只要保證這個式子最小,也就能得到取何值可以讓似然最大,故損失函數(目標函數)爲
至此,也就解釋了爲何用最小二乘法去訓練線性迴歸了。但是,這樣固然是一個不錯的解釋,但是有一個非常重要的前提,那就是誤差值服從正態分佈。
求解參數的過程和最小二乘意義下的參數最優解
上節用最大似然估計對爲什麼是最小二乘法做出了一些解釋,既然得到了目標函數,那麼就可以利用其求出我們所需要的參數了。求解過程:
- 將M個N維樣本組成矩陣X,其中每一行對應着一個樣本,每一列對應着樣本的一個維度,還有額外的一維爲常數項。
- 目標函數是,換另一種寫法寫做
- 對上式子求偏導
- 求駐點
- 得到的解析式
- 如果不可逆或爲了防止過擬合,可以增加擾動或者正則項
加入擾動項
正則項與防止過擬合
假設 ;
L2-norm(Ridge迴歸):
L1-norm(Lasso迴歸):
Elastic Net:
擴展內容:Ridge & LASSO & Elastic Net
L1-norm處理梯度的方式
(待補充)
梯度下降算法(Gradient Descent)
損失函數
梯度下降步驟:
- 任意初始化變量
- 沿着負梯度方向進行迭代操作,更新,得到比之前更小的損失函數值
其中是學習率、步長
關於這個負梯度方向是這樣定義的:
其中,故
梯度下降算法的種類
主要分爲三類:批量梯度下降算法(batch)、隨機梯度下降算法(stochastic)、折中mini-batch梯度下降算法。
批量梯度算法
隨機梯度下降算法
折中mini-batch梯度下降算法
就是將以上兩者結合,如果不是每拿到一個樣本即更改梯度,而是若干個樣本的平均梯度作爲更新方向,這就是mini-batch梯度下降算法。
Coefficient of Determination
概念解釋:決定係數(coefficient of determination),有的教材上翻譯爲判定係數,也稱爲擬合優度。表示可根據自變量的變異來解釋因變量的變異部分。如某學生在某智力量表上所得的 IQ 分與其學業成績的相關係數 r=0.66,則決定係數 R^2=0.4356,即該生學業成績約有 44%可由該智力量表所測的智力部分來說明或決定。
對於m個樣本,某模型的估計值爲。
- 計算樣本的總平方和TSS(Total Sum of Squares):
- 計算殘差平方和RSS(Residual Sum of Squares),也稱做誤差平方和SSE(Sum of Squares for Error):
定義,越大,擬合效果越好;的最優值爲1;若模型預測爲隨機值,有可能爲負值;若預測值恆爲樣本期望,爲0.
- 也可以定義ESS(Explained Sum of Squares),也稱作迴歸平方和SSR(Sum of Squares for Regression)
- 在無偏估計時有,否則
局部加權線性迴歸
(待補充)