二分类问题逻辑回归的损失函数的梯度函数

对于二分类问题,逻辑回归的损失函数是:

J(w) = \frac 1 m \sum_{i=1}^m \left[y^{(i)}(- {\rm log}\pi(t^{(i)})) + (1 - y^{(i)})[1 - {\rm log}\left(1 - \pi(t^{(i)})\right)]\right]

首先介绍结论。求得一个梯度向量,即输入当前的向量 w,得到交叉熵损失函数在这一点的梯度向量:

\begin{pmatrix} \cfrac{\partial}{\partial w_0}J(w) \\ \cfrac{\partial}{\partial w_1}J(w) \\ \cfrac{\partial}{\partial w_2}J(w) \\ \vdots \\ \cfrac{\partial}{\partial w_n}J(w) \\ \end{pmatrix} = \frac{1}{m} X^T \cdot \left(\pi(X \cdot w) - y \right)

我们知道逻辑回归的模型是:
{\rm sigmoid}(t) = \cfrac{1}{1+e^{-t}}

其中 t^{(i)} = w \cdot X^{(i)} + b ,即 t 是一个关于 w 的线性函数,预测的是一个概率。我们的结论是:它关于要学习的参数 w 的梯度函数就是:

\begin{pmatrix} \cfrac{\partial}{\partial w_0}J(w) \\ \cfrac{\partial}{\partial w_1}J(w) \\ \cfrac{\partial}{\partial w_2}J(w) \\ \vdots \\ \cfrac{\partial}{\partial w_n}J(w) \\ \end{pmatrix} = \frac{1}{m} \left(\left(\pi(X \cdot w) - y \right)^T \cdot X \right)^T = \frac{1}{m} X^T \cdot \left(\pi(X \cdot w) - y \right)

下面开始推导:

sigmoid 函数的导函数

首先证明:如果 y = \pi(t) = \cfrac{1}{1+e^{-t}},那么 \cfrac{{\rm d}}{{\rm d}t} \pi(t) = \pi(t)[1 - \pi(t)]

证明:
\begin{equation}\begin{split} \cfrac{{\rm d}}{{\rm d}t} \pi(t) &= -(1 + e^{-t})^{-2} \cdot (1 + e^{-t})^\prime \\ &= -(1 + e^{-t})^{-2} \cdot 1 \cdot (e^{-t})^\prime \\ &= -(1 + e^{-t})^{-2} \cdot 1 \cdot (e^{-t}) \cdot (-t) ^\prime \\ &= -(1 + e^{-t})^{-2} \cdot 1 \cdot (e^{-t}) \cdot (-1) \\ &= (1 + e^{-t})^{-2} \cdot (e^{-t}) \\ &= \cfrac{e^{-t}}{(1 + e^{-t})^{2}} \end{split}\end{equation}

又因为 1 - \pi(t) = 1 - \cfrac{1}{1 + e^{-t}} = \cfrac{1 + e^{-t} -1}{1 + e^{-t}} = \cfrac{e^{-t}}{1 + e^{-t}}

所以 \cfrac{{\rm d}}{{\rm d}t} \pi(t) = \pi(t)[1 - \pi(t)]

(证毕)

对于逻辑回归问题的损失函数求对向量 w 的每个分量的导数的时候,会用到上面的这个结论。


逻辑回归问题的损失函数(注意我们这里使用的是交叉熵损失函数,不是极大似然估计)是:
J(w) = \frac 1 m \sum_{i=1}^m \left[y^{(i)}(- {\rm log}\pi(t^{(i)})) + (1 - y^{(i)})[1 - {\rm log}\left(1 - \pi(t^{(i)})\right)]\right]

其中 \pi(t) = \cfrac{1}{1+e^{-t}}t^{(i)} = \sum_{j=0}^m w_j \cdot x_j^{(i)} ,求 \cfrac{\partial}{\partial w_j}J(w).

说明:t^{(i)} = \sum_{j=0}^m w_j \cdot x_j^{(i)} 表示了第 i 条数据(i = 1,\cdots,m)的线性部分。其中我们送给逻辑回归模型的特征矩阵 X 形如:
X = \begin{pmatrix} 1 & X_1^{(1)} & X_2^{(1)} & \cdots & X_n^{(1)} \\ 1 & X_1^{(2)} & X_2^{(2)} & \cdots & X_n^{(2)} \\ \vdots & \vdots & \ddots & \vdots \\ 1 & X_1^{(m)} & X_2^{(m)} & \cdots & X_n^{(m)} \\ \end{pmatrix},
X 这个矩阵的每一行 [1 , X_1^{(i)} , X_2^{(i)} , \cdots , X_n^{(i)}] 就表示一条数据,其中 1 对应了偏置。w 这个向量形如:

w = \begin{pmatrix} w_0 \\ w_1 \\ w_2 \\ \vdots \\ w_n \\ \end{pmatrix},

