学习笔记:多层感知器

2020-05-29 10:52:57 浏览数 (1)

上期内容:HLS中如何控制流水程度

克服单层感知器局限性的有效办法就是在输入层和输出层之间引入一个或多个隐层作为输入样本的内部表示,从而将单层感知器变成多层感知器(MLP,Multilayer Perceptron)。下图显示了只有一个隐层的多层感知器。不难看出,它是一种前馈人工神经网络模型,由于输入层不涉及计算,该多层感知器的层数为2。还可以看到,隐层中的神经元和输入层各输入完全连接,输出层中的神经元和隐层中的各神经元也完全连接。因此多层感知器中的隐层和输出层都是全连接的。

多层感知器能否解决异或问题呢?

观察下图所示的多层感知器。该多层感知器含有一个隐层,隐层的两个节点相当于两个单层感知器。这两个节点在x1x2构成的平面上可分别确定分界直线S1S2,从而形成图中所示的一个开放式的凸域。适当调整两条直线的位置,可以使得两类线性不可分的样本分别位于该开放式凸域的内部和外部。对于直线S1,位于其上方的样本,对应节点y1输出为1,其下方样本对应节点y1输出为0;对于直线S2,位于其上方的样本,对应节点y2输出为1,其下方样本对应节点y2输出为0。此时,异或的真值表就可以转换为隐层节点的输出来表示。输出层节点以隐层节点y1y2的输出作为输入,其结构也相当于一个单层感知器。在y1y2构成的平面上,我们将4个样本在图中标记出来,此时,可以看到4个样本是线性可分的。单隐层感知器可解决异或问题,也就是说它具有解决线性不可分问题的能力。

隐层中节点的作用

输入样本为二维时,隐层中每个节点确定了二维平面上的一条分界线。多条直线经输出节点组合后会构成各种形状的凸域。通过训练调整凸域的形状,可将两类线性不可分样本分为域内和域外,如下图所示。

Kolmogorov理论指出:双隐层感知器足以解决任何复杂的分类问题。该结论已经过严格的数学证明。对于双隐层,第二个隐层中的每个节点确定一个凸域,各种凸域经输出层节点组合后成为任意形状,这使得双隐层分类能力比单隐层大大提高。

多层感知器案例

我们看一个多层感知器的案例,如下图所示。该多层感知器为2输入1输出,具有1个隐层,隐层和输出层权值及偏置如表格所示。

由于隐层中的每个节点可确定一个二维平面上的一条分界线,故该多层感知器隐层可确定5条分界线,从而形成如下图所示的凸域。

结论

单层感知器,可解决线性分类问题,对异或或者非线性分类问题无能为力,形成的判决域是一个半平面;当网络具有单隐层时,可解决异或和非线性问题,形成的判决域是一个凸域;当网络具有双隐层时,就可以解决任意复杂的非线性问题,形成的判决域也是一个任意形状的区域。

0 人点赞