. 感知机(Perceptrons)
感知机可以称为第一代的神经网络,主要包括输入的多个特征单元(人工定义或程序寻找),中间由学习权重连接,最后由决策单元输出。典型的感知机单元遵循前馈模型,输入通过权重处理后直接连接到输出单元上。
如果人们手动选取足够的有效特征,感知机几乎可以做任何事。但一旦人工特征固定下来将会极大的限制感知机的学习能力。同时如何选择一个好的、有效的特征也是困扰人们的难点。这对于感知机来说是毁灭性的,由于感知机将所有的注意力放在了模式识别上而忽视了变换过程。Minsky和Papert的"群体不变性理论"指出无法通过学习来识别出一组变化中的变换过程。为了处理这样的变换,感知机需要利用多特征单元来识别出变换。而这模式识别中最为复杂的一步则需要手工来完成特征提取,而不是学习。
没有隐藏层的神经网络在为输入输出映射建模的过程中具有很大的局限性。而更多层的线性单元似乎也没有帮助,因为线性的叠加依旧是线性的。固定的非线性输出也不足以建立复杂的映射关系。所以在感知机的基础上我们需要建立多层具有适应性非线性的隐藏单元网络。但我们该如何训练这样的网络呢?我们需要有效的方法来调整所有层而不仅仅是最后一层的权重。这十分困难,因为学习隐藏层的权重就等同于学习特征,但没人会告诉你每个隐藏单元应该做什么。这就需要更先进的结构来处理了!
.卷积神经网络(Convolutional Neural Networks)
机器学习领域对于目标识别和检测进行了多年的探索,问题始终悬而未决的原因在于以下问题始终困扰着物体的视觉识别:
分割、遮挡问题
光照变化问题
扭曲和形变问题
同一类物体在功能性区别下的外形变化
视角不同带来的困难
维度尺度带来的问题
这些问题一直困扰着传统的模式识别。人们阐释手工创造各种各样的特征来描述物体的特征,但结果总不尽如人意。热别是在物体识别领域,轻微的变化就会造成结果的巨大差别。
图 卷积网络的可视化图形
在感知机和多层感知机的基础上,人们提出了一种新的网络结构——卷积神经网络。利用卷积神经网络可以对一些特征的检测进行共享,并在尺度和位置和方向上具有一定的不变性。较早的著名例子就是年Yann LeCun提出的一个称为LeNet的网络进行手写字符识别获得了巨大的成功。下图是LeNet的主要结构:一个包括卷积、池化和全连接的六层网络结构。
它利用反向传播算法来对隐藏层的单元权重进行训练,并在每个卷积层中实现了卷积操作的(卷积核)权值共享,并引入池化层实现了特征的缩聚(后面的网络层具有较大的感受野),最后通过全连接层来实现输出。
而后时间来到了ILSVRC年的比赛,由ImageNet提供了万张的高清训练数据,目的是训练一个可以分类出图像属于一千类中每一类的概率的模型,并以此来进行图像的识别。Hinton的学生Alex Krizhevsky最后夺魁。在LeNet的基础上改进了神经网络,训练出了一个具有个隐藏层深度网络,更深更强大的AlexNet,并引入了GPU进行并行训练,极大的提高了深度学习模型的训练效率。自此GPU开始进入了广大机器学习研究者的视野中。远超过第二名的成绩展示了深度学习的强大魅力,也使得深度学习开始走入了高速发展的快车道中。
. 循环神经网络(Recurrent Neural Network)
循环神经网络主要用于处理序列数据。在机器学习领域,序列模型一般利用序列数据作为输入,来训练序列模型用于预测序列数据的下一项。在循环神经网络之前主要使用无记忆模型处理这类任务。
循环神经网络是一种十分有力的武器,它包含了两个重要的特点。首先拥有一系列隐含状态的分布可以高效的存储过去的信息;其次它具有非线性动力学可以允许它以复杂的方式更新隐藏状态。在足够的时间和神经元数量下,RNN甚至可以计算出计算机能计算的任何东西。它们甚至会表现出振动、牵引和混沌的行为。
然而循环神经网络的训练复杂,需要面对梯度消失或者爆炸的问题。由于训练的RNN是一个很长的序列模型,训练过程中的梯度十分容易出现问题。即使在很好的初值下,它也很难检测到目前的目标和先前很多步前输入间的联系,所以循环神经网络处理长程依赖性还十分困难。
目前主要有四种有效的方式实现循环神经网络,主要包括长短时记忆(Long Short Term Memory),海森自由优化方法(Hessian Free Optimization),回声状态网络(Echo State Networks)以及利用动量的初始化(Good initialization with momentum)
. 长短时记忆网络(Long/Short Term Memory Network)
Hochreiter和Schmidhuber()通过构建长短时记忆网络(LSTM:Long Short Term Memory),解决了RNN长时间记忆(如数百个时间步)的问题。 他们使用相互作用的逻辑单元和线性单元来设计专门的存储细胞(Memory Cell)。 当“写入”门打开时,信息就可以进入存储细胞。 只要“保持”门处于开启状态,信息就会一直保留在存储细胞中。开启“读取”门就可以从细胞中读取信息:RNN特别适合用于手写草书识别这样的任务。通常会以笔尖坐标x,y以及表示笔是向上还是向下的参数p作为输入,输出则是一段字符序列。Graves和Schmidhuber()将LSTM结合到RNN中,得到了当前草书识别的最佳结果。 不过,他们使用小图像序列而非笔尖坐标序列作为输入