邏輯迴歸也可以說是一個分類器。在二分類器中,輸出要麼是0,要麼是1。所以對於一組輸入來說,我們要做的就是通過這個輸入的數據,經過假設函數的處理之後,輸出結果是1的概率。也就是說,輸出是一個概率值。所以現在要轉成邏輯函數:
hθ(x)=11+e−θTx
如何理解這個邏輯函數呢?
這個函數就是爲了評估輸入爲x時,輸出的結果剛好是y=1的概率。所以如果我們有一組數據
(x(i),y(i)=1) 那麼
hθ(x(i))=11+e−θTx(i)
的結果應該儘可能使得
hθ(x(i)) 的結果接近於1(通過調整
θ )。
那麼,當我們有m組數據時,哪一組θ 是擬合得最好(效果最好)的呢?擬合得最好的那組θ 就是我們想要的。所以我們可以定義代價函數爲:
Cost(hθ(x),y)={−log(hθ(x))if y=1−log(1−hθ(x))if y=0
爲什麼這麼定義呢?
我們可以畫出
−log(hθ(x)) 的圖形:
從圖中我們可以看到,當hθ(x) 趨向於1的時候,說明有更高的概率y=1,而這個函數也是當y=1的時候的函數形式。y=1時,hθ(x) 趨向於1,−log(hθ(x)) 的值越小,也就是代價越小。同理,當y=0時,−log(1−hθ(x)) 也是這種趨勢。
因爲y要麼是1,要麼是0,所以代價函數可以寫爲:
Cost(hθ(x),y)=−y log(hθ(x))−(1−y)log(1−hθ(x))
所以:
J(θ)=1m∑i=1mCost(hθ(x(i)),y(i))=−1m[∑i=1my(i)log(hθ(x))+(1−y(i))log(1−hθ(x(i)))]
我們的目標就是獲得
J(θ) 最小值時的那組
θ 值。
事實上,我們也可以使用平方差來作爲代價函數:
Cost(hθ(x),y)=(hθ(x(i))−y(i))2
雖然它們在形式上不一樣,但是它們的意義是一樣。都是刻畫了每一組輸入x與對應的y之間的差距。我們的目標都是爲了找到一組
θ 來最小化這個差距。寫成這種形式之後,又可以使用梯度下降算法來擬合參數了。關於梯度下降算法可以參考我的
上一篇博文。