浅析 one-hot 编码与神经网络分类模型

探讨了多分类网络模型的设计原理,特别是如何利用多个输出节点实现手写体数字识别,以及one-hot编码如何简化复杂分类问题,将其转化为多个二分类问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 多分类网络模型

前面我们看到,基于 Sigmoid 激活函数设计的神经网络模型,本质上是01逻辑电路向[0,1]区间的模糊逻辑电路的推广。对于二分类网络模型而言,最后一个输出节点就够了,足以表示0、1两种类型。

对于更多的分类,例如手写体识别,需要输出0、1、…、9等十种类型。简单地讲,可以设计10个不同的而分类器:0和非0,1和非1,2和非2,等等。但是考虑到这十个二分类模型有可能共享半平面分类器和中间的逻辑,因此,可以融合成一个神经网络模型。参见下图:

在这里插入图片描述

2. one-hot 编码

最终输出10维向量,表示0、1、2、…、9这十个数字。因为这个十维向量,理论上看任何时候只有一个分量的值为1,其他分量均为0,因此,这个编码方式称为 one-hot 编码。参见下表

数字one-hot 编码
0(1, 0, 0, 0, 0, 0, 0, 0, 0, 0)
1(0, 1, 0, 0, 0, 0, 0, 0, 0, 0)
2(0, 0, 1, 0, 0, 0, 0, 0, 0, 0)
9(0, 0, 0, 0, 0, 0, 0, 0, 0, 1)

从技术上来讲,one-hot编码把复杂的分类问题分解成了若干个二分类网络,简化了神经网络的建模的复杂度。

数字手写体自动识别的网络模型,有没有可能最后只提供一个输出,直接用0、1、2,这样的结果表示分类结果?我觉得这样做缺乏理论上的依据。前面几篇文章中我已经讲过了,分类算法的神经网络模型,是从半平面、凸集、二分类结果、one-hot多分类结果,一步一步增量式建立起来的。直接一个输出节点表示10个类别标签,我觉得还是蛮复杂的。把 one-hot 结果解释成一个输出是有可能的,但是这样做是不是有点自找麻烦?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

许野平

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值