吴恩达深度学习--梯度下降法


       代价函数J可以衡量你的参数W和b在训练集上的效果。要使得参数w和b设置合理自然地想到要去找到使得代价函数J(w,b)尽可能小所对应的w和b.


       在实践中w可以是更高的维度,但为了更好的绘图,我们定义w和b都是单一实数。

       代价函数J(w,b)是在水平轴w和b上的曲面,因此曲面的高度就是J(w,b)在某一点的值

      我们所想要做的就是找到这样的w和b,使得对应的代价函数J值是最小值。

       我们可以看到代价函数J是一个凸函数(convex function),像这样的一个大碗,因此这是一个凸函数。

为了找到优的参数值,我们将会用一些初始值来初始化w和b。


       可能是用哪个小红点表示的,对于逻辑回归几乎所有的初始化方法都有效,通常用0来初始化。随机初始化也有效,但是对于逻辑回归我们通常不这么做,但是因为函数是凸函数,无论在哪里初始化,你应该达到同一点或大致相同的点。



      梯度下降发以初始点开始,然后朝最陡的下坡方向走一步,你或许会停在那里,因为它正视图沿着最陡下降的方向走下坡路或者尽可能快的下坡,这是梯度下降的一次迭代,两次迭代或许会到达那里,三次或更多,我猜想这是隐藏在曲线后面希望你收敛到这个全局最优值或接近全局最优值。



学习率:可以控制我们在每一次迭代或梯度下降法中步长大小


      W通过W自身减去学习率乘导数来更新,导数是的所有你每一次从W中减去这个乘积。接着,每一次在下降函数中都向左走一步。



       如果在一开始你参数W的值就非常大的话,像这样梯度下降法会使你的算法渐渐的减小这个参数W。


       另一个问题,如果W的值在这里,这个点处的斜率dJ/dw将会是负的,并且梯度下降法在更新参数时,W将会减去α乘上一个负数,所以这样的迭代和梯度下降会使得参数W逐步变大。

        所以,无论你初始化的位置是在左边还是右边,梯度下降法会超着全局最小值方向移动。


  这两个等式是你实际迭代更新参数时进行的操作。


       求导有两种表达情况:如果J只有一个变量,就使用小写字母d。唯一的区别是你使用偏导数符号还是小写字母d,取决于你的函数J是否含有两个以上的变量,变量超过两个,就是用偏导数符号,如果只有一个就使用小写字母d。

你可能感兴趣的:(吴恩达深度学习--梯度下降法)