您當前的位置:首頁 > 旅遊

為什麼邏輯迴歸要使用交叉熵作為損失函式

作者:由 賈唐浩 發表于 旅遊時間:2018-01-21

在邏輯迴歸中,

y\in\{0,1\}

。根據機率論,我們約定

\hat{y}=P(y=1|x)

。這樣我們可以得到:

\begin{equation} P(y|x)=\left\{ \begin{aligned} &\hat{y}\ \ \ \ \ \ \ \ y=1\\ &1-\hat{y}\ y=0 \end{aligned} \right. \end{equation}

綜合起來,就有

P(y|x)=\hat{y}^y(1-\hat{y})^{(1-y)}

由於取自然對數不改變機率的函式的單調性,因此最大化機率等價於最大化以下的函式:

\log P(y|x)=y\log \hat{y}+(1-y)\log(1-\hat{y})

我們使用梯度下降法求解,因此需要對上式取相反數,從而轉化為求最小值。

L(w,b)=-[y\log \hat{y}+(1-y)\log(1-\hat{y})]

在整個訓練集上的m個樣本使用以上的損失函式,可以得到最終的成本函式。這裡假設所有樣本都是獨立同分布的,因此機率分散式所有機率分佈的乘積:

P(y|x_1,x_2,\dots,x_m)=\prod_{i=1}^{m}P(y|x_i)

同樣,對上式取對數,使用極大似然估計求得機率最大時對應的引數。類似地,我們需要最小化函式,因此取相反數,即:

J(w,b)=-\sum\limits_{i=1}^{m}y^{(i)}\log \hat{y}^{(i)}+(1-y^{(i)})\log(1-\hat{y}^{(i)})

通常,我們會給函式新增一個額外的縮放係數

\frac{1}{m}

,得到

J(w,b)=-\frac{1}{m}\sum\limits_{i=1}^{m}y^{(i)}\log \hat{y}^{(i)}+(1-y^{(i)})\log(1-\hat{y}^{(i)})

我們的目標就是最小化上面的函式。