10.1 为什么必须用双层神经网络
10.1 为什么必须用双层神经网络⚓︎
10.1.1 分类⚓︎
我们先回忆一下各种分类的含义:
- 从复杂程度上分,有线性/非线性之分;
- 从样本类别上分,有二分类/多分类之分。
从直观上理解,这几个概念应该符合表10-2中的示例。
表10-2 各种分类的组合关系
二分类 | 多分类 | |
---|---|---|
线性 | ![]() |
![]() |
非线性 | ![]() |
![]() |
在第三步中我们学习过线性分类,如果用于此处的话,我们可能会得到表10-3所示的绿色分割线。
表10-3 线性分类结果
XOR问题 | 弧形问题 |
---|---|
![]() |
![]() |
图中两根直线中的任何一根,都不可能把蓝色点分到一侧,同时红色点在另一侧 | 对于线性技术来说,它已经尽力了,使得两类样本尽可能地分布在直线的两侧 |
10.1.2 简单证明异或问题的不可能性⚓︎
用单个感知机或者单层神经网络,是否能完成异或任务呢?我们自己做个简单的证明。先看样本数据,如表10-4。
表10-4 异或的样本数据
样本 | |||
---|---|---|---|
1 | 0 | 0 | 0 |
2 | 0 | 1 | 1 |
3 | 1 | 0 | 1 |
4 | 1 | 1 | 0 |
用单个神经元(感知机)的话,就是表10-5中两种技术的组合。
表10-5 神经元结构与二分类函数
神经元 | 分类函数Logistic |
---|---|
![]() |
![]() |
前向计算公式:
- 对于第一个样本数据
因为
- 对于第二个样本数据
- 对于第三个样本数据
- 对于第四个样本
把公式6两边都加
再看公式4、5,不等式左侧括号内的两个因子都大于0,其和必然也大于0,不可能小于
10.1.3 非线性的可能性⚓︎
我们前边学习过如何实现与、与非、或、或非,我们看看如何用已有的逻辑搭建异或门,如图10-5所示。
图10-5 用基本逻辑单元搭建异或运算单元
表10-6 组合运算的过程
样本与计算 | 1 | 2 | 3 | 4 |
---|---|---|---|---|
0 | 0 | 1 | 1 | |
0 | 1 | 0 | 1 | |
1 | 1 | 1 | 0 | |
0 | 1 | 1 | 1 | |
0 | 1 | 1 | 0 |
经过表10-6所示的组合运算后,可以看到