机器学习2-7课讲梯度下降算法
首先,这个算法基于cost函数J(θ0,θ1)的偏导数,目的是找J的最小值(局部最小),J最小代表h与实际的(x,y)分布最接近。
运算时需要将(θ0,θ1)带入到每次运算中的hθ。因为每次梯度下降运算后,hθ=θ0+θ1x都会发生变化。
为什么偏导数是全部误差的均值,(再乘系数α)?
因为,那不是hθ的导数,而是代价函数J(θ0,θ1)的偏导数,想想什么是代价函数,定义代价函数就是为了计算函数估计值与实际值之间的方差,所以代价函数的导数自然与误差有关。
为什么用偏导数作为梯度下降算法中的下降量?
吴教授视频里没说,应该数学的成熟算法。怎么发明出来的我不知道,但用导数做下降量有个好处,当(θ0,θ1)接近最小值时,一般情况下导数趋于0,下降幅度将逐步减小,也就是说导数是下降的速度,导数趋于0,下降速度趋于0,这样无论做多少次迭代运算,计算结果都在最小值附近,理论上无限接近最小值,而不会偏差到其他位置。最小值点就像有吸引力的黑洞一样,不会让计算结果偏离它。