深度学习中的softmax和FastText所用的分层softmax区别

本文探讨了在深度学习中,softmax层的计算效率问题及其解决方案——层次Softmax。层次Softmax利用哈夫曼树结构优化了计算过程,减少了计算复杂度,尤其适用于高维稀疏数据,如词向量的训练。通过构建带权路径最短的二叉树,即哈夫曼树,可以显著降低计算每个词的概率所需的时间。层次Softmax的编码方式与哈夫曼编码相似,对于高频词汇,计算路径更短,从而提高整体计算效率。
摘要由CSDN通过智能技术生成
  • 深度学习中的softmax

在进行最优化的求解过程中:从隐藏层到输出的Softmax层的计算量很大,因为要计算所有词的Softmax概率,再去找概率最大的值,所以计算时间会比较久;

  • FastText所用的分层softmax:Hierarchical Softmax(层次Softmax)
  1. 层次softmax存储使用哈夫曼树。

哈夫曼树是一种带权路径长度最短的二叉树,也称为最优二叉树

  1. 加下来比较下最优二叉树和普通二叉树的区别:

在这里插入图片描述
如上图所示:

  • 图a中的数字表示权重,图a是常见的二叉树,图b就是图a转换过的最优二叉树。
  • 图a中权重表示重要程度,可以看出,D是最重要的,那么有这样一个规则:最重要的放在最前面,由此构造了图b的哈夫曼树。

它们的带权路径长度分别为:

图a:WPL = 5 * 2 + 7 * 2 + 2 * 2 +13 * 2 = 54

图b:WPL = 5 * 3 + 2 * 3 + 7 * 2 + 13 * 1 = 48

可见,图b的带权路径长度较小,我们可以证明图b就是哈夫曼树。

哈夫曼树的构造

例子:

有A B C D 四个词,数字表示词频,构造过程如下:
在这里插入图片描述

  • 哈夫曼树编码

左子树为0,右子树为1
在这里插入图片描述

那么D编码为0,B编码为10,C编码为110,A编码为111。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值