初识Deep Learning(深度学习) I

背景

深度学习的概念由Hinton等人于2006年提出,对传统的人工神经网络算法进行了改进,通过模仿人的大脑处理信号时的多层抽象机制来完成对数据的识别。

深度学习中的“deep”,指的是神经网络多层结构

在传统的模式识别应用中,基本处理流程是先对数据进行预处理,之后在预处理后的数据上进行特征提取(Feature Extraction),然后利用这些特征,采用各种算法如SVM,CRF等训练出模型,并将测试数据的特征作为模型的输入,输入分类或标注的结果。在这个流程中,特征提取是至关重要的步骤。特征提取的好坏直接影响到模型分类的性能。而在实际应用中,设计合适的特征是一项充满挑战的工作,以图像为例,目前常用的特征还是少数的几种,如SIFT、HOG等。而深度学习方法可以首先从原始数据中无监督地学习特征,将学习到的特征作为之后各层的输入,省去了人工设计特征的步骤

参数学习策略

首先,逐层训练模型参数,上一层的输出作为本层的输入,经过本层的编码器(激励函数构成)产生输出,调整本层的参数使得误差最小,如此即可逐层训练,每一层的学习过程都是无监督学习。最后可使用反向传播等算法对模型参数进行微调,用监督学习去调整所有层。

常用模型或方法

  • AutoEncoder自动编码器
    假设只有一个没有类别的训练集合x,可以使用自编码神经网络,用反向传播算法来学习参数。
    首先用W对输入进行编码,经过**函数后,再用WT进行解码,从而使得h(x)x。该过程可以看作是对输入数据的压缩编码,将高维的原始数据用低维的向量表示,使压缩后的低维向量能保留输入数据的典型特征,从而能够较为方便的恢复原始数据。需要注意的是:这里增加了一个约束条件,即在对数据进行编码和解码时,使用的是同一个参数矩阵W。该约束可看作是一种regularization,用于减少参数的个数,控制模型的复杂度。
    初识Deep Learning(深度学习) I
  • Sparse Coding稀疏编码
    1.training阶段:给定一系列的样本图片[x1, x 2, …],我们需要学习得到一组基[Φ1, Φ2, …],也就是字典。
    稀疏编码是k-means算法的变体,其训练过程也差不多(EM算法的思想:如果要优化的目标函数包含两个变量,如L(W, B),那么我们可以先固定W,调整B使得L最小,然后再固定B,调整W使L最小,这样迭代交替,不断将L推向最小值。EM算法可以见我的博客:“从最大似然到EM算法浅解”)。
    训练过程就是一个重复迭代的过程,按上面所说,我们交替的更改a和Φ使得下面这个目标函数最小。
    初识Deep Learning(深度学习) I
    每次迭代分两步:
    a)固定字典Φ[k],然后调整a[k],使得上式,即目标函数最小(即解LASSO问题)。
    b)然后固定住a [k],调整Φ [k],使得上式,即目标函数最小(即解凸QP问题)。
    不断迭代,直至收敛。这样就可以得到一组可以良好表示这一系列x的基,也就是字典。
    2.Coding阶段:给定一个新的图片x,由上面得到的字典,通过解一个LASSO问题得到稀疏向量a。这个稀疏向量就是这个输入向量x的一个稀疏表达了。
    初识Deep Learning(深度学习) I
    例如:
    初识Deep Learning(深度学习) I