得鹿梦鱼 得鹿梦鱼

多入多出的单层神经网络——线性多分类

线性多分类

提出问题

将上篇文中的楚汉变为魏蜀吴三国问题

多分类学习策略

线性多分类和非线性多分类的区别

区别在于不同类别的样本点之间是否可以用一条直线来互相分割。对神经网络来说,线性多分类可以使用单层结构来解决,而非线性多分类需要使用双层结层结构

多分类问题的三种解法

一对一方式

每次训练分类器时,先只保留两个类别的数据。如果一共有N个类别,则需要训练C2N个分类器。以N=3时举例,需要训练AB、BC、AC三个分类器

一对多方式

处理一个类别时,暂时把其他所有类别看作是一类,这样对于三分类问题,可以得到三个分类器
推理时,同时调用三个分类器,再把三种结果组合起来,就是真实的结果

多对多方式

假设有四个类别A、B、C、D,可以把AB算作一类,CD算作一类,训练分类器1;再把AC算作一类,BD算作一类,训练分类器2。推理时,第1个分类器的结果是AB类,第二个分类器的结果是BD类,则执行与操作,就是B类。

多分类与多标签

多分类学习中,虽然有多个类别,但是每个样本只属于一个类别

有一种情况也很常见,例如在一幅图中,既有蓝天白云,又有花草树木,那么这张图片可以有以下两种标注方法

(1)标注为“风景”,而不是“人物”,属于风景图片,这叫分类。
(2)被同时标注为“蓝天”“白云”“花草”“树木”等多个标签,这样的任务不是多分类学习,而是多标签学习(multi-labellearn)

多分类函数

多分类函数对线性多分类和非线性多分类问题都适用

多分类函数Softmax的定义

以Softmax函数加了个“soft”来模拟取最大值(max)的行为,但同时又保留了相对大小的信息
aj=ezji=1mezja_j = \frac{e^{z_j}}{\sum_{i=1}^m e^{z_j}}

特点

  • 三个类别的概率相加为1;
  • 每个类别的概率都大于0

用神经网络实现线性多分类

定义神经网络结构

  • 输入特征是两个,x1x_1是经度,x2x_2是纬度
  • 输出的是三个分类,分别是魏、蜀、吴,所以输出层有三个神经元

如果有三个以上的分类同时存在,需要为每一类别分配一个神经元,这个神经元的作用是根据前端输入的各种数据,先做线性处理,然后做一次非线性处理,计算每个样本在每个类别中的预测概率,再和标签中的类别比较,看看预测是否准确。如果准确,则奖励这个预测,给予正反馈;如果不准确,则惩罚这个预测,给予负反馈。两类反馈都反向传播到神经网络系统中去调整参数。

这个网络只有输入层和输出层,由于输入层不算在内,所以是单层网络

原文链接