線性迴歸和邏輯迴歸損失函數推導
@(數據挖掘)
一、線性迴歸最小二乘loss推導
我們都知道線性迴歸是機器學習中最簡單,使用範圍也很廣的一個算法,經典且使用。而它的損失函數最小二乘損失,大家也很熟悉,但是爲什麼要用最小二乘loss呢?正文開始:
可以通過一系列假設,從概率的角度去說明爲什麼選最小二乘(按理說,我們有許多函數可以定義損失)。
我們這裏的假設證明不是唯一的,還有許多方法可以證明,有興趣的可以自行google。
- 假設:
y(i)=θTx(i)+ε(i)
ε(i)=error
這裏的error也就是模型和實際數值之間的誤差值
根據中心極限定理(許多獨立隨機變量組合會符合高斯分佈),我們可以接着假設誤差項符合高斯分佈:
ε(i)∼N(0,σ2)
即概率密度函數爲
P(ε(i))=12π√σexp(−(ε(i))22σ2)
- 上述誤差函數的概率密度函數服從高斯分佈,則我們易知:
P(y(i)|x(i);θ)=12π√σexp(−(y(i)−θTx(i))22σ2)
即:y(i)|x(i);θ∼N(θTx(i),σ2)
這裏需要特別注意,我們不把θ 認爲是隨機變量,而是有着我們未知的確定值,也就是把它看成我們需要去估計得到的值,也就是說上面的概率P(y(i)|x(i);θ) 意思是以θ 爲參數時,給定x(i) 條件下y(i) 的條件概率分佈
- 假設不同輸入x(i) 對應誤差項ε(i) 是獨立同分布(IID:Independently and Identically Distributed;意思是條件獨立的,但是都服從同一均值方差的高斯分佈):
則我們的模型可以用概率模型定義爲一個極大似然估計問題:
L(θ)=P(y⃗ |x;θ)=∏i=1mP(y(i)|x(i);θ)=∏i=1m12π‾‾‾√σexp(−(y(i)−θTx(i))22σ2)
4. 所以最後我們的尋找最優模型的參數
θ 問題變成了一個求上式關於
θ 的極大似然估計問題,爲了方便計算,我們常常求對數似然,得到:
logL(θ)=log∏i=1m12π‾‾‾√σexp(−(y(i)−θTx(i))22σ2)=mlog12π‾‾‾√σ+∑i=1m−(y(i)−θTx(i))22σ2
所以從上式易知,最大化
logL(θ) 問題就相當於最小化
∑mi=1(y(i)−θTx(i))22σ2 問題,也就是我們定義的loss
二、logistics迴歸加sigmoid原因以及交叉熵損失函數推導
我們知道,其實邏輯迴歸模型變成了分類問題,但只是在線性迴歸的基礎上加上了一個sigmoid函數,那麼問題來了:
1. 爲什麼我們要選擇使用一個sigmoid函數?
大家可以移步參考知乎上的回答:https://www.zhihu.com/question/35322351
2. 交叉熵損失函數的推導
- 同線性迴歸,我們可以把我們的模型用概率表示:
P(y(i)=1|x(i);θ)=hθ(x(i))
P(y(i)=0|x(i);θ)=1−hθ(x(i))
- 我們可以進一步把兩式整合:
P(y(i)|x(i);θ)=hθ(x(i))y(i)(1−hθ(x(i)))(1−y(i))
- 同樣我們可以把模型最優問題看做是極大似然估計問題:
L(θ)=P(y⃗ |x;θ)=∏mi=1P(y(i)|x(i);θ)=∏mi=1hθ(x(i))y(i)(1−hθ(x(i)))(1−y(i))
- 還是去對數似然:
logL(θ)=∑mi=1y(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i)))
則,得證交叉熵函數