机器学习入门

路线图(基于《机器学习实战》)

第一部分

  • 什么是机器学习,他试图解决什么问题,以及其系统的主要类别和基本概念
  • 典型机器学习项目中的步骤
  • 通过将数据与模型进行拟合来学习
  • 优化成本函数
  • 处理、清洁和准备数据
  • 选择和工程化特征
  • 选择模型并使用交叉验证调整参数
  • 机器学习的挑战,特别是欠拟合和过拟合(偏差/方差的权衡)
  • 最常见的学习算法:线性和多项式回归、逻辑回归、K-临近算法、支持向量机、决策树、随机森林和集成方法
  • 降低训练数据的维度以应对“维度的诅咒”
  • 其他无监督徐徐技术,包括聚类、密度估计和异常检测

第二部分

  • 什么是神经网络以及他们的作用
  • 使用TensorFlow和Keras构建和训练神经网络
  • 最重要的神经网络架构,包括用于表格数据的前反馈神经网络、用于计算机视觉的卷积网络、用于序列处理的递归网络和长短期记忆(LSTM)网络、用于自然语言处理的编码器/解码器和Transformer、自动编码器和用于生成学习的生成式对抗网络(GAN)
  • 训练深度神经网络的技术
  • 如何使用强化学习构建可以通过反复试错学习好的策略的代理程序(例如游戏中的机器人)
  • 有效的加载和预处理大量数据
  • 大规模训练和部署TensorFlow模型

机器学习概览

1.1 什么是机器学习

一个计算机程序利用经验E来学习任务T,性能是P,如果针对任务T的性能P随着经验E不断增长,则称为机器学习。
系统用来进行学习的样例称作训练集,每个训练样例称作训练实例(或样本)。经验E是训练数据,性能P需要定义,性能指标常被称作“准确率”。

1.2 为什么使用机器学习

人类是怎样学习的:
ALT

传统编程:
ALT

传统编程的弊端:1、规则难以定义 2、规则不断变化
这就导致程序很难维护

机器学习:
ALT

即机器自己推算规律

自适应改变:
ALT

1.3 机器学习的应用示例

  • 分析生产线上的产品图像来对产品进行自动分类
    这是图像分类问题,使用卷积神经网络(CNN,见第14章)的典型示例。
  • 通过脑部扫描发现肿瘤
    这是语义分割,图像中的每个像素都需要被分类(当我们想确定肿瘤的确切位置和形状时),也使用CNN。
  • 自动分类新闻
    这是自然语言处理(NLP),更具体地是文本分类,可以使用循环神经网络(RNN)、CNN或者Transformer(见第16章)。
  • 论坛中自动标记恶评
    这也是文本分类,使用相同的自然语言处理工具。
  • 自动对长文章做总结
    这是自然语言处理的一个分支,叫作文本总结,使用相同的工具。
  • 创建一个聊天机器人或者个人助理
    这涉及自然语言处理的很多分支,包括自然语言理解(NLU)和问答模块。
  • 基于很多性能指标来预测公司下一年的收入
    这是一个回归问题(如预测值),需要使用回归模型进行处理,例如线性回归或多项式回归(见第4章)、SVM回归(见第5章)、随机森林回归(见第7章)或者人工神经网络(见第10章),如果考虑过去的性能指标,可以使用RNN、CNN或者Transformer(见第15章和第16章)。
  • 让应用对语音命令做出反应
    这是语音识别,要求能处理音频采样。因为音频是很长、很复杂的序列,所以一般使用RNN、CNN或者Transformer(见第15章和第16章)进行处理。
  • 检测信用卡欺诈
    这是异常检测(见第9章)。
  • 基于客户的购买记录来对客户进行分类,对每一类客户设计不同的市场策略
    这是聚类问题(见第9章)。
  • 用清晰而有洞察力的图表来表示复杂的高维数据集
    这是数据可视化,经常涉及降维技术(见第8章)。
  • 基于以前的购买记录给客户推荐可能感兴趣的产品
    这是推荐系统,一个办法是将以前的购买记录(和客户的其他信息)输入人工神经网络(见第10章),从而输出客户最可能购买的产品。这个神经网络是在所有客户的购买记录上训练的。
  • 为游戏建造智能机器人
    这通常通过强化学习(RL,见第18章)来解决。强化学习是机器学习的一个分支,在一个给定的环境(例如游戏)中,训练代理(例如机器人)选择在一段时间内将它们的奖励最大化的行动(例如,机器人可能会在玩家每次失去一些生命值时获得奖励)。在围棋比赛中打败世界冠军的著名AlphaGo程序就是使用RL构建的。

1.4 机器学习系统的类型

现有的机器学习系统类型繁多,为便于理解,我们根据以下标准将它们进行大的分类:
·是否在人类监督下训练(有监督学习、无监督学习、半监督学习和强化学习)。
·是否可以动态地进行增量学习(在线学习和批量学习)。
·是简单地将新的数据点和已知的数据点进行匹配,还是像科学家那样,对训练数据进行模式检测然后建立一个预测模型(基于实例的学习和基于模型的学习)。

