softmax的多分类

原创 2017年07月13日 17:38:37

关于多分类

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

关于softmax

softmax的函数为

P(i)=exp(θTix)Kk=1exp(θTkx)

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

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

如何多分类

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

这里写图片描述

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

这里写图片描述

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

这里写图片描述

代价函数

对于训练集{(x(1),y(1)),...,(x(m),y(m))},有y(i){1,2,3...,k},总共有k个分类。对于每个输入x都会有对应每个类的概率,即p(y=j|x),从向量角度来看,有,

hθ(x(i))=p(y(i)=1|x(i);θ)p(y(i)=2|x(i);θ)p(y(i)=k|x(i);θ)=1kj=1eθTjx(i)eθT1x(i)eθT2x(i)eθTkx(i)

softmax的代价函数定为如下,其中包含了示性函数1{j=y(i)},表示如果第i个样本的类别为j则yij=1。代价函数可看成是最大化似然函数,也即是最小化负对数似然函数。

J(θ)=1m[mi=1kj=11{y(i)=j}log(p(y(i)=j|x(i);θ))]

其中,p(y(i)=j|x(i);θ)=exp(θTix)Kk=1exp(θTkx)则,

J(θ)=1m[mi=1kj=11{y(i)=j}(θTjx(i)log(kl=1eθTlx(i)))]

一般使用梯度下降优化算法来最小化代价函数,而其中会涉及到偏导数,即θj:=θjαδθjJ(θ),则J(θ)θj求偏导,得到,

J(θ)θj=1mmi=1[kj=11{y(i)=j}θTjx(i)θjkj=11{y(i)=j}log(kl=1eθTlx(i)))θj]

=1mmi=1[1{y(i)=j}x(i)kj=11{y(i)=j}kl=1eθTlx(i)kl=1eθTlx(i)θj]

=1mmi=1[1{y(i)=j}x(i)x(i)eθTjx(i)kl=1eθTlx(i)]

=1mmi=1x(i)[1{y(i)=j}p(y(i)=j|x(i);θ)]

得到代价函数对参数权重的梯度就可以优化了。

使用场景

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

========广告时间========

公众号的菜单已分为“分布式”、“机器学习”、“深度学习”、“NLP”、“Java深度”、“Java并发核心”、“JDK源码”、“Tomcat内核”等,可能有一款适合你的胃口。

鄙人的新书《Tomcat内核设计剖析》已经在京东销售了,有需要的朋友可以购买。感谢各位朋友。

为什么写《Tomcat内核设计剖析》

=========================

欢迎关注:

这里写图片描述

版权声明:本文为博主原创文章,未经博主允许不得转载。

PyTorch学习系列(三)——构建神经网络

本文将介绍怎么在利用PyTorch框架构建自己的神经网络模型。

PyTorch预训练

前言 最近使用PyTorch感觉妙不可言,有种当初使用Keras的快感,而且速度还不慢。各种设计直接简洁,方便研究,比tensorflow的臃肿好多了。今天让我们来谈谈PyTorch的预训练,主...
  • AMDS123
  • AMDS123
  • 2017年04月12日 16:49
  • 9443

汐月教育之理解TensorFlow(三.1)构建简单的BP神经网络+softmax多分类进行MNIST识别

运行Tensorflow的过程依然如上文一样,构建图-->建立session-->session中运行图;这样的话很难调试,上文也介绍了可以使用交互式的intersession,可以一步步运行。具体步...

R语言中的Softmax Regression建模(MNIST手写体识别和文档多分类应用)

一、介绍 Softmax Regression模型本质还是一个多分类模型,对Logistic Regression 逻辑回归的拓展。如果将Softmax Regression模型和神经网络隐含层结合起...

逻辑回归解决多分类和softmax

我们已经知道,普通的logistic回归只能针对二分类(Binary Classification)问题,要想实现多个类别的分类,我们必须要改进logistic回归,让其适应多分类问题。 关于这种改...

kmeans提取特征训练softmax分类器

  • 2015年06月21日 13:20
  • 436KB
  • 下载

XGBoost解决多分类问题

XGBoost解决多分类问题 写在前面的话     XGBoost官方给的二分类问题的例子是区别蘑菇有无毒,数据集和代码都可以在xgboost中的demo文件夹对应找到,我是用的Anaco...

美容医院多分类jquery导航

  • 2015年11月02日 15:59
  • 450KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:softmax的多分类
举报原因:
原因补充:

(最多只允许输入30个字)