李宏毅《机器学习》学习笔记2

2021/7/15 6:06:35

本文主要是介绍李宏毅《机器学习》学习笔记2,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Regression 是一种机器学习的 task,即指 machine 找到的 function,它的输出是一个 scalar,这就叫做 regression。这次就来学习搭建一个用于预测宝可梦进化后的combatpower(cp)值的机器学习模型。

模型搭建步骤

  1. 模型假设,根据问题复杂程度选择模型(线性模型)
  2. 模型评估,判断众多模型的好坏(损失函数)
  3. 模型优化,筛选最优的模型(梯度下降)

1.模型假设

image

我们这次的目的是预测宝可梦进化后的cp值,输入是宝可梦进化前的cp值、hp值、重量、高度或者种族,输出为预测的cp值。我们先从简单的模型入手,假设一个仅输入初始cp值的单特征模型:

\[y=b+w \cdot x_{cp} \]

这里面w是权重,x为特征。

2.模型评估

输入宝可梦数据,根据我们设置的初始模型得到输出,最后通过损失函数判断模型表现:

3.最佳模型

既然是表现最好的模型,那么我们要找的就是损失函数值最低的模型,这里要用到梯度下降算法来找到损失函数最小值。


计算当前模型参数w、b的导数,乘以学习率\(\eta\),用之前的w、b减去梯度项使参数逐渐向最优解移动。

模型优化


根据表现进一步优化模型,可以考虑以下途径:

  • 当前使用的只是简单的一元一次模型,我们可以增加模型复杂度来提升模型性能。但要注意的是,并非模型越复杂越好,因为过于复杂的模型会过拟合训练数据,降低测试性能。
  • 观察初始数据,可发现宝可梦种类是cp变化的重要影响因素,我们将该因素引入模型并将不同物种模型整合为一个。

  • 除了宝可梦初始cp值,种类之外,还有很多feature,如果将这些因素直接全加入模型会导致模型的过拟合,这里需要使用正则化的方法,即在模型表达式中引入一个惩罚项\(\lambda \sum(w_i)^2\):

    引入该项可以控制参数w的大小,平滑模型,降低模型对于输入值的敏感性。

    可以看到正则化后,引入更多参数的模型不仅可以进一步提高预测表现也可以防止过拟合。


这篇关于李宏毅《机器学习》学习笔记2的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程