1.4.1 有监督学习和无监督学习

  1. 有监督学习
    提供给算法的包含所需解决方案的训练集称为标签

回归问题:在给定输入特征的情况下预测值(通常有多个输入特征,有时有多个输出值)

这里是一些最重要的有监督学习算法(本书中会介绍):

  • k-近邻算法
  • 线性回归
  • 逻辑回归
  • 支持向量机(SVM)
  • 决策树和随机森林
  • 神经网络
  1. 无监督学习
    无监督学习的训练数据都是未经标记的(见图1-7)。系统会在没有“老师”的情况下进行学习。无标签的训练集,用于无监督学习。
    这里有一些最重要的无监督学习算法(大部分会在第8章和第9章中介绍):

聚类算法

  • k-均值算法
  • DBSCAN
  • 分层聚类分析(HCA)

异常检测和新颖性检测

  • 单类SVM
  • 孤立森林

可视化和降维

  • 主成分分析(PCA)
  • 核主成分分析
  • 局部线性嵌入(LLE)
  • t-分布随机近邻嵌入(t-SNE)

关联规则学习

  • Apriori
  • Eclat

可视化、降维:降维的目的是在不丢失太多信息的前提下简化数据。方法之一是将多个相关特征合并为一个。
特征提取:

通常比较好的做法是,先使用降维算法减少训练数据的维度,再将其提供给另一个机器学习算法(例如有监督学习算法)。这会使它运行得更快,数据占用的磁盘空间和内存都会更小,在某些情况下,执行性能也会更高.

还有一个常见的无监督任务是关联规则学习,其目的是挖掘大量数据,发现属性之间的有趣联系。

  1. 半监督学习
    由于通常给数据做标记是非常耗时和昂贵的,你往往会有很多未标记的数据而很少有已标记的数据。有些算法可以处理部分已标记的数据。这被称为半监督学习。大多数半监督学习算法是无监督算法和有监督算法的结合。

  2. 强化学习
    它的学习系统(在其语境中称为智能体)能够观察环境,做出选择,执行动作,并获得回报(或者是以负面回报的形式获得惩罚,见图1-12)所以它必须自行学习什么是最好的策略,从而随着时间的推移获得最大的回报。策略代表智能体在特定情况下应该选择的动作。

1.4.2 批量学习和在线学习

另一个给机器学习系统分类的标准是看系统是否可以从传入的数据流中进行增量学习。

  • 批量学习
    在批量学习中,系统无法进行增量学习——即必须使用所有可用数据进行训练。这需要大量时间和计算资源,所以通常都是离线完成的。
    离线学习就是先训练系统,然后将其投入生产环境,这时学习过程停止,它只是将其所学到的应用出来。如果希望批量学习系统学习新数据(例如新型垃圾邮件),需要在完整数据集(包括新数据和旧数据)的基础上重新训练系统的新版本,然后停用旧系统,用新系统取而代之。如果系统需要应对快速变化的数据(例如,预测股票价格),那么你需要一个更具响应力的解决方案。此外,使用完整数据集训练需要耗费大量的计算资源(CPU、内存空间、磁盘空间、磁盘I/O、网络I/O等)。如果你的数据量非常大,并且每天从零开始自动执行训练系统,

  • 在线学习
    在在线学习中,你可以循序渐进地给系统提供训练数据,逐步积累学习成果。这种提供数据的方式可以是单独的,也可以采用小批量的小组数据来进行训练。每一步学习都很快速并且便宜,这样系统就可以根据飞速写入的最新数据进行学习(见图1-13)。
    对于这类系统——需要接收持续的数据流(例如股票价格),同时对数据流的变化做出快速或自主的反应,使用在线学习是一个非常好的
    方式。
    核外学习通常是离线完成的(也就是不在实时(live)系统上),因此在线学习这个名字很容易让人产生误解。我们可以将其视为
    增量学习。

如果设置的学习率很高,那么系统将会迅速适应新数据,但同时也会很快忘记旧数据(你肯定不希望垃圾邮件过滤器只对最新显示的邮件进行标记)。反过来,如果学习率很低,系统会有更高的惰性,也就是说,学习会更缓慢,同时也会对新数据中的噪声或者非典型数据点(离群值)的序列更不敏感。在线学习面临的一个重大挑战是,如果给系统输入不良数据,系统的性能将会逐渐下降。为了降低这种风险,你需要密切监控系统,一旦检测到性能下降,就及时中断学习(可能还需要恢复到之前的工作状态)。当然,同时你还需要监控输入数据,并对异常数据做出响应(例如,使用异常检测算法)

1.4.3 基于实例的学习与基于模型的学习

另一种对机器学习系统进行分类的方法是看它们如何泛化。大多数机器学习任务是要做出预测。这意味着系统需要通过给定的训练示例,
在它此前并未见过的示例上进行预测(泛化)。在训练数据上实现良好的性能指标固然重要,但是还不够充分。真正的目的是要在新的对象实例上表现出色。泛化的主要方法有两种:基于实例的学习和基于模型的学习

1.5 机器学习的主要挑战

1.6 测试与验证

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值