机器学习

概论

人工智能完成日常生活中的任务(Formal tasks, Expert tasks, Mundane tasks, Human tasks)所要做的工作是:

  1. 感知环境
  2. 特征提取
  3. 机器学习
  4. 推理
  5. 采取行动

*机器学习只是人工智能的一个子集,而深度学习又是机器学习的一个子集,或者说,是机器学习中神经网络的一种延伸。

观察人工智能发展的四个阶段:

  • 初期阶段
    • 通用问题求解、机器翻译、定理证明、博弈、游戏
  • 知识时代
    • 专家系统、知识工程、知识表示、(不确定性)推理
  • 特征时代
    • 统计机器学习方法、优化技术、特征映射(浅层)、特征工程
  • 数据时代
    • 深度学习、表示学习、自动特征抽取、不同层次的抽象特征、抽象映射(深层)

在初期阶段,输入和输出之间,程序是由人来实现的,计算机只是作为一个执行者。

到了特征时代,输入输出间,特征是人为提供的,但是特征映射是由机器自动实现的。

而在数据时代,输入输出间,特征、特征分析、特征映射完全都由机器自己实现,人为介入的成分越来越少。

传统机器学习深度学习对比:

人工智能导论复习整理(二)

传统的机器学习中,特征提取和分类是分成两个步骤分别实现的。

人工智能导论复习整理(二)

而在深度学习下,原有的两部分合二为一。对深度神经网络给出输出,可以直接得到结果。

深度神经网络的性能

人工智能导论复习整理(二)

研究表明,随着数据量的增大,深度神经网络的性能会越来越好。在数据规模较小的时候,传统算法(如决策树等)和神经网络的性能相差无几。数据规模变大后,深度神经网络的性能要明显优于传统算法。对于神经网络而言,其规模越大,对于大数据的处理性能越好。

分类

机器学习很有多种分类标准,最常见的一种,将机器学习分为三类:

  1. 有监督学习(Supervised Learning):给定带标签的数据,让机器学习。
  2. 无监督学习(Unsupervised Learning):给定无标签的数据,让机器学习数据的内在特征。
  3. 强化学习(Reinforcement Learning):使得机器选择最大化收益。

对上述三类学习,Yann Lecun提出了两版“学习蛋糕”模型。第一版中将“纯”强化学习比作蛋糕上点缀的樱桃,监督学习比作蛋糕外的一层奶油,无监督学习比作蛋糕中间的糕体。第二版中则将无监督学习替换成了自监督学习

自监督学习:通过输入的一部分来预测剩下(输入以外)的部分

  • 从过去预测将来
  • 从最近的过去预测将来
  • 从现在预测(倒推)过去
  • 从底部预测顶部
  • 从可见的部分预测不可见的部分

数据驱动的机器学习方法:有监督学习的过程

  1. 收集数据集和标签
  2. 设计并且训练模型
  3. 用测试集评估模型

数据分类:结构化数据 vs. 非结构化数据

  • 结构化数据:如房价预测
  • 非结构化数据:图像、音频等

回归(Regression) vs. 分类(Classification)的区分方法:

  • 回归:输出是连续的(如房屋价格预测)
  • 分类:输出是离散的(如图像分类)

有监督学习的基本框架:
人工智能导论复习整理(二)

这样一个模型实质是为了建立一个输入输出之间的关系,可以将其描述为y=f(x)y=f(x),其中yy是输出,ff是预测函数,xx是输入。

这样,训练(或学习)就是指:给定带标签的训练集{(x1,y1),,(xN,yN)}\{(x_1,y_1),\cdots,(x_N,y_N)\},实例化一个预测函数ff测试(或推理)就是指:将ff作用于一个新的测试样例xx上,并得到输出的预测值y=f(x)y=f(x)

那么,训练数据和测试数据之间又有什么联系呢?- 将问题形式化

给定训练数据{(xi,yi),i=1,,n}i.i.d.\{(x_i,y_i),i=1,\cdots,n\}\quad \mathrm{i.i.d.}来自同一分布DD

找到y=f(x)Hy=f(x)\in \mathscr{H}

s.t.f\mathrm{s.t.}\quad f能在测试集(i.i.d.\mathrm{i.i.d.}来自同一分布DD)上表现良好

衡量ff是否在测试集上表现良好,引入期望损失(expected loss),希望loss值小。因此通过损失函数(loss function):
L(f)=E(x,y)D[l(f,x,y)] L(f)=\mathbb{E}_{(x,y)\sim D}[l(f,x,y)]
来衡量模型的数据处理能力。

