【深度学习】1 Logistic回归与梯度下降

0 前言

本文是吴恩达教授深度学习课程的个人笔记,细节之处有所遗漏,如想了解更多请参照《神经网络与深度学习》-Stanford吴恩达教授

1 问题的引入

假设我们手边有m张猫的图片,以及一张不知道内容的图片,如何判断这张图片是不是猫呢?或者说,这张图片是猫的概率有多大呢?

2 分析

我们知道,一张图是由若干像素所组成,每个像素上的颜色是由其RGB值确定,假设这里的照片都是64×64像素,因此,一张照片可以看做红绿蓝三个RGB值组成的64×64矩阵。将这64×64个像素纵向排列,我们就得到了一个64×64维度的矩阵。

设图片的像素为n×n,我们将其排列好后,就得到了一个nn*维度的矩阵,我们将其设为 x 1 x_1 x1,这个矩阵,对应了一个概率值,这个概率值代表这张图片是否为猫,我们设它为 y 1 y_1 y1

问题中,我们有m张猫的图片,重复上述步骤,即得到了 x 2 , x 3 , . . . . . . . , x m x_2,x_3,.......,x_m x2x3.......xm y 2 , y 3 . . . . . . , y m y_2,y_3......,y_m y2y3......ym,形成了m组映射关系。此时,再将 x 1 , x 2 , x 3 , . . . . . . . , x m x_1,x_2,x_3,.......,x_m x1x2x3.......xm分别作为列向量,组合成一个(n×n,m)的矩阵X。将 y 1 , y 2 , y 3 , . . . . . . , y m y_1,y_2,y_3,......,y_m y1y2y3......ym纵向排列,得到一个(m,1)矩阵Y

3 logistic回归

3.1 X与Y的映射关系

在我们过去的经验中,对于因变量和自变量的关系,我们经常使用线性函数 y = k x + b y=kx+b y=kx+b来研究。但反应到这个求概率的问题上显然不妥,因为y是概率,他的取值范围只能在(0,1)之间。

为了解决这个问题,使得从x出发,经过各种变换,使得y的取值能保持在(0,1)之间,我们引入sigmoid函数 σ ( z ) = 1 1 + e − z \sigma(z) = \cfrac{1}{1+e^{-z}} σ(z)=1+ez1sigmoid函数的函数图像如图所示,在自变量z趋于无穷大或无穷小时,结果无限接近于10
    *sigmoid*  函数
sigmoid 函数

X缩放平移,把其当做sigmoid函数自变量,步骤综合,则得到XY的数学关系为:

Y = σ ( w X + b ) Y = \sigma(wX+b) Y=σ(wX+b)

这里的公式是有很大的问题的,因为于情于理,这个公式在数值上都是难以成立的,此处只是为了大致描述他们之间的映射关系,接下来将继续探讨这个问题,即如何将此公式变得成立。

3.2 Y Y Y到底是什么

讨论这个问题时,我们要先观察上面的公式,式子中,sigmoid函数已知, X X X已知,而 w w w b b b可能还是不确定的!

未知的 w w w b b b将带来两种情况,一, w w w b b b确定,那按照式子,我们可以直接求得那张图为猫的概率,这没啥说的,自然而然成立,二, w w w b b b不确定,那么势必造成求出来的 Y Y Y与真实值存在差异!

这第二个情况,是笔者在学完logistic回归后觉得最有意思的一点。

logistic回归,顾名思义,有一个回归的动作,为什么要回归?因为有东西它跑远了!那是谁跑远了?就是 w w w b b b这两个不确定的东西跑远了!

在算法的最开始, w w w b b b被赋予了一个不准确的值,按照这个值计算后, Y Y Y的真实值与计算值存在着很大的差异,我们希望最后的最后, w w w b b b能尽量准确,即这个差异尽量小,所以我们让 w w w b b b往某对值上回归,当他们俩取到这个值的时候,差异是最小的。

3.3 如何衡量这个差异

不同于以往使用平方差等方式,我们要用到损失函数 L ( y ^ , y ) L(\hat{y},y) L(y^,y)来衡量这个差异,此处 𝐿 ( y ^ , 𝑦 ) = − 𝑦 log ⁡ ( y ^ ) − ( 1 − 𝑦 ) log ⁡ ( 1 − y ^ ) 𝐿(\hat{y}, 𝑦) = -𝑦\log_{}(\hat{y}) - (1 - 𝑦)\log_{}(1 - \hat{y}) L(y^,y)=ylog(y^)(1y)log(1y^)原因请参考吴恩达教授对于Logistic 损失函数的解释。

我们有m个张照片,每一组都将形成一组损失函数,将这些损失函数求和平均,得到代价函数:
代价函数
代价函数用来衡量当前 w w w b b b参与计算后,计算值与结果值的差异。

3.4 梯度下降法

我们通过前面的步骤,已经确定了总代价与 w w w b b b的直接关系,我们现在要解决的就是确定一组 w w w b b b,使得总代价全局最小。梯度下降法,就是一种确定 w w w b b b的方法。

如图有一个凹函数,仅有一个极值点。利用公式,即可实现 w w w的自我更新,使其逐渐靠近最低点。

其中a是学习率,也叫步长,用来控制下降的长度。由公式可见,无论在最低点左边还是右边,w都将逐步接近最低点。步长的选择也会对求解速度造成影响,若步长过大,会形成在最低点来回振荡的效果,若步长过小,虽然结果精确度会变高,但也会降低求解速度。

公式
凹函数
而对于代价函数来说,他是关于w和b的二元方程,因此导数应该为偏导形式,即wb更新的公式为:
w和b更新的公式
现在的工作就剩下求步长后的导数,我们通过链式求导法则,可以直接得到上述两个导数,完成一次梯度下降的式子如下图所示。
一次梯度下降

4 总结

第一步,将所有样本的所有特征值放入样本矩阵

第二步,利用sigmoid函数求出预估值

第三步,利用公式求出JZ的导数

第四步,求JwJb的导数

第五步,梯度下降求 w w w b b b.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值