softmax

一文搞懂交叉熵损失

痞子三分冷 提交于 2019-12-20 06:12:42
本文从信息论和最大似然估计得角度推导交叉熵作为分类损失函数的依据。 从熵来看交叉熵损失 信息量 信息量来衡量一个事件的不确定性,一个事件发生的概率越大,不确定性越小,则其携带的信息量就越小。 设 \(X\) 是一个离散型随机变量,其取值为集合 \(X = {x_0,x_1,\dots,x_n}\) ,则其概率分布函数为 \(p(x) = Pr(X = x),x \in X\) ,则定义事件 \(X = x_0\) 的信息量为: \[ I(x_0) = -\log(p(x_0)) \] 当 \(p(x_0) = 1\) 时,该事件必定发生,其信息量为0. 熵 熵用来衡量一个系统的混乱程度,代表系统中信息量的总和;熵值越大,表明这个系统的不确定性就越大。 信息量是衡量某个事件的不确定性,而熵是衡量一个系统(所有事件)的不确定性。 熵的计算公式 \[ H(x) = -\sum_{i=1}^np(x_i)\log(p(x_i)) \] 其中, \(p(x_i)\) 为事件 \(X=x_i\) 的概率, \(-log(p(x_i))\) 为事件 \(X=x_i\) 的信息量。 可以看出,熵是信息量的期望值,是一个随机变量(一个系统,事件所有可能性)不确定性的度量。熵值越大,随机变量的取值就越难确定,系统也就越不稳定;熵值越小,随机变量的取值也就越容易确定,系统越稳定。 相对熵

词向量的发展

只愿长相守 提交于 2019-12-20 02:13:39
一、n-gram-model 谈到词向量则必须要从语言模型讲起,传统的统计语言模型是对于给定长度为m的句子,计算其概率分布P(w1, w2, ..., wm),以表示该句子存在的可能性。该概率可由下列公式计算得到: 但实际过程中句子的长度稍长便会为估计带来很大难度,因此n-gram 模型对上述计算进行简化:假定第i个词的出现仅与其前n-1个词有关,即: 实际计算中,通常采用n元短语在语料中出现的频率来估计其概率: 为保留句子原有的顺序信息,我们当然希望n越大越好,但实际上当n略大时,该n元短语在语料中出现的频率就会越低,用上式估计得到的概率就容易出现数据稀疏的问题。而神经网络语言模型的出现,有效地解决了这个问题。 二、Neural Network Language Model(NNLM) 神经网络语言模型不 使用频率来估计n元短语出现的概率 ,而是通过神经网络训练得到一个语言模型,所以会有如下优势: 首先将原始文本进行one-hot编码,在分别乘以词嵌入矩阵,得到每个词的词向量表示,拼接起来作为输入层。输出层后加上softmax,将y转换为对应的概率值。模型 采用随机梯度 下降对 进行最大化。 三、CBOW(continous Bag of words) CBOW的主要思想是将一句话中的某个词挖去,用其上下文对其进行预测,输出的时候是一个哈夫曼树,或者称之为分层softmax,

Pytorch_Seq2Seq与Attention

别来无恙 提交于 2019-12-19 07:33:26
自然语言处理是典型的序列问题,其底层算法在最近几年迅速发展,比如去年年底发布的BERT在11项自然语言处理任务中表现卓越,今年GPT-2生成文本(写作)的水平也有了显著提高。 目前这些最先进的技术都基于Transformer模型,该模型从RNN,LSTM,Seq2Seq,Attention,ConvS2S,Transformer一步步进化而来,还涉及自然语言处理的相关知识,包含的知识点太多,无法一次说清。笔者将其分成几篇,从其进化过程逐步引入。之前已经介绍过RNN及LSTM,本篇将介绍Seq2Seq和Attention算法。 翻译功能 深度学习中的自然语言处理常用于自动翻译、语言识别、问答系统、提取概要、写作等等领域。 其中自动翻译是一项非常典型的应用,在翻译过程中,输入和输出的词汇个数可长可短,不能一一对应,不同语言词汇顺序又可能不同,并且还有一词多义,一义多词,词在不同位置含义不同的情况……是相对复杂的自然语言处理问题。 先来看看人怎么解决翻译问题,面对一种完全不认识的语言,人把句子分解成词,通过查字典的方式将词转换成母语,然后再通过语法组合成句。其中主要涉及词的实际含义、内容的先后关系,两种语言对应关系。 机器既不需要了解各个词的含义和语法,也不需要字典,就能通过大量训练实现翻译功能,并且效果还不错。 这让神经网络看起来更加难以理解。 一开始的深度学习神经网络

Does the Inception Model have two softmax outputs?

 ̄綄美尐妖づ 提交于 2019-12-19 03:14:06
问题 The Inception v3 model is shown in this image: The image is from this blog-post: https://research.googleblog.com/2016/03/train-your-own-image-classifier-with.html It seems that there are two Softmax classification outputs. Why is that? Which one is used in the TensorFlow example as the output tensor with the name 'softmax:0' in this file? https://github.com/tensorflow/tensorflow/blob/master/tensorflow/models/image/imagenet/classify_image.py The academic paper for the Inception v3 model doesn

faster-rcnn

