1.1 sigmoid函式
由於二分類結果是1或者0,這與數學的階躍函式很類似,但是階躍函式在x=0的位置會發生突變,這個突變在數學上很難處理。所以一般使用sigmoid函式來擬合:
具體應用到邏輯迴歸演算法中:
其中xi表示樣本屬性(對於我們而言,就是標籤IP)的值, ωi表示這個屬性對應的係數(也就是演算法需要計算的內容)。注意這裡將x0與ω0也代入了上述公式,其中前者恆為1。於是問題就變成了在訓練樣本中,已知屬性x與最終分類結果y(1或者0)時,如何求得這些係數 ωi,使得損失最小。
1.2 極大似然估計MLE與損失函式
在機器學習理論中,損失函式(loss function)是用來衡量模型的預測值f(x)與真實值Y的不一致程度,它是一個非負實值函式,損失函式越小,模型越優(還需考慮過擬合等問題)。損失函式是經驗風險函式的核心部分,也是結構風險函式重要組成部分。模型的結構風險函式包括了經驗風險項和正則項,通常可以表示成如下式子
其中m表示樣本的數量。對於邏輯迴歸,其loss function是log損失,這可以通過極大似然估計進行推導得到。
首先,給定一個樣本x,可以使用一個線性函式對自變數進行線性組合,即上述的(2)式子:
根據sigmoid函式,我們可以得出預測函式的表示式為:
上式表示y=1的預測函式為hω(x)。在這裡,假設因變數y服從伯努利分佈,取值為0和1,那麼可以得到下列兩個式子:
而對於上面的兩個表示式,通過觀察,我們發現,可以將其合併為以下表示式:
根據上面的式子,給定一定的樣本之後,我們可以構造出似然函式,然後可以使用極大似然估計MLE的思想來求解引數。但是,為了滿足最小化風險理論,我們可以將MLE的思想轉化為最小化風險化理論,最大化似然函式其實就等價於最小化負的似然函式。對於MLE,就是利用已知的樣本分佈,找到最有可能(即最大概率)導致這種分佈的引數值;或者說是什麼樣的引數才能使我們觀測到目前這組資料的概率最大。使用MLE推導LR的loss function的過程如下。
首先,根據上面的假設,寫出相應的極大似然函式(假定有m個樣本):
上述式子中的ω及xi均為向量,並未顯示其轉置。
直接對上面的式子求導會不方便,因此,為了便於計算,我們可以對似然函式取對數,經過化簡可以得到下式的推導結果:
因此,損失函式可以通過最小化負的似然函式得到,即下式:
在周志華版的機器學習中,將sigmiod函式代入hω(xi),並使用ln代替log,上述公式表示為:
在某些資料上,還有另一種損失函式的表達形式,但本質是一樣的,如下【推導見下面1.4】:
1.3 梯度下降
這裡就以梯度下降為例對邏輯迴歸進行求解,其迭代公式的推導過程如下:
上述中xi,j表示第i個樣本的第j個屬性的取值。
於是,ω的更新方式為:
對於隨機梯度下降,每次只取一個樣本,則ω的更新方式為:
其中x為這個樣本的特徵值,y為這個樣本的真實值,xj為這個樣本第j個屬性的值。
這使用周志華版的損失函式更容易得出這個結論。
1.4 另一種形式的損失函式及其梯度
與上面相同,根據sigmoid函式,我們可以得出預測函式的表示式為:
上式表示y=1的預測函式為hω(x)。
但與上面不同,我們假設樣本的分佈為{-1,1},則
對於sigmoid函式,有以下特性(簡單推導一下就可以得到):
於是(14)(15)式可以表示為:
同樣,我們使用MLE作估計,
對上式取對數及負值,得到損失為:
即對於每一個樣本,損失函式為:
對上式求梯度,容易得到: