基于机器学习softmax回归训练多分类的深度神经网络结构模型
分类问题
机器学习在监督学习领域主要解决两个问题,其中一个问题是分类问题,分类问题分为二分类问题还有多分类问题,而二分类问题相对来说很好解决,我们只需要构建输出层有一个神经元的神经网络,然后结合sigmoid函数,这样我们的神经网络就可以实现二分类问题。
sigmoid函数
而神经网络的多分类问题就不是这样简单,假如我们要解决三分类的问题,那么我们构建神经网络的时候,我们需要建立一个输出层为三个神经元的神经网络,然后配合使用softmax回归来完成神经网络多分类的任务。
多分类问题
softmax回归
softmax回归我们可以理解为逻辑回归的变形,当softmax处理二分类问题的时候,它就是逻辑回归的作用。Softmax回归本身可以作为一个学习算法来优化分类结果,它只是神经网络中的一层额外的处理层,将神经网络的输出变成了一个概率分布输出,下图展示了加上了Softmax回归的神经网络结构图。
softmax回归
具体来说当我们的神经网络的前向传播计算到softmax层的时候,此时我们数据会输入到softmax层,该层会对每一个神经元输出求幂,然后再进行归一化操作。
归一化处理
这样softmax函数输出可以看到它有多个值,所有值加起来刚好等于1,每个输出都映射到了0到1区间,可以看成是概率问题,那么输出概率最大的就表示这个样本的类别。
softmax函数输出
softmax的具体计算过程
假设现在我们需要处理一个四分类的问题,那么此时我们的神经网络的输出单元是四个神经元,当我们输入样本进行前向传播到softmax时,此时输入到softmax层的值为z[l]
z[l]值
然后进行a[l]=softmax(z[l])操作,我们来看一下softmax回归的具体操作,首先对z[l]的每个元素求幂
求幂操作
然后进行归一化操作如果你把所有的元素都加起来,总和为 176.3,然后我们令t中的每一个元素除以176.3进行归一化操作
归一化操作
这样神经网络的输出a[l],也就是y^,它是一个 4×1 维向量,这个 4×1 向量的元素就是我们算出来的这四个数字。
神经网络输出
这样对于这个样本来看,它是类 0 的概率是 84.2%,它是类1的概率是4.2%,它是类2的概率是0.2%,它是类3的概率是11.4%,这四个概率加起来正好是100%,这就是softmax的计算过程。
在多分类场景中可以用softmax也可以用多个二分类器组合成多分类,比如多个逻辑分类器或SVM分类器等等。具体来说吗,使用softmax还是组合分类器,主要看分类的类别是否互斥,如果互斥则用softmax,如果不是互斥的则使用组合分类器。