最近在Cousera上学习多伦多大学Geoffrey Hinton教授的Nerual Networks for Machine Learning,为保证学习效果,特整理了学习笔记,一方面加深理解,一方面试图将学到的东西讲清楚。

这一讲主要介绍神经网络的结构。

Types of nerual network architectures

这一小节介绍了三种不同的神经网络结构。

首先介绍向前反馈网络(feed forward network),其常见形式如下图所示,第一层是输入(input layer),最后一层是输出(output layer),中间是一层或多层隐匿单元(hidden layer,被称之为deep nerual network)。

2_1

循环神经网络(recurrent nerual network)要更强大一些,里面加入了有向环(directed cycle)。下图给出了循环神经网络的示意图,列出了其主要特点。

2_2

循环神经网络是模拟序列数据的一种非常自然的方法。隐匿单元之间有着联系,它们在时间上的表现恰似很深的网络,在每一个时间步长上隐匿单元的状态决定了下一个时间步长上隐匿单元的状态。循环神经网络与向前反馈网络的不同之处在于其每一个隐匿单元对应的权重矩阵(weight matrix)都是相同的,且在每一个时间片上都有输入。另外,循环神经网络能够在很长一段时间内在隐匿单元上保存信息。只是我们很难有效利用这一潜能,不过近来的一些算法已经能够做到这一点。

2_3

对称连接网络(symmetrically connected networks),其很像循环网络,但单元之间的连接是对称的。对称连接网络与循环网络相比易于分析,其遵循一个energy function,因此应用范围有限。另外,没有隐匿单元的对称连接网络被称为hopfield net。

Perceptrons: The first generation of nerual networks

这一小节介绍感知机(perceptron),下图给出了典型的感知机的工作流程和结构。

2_4

下图给出了感知机的一个发展历程。

2_5

下面介绍了二元阈值神经网络(binary threshold neurons),其实就是感知机。博主已经学过了感知机,所以这里只作截图,不再展开。

2_6

2_7

2_8

A geometrical view of perceptrons

这一小节从几何角度来分析感知机是如何学习的。首先,我们要知道什么是权空间(weight space),其是一个高维空间,其中的每一个点代表权值的一组特殊设定。我们用平面来代表训练样本,那么学习就是要找到一个权值向量能够能处于所有平面正确的一侧。注意,这里提到的平面往往是超平面。在权空间(weight space)中,感知机的每一个权值都有一个维度,权空间的每一个点都代表权值的一个特殊设定。假定我们不考虑阈值(threshold),那可以将每一个训练样本视作权值空间中的一个过原点的超平面。而代表权值设定的点必须位于代表训练样本的超平面的某一侧,这样才有可能得到正确的结果。下面给出了一个例子。在二维平面中,我们用下图中一条黑色直线来代表一组训练样本,这条直线过原点,且其输入向量(蓝色线段)与该直线垂直。该训练样本的正确结果为1,可以看到,位于黑色直线上面一侧,也就是与输入向量的夹角小于90度的权值是好的;位于黑色直线下面一侧,也就是于输入向量夹角大于90度的权值是坏的。下面第二张图给出了一个训练样本结果为0的例子,可以看到,其权值的选择与上一个例子恰恰相反。着说明输入向量限制了权值的选择。

2_9

2_10

下图将前面的两个训练样本放到了一张图中,可以看到合适的权值点处于一个锥形区域之中。对于高维的问题,合适的权值点应该处于一个超锥形立体区域(hyper-cone)内,由此也可以说明问题是凸的。

2_11

Why the learning works

这一小节讨论学习是否可行的问题。通过讨论这一问题,我们对感知机会有更深的理解。假定存在一个权值向量对所有的训练样本都能得到正确的结果,如下图中绿色点所示,称之为fesible factor,当然feasible factor应该是有无穷多个的。我们用平方距离$d_a^2+d_b^2$来衡量每一个可行权值向量与当前全值向量的距离。每一次当前权值向量在某一训练样本上发生错误时,算法会更新当前权值向量,使其更接近每一个可行权值向量。这种做法几乎总是对的,但存在一个错误。例如可行权值向量位于下图中金色点的位置,当前权值向量仍位于错误一侧,输入向量又相当得大,当我们更新当前权值向量,会使得其与金色的可行权值向量距离更大。这与我们的期望恰恰相反,需要作出调整。

2_12

下面提到了一般可行的权值向量,如下图所示。每一次感知机犯错时,当前权值向量与所有一般可行权值向量的距离都至少要减小更新向量的一个长度。

2_13

2_14

What perceptrons can’t do

这一小节讨论感知机的局限性,其局限性来源于特征的选择。如果选择了恰当的特征,那感知机几乎可以处理任何问题;而如果选择了错误的特征,那感知机可以做的事情就大大被限制住了,所以选择特征是一件非常困难的事情。比如说,你要用感知机去判断一个句子是否是一个符合逻辑的英文句子,那你需要定义大量的特征,然后学习如何去处理它们以决定某一个给定的句子是否为一个好的英文句子。

当然,如果用人工去提取特征并得到了足够的特征,那感知机几乎可以解决任何问题。例如如果输入向量中的元素都是二元的,我们可以得到任何可能的一个分布,此时感知机不受限制。一旦选定人工提取的特征,感知机就有了很强的一个限制。例如,二元阈值神经网络(binary threshold neuron,也就是感知机)不能做下图中的事情。

2_15

下面给出了一个几何视角,即二元阈值神经网络不可能将下图中的四个点标记成图中的样子。我们将类似图中这四个点的训练样本称为线性不可分的。

2_16

后边的东西没听懂,不过貌似不影响后面的学习。希望有理解的同学给讲解一下。

2_17

2_18

2_19

2_20