机器学习笔记之前馈神经网络(一)基本介绍

机器学习笔记之前馈神经网络——基本介绍

  • 引言
    • 从机器学习到深度学习
      • 频率学派思想
      • 贝叶斯学派思想
    • 深度学习的发展过程

引言

从本节开始,将介绍前馈神经网络

从机器学习到深度学习

在机器学习笔记开始——机器学习笔记——极大似然估计与最大后验概率估计中,介绍了从频率学派贝叶斯学派

频率学派思想

频率学派逐步发展成统计机器学习(Statistical Machine Learning)。频率学派中最显著的特点是:将概率分布 P ( X ; θ ) \mathcal P(\mathcal X;\theta) P(X;θ)中的模型参数 θ \theta θ看作未知常量,从而通过学习得到近似该常量的结果。例如极大似然估计(Maximum Likelihood Estimation,MLE):
θ M L E = arg ⁡ max ⁡ θ P ( X ; θ ) \theta_{MLE} = \mathop{\arg\max}\limits_{\theta}\mathcal P(\mathcal X;\theta) θMLE=θargmaxP(X;θ)
观察使用频率学派思想设计的模型:

  • 线性回归(Linear Regression),它的模型表示如下:
    这里为方便表达,将偏置项 b b b合并在 W T x \mathcal W^Tx WTx中,后续相关模型同理。
    f ( W ) = W T x f(\mathcal W) = \mathcal W^Tx f(W)=WTx
    其对应策略(损失函数)是最小二乘估计。其主要思想是:对样本集合中所有样本的差距进行求和,当求和结果数值最小时,模型 f ( W ) f(\mathcal W) f(W)对数据集合中样本的拟合效果最优
    这里对于样本的构建依然是 Data :  { ( x ( i ) , y ( i ) ) } i = 1 N \text{Data : } \{(x^{(i)},y^{(i)})\}_{i=1}^N Data : {(x(i),y(i))}i=1N,其中 x ( i ) x^{(i)} x(i)表示样本信息(特征); y ( i ) y^{(i)} y(i)表示样本 x ( i ) x^{(i)} x(i)对应的标签结果。
    L ( W ) = ∑ i = 1 N ∣ ∣ W T x ( i ) − y ( i ) ∣ ∣ 2 \mathcal L(\mathcal W) = \sum_{i=1}^N ||\mathcal W^Tx^{(i)} - y^{(i)}||^2 L(W)=i=1N∣∣WTx(i)y(i)2
  • 线性分类中的感知机算法(Perceptron),它的模型表示如下:
    f ( W ) = Sign  ( W T x ) f(\mathcal W) = \text{Sign }(\mathcal W^Tx) f(W)=Sign (WTx)
    其中 Sign \text{Sign} Sign函数表示符号函数。对应策略错误驱动。其具体思想是:通过修改模型参数,使得被错误分类样本的数量达到最小
    L ( W ) = ∑ x ( i ) , y ( i ) ∈  Data − y ( i ) [ W T x ( i ) ] \mathcal L(\mathcal W) = \sum_{x^{(i)},y^{(i)} \in \text{ Data}} -y^{(i)} \left[\mathcal W^Tx{(i)}\right] L(W)=x(i),y(i) Datay(i)[WTx(i)]
  • 同理,与此相关的还有线性判别分析(Linear Discriminant Analysis,LDA),支持向量机(Support Vector Machine,SVM),可以观察到,频率学派的特点在于:模型本身是固定/已知的,通过一系列思想去构建策略,从而达到学习模型参数的目的。

