以预测宝可梦的cp值为例:
确定一个模型,首先采用线性模型,考虑宝可梦的cp值
Model:
Linear Model 线性模型:
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(偏移)
确定评价函数,我们使用实际进化后的CP值与模型预测的CP值差值,来判定模型的好坏
L ( f ) = ∑ i = 1 n ( y i ^ − f ( x c p i ) ) 2 L(f)=\displaystyle\sum_{i=1}^n\big(\hat{y^i}-f(x_{cp}^i)\big)^2 L(f)=i=1∑n(yi^−f(xcpi))2
将参数 w , b w,b w,b 代入评价函数:
Loss Function 损失函数:
是用来估量模型的预测值f(x)与真实值Y的不一致程度,它是一个非负实值函数
求解最优模型,即寻找参数值 使得Loss函数最小。
考虑损失函数只有一个参数 w w w的情况:
(方法:Gradient Descent 梯度下降)
梯度:
在单变量的函数中,梯度其实就是函数的微分,代表着函数在某个给定点的切线的斜率
(Randomly) Pick an initial value w 0 w_0 w0
(随机)选取初始值 w 0 w_0 w0
Compute d L d w ∣ w = w 0 {\frac{dL}{dw}|}_{w=w_0} dwdL∣w=w0
计算损失函数在 w 0 w_0 w0处的微分
Negative ->Increase w w w ;Positive -> Decrease w w w
当微分值为负值,增加 w w w;当微分值为正值,减少 w w w
Learning Rate 学习率/步长:
− η ⋅ ( d L d w ∣ w = w 0 ) -\eta \cdot({\frac{dL}{dw}|}_{w=w_0}) −η⋅(dwdL∣w=w0) : η \eta η is called “Learning Rate”
− η ⋅ ( d L d w ∣ w = w 0 ) -\eta \cdot({\frac{dL}{dw}|}_{w=w_0}) −η⋅(dwdL∣w=w0)中 η \eta η是学习率/步长
Many iteration 多次迭代
w n = arg min w L ( w ) w^n=\argmin_wL(w) wn=wargminL(w)
Local minima 局部最小值
global minima 全局最小值
注:在linear regression 上没有 local minima
考虑损失函数有两个参数 ( w , b ) (w,b) (w,b)的情况:
方法:Gradient Descent 梯度下降
梯度:
在多变量函数中,梯度是一个向量,向量有方向,梯度的方向就指出了函数在给定点的上升最快的方向
[ ∂ L ∂ w ∂ L ∂ b ] g r a d i e n t \Large\begin{bmatrix} \frac {\partial L} {\partial w} \\ \frac {\partial L} {\partial b} \end{bmatrix}_{gradient} ⎣⎡∂w∂L∂b∂L⎦⎤gradient
宝可梦cp值偏微分的公式:
Model : y = b + w ⋅ x c p y=b+w\cdot x_{cp} y=b+w⋅xcp
Loss function : L ( w , b ) = ∑ i = 1 n ( y i ^ − ( b + w ⋅ x c p i ) ) 2 L(w,b)=\displaystyle\sum_{i=1}^n\big(\hat{y^i}-(b+w\cdot x_{cp}^i)\big)^2 L(w,b)=i=1∑n(yi^−(b+w⋅xcpi))2
∂ L ∂ w = ∑ i = 1 n 2 ( y i ^ − ( b + w ⋅ x c p i ) ) ⋅ ( x c p i ) {\frac{\partial L}{\partial w}}=\displaystyle\sum_{i=1}^n2\big(\hat{y^i}-(b+w\cdot x_{cp}^i)\big)\cdot( x_{cp}^i) ∂w∂L=i=1∑n2(yi^−(b+w⋅xcpi))⋅(xcpi)
∂ L ∂ b = ∑ i = 1 n 2 ( y i ^ − ( b + w ⋅ x c p i ) ) {\frac{\partial L}{\partial b}}=\displaystyle\sum_{i=1}^n2\big(\hat{y^i}-(b+w\cdot x_{cp}^i)\big) ∂b∂L=i=1∑n2(yi^−(b+w⋅xcpi))
y = b + w ⋅ x c p y=b+w\cdot x_{cp} y=b+w⋅xcp
越复杂的Model包含的Function越多,那么其包含理想Model的可能性就越大,如果过分的拟合理想的模型,就会出现过拟合问题。
过拟合指的是模型在训练集上表现的很好,但是在交叉验证集合测试集上表现一般,也就是说模型对未知样本的预测表现一般,泛化(generalization)能力较差。
宝可梦进化后的cp值和宝可梦的种类有关,即不同种类的宝可梦对应不同模型
可以使用函数将不同种类的模型整合:
δ ( x s = m o d e l i ) = { 1 if ( x s = m o d e l i ) 0 if ( x s = / m o d e l i ) \delta(x_s={model}_i) = \begin{cases} 1 &\text{if } (x_s={model}_i) \\ 0 &\text{if } (x_s {=}\mathllap{/\,}{model}_i) \end{cases} δ(xs=modeli)={ 10if (xs=modeli)if (xs=/modeli)
如模型线性整合:
y = ∑ i = 1 n ( ( b i + w i ⋅ x i ) ⋅ δ ( x s = m o d e l i ) ) y=\displaystyle\sum_{i=1}^n\big((b_i+w_i\cdot x_i)\cdot\delta(x_s={model}_i)\big) y=i=1∑n((bi+wi⋅xi)⋅δ(xs=modeli))
正则化就是在损失函数上加上一个与w(权值)相关的值,那么要是loss function越小的话,w也会越小,w越小就使function更加平滑
L ( w , b ) = ∑ i = 1 n ( y i ^ − ( b + w ⋅ x c p i ) ) 2 L(w,b)=\displaystyle\sum_{i=1}^n\big(\hat{y^i}-(b+w\cdot x_{cp}^i)\big)^2 L(w,b)=i=1∑n(yi^−(b+w⋅xcpi))2
y = L ( w , b ) + λ ∑ ( w i ) 2 y=L(w,b)+\color{blue}\lambda\sum(w_i)^2 y=L(w,b)+λ∑(wi)2
The functions with smaller are better
y = ∑ i = 1 n ( y i ^ − ( b + w ⋅ x c p i ) ) 2 + λ ∑ ( w i ) 2 y=\displaystyle\sum_{i=1}^n\big(\hat{y^i}-(b+w\cdot x_{cp}^i)\big)^2+\color{blue}\lambda\sum(w_i)^2 y=i=1∑n(yi^−(b+w⋅xcpi))2+λ∑(wi)2