一、回归的定义和举例
定义:
Regression 就是找到一个函数 function,通过输入特征 x,输出一个数值 Scalar。
举例:
①股市预测
输入:过去10年股票的变动、新闻咨询、公司并购咨询等
输出:预测明天股市的平均值
②自动驾驶
输入:无人车上的各个传感器的数据,例如路况、测出的车距等
输出:方向盘的角度
③商品推荐
输入:商品A的特性,商品B的特性
输出:购买商品B的可能性
④宝可梦进化的属性预测
输入:进化前的CP值、物种(Bulbasaur)、血量(HP)、重量(Weight)、高度(Height)
输出:进化后的CP值
二、模型步骤(以宝可梦进化所获得属性成长为例)
- step1:模型假设,选择模型框架(线性模型)
- step2:模型评估,如何判断众多模型的好坏(损失函数)
- step3:模型优化,如何筛选最优的模型(梯度下降)
Step 1:模型假设-线性模型
一元线性模型(单个特征):以一个特征 x_{cp}xcp 为例,线性模型假设 y = b + w·x_{cp}y=b+w⋅xcp ,所以 ww 和 bb 可以猜测很多模型。
多元线性模型(多个特征):在实际应用中,输入特征肯定不止 x_{cp}xcp 这一个。例如,进化前的CP值、物种(Bulbasaur)、血量(HP)、重量(Weight)、高度(Height)等,特征会有很多。
- xi:就是各种特征(fetrure)
- wi:各个特征的权重
- b:偏移量
Step 2:模型评估-损失函数
有了这些真实的数据,那我们怎么衡量模型的好坏呢?从数学的角度来讲,我们使用距离。求【进化后的CP值】与【模型预测的CP值】差,来判定模型的好坏。也就是使用损失函数(Loss function) 来衡量模型的好坏,统计10组原始数据的和,和越小模型越好。如下图所示:
推导过程:
- 图中每一个点代表着一个模型对应的 ww 和 bb
- 颜色越深代表模型更优
可以与后面的图11(等高线)进行对比
Step 3:最佳模型-梯度下降
我们通过梯度下降gradient descent不断更新损失函数的结果,这个结果会越来越小,那这种方法找到的结果是否都是正确的呢?前面提到的当前最优问题外,还有没有其他存在的问题呢?
其实还会有其他的问题:
- 问题1:当前最优(Stuck at local minima)
- 问题2:等于0(Stuck at saddle point)
- 问题3:趋近于0(Very slow at the plateau)
注意:其实在线性模型里面都是一个碗的形状(山谷形状),梯度下降基本上都能找到最优点,但是再其他更复杂的模型里面,就会遇到 问题2 和 问题3 了
w和b偏微分的计算方法
总结
-
Pokemon:原始的CP值极大程度的决定了进化后的CP值,但可能还有其他的一些因素。
-
Gradient descent:梯度下降的做法;后面会讲到它的理论依据和要点。
-
Overfitting和Regularization:过拟合和正则化,主要介绍了表象;后面会讲到更多这方面的理论
参考资料:
李宏毅机器学习
Datawhale 笔记资料