精华内容
参与话题
问答
  • Softmax

    千次阅读 2019-06-08 23:44:08
    进行多分类时,就要用到softmax。       训练样本是:{(x(1),y(1)),...,(x(m),y(m))}\lbrace{(x^{(1)},y^{(1)}),...,(x^{(m)},y^{(m)})}\rbrace{(x(1),y(1)),...,(x(m),y(m))},值得注意...

    模型

           进行多分类时,就要用到softmax。

          训练样本是:{(x(1),y(1)),...,(x(m),y(m))}\lbrace{(x^{(1)},y^{(1)}),...,(x^{(m)},y^{(m)})}\rbrace,值得注意是,每个样本x(i)x^{(i)}都是n+1维向量,当然了,其中x(0)=1x^{(0)}=1是对应的截距项,也就是说,每个样本都是具有n+1维的向量,并且第1维都是为1(方便与参数θ的第0维与偏置b相乘)。

          我们要做的是分类,因此当然想知道,当输入x时,,x分别属于每一个类的概率,概率最大的那个就是我们认为的属于的类。
          让输出为一个向量,并且有k维,分别代表属于i类的概率。当然还要进行归一化,让输出的向量元素的值和为1。

                                              在这里插入图片描述
    其中,eθTx(i)e^{\theta^Tx^{(i)}}就是yiy_{i},因此就是对输出进行归一化。
          我们将hθ(x(i))h_θ(x^{(i)})进行了变换,现在对于输入x(i)x^{(i)}输出的是一个向量,并不是像sigmoid一样输出的是一个0~1的数。

          softmax回归将样本x(i)x^{(i)}标记为类别jj的概率为:

                                                                在这里插入图片描述

    模型参数

          softmax模型的参数是k个n+1维的θ组成的矩阵,输出的是向量:
                                                                            在这里插入图片描述

    代价函数

          softmax 的代价函数为:
                                                    在这里插入图片描述
    其中I{}I{\lbrace\cdot\rbrace}是示性函数,示性函数指I{}=1I{\lbrace值为真的表达式\rbrace}=1I{}=0I{\lbrace值为假的表达式\rbrace}=0。因此我们的目的还是最小化代价函数,可以用梯度下降来求,下面来推导下梯度。
    梯度推导参见:https://blog.csdn.net/u012328159/article/details/72155874

    文章参考

    https://blog.csdn.net/u012328159/article/details/72155874
    https://www.jianshu.com/p/ffa51250ba2e
    https://blog.csdn.net/Hungryof/article/details/50395062

    展开全文
  • 深度学习笔记(13) Softmax分类

    万次阅读 2019-06-08 09:24:14
    Softmax 回归、练一个Softmax分类器

    深度学习笔记(13) Softmax分类


    1. Softmax 回归

    有一种logistic回归的一般形式,叫做 Softmax回归
    能在试图识别某一分类时做出预测
    或者说是多种分类中的一个,不只是识别两个分类

    假设不单需要识别猫,而是想识别猫,狗和小鸡
    把猫加做类1,狗为类2,小鸡是类3
    如果不属于以上任何一类,就分到“其它”或者说“以上均不符合”这一类,把它叫做类0

    用大写的C来表示输入会被分入的类别总个数
    建立一个神经网络,其输出层有4个,或者说C个输出单元
    因此n,即输出层也就是L层的单元数量,等于4,或者一般而言等于C
    则输出层单元的数字代表这4种类型中每个的概率

    做到这一点的标准模型要用到Softmax层,以及输出层来生成输出
    对于L层,得到的z值
    在这里插入图片描述用这个元素取幂方法来计算 t:
    在这里插入图片描述
    把四个数字加起来得到176.3
    最终 a[l] = t / 176.3
    第一个节点输出 e5/176.3=0.842,也就是概率84.2%

    Softmax激活函数的特殊之处在于
    因为需要将所有可能的输出归一化,就需要输入一个向量,最后输出一个向量
    Softmax分类器还可以代表的决策边界


    2. 练一个Softmax分类器

    简单来说就是用临时变量t将它归一化,使总和为1,于是这就变成了a[L]
    注意到向量z中,最大的元素是5
    而最大的概率也就是第一种概率,Softmax把向量z变成这个向量
    在这里插入图片描述
    在Softmax分类中,一般用到的损失函数是来训练这个神经网络
    这就意味着,如果试图将它变小
    因为梯度下降法是用来减少训练集的损失的
    要使它变小的唯一方式就是使 -logy^\widehat{y}1 变小,即需要使 y^\widehat{y}1 尽可能大
    整个训练集的损失
    在这里插入图片描述


    参考:

    《神经网络和深度学习》视频课程


    相关推荐:

    深度学习笔记(12)Batch归一化网络
    深度学习笔记(11)超参数调试
    深度学习笔记(10)优化算法(二)
    深度学习笔记(9) 优化算法(一)
    深度学习笔记(8) 实践层面(三)


    谢谢!

    展开全文
  • Gumbel Max以及Gumbel Softmax的理论证明见: 漫谈重参数:从正态分布到Gumbel Softmax 我用js写了一个利用Gumbel Max来对离散分布进行重参数化的过程,地址: Gumbel Max Demo 效果如下: 可以从理论上证明,利用...

    Gumbel Max以及Gumbel Softmax的理论证明见: 漫谈重参数:从正态分布到Gumbel Softmax

    我用js写了一个利用Gumbel Max来对离散分布进行重参数化的过程,地址: Gumbel Max Demo

    效果如下:
    在这里插入图片描述
    可以从理论上证明,利用Gumbel Max得到的分布等价于原来的离散分布。实验也验证了这点,从Demo可以看出,随着采样数量的增大,两个分布的KL散度的减小。例如下面是采样1000次和10000次得到的分布。

    在这里插入图片描述

    在这里插入图片描述

    展开全文
  • The Max Trick when Computing Softmax

    千次阅读 2016-06-12 11:16:21
    The softmax function appears in many machine learning algorithms. The idea is, if you have a set of values, to scale them so they sum to 1.0 and therefore can be interpreted as probabilities.For ...

    The softmax function appears in many machine learning algorithms. The idea is, if you have a set of values, to scale them so they sum to 1.0 and therefore can be interpreted as probabilities.

    For example, suppose you have three values, (x0, x1, x2) = (3.0, 5.0, 2.0). The softmax function for any value xj expressed mathematically is:

    SoftmaxEquation
    这里写图片描述
    In words, find the sum of e raised to each x value. The softmax for a particular x is e raised to x divided by the sum. So:

    exp(3.0) = 20.0855
    exp(5.0) = 148.4132
    exp(2.0) = 7.3891
    sum      = 175.8878

    And the softmax values are:

    s(3.0) = 20.0855 / 175.8878  = 0.12
    s(5.0) = 148.4132 / 175.8878 = 0.84
    s(2.0) = 7.3891 / 175.8878   = 0.04

    Notice the softmax values sum to 1.0. In practice, calculating softmax values can go wrong if an x value is very large — the exp() of a large number can be huge, which makes the sum huge, and dividing by a huge number can cause arithmetic computation problems.

    A trick to avoid this computation problem is subtract the largest x value from each x value. It turns out that the properties of the exp() function give you the same resuilt but you avoid large numbers.

    For (3.0, 5.0, 2.0), the largest value is 5.0. Subtracting 5.0 from each gives (-2.0 0.0, -3.0), and so:

    exp(-2.0) = 0.1353
    exp(0.0)  = 1.0000
    exp(-3.0) = 0.0498
    sum       = 1.1852

    And then:

    s(3.0) = 0.1353 / 1.1852 = 0.12
    s(5.0) = 1.0000 / 1.1852 = 0.84
    s(2.0) = 0.0498 / 1.1852 = 0.04

    which are the same softmax values as when computed directly.

    展开全文
  • 我们知道卷积神经网络(CNN)在图像领域的应用已经非常广泛了,一般一个CNN网络主要包含卷积层,池化层...你对softmaxsoftmax loss,cross entropy了解吗?相信很多人不一定清楚。虽然网上的资料很多,但是...
  • softmax,argmax,soft-argmax 理解

    千次阅读 2019-03-16 22:29:59
    参考... 1)softmaxsoftmax是一种指数归一化函数。 import numpy as np data=np.array([0.1, 0.3, 0.6, 2.1 ,0.55]) np.exp(data)/np.sum(np.exp(data)) # softmax ou...
  • torch.max和torch.softmax

    2020-03-06 12:50:55
    if __name__ == '__main__': import torch import torch.nn.functional as F input = torch.randn(2, 2) print(input) ... b = torch.softmax(input, dim=0) # 按列SoftMax,列和为1 print(b) ...
  • 小白都能看懂的softmax详解

    万次阅读 多人点赞 2018-09-02 23:35:37
    1.softmax初探 在机器学习尤其是深度学习中,softmax是个非常常用而且比较重要的函数,尤其...顾名思义,softmax由两个单词组成,其中一个是max。对于max我们都很熟悉,比如有两个变量a,b。如果a>b,则max为...
  • c++ Sigmoid/Softmax/Argmax

    2018-09-07 18:11:12
    import sys import os import re def martix(): tmp=[] while 1: x=sys.stdin.readline() a= x.strip().split(' ') line=[int(v) for v in a] if line[0]!=-1: tmp.append(line) if l...
  • 关于softmax、argmax、softargmax   在阅读LIFT:Learned Invariant Feature Transform一文时,文中第1节提到为了保证端到端的可微性,利用softargmax来代替传统的NMS(非极大值抑制)来挑选极值点位置。由于只...
  • Softmax Regression

    千次阅读 2017-03-06 15:16:46
    Softmax Regression是Logistic回归的推广,Logistic回归是处理二分类问题的,而Softmax Regression是处理多分类问题的。下面就是TensorFlow使用Softmax回归的例子:# Import MINST data import input_data mnist = ...
  • 在利用torch.max函数和F.Ssoftmax函数时,对应该设置什么维度,总是有点懵,遂总结一下: 首先看看二维tensor的函数的例子: import torch import torch.nn.functional as F input = torch.randn(3,4) print...
  • 1、tensorflow.nn.sparse_softmax_cross_entropy_with_logits 2、tensorflow.argmax
  • 主要介绍了浅谈pytorch中torch.max和F.softmax函数的维度解释,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

空空如也

1 2 3 4 5 ... 20
收藏数 277,208
精华内容 110,883
关键字:

max