之前的笔记,算不上是 Deep Learning,

只是为理解Deep Learning 而需要学习的基础知识,

从下面开始,我会把我学习UFDL的笔记写出来

#主要是给自己用的,所以其他人不一定看得懂#

UFDL链接 : http://deeplearning.stanford.edu/wiki/index.php/UFLDL_Tutorial


自编码器( Autoencoders ):(概述)

自编码器是只有一层隐藏节点,输入和输出具有相同节点数的神经网络。

自编码器的目的是求的函数 Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP. 也就是希望是的神经网络的输出与输入误差尽量少。

由于隐藏节点数目小于输入节点,

这就表示神经网络需要学习到输入样本的特征,以便进行压缩表示。

如果输入样本是完全混乱的,这将会十分困难。

但是当输入样本具有一定相似性(比如都是汽车),神经网络将会学习到其中的共同特征(比如车窗,车轮)

这种学习是半监督的(样本无标签,但是经过了筛选)。


自编码器(autoencoder):

Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP

如图是一个自编码器(autoencoder),不算偏置节点的话,输入输出节点相同。

节点函数是sigmoid,用之前讲到的反向传播算法对其进行训练

训练的结果,出来后,我们对W1进行可视化表示,便是数据的压缩特征。

(注意,由于输出节点是sigmoid,输入数据的范围必须在 [ 0, 1] 内)

(常用激活函数有:sigmoid、tanh、max(x,0))


稀疏性:(直接粘贴自UFDL)

如果隐藏节点比可视节点(输入、输出)少的话,由于被迫的降维,自编码器会自动习得训练样本的特征(变化最大,信息量最多的维度)。但是如果隐藏节点数目过多,甚至比可视节点数目还多的时候,自编码器不仅会丧失这种能力,更可能会习得一种“恒等函数”——直接把输入复制过去作为输出。这时候,我们需要对隐藏节点进行稀疏性限制。

  所谓稀疏性,就是对一对输入图像,隐藏节点中被激活的节点数(输出接近1)远远小于被抑制的节点数目(输出接近0)。那么使得神经元大部分的时间都是被抑制的限制则被称作稀疏性限制。

注意到 Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP 表示隐藏神经元 Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP 的激活度,但是这一表示方法中并未明确指出哪一个输入 Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP 带来了这一激活度。所以我们将使用 Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP 来表示在给定输入为 Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP 情况下,自编码神经网络隐藏神经元 Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP 的激活度。 进一步,让

Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP

表示隐藏神经元 Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP 的平均活跃度(在训练集上取平均)。我们可以近似的加入一条限制

Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP

其中, Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP 是稀疏性参数,通常是一个接近于0的较小的值(比如 Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP )。换句话说,我们想要让隐藏神经元 Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP 的平均活跃度接近0.05。为了满足这一条件,隐藏神经元的活跃度必须接近于0。

为了实现这一限制,我们将会在我们的优化目标函数中加入一个额外的惩罚因子,而这一惩罚因子将惩罚那些 Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP 和 Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP 有显著不同的情况从而使得隐藏神经元的平均活跃度保持在较小范围内。惩罚因子的具体形式有很多种合理的选择,我们将会选择以下这一种:

Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP

这里, Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP 是隐藏层中隐藏神经元的数量,而索引 Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP 依次代表隐藏层中的每一个神经元。如果你对相对熵(KL divergence)比较熟悉,这一惩罚因子实际上是基于它的。于是惩罚因子也可以被表示为

Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP

其中 Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP 是一个以 Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP 为均值和一个以 Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP 为均值的两个伯努利随机变量之间的相对熵。相对熵是一种标准的用来测量两个分布之间差异的方法。(如果你没有见过相对熵,不用担心,所有你需要知道的内容都会被包含在这份笔记之中。)

这一惩罚因子有如下性质,当 Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP 时 Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP ,并且随着 Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP 与 Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP 之间的差异增大而单调递增。举例来说,在下图中,我们设定 Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP 并且画出了相对熵值 Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP 随着 Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP 变化的变化。

Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP

我们可以看出,相对熵在 Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP 时达到它的最小值0,而当 Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP 靠近0或者1的时候,相对熵则变得非常大(其实是趋向于Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP)。所以,最小化这一惩罚因子具有使得 Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP 靠近 Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP 的效果。 现在,我们的总体代价函数可以表示为

Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP

其中 Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP 如之前所定义,而 Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP 控制稀疏性惩罚因子的权重。 Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP 项则也(间接地)取决于 Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP ,因为它是隐藏神经元 Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP 的平均激活度,而隐藏层神经元的激活度取决于 Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP 。

为了对相对熵进行导数计算,我们可以使用一个易于实现的技巧,这只需要在你的程序中稍作改动即可。具体来说,前面在后向传播算法中计算第二层( Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP )更新的时候我们已经计算了

Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP

现在我们将其换成

Deep Learning 学习笔记(8):自编码器( Autoencoders )-LMLPHP

就可以了。

04-28 12:37