逻辑回归损失函数推导及求导

优点

  • 实现简单;
  • 分类时计算量非常小,速度很快,存储资源低;

缺点

  • 容易欠拟合,一般准确度不太高
  • 只能处理两分类问题(在此基础上衍生出来的softmax可以用于多分类),且必须线性可分

损失函数

逻辑回归的公式为:
h ( x ) = 1 1 + e − ( w T x + b ) h(x) = \frac{1} {1 + e^{-(w^Tx+b)}} h(x)=1+e(wTx+b)1

假设有N个样本,样本的标签只有0和1两类,可以用极大似然估计法估计模型参数,从而得到逻辑回归模型

设yi=1的概率为pi,yi=0的概率为1 - pi,那么观测的概率为:
p ( y i ) = p i y i ∗ ( 1 − p i ) 1 − y i p(y_i) = p_i^{y_i} * (1-p_i)^{1-y_i} p(yi)=piyi(1pi)1yi
可以看到这个公式很巧妙的将0和1两种情况都包括进去,数学真是美妙的东西

概率由逻辑回归的公式求解,那么带进去得到极大似然函数:
∏ i N h ( x i ) y i ∗ ( 1 − h ( x i ) ) 1 − y i \prod_i^N h(x_i)^{y_i} * (1-h(x_i))^{1-y_i} iNh(xi)yi(1h(xi))1yi
取对数之后:
L ( w ) = ∑ i ( y i ∗ l o g h ( x i ) + ( 1 − y i ) ∗ l o g ( 1 − h ( x i ) ) ) L(w) = \sum_i( y_i * logh(x_i) + (1-y_i) * log(1 - h(x_i)) ) L(w)=i(yilogh(xi)+(1yi)log(1h(xi)))
= ∑ y i ( l o g h ( x i ) − l o g ( 1 − h ( x i ) ) ) + l o g ( 1 − h ( x i ) ) = \sum y_i(logh(x_i)-log(1-h(x_i))) + log(1-h(x_i)) =yi(logh(xi)log(1h(xi)))+log(1h(xi))
= ∑ y i l o g h ( x i ) 1 − h ( x i ) + l o g ( 1 − h ( x i ) ) = \sum y_ilog\frac{h(x_i)}{1-h(x_i)} + log(1-h(x_i)) =yilog1h(xi)h(xi)+log(1h(xi))
= ∑ y i ( w T x i ) + l o g ( 1 − 1 1 + e − w x i ) = \sum y_i(w^Tx_i) + log(1 - \frac{1}{1+e^{-wx_i}}) =yi(wTxi)+log(11+ewxi1)
= ∑ i ( y i ∗ ( w T x i ) − l o g ( 1 + e w T x i ) ) = \sum_i( y_i * (w^Tx_i) - log(1 + e^{w^Tx_i}) ) =i(yi(wTxi)log(1+ewTxi))
上面这个式子的计算过程还用到了对数的一些相关的性质,对L(w)求极大值,得到w的估计值

其实实际操作中会加个负号,变成最小化问题,通常会采用随机梯度下降法拟牛顿迭代法来求解

梯度

现在已经知道损失函数:
L ( w ) = ∑ i ( y i ∗ ( w T x i ) − l o g ( 1 + e w T x i ) ) L(w) = \sum_i( y_i * (w^Tx_i) - log(1 + e^{w^Tx_i}) ) L(w)=i(yi(wTxi)log(1+ewTxi))
现在开始求导:
d L d w = y x − 1 1 + e w T x ∗ e w T x ∗ x \frac{dL}{dw} = yx - \frac{1}{1 + e^{w^Tx}} * e^{w^Tx} * x dwdL=yx1+ewTx1ewTxx
= x ( y − h ( x ) ) = x(y-h(x)) =x(yh(x))
通常来说,是用梯度下降法来求解的,所以会在损失函数前面加个负号求最小值,所以最终的导数变成:
( h ( x ) − y ) x (h(x)-y)x (h(x)y)x

你可能感兴趣的:(机器学习)