softmax

Caffe源码-LossLayer类(下)

為{幸葍}努か 提交于 2020-01-06 19:50:50
InfogainLossLayer类 EuclideanLossLayer类 HingeLossLayer类 ContrastiveLossLayer类 InfogainLossLayer类简介 InfogainLossLayer与SoftmaxWithLossLayer类似,只不过增加了一个信息增益矩阵 \(H\) ,用于指定某真实类别的数据被预测为某一类别时的权重,常用于类间样本数不均衡的情况。当矩阵 \(H\) 为单位矩阵时,等同于SoftmaxWithLossLayer。 第一个输入blob为网络的预测值,大小 \(\tilde{N} \times C \times \tilde H \times \tilde W\) ,范围 \(x_{n,k} \in [-\infty, +\infty]\) 。计算loss时使用softmax函数值作为其概率, \(\hat{p}_{n,k} = \frac{e^{x_{n,k}}}{\sum\limits_{k'=1}^{K} e^{x_{n,k'}}}\) 。 后续 假设 计算softmax时是沿着第1维(维度 \(C\) )进行的,则维度 \(C\) 的大小即为类别总数 \(K\) ,数据的总个数为外部个数(对应代码中的 outer_num_ )乘上内部个数 inner_num_ ,即 \(N=\tilde N * \tilde

Keras masking zero before softmax

自作多情 提交于 2020-01-06 07:58:22
问题 Suppose that I have the following output from an LSTM layer [0. 0. 0. 0. 0.01843184 0.01929785 0. 0. 0. 0. 0. 0. ] and I want to apply softmax on this output but I want to mask the 0's first. When I used mask = Masking(mask_value=0.0)(lstm_hidden) combined = Activation('softmax')(mask) It didnt work. Any ideas? Update: The output from the LSTM hidden is (batch_size, 50, 4000) 回答1: You can define custom activation to achieve it. This is equivalent to mask 0 . from keras.layers import

tensorflow实战 VGGnet笔记

眉间皱痕 提交于 2020-01-04 03:17:08
VGGnet简介 VGGnet结构 1.训练过程图形变化: 2.各级别网络结构图:vggnet探索卷积神经网络的深度与其性能之间的关系,反复堆叠3×3的小型卷积核和2×2的最大池化层。使用多个小型卷积层的好处:两个3×3的卷积层串联相当于1个5×5的卷积层,即一个像素会跟周围5×5的像素产生关联,感受野的大小为5×5。同理3个3×3的卷积层串联效果相当于1个7×7的卷积层。除此之外,参数会变少3×3×3<7×7。最重要的是,三个卷积层可以进行3次非线性转换。 VGGnet中使用的优化方法 1.在A-LRN中使用LRN层。但作用不大。 2.Multi-Scale方法做数据增强。 3.滑动窗口的卷积应用,减少不必要的重复运算。 4.1×1的卷积层,增加了线性变换。 VGGnet代码实现中的难点解析 1.tf.nn.softmax()函数:计算参数矩阵100×1000,默认传入的参数的一行为一个图片,每一列是一种可能的分类,计算在每一行上该图片是1000中分类的概率。‘ 在之前的Alexnet中的softmax也定义了参数,作用是先进性一次矩阵相乘得到 照片数×可能分类数 大小的矩阵在进行分类。 综上所述,该函数只进行默认的分类操作,如想要在分类前进行softmax层上的矩阵相乘的操作,需要在传入参数之前进行计算。如下图的第二段啊代码。 # 最后一个全连接层 fc8 = fc_op (

深度学习笔记------softmax回归

不羁的心 提交于 2020-01-02 08:06:38
深度学习笔记------softmax回归 分类问题 预测模型 softmax函数 评价模型 交叉熵损失函数 分类问题 我们希望我们可以通过某一些的事物特征来判断这一类事物的类别,但这些类别往往不是"非黑即白",可能有多种类别,这些类别之间的关系是离散的,这时我们需要一种模型来区分这一类特征的类别。当然也存在多种相似的类别,它们对于相关属性的反映相似,但是终究是有差距的,所以最终我们往往取的是对其拟合程度最好的一种类别来对其特征进行标记。 预测模型 模型的输入是相关训练集的各个属性,在这里也是以一种线性叠加的方式来进行构建,即: x 1 ω 1 + x 2 ω 2 + . . . . . . . + x n ω n + b = o x_1 \omega_1+x_2 \omega_2+.......+x_n \omega_n+b=o x 1 ​ ω 1 ​ + x 2 ​ ω 2 ​ + . . . . . . . + x n ​ ω n ​ + b = o ω \omega ω 为相关的权重系数,x为具体的属性值,b为一个相应的偏移量,但是这里与线性回归的不同在于这个 o o o 不在是一个简单的预测值,其实际的意义产生了变化,其名称代表了一个类别,其值的大小代表了这些属性对于这一类别的匹配程度,值越大,匹配程度越高(含负值,负值的绝对值越大匹配程度越低,这个在后面的评价函数中体现

Softmax函数

岁酱吖の 提交于 2020-01-01 09:04:10
相关概念: max函数定义就是在选取最大的值.这个最大值函数只能选择最大值 如果我想要一个能够大概率选择最大值,还能够小概率选择小值的函数.这就要用到softmax函数 softmax函数的定义:或称为归一化指数函数,是逻辑函数的推广.能够将一个含有任意实数的k维向量z压缩到另一个k维实向量 \(\sigma (z)\) 中,使得每个元素都在(0,1)之间,并且和为1. \[\sigma (z)_{j}=\frac{e^{z_{j}}}{\sum_{k=1}^{K} e^{z_{k}}}, j=1,2,...K\] 实际应用: 在神经网络中利用softmax函数来进行反向传播 :神经网络的正向传播计算的分数S1,和按照正确标注计算的分数S2之间的差距,计算Loss,才能应用反向传播 \[L_{i}=-log(\frac{e^{f_{y_{i}}}}{\sum_{j} e^{j}})\] 在优化loss过程中,我们要通过梯度下降,每次优化一个step大小的梯度,这个时候我们就要求Loss对每个权重矩阵的偏导,然后应用链式法则。那么这个过程的第一步,就是求Loss对score的偏导.score \(y_{i}\) ,先定义 \(P(y_{i})\) : \[P(y_{i})=\frac{e^{f_{y_{i}}}}{\sum_{j} e^{j}}\] loss 对score的偏导: \

softmax 函数的理解和优点

老子叫甜甜 提交于 2020-01-01 09:03:52
            我们知道max,假如说我有两个数,a和b,并且a>b,如果取max,那么就直接取a,没有第二种可能。 但有的时候我不想这样,因为这样会造成分值小的那个饥饿。所以我希望分值大的那一项经常取到 ,分值小的那一项也偶尔可以取到,那么我用softmax就可以了 现在还是a和b,a>b,如果我们取按照softmax来计算取a和b的概率, 那a的softmax值大于b的,所以a会经常取到,而b也会偶尔取到,概率跟它们本来的大小有关。 所以说不是max,而是 Soft max 那各自的概率究竟是多少呢,我们下面就来具体看一下 定义      假设我们有一个数组,V,Vi表示V中的第i个元素,那么这个元素的Softmax值就是           也就是说,是该元素的指数,与所有元素指数和的比值      这个定义可以说非常的直观,当然除了直观朴素好理解以外,它还有更多的优点     《一天搞懂深度学习》:     1.计算与标注样本的差距      在神经网络的计算当中,我们经常需要计算按照神经网络的正向传播计算的分数S1, 和按照正确标注计算的分数S2,之间的差距,计算Loss,才能应用反向传播。 Loss定义为交叉熵           取log里面的值就是这组数据正确分类的Softmax值,它占的比重越大 ,这个样本的Loss也就越小,这种定义符合我们的要求 2

softmax函数理解

喜夏-厌秋 提交于 2020-01-01 09:03:33
https://www.zhihu.com/question/23765351 因为这里不太方便编辑公式,所以很多公式推导的细节都已经略去了,如果对相关数学表述感兴趣的话,请戳这里的链接Softmax的理解与应用 - superCally的专栏 - 博客频道 - http:// CSDN.NET ---------- Softmax在机器学习中有非常广泛的应用,但是刚刚接触机器学习的人可能对Softmax的特点以及好处并不理解,其实你了解了以后就会发现,Softmax计算简单,效果显著,非常好用。 我们先来直观看一下,Softmax究竟是什么意思 我们知道max,假如说我有两个数,a和b,并且a>b,如果取max,那么就直接取a,没有第二种可能 但有的时候我不想这样,因为这样会造成分值小的那个饥饿。所以我希望分值大的那一项经常取到,分值小的那一项也偶尔可以取到,那么我用softmax就可以了 现在还是a和b,a>b,如果我们取按照softmax来计算取a和b的概率,那a的softmax值大于b的,所以a会经常取到,而b也会偶尔取到,概率跟它们本来的大小有关。所以说不是max,而是 Soft max 那各自的概率究竟是多少呢,我们下面就来具体看一下 定义 假设我们有一个数组,V,Vi表示V中的第i个元素,那么这个元素的Softmax值就是 也就是说,是该元素的指数

微信扫物上线,全面揭秘扫一扫背后的识物技术!

孤街浪徒 提交于 2019-12-30 16:21:17
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 导语| 12月23 日,微信扫物 iOS 版本正式上线。从识别特定编码形态的图片,到精准识别自然场景中商品图片,有哪些难点需要去克服? 扫物以图片作为媒介,聚合微信内部有价值的生态内容如电商,百科,资讯进行展示, 会催生哪些新的落地场景?本文将细细道来。 作者| breezecheng,腾讯 WXG 应用研究员 编辑| sukeli、尾尾 微信长期招收计算机视觉和OCR方向的人才, 欢迎简历breezecheng@tencent.com ​一. 扫一扫识物概述 1.1 扫一扫识物是做什么的? 扫一扫识物是指以图片或者视频(商品图:鞋子/箱包/美妆/服装/家电/玩具/图书/食品/珠宝/家具/其他商品)作为输入媒介来挖掘微信内容生态中有价值的信息(电商+百科+资讯,如图 1 所示),并展示给用户。这里我们基本覆盖了微信全量优质小程序电商涵盖上亿商品 SKU,可以支持用户货比 N 家并直接下单购买,百科和资讯则是聚合了微信内的搜一搜、搜狗、百度等头部媒体,向用户展示和分享与该拍摄商品相关的资讯内容。 图1 扫一扫识物功能示意图 百闻不如一试,欢迎大家更新 iOS 新版本微信 → 扫一扫 → 识物自行体验,也欢迎大家通过识物界面中的反馈按键向我们提交体验反馈。图 2 即为扫物实拍展示。 扫一扫识物实拍展示 1.2

NLP系列(7)_Transformer详解

这一生的挚爱 提交于 2019-12-27 16:31:12
Ref https://jalammar.github.io/illustrated-transformer/ , https://blog.csdn.net/han_xiaoyang/article/details/86560459 编者按:前一段时间谷歌推出的BERT模型在11项NLP任务中夺得SOTA结果,引爆了整个NLP界。而BERT取得成功的一个关键因素是Transformer的强大作用。谷歌的Transformer模型最早是用于机器翻译任务,当时达到了SOTA效果。Transformer改进了RNN最被人诟病的训练慢的缺点,利用self-attention机制实现快速并行。并且Transformer可以增加到非常深的深度,充分发掘DNN模型的特性,提升模型准确率。在本文中,我们将研究Transformer模型,把它掰开揉碎,理解它的工作原理。 正文: Transformer由论文《Attention is All You Need》提出,现在是谷歌云TPU推荐的参考模型。论文相关的Tensorflow的代码可以从GitHub获取,其作为Tensor2Tensor包的一部分。哈佛的NLP团队也实现了一个基于PyTorch的版本,并注释该论文。 在本文中,我们将试图把模型简化一点,并逐一介绍里面的核心概念,希望让普通读者也能轻易理解。 Attention is All

Softmax回归(Softmax Regression

大憨熊 提交于 2019-12-27 05:04:35
多分类问题 在一个多分类问题中,因变量y有k个取值,即 。例如在邮件分类问题中,我们要把邮件分为垃圾邮件、个人邮件、工作邮件3类,目标值y是一个有3个取值的离散值。这是一个多分类问题,二分类模型在这里不太适用。 多分类问题符合 多项分布 。有许多算法可用于解决多分类问题,像决策树、朴素贝叶斯等。这篇文章主要讲解多分类算法中的 Softmax回归(Softmax Regression) 推导思路为:首先证明多项分布属于指数分布族,这样就可以使用广义线性模型来拟合这个多项分布,由广义线性模型推导出的目标函数 即为Softmax回归的分类模型。 证明多项分布属于指数分布族 多分类模型的输出结果为该样本属于k个类别的概率,从这k个概率中我们选择最优的概率对应的类别(通常选概率最大的类别),作为该样本的预测类别。这k个概率用k个变量 , …, 表示。这个k变量和为1,即满足: 可以用前k-1个变量来表示,即: 使用广义线性模型拟合这个多分类问题,首先要验证这个多项分布是否符合一个指数分布族。定义T(y)为: 在这里,统计分量T(y)并没有像之前那样定义为T(y)=y,因为T(y)不是一个数值,而是一个k-1维的向量。使用符号 表示向量T(y)的第i个元素。 在这里引入一个新符号: ,如果括号内为true则这个符号取1,反之取0,即 , 。所以,T(y)与y的关系就可以表示为 与 关系为: 即