【Datawhale X 李宏毅苹果书 AI夏令营】Task 1 《深度学习详解》- 1.1 通过案例了解机器学习

这次学习我们将会解答:

  1. 什么是机器学习?什么是它的本质?
  2. 机器学习中的主要函数有哪些?
  3. 机器学习的过程分为哪些步骤?
  4. 什么叫 模型 ?什么叫 标签 ?
  5. 损失L怎么计算?
  6. 梯度下降 是什么?它的原理是怎么样的?它有什么不足?

前言——机器学习的基础介绍

一、概念

机器学习 Machine Learning,ML ,顾名思义,机器具备有学习的能力。从本质来讲,机器学习就是让
机器具备找一个函数的能力

例如:

  • 语音识别
    该函数的输入是声音信号,输出是这段声音信号的内容。
  • 图像识别
    图像识别函数的输入是一张图片,输出是这个图片里面的内容。
  • AlphaGo
    机器下围棋需要的就是一个函数,该函数的输入是棋盘上黑子跟白子的位置,输出是机器下一步应该落子的位置。

在这里插入图片描述

二、 不同函数

随着要找的函数不同,机器学习有不同的类别。主要函数有以下几种:

  1. 回归 regression
    假设要找的函数的输出是一个数值,一个标量 scalar,这种机器学习的任务称为回归
    举个回归的例子,假设机器要预测未来某一个时间的 PM2.5 的数值。机器要找一个函数 f,其输入是可能是种种跟预测 PM2.5 有关的指数,包括今天的 PM2.5 的数值、平均温度、平均的臭氧浓度等等,输出是明天中午的 PM2.5的数值,找这个函数的任务就称为回归。

  2. 分类 classiffcation
    分类任务要让机器做选择题。人类先准备好一些选项,这些选项称为类别 class,现在要找的函数的输出就是从设定好的选项里面选择一个当作输出,该任务称为分类。
    举个例子,每个人都有邮箱账户,邮箱账户里面有一个函数,该函数可以检测一封邮件是否为垃圾邮件。分类不一定只有两个选项,也可以有多个选项。

  3. 结构化学习 structured learning
    让机器产生有结构的东西的问题称为结构化学习
    机器不只是要做选择题或输出一个数字,而是产生一个有结构的物体,比如让机器画一张图,写
    一篇文章。
    在这里插入图片描述

1.1 案例学习

机器学习找函数的过程,分成 3 个步骤。分别是:找函数 f f f、定义损失、解一个最优化的问题

接下来,我们以视频的点击次数预测为例介绍下机器学习的运作过程。假设有人想要通过视频平台赚钱,他会在意频道有没有流量,这样他才会知道他的获利。假设后台可以看到很多相关的信息,比如:每天点赞的人数、订阅人数、观看次数。根据一个频道过往所有的信息可以预测明天的观看次数。找一个函数,该函数的输入是后台的信息,输出是隔天这个频道会有的总观看的次数。

步骤1——写出一个带有未知参数的函数 f f f

第一个步骤是写出一个带有未知参数的函数 f,其能预测未来观看次数。比如将函数写成
y = b + w x 1 y = b + wx_1 y=b+wx1
其中,y 是准备要预测的东西,要预测的是今天(2 月 26 日)这个频道总共观看的人,y 就假设是今天总共的观看次数。x1 是这个频道,前一天(2 月 25 日)总共的观看次数,y 跟 x1 都是数值,b 跟 w 是未知的参数,它是准备要通过数据去找出来的,w 跟 b 是未知的,只是隐约地猜测。

  • w 称为权重 weight,b 称为偏置bias。关于这两个参数的猜测往往来自于对这个问题本质上的了解,即领域知识 domain knowledge
  • 带有未知的参数 parameter的函数称为模型 model。模型在机器学习里面,就是一个带有未知的参数
    的函数,特征 feature x 1 x_1 x1 是这个函数里面已知的,它是来自于后台的信息。
    在这里插入图片描述

步骤2——定义损失(loss)

第 2 个步骤是定义损失(loss),损失也是一个函数,记作 L ( b , w ) L(b,w) L(b,w) 损失函数输出的值代表,现在如果把这一组未知的参数,设定某一个数值的时候,这笔数值好还是不好。要从训练数据来进行计算损失,在这个问题里面,训练数据是这一个频道过去的观看次数。

在这个例子中,把 2017 年 1 月 1 日的观看次数,代入这一个函数里面,得到:
y ^ = 500 + 1 x 1 \hat{y}= 500 + 1x_1 y^=500+1x1
x 1 x_1 x1 代入 4800 4800 4800,预测隔天实际上的观看次数结果为 y ^ = 5300 \hat{y} = 5300 y^=5300,但真正的结果是 4900 4900 4900,这个函数高估了这个频道可能的点击次数。
现在,我们可以计算一下估测的值 y ^ \hat{y} y^ 跟真实值 y y y 的差距 e e e。(目前用取绝对值的方式)
e 1 = ∣ y − y ^ ∣ = 400 e_1 = |y − \hat{y}| = 400 e1=yy^=400

  • 真实的值称为标签 label