损失函数实际上有多种形式,很难直接优化。

实际机器学习的过程中,损失函数一般取一个经验值,训练的目标是最小化损失函数的取值。

图像分类实例

给定一张彩色图像,假设其表示成矩阵形式为32×32×332\times 32\times 3,总共有30723072个像素点。输出为一个标签,代表图片的类别(一共有十个标签,即十个类别)。

使用线性分类器来实现分类,其形式为:
f(x,W)=Wx(+b) f(x,W)=Wx(+b)
其中xx是大小为3072×13072\times1的列向量,输出是大小为10×110\times1的列向量,代表每个类别的得分,那么WW是大小为3072×103072\times10的参数,bb是大小为10×110\times1的参数。

参数W,bW,b是机器通过训练样本学习得到的。

从三个视角来理解线性分类器:

  1. 代数视角:即f(x,W)=Wx(+b)f(x,W)=Wx(+b)这样的代数表示。
  2. 可视化视角:即机器针对每一个类别,都训练出了一个模板。
  3. 几何视角:即平面上的分割线,每一根线都将两类事物分隔开,线的两侧是两种类别。

注意,训练得到的WW不一定好,需要损失函数来衡量。

损失函数(又称代价函数、目标函数)

损失函数用来衡量模型的好坏。其值越高,WW越差;其值越低,WW越好。

两种常用的损失函数为:

  • Hinge loss(Multiclass SVM Loss)
  • Cross-entropy loss

Hinge loss(Multiclass SVM Loss)

设定一个delta作为安全距离,如果正确标签的得分比其他得分高出的值大于delta,则Loss值为0,否则将多出来的部分记为Loss。即
L=1Ni=1Njyimax(0,f(xi;W)jf(xi;W)yi+delta) L=\dfrac{1}{N}\sum_{i=1}^{N}\sum_{j\neq y_i}\max(0,f(x_i;W)_j-f(x_i;W)_{y_i}+\text{delta})
注意,使得L=0L=0WW不唯一,比如2W2W也满足条件。要选择合适的WW,此时需要用正则化

数据损失:使得模型预测尽可能匹配训练数据。这是损失函数的作用。

正则化:避免模型在训练数据上做得太好,即发生过拟合;提高泛化能力。

正则化后得到的损失函数为:
L(W)=1Ni=1NLi(f(xi,W),yi)+λR(W) L(W)=\dfrac{1}{N}\sum_{i=1}^NL_i(f(x_i,W),y_i)+\lambda R(W)
λ\lambda是一个超参数,需要人为给定,表示正则化强度。

正则化的作用:

  1. 计算参数
  2. 使得模型更简单
  3. 使得模型更平滑,以优化

正则化函数的部分例子:

  1. L2正则化:R(W)=klWk,l2R(W)=\sum_k\sum_lW_{k,l}^2
  2. L1正则化:R(W)=klWk,lR(W)=\sum_k\sum_l|W_{k,l}|
  3. (L1+L2):R(W)=klβWk,l2+Wk,lR(W)=\sum_k\sum_l\beta W_{k,l}^2+|W_{k,l}|

Cross-entropy loss: Softmax Classifier

模型训练完后会有一个得分s=f(xi;W)s=f(x_i;W)

使用Softmax函数:
P(Y=kX=xi)=eskjesj P(Y=k|X=x_i)=\dfrac{e^{s_k}}{\sum_je^{s_j}}
将得分转变成概率。

最后由概率计算得到loss值:
Li=logP(Y=yiX=xi) L_i=-\log P(Y=y_i|X=x_i)

总结

机器学习的步骤:

  1. 采集数据且特征提取
  2. 建立模型
  3. 优化(最小化loss值)

特征提取的两种方式:

  1. 手动设置特征向量(x,y)(x,y)
    tmax函数:
    P(Y=kX=xi)=eskjesj P(Y=k|X=x_i)=\dfrac{e^{s_k}}{\sum_je^{s_j}}
    将得分转变成概率。

最后由概率计算得到loss值:
Li=logP(Y=yiX=xi) L_i=-\log P(Y=y_i|X=x_i)

总结

机器学习的步骤:

  1. 采集数据且特征提取
  2. 建立模型
  3. 优化(最小化loss值)

特征提取的两种方式:

  1. 手动设置特征向量(x,y)(x,y)
  2. 通过原始数据中直接学出特征(表示学习)

相关文章: