机器学习基础

 

本章涵盖了以下主题:

  • 分类和回归之外的其他类型的问题;
  • 评估问题,理解过拟合、欠拟合,以及解决这些问题的技巧;
  • 为深度学习准备数据。

请记住,在本章中讨论的大多数技术都是机器学习和深度学习通用的,一部分用于解决过拟合问题的技术(如dropout)除外。

4.1 三类机器学习问题

在之前的所有例子中,尝试解决的是分类(预测猫或狗)或回归(预测用户在平台上花费的平均时间)问题。所有这些都是有监督学习的例子,目的是找到训练样例和目标之间的映射关系,并用来预测未知数据。

有监督学习只是机器学习的一部分,机器学习也有其他不同的部分。以下是3种不同类型的机器学习:

  • 有监督学习;
  • 无监督学习;
  • 强化学习。

下面详细讲解各种算法。

4.1.1 有监督学习

在深度学习和机器学习领域中,大多数成功用例都属于有监督学习。本书中所涵盖的大多数例子也都是有监督学习的一部分。来看看有监督学习的一些常见的例子。

  • 分类问题:狗和猫的分类。
  • 回归问题:预测股票价格、板球比赛成绩等。
  • 图像分割:进行像素级分类。对于自动汽车驾驶来说,从摄像机拍摄的照片中,识别出每个像素属于什么物体是很重要的。这些像素可以是汽车、行人、树、公共汽车等。
  • 语音识别:OK Google、Alexa和Siri都是语音识别的例子。
  • 语言翻译:从一种语言翻译成另一种语言。

4.1.2 无监督学习

在没有标签数据的情况时,可以通过可视化和压缩来帮助无监督学习技术理解数据。两种常用的无监督学习技术是:

  • 聚类;
  • 降维。

聚类有助于将所有相似的数据点组合在一起。降维有助于减少维数,从而可视化高维数据,并找到任何隐藏的模式。

4.1.3 强化学习

强化学习是最不流行的机器学习范畴。在真实世界中没有发现它的成功用例。然而,近年来有了些改变,来自Google的DeepMind团队成功地构建了基于强化学习的系统,并且在AlphaGo比赛中赢得世界冠军。计算机可以在比赛中击败人类的这种技术上的进展,曾被认为需要花费数十年时间才能实现。然而,使用深度学习和强化学习却可以这么快就达到目标,比任何人所预见的都要快。这些技术已经可以看到早期的成功,但可能需要几年时间才能成为主流。

在本书中,我们将主要关注有监督的技术和一些特定于深度学习的无监督技术,例如用于创建特定风格图片的生成网络:风格迁移(style transfer)和生成对抗网络(generative adversarial network)。

4.2 机器学习术语

前面几章出现了大量的术语,如果大家刚入门机器学习或深度学习领域,这些术语看起来会比较生疏。这里将列出机器学习中常用的多数术语,这些通常也在深度学习文献中使用。

1.简单保留验证

划分一定比例的数据作为测试数据集。留出多大比例的数据可能是和特定问题相关的,并且很大程度上依赖于可用的数据量。特别是对于计算机视觉和自然语言处理领域中的问题,收集标签数据可能非常昂贵,因此留出30%的测试数据(比例相当大)可能会使算法学习起来非常困难,因为用于训练的数据很少。因此,需要根据数据的可用性,谨慎地选择划分比例。测试数据拆分后,在冻结算法及其超参数前,要保持数据的隔离。为了给问题选择最佳超参数,请选择单独的验证数据集。为了避免过拟合,通常将可用数据划分成3个不同的集合,如图4.1所示。

上一章使用了图4.1的简单实现来创建验证数据集,实现的快照如下:

 

图4.1

这是最简单的保留策略之一,通常在开始时使用。在小型数据集上使用这种划分策略有一个弊端,验证数据集或测试数据集中的现有数据可能不具有统计代表性。在划分数据前混洗数据即可以轻松意识到这一点。如果得到的结果不一致,那么需要使用更好的方法。为了避免这个问题,我们最后通常使用K折(K-fold)验证或迭代K折(iterated k-fold)验证。

2.K折验证

留出一定比例的数据用于测试,然后将整个数据集分成K个数据包,其中K可以是任意数值,通常从2到10不等。在任意给定的迭代中,选取一个包作为验证数据集,并用其余的数据包训练算法。最后的评分通常是在K个包上获得的所有评分的平均值。图4.2所示为一个K折验证的实现,其中K为4;也就是说,数据划分成4部分(称为4折验证)。

使用K折验证数据集时,要注意的一个关键问题是它的代价非常昂贵,因为需要在数据集的不同部分上运行该算法数次,这对于计算密集型算法来说是非常昂贵的,特别是在计算机视觉算法领域。有时候,训练算法可以花费从几分钟到几天的时间。所以,请谨慎地使用这项技术。

3.带混洗的K折验证

为了使算法变得复杂和健壮,可以在每次创建保留的验证数据集时混洗数据。当小幅度的性能提升提升可能会对业务产生巨大影响时,这种做法是有益的。如果我们的情况是快速构建和部署算法,并且可以接受百分之几的性能差异,那么这种方法可能并不值得。所有这一切都取决于试图要解决的问题,以及对准确率的要求。

 

图4.2

在拆分数据时可能需要考虑其他一些事情,例如:

1.数据代表性

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值