
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
3.7 单层感知器分类案例
题目:假设我们有4个2维的数据,数据的特征分别是(3,3),(4,3),(1,1),(2,1)。(3,3)和(4,3)这两个数据的标签为1,(1,1)和(2,1)这两个数据的标签为-1。构建神经网络来进行分类。
思路:我们要分类的数据是二维数据,所以只需要2个输入节点(一般输入数据有几个特征,我们就设置几个输入神经元),我们可以把神经元的偏置值也设置成一个输入节点,使用3.2.3小节中的方式,这样我们需要3个输入节点。
输入数据有4个:(1,3,3),(1,4,3),(1,1,1),(1,2,1)。
数据对应的标签:(1,1,-1,-1)。
初始化权值w1,w2,w3:取0~1的随机数。
学习率lr(learning rate):设置为0.1。
激活函数:sign函数。
我们可以构建一个如图3.7所示的单层感知器。

图3.7 单层感知器
如代码3-3所示为单层感知器应用案例。
代码3-3:单层感知器应用案例



运行结果如下:

因为权值的初始化使用的是随机的初始化方式,所以每一次训练的周期和画出来的图可能都是不一样的。这里我们可以看到单层感知器的一个问题,虽然单层感知器可以顺利地完成分类任务,但是使用单层感知器来做分类的时候,最后得到的分类边界距离某一个类别比较近,而距离另一个类别比较远,并不是一个特别理想的分类效果。图3.8中的分类效果应该才是比较理想的分类效果,分界线在两个类别比较中间的位置。

图3.8 单层感知器比较理想的分类边界