链接
Regression
- 股价预测 输入是历史 输出是明日股价
- 自动驾驶 输入是路况 输出是方向盘角度
- 推荐系统 输入是使用者和商品 输出是推荐的商品
example
预测神奇宝贝进化后的CP值,用来判断是否进化。
第一步 model
寻找一个function set,比如:
y
=
b
+
w
∗
x
c
p
y=b+w*x_{cp}
y=b+w∗xcp
w和b可以是无穷的。
表示成线性形式:
y
=
b
+
∑
w
i
x
i
y=b+\sum w_ix_i
y=b+∑wixi,
其中
w
i
w_i
wi是权重weight,
b
b
b是bias,
x
i
x_i
xi是各种feature
第二步 goodness of function
- 准备包含输入数据、输出数据的训练集Training data。
- 定义一个Loss function:是function的function。输入是function(w,b ),输出的function的好坏
L ( f ) = L ( w , b ) = ∑ n = 1 10 ( y ^ n − ( b + w ∗ x c p n ) ) 2 L(f)=L(w,b)=\sum_{n=1}^{10}(\widehat{y}^n-(b+w*x_{cp}^n))^2 L(f)=L(w,b)=∑n=110(y n−(b+w∗xcpn))2
均方差
第三步 Best function
找到一个function,使得Loss(function)最小。这个使得L(f)最小的function称为best function。
f
∗
=
a
r
g
m
i
n
f
L
(
f
)
f^*=\mathop{arg \ min}_{f} L(f)
f∗=arg minfL(f)
也就是
w
∗
,
b
∗
=
a
r
g
m
i
n
w
,
b
L
(
w
,
b
)
w^*,b^*=arg \ min_{w,b}L(w,b)
w∗,b∗=arg minw,bL(w,b)
使用gradient descent来求解上面的式子。
gradient descent
在只有一个参数情况下计算loss function
- 随机选取初始点
- 计算梯度
- 如果梯度是正 减少w
- 如果梯度是负 增加w
w 1 = w 0 − η d L d w ∣ w = w 0 w^1 = w^0 - \eta\frac{dL}{dw}|_{w=w^0} w1=w0−ηdwdL∣w=w0
这里的 η \eta η指的是学习速率learning rate,表示参数更新的速度。
这里的减号正好与微分值的正负相反。
接下来重新计算 w 1 w^1 w1的微分
w 2 = w 1 − η d L d w ∣ w = w 1 w^2 = w^1 - \eta\frac{dL}{dw}|_{w=w^1} w2=w1−ηdwdL∣w=w1
重复迭代计算,到达Local optimal(局部最优点)。微分为0,无法继续更新。
在两个参数的情况下计算梯度。 - 随机选取初始点 w 0 , b 0 w^0,b^0 w0,b0
- 对w,b计算梯度
- ∂ L ∂ w ∣ w = w 0 , b = b 0 ∂ L ∂ b ∣ w = w 0 , b = b 0 \frac{\partial L}{\partial w}|_{w=w^0,b=b^0} \frac{\partial L}{\partial b}|_{w=w^0,b=b^0} ∂w∂L∣w=w0,b=b0∂b∂L∣w=w0,b=b0
- 如果梯度是正 减少w
- 如果梯度是负 增加w
- 更新参数
- w 1 = w 0 − η ∂ L ∂ w ∣ w = w 0 , b = b 0 w^1 = w^0 - \eta\frac{\partial L}{\partial w}|_{w=w^0,b=b^0} w1=w0−η∂w∂L∣w=w0,b=b0
- b 1 = b 0 − η ∂ L ∂ b ∣ w = w 0 , b = b 0 b^1 = b^0 - \eta\frac{\partial L}{\partial b}|_{w=w^0,b=b^0} b1=b0−η∂b∂L∣w=w0,b=b0
- 重复计算梯度 更新梯度
问题:梯度更新方向与初始值相关,不同初始值可能会得到不同的Local optimal。但是在Linear Regression中,不存在,因为Loss function是凸函数。(凸函数没有Local optimal,只有全局最优解)
Result
我们真正关心的是在训练集上的误差。
提高结果的方法可以有用二项式或多项式model。越复杂的model对training data的拟合程度越好,但是有可能在test data上表现不是很好,这就是出现了过拟合的情况。所以不一定选取最复杂的函数,要选择最合适的。
更复杂的函数的function set会包含简单的函数的function set。
进一步地,对于不同种类的神奇宝贝,采用不同的参数。
Regularization
在损失函数中添加一项来限制过拟合。
倾向于选择较小的w。越小的w越平滑,数据的波动更小。选择一个合适的
λ
\lambda
λ
正则化时候不考虑bias。平滑与否与常数项无关。