建设网站需要学习什么,excel导入wordpress,凡科建站官网电脑版,建设集团网站价格梯度下降法和牛顿法都是优化方法。
梯度下降法
梯度下降法和相关知识可以参考导数、偏导数、梯度、方向导数、梯度下降、二阶导数、二阶方向导数一文。梯度下降法是一种迭代地每次沿着与梯度相反方向前进的不断降低损失函数的优化方法。梯度下降只用到一阶导数的信息#xf…梯度下降法和牛顿法都是优化方法。
梯度下降法
梯度下降法和相关知识可以参考导数、偏导数、梯度、方向导数、梯度下降、二阶导数、二阶方向导数一文。梯度下降法是一种迭代地每次沿着与梯度相反方向前进的不断降低损失函数的优化方法。梯度下降只用到一阶导数的信息没有参考二阶导数的信息。
当自变量有多维时如果某点二阶导数矩阵的最大特征值和最小特征值差别较大二阶导数的信息也就是说在一个自变量维度上一阶导数下降的很快另一个自变量维度上一阶导数下降的很慢慢的那个维度会拖累快的维度导致整体迭代速度较慢。并且此时学习率设置的较小才会避免迭代过程中在二阶导大的方向不经过最低点而跳到对向这样来回跳动但是此时学习率较小同时会导致在二阶导小的方向迭代较慢。在这种情况下选择一个好的学习率是一件比较困难的事情。
如下图所示1,1方向是二阶导最大的方向最陡1,-1方向是二阶导最小的方向最缓红色的线是梯度下降的路线可以看到路线在1,1方向反复来回跳动不断跳到对向。梯度下降在这种情况下的表现有瑕疵。 牛顿法
牛顿法既参考了一阶导数的信息也参考了二阶导数的信息。在理解牛顿法之前可以参考驻点以及二阶导对驻点的判断一文。
牛顿法先在某点进行二阶泰勒展开用二次函数近似表示原函数。 然后求这个二次函数的驻点 到就是一次迭代。
如果原函数就是二次函数那么牛顿法直接就找到了原函数驻点停止迭代。如果原函数不是二次函数那么需要使用二阶泰勒展开每次迭代到达近似二次函数的驻点直至到达原函数驻点。
深度学习下的损失函数
在深度学习中损失函数往往是高维的。
维度越高最小值点出现的概率越来越低鞍点出现的概率越来越高呈指数级增大。这和投硬币是一样的道理在二维情况下二阶导数矩阵的两个特征值都为正的概率最小值点出现的概率是1/4在三维情况下二阶导矩阵的三个特征值都为正的概率最小值点出现的概率是1/8等等......。在高维情况下因为鞍点多牛顿法有很大的概率会停在鞍点上。
并且在高维情况下的特征值都为正的情况更有可能出现在损失函数低的地方也就是说最小值点更有可能出现在损失函数低的地方鞍点更有可能出现在损失函数高的地方。所以在高维情况下牛顿法不仅有很大的概率会停在鞍点上并且这些鞍点还对应着较高的损失函数。
在高维的情况下梯度下降法比牛顿法会取得更好的优化效果。因为梯度下降不断迭代寻找使得损失函数很低的点而牛顿法不断迭代停留在某一驻点上大概率是对应较高损失函数的鞍点。
梯度下降法和牛顿法的对比
梯度下降法牛顿法理念不断迭代使损失函数下降寻找损失函数值较低的点不断迭代进行二阶泰勒近似寻找驻点优点基本不会停留在鞍点速度较快缺点速度较慢需要选择合适的学习率会停留在鞍点损失函数较高 如果有不正确的地方欢迎各位大佬留言呀