我们把矩阵 X 和向量 w 相乘,我们首先分析他们的形状,{\rm shape}(X) = (m,1 + n), {\rm shape}(w) = (1 + n,1), 则 {\rm shape}(Xw)=(m,1)

Xw = \begin{pmatrix} 1 & X_1^{(1)} & X_2^{(1)} & \cdots & X_n^{(1)} \\ 1 & X_1^{(2)} & X_2^{(2)} & \cdots & X_n^{(2)} \\ \vdots & \vdots & \ddots & \vdots \\ 1 & X_1^{(m)} & X_2^{(m)} & \cdots & X_n^{(m)} \\ \end{pmatrix} \begin{pmatrix} w_0 \\ w_1 \\ w_2 \\ \vdots \\ w_n \\ \end{pmatrix} = \begin{pmatrix} w_0 + w_1X_1^{(1)} + w_2X_2^{(1)} + \cdots + w_nX_n^{(1)} \\ w_0 + w_1X_1^{(2)} + w_2X_2^{(2)} + \cdots + w_nX_n^{(2)} \\ \vdots \\ w_0 + w_1X_1^{(m)} + w_2X_2^{(m)} + \cdots + w_nX_n^{(m)} \\ \end{pmatrix}

我们先计算 \cfrac{\partial}{\partial w_j} \left[- {\rm log}\pi(t^{(i)})\right]

\begin {aligned} \cfrac{\partial}{\partial w_j} \left[- {\rm log}\pi(t^{(i)})\right] &= - \cfrac{\pi(t^{(i)})^\prime}{\pi(t)}\\ &= - \cfrac{\pi(t^{(i)})[1 - \pi(t^{(i)})]}{\pi(t^{(i)})} \cdot \cfrac{\partial}{\partial w_j} t^{(i)} \\ &= - \cfrac{\pi(t^{(i)})[1 - \pi(t^{(i)})]}{\pi(t^{(i)})} \cdot x_j^{(i)} \\ &= - [1 - \pi(t^{(i)})] \cdot x_j^{(i)} \\ &= [\pi(t^{(i)}) - 1] \cdot x_j^{(i)} \end {aligned}

再计算 \cfrac{\partial}{\partial w_j} \left[- {\rm log}[1 - \pi(t^{(i)})]\right]

\begin {aligned} \cfrac{\partial}{\partial w_j} \left[- {\rm log}[1 - \pi(t^{(i)})]\right] &= - \cfrac{[1-\pi(t^{(i)})]^\prime}{1 - \pi(t^{(i)})} \\ & = - \cfrac{-[\pi(t^{(i)})]^\prime}{1 - \pi(t^{(i)})} \\ & = \cfrac{[\pi(t^{(i)})]^\prime}{1 - \pi(t^{(i)})} \\ & = \cfrac{\pi(t^{(i)})[1 - \pi(t^{(i)})]}{1 - \pi(t^{(i)})} \cdot \cfrac{\partial}{\partial w_j} t^{(i)} \\ & = \pi(t^{(i)}) \cdot x_j^{(i)} \end {aligned}

那么

\begin {aligned} \cfrac{\partial}{\partial w_j}J(w) &= \frac{1}{m} \sum_{i=1}^m [y^{(i)} \cdot (\pi(t^{(i)}) - 1) \cdot x_j^{(i)} +(1 - y^{(i)})(\pi(t^{(i)}) \cdot x_j^{(i)})] \\ &= \frac{1}{m} \sum_{i=1}^m [y^{(i)} \cdot x_j^{(i)} \cdot \pi(t^{(i)}) - y_i^{(i)} \cdot x_j^{(i)} + \pi(t^{(i)}) \cdot x_j^{(i)} - y^{(i)} \cdot x_j^{(i)} \cdot \pi(t^{(i)})] \\ &= \frac{1}{m} \sum_{i=1}^m [- y^{(i)} \cdot x_j^{(i)} + \pi(t^{(i)}) \cdot x_j^{(i)} ]\\ &= \frac{1}{m} \sum_{i=1}^m [\pi(t^{(i)}) - y^{(i)}] \cdot x_j^{(i)} \end {aligned}

向量化以后得到

\frac{1}{m} X^T(\pi(Xw) - y)

下面我们介绍如何向量化。

向量化

我们记 X^{(i)} = \left(X_0^{(i)},X_1^{(i)},X_2^{(i)},\cdots,X_n^{(i)}\right), 因为 t^{(i)} = \sum_{j=0}^m w_j \cdot x_j^{(i)}, 所以 \pi(t^{(i)}) = \pi(X^{(i)} \cdot w)。则

