机器学习笔记-Regression-回归问题

基础知识

一、机器学习就是自动寻找函式
在这里插入图片描述输入一段音频,通过函式输出相应的句子。
在这里插入图片描述输入一张图片,通过函式输出相应的图片名词。

二、Supervised Learing(监督学习)
在这里插入图片描述在找函数前先给一些正确的数据集(带标注的数据集),通过数据集找到一个函数

三、Reinforcement Learning(强化学习)
在这里插入图片描述
不要求预先给定任何数据,通过接收环境对动作的反馈获得学习信息并更新模型参数

四、Unsupervised Learning(无监督学习)
在找函数前先给一些数据集(不带有标注的数据集)

Regression-回归问题

问题:探询宝可梦进化后的CP值(战斗力)。
在这里插入图片描述
Step1 :找一个Model
model就是一个function Set(函数集合)
第一步需要构建一个函数集合,用于计算结果
在这里插入图片描述
本例子中用的是一个Linear model(线性模型),b是偏置,wi是权重,xi是输入的feature(特征)。
Step2:Goodness of Function
接下来要在Model中寻找一个好的函数
在这里插入图片描述
获取训练集数据,横坐标——原有CP值,纵坐标——进化后CP值
如何判断函数好坏?用Loss function(损失函数)
在这里插入图片描述
本例中用【(实际结果值-函数输出值)2的和】作为判定函数好坏的标准,既用估测误差来作为评判标准

Step3:Best Function
寻找一个最佳的函数,既寻找w和b
在这里插入图片描述
如何寻找?Gradient Descent(梯度下降)
在这里插入图片描述
图中显示的是Loss Function关于w的函数图,计算Loss Function关于w的导数。
(1)当导数大于0,说明函数在递增,Loss在增大,则应该减小w
(2)当导数小于0,说明函数在递减,Loss在减小,则应该增大w
通过调整w值去将Loss减小,寻找Best Function。

每次要增大减小多少呢?与 η(学习率) 和导数值相关
在这里插入图片描述

若有两个参数呢?b和w两个维度去求偏导,通过偏导正负调整b和w。
求偏导:
在这里插入图片描述

用立体图去看:
在这里插入图片描述
通过递归下降,调整w和b的值去寻找较低Loss的函数,在图中表示为向山谷走去的这一过程。但山谷有两个,所以一半我们调整w和b只会找到局部最优解,不一定是全局最优解。

How’s the results?
通过训练集去寻找b和w,训练集的Loss等于31.9
在这里插入图片描述
将得到的函数用于预测测试集,发现测试集的Loss大于训练集的Loss。
在这里插入图片描述
如何才能减小Loss,做的更好呢?Selecting another Model,寻找其他的函数集合。因为有可能最佳的函数其实不在原有的函数集里。
(1)用一个二次方程来作为Model,训练集和测试集Loss都减小了
在这里插入图片描述
(2)选用更复杂的Model呢?效果比原来好了一些
在这里插入图片描述
(3)采用更更复杂的Model呢?训练出来的结果很差劲
在这里插入图片描述

所以并非model越复杂就越好,而是要选择一个最适合的Model

过拟合:
在训练集下误差很小,将function用于测试集时,误差却很大。
就像我们在一个固定的地方学开车,慢慢的你就会知道当能看到电线杆上的小熊贴纸后应该打方向盘,但是在实际开上路的时候这条经验却没有用了,因为你过度适应学习开车的地方了。

优化function
其他因素是否会影响预测的数值呢?比如说神奇宝贝的种类。
在这里插入图片描述
为了考虑物种对神奇宝贝进化后CP值的影响,我们应Back to step 1:重新设计Model
在这里插入图片描述
将上图写成线性结构。
在这里插入图片描述

当Xs物种不同,采用不同的function。

得到的结果怎么样?效果不错,误差更小了。
在这里插入图片描述
因此我们可以在设计Model时,考虑多个因素,比如神奇宝贝的高度、体重或者生命值】

若采用二次项Model:出现了过拟合现象。

我们要Back to step2:Regularization
重新调整Loss Function函数。
在后面添加了一个λ∑(wi​)2,既我们想要更小的的参数wi甚至接近于0。
为什么呢?当参数值接近于0,代表这个函数会比较平滑(平滑:当输入有变化时,output不会很敏感)。当某项输入增加了△xi,总的output就会波动wi△xi
当输入的特征有杂讯时,平滑的函数会有较少的影响
在这里插入图片描述

如何确定λ的数值?当λ越大,wi影响力就会越大,适当缩小wi,我们找到的function就会越平滑。
根据下图,当λ越大时,测试集的误差就会越大,因为当λ越大的时候,我们就越倾向于考虑w的值而越少考虑error的大小;有趣的是,当在测试集上的erro比较大时,在训练集上却比较小。
在这里插入图片描述
上图中,当λ从0到100变大的时候,training error不断变大,testing error反而不断变小;但是当λ太大的时候(>100),在testing data上的error就会越来越大。
我们喜欢比较平滑的function,因为它对杂讯不那么敏感;但是我们又不喜欢太平滑的function,因为它就失去了对数据拟合的能力;而function的平滑程度,就需要通过调整λ来决定

为什么不考虑b对平滑的影响?因为b只会影响Model输出结果的上下移动,并不会影响函数的平滑程度。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值