多层感知机实现异或逻辑需要几个隐含层?

2020-01-21  本文已影响0人  小幸运Q

image.png

Z_1=X*-1+Y*1-1

Z=Z1*-1+Z_2*-1+1

image.png

对于单隐层感知机,要多少隐含节点才能实现n元输入的任意布尔函数?
---2^{n-1}个

考虑二元输入,有以下五元六范式:

image.png image.png

用卡诺图可以表示析取式,从而化简布尔函数:

四元 4节点 两层

对于单隐层的感知机,最差的情况下需要多少个隐藏节点呢? -- 即求最大不可规约的卡诺图

image.png

n元布尔函数需要2^{n-1}个隐节点。

对于多隐层,要多少隐含节点才能实现n元输入的任意布尔函数?
--- 3(n-1)个

考虑二元输入的情况,需要 3 个额外结点可以完成次异或操作,真中隐藏层由两个节点构成,输出层需要一个结点,用来输出异或的结果并作为下一个结点的输入。 对于四元输入,包含三次异或需要 3×3=9个节点即可完成。

二元 3节点 2层 四元 9节点 6层 (还有优化空间)

在上面所举的例子中, n 元异或所需的 3(n-1)个结点可以对应2(n-1)个网络层(包括隐含层和输出层 )。实际上,层数可以进一步减小。考虑到四元的输入 W、 X、 Y、 Z;如果我们在同一层中计算 W \oplus XY \oplus Z, 再将二者的输出进行异或,就可以将层数从 6 降到 4。 根据二分思想 3 每层节点两两分组进行异或运算,需要的最少网络层数为2log_2N (向上取整)

上一篇 下一篇

猜你喜欢

热点阅读