参照《机器学习》这本书的第4.4.3节。
一.解决目标及情景假设:
当给定一些数据,输入x向量已知,输出y也已知,设计一个线性函数y=h(x)去拟合这些数据。
既然是线性函数,在此不妨设为h(x)=w0*x0+w1*x1。
此时我们遇到的问题就是如何确定w0和w1这两个参数,即w=(w0,w1)这个向量。
既然是拟合,则拟合效果可以用误差函数:E(w)=∑ [ h(x)- y ] ^2 / 2 来衡量。
其中w是权重二维向量,x是输入二维向量,x和y都是训练集的数据,即已知。
至于后面除于2只是为了之后的推导过程中对E求导时候可以消除系数,暂时可以不管。
因为我们解决的目标是找出一个向量w=(w0,w1)使得E(w)值最小,即误差最小。
其实这个问题本质上也是搜索最优解的问题,如果用暴力搜索的话,随机取每个可能的值去让机器每天每夜地跑,显然这是不可能的。
所以此时有一种搜索策略:梯度下降。
二. 梯度下降方法:
梯度其实就是高数求导方法,对E这个公式针对每个维数(w0,w1)求偏导后的向量▽E(w)=(∂E/∂w0,∂E/∂w1)
梯度为最陡峭上升的方向,对应的梯度下降的训练法则为:
w=w-η▽E(w)
这里的η代表学习速率,决定梯度下降搜索中的步长 。