海淀做網(wǎng)站好的公司google免費入口
機(jī)器學(xué)習(xí)算法詳解3:邏輯回歸
前言
? 本系列主要對機(jī)器學(xué)習(xí)上算法的原理進(jìn)行解讀,給大家分享一下我的觀點和總結(jié)。
本篇前言
? 本篇對邏輯回歸的算法原理進(jìn)行解讀。
目錄結(jié)構(gòu)
文章目錄
- 機(jī)器學(xué)習(xí)算法詳解3:邏輯回歸
- 1. 引子
- 2. sigmoid函數(shù)
- 3. 原理推導(dǎo)
- 4. 交叉熵?fù)p失函數(shù)推導(dǎo)
- 4.1 信息熵
- 4.2 KL散度
- 4.3 交叉熵推導(dǎo)
- 4.4 交叉熵?fù)p失函數(shù)推導(dǎo)
- 5. 為什么選用sigmoid函數(shù)?
- 6. 總結(jié)
1. 引子
? 在上一篇提及一個概念廣義線性回歸
,而邏輯回歸也是與之相關(guān)。
? 假設(shè)我們有一個曲線,如下:
? 假設(shè)它的表達(dá)式為y=wx
,其中y的值是符合lnx
的分布的。那么,可以進(jìn)行線性映射lny = wx
,變?yōu)?code>y=e^(wx),即真正的表達(dá)式y=e^(wx)
可以變?yōu)樽畛醯膹V義線性形式y=wx
(只是此處的y符合lnx
分布而已)。
? 換而言之,我們可以將e^(wx)
看作是一個普通的ax
,那么邏輯回歸就是將這個普通的ax
作為某個函數(shù)的輸入,讓函數(shù)的輸出在[0,1]之間,相當(dāng)于輸出的是概率值,就成了。
2. sigmoid函數(shù)
? 上面提及某函數(shù),那么選擇什么樣的函數(shù)呢?
? 首先,函數(shù)必須滿足的要求是:輸出值在[0,1]之間。滿足這個要求的函數(shù)非常多,比如符號函數(shù):
? 但是,這個函數(shù)有一個重要缺點:不是連續(xù)可導(dǎo)的(在x=0這個點)。這樣會導(dǎo)致我們在優(yōu)化損失函數(shù)的時候,無法直接求導(dǎo),需要分情況進(jìn)行求導(dǎo)。其次,這個函數(shù)有個小缺點:太僵硬了,只能取1、0這兩個值。
? 針對上述情況,我們提出這個函數(shù)要滿足的新要求:連續(xù)可導(dǎo),最好是光滑曲線。
? 那么,前人們找到一個函數(shù),名為 sigmoid
函數(shù),公式如下:
? 函數(shù)圖像如下:
? 并且,值得注意的一點是,sigmoid函數(shù)的導(dǎo)數(shù)非常特殊,其倒數(shù)公式如下:
3. 原理推導(dǎo)
? 基本的導(dǎo)數(shù)求法,非常的簡單。
4. 交叉熵?fù)p失函數(shù)推導(dǎo)
4.1 信息熵
? 要對交叉熵進(jìn)行推導(dǎo),首先需要明白什么是信息熵。(本來應(yīng)該在決策樹那里講的)
? 熵,大家應(yīng)該都明白,就是描述一個系統(tǒng)的混亂程度。那么信息熵,就相當(dāng)于描述一個信息的有用程度。
? 公式如下:
4.2 KL散度
? 有時候也稱之為KL距離
,但是其實并不是真正的距離,因為不符合距離的對稱性質(zhì)。
? 其衡量兩個分布P、Q的相似程度,公式如下:
? 舉個計算的例子:
4.3 交叉熵推導(dǎo)
4.4 交叉熵?fù)p失函數(shù)推導(dǎo)
? 該損失函數(shù)的推導(dǎo)可以從三個角度入手,分別是sigmoid入手、極大似然估計入手和KL散度入手。這里我接受最后一種推導(dǎo)。
? 邏輯回歸損失函數(shù)即衡量真實分布和預(yù)測分布的相似性——即KL散度,那么推導(dǎo)過程和上面相似,只是把P and Q
換為了y and y^
,通過上面可以知道最后的KL散度與交叉熵的值正相關(guān),因此我們可以通過交叉熵構(gòu)建出損失函數(shù)來代替KL散度以衡量真實分布和預(yù)測分布的相似程度,即公式:(下面分為兩個部分是因為一個為正樣本、一個為負(fù)樣本而已)
5. 為什么選用sigmoid函數(shù)?
? 這個問題也可以這么問:sigmoid函數(shù)怎么推出來的?這個是我偶然看視頻發(fā)現(xiàn)的,我個人覺得有一定的道理,所以在這里分享一下:
? 對于真實大數(shù)據(jù)場景,數(shù)據(jù)的每個特征基本都符合正太分布,并且一般標(biāo)準(zhǔn)差相同而均值不同(感覺上是對的,但是沒有證明),那么如下圖推導(dǎo)過程:
6. 總結(jié)
? 本篇講解了邏輯回歸的原理,邏輯回歸主要應(yīng)用于二分類任務(wù),也是分類任務(wù)中常用的一個算法。
? 下一篇,講解支持向量機(jī)算法。