Softmax函数概述——2020.2.8

南楼画角 提交于 2020-02-08 13:02:32

一、softmax函数简介

    softmax作为输出层的激励函数,在机器学习中常被看作是一种多分类器。通俗的意思就是,将一个物品输入,得出其中可能属于的类别概率(soft),最后得出最大可能性的判别(max)。下图为softmax的具体计算流程:

    其中,3、1、-3为输入值,计算以e为底的幂,之后求各类别之和,每个类别的输出值为,保证了各个类别输出值总和 ≤ 1(即:)。
    比如下图所,j假设有7张图,分别为飞机、汽车、轮船、猫、狗、鸟、太阳,则图像的分类标签如下表示:

    这种激励函数通常用在神经网络的最后一层作为分类器的输出,有7个节点就可以做7个不同类别的判别,有1000个节点就可以做1000个不同样本类别的判断。

二、softmax函数优劣性分析

优点:不同类之间分类准确
    softmax比hardmax(本文暂且称为,即利用输入本身的值计算输出值:))更容易实现one-hot目标,即放大某一类可能性与其他类的差值,方便实现不同类之间的分类判定。两者差异性见下图:


缺点:类间紧凑,不满足进行人脸识别中特征向量对比需求
    人脸识别中特征向量相似度计算,常用欧式距离(L2 distance)和余弦距离(cosine distance),下面讨论特征向量相似度对比情况:

  1. 欧式距离:
    欧式距离越小,向量相似度越高。可能同类的特征向量距离(黄色)比不同类的特征向量距离(绿色)更大

  2. 余弦距离:
    夹角越小,余弦距离越大,向量相似度越高。可能同类的特征向量夹角(黄色)比不同类的特征向量夹角(绿色)更大

总结

  1. Softmax训练的深度特征,会把整个超空间或者超球。如果按照分类个数进行划分,可以保证不同类别是可分的,适用于多分类任务如MNIST和ImageNet,因为测试类别必定在训练类别中。
  2. 但Softmax并不要求类内紧凑和类间分离,这一点非常不适合大数据量人脸识别任务,因为训练集的1W人数,相对测试集整个世界70亿人类来说,非常微不足道,而我们不可能拿到所有人的训练样本,并且还要求训练集和测试集不重叠。
  3. 如果需要改造Softmax,除了保证可分性外,还应做到特征向量类内尽可能紧凑,类间尽可能分离。

三、学习总结

    之前仅仅使用过softmax做一些数据处理,但是对它的原理概念总是记忆不清,今天特总结记录一下。

参考博客:http://www.pianshen.com/article/3582306846/

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!