softmax

why not use the max value of output tensor instead of Softmax Function?

一笑奈何 提交于 2020-01-15 11:04:33
问题 I built a CNN model on images one-class classification. The output tensor is a list which has 65 elements. I make this tensor input to Softmax Function, and got the classified result. I think the max value in this output tensor is the classified result, why not use this way to do classification task? Just the Softmax Function can be taken the derivative easily? 回答1: Softmax is used for multi-class classification. In multi-class class classification the model is expected to classify the input

Softmax回归

醉酒当歌 提交于 2020-01-14 04:56:31
简介 在本节中,我们介绍Softmax回归模型,该模型是logistic回归模型在多分类问题上的推广,在多分类问题中,类标签 可以取两个以上的值。 Softmax回归模型对于诸如MNIST手写数字分类等问题是很有用的,该问题的目的是辨识10个不同的单个数字。Softmax回归是有监督的,不过 后面也会介绍它与深度学习/无监督学习方法的结合。(译者注: MNIST 是一个手写数字识别库,由NYU 的Yann LeCun 等人维护。 http://yann.lecun.com/exdb/mnist/ ) 回想一下在 logistic 回归中,我们的训练集由 个已标记的样本构成: ,其中输入特征 。(我们对符号的约定如下:特征向量 的维度为 ,其中 对应截距项 。) 由于 logistic 回归是针对二分类问题的,因此类标记 。假设函数(hypothesis function) 如下: 我们将训练模型参数 ,使其能够最小化代价函数 : 在 softmax回归中,我们解决的是多分类问题(相对于 logistic 回归解决的二分类问题),类标 可以取 个不同的值(而不是 2 个)。因此,对于训练集 ,我们有 。(注意此处的类别下标从 1 开始,而不是 0)。例如,在 MNIST 数字识别任务中,我们有 个不同的类别。 对于给定的测试输入 ,我们想用假设函数针对每一个类别j估算出概率值

《转》Logistic回归 多分类问题的推广算法--Softmax回归

*爱你&永不变心* 提交于 2020-01-12 18:50:00
转自 http://ufldl.stanford.edu/wiki/index.php/Softmax%E5%9B%9E%E5%BD%92 简介 在本节中,我们介绍Softmax回归模型,该模型是logistic回归模型在多分类问题上的推广,在多分类问题中,类标签 可以取两个以上的值。 Softmax回归模型对于诸如MNIST手写数字分类等问题是很有用的,该问题的目的是辨识10个不同的单个数字。Softmax回归是有监督的,不过后面也会介绍它与深度学习/无监督学习方法的结合。(译者注: MNIST 是一个手写数字识别库,由NYU 的Yann LeCun 等人维护。 http://yann.lecun.com/exdb/mnist/ ) 回想一下在 logistic 回归中,我们的训练集由 个已标记的样本构成: ,其中输入特征 。(我们对符号的约定如下:特征向量 的维度为 ,其中 对应截距项 。) 由于 logistic 回归是针对二分类问题的,因此类标记 。假设函数(hypothesis function) 如下: 我们将训练模型参数 ,使其能够最小化代价函数 : 在 softmax回归中,我们解决的是多分类问题(相对于 logistic 回归解决的二分类问题),类标 可以取 个不同的值(而不是 2 个)。因此,对于训练集 ,我们有 。(注意此处的类别下标从 1 开始,而不是 0)

(六)6.9 Neurons Networks softmax regression

帅比萌擦擦* 提交于 2020-01-12 03:25:31
SoftMax回归模型,是logistic回归在多分类问题的推广,即现在logistic回归数据中的标签y不止有0-1两个值,而是可以取k个值,softmax回归对诸如MNIST手写识别库等分类很有用,该问题有0-9 这10个数字,softmax是一种supervised learning方法。 在logistic中,训练集由 个已标记的样本构成: ,其中输入特征 (特征向量 的维度为 ,其中 对应截距项 ), logistic 回归是针对二分类问题的,因此类标记 。假设函数(hypothesis function) 如下: 损失函数为负log损失函数: 找到使得损失函数最小时的模型参数 ,带入假设函数即可求解模型。 在softmax回归中,对于训练集 中的类标 可以取 个不同的值(而不是 2 个),即有 (注意不是由0开始), 在MNIST中有K=10个类别。 在softmax回归中,对于输入x,要计算x分别属于每个类别j的概率 ,即求得x分别属于每一类的概率,因此假设函数要设定为输出一个k维向量,每个维度代表x被分为每个类别的概率,假设函数 形式如下: 请注意 这一项对概率分布进行归一化,使得所有概率之和为 1 。当类别数 时,softmax 回归退化为 logistic 回归。这表明 softmax 回归是 logistic 回归的一般形式。具体地说,当 时,softmax

Derivative of a softmax function explanation

生来就可爱ヽ(ⅴ<●) 提交于 2020-01-11 16:19:42
问题 I am trying to compute the derivative of the activation function for softmax. I found this : https://math.stackexchange.com/questions/945871/derivative-of-softmax-loss-function nobody seems to give the proper derivation for how we would get the answers for i=j and i!= j. Could someone please explain this! I am confused with the derivatives when a summation is involved as in the denominator for the softmax activation function. 回答1: The derivative of a sum is the sum of the derivatives, ie: d

Derivative of a softmax function explanation

浪子不回头ぞ 提交于 2020-01-11 16:16:27
问题 I am trying to compute the derivative of the activation function for softmax. I found this : https://math.stackexchange.com/questions/945871/derivative-of-softmax-loss-function nobody seems to give the proper derivation for how we would get the answers for i=j and i!= j. Could someone please explain this! I am confused with the derivatives when a summation is involved as in the denominator for the softmax activation function. 回答1: The derivative of a sum is the sum of the derivatives, ie: d

线性回归与特征归一化(feature scaling)

风格不统一 提交于 2020-01-11 03:41:43
转自:数据标准化/归一化normalization 这里主要讲连续型特征归一化的常用方法。离散参考[ 数据预处理:独热编码(One-Hot Encoding) ]。 基础知识参考: [ 均值、方差与协方差矩阵 ] [ 矩阵论:向量范数和矩阵范数 ] 数据的标准化(normalization)和归一化 数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。其中最典型的就是数据的归一化处理,即将数据统一映射到[0,1]区间上。 目前数据标准化方法有多种,归结起来可以分为直线型方法(如极值法、标准差法)、折线型方法(如三折线法)、曲线型方法(如半正态性分布)。不同的标准化方法,对系统的评价结果会产生不同的影响,然而不幸的是,在数据标准化方法的选择上,还没有通用的法则可以遵循。 归一化的目标 1 把数变为(0,1)之间的小数 主要是为了数据处理方便提出来的,把数据映射到0~1范围之内处理,更加便捷快速,应该归到数字信号处理范畴之内。 2 把有量纲表达式变为无量纲表达式 归一化是一种简化计算的方式,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为纯量。 比如,复数阻抗可以归一化书写:Z = R + jωL = R(1 +

softmax回归(理论部分解释)

拈花ヽ惹草 提交于 2020-01-10 04:59:30
前面我们已经说了logistic回归,训练样本是 , (且这里的 是d维,下面模型公式的x是d+1维,其中多出来的一维是截距横为1,这里的y=±1也可以写成其他的值,这个无所谓不影响模型,只要是两类问题就可以),训练好这个模型中 参数θ以后(或者是 这个模型,这俩是一个模型),然后给入一个新的 ,我们就可以根据模型来预测 对应label=1或0的概率了。 前面处理的是两类问题,我们想把这个两类问题扩展,即根据训练好的模型,给入一个新的 ,我们就可以根据模型来预测 对应label=1,2,…k等多个值的概率。我们首先也是最重要的部分是确定这个新的模型是什么。对于一个x,新的模型 (j=1,2..k)要加起来等于1. 我们假设新模型为: ……………………………………..……………………………………………………………………(1) (这里模型中的 是经过前面的 处理后的,每一个 都增加了一维 ) 其中 是模型的参数在实现Softmax回归时,将 用一个 的矩阵来表示会很方便,该矩阵是将 按行罗列起来得到的,如下所示: 这里说一个问题 :在logistic回归中,是两类问题,我们只用了一个θ,这里我们是不是也可以只用k-1个θk就可以表示所有的模型呢?具体就是我们只需要把 置为0.所以 =1,这样带入公式(1)中就可以少使用一个 ,我们验证一下,如果k=2即两类问题时

【深度学习】sigmoid与softmax

社会主义新天地 提交于 2020-01-09 00:53:06
sigmoid与softmax sigmoid与softmax可以神经网络的输出单元。 原理 sigmoid 预测二值型变量$y$的值,定义如下: $$\hat{y}= \sigma( \omega^{T}h+b)=\frac{1}{1+exp{-( \omega^ {T}h+b)}}$$ 通常使用最大似然来学习,因为最大似然的代价函数是$-log(y|x)$,代价函数中的log抵消了sigmoid中的exp,这样的结果是只有当$\sigma$函数的自变量非常大的时候才会有饱和,也就是梯度变得非常小。 softmax softmax最常见的多分类器的输出单元。 $$z=W^{T}h+b$$ $$y_{i}=softmax(z_{i})=\frac{exp(z_{i})}{\sum_{j}exp(z_{j})}$$ 同样,对数似然中的log可以抵消exp,而其他形式的目标函数(比如平方误差)都不能起到学习的作用。 交叉熵与softmax loss 交叉熵是衡量样本真实分布与样本预测分布的距离,分布距离越小,交叉熵的值就越小,公式如下: $$H(p,q)=\sum_{i}^{n}-p_{i}log(q_{i})$$ 其中$p$是样本真实分布,$q$是预测分布,$n$为样本数量。根据交叉熵的形式,可以写出softmax损失函数公式,$\hat{y_{i}}$是训练数据的真实标签: $$L

【深度学习】用Keras实现word2vec的CBOW模型

久未见 提交于 2020-01-07 08:37:48
前言   尽管gensim里的word2vec已经非常好用,但用别人的模型始终难以直接解决自己的问题,于是去搜有没有直接能用的Keras版,找到了两版,分别为: 版本1: keras训练word2vec代码 版本2: 【不可思议的Word2Vec】6. Keras版的Word2Vec   两位写的都很好,版本1代码上可以直接上手,版本2框架更清晰,但两位大佬的数据集都是基于多篇文章的,版本1是从微信接口里拿的,但我连接不上服务器;版本二的数据集未给,然后面向对象的写法本人不是很熟就不好改。于是就在学习版本框架理论的同时,在版本1上进行更改。   最终形成在单个文本内进行词向量训练。 数据   随便一个utf-8的中文文档就行,我这里为了求快,节选了 《天龙八部》 的第一章,记得改下编码utf-8。 停用词   也是网上扒的停用词,据说非常全, 最全中文停用词表整理(1893个) 。 def stopwordslist ( ) : #设置停用词 stopwords = [ ] if not os . path . exists ( './stopwords.txt' ) : print ( '未发现停用词表!' ) else : stopwords = [ line . strip ( ) for line in open ( 'stopwords.txt' , encoding =