1. 前言
机器学习从经验中学习。 通常观测数据或与环境交互积累经验,逐步提高性能。
1.1. 日常生活中的机器学习
机器学习任务:
- 收集样本数据集
- 由算法参数决定输出
- 通过对数据集中样本的学习决定最佳参数集
- 参数通过某种性能度量来获取完成任务的最佳性能
模型:任一调整参数的程序。
模型族:通过操作参数而生成的所有不同程序(输入-输出映射)的集合。
学习算法:使用数据集来选择参数的元程序。
机器学习中学习是一个模型的训练过程。 通过这个过程发现正确的参数集,使模型强制执行所需的行为。( 用数据训练模型)
训练过程:
- 从一个随机初始化参数的模型开始,这个模型基本毫不“智能”。
- 获取一些数据样本
- 调整参数,使模型在这些样本中表现得更好。
- 重复第2步和第3步,直到模型在任务中的表现结果令人满意。
1.2. 关键组件
机器学习组件:
- 学习的数据
- 如何转换数据的模型
- 一个目标函数,用来量化模型的有效性
- 调整模型参数以优化目标函数的算法
1.2.1. 数据
- 数据集由样本组成
- 大多情况下,数据遵循独立同分布
- 样本也叫数据点或数据实例
- 样本具有特征或协变量属性
- 在监督问题中,数据样本拥有标签或目标
- 一般来说,数据越多工作越容易
- “输入的是垃圾,输出的也是垃圾。”(“Garbage in, garbage out.”)
- 糟糕的预测性能甚至会加倍放大事态的严重性。
- 不均衡的数据集,使得模型泛化能力很差
- 当数据不具有充分代表性,甚至包含了一些社会偏见时,模型就很有可能失败
1.2.2. 模型
- 大多数机器学习会涉及到数据的转换
- 深度学习:模型由神经网络错综复杂的交织在一起,包含层层数据转换
1.2.3. 目标函数
- 目标函数/损失函数:在机器学习中定义模型的优劣程度的度量,这个度量在大多数情况是“可优化”的
- 预测数值最常见的损失函数是平方误差(预测值与实际值之差的平方)
- 分类问题最常见的目标函数是最小化错误率(预测与实际情况不符的样本比例)
- 在一个数据集上,我们通过最小化总损失来学习模型参数的最佳值
- 通常将可用数据集分成两部分:训练数据集用于拟合模型参数,测试数据集用于评估拟合的模型
- 过拟合:在训练数据集上表现良好,但无法推广到测试数据集上
1.2.4. 优化算法
深度学习中,大多流行的优化算法通常基于一种基本方法–梯度下降。
在每个步骤中,梯度下降法都会检查每个参数,当对该参数进行少量变动时,训练集损失会朝哪个方向移动。 然后,它在可以减少损失的方向上优化参数。
1.3. 各种机器学习问题
1.3.1. 监督学习
- 监督学习在“给定输入特征”的情况下预测标签
- 样本为“特征-标签”对
- 监督学习的目标:能够将任何输入特征映射到标签,即预测
1.3.1.1. 回归
- 回归问题:标签去任意数值
- 目标是生成一个模型,使得模型预测非常接近实际标签值
1.3.1.2. 分类
- 分类问题:预测样本属于哪个类别
- 将“预期风险”作为损失函数
- 层次分类:宁愿错误地分入一个相关的类别,也不愿错误地分入一个遥远的类别
1.3.1.3. 标记问题
- 学习预测不相互排斥的类别的问题称为多标签分类
1.3.1.4. 搜索
- 搜索:在海量搜索结果中找到用户最需要的那部分
- 解决方案:首先为集合中的每个元素分配相应的相关性分数,然后检索评级最高的元素
1.3.1.5. 推荐系统
目标是向给特定用户进行“个性化”推荐
1.3.1.6. 序列学习
序列学习需要摄取输入序列或预测输出序列,或两者兼而有之。 具体来说,输入和输出都是可变长度的序列,例如机器翻译和从语音中转录文本。 虽然不可能考虑所有类型的序列转换,但以下特殊情况值得一提
1.3.2. 无监督学习
无监督学习:数据中不含有“目标”的机器学习问题
- 聚类
- 主成分分析
- 因果关系和概率图模型
- 生成对抗网络
1.3.3. 与环境互动
离线学习:
- 学习都是在算法与环境断开后进行的
- 优点:可以孤立地进行模式识别,而不必分心于其他问题
- 缺点:解决的问题相当有限
与真实环境互动”实际上会影响环境
当训练和测试数据不同时数据分布偏移
1.3.4. 强化学习
强化学习:
- agent 在一系列的时间步骤上与环境交互
- 在每个特定时间点,agent 从环境接收一些观察
- 选择一个动作
- 通过某种机制将其传输回环境
- agent 从环境中获得 奖励
- 新一轮循环开始,agent 接收后续观察,并选择后续操作,依此类推
强化学习的目标是产生一个好的策略
强化学习 agent 的选择的“动作”受策略控制,即一个从环境观察映射到行动的功能
当环境可被完全观察到时,称为马尔可夫决策过程
当状态不依赖于之前的操作时,为上下文赌博机
当没有状态,只有一组最初未知回报的可用动作时,经典的多臂赌博机
1.4. 起源
核心是当今大多数网络中都可以找到的几个关键原则:
- 线性和非线性处理单元的交替,通常称为层
- 使用链式规则(也称为反向传播)一次性调整网络中的全部参数
1.5. 深度学习之路
- 随着互联网的公司的出现,为数亿在线用户提供服务,大规模数据集变得触手可及
- 廉价又高质量的传感器、廉价的数据存储(克里德定律)以及廉价计算(摩尔定律)的普及,特别是GPU的普及,使大规模算力唾手可得
过去十年中取得巨大进步的想法
- 新的容量控制方法,如dropout有助于减轻过拟合的危险
- 注意力机制:在不增加可学习参数的情况下增加系统的记忆和复杂性
- 多阶段设计
- 生成对抗网络
- 构建并行和分布式训练算法的能力有了显著提高
- 并行计算的能力也对强化学习的进步做出了相当关键的贡献
- 深度学习框架在传播思想方面发挥了至关重要的作用
1.6. 成功案例
- 智能助理
- 识别语音
- 物体识别
- 游戏
- 自动驾驶汽车和卡车
1.7. 特点
- 机器学习可以使用数据来学习输入和输出之间的转换
- 深度学习是“深度”的,模型学习许多转换的“层”,每一层提供一个层次的表示。由于表示学习的目的是寻找表示本身,因此深度学习可以称为“多级表示学习”
- 当深度学习开始时,这些特征抽取器被自动调整的滤波器所取代,产生了更高的精确度
- 深度学习的一个关键优势是它不仅取代了传统学习管道末端的浅层模型,而且还取代了劳动密集型的特征工程过程,为解决各种问题提供了一套统一的工具
1.8. 小结
机器学习研究计算机系统如何利用经验(通常是数据)来提高特定任务的性能。它结合了统计学、数据挖掘和优化的思想。通常,它被用作实现人工智能解决方案的一种手段。
表示学习作为机器学习的一类,其研究的重点是如何自动找到合适的数据表示方式。深度学习是通过学习多层次的转换来进行的多层次的表示学习。
深度学习不仅取代了传统机器学习的浅层模型,而且取代了劳动密集型的特征工程。
最近在深度学习方面取得的许多进展,大都是由廉价传感器和互联网规模应用所产生的大量数据,以及(通过GPU)算力的突破来触发的。
整个系统优化是获得高性能的关键环节。有效的深度学习框架的开源使得这一点的设计和实现变得非常容易。