吴恩达机器学习(一)

单变量线性回归(Linear Regression with One Variable)

代价函数(Cost Function)

代价函数表示分析模型与实际训练集之间的差距
代价函数就是为了就是找到目的函数的最优解,最优解即为代价函数的最小值。

 

上述是平方误差代价函数,这也是常用到的代价函数,它通过目的函数跟各个实际值的误差平方建立新的函数。为了使这个值不受个别极端数据影响而产生巨大波动,采用类似方差再取二分之一的方式来减小个别数据的影响。

最低点为代价函数最小值:

梯度下降算法(Gradient Descent Algorithm)

梯度下降是一个用来求函数最小值的算法,使用梯度下降算法来求出代价函数J(θ0,θ1) 的最小值。

 

算法思想
 
- 从参数的某一个(组)值开始,比如从θ0=0和θ1=0开始 
- 保持该(组)值持续减小,如果是一组值就要保证他们同步更新,直到找到我们希望找到的最小值、

我们要找到一条最快下山的路径,我们走的每一步大小就是α 。 


如果在不同的起点,最后到达的最低点也会不一样。 


3.1批量梯度下降(batch gradient descent)


α:学习速率,决定我们让代价函数下降程度最大的方向迈出的步子有多大
3.1.1 同步更新(Simultaneous update)
在梯度下降算法中,我们需要更新θ0,θ1,实现梯度下降算法的微妙之处是,在这个表达式中,如果你要更新这个等式,你需要同时更新。

3.1.2 梯度下降算法理解
如果 α 太大,那么梯度下降法可能会越过最低点,甚至可能无法收敛,下一次迭代又移动了一大步,越过一次,又越过一次,一次次越过最低点,直到你发现实际上离最低点越来越远,所以,如果 α 太大,它会导致无法收敛,甚至发散。

解决方法——乘偏导数


首先初始化我的梯度下降算法,在那个品红色的点初始化,如果 
我更新一步梯度下降,随着我接近最低点,我的导数越来越接近零,所以,梯度下降一步后,新的导数会变小一点点。然后我想再梯度下降一步,在这个绿点,我自然会用一个稍微跟刚才在那个品红点时比,再小一点的一步,到了新的红色点,更接近全局最低点了,因此这点的导数会比在绿点时更小。所 以,我再进行一步梯度下降时,我的导数项是更小的,θ1更新的幅度就会更小。所以随着梯度下降法的运行,你移动的幅度会自动变得越来越小,直到最终移动幅度非常小,你会发现,已经收敛到局部极小值。

3.1.3 线性回归的批量梯度下降
偏导数求解推导过程

å导æ°æ±è§£æ¨å¯¼è¿ç¨

批量梯度下降方程
通过上面几条公式的整合,最终得出以下公式 

猜你喜欢

转载自blog.csdn.net/qq_42322548/article/details/87982816