机器学习入门第三讲---专业术语介绍

前面两讲简单地介绍了什么是机器学习,也蜻蜓点水地过了几条TensorFlow的语句,算是稍微打了一点基础。这一讲我们来看一下机器学习的一些相关的专业术语是什么意思。

监督学习与无监督学习(摘自百度百科)

监督学习是从标记的训练数据来推断一个功能的机器学习任务。训练数据包括一套训练示例。在监督学习中,每个实例都是由一个输入对象(通常为矢量)和一个期望的输出值(也称为监督信号)组成。监督学习算法是分析该训练数据,并产生一个推断的功能,其可以用于映射出新的实例。一个最佳的方案将允许该算法来正确地决定那些看不见的实例的类标签。这就要求学习算法是在一种“合理”的方式从一种从训练数据到看不见的情况下形成。

现实生活中常常会有这样的问题:缺乏足够的先验知识,因此难以人工标注类别或进行人工类别标注的成本太高。很自然地,我们希望计算机能代我们完成这些工作,或至少提供一些帮助。根据类别未知(没有被标记)的训练样本解决模式识别中的各种问题,称之为无监督学习。

标签:要预测的事物,即简单线性回归的y变量。假设我们要做一个垃圾邮件过滤模型,标签就是表示“该邮件是否是垃圾邮件”。
特征:输入变量,即简单线性回归里的x变量。简单的机器学习项目可能会使用单个特征,而比较复杂的机器学习项目可能会使用数百万个特征。假设我们要做一个垃圾邮件过滤模型,特征就是“电子邮件的收件人、发件人,正文等等可以从一封电子邮件中获取到的信息”。
样本:一份数据,是指数据的特定实例:x。假设我们要做一个垃圾邮件过滤模型,样本就是“一封封的邮件”。
有标签样本:同时包含特征和标签:(x,y)。我们用有标签样本来训练模型。假设我们要做一个垃圾邮件过滤模型,有标签样本就是“有标记为是否为垃圾邮件的一封封邮件”。
无标签样本:只包含特征:(x,?)。在使用有标签样本训练模型之后,我们会用该模型预测无标签样本的标签。假设我们要做一个垃圾邮件过滤模型,无标签样本就是“没有标记是否为垃圾邮件的一封封邮件”。
模型:y',定义了特征与标签之间的关系,执行预测的工具。
模型生命周期的两个阶段:训练,是指创建或学习模型。也就是说,向模型展示有标签样本,让模型逐渐学习特征与标签之间的关系。
                                    推断,是指将训练后的模型应用于无标签样本,也就是说,使用经过训练的模型作出有用的预测(y')。


回归模型:可以预测连续值。(例如:房价多少、用户点击广告的概率是多少)
分类模型:可以预测离散值,(例如:是否为垃圾邮件、图片中的动物是狗、猫还是仓鼠)

 

训练与损失

训练:训练模型表示通过有标签样本来学习(确定)所有权重和偏差的理想值。在监督式学习中,机器学习算法通过以下方式构建模型:检查多个样本并尝试找出可最大限度地减少损失的模型;这一过程称为经验风险最小化

损失:损失是一个数值,表示对于单个样本而言模型预测的准确程度。

平方损失:一种常见的损失函数。(又称为 L2 损失),即 (y - y')2。

均方误差 (MSE) 指的是每个样本的平均平方损失。要计算 MSE,请求出各个样本的所有平方损失之和,然后除以样本数量:

MSE=1N∑(x,y)∈D(y−prediction(x))2

其中:

  • (x,y) 指的是样本,其中
    • x 指的是模型进行预测时使用的特征集(例如,温度、年龄和交配成功率)。
    • y 指的是样本的标签(例如,每分钟的鸣叫次数)。
  • prediction(x) 指的是权重和偏差与特征集 x 结合的函数。
  • D 指的是包含多个有标签样本(即 (x,y))的数据集。
  • N 指的是 D 中的样本数量。

虽然 MSE 常用于机器学习,但它既不是唯一实用的损失函数,也不是适用于所有情形的最佳损失函数。

 

降低损失

下图就是机器学习算法用于训练模型的迭代试错过程:

ä»ç¹å¾åæ ç­¾å°æ¨¡ååé¢æµç循ç¯ã

“模型”部分将一个或多个特征作为输入,然后返回一个预测 (y') 作为输出。

图中的“计算损失”部分是模型将要使用的损失函数。假设我们使用平方损失函数。损失函数将采用两个输入值:

  • y':模型对特征 x 的预测
  • y:特征 x 对应的正确标签。

最后,我们来看图的“计算参数更新”部分。机器学习系统就是在此部分检查损失函数的值,并为 b 和 w1生成新值。现在,假设这个神秘的绿色框会产生新值,然后机器学习系统将根据所有标签重新评估所有特征,为损失函数生成一个新值,而该值又产生新的参数值。这种学习过程会持续迭代,直到该算法发现损失可能最低的模型参数。通常,您可以不断迭代,直到总体损失不再变化或至少变化极其缓慢为止。这时候,我们可以说该模型已收敛

 

(y - y')2 相对于权重和偏差的导数可让我们了解指定样本的损失变化情况

  • 易于计算且为凸形

因此,我们在能够尽可能降低损失的方向上反复采取小步

  • 我们将这些小步称为梯度步长(但它们实际上是负梯度步长)
  • 这种优化策略称为梯度下降法

 

如何初始化我们的权重

  • 对于凸形问题,权重可以从任何位置开始(比如,所有值为 0 的位置)
    • 凸形:想象一个碗的形状,如下图
    • 只有一个最低点

凸形问题只有一个最低点;即只存在一个斜率正好为 0 的位置。这个最小值就是损失函数收敛之处。

通过计算整个数据集中 w1 每个可能值的损失函数来找到收敛点这种方法效率太低。我们来研究一种更好的机制,这种机制在机器学习领域非常热门,称为梯度下降法

梯度下降法的第一个阶段是为 w1 选择一个起始值(起点)。起点并不重要;因此很多算法就直接将 w1设为 0 或随机选择一个值。下图显示的是我们选择了一个稍大于 0 的起点:

U å½¢æ²çº¿ä¸ç第äºä¸ªç¹ï¼è¿ä¸ªç¹æ´æ¥è¿æä½ç¹ã

  • 预示:不适用于神经网络
    • 非凸形:想象一个蛋托的形状
    • 有多个最低点
    • 很大程度上取决于初始值

 

降低损失的方法:随机梯度下降法(SGD) 和小批量梯度下降法(小批量 SGD

  • 可以在每步上计算整个数据集的梯度,但事实证明没有必要这样做
  • 计算小型数据样本的梯度效果很好
    • 每一步抽取一个新的随机样本
  • 随机梯度下降法:一次抽取一个样本
  • 小批量梯度下降法:每批包含 10-1000 个样本
    • 损失和梯度在整批范围内达到平衡

 

学习速率(步长)

梯度矢量具有方向和大小。梯度下降法算法用梯度乘以一个称为学习速率(有时也称为步长)的标量,以确定下一个点的位置。例如,如果梯度大小为 2.5,学习速率为 0.01,则梯度下降法算法会选择距离前一个点 0.025 的位置作为下一个点。

超参数是编程人员在机器学习算法中用于调整的旋钮。大多数机器学习编程人员会花费相当多的时间来调整学习速率。如果您选择的学习速率过小,就会花费太长的学习时间:

学习速率需要调整, 如果过小,会花费很长的时间才能到达底部。如果过大,下一个点将永远在 U 形曲线的底部随意弹跳。

转载于:https://my.oschina.net/lonelycode/blog/3100472

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值