一、感知机数量的要求

1.1 只有一个隐藏层

image-20260904172857809

MLP只需要一个隐藏层,就能计算任何布尔函数,每个P可以识别表中的一个模式,不管他有多复杂。这里的P就是记录各个输入在某种情况下,Y的输出会是什么情况的一个装置。

但是如果只想用一层来表示,有N个输入时,最多需要多少个P?

我们知道,每个输入只会有两种情况,T或者F,那么当我们有N个输入,我们最多会拿到 \(2^n\) 种组合,即 \(2^n\) 中可能的感知机输入情况。这 \(2^n\) 中组合里面可能一个组合的Y输出都不为真,或者每个组合的Y都为真,这种情况下,我们最多只需要\(2^{n-1}\) 个感知机。

  • 因为另一半都是False,可以用已有的感知机提供的模式取反得知他的具体模式。

因为对于任意布尔函数,我们既可以直接实现该函数,也可以实现它的逻辑取反;二者之中输出为真的最小项数量一定不会超过一半。因此最坏情况下,隐藏层最多需要 \(\boldsymbol{2^{N-1}}\) 个感知机,再搭配一个输出感知机做逻辑或运算,就可以完成任意布尔函数。

如下面这种情况,无法简化,仅有一个隐藏层时模拟该布尔函数,需要 \(2^{4-1}+1\) 个神经元。也是极限情况。

image-20260904173914841

image-20260910221926699

这些情况是最差的情况,即所有的输入模式都要考虑,仅能通过取反来减少你所需要使用的感知机。即 \(\boldsymbol{2^{N-1}} + 1\) 个感知机。

1.2 允许使用多个隐藏层

image-20260910222218330

如果有深度的话,\(3(N-1)\)个就行。

于是我们发现,当你的网络深度得到允许,感知机的数量和网络的复杂度,都从指数递增降到了线性递增。