\begin{aligned} \cfrac{\partial}{\partial w_j}J(w) &= \frac{1}{m} \sum_{i=1}^m [\pi(t^{(i)}) - y^{(i)}] \cdot x_j^{(i)} \\ &= \frac{1}{m} \sum_{i=1}^m [\pi(X^{(i)} \cdot w) - y^{(i)}] \cdot x_j^{(i)} \end {aligned}

它的形状是 (n+1,1)

\begin{eqnarray} \begin{pmatrix} \cfrac{\partial}{\partial w_0}J(w) \\ \cfrac{\partial}{\partial w_1}J(w) \\ \cfrac{\partial}{\partial w_2}J(w) \\ \vdots \\ \cfrac{\partial}{\partial w_n}J(w) \\ \end{pmatrix} \frac{1}{m} \begin{pmatrix} \sum_{i=1}^m [\pi(X^{(i)} \cdot w) - y^{(i)}] \cdot x_0^{(i)} \\ \sum_{i=1}^m [\pi(X^{(i)} \cdot w) - y^{(i)}] \cdot x_1^{(i)} \\ \sum_{i=1}^m [\pi(X^{(i)} \cdot w) - y^{(i)}] \cdot x_2^{(i)} \\ \vdots \\ \sum_{i=1}^m [\pi(X^{(i)} \cdot w) - y^{(i)}] \cdot x_n^{(i)} \\ \end{pmatrix} \end{eqnarray}

上面的列向量,每一个分量都形如两个向量数量积的形式,我们试图把它们写出来,然后根据它们的 shape 再做调整,这里的调整无非就是转置的操作而已。

\begin{eqnarray} &\;&\left(\pi(X^{(1)} \cdot w ) - y^{(1)},\pi(X^{(2)} \cdot w ) - y^{(2)},\cdots,\pi(X^{(m)} \cdot w ) - y^{(m)}\right) \begin{pmatrix} X_0^{(1)} & X_1^{(1)} & X_2^{(1)} & \cdots & X_n^{(1)} \\ X_0^{(2)} & X_1^{(2)} & X_2^{(2)} & \cdots & X_n^{(2)} \\ \vdots & \vdots & \ddots & \vdots \\ X_0^{(n)} & X_1^{(m)} & X_2^{(m)} & \cdots & X_n^{(m)} \\ \end{pmatrix} \\ &=& \left( \sum_{i=1}^m [\pi(X^{(i)} \cdot w) - y^{(i)}] \cdot x_0^{(i)} , \sum_{i=1}^m [\pi(X^{(i)} \cdot w) - y^{(i)}] \cdot x_1^{(i)} , \sum_{i=1}^m [\pi(X^{(i)} \cdot w) - y^{(i)}] \cdot x_2^{(i)} , \cdots \sum_{i=1}^m [\pi(X^{(i)} \cdot w) - y^{(i)}] \cdot x_n^{(i)} \right) \end{eqnarray}

继续分析:\left(\pi(X^{(1)} \cdot w ) - y^{(1)},\pi(X^{(2)} \cdot w ) - y^{(2)},\cdots,\pi(X^{(m)} \cdot w ) - y^{(m)}\right) 的形状是 (1,m)

\begin{pmatrix} X_0^{(1)} & X_1^{(1)} & X_2^{(1)} & \cdots & X_n^{(1)} \\ X_0^{(2)} & X_1^{(2)} & X_2^{(2)} & \cdots & X_n^{(2)} \\ \vdots & \vdots & \ddots & \vdots \\ X_0^{(n)} & X_1^{(m)} & X_2^{(m)} & \cdots & X_n^{(m)} \\ \end{pmatrix} =X

的形状是 (m,n+1)。他们的乘积的形状是 (1,n+1)

\left(\pi(X^{(1)} \cdot w ) - y^{(1)},\pi(X^{(2)} \cdot w ) - y^{(2)},\cdots,\pi(X^{(m)} \cdot w ) - y^{(m)}\right) = \left(\pi(X \cdot w) - y \right)^T

\begin{pmatrix} X_0^{(1)} & X_1^{(1)} & X_2^{(1)} & \cdots & X_n^{(1)} \\ X_0^{(2)} & X_1^{(2)} & X_2^{(2)} & \cdots & X_n^{(2)} \\ \vdots & \vdots & \ddots & \vdots \\ X_0^{(n)} & X_1^{(m)} & X_2^{(m)} & \cdots & X_n^{(m)} \\ \end{pmatrix} =X

\begin{pmatrix} \cfrac{\partial}{\partial w_0}J(w) \\ \cfrac{\partial}{\partial w_1}J(w) \\ \cfrac{\partial}{\partial w_2}J(w) \\ \vdots \\ \cfrac{\partial}{\partial w_n}J(w) \\ \end{pmatrix} = \frac{1}{m} \left(\left(\pi(X \cdot w) - y \right)^T \cdot X \right)^T = \frac{1}{m} X^T \cdot \left(\pi(X \cdot w) - y \right)

(本节完)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容