機器學習中邏輯迴歸的代價函式


簡介

邏輯迴歸是機器學習中最簡單的分類演算法之一。邏輯迴歸使用對數損失或交叉熵損失作為損失函式,而不是均方誤差。既然我們已經有了線性迴歸,為什麼還需要邏輯迴歸進行分類,為什麼不能使用線性迴歸進行分類呢?

讓我們透過本文了解這一事實,並詳細探討邏輯迴歸中使用的代價函式。

為什麼我們需要邏輯迴歸,而不能使用線性迴歸?

線上性迴歸中,我們預測的是一個連續值。如果我們將線性迴歸擬合到分類任務中,最佳擬合線看起來就像下面的圖表。

根據上圖,我們將有大於1和小於0的值,但這對於分類來說是沒有意義的,因為我們只對二元輸出0或1感興趣。

因此,我們需要值存在於Y=0和Y=1之間。需要轉換上述直線,使值位於0和1之間。一種這樣的轉換是應用sigmoid函式,如下所示。

$$\mathrm{K=MX+c}$$

$$\mathrm{Y=F(K)}$$

$$\mathrm{F(K)=\frac{1}{1+e^{−Z}}}$$

$$\mathrm{Y=\frac{1}{1+e^{−Z}}}$$

該圖現在如下所示

sigmoid函式給出0和1之間的連續值,這些值是機率值。

邏輯迴歸的對數損失和代價函式

使用機率評估分類模型的流行指標之一是對數損失。

$$\mathrm{F=−\sum_{i=1}^M\:y_{i}\log(p_{\theta}(x_{i}))+(1−y_{i})\log(1−p_{\theta}(x_{i}))}$$

代價函式可以寫成

$$\mathrm{F(\theta)=\frac{1}{n}\sum_{i=1}^n\frac{1}{2}[p_{\theta}(x^{i})−Y^{i}]^{2}}$$

對於邏輯迴歸,

$$\mathrm{p_{\theta}(x)=g(\theta^{T}x)}$$

上述等式導致一個非凸函式,該函式充當代價函式。邏輯迴歸的代價函式是對數損失,總結如下。

$$\mathrm{cost(p_{\theta}(x),(y))=\left(\begin{array}{c}{−\log(p_{\theta}(x))\:if\:y=1}\ {−\log(1−p_{\theta}(x))\:if\:y=0}\end{array}\right)}$$

梯度下降更新方程變為:

$$\mathrm{\theta_{k}:=\theta_{k}−\alpha \sum_{i=1}^n[p_{\theta}(x^{i})−y^{i}]x_j^i}$$

結論

邏輯迴歸是最基本的分類演算法。它使用對數損失或交叉熵損失作為代價函式,傾向於預測0和1之間的結果機率。

更新於:2023年8月27日

瀏覽量:1000+

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告