P3:Regrssion(回归)
机器学习的三个步骤
- 寻找模型
- 定义损失函数(Loss)来衡量模型好坏
- 找出最好的函数
Step1 :寻找function set 假设为线性回归,则
y
=
∑
w
i
?
x
i
+
b
y = \sum{w_i * x_i} + b
y=∑wi??xi?+b 其中
x
i
x_i
xi?是输入数据集的各种属性,即feature;
w
i
w_i
wi?与b分别为模型的权重weight和偏差bias。 Step2 :衡量function的好坏 定义Loss函数L:输入为函数,输出是好坏程度
L
(
f
)
=
L
(
w
,
b
)
=
∑
n
=
1
N
(
y
^
n
?
(
b
+
w
?
x
n
)
)
2
L(f) = L(w,b)=\sum_{n=1}^N ({\hat{y}}^n-(b+w*{x^n}))^2
L(f)=L(w,b)=n=1∑N?(y^?n?(b+w?xn))2 Step3 :找出最好的function 找出最好的函数
f
?
=
a
r
g
?
min
?
f
L
(
f
)
即
w
?
,
b
?
=
a
r
g
?
min
?
w
,
b
L
(
w
,
b
)
f^* = arg\,\min_{f} L(f) 即 w^*,b^* = arg\,\min_{w,b} L(w,b)
f?=argminf?L(f)即w?,b?=argminw,b?L(w,b),即找出w.b使得Loss函数最小。常用的方法是梯度下降Gradient desent
Gradient descent 梯度下降
当损失函数有两个参数w,b时,即:
w
?
,
b
?
=
a
r
g
?
min
?
w
,
b
L
(
w
,
b
)
w^*,b^* = arg\,\min{w,b} L(w,b)
w?,b?=argminw,bL(w,b)。做法如下:
- 随机设置一个初始值
w
0
,
b
0
w^0,b^0
w0,b0
- 计算
?
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
1
←
w
0
?
η
?
L
?
w
∣
(
w
=
w
0
,
b
=
b
0
)
,
b
1
←
b
0
?
η
?
L
?
b
∣
(
w
=
w
0
,
b
=
b
0
)
w^1 \leftarrow w^0-\eta \frac{\partial L}{\partial w}|_(w=w^0,b=b^0) , b^1 \leftarrow b^0-\eta \frac{\partial L}{\partial b}|_(w=w^0,b=b^0)
w1←w0?η?w?L?∣(?w=w0,b=b0),b1←b0?η?b?L?∣(?w=w0,b=b0)
- 重复上一步
?
L
?
w
∣
(
w
=
w
1
,
b
=
b
1
)
,
?
L
?
b
∣
(
w
=
w
1
,
b
=
b
1
)
\frac{\partial L}{\partial w}|_(w=w^1,b=b^1),\frac{\partial L}{\partial b}|_(w=w^1,b=b^1)
?w?L?∣(?w=w1,b=b1),?b?L?∣(?w=w1,b=b1)反复迭代n次,直到找到局部最优解使得
?
L
?
w
∣
(
w
=
w
i
,
b
=
b
i
)
,
?
L
?
b
∣
(
w
=
w
i
,
b
=
b
i
)
)
=
0
\frac{\partial L}{\partial w}|_(w=w^i,b=b^i),\frac{\partial L}{\partial b}|_(w=w^i,b=b^i))=0
?w?L?∣(?w=wi,b=bi),?b?L?∣(?w=wi,b=bi))=0
公式如下:
L
(
w
,
b
)
=
∑
n
=
1
N
(
y
^
n
?
(
b
+
w
?
x
n
)
)
2
?
L
?
w
=
∑
n
=
1
N
2
(
y
^
n
?
(
b
+
w
?
x
n
)
)
(
?
(
x
n
)
)
?
L
?
b
=
?
∑
n
=
1
N
2
(
y
^
n
?
(
b
+
w
?
x
n
)
)
L(w,b)=\sum_{n=1}^N ({\hat{y}}^n-(b+w*{x^n}))^2 \\ \frac{\partial L}{\partial w}=\sum_{n=1}^N 2({\hat{y}}^n-(b+w*{x^n}))(-(x^n))\\ \frac{\partial L}{\partial b}=-\sum_{n=1}^N 2({\hat{y}}^n-(b+w*{x^n}))
L(w,b)=n=1∑N?(y^?n?(b+w?xn))2?w?L?=n=1∑N?2(y^?n?(b+w?xn))(?(xn))?b?L?=?n=1∑N?2(y^?n?(b+w?xn)) 回归问题的损失函数是凸函数(convex),意味着一定会找到全局最优解。但是,其它的机器学习问题中,多个参数的梯度下降可能会陷入局部最优解。
过拟合overfitting
在训练模型的过程中,为了减小训练准确度的偏差,通常选用复杂的模型。当模型的阶数越高,误差就越小。然而在测试时越复杂的模型可能会使得测试准确度不降反增,这种现象称为过拟合overfitting。 解决方法:正则化Regularization-----即在step2时重新定义Loss函数:额外项为正则项。
L
(
f
)
=
L
(
w
,
b
)
=
∑
n
=
1
N
(
y
^
n
?
(
b
+
w
?
x
n
)
)
2
+
λ
∑
w
i
2
L(f) = L(w,b)=\sum_{n=1}^N ({\hat{y}}^n-(b+w*{x^n}))^2 +\lambda\sum{w_i}^2
L(f)=L(w,b)=n=1∑N?(y^?n?(b+w?xn))2+λ∑wi?2 当function的参数越小,function越平滑,即当x变化时y的变化很小。当有噪声干扰时,function会有很好的鲁棒性。λ的变化可以决定function的平滑程度,存在最优的λ使得测试准确度与训练准确度最小。
|