目录
1.第一次寒冬
(感知器算法)只能处理线性可分的问题,但是现实中大多数分类问题都是线性不可分的。于是该算法被认为没有实际性的应用,1969年~1980年,是历史上人工网络研究的第一次寒冬。
2.多层神经网络定义
人工神经网络又名神经网络(NN),是一种模仿生物神经网络的结构和功能的数学模型或计算模型,用于对函数进行估计或近似。它由节点层组成,包含一个输入层、一个或多个隐藏层和一个输出层。
结构图示例:

首先进行线性计算,有: ,i=1~3,
随后经过非线性激活函数变为
,有:
,i=1~3,
最终输出为:
根据以上式子可以发现,如果不加非线性函数,那么多层网络就会退化到一个神经元的感知器模型状态。
3.三层神经网络可以实现所有决策面
3.1两层神经网络示例
先看两层神经网络,前面的结构图示例就是一个两层神经网络。并且是一个在二维空间里三角形决策面的神经网络结构。
如图:假如有一个分类问题用以下三角形决策面进行分类,假设在决策面里面的为一类,三角形外面为另一类。
三条边的方程分别如图所示,根据前面的描述,设三角形内部边的方程大于0,外部方程边的方程小于0:

假设非线性函数采用的是阶跃函数(如图):

现在模拟样本被分类的情况:假设一个样本在决策面内部,那么根据网络结构有都大于0。再分别经过阶跃函数之后,
都为1。此时,最终输出对应为
,代入
的值有
同样地,假设一个样本在决策面外部,最终输出。
假设,则根据假设有
,则可取b=-1,使得当样本在决策面内部时y>0,在外部时y<0。
如果是一个二维空间中的四边形的决策面,结构图类似,只是隐藏层的神经元个数增加:

3.2三层神经网络
假设在一个二维空间中有两个嵌套的三角形决策面:

两层神经网络结构并不能模拟出来,如图:

假设一个样本在c1里面,那么都大于0,
都小于0。经过阶跃函数后,
都为1,
都为0,最终输出为
。
假设在c1之外的区域,那么有都大于0或者
都小于0,那么最终输出为
或者
。
以上分析看似没有问题,但是有一个关键点:我们擅自将认为是大三角形的三条边,
是小三角形的三条边。但是对于计算机来说,这6个神经元都是独立且平等的,这种结构并不能让它知道哪三个神经元对应的是哪个三角形。虽然可以通过手动设置权重值实现表面上的"分组",但是在解决实际问题时毫无意义,原因会在最后一小节说明。
对应三层网络结构如下:

对上述情况重新讨论,如果样本在c1里面,那么,经过阶跃函数后,
。
同时,经过阶跃函数后,
。那么最终输出为
如果不在c1里面,那么有两种情况:1. 都小于0,则最终输出
。
都大于0,则最终输出
。为了统一约束,让这两情况输出一样,可以设一个限制条件:
。
由此就可以令=1,则
=-1。
最后做总结:通过上面两个网络结构对比可以发现,三层网络结构在两层网络结构的基础上实现了分组,创造了"逻辑门"。使得成为了独立的区域检测。
4.总结
4.1非线性激活函数
上述示例非线性函数都用的是阶跃函数,事实上常用的非线性函数有:Sigmoid、Tanh、ReLU、Leaky ReLU等。
回想感知机算法步骤,我们期望能通过机器学习自动寻找到最优的w和b。而这个实现过程有前向传播和后向传播的操作。在后向传播中还有求导运算,而阶跃函数大部分时候导数几乎全为0,这样网络就没有办法自动学习,所以该函数的实际应用意义不大。
4.2理论与应用
其次,在前面的示例中,一些w和b都是手动设置的固定的值,不符合机器学习"从数据中自主学习"的核心思想。所以以上只能是理论上的讨论,在现实生活中大部分问题甚至都无法得知决策面的具体形态,但是通过这些示例可以更深刻的理解神经网络的原理。