3、Softmax分类器

wiki百科:softmax函数的本质就是将一个K维的任意实数向量压缩(映射)成另一个K维的实数向量,其中向量中的每个元素取值都介于(0,1)之间。

一、疑问

二、知识点

1. softmax函数公式的意义

? 在softmax函数,输入向量z的值有正有负,正数表示对应的特征对分类结果是积极的,负数则表示是消极的。因此,在softmax函数中,要 先计算$e^z$, 目的是为了把所有的输入先处理到大于0的空间内,比如负数经过计算后会得到很接近0的数,因此归一化后,对应的概率也接近于0,这就很好得体现了softmax函数的思想——值大的对应概率大,值小的对应概率小。

2. softmax回归与logistic回归

  • softmax回归,处理多分类问题;logisitc回归,处理二分类问题;
  • softmax回归可以推导出和二元分类logistic回归一致的公式;多个logistic回归通过叠加也同样可以实现多分类的效果;
  • softmax回归进行的多分类,类与类之间是互斥的,即一个输入只能被归为一类:

这一选择取决于你的类别之间是否互斥,例如,如果你有四个类别的音乐,分别为:古典音乐、乡村音乐、摇滚乐和爵士乐,那么你可以假设每个训练样本只会被打上一个标签(即:一首歌只能属于这四种音乐类型的其中一种),此时你应该使用类别数 k = 4 的softmax回归。(如果在你的数据集中,有的歌曲不属于以上四类的其中任何一类,那么你可以添加一个“其他类”,并将类别数 k 设为5。)

  • 多个logistic回归进行多分类,输出的类别并不是互斥的,即"苹果"这个词语既属于"水果"类也属于"3C"类别:

如果你的四个类别如下:人声音乐、舞曲、影视原声、流行歌曲,那么这些类别之间并不是互斥的。例如:一首歌曲可以来源于影视原声,同时也包含人声 。这种情况下,使用4个二分类的logistic回归分类器更为合适。这样,对于每个新的音乐作品 ,我们的算法可以分别判断它是否属于各个类别。

3. 交叉熵损失

? 从概率论的角度出发,最小化正确分类的负对数概率,等同于进行最大似然估计。

4. 数值稳定问题

? 编程实现softmax函数计算的时候,中间项因为存在指数函数,所以数值可能非常大。除以大数值可能导致数值计算的不稳定,所以要使用归一化技巧——在分式的分子和分母都乘以一个常数,并把它变换到求和之中,就能得到一个从数学上等价的公式:

的值可自由选择,不会影响计算结果,通过使用这个技巧可以提高计算中的数值稳定性。通常将设为。该技巧简单地说,就是应该将向量中的数值进行平移,使得最大值为0。

原文地址:https://www.cnblogs.com/CSLaker/p/8707585.html

时间: 2024-10-29 03:38:09

3、Softmax分类器的相关文章

Logistic 分类器与 softmax分类器

首先说明啊:logistic分类器是以Bernoulli(伯努利) 分布为模型建模的,它可以用来分两种类别:而softmax分类器以多项式分布(Multinomial Distribution)为模型建模的,它可以分多种互斥的类别. 补充: 什么是伯努利分布?伯努利分布[2]是一种离散分布,有两种可能的结果.1表示成功,出现的概率为p(其中0<p<1).0表示失败,出现的概率为q=1-p. 什么是二项分布?二项分布即重复多次的伯努利分布哦: 什么是多项式分布?即它把两种状态推广到了多种状态,是

softmax与logistic关系

Softmax回归模型,该模型是logistic回归模型在多分类问题上的推广,在多分类问题中,类标签  可以取两个以上的值. Softmax回归模型对于诸如MNIST手写数字分类等问题是很有用的,该问题的目的是辨识10个不同的单个数字.Softmax回归是有监督的,(译者注: MNIST 是一个手写数字识别库,由NYU 的Yann LeCun 等人维护.http://yann.lecun.com/exdb/mnist/ ) 回想一下在 logistic 回归中,我们的训练集由  个已标记的样本构

cs231n笔记:线性分类器

cs231n线性分类器学习笔记,非翻译,根据自己的学习情况总结出的内容: 线性分类 本节介绍线性分类器,该方法可以自然延伸到神经网络和卷积神经网络中,这类方法主要有两部分组成,一个是评分函数(score function):是原始数据和类别分值的映射,另一个是损失函数:它是用来衡量预测标签和真是标签的一致性程度.我们将这类问题转化为优化问题,通过修改参数来最小化损失函数. 首先定义一个评分函数,这个函数将输入样本映射为各个分类类别的得分,得分的高低代表该样本属于该类别可能性的高低.现在假设有一个

简单分类器的python代码实现

本文是stanford大学课程:Convolutional Neural Networks for Visual Recognition 的一些笔记与第一次作业.主要内容为简单(多类)分类器的实现:KNN, SVM, softmax. softmax与SVM的一点区别,其中一张PPT说明: KNN部分框架都给出,只需要补充L2距离的实现: 1 import numpy as np 2 3 class KNearestNeighbor: 4 """ a kNN classifi

从自我学习到深层网络——建立你的第1个深度网络分类器

自我学习就是稀疏编码器串联一个Softmax分类器,上一节看到,训练400次,准确率为98.2% 在此基础上,我们可以搭建我们的第一个深度网络:栈式自编码(2层)+Softmax分类器 简单地说,我们把稀疏自编码器的输出作为更高一层稀疏自编码器的输入. 和自我学习很像,似乎就是新加了一层,但是其实不然: 新技巧在于,我们这里有个微调的过程,让残差从最高层向输入层传递,微调整个网络权重. 这个微调对于网络性能的提高非常明显,实际上后面将会看到. 网络结构如图所示: 图1 预先加载 minFunc

DeepLearning之路(二)SoftMax回归

Softmax回归 1. softmax回归模型 softmax回归模型是logistic回归模型在多分类问题上的扩展(logistic回归解决的是二分类问题). 对于训练集,有. 对于给定的测试输入,我们相拥假设函数针对每一个类别j估算出概率值.也就是说,我们估计得每一种分类结果出现的概率.因此我们的假设函数将要输入一个维的向量来表示这个估计得概率值.假设函数形式如下: 其中是模型的参数.这一项对概率分布进行归一化,舍得所有概率之和为1. softmax回归的代价函数: 上述公式是logist

Linear Classification: Support Vector Machine, Softmax

原文地址:http://cs231n.github.io/linear-classify/ ############################## 内容列表: 1.介绍线性分类器 2.线性成绩函数 3.解释一个线性分类器 4.损失函数 4.1.多类支持向量机 4.2 . Softmax分类器 4.3 . 支持向量机 vs Softmax 5.线性分类器的交互式web例子 6.总结 ###############################################3 Linear

『cs231n』限制性分类器损失函数和最优化

代码部分 SVM损失函数 & SoftMax损失函数: 注意一下softmax损失的用法: SVM损失函数: import numpy as np def L_i(x, y, W): ''' 非向量化SVM损失计算 :param x: 输入矢量 :param y: 标准分类 :param W: 参数矩阵 :return: ''' delta = 1.0 scores = W.dot(x) correct_score = scores[y] D = W.shap[0] loss_i = 0.0 f

Candidate Sampling Sampled Softmax

[softmax分类器的加速器] https://www.tensorflow.org/api_docs/python/tf/nn/sampled_softmax_loss This is a faster way to train a softmax classifier over a huge number of classes. [分类的结果集过大,选取子集] https://www.tensorflow.org/api_guides/python/nn#Candidate_Samplin