一个函数function的集合:
𝑦 = 𝑏 + ∑ w i x i 𝑦=𝑏+∑w_ix_i y=b+∑wixi
我们将𝑥𝑐𝑝拿出来作为未知量,来寻找一个最优的线性模型Linear model:
y
=
b
+
w
∙
X
c
p
y = b + w ∙Xcp~
y=b+w∙Xcp
损失函数Loss function 𝐿:
L的输入Input是一个函数 f ,输出output则是一个具体的数值,而这个数值是用来评估输入的函数 f 到底有多坏
y
^
n
\widehat{y}^n
y
n代表真实值,而
f
(
x
c
p
n
)
f(x^n_{cp})
f(xcpn)代表预测值,
L
(
f
)
L(f)
L(f)代表真实值与预测值之间的总误差
L
(
f
)
=
∑
n
=
1
10
(
y
^
n
−
f
(
x
c
p
n
)
)
2
L(f)=\sum_{n=1}^{10}(\widehat{y}^n-f(x^n_{cp}))^2
L(f)=n=1∑10(y
n−f(xcpn))2
将函数 f 用w,b替换,则可以写成下面这样
L
(
w
,
b
)
=
∑
n
=
1
10
(
y
^
n
−
(
b
+
w
⋅
x
c
p
n
)
)
2
L(w,b)=\sum_{n=1}^{10}(\widehat{y}^n-(b+w \cdot x^n_{cp}))^2
L(w,b)=n=1∑10(y
n−(b+w⋅xcpn))2
当 L 越小时,则说明该函数 f 越好,也就是该模型越好。在下图中的每一个点都代表一个函数 f
梯度下降Gradient Descent:就是求最好函数的过程
$f^{} 代表最好的函数 f u n c t i o n , 代表最好的函数function, 代表最好的函数function,w{*},b{}:$代表最好的权重weight和偏置值bias
f ∗ = a r g m i n f L ( f ) f^{*} =arg \underset{f}{min} L(f) f∗=argfminL(f)
w ∗ , b ∗ = a r g m i n w , b L ( w , b ) w^{*},b^{*}=arg \underset{w,b}{min} L(w,b) w∗,b∗=argw,bminL(w,b)
= a r g m i n w , b ∑ n = 1 10 ( y ^ n − ( b + w ⋅ x c p n ) ) 2 =arg \underset{w,b}{min}\sum_{n=1}^{10}(\widehat{y}^n-(b+w \cdot x^n_{cp}))^2 =argw,bmin∑n=110(y n−(b+w⋅xcpn))2
下图代表Loss函数求梯度下降(Gradient Descent)的过程,首先随机选择一个 w 0 w^{0} w0。在该点对w求微分,如果为负数,那么我们增大 w 0 w^{0} w0的值;如果为正数,那么我们减小 w 0 w^{0} w0的值。
公式化(Formulation)
∂
L
∂
w
\frac{\partial L}{\partial w}
∂w∂L和$
\frac{\partial L}{\partial b}$:
在非线性系统中,可能会存在多个局部最优解:
将根据loss函数找到的最好模型拿出来,分别计算它在训练集(Training Data)和测试集(Testing Data)上的均方误差(Average Error),当然我们只关心模型在测试集上的具体表现如何。
由于原来的模型均方误差还是比较大,为了做得更好,我们来提高模型的复杂度。比如,引入二次项(xcp)2
继续提高模型的复杂度,引入三次项(xcp)3
继续提高模型的复杂度,引入三次项(xcp)4,此时模型在训练集上的均方误差变得更小了,但测试集上的反而变大了,这种现象被称为模型的过拟合(Over-fitting)
为了解决过拟合的问题,我们需要重新设计一下损失函数 L,原来的损失函数只计算了方差,而没有考虑到含有干扰的输入对模型的影响。因此我们在 L 后面加上一项: λ ∑ ( w i ) 2 \lambda \sum (w_i)^2 λ∑(wi)2 ,以此来提高模型的泛化能力,使模型变得更加平滑,降低模型对输入的敏感(Sensitive)
很显然根据下面的实验,我们取得了更好的表现, 当 λ = 100 时, T e s t E r r o r = 11.1 当\lambda=100时,Test Error = 11.1 当λ=100时,TestError=11.1