梯度下降是一种非常通用的优化算法,它能够找到各种问题的最优解。梯度下降的一般概念是迭代地调整参数,以最小化代价函数。

假如你在浓雾中迷失在群山之中;你只能感觉到脚下地面的坡度。要想快速到达谷底,最好的办法就是沿着最陡的斜坡向下走。这正是梯度下降法:它测量的是误差函数关于参数向量θ的局部梯度,它向着梯度下降的方向。一旦梯度为零,你就达到了代价函数的最小值!

具体地说,首先用随机值填充θ(这被称为随机初始化),然后逐渐改进,一次一小步,每一步试图降低代价函数(例如,MSE),直至算法收敛于一个最低点(见图4 - 3)。

图4 - 3 梯度下降

梯度下降的一个重要参数是步子的大小,由学习速率[learning rate]超参数决定。如果学习速率[learning rate]太小,那么算法需要经过多次迭代才能收敛,这需要很长的时间(见图4-4)。

图4 - 4 学习速率太小

另一方面,如果学习速率[learning rate]过高,你可能会跳过山谷,最终到达另一边,甚至可能比以前更高(即代价函数的值变得更大了)。这可能会使算法变得发散,代价函数的值会变得越来越大,无法找到一个好的解决方案(参见图4-5)。

图4 - 5 学习速率过大

results matching ""

    No results matching ""