机器学习之数学系列(二)逻辑回归反向传播梯度计算公式推导

一、简介

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


机器学习之数学系列(二)逻辑回归反向传播梯度计算公式推导_第1张图片

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


机器学习之数学系列(二)逻辑回归反向传播梯度计算公式推导_第2张图片

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

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

机器学习之数学系列(二)逻辑回归反向传播梯度计算公式推导_第3张图片
机器学习之数学系列(二)逻辑回归反向传播梯度计算公式推导_第4张图片
  其次,按方法(2)计算得到梯度 g r a d ( J ) = ( d w , d b ) grad(J)=(dw,db) grad(J)=(dw,db),推导过程如下所示。
机器学习之数学系列(二)逻辑回归反向传播梯度计算公式推导_第5张图片

三、逻辑回归标准梯度下降优化算法

机器学习之数学系列(二)逻辑回归反向传播梯度计算公式推导_第6张图片
  逻辑回归优化实现,详见我的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.

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