本专栏将推出一系列深度学习与图像处理相关的教程文章。注重原理精讲和代码实现。实现框架将重点选择Tensorflow或Pytorch。本讲讲解逻辑斯第回归的反向传播算法,重新审视softmax函数与sigmoid函数的联系。


逻辑斯第回归的反向传播算法

上一篇博文介绍了逻辑斯第回归:它是对二分类概率值的回归,用于分类。逻辑斯第回归可以重新形式化为:

(15)P(y=0)=σ(wTx+b)

其中σ(t)为Sigmoid函数
(16)σ(t)=11+exp(t)

wRm,bR为待定模型参数。

为了说明反向传播算法,我们需要实例化模型。不妨设w=(w0,w1)T,w2=b,则

(17)f(w,x)=11+exp(wTx+b)=11+exp((w0x0+w1x1+w2))

函数f(w,x)可以看成四个基本函数的复合,因此计算梯度时可以用链式法则

(18)f(x)=1xfx=1x2 fc(x)=c+xfx=1 f(x)=exp(x)fx=exp(x) fa(x)=axfx=a

在现代机器学习框架Tensorflow、Pytorch等的现实中,模型被构建为一个计算图(Computation Graph)。正向推理是按计算图正向计算(图中绿色)。反向传播则是按计算图反向计算梯度(图中红色),传播误差,更新权重。反向计算梯度这一过程也可以视为求导链式法则的应用。

再看Logistic回归与softmax函数

图1 逻辑斯第回归的计算图(摘自cs231课件)

计算图可以拓展到更多层、复杂的模型中,从而称为机器学习模型的一般形式。

softmax函数与sigmoid函数的联系

逻辑斯第回归可以解决二分类问题,但是应用场景中更多的是多分类问题。如果问题推广到n-分类问题,那么我们希望模型的形式与逻辑斯第模型相似,为

(12)o=f(Wx+b)

其中WRm×nbRn为待定参数。oRn为one-hot 向量,它的哪个维度最大就表示特征x代表的样本属于哪个类别。那么问题的关键就在于:函数f如何定义?

这就引入了Softmax分类。Softmax分类就是逻辑斯蒂回归到多分类问题的推广,其概率预测模型定义为

(13)y^=softmax(Wx+b)

其中y^Rn的第c个元素[y^]c表示数据x属于第c个类别的概率。

softmax(z)的第c个元素定义为

(14)[softmax(z)]c=exp([z]c)k=1nexp([z]k)

图2展示了softmax函数处理两个三维向量的结果。可以看出softmax函数具有非极大值抑制的效果。也就是说这个函数能在模型训练中突出正确类别,并将正确类别的影响放大,从而加速模型的训练和收敛过程。

再看Logistic回归与softmax函数
图2 向量经过softmax函数后的结果

softmax函数本质上通过exp()在模型中引入非线性特性,并且将预测值归一化,从而可以直接对应到类别概率。从这一点上看,softmax函数与sigmoid函数是非常类似的。

本文的实现代码已经在前一篇博文《逻辑斯第回归、softmax分类与多层感知器》中给出。

相关文章:

  • 2021-10-09
  • 2021-10-07
  • 2021-06-25
  • 2021-10-12
  • 2021-07-02
  • 2021-12-21
  • 2022-01-01
猜你喜欢
  • 2021-06-09
  • 2021-06-04
  • 2021-09-14
  • 2022-12-23
  • 2021-09-07
  • 2021-09-01
  • 2021-12-15
相关资源
相似解决方案