一、多层神经网络
基于生物神经元模型可得到多层感知机(MLP)的基本结构,最典型的MLP包括三层:输入层、隐藏层和输出层。
感知机是神经网络的基础或者说是原型,书中前面也讲了感知机的原理和代码实现。
MLP神经网络不同层之间是全连接的。(全连接的意思就是:上一层的任何一个神经元与下一层的所有神经元都有连接)
神经元和感知机本质上是一样的,感知机的激活函数是阶跃函数,而神经元的激活函数往往选择sigmoid函数或tanh函数。
下面就是神经元的一个模型
神经网络就是按照一定规则连接起来的多个神经元。下图展示了一个全连接神经网络。
可以看到,下面的神经网络确实是由多个神经元组成的。
神经网络主要有三个基本要素:权重、偏置和激活函数。
权重:神经元之间的连接强度由权重控制,权重的大小表示可能性的大小
偏置:偏置的设置是为了正确分类样本,是模型中的一个重要参数,即保证通过输入算出的输出值不能随便激活。
激活函数:起非线性映射的作用,其可将神经元的输出幅度限制在一定范围内,一般限制在(-1~1)或(0~1)之间。
二、神经网络的输出
神经网络实际上就是一个输入向量x到输出向量y的函数,即:
y = f(x)
根据输入计算神经网络的输出:
- 首先将输入向量x⃗ 的每个元素的值 xi 赋给神经网络的输入层的对应神经元
- 然后根据式(a = signoid(w*x))依次向前计算每一层的每个神经元的值,直到最后一层输出层的所有神经元的值计算完毕
- 最后,将输出层每个神经元的值串在一起就得到了输出向量y⃗
接下来举一个例子来说明这个过程,我们先给神经网络的每个单元写上编号。
- 输入层有三个节点,我们将其依次编号为1、2、3;
- 隐藏层的4个节点,编号依次为4、5、6、7;
- 最后输出层的两个节点编号为8、9。
因为这个神经网络是全连接网络,所以可以看到每个节点都和上一层的所有节点有连接。比如,隐藏层的节点4,它和输入层的三个节点1、2、3之间都有连接,其连接上的权重分别为 w41 , w42 , w43 。那么,怎样计算节点4的输出值 a4 呢?
为了计算节点4的输出值,必须先得到其所有上游节点(也就是节点1、2、3)的输出值。节点1、2、3是输入层的节点,所以,他们的输出值就是输入向量x⃗ 本身。按照上图画出的对应关系,可以看到节点1、2、3的输出值分别是 x1 , x2 , x3 。要求输入向量的维度和输入层神经元个数相同,而输入向量的某个元素对应到哪个输入节点是可以自由决定的。
一旦有了节点1、2、3的输出值,就可以根据式1计算节点4的输出值 a4 :
上式的 w4b 是节点4的偏置项,图中没有画出来。而 w41 , w42 , w43 分别为节点1、2、3到节点4连接的权重,在给权重 wji 编号时,目标节点的编号 j 放在前面,把源节点的编号 i
同样,可以继续计算出节点5、6、7的输出值a5, a6 , a7 。这样,隐藏层的4个节点的输出值就计算完成了,就可以接着计算输出层的节点8的输出值 y1 :
同理,我们还可以计算出 y2 的值。这样输出层所有节点的输出值计算完毕,就得到了在输入向量 x⃗ =(x1,x2,x3)T 时,神经网络的输出向量 y⃗ =(y1,y2)T 。可以看出:输出向量的维度和输出层神经元个数相同。
以上就算神经网络的正向计算也叫推理。
|