在这里插入图片描述
我们不是只能用 1 月 1 日的值,来预测 1 月 2 日的值;也可以用 1 月 2 日的值,来预测 1 月 3日的值。以此类推,我们可以算这 3 年来,每一天的预测的误差 e e e,接下来把每一天的误差通通加起来取得平均,则可以得到损失 L L L:
L = 1 N ∑ n e n L=\frac{1}{N}\sum_{n}e_n L=N1nen
其中,N 代表训验数据的个数,即几年来的训练数据,L 是每一笔训练数据的误差 e 相加以后的结果。L 越大,代表现在这一组参数越不好,L 越小,代表现在这一组参数越好。

估测的值跟实际的值之间的差距,其实有不同的计算方法,计算 y y y y ^ \hat{ y} y^ 之间绝对值的差
距,如下式所示,称为平均绝对误差 Mean Absolute Error,MAE
e = ∣ y ^ − y ∣ e = |\hat{y} − y| e=y^y
如果算 y y y y ^ \hat{y} y^ 之间平方的差距,如下式所示,则称为均方误差 Mean SquaredError,MSE
e = ( y ^ − y ) 2 e = (\hat{y}− y)^2 e=(y^y)2

在我的另一篇笔记中,也有一些关于损失函数的知识点,指路–>3__阿里云天池数据挖掘:二手车交易价格预测——代码分析与相关知识点

在这里插入图片描述

另外,我们可以调整不同的 w 和不同的 b,求取各种w 和各种 b,组合起来以后,我们可以为不同的 w 跟 b 的组合,都去计算它的损失,就可以画出下图所示的等高线图。
在这个等高线图上面,越偏红色系,代表计算出来的损失越大,就代表这一组 w 跟 b 越差。如果越偏蓝色系,就代表损失越小,就代表这一组 w 跟 b 越好,拿这一组 w 跟 b,放到函数里面,预测会越精准。
下图所示的等高线图,就是试了不同的参数,计算它的损失,画出来的等高线图称为误差表面errorsurface

在这里插入图片描述

步骤3——解一个最优化的问题

接下来进入机器学习的第 3 步:解一个最优化的问题。即找一对最好的 ( w , b ) (w,b) (w,b),记作 ( w ∗ , b ∗ ) (w^*,b^*) (w,b),使得损失 L L L最小。

  • 梯度下降gradient descent是经常会使用优化的方法。

为了要简化起见,先假设只有一个未知的参数 w,b 是已知的。
怎么样找一个 w 让损失的值最小呢?首先要随机选取一个初始的点 w 0 w_0 w0。接下来计算 ∂ L ∂ w ∣ w = w 0 \frac{\partial L}{\partial w}|_{w=w_0} wLw=w0,在 w = w 0 w=w_0 w=w0 的时候,参数 w w w对损失的微分。
在这个位置附近,左边比较高,右边比较低。如果左边比较高右边比较低的话,就把 w w w 的值变大,就可以让损失变小。如果算出来的斜率是正的,就代表左边比较低右边比较高。左边比较低右边比较高,如果左边比较低右边比较高的话,就代表把 w w w 变小了, w w w 往左边移,可以让损失的值变小。

在这里插入图片描述

左右移动的步伐大小取决于两件事情:

  • 第一件事情是这个地方的斜率,斜率大步伐就跨大一点,斜率小步伐就跨小一点。
  • 另外,学习率learning rate η \eta η也会影响步伐大小。学习率是自己设定的,如果 η \eta η设大一点,每次参数更新就会量大,学习可能就比较快。如果 η \eta η设小一点,参数更新就很慢,每次只会改变一点点参数的数值。这种在做机器学习,需要自己设定,不是机器自己找出来的,称为超参数hyperparameter

在这里插入图片描述

接下来反复进行刚才的操作,计算一下 w 1 w^1 w1 微分的结果,再决定现在要把 w 1 w^1 w1 移动多少,再移动到 w 2 w^2 w2,再继续反复做同样的操作,不断地移动 w w w 的位置,最后会停下来。往往有两种情况会停下来。

  • 第一种情况是一开始会设定说,在调整参数的时候,在计算微分的时候,最多计算几次。上限可能会设为 100 万次,参数更新 100 万次后,就不再更新了,更新次数也是一个超参数。
  • 还有另外一种理想上的,停下来的可能是,当不断调整参数,调整到一个地方,它的微分的值就是这一项,算出来正好是 0 的时候,如果这一项正好算出来是 0,0 乘上学习率 η \eta η 还是 0,所以参数就不会再移动位置。假设是这个理想的情况,把 w 0 w^0 w0 更新到 w 1 w^1 w1,再更新到 w 2 w^2 w2,最后更新到 w T w^T wT 有点卡, w T w^T wT卡住了,也就是算出来这个微分的值是 0 了,参数的位置就不会再更新。

梯度下降有一个很大的问题,就是既有可能没有找到真正最好的解,也没有找到可以让损失最小的 w w w
在下图所示的例子里面,把 w w w 设定在最右侧红点附近这个地方可以让损失最小。但如果在梯度下降中, w 0 w^0 w0 是随机初始的位置,也很有可能走到 w T w^T wT 这里,训练就停住了,无法再移动 w w w 的位置。右侧红点这个位置是真的可以让损失最小的地方,称为全局最小值global minima),而 w T w^T wT 这个地方称为局部最小值local minima,其左右两边都比这个地方的损失还要高一点,但是它不是整个误差表面上面的最低点。

在这里插入图片描述

总结

以上的三个步骤是训练的步骤,它靠曾经的数据一步步完善模型。

在这里插入图片描述

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值