关于统计机器学习,通常使用的几种思想:

  • 正则化:针对模型参数学习过程中存在的过拟合现象,关于模型参数优化的一种方式。具体做法是在 原有策略/损失函数 中添加与模型参数相关的惩罚项。例如基于最小二乘估计的岭回归优化
    L ( W ) = arg ⁡ min ⁡ W [ ∑ i = 1 N ∣ ∣ W T x ( i ) − y ( i ) ∣ ∣ 2 + λ ∣ ∣ W ∣ ∣ 2 2 ] ∣ ∣ W ∣ ∣ 2 2 = W T W \mathcal L(\mathcal W) = \mathop{\arg\min}\limits_{\mathcal W} \left[\sum_{i=1}^N ||\mathcal W^Tx^{(i)} - y^{(i)}||^2 + \lambda||\mathcal W||_2^2\right] \quad ||\mathcal W||_2^2 = \mathcal W^T\mathcal W L(W)=Wargmin[i=1N∣∣WTx(i)y(i)2+λ∣∣W22]∣∣W22=WTW

  • 核技巧(Kernel Trick),核技巧本质是针对线性不可分问题通过扩大样本空间维度,从而实现样本在高维空间中线性可分
    x ( i ) ∈ R p ⇒ ϕ ( x ( i ) ) ∈ R q q ≫ p x^{(i)} \in \mathbb R^p \Rightarrow \phi \left(x^{(i)}\right) \in \mathbb R^q \quad q \gg p x(i)Rpϕ(x(i))Rqqp
    核技巧最著名的就是关于核函数的支持向量机方法(Kernel SVM)。其核心思想是:通过核函数处理对偶问题中的内积现象,从而简化大量运算
    关于SVM的对偶问题表示如下:
    详细推导过程详见:支持向量机——引出对偶问题
    { max ⁡ λ − 1 2 [ ∑ i = 1 N ∑ j = 1 N λ ( i ) λ ( j ) y ( i ) y ( j ) ( x ( i ) ) T x ( j ) ] + ∑ i = 1 N λ ( i ) { s . t . λ ( i ) ≥ 0 ∑ i = 1 N λ ( i ) y ( i ) = 0 \begin{cases}\mathop{\max}\limits_{\lambda} -\frac{1}{2} \left[\sum_{i=1}^N\sum_{j=1}^N \lambda^{(i)}\lambda^{(j)}y^{(i)}y^{(j)}\left(x^{(i)}\right)^{T}x^{(j)}\right] + \sum_{i=1}^N\lambda^{(i)} \\ \begin{cases} s.t. \quad \lambda^{(i)} \geq 0 \\ \sum_{i=1}^N \lambda^{(i)}y^{(i)} = 0 \end{cases} \end{cases} λmax21[i=1Nj=1Nλ(i)λ(j)y(i)y(j)(x(i))Tx(j)]+i=1Nλ(i){s.t.λ(i)0i=1Nλ(i)y(i)=0
    其中 λ , y \lambda,y λ,y均是标量,只有 x ∈ R p x \in \mathbb R^p xRp。假设此时出现了线性不可分问题,需要对样本 x ( i ) x^{(i)} x(i)进行高维转换,有:
    { max ⁡ λ − 1 2 [ ∑ i = 1 N ∑ j = 1 N λ ( i ) λ ( j ) y ( i ) y ( j ) [ ϕ ( x ( i ) ) ] T ϕ ( x ( j ) ) ] + ∑ i = 1 N λ ( i ) { s . t . λ ( i ) ≥ 0 ∑ i = 1 N λ ( i ) y ( i ) = 0 \begin{cases}\mathop{\max}\limits_{\lambda} -\frac{1}{2} \left[\sum_{i=1}^N\sum_{j=1}^N \lambda^{(i)}\lambda^{(j)}y^{(i)}y^{(j)}\left[\phi(x^{(i)})\right]^{T}\phi(x^{(j)})\right] + \sum_{i=1}^N\lambda^{(i)} \\ \begin{cases} s.t. \quad \lambda^{(i)} \geq 0 \\ \sum_{i=1}^N \lambda^{(i)}y^{(i)} = 0 \end{cases} \end{cases} λmax21[i=1Nj=1Nλ(i)λ(j)y(i)y(j)[ϕ(x(i))]Tϕ(x(j))]+i=1Nλ(i){s.t.λ(i)0i=1Nλ(i)y(i)=0
    新的问题是:通过高维转换得到的 ϕ ( x ( i ) ) \phi(x^{(i)}) ϕ(x(i))的维数可能远远超过了 x ( i ) x^{(i)} x(i)自身的维数。因此 x ( i ) ⇒ ϕ ( x ( i ) ) x^{(i)} \Rightarrow \phi(x^{(i)}) x(i)ϕ(x(i))本身的计算量极高。再加上计算内积:
    此时 ϕ ( x ( i ) ) \phi(x^{(i)}) ϕ(x(i))自身就是一个高维向量, ϕ k ( x ( i ) ) , ϕ j ( x ( i ) ) \phi_k(x^{(i)}),\phi_j(x^{(i)}) ϕk(x(i)),ϕj(x(i))分别表示该向量第 k k k维和第 j j j维的特征信息。
    [ ϕ ( x ( i ) ) ] T ϕ ( x ( i ) ) = ∑ k = 1 q ∑ j = 1 q ϕ k ( x ( i ) ) ⋅ ϕ j ( x ( i ) ) \left[\phi(x^{(i)})\right]^T\phi(x^{(i)}) = \sum_{k=1}^q \sum_{j=1}^q\phi_k(x^{(i)}) \cdot \phi_j(x^{(i)}) [ϕ(x(i))]Tϕ(x(i))=k=1qj=1qϕk(x(i))ϕj(x(i))
    它的计算量同样是无法想象的。但由于 [ ϕ ( x ( i ) ) ] T ϕ ( x ( i ) ) \left[\phi(x^{(i)})\right]^T\phi(x^{(i)}) [ϕ(x(i))]Tϕ(x(i))表示一个实数,我们如果可以通过核函数(Kernal Function)对 [ ϕ ( x ( i ) ) ] T ϕ ( x ( i ) ) \left[\phi(x^{(i)})\right]^T\phi(x^{(i)}) [ϕ(x(i))]Tϕ(x(i))进行表示,那么可以直接计算结果,从而省掉大量的计算过程。在之前的笔记贝叶斯线性回归一节中,同样使用核技巧的思想,通过提升特征维数,使用线性回归方法处理非线性任务。

  • 集成化:也就是集成学习(Ensemble Learning)。通过训练若干个弱学习器(Weak Learner),通过一些结合策略,形成一个强学习器(Strong Learner),以达到提高学习性能的目的。
    先挖一个坑,后续再来填~
    集成学习的构建方法可分为两类

    • 平行方法。其特点是各学习器之间相互独立,各学习器可以并行生成,学习器之间不存在强依赖关系。代表方法有Bagging以及随机森林(Random Forest)系列算法。
    • 顺序化方法。相比于平行方法,顺序化方法的特点是各学习器之间存在强依赖关系。代表方法有Boosting系列算法,如AdaBoost以及GBDT等。
  • 层次化:这里的层次化主要指的是神经网络(Neural Network)。这里的层次从宏观上可以指 某个子模型的输出作为下一个子模型的输入,从而表现出层次化的效果
    神经网络主要包含以下几种类型:
    不全,只是示例。并且相关的变种模型并不包含在内。如 LSTM,GRU \text{LSTM,GRU} LSTM,GRU等。
    这些神经网络也被称作‘深度神经网络’ (Deep Neural Network,DNN) \text{(Deep Neural Network,DNN)} (Deep Neural Network,DNN)。这里的 Deep \text{Deep} Deep是指的是神经网络的层次。

    • 多层感知机(Multilayer Perceptron,MLP)
    • 自编码器(AutoEncoder,AE)
    • 卷积神经网络(Convolutional Neural Network, CNN)
    • 递归神经网络(Recurrent Neural Network, RNN)

贝叶斯学派思想

贝叶斯学派逐步发展为概率图模型(Probabilistic Graphical Model,PGM),从表示形式上划分,主要分为三个部分

  • 贝叶斯网络(Bayessian Network):在之前的笔记中介绍了很多基于贝叶斯网络的概率图模型。如:
    • 高斯混合模型(Gaussian Mixtrue Model,GMM)
    • 动态模型(Dynamic Model)。如隐马尔可夫模型、卡尔曼滤波、粒子滤波。
    • 朴素贝叶斯分类器(Naive Bayes Classifier)
  • 马尔可夫随机场(Markov Random Field):介绍的无向图模型如:
    • 受限玻尔兹曼机(Restricted Boltzmann Machine,RBM)
    • 玻尔兹曼机(Boltzmann Machine)
  • 基于有向图无向图的混合模型(Mixed Network)。如:
    • 条件随机场(Condition Random Field,CRF)

那么基于上述三种分类对应的深度概率图模型,有:
这三类模型也称为‘深度生成模型’。

  • 深度有向图模型(Deep Directed Network),已经介绍的有Sigmoid信念网络(Sigmoid Belief Network,SBN)
    其他具有代表性的模型有:变分自编码器(Variational AutoEncoder,VAE),生成对抗网络(Generative Adversarial Networks, GAN)
  • 深度无向图模型(Deep Undirected Network),具有代表性示例有[深度玻尔兹曼机(Deep Boltzmann Machine,DBM)]
    将坑挖好,后续介绍~
  • 深度有向、无向混合模型,具有代表性的有[深度信念网络(Deep Belief Network,DBN)]
    将坑挖好,后续来回填~

深度学习(Deep Learning)从狭义角度具体指深度神经网络(DNN)与深度生成模型(Deep Generative Model)两个部分。

深度学习的发展过程

可以看出,无论是判别模型还是生成模型,深度学习都是从机器学习演化过来的。

  • 感知机算法(Perceptron)是1957年提出的一种人工神经网络,是用于线性分类(硬分类)的一种算法。

  • 在1969年,感知机算法的发展受到限制。原因在于:感知机算法解决不了“非线性问题”。如简单的异或问题。没有办法使用模型对其进行正确划分。
    从现在视角,这个问题是可解的,如核技巧。但在当时感知机算法被没落下去。

  • 在1981年,多层感知机(前馈神经网络) 被提出,并且能够解决非线性问题

  • 在1986年,反向传播算法(Backward Propagation,BP)与多层感知机相结合进行使用,从而对模型参数进行近似求解。

  • 在1989年,通用逼近定理(Universal Approximation Theorem)被提出。其主要思想是:大于等于一层隐藏层的神经网络可以逼近任意连续函数
    也就是之前提到的‘函数逼近定理’。
    同样有人提出,既然一层神经网络可以逼近任意连续函数,为什么还要深度学习
    并且在当时,如果神经网络层数过多,反向传播算法传递的梯度会逐渐减小。也就是 梯度消失现象
    这实际上是前馈神经网络中激活函数的锅,如 Sigmoid \text{Sigmoid} Sigmoid函数,在梯度更新的过程中,如果数值被 Sigmoid \text{Sigmoid} Sigmoid函数映射到‘饱和区’,梯度结果自然是很小的。

  • 在随后的时间,深度学习处于没落状态,在1993-1995年,支持向量机 + 核技巧的出现,以及集成学习方法 AdaBoost \text{AdaBoost} AdaBoost随机森林等相继发展。
    但这并没有影响深度学习理论的完善。1989年,提出了卷积神经网络;在1990年提出了第一个全连接的循环神经网络(Recurrent Neural Network,RNN);后续针对循环神经网络的长期依赖问题(长序列进行处理时,出现梯度消失现象),于1997年提出了长短期记忆网络( Long-Short Term Memory,LSTM \text{Long-Short Term Memory,LSTM} Long-Short Term Memory,LSTM)

  • 直到2006年,杰弗里·辛顿(Geoffrey Hinton)正式提出深度学习的概念,从而基于受限玻尔兹曼机提出了深度信念网络(Deep Belief Network,DBN),并在同年提出深度自编码器

  • 后续,深度学习在各领域持续发展,如2011年,将深度学习用在语音识别领域;2012年用于图像识别领域,并创建了 ImageNet \text{ImageNet} ImageNet比赛;2016将深度学习应用在围棋领域—— AlphaGo \text{AlphaGo} AlphaGo

  • 在近10年,同样产生了经典模型。如变分自编码器(2013);生成式对抗网络(2014);基于 LSTM \text{LSTM} LSTM的改进——门控循环单元(Gated Recurrent Unit,GRU);图神经网络(2018)等。

直到现在,针对已有数据构建神经网络模型,依然逃不开层与层之间的激活函数反向传播算法。因而理论部分并没有过高的突破。但也不是没有,如生成对抗网络损失函数的构建。但之所以深度学习能够爆火,可能更多的是面对实际问题产生的原因:

  • 数据量逐渐增大;
  • 并行计算发展;
  • 硬件(如 GPU \text{GPU} GPU)的发展;
  • 最重要的,自然是模型学习效果更优。

相关参考:
集成学习概念简介
杰弗里·辛顿——百度百科
从机器学习到深度学习
从感知机到深度学习

你可能感兴趣的:(深度学习,机器学习,神经网络,人工智能,前馈神经网络,深度学习发展)