首页 > 其他分享 >哈夫曼树Huffman tree

哈夫曼树Huffman tree

时间:2023-10-18 18:31:58浏览次数:43  
标签:frac 哈夫曼 tree wT Logistic wp Huffman 节点

哈夫曼树Huffman tree 一句话解释,哈夫曼树将一个softmax的多分类问题转换成了多个logistic的二分类问题 以连续词袋模型(CBOW)为例,输入多个词向量,输出层则输出最可能的w,最简的实现自然是softmax,但为了计算难度,使用哈夫曼树简化计算 p w p^wp w 为从根节点到词汇w 叶子节点对应的路径 d j w {d_j^w}d j w 表示p w p^wp w 中第j个节点对应的编码,而θ 1 w \theta^w_1θ 1 w 表示路径p w p^wp w 中的参数向量 根据上述定义,我们可以写出基于Hierarchical Softmax优化的连续词袋模型(CBOW)的条件概率: p ( w ∣ context ( w ) ) = ∏ j = 1 I w p ( d j w ∣ x w ; θ j − 1 w ) 其中,每一项都是一个Logistic回归 后半部分略去,有想法在写 负采样优化每次采样一小部分,更新一个训练样本的一小部分权重

Logistic回归 用sigmoid函数模拟阶跃函数,sigmoid函数即: σ = 1 1 + e − z = 1 1 + e − w T x \sigma =\frac{1}{1+e{-z}}=\frac{1}{1+e{-w^T x}}σ= 1+e −z

1 = 1+e −w T x

1

定义对数几率为l n y 1 − y = w T x ln\frac{y}{1-y}=w^T xln 1−y y =w T x 显然,y可视为正例的概率,1-y为负例的概率则 p ( y = 1 ) = e w T x 1 + e w T x = 1 1 + e − w T x = σ p(y=1)=\frac{e{wT x}}{1+e{wT x}}=\frac{1}{1+e{-wT x}}=\sigmap(y=1)= 1+e w T x

e w T x

= 1+e −w T x

1 =σ 则p ( y = 0 ) = 1 − σ p(y=0)=1-\sigmap(y=0)=1−σ 用梯度上升算法进行Logistic回归 w = w + ∇ f ( w ) w=w+\nabla{f(w)}w=w+∇f(w)

标签:frac,哈夫曼,tree,wT,Logistic,wp,Huffman,节点
From: https://blog.51cto.com/u_16309706/7921533

相关文章

  • Huffman Tree in C
    ////main.c//HuffmanTree////Createdbystevexiaohuzhaoon2023/10/18.//#include<stdio.h>#include<stdlib.h>//定义一个HuffmanTree的节点structHTNode{//表示权值intweight;//定义一个左节点和右节点指针structHTNode*l......
  • [题解] CF1790E - XOR Tree
    CF1790E-XORTree题意给定一颗无根树,在可以改变任意一个点的点权操作基础上,让树上任意简单路径的异或和不为\(0\),问最少需要多少次操作。思路假设某个点为根,设\(pre_x\)为\(x\)点到根的树上前缀异或和,\(a_x\)为\(x\)的点权,则\(x\)和\(y\)之间简单路径的异或和......
  • WPF控件ItemsControl、ListBox、ListView、DataGrid、TreeView、TabControl用法及区别
    1.ItemsControltemsControl是WPF中最基本的控件之一,用于显示一个数据项集合。它允许按照自定义方式呈现任何类型的对象,可以在其中使用不同的布局和面板来展示数据。ItemsControl非常灵活,可以满足各种需求。以下是一个简单的ItemsControl的XAML示例,它使用StackPanel作为布局容器,......
  • CF1873F Money Trees
    CF1873FMoneyTrees双指针好题,但是我用的队列(考虑先找出所有极长的、满足任意一个数都能被它后面的那个数整除的连续段。显然这个操作可以在\(\mathcal{O}(n)\)的时间复杂度内完成。求出每个极长连续段的答案,取\(\max\)即为最终答案。那么现在的问题就是求一个数列中,满......
  • Binary Tree Postorder Traversal
    SourceGivenabinarytree,returnthepostordertraversalofitsnodes'values.ExampleGivenbinarytree{1,#,2,3},1\2/3return[3,2,1].ChallengeCanyoudoitwithoutrecursion?题解1-递归首先使用递归便于理解。C++-Tra......
  • btree 与 b+tree 的区别
    btree:1.关键字和记录放在一起     2.越靠近根节点的记录查询速度越快b+tree:1.非叶子节点中只有关键字和指向下一个节点的索引,记录只放在叶子节点中      2.查询都需要从根节点走到叶子节点,叶子节点还要进行关键字的比较,每个记录的查询时间基本相同......
  • Oracle索引之(b-tree、bitmap、聚集、非聚集)
    Oracle索引之(b-tree、bitmap、聚集、非聚集)一、B-TREE索引一个B树索引只有一个根节点,它实际就是位于树的最顶端的分支节点。可以用下图一来描述B树索引的结构。其中,B表示分支节点,而L表示叶子节点。对于分支节点块(包括根节点块)来说,其所包含的索引条目都是按照顺序排列的(缺省是......
  • MEX Tree
    MEXTreeMEXTree-洛谷|计算机科学教育新生态(luogu.com.cn)目录MEXTree题目大意基本思路询问修改code题目大意给出一棵\(n\)个点的树,点从\(0\)到\(n-1\)编号。定义一条路径的权值是路径上所有点编号的\(mex\)。对于每个\(0\lei\len\)求出\(mex\)为\(i......
  • CF963B Destruction of a Tree 题解
    CF963BDestructionofaTree题解  洛谷题目链接  这里提供一个较为朴素的DP想法。题意简述  给定一棵树,节点个数不超过\(2\times10^5\),每次可以删掉度数为偶数的点。问最后能不能删完;能删完给出删除方案。思路分析  首先可以随便选一个点作为根。  其次,......
  • 动态树(Link-Cut Tree)
    算法思想动态树算法用于解决一类树上问题,涉及树边的连接和断开,并借助splay实现高效维护树上路径信息。算法细节见YangZhe的论文代码实现P3690【模板】动态树(LCT)#include<bits/stdc++.h>#definelllonglong#defineilinlineusingnamespacestd;intread(){in......