深度学习--梯度下降

1,深度学习--梯度下降_第1张图片

基本形式如上图:上标表示第几次梯度下降,下标表示第几个参数
深度学习--梯度下降_第2张图片

深度学习--梯度下降_第3张图片
小心调整学习率
深度学习--梯度下降_第4张图片

太大或太小的情况,在训练时,最好把loss与参数变化的图画出来.
深度学习--梯度下降_第5张图片
自适应的学习率,学习率会越来越小.但是更好的是,不同的参数给不同的学习率.
深度学习--梯度下降_第6张图片

其中α是基于过去该参数所有微分值算出的结果.
深度学习--梯度下降_第7张图片
深度学习--梯度下降_第8张图片
深度学习--梯度下降_第9张图片
发现adagrad方法与普通的梯度下降算法,相冲突.因为adagrad方法中,g越大,步长不一定越大,因为
深度学习--梯度下降_第10张图片
深度学习--梯度下降_第11张图片
在多个参数中,找到最佳步长与一次微分与二次微分都有关系,所以不是一次微分越大,步长越大
深度学习--梯度下降_第12张图片
在该方法中用一次微分平方和的平均代替二次微分.
深度学习--梯度下降_第13张图片
深度学习--梯度下降_第14张图片
每次只取一个样本,计算其损失函数与梯度.
普通的要对所有样本求和,而本方法不需要.
深度学习--梯度下降_第15张图片
一般的梯度下降是看完20个样本后.将所有损失平方求和之后进行更新.而随机梯度下降已经更新了20次参数.
深度学习--梯度下降_第16张图片
特征缩放
深度学习--梯度下降_第17张图片
深度学习--梯度下降_第18张图片
用过该方法后,梯度移动方向指向圆心,而不同椭圆形一样,指向需要调整.使得更新更有效率.
深度学习--梯度下降_第19张图片
由此可见进行特征缩放的方法是进行标准化处理.
深度学习--梯度下降_第20张图片
每一次的参数更新并不能保证损失函数一定减小,因为可能学习率不合适.
深度学习--梯度下降_第21张图片
以下为数学原理,在上图可知,更新每一步参数都在一个范围内,找到参数在这个范围内的最小值,然后将参数更新到这次的最小值,无论是否为全局最小值.
深度学习--梯度下降_第22张图片
用到泰勒展开式.
深度学习--梯度下降_第23张图片
虽然只考虑常数和一次项并不能完整拟合出sinx函数,但是在x0附近是可以完全拟合的.上述是一个特征的情况.
深度学习--梯度下降_第24张图片
以上为多个特征的情况.
深度学习--梯度下降_第25张图片
所以在每一组参数中,损失函数可以简化.
深度学习--梯度下降_第26张图片
由此将损失函数转化为常数与一次函数,而一次函数求最小值,就是微分的反方向移动,并且距离最远也就是在圆圈上.
其中参数使得距离在圆上.
深度学习--梯度下降_第27张图片

而这个式子就是梯度下降的式子,并且成立条件是红色圈足够小,所以与之对应的学习率也不能太大.并且在理论上是无穷小.
如果在近似损失函数时,也用到二次式,那么学习率可以相对调大一点.因为结果更加精确.但是学习率太大会使得泰勒展开式不成立.这种方法会多出很多运算,所以一般还是用梯度下降.
深度学习--梯度下降_第28张图片
梯度下降的另一个问题是,在代码中判断微分值小于一个设定的数,但是在不是极小值,也可能出现微分值很小的情况.如上图

你可能感兴趣的:(基础,深度学习,人工智能,机器学习)