梯度下降(GD)
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 一、梯度下降算法概述 1、介绍 梯度下降法(gradient descent),又名最速下降法(steepest descent)是求解无约束最优化问题最常用的方法,它是一种迭代方法,每一步主要的操作是求解目标函数的梯度向量,将当前位置的负梯度方向作为搜索方向(因为在该方向上目标函数下降最快,这也是最速下降法名称的由来)。 梯度下降法特点:越接近目标值,步长越小,下降速度越慢。 这里每一个圈代表一个函数梯度,最中心表示函数极值点,每次迭代根据当前位置求得的梯度(用于确定搜索方向以及与步长共同决定前进速度)和步长找到一个新的位置,这样不断迭代最终到达目标函数局部最优点(如果目标函数是凸函数,则到达全局最优点)。 我们更加直观清晰的说明梯度下降,其实就是一个公式: 上面的公式这个位置更新公式,说白了,就是你每走一步,就记录下你现在的位置,也就是等号左边的θi,那么走一步走多远呐?答案应该是α,那你要朝哪个方向走呢?答案是J(θ)关于θi的偏导数。 说明: 在这里我们区分下经常用的函数: 损失函数(Loss Function )是定义在单个样本上的,算的是一个样本的误差。 代价函数(Cost Function )是定义在整个训练集上的,是所有样本误差的平均,也就是损失函数的平均。 目标函数(Object