感知机:原理、局限与线性代数实现
1. 感知机的分类能力与局限
感知机能够学习完成简单的分类任务,例如判断一个二维输入对属于哪一类。在学习过程中,它会尝试通过不断调整权重来绘制一条直线,将不同类别的数据点分开。当直线能够正确地将所有正号数据点和负号数据点分隔在两侧时,学习算法就会终止。
然而,感知机存在明显的局限性。它只能解决类别线性可分的分类问题,即在二维空间(两个输入)中,数据点必须能够被一条直线分开。以异或(XOR)布尔函数为例,其真值表如下:
| X0 | X1 | Y |
| — | — | — |
| False | False | False |
| True | False | True |
| False | True | True |
| True | True | False |
当使用感知机尝试学习 XOR 函数时,无论如何调整权重,算法都无法收敛,因为 XOR 函数的数据点不能用一条直线分开。这表明感知机在处理非线性可分问题时存在困难。
2. 组合多个感知机解决问题
为了克服感知机的局限性,可以组合多个感知机。单个感知机可以通过绘制一条直线将图表分为两个区域,添加另一个感知机就可以绘制另一条直线。
例如,在解决 XOR 问题时,可以用两条直线分别将两个负号数据点与其他数据点分开。如果能让输出仅在两条直线之间的数据点处为 1,就可以解决 XOR 问题。
另一种思路是,两个感知机分别对四个数据点中的三个进行正确分类,它们各自错误分类一个不同的数据点。将这两个感知机的输出进行逻辑与(AND)操作,就可以得到正确的结果。
超级会员免费看
订阅专栏 解锁全文
782

被折叠的 条评论
为什么被折叠?



