机器学习入门(二)之----线性回归

2019年9月22日18:22:52-2019年9月22日18:59:51

对于给定居住面积和卧室数量预测房价的问题。我们可以建立一个线性回归模型。假设具有如下形式,

[h(x)=sum_{i=0}^{n} heta_{i} x_{i}= heta^{T} x ]

其中( heta_{i}) 叫做参数(parameters),也叫权重(weights)。(x_{0}=1)截距项(intercept)。
注意,这里的记法是上标表示一个样例下标表示样例的某一个分量,(n)变量个数。
对于训练集中的数据,我们希望假设在输入上的预测值与输出偏差的平方和最小,所以有如下损失函数(ecost function)来衡量某个假设在训练集上的表现,

[egin{equation} J( heta)=frac{1}{2} sum_{i=1}^{m}left(h_{ heta}left(x^{(i)} ight)-y^{(i)} ight)^{2} end{equation} ]

最小均方算法(least mean square)

我们用梯度下降法(gradient descent)来最小化这个损失,定义了损失函数(J( heta)) 之后,函数梯度下降法给以下面的规则同时更新各个参数,

[egin{equation} heta_{j} := heta_{j}-alpha frac{partial}{partial heta_{j}} J( heta) end{equation} ]

现在我们来具体求出在线性回归问题上的更新公式,先假设有一个样例$left(x^{}, y^{} ight) $ ,

[egin{aligned} frac{partial}{partial heta_{j}} J( heta) &=frac{partial}{partial heta_{j}} frac{1}{2}left(h_{ heta}(x)-y ight)^{2} \ &=2 cdot frac{1}{2}left(h_{ heta}(x)-y ight) cdot frac{partial}{partial heta_{j}}left(h_{ heta}(x)-y ight) \ &=left(h_{ heta}(x)-y ight) cdot frac{partial}{partial heta_{j}}left(sum_{i=0}^{n} heta_{i} x_{i}-y ight) \ &=left(h_{ heta}(x)-y ight) x_{j} end{aligned} ]

因此对一个样本有更新规则(对(n) 个变量同时进行,(j=1,2,ldots,n) ),

[ heta_{j} := heta_{j}+alphaleft(y^{(i)}-h_{ heta}left(x^{(i)} ight) ight) x_{j}^{(i)} ]

上面的更新规则又叫做最小均方误差更新规则(least mean square),或者 Widrow-Hoff学习规则,来一个样本更新一次,又叫随机梯度下降或增量梯度下降(stochastic gradient descent)。随机梯度下降法,震荡比较猛一点,不过一般情况下也还好。当数据集很大时,这种方法比后面的方法更讨喜。

对于全体样例,有类似的更新规则,

[egin{equation} heta_{j} := heta_{j}+alpha sum_{i=1}^{m}left(y^{(i)}-h_{ heta}left(x^{(i)} ight) ight) x_{j}^{(i)} end{equation} ]

这个方法在每一步会用到所有的训练样本,所以又叫做批梯度下降(batch gradient descent)。
梯度下降法可能收敛到局部最小值,但对于线性回归问题的损失函数,一个凸二次函数,只有一个全局最小值,一定收敛到全局最小值。

原文地址:https://www.cnblogs.com/qizhien/p/11568697.html