【机器学习】6. 线性回归、损失计算、最小二乘法、岭回归
线性回归 Liner regression
特征向量:
X
T
=
[
1
,
x
1
,
x
2
,
x
3
]
X^T = [1 , x1, x2,x3]
XT=[1,x1,x2,x3]
这里的1用来指代偏移量。 1的必要性:假设用喝牛奶预测身高,如果没有偏移量,那么180不喝牛奶,预测结果是0,为了避免这种情况,加入了偏移,
预测值:
其中w代表权重, y代表真实值, ŷ 代表预测值
y
≈
y
^
=
∑
i
=
0
3
w
i
x
i
=
w
T
x
y ≈ ŷ = \sum_{i=0}^{3}{w_ix_i} = w^Tx
y≈y^=i=0∑3wixi=wTx
1维线性函数
y ≈ y ^ = w 0 + w 1 x y ≈ ŷ = w_0 + w_1x y≈y^=w0+w1x
- y : 标签
- x: 特征
- w0: 截距 / 偏移
- w1: 斜率
损失评估方式
平方损失函数:
(
y
−
y
^
)
2
(y - ŷ)^2
(y−y^)2
绝对损失函数
∣
y
−
y
^
∣
| y - ŷ |
∣y−y^∣
平方损失函数(Square Loss)在实践中更加常用,更有数学意义。
最小二乘法(Least Squares Regression)
权重w属于超参数,如果我们想要优化模型,就需要从w入手,将loss降低,也就是找到最小loss
m
i
n
w
∑
i
=
1
n
(
w
T
x
(
i
)
−
y
(
i
)
)
2
min_{w}\sum^n_{i=1}(w^Tx^{(i)} - y^{(i)})^2
minwi=1∑n(wTx(i)−y(i))2
也可以用L2范式简写一下
m
i
n
w
∣
∣
w
x
—
y
∣
∣
2
2
min_w ||wx —y||_2^2
minw∣∣wx—y∣∣22
最小值怎么求?导数=0求极值
f
(
w
)
=
∣
∣
w
x
—
y
∣
∣
2
2
=
∑
i
=
1
n
(
w
x
(
i
)
−
y
(
i
)
)
2
f(w) = ||wx —y||_2^2 = \sum^n_{i=1}(wx^{(i)} - y^{(i)})^2
f(w)=∣∣wx—y∣∣22=i=1∑n(wx(i)−y(i))2
d
f
d
w
(
w
)
=
2
∗
∑
i
=
1
n
(
w
x
(
i
)
−
y
(
i
)
)
=
0
\frac{df}{dw}(w) = 2* \sum^n_{i=1}(wx^{(i)} - y^{(i)}) = 0
dwdf(w)=2∗i=1∑n(wx(i)−y(i))=0
同样的,可以用矩阵计算
w
=
(
X
T
X
)
−
1
X
T
y
w = (X^TX)^{-1}X^Ty
w=(XTX)−1XTy
矩阵计算,举个简单的例子。
不要忘记矩阵怎么算(第一行 * 第一列,第一行 * 第二列…)
X
T
X^T
XT
这个是矩阵的转置。
从公式中,我们可以得知,最小二乘法要求矩阵可逆。
什么样的矩阵不可逆呢?
参考MIT教授的解释:可以找到一个矩阵相乘=0
岭回归 (Ridge Regression)
由于最小二乘法需要可逆矩阵,那么可不可以做优化呢?这里的优化就用到了岭回归。
岭回归加入了一个超参数λ
公式变成:
m
i
n
w
∣
∣
w
x
—
y
∣
∣
2
2
+
λ
∣
∣
w
∣
∣
2
2
min_w ||wx —y||_2^2 + λ||w||_2^2
minw∣∣wx—y∣∣22+λ∣∣w∣∣22
w
=
(
X
T
X
+
λ
I
k
)
−
1
X
T
y
w = (X^TX + λI_k )^{-1}X^Ty
w=(XTX+λIk)−1XTy
其中I 是单位矩阵(单位矩阵:对角线都为1)
∣
∣
w
x
—
y
∣
∣
2
2
||wx —y||_2^2
∣∣wx—y∣∣22
前面这一部分,是模型损失
λ
∣
∣
w
∣
∣
2
2
λ||w||_2^2
λ∣∣w∣∣22
后面这一部分,定义为模型复杂度(model complexity),其中λ是一个自由的超参数,在模型复杂度和训练误差之中权衡赋值。
最终矩阵变成非奇异,进而能够求逆,λ为正则化系数,或者叫做惩罚系数。
惩罚项能够过滤不太重要的特征,相比普通线性回归(最小二乘法)能够得到更好的预测效果,能够解决特征数多于样本量的情况(矩阵不可逆)以及解决过拟合和特征共线性的问题。
当然,更常用还是梯度下降法啦!后文会继续介绍