网站与网站之间做的好坏对比,吉林省电力建设总公司网站,网站内容一样影响收录,网站怎么做速排说明
导数偏微分梯度 梯度#xff1a;是一个向量#xff0c;向量的每一个轴是每一个方向上的偏微分 梯度是有方向也有大小#xff0c;梯度的方向代表函数在当前点的一个增长的方向#xff0c;然后这个向量的长度代表了这个点增长的速率 蓝色代表比较小的值#xff0c;红色…说明
导数偏微分梯度 梯度是一个向量向量的每一个轴是每一个方向上的偏微分 梯度是有方向也有大小梯度的方向代表函数在当前点的一个增长的方向然后这个向量的长度代表了这个点增长的速率 蓝色代表比较小的值红色代表比较大的值中间的箭头比较长方向是由一个极小值指向一个极大值因此中间这部分梯度反应了函数的增长的方向说明了从这个方向增长这个方向是最快的
如何搜索到一个极小值
一般情况下我们搜索的是极小值如果想要搜索极大值的话可以把loss变成负号就可以通过搜索一个极小值解来搜索极大值解 所以这个函数的梯度是(2 θ 1 \theta_{1} θ1,2 θ 2 \theta_{2} θ2),再求(0,0)处的一个梯度情况因此有时候会陷入到一个局部最小值的情况 红色是最原始版本的梯度下降来搜索会卡在马鞍的点上 对于任何的一个点和另外的一个点我们拉一条直线这条直线中间的中点以及中点所对应的函数的值例如定义为z1z2且z1z2,叫做凸函数对于这种情况可以找到一个全局最优解
存在且不太常见的 存在局部极大和局部极小存在多个局部极小值
实际的例子ResNet-56的平面 对于函数的输出可能有无数多个w参数对于ResNet可以有上千万个W的参数f(w1,w2,…)把上千万的自变量可视化到一个二维的平面可能会陷入到无数多的局部极小值中即使有全局最小值解因此对于一个深层次的神经网络取搜索的时候可能找到一个表现不满意的因为此时的解可能是一个局部极小值解因此网络的精度不会特别高Resnet加了一个shortcut的模块在神经网络的旁边加了一条支路发现神经网络可以变得很深同时也可以优化的很好可视化后会变成第二个平面
使用梯度来搜索最小值的情况下除了会遇到局部最小值还可能遇到鞍点
优化器表现
初始状态学习率动量即如何逃离局部极小值
初始状态 对于初始状态的不同会影响找到的是全局解还是局部极小值这样的情况搜索的路径也可能不一样因此大家再做深度学习的时候函数的全职一定要初始化而且初始化的时候如果没有把握就按照目前主流的初始化的方法 上图两种初始化左边会到全局最小解右边会到局部极小值不同的初始化状态会得到不一样的结果
学习率 学习率设置为1的时候比较大步长会比较大但实际上我们需要的情况是左边蓝色的点慢慢下降而不是左边跳到右边再跳到左边是因为学习率设置的过大会一步跨的太长直接跨过了最小值对于比较好的函数还可以慢慢震荡到最小值但是大部分现实情况是直接不收敛了一开始要把learning rate设置的小一点0.01或0.001这样如果发现收敛了可以试着大一点这样会让收敛的速度会快一点
学习率也会影响收敛的精度例如到最小值附近learning rate还是很大会一直在附近震动永远到不了最小值只会得到一个近似比较好的情况这种时候要慢慢减小learning rate
如何逃出局部最小值
很有可能搜索到局部最小值就停止了但是还有最小值这时候可以添加一个动量这个动量可以直观的理解为惯性也就是说在局部极小值左边发现梯度呈现右下降的趋势在右边发现梯度呈左下角的趋势如果在此时考虑一个惯性的话在右边的时候梯度会引导你回去到局部最小值但是本来就是向右去降低梯度的如果可以考虑到一个惯性的话假设向右走是v1向量向左走是v2向量把这两个向量综合一下就会得到一个朝向于偏向v2的方向
常见函数的梯度 简单感知机线性模型的求解 二次模型的梯度 指数求解梯度的方式 线性感知机的输出和真实label之间的均方差
log函数求梯度