【学习笔记】吴恩达老师《深度学习工程师》四

第三课 logistic回归损失函数

我们想使用sigmoid函数,将我们的输出结果介于0~1之间,那么我们就需要一个参数w,乘以我们的输入x,然后累加,从而实现我们的想法。

如果我们某次的输出结果为,预期的输出结果为,自然得我们渴望得到,那么构建一个损失函数L,来衡量输出结果即可。   一般的,构建出的损失函数形为:

但是这个函数在实践中发现,会出现局部最优解的问题,也就是说在梯度下降法中会出现多个最小值。

于是我们换用这个定义:

第一个定义很好理解,y与y^越接近,损失函数越小,第二个呢?

假设y为1.  那么损失函数变为,我们希望L尽可能的小,那么就需要y^尽可能的大,因为y^也是我们通过w与x相乘得到的,因此,y^最大也不过是1,那么此时,y^将无限趋近于1.

反之,y=0,,还是一样的逻辑关系,y^无限趋近于0,是不是和第一次损失函数的定义有异曲同工之妙?

当然,这个损失函数仅仅适用于单个样本。对于全体训练集,我们需要另一个函数,叫做成本函数。


它是将m个损失函数进行求和取平均值得到的。

最终的目的还是要找到w,b的值,使得J(w,b)最小。

第四课  梯度下降法

上节课说(两行之前说,o(* ̄▽ ̄*)o),我们希望成本函数最小,就需要找到合适的w和b的值。

如果我们的成本函数looks like this:


像一个大碗,我们要找的就是碗底那个点,在那里成本函数最小。你或许会疑惑,你说是个碗形就是碗形吗!!emmm……你先坐下,这个不是因为咱们从定义了一下损失函数嘛,让它从其他曲里拐弯形变成了我们想要的碗形!

开始我们并不知道w,b怎么取值,怎么办?这个问题十分复杂,需要极其精妙的数学推理,配合量子物理学,我们得到的方法就是——随便瞎胡取一个先!是的,没错,瞎取一个。然后在这个基础上,做梯度下降。

比如图中最高的红点,就是我们瞎取的,我们让它沿着最陡的坡度进行下降,不断迭代,最终到达碗底,完成任务。

我们暂时忽略b,将三维图像变为平面二维图形:


我们要做的通过伪代码来介绍:

重复{

    ,:=表示更新w的值

       }

也就是说,如果我们的w很大,好,它的斜率为正,w不断减去一个正数,越来越接小,越来越接近最小值点。

w很小,斜率为负,同样也会接近中心点。 因此无论w处于最优解的左侧还是右侧,总能找到全局最优解。

推论到J(w,b):


道理同上,这就是梯度下降。

猜你喜欢

转载自blog.csdn.net/yourgreatfather/article/details/79893115