一文看懂四种基本的神经网络架构( 二 )


 

一文看懂四种基本的神经网络架构

文章插图
 
这里 t 是当前训练样例的目标输出 , o 是感知机的输出 , η 是一个正的常数称为学习速率 。学习速率的作用是缓和每一步调整权的程度 , 它通常被设为一个小的数值(例如 0.1) , 而且有时会使其随着权调整次数的增加而衰减 。
多层感知机 , 或者说是多层神经网络无非就是在输入层与输出层之间加了多个隐藏层而已 , 后续的CNN , DBN等神经网络只不过是将重新设计了每一层的类型 。感知机可以说是神经网络的基础 , 后续更为复杂的神经网络都离不开最简单的感知机的模型 , 
卷积神经网络 CNN
谈到机器学习 , 我们往往还会跟上一个词语 , 叫做模式识别 , 但是真实环境中的模式识别往往会出现各种问题 。比如:
图像分割:真实场景中总是掺杂着其它物体 。很难判断哪些部分属于同一个对象 。对象的某些部分可以隐藏在其他对象的后面 。
物体光照:像素的强度被光照强烈影响 。
图像变形:物体可以以各种非仿射方式变形 。例如 , 手写也可以有一个大的圆圈或只是一个尖头 。
情景支持:物体所属类别通常由它们的使用方式来定义 。例如 , 椅子是为了让人们坐在上面而设计的 , 因此它们具有各种各样的物理形状 。
卷积神经网络与普通神经网络的区别在于 , 卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器 。在卷积神经网络的卷积层中 , 一个神经元只与部分邻层神经元连接 。在CNN的一个卷积层中 , 通常包含若干个特征平面(featureMap) , 每个特征平面由一些矩形排列的的神经元组成 , 同一特征平面的神经元共享权值 , 这里共享的权值就是卷积核 。卷积核一般以随机小数矩阵的形式初始化 , 在网络的训练过程中卷积核将学习得到合理的权值 。共享权值(卷积核)带来的直接好处是减少网络各层之间的连接 , 同时又降低了过拟合的风险 。子采样也叫做池化(pooling) , 通常有均值子采样(mean pooling)和最大值子采样(max pooling)两种形式 。子采样可以看作一种特殊的卷积过程 。卷积和子采样大大简化了模型复杂度 , 减少了模型的参数 。
卷积神经网络由三部分构成 。第一部分是输入层 。第二部分由n个卷积层和池化层的组合组成 。第三部分由一个全连结的多层感知机分类器构成 。
这里举AlexNet为例:
 
一文看懂四种基本的神经网络架构

文章插图
 
·输入:224×224大小的图片 , 3通道
·第一层卷积:11×11大小的卷积核96个 , 每个GPU上48个 。
·第一层max-pooling:2×2的核 。
·第二层卷积:5×5卷积核256个 , 每个GPU上128个 。
·第二层max-pooling:2×2的核 。
·第三层卷积:与上一层是全连接 , 3*3的卷积核384个 。分到两个GPU上个192个 。
·第四层卷积:3×3的卷积核384个 , 两个GPU各192个 。该层与上一层连接没有经过pooling层 。
·第五层卷积:3×3的卷积核256个 , 两个GPU上个128个 。
·第五层max-pooling:2×2的核 。
·第一层全连接:4096维 , 将第五层max-pooling的输出连接成为一个一维向量 , 作为该层的输入 。
·第二层全连接:4096维
·Softmax层:输出为1000 , 输出的每一维都是图片属于该类别的概率 。
卷积神经网络在模式识别领域有着重要应用 , 当然这里只是对卷积神经网络做了最简单的讲解 , 卷积神经网络中仍然有很多知识 , 比如局部感受野 , 权值共享 , 多卷积核等内容 , 后续有机会再进行讲解 。
循环神经网络(递归神经网络) RNN
传统的神经网络对于很多问题难以处理 , 比如你要预测句子的下一个单词是什么 , 一般需要用到前面的单词 , 因为一个句子中前后单词并不是独立的 。RNN之所以称为循环神经网路 , 即一个序列当前的输出与前面的输出也有关 。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中 , 即隐藏层之间的节点不再无连接而是有连接的 , 并且隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出 。理论上 , RNN能够对任何长度的序列数据进行处理 。


推荐阅读