梯度下降的Θ的更新问题?

为什么
无标题.png

可以保证更新后的Θ使得J(Θ)变小呢?这个变小是沿着梯度方向变小吗?

Eric_Jiang - 我是小象的搬运工!!!

赞同来自: dave_nj

梯度下降只是不动点(fixed point)迭代的一种,梯度下降找到的其实是不动点,而不是直接寻找极小值。在可导的区间上,梯度下降迭代的不动点(梯度为0的点)有三类——极大值,极小值,鞍点。对于梯度下降来说,极大值是不稳定的(再小得误差都可能导致迭代从不动点上逃逸,并且,除非你初始值就是极大值,否则迭代过程几乎不可能到达极大值),而鞍点不稳定性次之(在某侧的误差会导致逃逸),而极小值是梯度下降过程最稳定的不动点。迭代过程可以参照下雨的时候水的流向,水总是会聚集在坑(极小值)里面。 并不是所有不动点迭代都是收敛的。对于梯度下降来说,梯度下降只是在点得足够小的邻域内,负梯度方向让函数值减小,如果你的参数不合适,迭代过程总是超过了这个足够小的邻域,那迭代可能会发散。 如果函数是凸的,那么梯度下降会收敛到最小值(因为只有一个极小值,它就是最小值)。 对于一般问题来说,梯度下降能找到最小值是个概率事件。虽然有很多优化方法,但它仍然是个概率事件。有很多概率方法,试图让你从不稳定的不动点附近“跳出去”(比如,对迭代的过程增加一些扰动),这样得到的不动点往往更加稳定。通常,这些稳定的不动点即便不是最优值,性质也足够好了:) 所以,在很多时候我们也并不是必须要找到最优值。 ~ ~ ~ PS:大部分迭代算法其实都是不动点迭代。构造这个过程的精髓在于——解就是不动点,但不动点未必是解。对于某些特定的问题,不动点就是解(梯度下降之于凸函数)

要回复问题请先登录注册