干货 | 您所在的位置:网站首页 › 输入三个数求和及平均值 › 干货 |
阅读原文发表于: 2019-08-24 0. 引言Softmax 函数几乎是深度学习中的标配了, 在人工神经网络中,几乎无处不可见 softmax 函数的身影。可以认为 softmax 是 arg max 操作的一种平滑近似。 我将 softmax 的用途总结为两种: 分类:给定一系列类别,softmax 可以给出某输入被划分到各个类别的概率分布。由于人工智能领域的许多问题都可以抽象成分类问题,所以 softmax 最广泛的应用当属分类; 寻址:由于 softmax 的输出是一种概率分布的形式,可以用它来实现一种软性的寻址。近几年逐渐推广的(软性)注意力机制就可以认为是一种软性寻址的方式,根据各个键向量与查询向量的相似度从各个值向量中获取一定的“信息”。因此使用了 softmax 的注意力机制也可以用于外部记忆的访问。不难发现,在分类问题中,我们也可以使用 arg max 来找到对应的类别;在寻址问题中,一个直观的方法也是使用 arg max 寻找最相似的向量/记忆。但是 arg max 操作并不具有良好的数学性质,其不可导的性质使其无法直接应用基于梯度的优化方法。因此在分类和寻址两种用途中,常常都使用 softmax 函数替代 arg max。 基于这两种用途,softmax 可以在人工神经网络中充当什么样的角色,就靠诸君的想象了。这篇文章中,我想简单、粗浅地探讨一下 softmax 的一些性质与变种。 1. 基本形式给定一个 其中,分母是配分函数(Partition Function),一般简记为 直观上看,标准 softmax 函数用一个自然底数 事实上,在势能函数和配分函数中,可以采用的底数不仅仅是自然底数 其中 标准 softmax 具有非常漂亮的导数形式: 这里导数的推导可以参考@邱锡鹏老师的《神经网络与深度学习》附录 B.2.4 的推导。 在分类问题中,softmax 函数常常和交叉熵损失函数一起使用,此时交叉熵损失函数 其中 由于 softmax 函数先拉大了输入向量元素之间的差异,然后才归一化为一个概率分布,在应用到分类问题时,它使得各个类别的概率差异比较显著,最大值产生的概率更接近 1,这样输出分布的形式更接近真实分布。 但是当 softmax 函数被应用到寻址时,例如注意力机制中,softmax 这个拉大元素间差异的过程可能会导致一定的问题。假设输入向量有唯一的最大值,如果将 arg max 操作定义为指示最大值的一个 one-hot 编码函数 如果将非标准 softmax 的 插一句题外话,开篇提到 softmax 是 arg max 操作的一种平滑近似,而针对 max 操作的近似,其实有一个 LogSumExp 操作(也叫作 softmax),其导数形式就是 softmax 函数,是不是很有趣呢? 3. Softmax 的解释Softmax 可以由三个不同的角度来解释。从不同角度来看 softmax 函数,可以对其应用场景有更深刻的理解。 3.1 是 arg max 的一种平滑近似 前面提到过,softmax 可以当作 arg max 的一种平滑近似,与 arg max 操作中暴力地选出一个最大值(产生一个 one-hot 向量)不同,softmax 将这种输出作了一定的平滑,即将 one-hot 输出中最大值对应的 1 按输入元素值的大小分配给其他位置。如式 在机器学习应用中,我们往往不(直接)需要一个 arg max 的操作,这时候显然数学性质更好、更容易优化的 softmax 就是我们的第一选择。 3.2 归一化产生一个概率分布 Softmax 函数的输出符合指数分布族的基本形式 其中 不难理解,softmax 将输入向量归一化映射到一个类别概率分布,即 3.3 产生概率无向图的联合概率 从概率图模型的角度来看,softmax 的这种形式可以理解为一个概率无向图上的联合概率。因此你会发现,条件最大熵模型与 softmax 回归模型实际上是一致的,诸如这样的例子还有很多。由于概率图模型很大程度上借用了一些热力学系统的理论,因此也可以从物理系统的角度赋予 softmax 一定的内涵。 4. Softmax 的改进与变种Softmax 函数是一种简单优美的归一化方法,但是它也有其固有的缺陷。直观上看,当应用到实际问题时,其最大的问题就在于配分函数的计算:当类别的数量很多时,配分函数的计算就成为了推断和训练时的一个瓶颈。在自然语言处理中,类别常常对应词汇表中的所有词汇,这个数量之大可见一斑,如果直接采用 softmax 计算方法,计算效率会非常低。因此一般采用一些方法改进 softmax 函数,加速模型训练。这里列举几个自然语言处理中的经典改进/变种 层次化 softmax:将扁平的前面简单讨论了 softmax 的性质、解释与变种,从现在来看,似乎 softmax 已经是神经网络中的一根老油条了。Softmax 还有哪些可以挖掘的地方呢?作为一个菜鸟,只好先把这个问题抛给诸位了。 A. 补充突然觉得式 假设固定输入 不妨设 结合 即,当 当输入向量中有多个最大值,可以更宽泛地定义 arg max 操作,使其输出为一个 |
CopyRight 2018-2019 实验室设备网 版权所有 |