双变量非线性多分类
提出问题:铜钱孔形问题
前面用异或问题和弧形样本学习了二分类,现在我们看看如何用它来做非线性多分类。
我们有如表11-1所示的1000个样本和标签。
表11-1 多分类问题数据样本
样本 | x1 | x2 | y |
---|---|---|---|
1 | 0.22825111 | -0.34587097 | 2 |
2 | 0.20982606 | 0.43388447 | 3 |
… | … | … | … |
1000 | 0.38230143 | -0.16455377 | 2 |
还好这个数据只有两个特征,所以我们可以用可视化的方法展示,如图11-1。
一共有3个类别:
- 蓝色方点
- 红色叉点
- 绿色圆点
样本组成了一个貌似铜钱的形状,我们就把这个问题叫做“铜钱孔形分类”问题吧,后面还要再提到。
问题:如何用两层神经网络实现这个铜钱孔三分类问题?
三种颜色的点有规律地占据了一个单位平面内(-0.5,0.5)的不同区域,从图中可以明显看出,这不是线性可分问题,而单层神经网络只能做线性分类,如果想做非线性分类,需要至少两层神经网络来完成。
红绿两色是圆形边界分割,红蓝两色是个矩形边界,都是有规律的。但是,学习神经网络,要忘记“规律”这个词,对于神经网络来说,数学上的“有规律”或者“无规律”是没有意义的,对于它来说一概都是无规律,训练难度是一模一样的。
另外,边界也是无意义的,要用概率来理解:没有一条非0即1的分界线来告诉我们哪些点应该属于哪个区域,我们可以得到的是处于某个位置的点属于三个类别的概率有多大,然后我们从中取概率最大的那个类别作为最终判断结果。