机器学习之数学系列(二)逻辑回归反向传播数学推导

一、简介

  在深度学习领域,我们往往采用梯度下降(或上升)法来优化训练函数模型,梯度下降法尤其是在优化凸函数上表现极佳。模型优化涉及到反向传播过程,反向传播过程需要先推导出梯度计算公式然后利用机器进行代数运算。这篇博文的工作是详细推导了逻辑回归反向传播梯度计算公式(什么是梯度?简单来讲就是成本函数对未知参数向量的导数,这个梯度方向是成本函数下降最快的方向),最后附上逻辑回归优化算法和逻辑回归实现代码。


逻辑回归描述

  逻辑回归问题描述如Figure1所示,它是在多元线性回归的基础上对回归结果使用sigmoid函数进行激活计算得到条件概率 p ( y = 0 x ) p ( y = 1 x ) p(y=0|x)或p(y=1|x) ,用来解决二分类问题。这里多说一点如果你想实现多分类可以使用softmax,soft就体现在每一类别都有非零置信度(条件概率),而不是像hard那样只有一个类别有1置信度其余置信度均为0。以一个样本作为输入的logistic regression forward propagation数学形式化表达为:


单个输入样本下的逻辑回归前向传播数学形式化表达

二、反向传播梯度计算公式推导

  接下来是logistic regression back propagation,反向传播梯度计算要求1.熟知前向传播代数计算过程2.复合函数偏导数的链式法则[3]以及向量微分理论[4]。在反向传播推导梯度时可以(1)先计算一个输入样本的梯度,然后根据变量与变量的偏导数有相同shape(形式)来推广计算多个输入样本的梯度也就是实现梯度的向量化或叫矩阵化[1][2],之所以要将梯度向量化是为了使用相关矩阵理论来简化代数运算。(2)直接对向量化后的多输入样本根据链式法则和向量求导理论推导梯度即可。接下来我将使用这两种方法来详细的推导梯度计算公式。
  首先,按方法(1)推导梯度。由于逻辑回归parameters就只有 w w b b ,故而反向传播过程只需计算 L w d w \frac {∂L} {∂w}\equiv dw L b d b \frac {∂L} {∂b}\equiv db ,从而获得梯度 g r a d ( L ) = ( d w , d b ) grad(L)=(dw,db) 。过程如下所示。

一个输入样本下的链式法则

求单样本输入梯度到求多样本输入梯度
  其次,按方法(2)计算得到梯度 g r a d ( J ) = ( d w , d b ) grad(J)=(dw,db) ,推导过程如下所示。
直接求多输入样本梯度

三、 逻辑回归优化算法

逻辑回归优化算法
  逻辑回归的实现,详见我的github仓库:https://github.com/yiguanxian/implement-logistic-regression
  由于博主水平有限,博文中难免有错误和不当之处,欢迎小伙伴们给与批评和指正,也欢迎小伙伴们补充其他更简单的方法,可以直接留言评论。希望我的这篇博文能对你有所帮助,祝好!

参考:
[1]https://mooc.study.163.com/learn/2001281002?tid=2001392029#/learn/content?type=detail&id=2001702011
[2]https://mooc.study.163.com/learn/2001281002?tid=2001392029#/learn/content?type=detail&id=2001702012
[3] 欧阳光中,朱学炎等.数学分析下册[M].北京:高等教育出版社,2007:168.
[4]吴孟达,李兵等.高等工程数学[M].北京:科学出版社,2004:71-75.

猜你喜欢

转载自blog.csdn.net/buchidanhuang/article/details/83958947