Lecture 1_Extra Regression: Case Study – Predicting Pokemon CP
文章目录
Regression: Case Study – Predicting Pokemon CP
Regression
回归的定义
Regression 就是找到一个函数 f u n c t i o n function function ,通过输入特征 x x x,输出一个数值 S c a l a r Scalar Scalar。
回归应用举例
- 股市预测(Stock Market Forecast)
- 自动驾驶(Self-driving Car)
- 商品推荐(Recommendation)
-
Pokemon精灵攻击力预测(Combat Power of a pokemon)
- 进化前的 CP 值 x c p x_{cp} xcp、物种 x s x_s xs(Bulbasaur)、血量(HP) x h p x_{hp} xhp、重量(Weight) x w x_w xw、高度(Height) x h x_h xh;
- 输出值 y y y ( S c a l a r ) (Scalar) (Scalar),即Pokemen进化后的 CP 值。
模型步骤
- step 1:模型假设,选择模型框架(线性模型);
- step 2:模型评估,如何判断众多模型的好坏(损失函数);
- step 3:模型优化,如何筛选最优的模型(梯度下降);
Step 1: Model – Linear Model
一元线性模型
以一个特征 x c p x_{cp} xcp 为例,线性模型假设 y = b + w ⋅ x c p y = b + w·x_{cp} y=b+w⋅xcp:
其中 f 3 f_3 f3 显然不合理,因为 CP 值一定非负。
多元线性模型
利用进化前的 CP 值 x c p x_{cp} xcp、物种 x s x_s xs(Bulbasaur)、血量(HP) x h p x_{hp} xhp、重量(Weight) x w x_w xw、高度(Height) x h x_h xh 等特征作为输入:
Step 2: Goodness of Function – Loss Function
单特征 x c p x_{cp} xcp
收集和查看数据
x 1 x^1 x1 上标 1 1 1 代表第 1 1 1 个完整的 object, y ^ 1 \hat y^1 y^1 代表第一个 object 进化后的真实 CP 值:
将 10 10 10 组原始数据在二维图中展示,图中的每一个点 ( x c p n , y ^ n ) (x_{cp}^n,\hat{y}^n) (xcpn,y^n) 对应着 进化前的 CP 值和进化后的 CP 值:
判断模型的好坏
求【进化后的 CP 值】与【模型预测的 CP 值】差,来判定模型的好坏。也就是使用损失函数(Loss function) 来衡量模型的好坏,统计 10 10 10 组原始数据 ( y ^ n − f ( x c p n ) ) 2 \left ( \hat{y}^n - f(x_{cp}^n) \right )^2 (y^n−f(xcpn))2 的和,和越小模型越好。如下图所示:
可视化输入的不同的 f u n c t i o n function function,通过 L o s s Loss Loss 值的大小来判断这个 f u n c t i o n function function 是否优秀:
Step 3: Best Function – Gradient Descend
先从最简单的只有一个参数 w w w 入手,定义 w ∗ = arg min x L ( w ) w^* = \arg \underset{x}{\operatorname{\min}} L(w) w∗=argxminL(w)
首先在这里引入一个概念 学习率:移动的步长,如图中 η \eta η
- 步骤1:随机选取一个 w 0 w^0 w0;
- 步骤2:计算微分,也就是当前的斜率,根据斜率来判定移动的方向;
- 大于0向右移动(增加 w w w);
- 小于0向左移动(减少 w w w);
- 步骤3:根据学习率移动;
- 重复步骤2和步骤3,直到找到最低点。
陷入局部最优的这个问题,在 R e g r e s s i o n Regression Regression 中并不存在!