• SoftMax多分类器原理及代码理解


    关于多分类

    我们常见的逻辑回归、SVM等常用于解决二分类问题,对于多分类问题,比如识别手写数字,它就需要10个分类,同样也可以用逻辑回归或SVM,只是需要多个二分类来组成多分类,但这里讨论另外一种方式来解决多分类——SoftMax。

    SoftMax模型

    Softmax回归模型是logistic回归模型在多分类问题上的推广,当分类数为2的时候会退化为Logistic分类。.在多分类问题中,类标签 y 可以取两个以上的值。 Softmax回归模型对于诸如MNIST手写数字分类等问题是很有用的,该问题的目的是辨识10个不同的单个数字。Softmax回归是有监督的。

    在logistic回归中,训练集由 m 个已标记的样本构成:

    ,,由于logistic回归是针对二分类问题的,因此类标记 y^{(i)}in left{ 0,1 
ight}

    假设函数如下:

    训练模型参数 	heta ,使其能够最小化代价函数:

    对于给定的测试输入 x ,用假设函数针对每一个类别 j 估算出概率值 p(y=j|x) ,即,估计 x 的每一种分类结果出现的概率。假设函数将要输出 一个 k 维的向量来表示这 k 个估计的概率值。假设函数 h_{	heta}(x) 形式如下:



    代价函数

    上述公式是logistic回归代价函数的推广。logistic回归代价函数可以改为:

     

    Softmax代价函数与logistic 代价函数在形式上非常类似,只是在Softmax损失函数中对类标记的 k 个可能值进行了累加。注意在Softmax回归中将 x 分类为类别 j 的概率为:

    一般使用梯度下降优化算法来最小化代价函数,而其中会涉及到偏导数,即,则求偏导,得到代价函数对参数权重的梯度就可以优化了。


    例子

    从下图看,神经网络中包含了输入层,然后通过两个特征层处理,最后通过softmax分析器就能得到不同条件下的概率,这里需要分成三个类别,最终会得到y=0、y=1、y=2的概率值。

     

    继续看下面的图,三个输入通过softmax后得到一个数组[0.05 , 0.10 , 0.85],这就是soft的功能。

    计算过程直接看下图,其中即为,三个输入的值分别为3、1、-3,的值为20、2.7、0.05,再分别除以累加和得到最终的概率值,0.88、0.12、0。

    这里写图片描述

     可以看到它有多个值,所有值加起来刚好等于1,每个输出都映射到了0到1区间,可以看成是概率问题。

    为多个输入,训练其实就是为了逼近最佳的


     使用场景

    在多分类场景中可以用softmax也可以用多个二分类器组合成多分类,比如多个逻辑分类器或SVM分类器等等。该使用softmax还是组合分类器,主要看分类的类别是否互斥,如果互斥则用softmax,如果不是互斥的则使用组合分类器。

     参考文献:

    https://www.cnblogs.com/hellcat/p/7220536.html?utm_source=itdadao&utm_medium=referral 

  • 相关阅读:
    第 13 章 外观模式
    第 12 章 桥接模式
    第 10 章 适配器模式
    第 7 章 原型模式
    PHP的预处理语句的使用
    PHP的异常处理
    PHP中PDO函数的使用
    PHP的PDO模式数据操作
    PHP的 Final关键字、类(文件)的加载和命名空间
    PHP的魔术常量和魔术方法
  • 原文地址:https://www.cnblogs.com/wangyarui/p/8670769.html
Copyright © 2020-2023  润新知