Week 2
神经网络的结构 Architecture
-
神经网络的结构:将神经元连接到一起的方式
- 前馈神经网络(Feet Forward Neural Network):一种常用的结构,信息从输入单元流入,沿着一个方向通过隐含层,直到输出层
- 循环神经网络(Recurrent Neural Network):信息在其中循环流动,能够长时间记忆信息,表现出有趣的震荡,但更难训练,因为其结构十分复杂
- 对称连接网络(Symmetrically-connected Network):两个神经元之间的两个方向的权重是相同的
-
前馈神经网络:
-
最常用
- 第一层是输入层,最后一层是输出层
- 中间为隐藏层,如果有多个隐藏层,就称之为“深度”神经网络
-
计算输入到输出之间的一系列变换,在每一层都能得到输入的新表示,同时改变个体之间的相似性(不同可相同,相同可不同)
- 每一个神经元的活动,即前一层活动的非线性函数变换
-
-
循环神经网络:
- 在RNN的连接图中,存在着有向的环路
- 有些情况下,可能回到了开始的位置
- 其参数有着非常复杂的动态变化,使其变得十分难以训练
- 目前有着很多高效训练RNN的方法
- 更加契合生物学
- 多隐藏层的RNN只是常规RNN的特例,其只是少了隐藏层单元之间的相互连接
- 在RNN的连接图中,存在着有向的环路
-
用于建模序列数据的RNN
- 很自然的一种方式
- 对应着以时序进行分割的深度网络
- 但是每个时间切片使用相同的权重,并在每一个时间切片获取输入,并给出输出
- RNN的隐藏状态具有长时间记忆信息的能力
- 但是训练这种能力很困难
- 很自然的一种方式
-
对称连接网络
- 神经元间的连接是对称的(双向的权重是相同的)
- 比循环神经网络更好分析
- 遵守一个能量函数对其能力增加了限制
- 没有回路
- 没有隐藏层的对称连接网络称为“霍普菲尔德网络”(Hopfield Nets)
- 神经元间的连接是对称的(双向的权重是相同的)
-
具有隐藏层的对称连接网络
- 称为“玻尔兹曼机”(Boltzmann machines)
- 相比于霍普菲尔德网络更强大
- 略逊于RNN
- 有比较简单的学习算法
- 称为“玻尔兹曼机”(Boltzmann machines)
感知器:初代神经网络 Perceptrons: The first generation of neural networks
- 统计模式识别:
- 将原始输入向量转化为一个特征激活向量(使用基于共识的手写程序定义特征。不进行学习)
- 学习如何对每一个特征激活值加权以得到一个标量值(在模式的假设中对哪些特征更加明显和赞同,哪些是反对)
- 如果这个标量值超过了某个阈值,那么认为这个输入是一个目标类别(尝试学习的模式)的正例
- 感知器是传统统计模式识别系统的典型例子
- 决策单元:二元阈值神经元(Binary Threshold Neuron)
- 先计算所有输入的加权和并加入偏置量
- 如果最终结果大于0,则输出1
- 使用相同的权重学习方法学习偏差:
- 为了学习偏差,可以把它当作1的权重
- 阈值等价于有一个负的偏差
- 感知器收敛过程:训练二元输出神经元作为分类器
- 对输入向量,额外加入一个值为1的元素,偏差及阈值的负值,现在可以忽略阈值了
- 使用任何能够确保每一个训练样例都能被取到的方法取训练样例
- 如果对应的输出正确,那么保留权重不动
- 如果错误地输出了0(要么1要么0),就把这个输入向量加到权重上
- 如果错误地输出了1,就把这个向量从权重里减掉
- 这保证了能够找到一组权重(如果真的存在的话)是所有训练样例得到正确答案
- 但是很多问题不存在这样一组权重,因为这很大程度上取决于选择的特征
感知器的几何意义 A Geometrical Vew of Perceptrons
- 权重空间:一个高维空间,每一个点对应了一组权重值配置
- 将整组权重视为一个平面,学习就是在所有训练平面的正确的一侧的权重向量
- 权重空间:
- 每一维对应一个权重
- 空间中的一个点代表了一组特定的权重
- 不考虑阈值,那么每一个训练样例就代表了一个过原点的超平面
- 权值必须在这个超平面的一侧以得到正确的答案
- 分析:
- 每一个训练样例定义了一个过原点的平面
- 平面与输入向量正交(perpendicular)(即以输入向量为法向量的平面)
- 我们需要权重向量在平面的正确一边,即与输入向量的内积为正确的符号
- 我们可以认为输入是对权重(点)的约束(得到正确答案)
- 要让所有的训练样例得到正确答案,那么就需要找到一个点,在所有平面的正确的一边
- 如果有任何正确答案,那么这些权重向量就一定在所有平面构成的超锥体中,其顶点在原点
- 那么所有的响亮的均值就会是一个好的权重向量(凸问题)
感知器的限制 Limitations
- 感知器的效果很大程度上依赖于特征的选择
- 学习的最大难度在于学习正确的特征
- 感知器的限制:
- 如果手工选择特征且选择了一组很好的特征,那么这个模型可以做任何事情
- 但是一旦确定了权重,整个感知器的学习会有很大限制
- 对于稍微复杂一点的非线性逻辑(对三维空间,只需要四个不共线点),二元阈值就完全不能起作用了
- 使用数据空间分析上述问题:
- 输入向量是一个点
- 权重是一个平面,与原点的距离即阈值,其与权重向量正交
- 有一种可能,即使这个超平面永远都不可能正好的将正例点和反例点分隔开(不可线性分割的)
- 二元阈值神经元不能够解决不能够辨析可平移的特征
- 我们不仅要学习用于计算特征加权和的权重,还要学习特征检测器本身,才能让神经网络变得有效
- 没有隐藏层的网络学习到的输入输出映射十分有限(多层线性没有任何意义,结果还是线性的,而只在输出采用非线性变换也没有意义)
- 我们需要多层自适应(学习权重)非线性(增加映射能力)的单元,但是如何学习?(自适应所有的权重而不仅仅是最后一层非常困难,而多层隐藏层实际上就相当于要学习特征以及特征的特征)