线性回归与梯度下降法
参考博客
机器学习中的监督学习分为回归与分类两类,今天主要讲回归的入门,线性回归,还有用以优化算法损失函数的梯度下降法。
线性回归
回归在日常生活中,可以用来预测房价,预测股票等。回归是一种数学模型。当因变量和自变量为线性关系时,它是一种特殊的线性模型。如:
y
=
b
+
w
∗
x
y = b + w*x
y=b+w∗x
在该模型中的 w 和 b 是参数,参数不一样时,模型就不一样,而回归简单来说,就是利用一组训练数据,使得可以求出最优的参数,从而让模型很好的预测想要预测的结果。其中变量
x
i
x_{i}
xi是输入的各种不同的属性(attribute),也被称为特征(feature)。 而参数
w
i
w_{i}
wi被称为权重(weight),
b
b
b被称为偏置。
损失函数
当我们有一个模型时,我们需要通过收集数据对其进行训练,这时我们需要一个评价模型预测能力好坏的函数,这就引入了损失函数,损失函数的定义方式有很多,比较常见的一种是将参数代入模型,把预测结果与实际结果进行平方差运算,再求出所有样本的误差和就是损失函数,定义如下:
L
(
f
)
=
∑
n
=
1
N
(
^
y
n
−
f
(
x
n
)
)
2
L(f) =\sum_{n=1}^{N}(\hat{}{y^{n}}-f(x_{}^{n}))^{2}
L(f)=n=1∑N(^yn−f(xn))2
L
(
f
)
=
∑
n
=
1
N
(
^
y
n
−
(
b
+
w
∗
x
n
)
)
2
L(f) =\sum_{n=1}^{N}(\hat{}{y^{n}}-(b+w*x^{n}))^{2}
L(f)=n=1∑N(^yn−(b+w∗xn))2
由损失函数定义可知,我们希望它的值越小,代表模型预测能力越好。而损失函数显然跟参数b,w有关,这就引出了接下来的利用梯度下降法求出最优参数的问题。
梯度下降法
梯度下降法的思路是这样的,首先设置一个初始的参数,然后令损失函数分别对参数求微分,可以理解为对这一点求切线斜率,假设先只考虑w,如果斜率为负,表明左边损失高而右边损失低,为了降低损失应该增加 w 的值;反之应该减少 w
的值。就好像是在山顶上寻找最陡峭的地方下山一样,确定方向后,应该要改变多少 w 的值呢?这就是引入了超参数,学习率
η
\eta
η。学习率是一个事先定好的数值,可以影响参数更新的速度,也就是学习的速度。这类无法自动学得,需要在学习过程之前人为给出的参数又叫作超参数(Hyperparameters)。于是得到下面的公式:
w
2
=
w
1
−
η
∂
L
∂
w
1
w^{2} = w^{1} - \eta \frac{\partial L}{\partial w^{1}}
w2=w1−η∂w1∂L
接下来重复上面更新参数的步骤,最后会达到一个局部最优点,微分结果为零,参数就不再继续更新。这就是梯度下降法。