1. 前言
1.1 机器学习
机器学习无需明确知道输入到输出的映射,仅需收集一个巨大数据集(dataset),并对样本进行标记,机器学习算法会自动找到最佳映射参数。
任一调整参数后的程序称为模型(model)。通过操作参数而生成的输入-输出映射的集合称为模型族。 使用数据集来选择参数的元程序被称为学习算法(learning algorithm)。机器学习训练模型通常包含如下步骤:
- 随机初始化模型参数。
- 获取一些数据样本。
- 调整参数,使模型在这些样本中表现更好。
-
1.2 关键组件
1.2.1 数据
数据大多遵循独立同分布[1],每一个样本包含若干属性和一个标签。当所有样本的特征数量相同时,其特征向量是固定长度的,这个长度被称为数据的维数(dimensionality),但并不是所有的数据都是固定长度的。与传统机器学习相比,深度学习的一个主要优势是可以处理不同长度的数据。一般来说,拥有的数据越多,训练出的模型更强大。
1.2.2 目标函数
模型优劣程度的度量,大多数情况是“可优化”的,称之为目标函数(objective function)。通常希望优化它到最低点,所以这些函数被称为损失函数(loss function)。当然也可优化到最高点。 回归问题最常见的损失函数是平方误差,分类问题最常见的损失函数是正确率。通常,损失函数是根据模型参数定义的,并取决于数据集。
1.2.3 优化算法
深度学习的优化算法通常基于梯度下降(gradient descent)。 即在每个步骤中检查所有参数,看看训练集损失会朝哪个方向移动,然后在可以减少损失的方向上优化参数。
1.3 常见的机器学习问题
1.3.1 监督学习
擅长在给定输入特征的情况下预测标签:
“多少”的问题叫做回归问题。比如:这个手术需要多少小时?未来6小时该镇降雨量是多少?[2]
- “哪一个?”的问题叫做分类(classification)问题。[2:1]
- 学习预测不相互排斥的类别称为多标签分类(multi-label classification)。比如CSDN上一篇文章可能包含5-10个标签,而这些标签可能是相互关联的。
- 网络搜索的目标是在海量搜索结果中找到用户最需要的部分,需要对一组项目进行排序。该问题的一种可能解决方案:首先为集合中的每个元素分配相应的相关性分数,然后检索评级最高的元素。
推荐系统(recommender system)是向用户进行个性化推荐。系统会为用户和物品的匹配性打分,这个分数是估计的评级或购买的概率,以捕捉一个人的偏好。
1.3.2 无监督学习
不含有标签标记的机器学习问题为无监督学习(unsupervised learning):
聚类(clustering):在没有标签的情况下,将数据进行分类。
- 主成分分析(principal component analysis):从多个参数中抽取少量的参数,这些参数已经包括了其他参数可反应的大部分信息,主要目的是降维。
- 因果关系(causality)和概率图模型(probabilistic graphical models):由经验数据发现多个角度之间的联系。
- 生成对抗性网络(generative adversarial networks):提供一种合成数据的方法,潜在的统计机制是检查真实和虚假数据是否相同。
1.3.3 强化学习
监督学习和无监督学习训练时不再与环境交互,称为离线学习。强化学习使得机器能够与真实环境互动,这可能包括应用到机器人、对话系统,甚至开发视频游戏的人工智能。深度强化学习(deep reinforcement learning)将深度学习应用于强化学习,Q网络(Q-network)在雅达利游戏中仅使用视觉输入击败了人类, AlphaGo 在围棋中击败了世界冠军。
在强化学习中,agent(智能体)在一系列的时间步骤上与环境交互。 在每个时间点,agent从环境接收观察并选择一个动作,通过某种机制将其传输回环境,最后agent从环境中获得奖励来调整,此后新一轮循环开始。强化学习的目标是产生一个好的策略(policy)。 强化学习者必须决定哪些行为是值得奖励的,哪些行为是需要惩罚的。