吴恩达deeplearning.ai课程系列笔记02


d

#写在最前,deeplearning.ai系列课程相较于之前的Andrew Ng在coursera上2014发布的机器学习课程内容更加丰富。
重要的是此次课程示例代码都是用python来实现,不需要去熟悉octave,对大部分需要用python来学习机器学习的同学来说是个福音!
原课程视频请移步网易云课堂或者coursea上学习。

#本文内容部分来自网络,只为自己学习以及分享供更多的人学习使用吴恩达deeplearning.ai课程系列笔记02

1、逻辑回归


逻辑回归是一个用于二分类的算法。


举个例子,给你一张图片,你需要判断这张图片中的内容是不是猫。如果是猫的话,输出为1,否则输出为0。

吴恩达deeplearning.ai课程系列笔记02

逻辑回归中,预测值: 


其表示为1的概率,取值范围在之间。

引入Sigmoid函数,预测值: 

其中

 Sigmoid函数的输出结果可以保证始终在0到1之间。如下图所示:

吴恩达deeplearning.ai课程系列笔记02


2、损失函数

逻辑回归的Loss Function:

L(y^,y)=(ylogy^+(1y)log(1y^))

为什么要选择这个函数为逻辑回归的Loss Function呢?

因为它是个凸函数,同时易于寻找最优解。如果损失函数为非凸函数的时候,其在使用低度下降算法的时候,容易得到局部最优解,而不是全局最优解。

吴恩达deeplearning.ai课程系列笔记02

逻辑回归的Cost function:

吴恩达deeplearning.ai课程系列笔记02

对于一个逻辑回归问题而言,我们就是期望寻找恰当的w和b,使得最终的J尽可能的小。


通过最小化J(w, b) 的值,求出w 与b。



  吴恩达deeplearning.ai课程系列笔记02


如上图所示,我们假设w和b都是一个标量(Ps:实际中w是一个矢量),那么J可能取到的值是由w和b生成的曲面上的点。

J的最小值,也就是对应着该曲面的底点。

所谓的梯度下降法,其实就是迭代求出相应的w 和 b


每次迭代更新的修正表达式:

w:=wαJ(w,b)w b:=bαJ(w,b)b

通常使用dw来表示,用db来表示

其中,吴恩达deeplearning.ai课程系列笔记02表示的是学习速率(正数)。用于控制我们在每一次迭代的过程中移动的距离有多远。


3、单个样本的梯度下降

对单个样本而言,逻辑回归Loss function表达式:





然后利用反向传播算法 :

吴恩达deeplearning.ai课程系列笔记02

da=La=ya+1y1adz=Lz=Laaz=(ya+1y1a)a(1a)=ayda=La=ya+1y1adz=Lz=Laaz=(ya+1y1a)a(1a)=ay吴恩达deeplearning.ai课程系列笔记02

da=La=ya+1y1adz=Lz=Laaz=(ya+1y1a)a(1a)=ada=La=ya+1y1adz=Lz=Laaz=(ya+1y1a)a(1a)=ada=La=ya+1y1adz=Lz=Laaz=(ya+1y1a)a(1a)=ayda=La=ya+1y1adz=Lz=Laaz=(ya+1y1a)a(1a)=ayda=La=ya+1y1adz=Lz=Laaz=(ya+1y1a)a(1a)=ayda=La=ya+1y1adz=Lz=Laaz=(ya+1y1a)a(1a)=ayda=La=ya+1y1adz=Lz=Laaz=(ya+1y1a)a(1a)=ay

再对和b进行求导:

吴恩达deeplearning.ai课程系列笔记02

然后就可以求出w和b了。




m个样本的梯度下降同理

关于向量化,忘记了或者不懂向量的基础知识的童鞋,可以去百度下相关的概念。