李宏毅机器学习笔记(第一天)

李宏毅机器学习笔记(第一天),第1张

李宏毅机器学习笔记(第一天)

李宏毅机器学习笔记:线性回归建模与模型改进实例

机器学习目的: 机器自动找函数

回归问题(Regression):函数输出是标量

例子:预测pokemon(口袋精灵)的进化值

任务描述:

Pokemon的特征有进化前cp值,种类,身高,体重等,需要通过已有的数据,学习出一个模型(函数),预测Pokemon进化后的cp值。

如何寻找回归问题的函数?

第一步:模型的建立

简单的模型:y = b + w  xcp

该模型输入为进化前cp值, w,b是参数

复杂模型:

函数输出是Pokemon的各项特征线性组合的输出

模型包括一组函数,(w,b)的一组取值就是一个函数f,首先需要根据训练数据找到一个最优函数,使得函数f的预测尽可能准确。如何找到这个最优的函数呢?需要引入损失函数loss function

Loss function: 衡量网络函数f的好坏,标签数据输出与通过f函数训练输出的差值,其表达式为:

 

找L最小值:梯度下降法

梯度下降法(gradient descent)找到损失函数loss function的下降方向,再根据学习率(步长)确定参数(比如w , b)的修正值(w1, b1), 经过多轮迭代,找到loss function的最小值(linear regression 线性回归中loss function 为凸函数,不存在局部最小值),对于只有一个参数w的f,直观的方法如下:

可以扩展到两个参数w,b

第二步:模型的评估

通过梯度下降法可以找到在当前训练数据(training data)下的最优的函数f*(找到最优的w*,b*即找到f*),然而这个f*是否可以准确预测呢?需要在测试数据(testing data)测试,以评估该模型的泛化能力(generalizatiion),通过平均错误率来衡量模型的好坏。

尝试不同的模型来比较其错误率

上图可以看出,模型越复杂,其在训练集上的平均错误越低,但我们是否找到了最优的函数呢?答案是否定的,模型过于复杂可能会出现过拟合(overfitting)情况,导致模型泛化能力弱。

第三步:模型的改进

前述的模型中只考虑到Pokemon进化前的cp值,然后Pokemon还有其他的特征值,如种类,加入种类特征项,重新建立模型。

可以看出改进后的模型的拟合能力和泛化能力都得到增强,如果再加上其他的特征值,构造更复杂的模型,情况会如何呢?加入HP值,身高,体重等特征重新建立模型。

训练集上的错误率降低了,但是测试集上的错误率显著升高了!!!

又出现过拟合情况。因为训练集的局限性,过拟合很难避免,过拟合表明学习器学习到了很多不必要的特征属性,导致其泛化能力降低。

解决的方法之一,在损失函数中加入正则化项,使曲线更平滑

对参数b不用将入正则化项,因为b影响曲线平滑程度,调节λ的值找到最好的模型。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5657756.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存