逻辑回归模型详解(Logistic Regression)
目錄
廣義線性模型
極大似然法
邏輯回歸的假設函數
邏輯回歸的損失函數
交叉熵損失函數
為什么LR模型損失函數使用交叉熵不用均方差
交叉熵損失函數的數學原理
交叉熵損失函數的直觀理解
交叉熵簡介
對數損失函數和交叉熵損失函數
邏輯回歸優缺點
其他
邏輯回歸與線性回歸的區別與聯系
LR一般需要連續特征離散化原因
廣義線性模型
邏輯回歸與線性回歸都是一種廣義線性模型(generalized linear model,GLM)。具體的說,都是從指數分布族導出的線性模型,線性回歸假設Y|X服從高斯分布,邏輯回歸假設Y|X服從伯努利分布。
伯努利分布:伯努利分布又名0-1分布或者兩點分布,是一個離散型概率分布。隨機變量X只取0和1兩個值,比如正面或反面,成功或失敗,有缺陷或沒有缺陷,病人康復或未康復。為方便起見,記這兩個可能的結果為0和1,成功概率為p(0<=p<=1),失敗概率為q=1-p。
高斯分布:高斯分布一般指正態分布。
因此邏輯回歸與線性回歸有很多相同之處,去除Sigmoid映射函數的話,邏輯回歸算法就是一個線性回歸。可以說,邏輯回歸是以線性回歸為理論支持的,但是邏輯回歸通過Sigmoid函數引入了非線性因素,因此可以輕松處理0/1分類問題。
這兩種分布都是屬于指數分布族,我們可以通過指數分布族求解廣義線性模型(GLM)的一般形式,導出這兩種模型,具體的演變過程如下:
(此部分參考:https://zhuanlan.zhihu.com/p/81723099)
?
極大似然法
極大似然估計,通俗理解來說,就是利用已知的樣本結果信息,反推最具有可能(最大概率)導致這些樣本結果出現的模型參數值。
?極大似然估計的原理,用一張圖片來說明,如下圖所示:
原理:極大似然估計是建立在極大似然原理的基礎上的一個統計方法,是概率論在統計學中的應用。
極大似然估計提供了一種給定觀察數據來評估模型參數的方法,即:“模型已定,參數未知”。通過若干次試驗,觀察其結果,利用試驗結果得到某個參數值能夠使樣本出現的概率為最大,則稱為極大似然估計。
?
邏輯回歸的假設函數
首先我們要先介紹一下Sigmoid函數,也稱為邏輯函數(Logistic function):
其函數曲線如下:
從上圖可以看到sigmoid函數是一個s形的曲線,它的取值在[0, 1]之間,在遠離0的地方函數的值會很快接近0或者1,它的這個特性對于解決二分類問題十分重要。
邏輯回歸的假設函數形式如下:
所以:
其中 x 是我們的輸入,θ 為我們要求取的參數。
一個機器學習的模型,實際上是把決策函數限定在某一組條件下,這組限定條件就決定了模型的假設空間。當然,我們還希望這組限定條件簡單而合理。而邏輯回歸模型所做的假設是:
這個函數的意思就是在給定?x 和 θ 的條件下,y = 1的概率。
?
邏輯回歸的損失函數
通常提到損失函數,我們不得不提到代價函數(Cost Function)及目標函數(Object Function)。
損失函數(Loss Function)?直接作用于單個樣本,用來表達樣本的誤差
代價函數(Cost Function)是整個樣本集的平均誤差,對所有損失函數值的平均
目標函數(Object Function)是我們最終要優化的函數,也就是代價函數+正則化函數(經驗風險+結構風險)
概況來講,任何能夠衡量模型預測出來的值 h(θ) 與真實值 y?之間的差異的函數都可以叫做代價函數 C(θ)?如果有多個樣本,則可以將所有代價函數的取值求均值,記做 J(θ)?。因此很容易就可以得出以下關于代價函數的性質:
- 選擇代價函數時,最好挑選對參數 θ 可微的函數(全微分存在,偏導數一定存在)
- 對于每種算法來說,代價函數不是唯一的;
- 代價函數是參數?θ?的函數;
- 總的代價函數 J(θ)?可以用來評價模型的好壞,代價函數越小說明模型和參數越符合訓練樣本(x,y);
- J(θ) 是一個標量;
經過上面的描述,一個好的代價函數需要滿足兩個最基本的要求:能夠評價模型的準確性,對參數 θ 可微。
在線性回歸中,最常用的是均方誤差(Mean squared error),即
在邏輯回歸中,最常用的是代價函數是交叉熵(Cross Entropy),交叉熵是一個常見的代價函數
通過梯度下降法求參數的更新式
我們下圖為推倒式,這樣可以使推導式更簡潔。
求梯度:
學習率
LR在確定了模型的形式后,通過最大似然估計法來實現最小散度從而求出模型參數。
?
交叉熵損失函數
說起交叉熵損失函數「Cross Entropy Loss」,腦海中立馬浮現出它的公式:
為什么LR模型損失函數使用交叉熵不用均方差
交叉熵損失函數的數學原理
我們知道,在二分類問題模型:例如邏輯回歸「Logistic Regression」、神經網絡「Neural Network」等,真實樣本的標簽為 [0,1],分別表示負類和正類。模型的最后通常會經過一個 Sigmoid 函數,輸出一個概率值,這個概率值反映了預測為正類的可能性:概率越大,可能性越大。
Sigmoid 函數的表達式和圖形如下所示:
其中 s 是模型上一層的輸出,Sigmoid 函數有這樣的特點:s = 0 時,g(s) = 0.5;s >> 0 時, g ≈ 1,s << 0 時,g ≈ 0。顯然,g(s) 將前一級的線性輸出映射到 [0,1] 之間的數值概率上。這里的 g(s) 就是交叉熵公式中的模型預測輸出 。
我們說了,預測輸出即 Sigmoid 函數的輸出表征了當前樣本標簽為 1 的概率:
很明顯,當前樣本標簽為 0 的概率就可以表達成:
重點來了,如果我們從極大似然性的角度出發,把上面兩種情況整合到一起:
不懂極大似然估計也沒關系。我們可以這么來看:
當真實樣本標簽 y = 0 時,上面式子第一項就為 1,概率等式轉化為:
當真實樣本標簽 y = 1 時,上面式子第二項就為 1,概率等式轉化為:
兩種情況下概率表達式跟之前的完全一致,只不過我們把兩種情況整合在一起了。
重點看一下整合之后的概率表達式,我們希望的是概率 P(y|x) 越大越好。首先,我們對 P(y|x) 引入 log 函數,因為 log 運算并不會影響函數本身的單調性。則有:
我們希望 log P(y|x) 越大越好,反過來,只要 log P(y|x) 的負值 -log P(y|x) 越小就行了。那我們就可以引入損失函數,且令 Loss = -log P(y|x)即可。則得到損失函數為:
非常簡單,我們已經推導出了單個樣本的損失函數,是如果是計算 N 個樣本的總的損失函數,只要將 N 個 Loss 疊加起來就可以了:
這樣,我們已經完整地實現了交叉熵損失函數的推導過程。
?
交叉熵損失函數的直觀理解
從圖形的角度,分析交叉熵函數,加深大家的理解。首先,還是寫出單個樣本的交叉熵損失函數:
我們知道,當 y = 1 時:
這時候,L 與預測輸出的關系如下圖所示:
看了 L 的圖形,簡單明了!橫坐標是預測輸出,縱坐標是交叉熵損失函數 L。顯然,預測輸出越接近真實樣本標簽 1,損失函數 L 越小;預測輸出越接近 0,L 越大。因此,函數的變化趨勢完全符合實際需要的情況。
當 y = 0 時:
這時候,L 與預測輸出的關系如下圖所示:
同樣,預測輸出越接近真實樣本標簽 0,損失函數 L 越小;預測函數越接近 1,L 越大。函數的變化趨勢也完全符合實際需要的情況。
從上面兩種圖,可以幫助我們對交叉熵損失函數有更直觀的理解。無論真實樣本標簽 y 是 0 還是 1,L 都表征了預測輸出與 y 的差距。
另外,重點提一點的是,從圖形中我們可以發現:預測輸出與 y 差得越多,L 的值越大,也就是說對當前模型的 “ 懲罰 ” 越大,而且是非線性增大,是一種類似指數增長的級別。這是由 log 函數本身的特性所決定的。這樣的好處是模型會傾向于讓預測輸出更接近真實樣本標簽 y。
-
交叉熵能夠衡量同一個隨機變量中的兩個不同概率分布的差異程度,在機器學習中就表示為真實概率分布與預測概率分布之間的差異。交叉熵的值越小,模型預測效果就越好。
-
交叉熵在分類問題中常常與softmax是標配,softmax將輸出的結果進行處理,使其多個分類的預測值和為1,再通過交叉熵來計算損失。
交叉熵可在神經網絡(機器學習)中作為損失函數,p表示真實標記的分布,q則為訓練后的模型的預測標記分布,交叉熵損失函數可以衡量p與q的相似性。交叉熵作為損失函數還有一個好處是使用sigmoid函數在梯度下降時能避免均方誤差損失函數學習速率降低的問題,因為學習速率可以被輸出的誤差所控制。
交叉熵簡介
交叉熵是信息論中的一個重要概念,主要用于度量兩個概率分布間的差異性,要理解交叉熵,需要先了解下面幾個概念。
信息量
信息奠基人香農(Shannon)認為“信息是用來消除隨機不確定性的東西”,也就是說衡量信息量的大小就是看這個信息消除不確定性的程度。
“太陽從東邊升起”,這條信息并沒有減少不確定性,因為太陽肯定是從東邊升起的,這是一句廢話,信息量為0。
”2018年中國隊成功進入世界杯“,從直覺上來看,這句話具有很大的信息量。因為中國隊進入世界杯的不確定性因素很大,而這句話消除了進入世界杯的不確定性,所以按照定義,這句話的信息量很大。
根據上述可總結如下:信息量的大小與信息發生的概率成反比。概率越大,信息量越小。概率越小,信息量越大。
設某一事件發生的概率為P(x),其信息量表示為:
其中 I ( x ) 表示信息量,這里 log 表示以e為底的自然對數。
信息熵
信息熵也被稱為熵,用來表示所有信息量的期望。
期望是試驗中每次可能結果的概率乘以其結果的總和。
所以信息量的熵可表示為:(這里的X XX是一個離散型隨機變量)
使用明天的天氣概率來計算其信息熵:
對于0-1分布的問題,由于其結果只用兩種情況,是或不是,設某一件事情發生的概率為P ( x ) ,則另一件事情發生的概率為1 ? P ( x ) ,所以對于0-1分布的問題,計算熵的公式可以簡化如下:
相對熵(KL散度)
如果對于同一個隨機變量X XX有兩個單獨的概率分布?P(x) 和?Q(x),則我們可以使用KL散度來衡量這兩個概率分布之間的差異。
下面直接列出公式,再舉例子加以說明。
在機器學習中,常常使用 P(x) 來表示樣本的真實分布,Q(x) 來表示模型所預測的分布,比如在一個三分類任務中(例如,貓狗馬分類器), x1?,x2?,x3? 分別代表貓,狗,馬,例如一張貓的圖片真實分布 P(X)=[1,0,0] ,預測分布 Q(X)=[0.7,0.2,0.1] ,計算KL散度:
KL散度越小,表示 P(x) 與 Q(x) 的分布更加接近,可以通過反復訓練 Q(x) 來使 Q(x) 的分布逼近 P(x)。
交叉熵
首先將KL散度公式拆開:
前者?H(p(x)) 表示信息熵,后者即為交叉熵,KL散度 = 交叉熵 - 信息熵
交叉熵公式表示為:
在機器學習訓練網絡時,輸入數據與標簽常常已經確定,那么真實概率分布 P(x) 也就確定下來了,所以信息熵在這里就是一個常量。由于KL散度的值表示真實概率分布?P(x) 與預測概率分布 Q(x) 之間的差異,值越小表示預測的結果越好,所以需要最小化KL散度,而交叉熵等于KL散度加上一個常量(信息熵),且公式相比KL散度更加容易計算,所以在機器學習中常常使用交叉熵損失函數來計算loss就行了。
對數損失函數和交叉熵損失函數
邏輯回歸優缺點
LR優點:
LR缺點:
?
其他
邏輯回歸與線性回歸的區別與聯系
區別
- 線性回歸假設響應變量服從正態分布,邏輯回歸假設響應變量服從伯努利分布
- 線性回歸優化的目標函數是均方差(最小二乘),而邏輯回歸優化的是似然函數(交叉熵)
- 線性歸回要求自變量與因變量呈線性關系,而邏輯回歸沒有要求
- 線性回歸分析的是因變量自身與自變量的關系,而邏輯回歸研究的是因變量取值的概率與自變量的概率
- 邏輯回歸處理的是分類問題,線性回歸處理的是回歸問題,這也導致了兩個模型的取值范圍不同:0-1和實數域
- 參數估計上,都是用極大似然估計的方法估計參數(高斯分布導致了線性模型損失函數為均方差,伯努利分布導致邏輯回歸損失函數為交叉熵)
聯系
- 兩個都是線性模型,線性回歸是普通線性模型,邏輯回歸是廣義線性模型
- 表達形式上,邏輯回歸是線性回歸套上了一個Sigmoid函數
LR一般需要連續特征離散化原因
?
?
?
參考鏈接:https://blog.csdn.net/zengxiantao1994/article/details/72787849
交叉熵損失函數:https://zhuanlan.zhihu.com/p/35709485
參考鏈接:https://zhuanlan.zhihu.com/p/38241764
?
總結
以上是生活随笔為你收集整理的逻辑回归模型详解(Logistic Regression)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 集成学习-Boosting集成学习算法L
- 下一篇: 集成学习-Bagging集成学习算法随机