Datawhale-2021年10月组队学习-李宏毅机器学习打卡

Datawhale-2021年10月组队学习

  • 李宏毅机器学习打卡
    • Task01
    • Task02
    • Task03

李宏毅机器学习打卡

Task01

参照开源文档,观看视频 P1-2:机器学习介绍

在视频P1中,李宏毅老师对机器学习进行了整体概括性的介绍。
相关概念的包含关系为:(人工智能(机器学习(深度学习)))
Datawhale-2021年10月组队学习-李宏毅机器学习打卡_第1张图片
目前其实很多的人工智能并不是真实意义上的智能,而是“hand-crafted rules”,是由大量的if结构组成的,这样其实计算机是无法真正做到学习的行为,也就永远无法超越人类。我十分同意李宏毅老师的一个观点“机器学习发展,对比较小规模企业反而是更有利的,因为接下来,不需要非常大量的人来帮你想各式各样的规则,只要手上有data,你可以让机器来帮你做这件事情”。
通过课程学习,重新明确了深度学习模型的训练、验证、应用流程:
Datawhale-2021年10月组队学习-李宏毅机器学习打卡_第2张图片
进一步学习理解了机器学习相关技术的含义及关系:
Datawhale-2021年10月组队学习-李宏毅机器学习打卡_第3张图片
机器学习任务基本分为三类:回归问题、分类问题和结构化学习问题。
回归问题的输出为数值,分类问题的输出为类别,结构化学习的输出为结构性的object。

根据拥有数据情况的不同,训练模型的方式可以分为:监督学习、半监督学习、迁移学习、无监督学习和强化学习。
监督学习:利用一组已知类别的样本调整分类器的参数,使其达到所要求性能的过程。
半监督学习:使用大量的未标记数据,以及同时使用标记数据,来进行模式识别工作。
迁移学习:从相关领域中迁移标注数据或者知识结构、完成或改进目标领域或任务的学习效果。
无监督学习:根据类别未知(没有被标记)的训练样本解决模式识别中的各种问题。
强化学习:智能体(Agent)以“试错”的方式进行学习,通过与环境进行交互获得的奖赏指导行为,目标是使智能体获得最大的奖赏。

Task02

参照开源文档,观看视频 P3-4:回归

在本节课中,李宏毅老师通过宝可梦CP值预测的例子,介绍了机器学习中回归任务的流程。
回归任务的定义:找到一个函数,通过输入特征,输出一个数值。

在宝可梦CP值预测回归任务的例子中,机器学习模型预测步骤如下:
step1:模型假设,选择模型框架(线性模型)
step2:模型评估,如何判断众多模型的好坏(损失函数)
step3:模型优化,如何筛选最优的模型(梯度下降)

Step 1:模型假设 - 线性模型
使用了两种方法,一元线性模型和多元线性模型。
一元线性模型:只以进化前CP值为输入特征的线性模型。
多元线性模型:以宝可梦进化前的CP值、HP值、体重等多个特征作为线性模型的输入。
Datawhale-2021年10月组队学习-李宏毅机器学习打卡_第4张图片Step 1优化:通过对宝可梦种类的判断,将 4个线性模型合并到1个线性模型中。
Datawhale-2021年10月组队学习-李宏毅机器学习打卡_第5张图片
Step 2:模型评估 - 损失函数
使用损失函数来衡量模型的好坏,最开始使用MSE作为模型训练的损失函数。
Datawhale-2021年10月组队学习-李宏毅机器学习打卡_第6张图片
如果为了提高模型在训练集上的精度而不断增加损失函数的次数,则会出现过拟合的问题。
Datawhale-2021年10月组队学习-李宏毅机器学习打卡_第7张图片
Step 2优化:将更多的输入特征加入到模型中。

