机器学习
概论
人工智能完成日常生活中的任务(Formal tasks, Expert tasks, Mundane tasks, Human tasks)所要做的工作是:
- 感知环境
- 特征提取
- 机器学习
- 推理
- 采取行动
*机器学习只是人工智能的一个子集,而深度学习又是机器学习的一个子集,或者说,是机器学习中神经网络的一种延伸。
观察人工智能发展的四个阶段:
- 初期阶段
- 通用问题求解、机器翻译、定理证明、博弈、游戏
- 知识时代
- 专家系统、知识工程、知识表示、(不确定性)推理
- 特征时代
- 统计机器学习方法、优化技术、特征映射(浅层)、特征工程
- 数据时代
- 深度学习、表示学习、自动特征抽取、不同层次的抽象特征、抽象映射(深层)
在初期阶段,输入和输出之间,程序是由人来实现的,计算机只是作为一个执行者。
到了特征时代,输入输出间,特征是人为提供的,但是特征映射是由机器自动实现的。
而在数据时代,输入输出间,特征、特征分析、特征映射完全都由机器自己实现,人为介入的成分越来越少。
传统机器学习和深度学习对比:
传统的机器学习中,特征提取和分类是分成两个步骤分别实现的。
而在深度学习下,原有的两部分合二为一。对深度神经网络给出输出,可以直接得到结果。
深度神经网络的性能:
研究表明,随着数据量的增大,深度神经网络的性能会越来越好。在数据规模较小的时候,传统算法(如决策树等)和神经网络的性能相差无几。数据规模变大后,深度神经网络的性能要明显优于传统算法。对于神经网络而言,其规模越大,对于大数据的处理性能越好。
分类
机器学习很有多种分类标准,最常见的一种,将机器学习分为三类:
- 有监督学习(Supervised Learning):给定带标签的数据,让机器学习。
- 无监督学习(Unsupervised Learning):给定无标签的数据,让机器学习数据的内在特征。
- 强化学习(Reinforcement Learning):使得机器选择最大化收益。
对上述三类学习,Yann Lecun提出了两版“学习蛋糕”模型。第一版中将“纯”强化学习比作蛋糕上点缀的樱桃,监督学习比作蛋糕外的一层奶油,无监督学习比作蛋糕中间的糕体。第二版中则将无监督学习替换成了自监督学习。
自监督学习:通过输入的一部分来预测剩下(输入以外)的部分
- 从过去预测将来
- 从最近的过去预测将来
- 从现在预测(倒推)过去
- 从底部预测顶部
- 从可见的部分预测不可见的部分
数据驱动的机器学习方法:有监督学习的过程
- 收集数据集和标签
- 设计并且训练模型
- 用测试集评估模型
数据分类:结构化数据 vs. 非结构化数据
- 结构化数据:如房价预测
- 非结构化数据:图像、音频等
回归(Regression) vs. 分类(Classification)的区分方法:
- 回归:输出是连续的(如房屋价格预测)
- 分类:输出是离散的(如图像分类)
有监督学习的基本框架:
这样一个模型实质是为了建立一个输入输出之间的关系,可以将其描述为,其中是输出,是预测函数,是输入。
这样,训练(或学习)就是指:给定带标签的训练集,实例化一个预测函数。测试(或推理)就是指:将作用于一个新的测试样例上,并得到输出的预测值。
那么,训练数据和测试数据之间又有什么联系呢?- 将问题形式化:
给定训练数据来自同一分布
找到
能在测试集(来自同一分布)上表现良好
衡量是否在测试集上表现良好,引入期望损失(expected loss),希望loss值小。因此通过损失函数(loss function):
来衡量模型的数据处理能力。
损失函数实际上有多种形式,很难直接优化。
实际机器学习的过程中,损失函数一般取一个经验值,训练的目标是最小化损失函数的取值。
图像分类实例
给定一张彩色图像,假设其表示成矩阵形式为,总共有个像素点。输出为一个标签,代表图片的类别(一共有十个标签,即十个类别)。
使用线性分类器来实现分类,其形式为:
其中是大小为的列向量,输出是大小为的列向量,代表每个类别的得分,那么是大小为的参数,是大小为的参数。
参数是机器通过训练样本学习得到的。
从三个视角来理解线性分类器:
- 代数视角:即这样的代数表示。
- 可视化视角:即机器针对每一个类别,都训练出了一个模板。
- 几何视角:即平面上的分割线,每一根线都将两类事物分隔开,线的两侧是两种类别。
注意,训练得到的不一定好,需要损失函数来衡量。
损失函数(又称代价函数、目标函数)
损失函数用来衡量模型的好坏。其值越高,越差;其值越低,越好。
两种常用的损失函数为:
- Hinge loss(Multiclass SVM Loss)
- Cross-entropy loss
Hinge loss(Multiclass SVM Loss)
设定一个delta作为安全距离,如果正确标签的得分比其他得分高出的值大于delta,则Loss值为0,否则将多出来的部分记为Loss。即
注意,使得的不唯一,比如也满足条件。要选择合适的,此时需要用正则化。
数据损失:使得模型预测尽可能匹配训练数据。这是损失函数的作用。
正则化:避免模型在训练数据上做得太好,即发生过拟合;提高泛化能力。
正则化后得到的损失函数为:
是一个超参数,需要人为给定,表示正则化强度。
正则化的作用:
- 计算参数
- 使得模型更简单
- 使得模型更平滑,以优化
正则化函数的部分例子:
- L2正则化:
- L1正则化:
- (L1+L2):
Cross-entropy loss: Softmax Classifier
模型训练完后会有一个得分。
使用Softmax函数:
将得分转变成概率。
最后由概率计算得到loss值:
总结
机器学习的步骤:
- 采集数据且特征提取
- 建立模型
- 优化(最小化loss值)
特征提取的两种方式:
- 手动设置特征向量
tmax函数:
将得分转变成概率。
最后由概率计算得到loss值:
总结
机器学习的步骤:
- 采集数据且特征提取
- 建立模型
- 优化(最小化loss值)
特征提取的两种方式:
- 手动设置特征向量
- 通过原始数据中直接学出特征(表示学习)