1 Regression
Regression :outpur scalar
什么是回归?output是一个数值的就是回归。
Step 1: Model (function set )
A set of function
f1:y=10.0+9.0⋅xcp
f2:y=9.8+9.2⋅xcp
f3:y=−0.8−1.2⋅xcp
Linear Model
xi :输入值x的一个属性(feature 特征值)
wi :weight ,b :bias
y=b+∑wixi
Step 2 : Goodness of function
y=b+w⋅xcp
y hat 表示这是一个正确的数字
上标表示一个整体的资料,
下标表示这个资料里的某一个属性。
衡量function 需要 loss Function
Loss function
L(f)=∑10n=1(ŷ n−f(xncp))2
Lost function 是 function 的 function
L(f) ——> L(w,b)
L(f)=L(w,b)=∑10n=1(ŷ n−(b+w⋅xncp))2
Step 3: Best function
pick the Best function
f∗=argminfL(f)
w∗,b∗=argminw,bL(w,b)
=argminw,b∑10n=1(ŷ n−(b+w⋅xncp))2
Step 3: Gradient Descent
单个参数
w∗=argminwL(w)
- pick an inital value w0
- Compute
dLdW|w=w0
w1←w0−ηdLdW|w=w0
dLdW|w=w1
w2←w1−ηdLdW|w=w1
两个参数
w∗,b∗=argminw,bL(w,b)
- pick an inital value w0
Compute (复习高等数学中如何求偏导)\
∂L∂W|w=w0,b=b0,∂L∂b|b=b0,w=w0,
w1←w0−η∂L∂W|w=w0,b=b0
b1←b0−η∂L∂b|w=w0,b=b0
Compute
∂L∂W|w=w1,b=b1,∂L∂b|b=b1,w=w1,
w2←w1−η∂L∂W|b=b1,w=w1
b2←b1−η∂L∂b|b=b1,w=w1
Problem
globel minima
stuck at local minima
stuck at saddle point
very slow at the plateau
Linear Regression 的 lost function 是一个凸函数,不必担心局部最小值的问题
Learning Rate
η
Learning Rate 控制步子大小、学习速度。
another linear model
y=b+W1⋅Xcp+W2⋅(Xcp)2
y=b+W1⋅Xcp+W2⋅(Xcp)2+W3⋅(Xcp)3
y=b+W1⋅Xcp+W2⋅(Xcp)2+W3⋅(Xcp)3+W4⋅(Xcp)4
y=b+W1⋅Xcp+W2⋅(Xcp)2+W3⋅(Xcp)3+W4⋅(Xcp)4+W5⋅(Xcp)5
所谓一个model是不是linear 是指他的参数对他的output 是不是linear。
- A more complex model yields lower error on training data.
If we can truly find the best function
Model Selection
model |
Training |
Testing |
1 |
31.9 |
35.0 |
2 |
15.4 |
18.4 |
3 |
15.3 |
18.1 |
4 |
14.9 |
28.2 |
5 |
12.8 |
232.1 |
- A more complex model does not always lead to better performance on testing data.
- This is Overfitting
复杂模型的model space涵盖了简单模型的model space,因此在training data上的错误率更小,但并不意味着在testing data 上错误率更小。模型太复杂会出现overfitting。
What are the hidden factors?
考虑pakemon种类对cp值的影响。
Back to step 1: Redesign the Model
ifxs=Pidgey:y=b1+w1⋅xcp
ifxs=Weedle:y=b2+w2⋅xcp
ifxs=Caterpie:y=b3+w3⋅xcp
ifxs=Eevee:y=b4+w4⋅xcp
↓
y=b1⋅δ(xs=Pidgey)+w1⋅δ(xs=Pidgey)⋅xcp
+b2⋅δ(xs=Weedle)+w2⋅δ(xs=Weedle)⋅xcp
+b3⋅δ(xs=Caterpie)+w3⋅δ(xs=Pidgey)⋅xcp
+b4⋅δ(xs=Caterpie)+w4⋅δ(xs=Pidgey)⋅xcp
Training error = 3.8 ,Testing Error= 14.3
这个模型在测试集上有更好的表现。
Are there any other hidden factors?
hp值,体重,高度对cp值的影响。
Back to step 1: Redesign the Model Again
ifxs=Pidgey:y,=b1+w1⋅xcp+w5⋅(xcp)2
ifxs=Weedle:y,=b2+w2⋅xcp+w6⋅(xcp)2
ifxs=Caterpie:y,=b3+w3⋅xcp+w7⋅(xcp)2
ifxs=Eevee:y,=b4+w4⋅xcp+w8⋅(xcp)2
↓
y=y,+w9⋅xnp+w10⋅(xnp)2+w1⋅
xh+w12⋅(xh)2+w13⋅xw+w14⋅(xw)2
Training Error = 1.9, Testing Error = 102.3,Overfitting
如果同时考虑宝可梦的其它属性,选一个很复杂的模型,结果会overfitting。
Back to step 2:regularization
对很多不同的test 都general有用的方法:正则化。
L(f)=L(w,b)
=∑n(ŷ n−(b+∑wi⋅xi))2+λ∑(wi)2
同时会让w很小。意味着,这是一个比较平滑的function。
y=b+∑wixi
y+∑wiΔxi=b+∑wi(xi+Δxi)
如果w1比较小的话,代表这个function是比较平滑的。
lambda |
Training |
Testing |
0 |
1.9 |
102.3 |
1 |
2.3 |
68.7 |
10 |
3.5 |
25.7 |
100 |
4.1 |
11.1 |
1000 |
5.6 |
12.8 |
10000 |
6.3 |
18.7 |
100000 |
8.5 |
26.8 |
lambda 增加的时候,我们是会找到一个比较smooth的function。越大的λ,对training error考虑得越少。 调整λ,选择使testing error最小的λ。