Datawhale组队学习-机器学习Task2
视频学习链接:李宏毅《机器学习》_哔哩哔哩_bilibili
放在开头:
上一篇文章在打完之后发现太费时间了,而且有点类似于复述之嫌,而笔记应该是做到精炼,易于吸收的,所以接下来的记录风格会尝试变得更加的随意。
回归(Regression)
本次Task的主要学习知识就在于回归,属于监督学习的一种。
主要的讲述内容包括:
- 回归的定义以及简单应用实例
- 回归的步骤
- 模型假设:基于假定的线性模型的例子
- 模型评估:损失函数的概念
- 最佳模型:梯度下降算法以及其简单的数学原理
- 过拟合
-
模型优化中可以用到的一些思路
1.回归的定义以及简单应用实例
回归就是找到一个function,基于输入,得到数值的输出(Scalar)
上面提到,回归的输出是数值,其可以完成一些预测数值任务,如:
- 股票预测
- 自动驾驶中的方向盘角度
- 推荐系统中,用户A购买商品B的可能性
而在课程中,老师所引入的应用是 宝可梦初始的数值 - > 进化后的数值
2.回归的步骤
在TASK1中有简单介绍过,机器学习的步骤可以简单概括为:
1.找到function set(Model) --- 2.评估function --- 3.选出最好的function
那么在这里加入了第四步,优化选出的function
2.1 模型假设
课程中以一元线性模型为例:
由于宝可梦有多个属性,所以实际应用的模型为
是特征(fiction), 是特征的权重(weight), 是偏置(bias)。
2.2 模型评估
在这里引入了损失函数(Loss function),其用于评估模型。
损失(Loss)越大,预测值离真实值相差就越大,模型精度就越差。
以下为宝可梦例子中定义的Loss function:
2.3 选出最好的模型(梯度下降)
我们知道,损失越小模型就越好。那么可以根据求得损失函数的最小值来获得最好的参数。在线性模型的损失函数中,我们可以使用梯度下降算法来求得最小值。
梯度下降算法通过让损失函数的y(损失)朝着梯度(y上升最快的方向)的反方向前进,一直找到一个极低值,求得最好的模型的参数。图中的学习率,相当于沿着该方向走n步。
在二元线性模型中,梯度下降相当于是球在一个面上朝着最低的地方滚。
不过梯度下降算法也有局限性,那就是若模型的损失函数有多个极低值,那么模型有可能面临选到的不是最低值。
过拟合
在实验中,给出了二元、三元乃至更多参数的模型方程的预测结果,增加参数后,模型的在训练集的精度似乎提升了,然而在测试集中结果则是越来越离谱。出现这种现象的主要原因有如下:
- 训练数据中存在噪音
- 训练数据太少
- 参数太多,模型复杂度过高
模型优化中可以用到的一些思路
第一种给到的思路是,考虑到实际运用中,原先的模型并没有考虑到宝可梦的种族(而其会影响到结果),同一个种族间的数值变化会更有规律性,于是融入了对种族的计算。当然,也会有其他的特征影响到预测的结果,在这里作为一个思路。
第二种的思路则是给模型引入正则化(Regularization) ,也就是对其的损失函数添加了一项方程式。它的作用使得模型更加“平滑”,所谓“平滑”,可以从损失函数中看出,随着 的提升,损失就越和参数本身相关,受出现的特征的变化的影响变小了。这样做可以有效降低噪声值的干扰。
实例演示的部分没什么个人总结的地方,就先总结到这里吧