李宏毅机器学习(2017full)-Lecture 1: Regression - Case Study
Regression (Case Study) ML01
regression 输出是数值
如:股票预测,自动驾驶(输入是各种sensor,输出方向盘角度),推荐系统
example 预测宝可梦的CP值。
source : http://www.openintro.org/stat/data/?data=pokenman
哈,真的,听课很开心~~)
input():某一只宝可梦 ()
output():进化之后的CP值
- Step1: Model 成千上万的function组成的function set。
-
Step2: Goodness of Function
通过定义loss function(input:function;output:function的效果)来评估模型好坏。
https://img-blog.****.net/20180802210445490?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NpbmF0XzE5NjI4MTQ1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70” alt=”1533195175604” title=”” />)
loss function的画图:
- 每一个点代表一组,也就是一个函数
- 越红色 Loss越大。越蓝色,Loss越低,function越好。
- Step3:Best Function
从function set中挑选最好的function
* Gradient Descent
假设一个简单的task
-
L(w) 有一个参数的简单Loss Function(可微分),找到一个w,使得L(w)最小
1 . 1 随机选择初始点。(存在方法更好的选择初始点)
1 . 2 计算w对Loss的微分(负值增加w,正值减少w)逐步更新
(linear regression 没有局部最优。)
2. w,b两个参数的情况
2.1随机选取两个初始值
2.2在的偏微分,并反复更新
可视化2这个过程:(越蓝,loss越小。)
随机选取初始值(左下角的红色)
计算偏微分,并计算乘上之后的偏微分,进行更新
在linear regression(右图)中Loss Function L 是convex的,是没有局部最优的。因为就是如图只有等高线。
Model Selection
用model 在training data上进行训练,testing data来计算 Average Error
model:1次->2次->3次->4次
model 越复杂,包含越多的function(training data中下图,右侧圆圈的颜色是左侧的式子,橙色的圆包含绿色),可以找到function使得loss在training data上 越低
过拟合
收集更多的数据之后:
观察,跟物种有关,只考虑cp不对,重新设计
将不同物种的上式if改写成Linear regression:
Average Error :14.6
考虑CP数值是不是和其他的属性有关系。
不是大木博士怎么办:把所有属性都放进去。
没用的特征太多,很容易overfitting。做regularization
Regularization
Regularization 重新定义Loss Function ,放入knowledge让我们可以找到比较好的Function
在原来的loss基础上加上额外的式子。
-
加上之后=>要找到的function的参数越小越好。也就是参数值比较接近0,是比较平滑。即当input有变化时,output的变化是不明显的。
,变化是,越小,变化越小,输出对于输入就不会更加敏感。
越小,预测值越接近
红框中没有,因为不需要调整bias,bias只会上下移动,会影响平滑
一个比较平滑的Function会受到比较好的影响。对noise不会特别敏感
但是太平滑会产生不好的影响。=>需要调整
Conclusion
- 宝可梦:进化后的CP和进化前的CP、物种有关,同时还可能和其他属性有关
- Gradient descent 做法。
- overfitting还让regularization