对多层感知器和反向传播进行入门级的介绍
扫描二维码
随时随地手机看文章
摘要: 本文对多层感知器和反向传播进行入门级的介绍。 人工神经网络是一种计算模型,启发自人类大脑处理信息的生物神经网络。
人工神经网络是一种计算模型,启发自人类大脑处理信息的生物神经网络。人工神经网络在语音识别、计算机视觉和文本处理领域取得了一系列突破,让机器学习研究和产业感到了兴奋。在本篇博文中,我们将试图理解一种称为「多层感知器(MulTI Layer Perceptron)」的特定的人工神经网络。
单个神经元
神经网络中计算的基本单元是神经元,一般称作「节点」(node)或者「单元」(unit)。节点从其他节点接收输入,或者从外部源接收输入,然后计算输出。每个输入都辅有「权重」(weight,即 w),权重取决于其他输入的相对重要性。节点将函数 f(定义如下)应用到加权后的输入总和,如图 1 所示:
图 1:单个神经元
此网络接受 X1 和 X2 的数值输入,其权重分别为 w1 和 w2。另外,还有配有权重 b(称为「偏置(bias)」)的输入 1。我们之后会详细介绍「偏置」的作用。
神经元的输出 Y 如图 1 所示进行计算。函数 f 是非线性的,叫做激活函数。激活函数的作用是将非线性引入神经元的输出。因为大多数现实世界的数据都是非线性的,我们希望神经元能够学习非线性的函数表示,所以这种应用至关重要。
每个(非线性)激活函数都接收一个数字,并进行特定、固定的数学计算 [2]。在实践中,可能会碰到几种激活函数:
Sigmoid(S 型激活函数):输入一个实值,输出一个 0 至 1 间的值 σ(x) = 1 / (1 + exp(−x))
tanh(双曲正切函数):输入一个实值,输出一个 [-1,1] 间的值 tanh(x) = 2σ(2x) − 1
ReLU:ReLU 代表修正线性单元。输出一个实值,并设定 0 的阈值(函数会将负值变为零)f(x) = max(0, x)
下图 [2] 表示了上述的激活函数
图 2:不同的激活函数。
偏置的重要性:偏置的主要功能是为每一个节点提供可训练的常量值(在节点接收的正常输入以外)。神经元中偏置的作用,详见这个链接:
前馈神经网络前馈神经网络是最先发明也是最简单的人工神经网络 [3]。它包含了安排在多个层中的多个神经元(节点)。相邻层的节点有连接或者边(edge)。所有的连接都配有权重。
图 3 是一个前馈神经网络的例子。
图 3: 一个前馈神经网络的例子
一个前馈神经网络可以包含三种节点:
1. 输入节点(Input Nodes):输入节点从外部世界提供信息,总称为「输入层」。在输入节点中,不进行任何的计算——仅向隐藏节点传递信息。
2. 隐藏节点(Hidden Nodes):隐藏节点和外部世界没有直接联系(由此得名)。这些节点进行计算,并将信息从输入节点传递到输出节点。隐藏节点总称为「隐藏层」。尽管一个前馈神经网络只有一个输入层和一个输出层,但网络里可以没有也可以有多个隐藏层。
3. 输出节点(Output Nodes):输出节点总称为「输出层」,负责计算,并从网络向外部世界传递信息。
在前馈网络中,信息只单向移动——从输入层开始前向移动,然后通过隐藏层(如果有的话),再到输出层。在网络中没有循环或回路 [3](前馈神经网络的这个属性和递归神经网络不同,后者的节点连接构成循环)。
下面是两个前馈神经网络的例子:
1. 单层感知器——这是最简单的前馈神经网络,不包含任何隐藏层。你可以在 [4] [5] [6] [7] 中了解更多关于单层感知器的知识。
2. 多层感知器——多层感知器有至少一个隐藏层。我们在下面会只讨论多层感知器,因为在现在的实际应用中,它们比单层感知器要更有用。