Step 3:最佳模型 - 梯度下降
使用梯度下降方法来选择最优的模型,但在实际使用中可能出现只能获得局部最小值的情况。
Datawhale-2021年10月组队学习-李宏毅机器学习打卡_第8张图片Step 3优化:加入正则化
w 越小,表示函数较平滑, 函数输出值与输入值相差不大,在很多应用场景中,并不是w越小模型越平滑越好,但是w越小大部分情况下都是好的。
Datawhale-2021年10月组队学习-李宏毅机器学习打卡_第9张图片

Task03

参照开源文档,观看视频 P5-8:误差和梯度下降

误差的期望值可以分解为三个部分:样本噪音、模型预测值的方差(variance)、预测值相对真实值的偏差(bias)。
Datawhale-2021年10月组队学习-李宏毅机器学习打卡_第10张图片
靶心(红点)是测试样本的真实值,测试样本的y(橙色点)是真实值加上噪音,特定模型重复多次训练会得到多个具体的模型,每一个具体模型对测试样本进行一次预测,就在靶上打出一个预测值(图上蓝色的点)。所有预测值的平均就是预测值的期望(较大的浅蓝色点),预测值期望与真实值之间的距离为偏差(bias),浅蓝色的圆圈表示预测值的离散程度,即预测值的方差(variance)。

模型较为简单时偏差(bias)较大而方差(variance)较小;模型较为复杂时偏差(bias)较小而方差(variance)较大。
Datawhale-2021年10月组队学习-李宏毅机器学习打卡_第11张图片
将误差拆分为偏差和方差,简单模型(左边)是偏差比较大造成的误差,这种情况叫做欠拟合,而复杂模型(右边)是方差过大造成的误差,这种情况叫做过拟合。
欠拟合的情况应重新设计模型,解决过拟合情况的最简单解决办法是提供更多的数据。

平衡偏差和方差,选择最优模型的方法可以选择:交叉验证、N-折交叉验证
Datawhale-2021年10月组队学习-李宏毅机器学习打卡_第12张图片
交叉验证:将训练集再分为两部分,一部分作为训练集,一部分作为验证集。用训练集训练模型,然后再验证集上比较,确实出现最好的模型之后(比如模型3),再用全部的训练集训练模型3,然后再用测试集进行测试。

在使用梯度下降方法选择最优模型时,对学习率的调整方法有许多种。如果学习率调整的刚刚好,比如红色的线,就能顺利找到最低点。如果学习率调整的太小,比如蓝色的线,就会走的太慢,虽然这种情况给足够多的时间也可以找到最低点,实际情况可能会等不及出结果。如果学习率调整的有点大,比如绿色的线,就会在上面震荡,走不下去,永远无法到达最低点。还有可能非常大,比如黄色的线,直接就飞出去了,更新参数的时候只会发现损失函数越更新越大。
Datawhale-2021年10月组队学习-李宏毅机器学习打卡_第13张图片
方法1:Adagrad算法
每个参数的学习率都把它除上之前微分的均方根。
Datawhale-2021年10月组队学习-李宏毅机器学习打卡_第14张图片
方法2:随机梯度下降法
在这里插入图片描述
损失函数不需要处理训练集所有的数据,选取一个例子 x^n,此时不需要像之前那样对所有的数据进行处理,只需要计算某一个例子的损失函数Ln,就可以赶紧update梯度。
Datawhale-2021年10月组队学习-李宏毅机器学习打卡_第15张图片
注意:特征缩放
两个输入的分布的范围很不一样,建议把他们的范围缩放,使得不同输入的范围是一样的。
常见做法:
对每一个维度i(绿色框)都计算平均数,记做 mi;还要计算标准差,记做 σi。
然后用第 r 个例子中的第 i 个输入,减掉平均数 mi ,然后除以标准差 σi 。

梯度下降的限制:容易陷入局部极值,还有可能卡在不是极值,但微分值是0的地方;还有可能实际中只是当微分值小于某一个数值就停下来了,但这里只是比较平缓,并不是极值点。
Datawhale-2021年10月组队学习-李宏毅机器学习打卡_第16张图片

你可能感兴趣的:(机器学习,深度学习,人工智能)