1. 预备知识
1.1 感知机
感知机是作为神经网络(深度学习) 的起源的算法。 因此, 学习感知机的构造也就是学习通向神经网络和深度学习的一种重要思想。
1.1.1 什么是感知机
感知机接收多个输入信号, 输出一个信号。 这里所说的“信号”可以想象成电流或河流那样具备“流动性”的东西。 像电流流过导线, 向前方输送电子一样, 感知机的信号也会形成流, 向前方输送信息。
、是输入信号,是输出信号,、是权重,是“神经元” 或者叫节点,输入信号被送往神经元时, 会被分别乘以固定的权重,也叫加权求和,神经元会计算传送过来的信号的总和。
2. 什么是BP神经网络
BP(BackPropagation) 算法是神经网络深度学习中最重要的算法之一,是一种按照误差逆向传播算法训练的多层前馈神经网络,是应用最广泛的神经网络模型之一 。了解BP算法可以让我们更理解神经网络深度学习模型训练的本质,属于内功修行的部分。
BP算法的核心思想是: 学习过程由信号的正向传播和误差的反向传播两个过程组成。
正向传播: 输入层的神经元负责接受外界发来的各种信息,并将信息传递给中间层神经元,中间隐含层神经元负责将接收到的信息进行处理变换,根据需求处理信息,实际应用中可将中间隐含层设置为一层或者多层隐含层结构,并通过最后一层的隐含层将信息传递到输出层,这个过程就是BP神经网络的正向传播过程。
反向传播: 当实际输出与理想输出之间的误差超过期望时,就需要进入误差的反向传播过程。它首先从输出层开始,误差按照梯度下降的方法对各层权值进行修正,并依次向隐含层、输入层传播。通过不断的信息正向传播和误差反向传播,各层权值会不断进行调整,这就是神经网络的学习训练。当输出的误差减小到期望程度或者预先设定的学习迭代次数时,训练结束,BP神经网络完成学习。
如果隐含层中的神经元节点设置过少,结果可能造成神经网络的训练过程收敛变慢或者不收敛。如果隐层中节点过多,模型的预测精度会提高,但同时网络拓扑结构过大,收敛速度慢,普遍性会减弱。
隐藏层神经元的设置方法:
如果 BP 神经网络中输入层节点数为 m 个,输出层节点是为 n 个,则由下式式可推出隐藏层节点数为 s 个。 其中 b 一般为 1-9 的整数。