时间秒杀一切 提交于 2019-12-18 20:36:19
转载链接: http://blog.csdn.net/zy1034092330/article/details/62044941 参考博客:http://blog.csdn.net/WoPawn/article/details/52223282?locationNum=7 进经过RCNN和Fast RCNN的积淀,Ross B. Girshick在2016年提出了新的Faster RCNN,在结构上,Faster RCN已经将特征抽取(feature extraction),proposal提取,bounding box regression(rect refine),classification都整合在了一个网络中,使得综合性能有较大提高,在检测速度方面尤为明显。 图1 Faster CNN基本结构(来自原论文) 缩进依作者看来,如图1,Faster RCNN其实可以分为4个主要内容: Conv layers。作为一种CNN网络目标检测方法,Faster RCNN首先使用一组基础的conv+relu+pooling层提取image的feature maps。该feature maps被共享用于后续RPN层和全连接层。 Region Proposal Networks。RPN网络用于生成region proposals

Why use softmax only in the output layer and not in hidden layers?

我只是一个虾纸丫 提交于 2019-12-18 12:57:10
问题 Most examples of neural networks for classification tasks I've seen use the a softmax layer as output activation function. Normally, the other hidden units use a sigmoid, tanh, or ReLu function as activation function. Using the softmax function here would - as far as I know - work out mathematically too. What are the theoretical justifications for not using the softmax function as hidden layer activation functions? Are there any publications about this, something to quote? 回答1: I haven't

Why use softmax as opposed to standard normalization?

我的未来我决定 提交于 2019-12-17 15:01:12
问题 In the output layer of a neural network, it is typical to use the softmax function to approximate a probability distribution: This is expensive to compute because of the exponents. Why not simply perform a Z transform so that all outputs are positive, and then normalise just by dividing all outputs by the sum of all outputs? 回答1: There is one nice attribute of Softmax as compared with standard normalisation. It react to low stimulation (think blurry image) of your neural net with rather

Faster RCNN框架

≡放荡痞女 提交于 2019-12-17 01:03:41
欢迎访问我的个人主页 刚接触物体检测领域,学习了Faster RCNN的论文及Tensorflow版本的源码,不得不说,读源码真的过瘾…不过确实能够帮助理解框架,下面按照Faster RCNN的预测过程介绍其整体流程 整体框架 转载:https://blog.csdn.net/littlehaes/article/details/83344007 Faster RCNN整体框架包括4部分: 一. 使用VGG16或者其他成熟的图片分类模型提取 图片特征(feature map) 二. 将 图片特征 喂入RPN(Region Proposal Network)网络得到 proposals (包含第一次回归) 三. 将上两步的结果: 图片特征 和 proposals 喂入RoI Pooling层得到综合的 proposals特征 四. 根据 poposals特征 预测 物体的bounding box 和 物体的类别 (包含第二次回归) 对应下图: 图中conv(3,3,512,1,1)对应conv(filter_height,filter_width,output_channels,stride_height,stride_width) 接下来分别介绍这四部分对应的网络结构,以预测过程为例(训练过程涉及ground truth的构建,会在之后的博客中具体介绍) 一.获取图片特征

如何理解softmax

匆匆过客 提交于 2019-12-16 21:41:59
一、softmax函数 softmax用于 多分类 过程中,它将多个神经元的输出,映射到[0,1]区间内,可以看成 概率 来理解,从而来进行多分类! 假设我们有一个数组, V V V , V i V_{i} V i ​ 表示 V V V 中的第 i i i 个元素,那么这个元素的softmax值就是 S i = e V i ∑ j e V j S_{i}=\frac{e^{V_{i}}}{\sum_{j} e^{V_{j}}} S i ​ = ∑ j ​ e V j ​ e V i ​ ​ 更形象的如下图表示: softmax直白来说就是将原来输出是3,1,-3通过softmax函数一作用,就映射成为【0,1】的值,而这些值的累和为1(满足概率的性质),那么我们就可以将它理解成 概率 ,在最后选取输出结点的时候,我们就可以选取 概率最大 (也就是值对应最大的)结点,作为我们的预测目标! 举一个我最近碰到利用softmax的例子:我现在要实现基于神经网络的句法分析器。用到是基于转移系统来做,那么神经网络的用途就是帮我预测我这一个状态将要进行的动作是什么?比如有10个输出神经元,那么就有10个动作,1动作,2动作,3动作…一直到10动作。(这里涉及到nlp的知识,大家不用管,只要知道我现在根据每个状态(输入),来预测动作(得到概率最大的输出)

浅析Word2Vec

烈酒焚心 提交于 2019-12-16 02:08:06
浅析Word2Vec 1 预备内容 1.1 NLP任务 1.2 Distributional Semantics 1.3 one-hot向量 1.4 softmax函数 2 浅析Word2Vec 2.1 概述 2.2 Skip-Gram模型 2.2.1 模型的细节 2.2.2 隐层 2.2.3 输出层 2.2.4 小结 2.3 Continuous Bag of Words模型(CBOW) 2.4 加速策略1——Hierarchical Softmax 2.5 加速策略2——Negative Sampling 2.5.1 Subsampling Frequent Words 2.5.2 负采样 Negative Sampling 2.5.3 选择负样本 2.6 加速策略小结 2.7 模型训练的一些参数设定 参考文献 1 预备内容 1.1 NLP任务 NLP的目标是设计算法让计算机去理解自然语言并去解决某些问题。 所有NLP任务德第一步,就是如何将单词表示为模型的输入。为了使得大多数NLP任务表现良好,我们首先需要能够用向量表示单词的相似性和差异性。有了这些词向量,我们可以简单的用向量自身的能力来计算相似性(如Jaccard, cos等) 1.2 Distributional Semantics A word’s meaning is given by the words that