![深度学习应用与实战](https://wfqqreader-1252317822.image.myqcloud.com/cover/47/47549047/b_47549047.jpg)
1.3.3 多分类模型
在深度学习与机器学习中,多分类的概念与原理是不同的,比较明显的是标签的表达方式。在深度学习中,一般情况下,类别标签是使用独热(One-Hot)编码进行表达的。独热编码也叫独热码,是指使用与类别个数相等的0或1组成的一系列二进制数来表示类别,有几个类别就有几个比特(bit),而且对应类别的位置为1,其余位置全为0。例如,一个三分类问题,标签为0、1、2,将其转化为独热编码后,0对应的独热编码为(1,0,0),1对应的独热编码为(0,1,0),2对应的独热编码为(0,0,1)。使用独热编码可以将离散标签的取值扩展到欧几里得空间,从而使得离散标签的某个取值对应欧几里得空间的某个点,并且使得特征之间的距离计算更加合理。
![](https://epubservercos.yuewen.com/4F2D5D/26947460607597206/epubprivate/OEBPS/Images/45365_25_3.jpg?sign=1739288924-pFJYCZuZvf4pqsdvmm68fjsnFNKMnCZU-0-d7c298fa7a86173885ee8164ccebceac)
图1.10 三分类模型原理图
三分类模型原理图如图1.10所示。其中,x1、x2、x3、x4为输入特征,y1、y2、y3为以独热编码的方式共同组成预测结果。除二分类模型之外(使用sigmoid函数进行预测,详见1.3.2节),其他模型最终预测的类别个数和输出层的神经元个数是一致的,输出层一个神经元对应一个类别,神经元的输出值为对应该类别的概率。
在多分类模型中,softmax 函数的作用是将输出层神经元的输出值转换为概率,具体计算公式如下。
![](https://epubservercos.yuewen.com/4F2D5D/26947460607597206/epubprivate/OEBPS/Images/45365_26_1.jpg?sign=1739288924-jVmo8jkqvOBHxwGyxSlwmB8USsAQeDRY-0-65b0860994f17d3372059fa91f5b69c6)
式中,x 表示输入特征;表示预测样本某一个类别的概率;c 表示样本的类别个数。softmax函数的计算原理如图1.11所示。z1、z2、z3的值经过softmax函数处理过后分别转换为概率,对应的概率值为0.88、0.12、0,分别对应三个类别的预测概率。最终三分类模型的预测类别为第一个,因为此类别的概率值最高。
![](https://epubservercos.yuewen.com/4F2D5D/26947460607597206/epubprivate/OEBPS/Images/45365_26_3.jpg?sign=1739288924-S9dmrHcb8KUOLaPzPzt8WLDOTGni47Fk-0-23f40b8485d363434b15242b218584aa)
图1.11 softmax函数的计算原理图
多分类模型可以使用TensorFlow实现,代码如下所示。
![](https://epubservercos.yuewen.com/4F2D5D/26947460607597206/epubprivate/OEBPS/Images/45365_26_4.jpg?sign=1739288924-hXoiLSIaKc2G3728OvsbHnZTjlwdzeb3-0-4c102ab88451db64be012d9b1a2d4d2c)
![](https://epubservercos.yuewen.com/4F2D5D/26947460607597206/epubprivate/OEBPS/Images/45365_27_1.jpg?sign=1739288924-JOpX4x1YW0SYEoQqrkJUskYo9bFYvyvZ-0-fa2226cb51830d29a1868202cd8786a7)
运行代码,结果如下所示。
![](https://epubservercos.yuewen.com/4F2D5D/26947460607597206/epubprivate/OEBPS/Images/45365_27_2.jpg?sign=1739288924-Qd5pQwMNdGNFNsj25f5DXiWT8FgCvMtL-0-4416fedc13c9957adca00e0aedfff076)
![](https://epubservercos.yuewen.com/4F2D5D/26947460607597206/epubprivate/OEBPS/Images/45365_28_1.jpg?sign=1739288924-nP8qdgMrHTWZauvzyuHZERMo8B5BnwtX-0-b144fafb850305309094b5073f2347a3)
多分类模型也可以使用PyTorch实现,代码如下所示。
![](https://epubservercos.yuewen.com/4F2D5D/26947460607597206/epubprivate/OEBPS/Images/45365_28_2.jpg?sign=1739288924-XM46KXiHSbMpuSuUzXq5w116rUrtVX2q-0-bcea867c742d5ff20d9db3ab39308ecd)
![](https://epubservercos.yuewen.com/4F2D5D/26947460607597206/epubprivate/OEBPS/Images/45365_29_1.jpg?sign=1739288924-yHuuwbsT7zTy0r8sLWOMJOWtozRetFVx-0-8ed5cd17af1a05a2f155c52540376bc3)
运行代码,结果如下所示。
![](https://epubservercos.yuewen.com/4F2D5D/26947460607597206/epubprivate/OEBPS/Images/45365_29_2.jpg?sign=1739288924-yOA3lkNKgeE1J0Ub7eggLnzmj7Bn3tDC-0-ed34f011e8c94630dcd057962afa88da)