softmax算法——处理分类问题
一 介绍
softmax基本可以算是分类任务的标配。本篇介绍softmax是什么,以及softmax图解和举例。
二 什么是softmax
现实生活中需要对某一问题进行多种分类,例如对图片进行分类的例子,这时就需要使用softmax算法。
softmax,就是如果判断输入属于某一个类的概率大于属于其他类的概率,那么这个类对应的值就逼近于1,其他类的值就逼近于0.该算法主要应用就是多分类,而且是互斥的,即只能属于其中的一个类。与sigmoid类的**函数不同的是,一般的**函数值只能分两类,所以可以理解Softmax是Sigmoid类的**函数的扩展,其定义如下:
假设我们有一个数组V,Vi表示V中的第i个元素,那么这个元素的Softmax值就是
也就是说,是该元素的指数,与所有元素指数和的比值,所有比值之和能保证总和为1
三 图解公式
四 举例
某个样本经过生成的值为y1为5,y2为3,y3为2,那么对于的概率y1=5/10=0.5.y2=3/10,y3=2/10,于是取最大值的值y1为最终分类。
softmax在机器学习中有非常广泛的应用,MNIST的每一张图都表示一个数字,从0到9.我们希望得到给定图片代表某个数字的概念。例如,训练的模型可能推测一张包含9的图片代表9的概念未80%,但是判断8的概念为5%(因为8和9都是上半部分相似的小圆),判断它代表其他数字的概率更小。于是取最大概率的对应数值,就是这个图片的分类。这个是一个实用softmax回归模型的经典案例。
五 小技巧
在实际实用中,softmax伴随的分类标签都是one_hot编码,而且这里还有个小技巧,在softmax时候需要将目标分成几类,就在最后这层放几个节点。
六 参考