吴恩达deeplearning.ai课程系列笔记02
d
#本文内容部分来自网络,只为自己学习以及分享供更多的人学习使用
1、逻辑回归
逻辑回归是一个用于二分类的算法。
举个例子,给你一张图片,你需要判断这张图片中的内容是不是猫。如果是猫的话,输出为1,否则输出为0。
逻辑回归中,预测值:
其表示为1的概率,取值范围在之间。
引入Sigmoid函数,预测值:
其中
Sigmoid函数的输出结果可以保证始终在0到1之间。如下图所示:
2、损失函数
逻辑回归的Loss Function:
L(y^,y)=−(ylogy^+(1−y)log(1−y^))
为什么要选择这个函数为逻辑回归的Loss Function呢?
因为它是个凸函数,同时易于寻找最优解。如果损失函数为非凸函数的时候,其在使用低度下降算法的时候,容易得到局部最优解,而不是全局最优解。
逻辑回归的Cost function:
对于一个逻辑回归问题而言,我们就是期望寻找恰当的w和b,使得最终的J尽可能的小。
通过最小化J(w, b) 的值,求出w 与b。
如上图所示,我们假设w和b都是一个标量(Ps:实际中w是一个矢量),那么J可能取到的值是由w和b生成的曲面上的点。
J的最小值,也就是对应着该曲面的底点。
所谓的梯度下降法,其实就是迭代求出相应的w 和 b
每次迭代更新的修正表达式:
w:=w−α∂J(w,b)∂w b:=b−α∂J(w,b)∂b
通常使用dw来表示,用db来表示。
其中,表示的是学习速率(正数)。用于控制我们在每一次迭代的过程中移动的距离有多远。
3、单个样本的梯度下降
对单个样本而言,逻辑回归Loss function表达式:
然后利用反向传播算法 :
da=∂L∂a=−ya+1−y1−adz=∂L∂z=∂L∂a⋅∂a∂z=(−ya+1−y1−a)⋅a(1−a)=a−yda=∂L∂a=−ya+1−y1−adz=∂L∂z=∂L∂a⋅∂a∂z=(−ya+1−y1−a)⋅a(1−a)=a−y
da=∂L∂a=−ya+1−y1−adz=∂L∂z=∂L∂a⋅∂a∂z=(−ya+1−y1−a)⋅a(1−a)=a−da=∂L∂a=−ya+1−y1−adz=∂L∂z=∂L∂a⋅∂a∂z=(−ya+1−y1−a)⋅a(1−a)=a−da=∂L∂a=−ya+1−y1−adz=∂L∂z=∂L∂a⋅∂a∂z=(−ya+1−y1−a)⋅a(1−a)=a−yda=∂L∂a=−ya+1−y1−adz=∂L∂z=∂L∂a⋅∂a∂z=(−ya+1−y1−a)⋅a(1−a)=a−yda=∂L∂a=−ya+1−y1−adz=∂L∂z=∂L∂a⋅∂a∂z=(−ya+1−y1−a)⋅a(1−a)=a−yda=∂L∂a=−ya+1−y1−adz=∂L∂z=∂L∂a⋅∂a∂z=(−ya+1−y1−a)⋅a(1−a)=a−yda=∂L∂a=−ya+1−y1−adz=∂L∂z=∂L∂a⋅∂a∂z=(−ya+1−y1−a)⋅a(1−a)=a−y
再对和b进行求导:
然后就可以求出w和b了。
m个样本的梯度下降同理
关于向量化,忘记了或者不懂向量的基础知识的童鞋,可以去百度下相关的概念。