1.定义:
找到一个函数function,通过输入特征X,输出一个数值Scaler。
2.应用举例:
- 股市预测
输入:过去十年股票的变动、新闻资讯等
输出:预测股市明天的平均值 - Pokemon(宝可梦)精灵攻击力预测
输入:进化前的CP值、物种、血量(HP)、重量(weight)、高度(height)
输出:进化后的CP值
3.模型步骤
- Step1:模型假设,选择模型框架(线性模型)
- Step2:模型评估,如何判断众多模型的好坏(损失函数)
- Step3:模型优化,如何筛选最优的模型(梯度下降)
实例:预测宝可梦进化后的Combat Power(CP)值
Step1:Model
假设线性模型: y = b + ∑ w i x i y=b+\sum_{}w_ix_i y=b+∑wixi
Step2:Goodness of function
收集训练数据,如下图所示:
有了这些真实的数据,如何衡量模型的好坏呢?可以通过损失函数(Loss Function)来衡量模型的好坏。
方法:定义一个Loss Function L,它的Input:a function,它的output:how bad it is
则 L ( f ) = ∑ n = 1 10 ( y ^ n − f ( x c p n ) ) 2 L(f)=\displaystyle\sum_{n=1}^{10}(\hat{y}^n-f(x_{cp}^n))^2 L(f)=n=1∑10(y^n−f(xcpn))2,将 f ( x ) = y = b + w ⋅ x f(x)=y=b+w \cdot x f(x)=y=b+w⋅x代入 L ( f ) L(f) L(f),得到 L ( f ) = L ( w , b ) = ∑ n = 1 10 ( y ^ n − ( b + w ⋅ x c p n ) ) 2 L(f)=L(w,b)=\displaystyle\sum_{n=1}^{10}(\hat{y}^n-(b+w\cdot x_{cp}^n))^2 L(f)=L(w,b)=n=1∑10(y^n−(b+w⋅xcpn))2,代表真实值与预测值之间的估测误差。
Step3:Best Function
如何筛选最优的模型(即最优的参数w和b)?已知损失函数为L,需要找到一个最优的 f ∗ f^* f∗,使得L最小。
可以采用梯度下降(Gradient Descent):
先假设一个简单的情况: L ( w ) L(w) L(w)只有一个参数w,即求解的问题:找到一个 w ∗ w^* w∗使 L ( w ) L(w) L(w)最小。即 w ∗ = a r g m i n w L ( w ) w^*=\displaystyle argmin_{w}L(w) w∗=argminwL(w)
方法:1.随机选取一个初始点 w 0 w^0 w0
2.计算 d L d w ∣ w = w 0 \frac{dL}{dw}|_{w=w^0} dwdL∣w=w0,即当前的斜率
- 当>0时,减少 w w w,即左移
- 当<0时,增加 w w w,即右移
3.根据学习率 η \eta η移动 w 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
4.重复步骤2和3,直到找到最低点…
对于Linear Regression,无Local minima,梯度下降基本上都能找到最优点。
对于两个参数 w w w和 b b b,过程是类似的,需要做的是偏微分。求解的问题: w ∗ , b ∗ = a r g m i n w , b L ( w , b ) w^*,b^*=argmin_{w,b}L(w,b) w∗,b∗=argminw,bL(w,b)
方法:1.随机选取初始点 w 0 , b 0 w^0,b^0 w0,b0
2.计算 ∂ L ∂ w ∣ w = w 0 , b = b 0 \frac{\partial L}{\partial w}|_{w=w^0,b=b^0}