機器學習中邏輯迴歸的代價函式
簡介
邏輯迴歸是機器學習中最簡單的分類演算法之一。邏輯迴歸使用對數損失或交叉熵損失作為損失函式,而不是均方誤差。既然我們已經有了線性迴歸,為什麼還需要邏輯迴歸進行分類,為什麼不能使用線性迴歸進行分類呢?
讓我們透過本文了解這一事實,並詳細探討邏輯迴歸中使用的代價函式。
為什麼我們需要邏輯迴歸,而不能使用線性迴歸?
線上性迴歸中,我們預測的是一個連續值。如果我們將線性迴歸擬合到分類任務中,最佳擬合線看起來就像下面的圖表。
根據上圖,我們將有大於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之間的結果機率。