神经元模型是一个包含什么的模型 深度学习神经网络之神经元模型( 二 )


感知机效果:与神经元模型不同 。感知器中的权值是通过锻炼得到的 。因此 。根据以前的知识咱们知道 。感知器差不多一个逻辑回归模型 。可以做线性分类任务, 但是无法做非线性分类任务:例如异或运算XOR 。同或XNOR运算.

神经元模型是一个包含什么的模型 深度学习神经网络之神经元模型

文章插图
三、两层神经网络(多层感知机) 单层神经网络无法解决异或问题 。但是当增加一个计算层以后 。两层神经网络不仅可以解决异或问题 。而且具有非常好的非线性分类效果.
"多层感知机":即在原来的单层神经网络基本上 。输入和输出层之间增加一层 。这一层称之为"隐层或隐藏层" 。隐层和输出层神经元都是拥有唤醒函数的功能神经元 。
1. 多层感知机结构 层级结构:每层神经元与下一层神经元全连接 。神经元之间不存在同层连接 。也不存在跨层连接
神经元模型是一个包含什么的模型 深度学习神经网络之神经元模型

文章插图
多层感知机结构
上图中多层感知机结构图的中b偏置节点(bias unit) 。它本质上是一个只含有存放功能 。且存放值永远为1的单元 。在神经网络的每个层次中 。除了输出层以外 。都会含有这样一个偏置单元 。在考虑了偏置以后的一个神经网络的矩阵运算如下:(向量形式)
g(W(1) * a(1) + b(1)) = a(2);
g(W(2) * a(2) + b(2)) = z;
事实上 。神经网络的本质就是通过参数与唤醒函数来拟合特征与目标之间的真实函数关系
多层感知机效果:与单层神经网络不同 。理论证明 。两层神经网络可以没有极限逼近任意连续函数 。
面对复杂的非线性分类任务 。两层(带一个隐藏层)神经网络可以分类的很好 。
接下来就是一个例子(此两图来自colah的博客) 。红色的线与蓝色的线代表数据 。而红色位置和蓝色位置代表由神经网络划开的位置 。两者的分界线就是决策分界 。
神经元模型是一个包含什么的模型 深度学习神经网络之神经元模型

文章插图
两层神经网络(决策分界)
可以看到 。这个两层神经网络的决策分界是非常平滑的曲线 。而且分类的很好 。单层网络只能做线性分类任务 。而两层神经网络中的后一层也是线性分类层 。应该只能做线性分类任务 。为什么两个线性分类任务结合就可以做非线性分类任务?
咱们可以把输出层的决策分界单独拿出来看一下 。
就是下图
神经元模型是一个包含什么的模型 深度学习神经网络之神经元模型

文章插图
两层神经网络(空间变换)
可以看到 。输出层的决策分界仍然是直线 。关键就是 。从输入层到隐藏层时 。数据发生了空间变换 。也就是说 。两层神经网络中 。隐藏层对原始的数据进行了一个空间变换 。使其可以被线性分类 。然后输出层的决策分界划出了一个线性分类分界线 。对其进行分类 。
这样就导出了两层神经网络可以做非线性分类的关键--隐藏层 。联想到咱们一开始推导出的矩阵公式 。咱们知道 。矩阵和向量相乘 。本质上就是对向量的坐标空间进行一个变换 。因此 。隐藏层的参数矩阵的作用就是使得数据的原始坐标空间从线性不可分 。转换成了线性可分 。
 两层神经网络通过两层的线性模型模拟了数据内真实的非线性函数 。因此 。多层的神经网络的本质就是复杂函数拟合 。
2. 反向传播(Backpropagation 。BP)算法 由于多层感知机增加了隐层 。导致神经元数量和权重的增加 。如何计算和锻炼是个问题.
BP神经网络是这样一种神经网络模型 。它是由一个输入层、一个输出层和一个或多个隐层构成 。它的唤醒函数选用sigmoid函数 。选用BP算法锻炼的多层前馈神经网络 。
其算法基本思想为:在上面所述的多层感知机前馈网络中 。输入信号经输入层输入 。通过隐层计算由输出层输出 。输出值与标记值比较 。若有误差 。将误差反向由输出层向输入层传播 。在这个过程中 。利用梯度下降算法对神经元权值进行调整 。BP算法中核心的数学工具就是微积分的链式求导法则
前向(FP)和反向(BP)动图演示如下:
神经元模型是一个包含什么的模型 深度学习神经网络之神经元模型

文章插图
缺点:
BP算法的缺点 。首当其冲就是局部极小值问题 。BP算法本质上是梯度下降 。而它所要优化的目标函数又非常复杂 。这使得BP算法效率低下 。四、多层神经网络(深度学习) 深度神经网络与感知机相比增加了更多的隐层 。以及更加复杂的网络结构 。与经典的锻炼方式不同 。深度神经网络有一个“预锻炼”(pre-training)的过程 。这可以方便的让神经网络中的权值找到一个接近最优解的值 。之后再使用“微调”(fine-tuning)技术来对整个网络进行优化锻炼 。这两个技术的使用大幅度减少了锻炼多层神经网络的期间 。

推荐阅读