最小采样频率计算公式_候选采样(candidatesampling)

更新时间:2023-07-10 01:30:11 阅读: 评论:0

最⼩采样频率计算公式_候选采样(candidatesampling)
问题的来源来⾃于:
超多分类的时候softmax会有什么问题,怎么解决?
候选采样。
⼀种训练时进⾏的优化,会使⽤某种函数(例如 softmax)针对所有正类别标签计算概率,但对于负类别标签,则仅针对其随机样本计算概率。例如,如果某个样本的标签为“⼩猎⽝”和“狗”,则候选采样将针对“⼩猎⽝”和“狗”类别输出以及其他类别(猫、棒棒糖、栅
负类别就可以从频率较低的栏)的随机⼦集计算预测概率和相应的损失项。这种采样基于的想法是,只要正类别
正类别始终得到适当的正增强,负类别
负增强中进⾏学习,这确实是在实际中观察到的情况。候选采样的⽬的是,通过不针对所有负类别计算预测结果来提⾼计算效率。
岁月静好现世安稳候选采样
大葱炒羊肉候选采样指 Softmax 针对所有正类别标签计算概率,但仅针对负类别标签的随机样本计算概率。例如,如果我们想要确定某个输⼊图⽚是⼩猎⽝还是寻⾎猎⽝图⽚,则不必针对每个⾮狗狗样本提供概率。
类别数量较少时,完整 Softmax 代价很⼩,但随着类别数量的增加,它的代价会变得极其⾼昂。候选采样可以提⾼处理具有⼤量类别的问题的效率。
Tensorflow的候选采样
1 候选采样函数
候选采样函数,从巨⼤的类别库中,按照⼀定原则,随机采样出类别⼦集。TF 提供下⾯⼏个候选采样函数, 其中前⾯三个的参数和返回值是⼀致的,第四个也很类似。具体参数和返回值可以移步 TF ⽂档。初中生早恋咋办
1.uniform_candidate_sampler
均匀地采样出类别⼦集。
1.log_uniform_candidate_sampler画蝉
按照 log-uniform (Zipfian) 分布采样。
这个函数主要⽤于处理词作类别的情况。在语⾔学中,词按照出现频率从⼤到⼩排序之后,服从 Zipfian 分布。在使⽤这个函数之前,需要对类别按照出现频率从⼤到⼩排序。
1.learned_unigram_candidate_sampler 按照训练数据中类别出现分布进⾏采样。具体实现⽅式:1)初始化⼀个 [0, range_max]的数组, 数组元素初始为1; 2) 在训练过程中碰到⼀个类别,就将相应数组元素加 1;3) 每次按照数组归⼀化得到的概率进⾏采样。
1.fixed_unigram_candidate_sampler 按照⽤户提供的概率分布进⾏采样。
如果类别服从均匀分布,我们就⽤uniform_candidate_sampler;如果词作类别,我们知道词服从 Zipfian, 我们就⽤
log_uniform_candidate_sampler; 如果我们能够通过统计或者其他渠道知道类别满⾜某些分布,我们就⽤
nn.fixed_unigram_candidate_sampler; 如果我们实在不知道类别分布,我们还可以⽤ tf.nn.learned_unigram_candidate_sampler。其实我蛮好奇 tf 内部怎么实现快速采样的,特别是 tf.nn.learned_unigram_candidate_sampler 概率分布在变的情况下
2 候选采样损失函数
候选采样函数⽣成类别⼦集。类别⼦集需要送给候选采样损失函数计算损失,最⼩化候选采样损失便能训练模型。TF 提供下⾯两个候选采样损失函数。这两个采样损失函数的参数和返回值是⼀致的, 具体参数和返回值可以移步 TF ⽂档。
商务培训2.sampled_softmax_loss
模型的最后⼀层输出是
, 经过 softmax 激活函数转成模型输出的概率
,得到 损失函数的表⽰
类别全集是
,候选类别⼦集是
,由采样类别
和真实类别
tcds组成,
团课感想
=
怎么做馅饼∪{
},
因为只有候选类别⼦集 Ci, 没有类别全集 L,我们⽆法计算
进⽽计算交叉熵损失。通过候选类别⾃⼰,我们只能计算
,那么怎么优化相关的损失函数呢,
这时的损失函数:
个⼈感觉和之前的完整采样时的反向传播计算没有太⼤差别,对于选中的类别,正常梯度回传,对于没选中的,这次训练的梯度就是0咯。
以下公式来源于⽹上,个⼈没⼤多理解。
这个函数通过
模型的交叉熵损失。候选类别⼦集由采样类别
和真实类别
组成,即 Ci=Si∪{ti}。模型最后⼀层输出是 f(xi,y), 经过 softmax 激活函数转成模型输出的概率 p(y|xi), 得
⽆法计算
,进⽽计算交叉熵损失。通过候选类别⼦集,我们只能计算
。那么怎么优化
相关的损失函数,得到
呢?我们有。
其中 K 是和 y ⽆关的数。我们得到概率计算公式和交叉熵损失。
最⼩化 J 训练模型。
2._loss
NCE Loss 和 Sampled Softmax Loss 的出发点是⼀致, 都是想使得模型输出
。它们的不同点在于 Sampled Softmax Loss 只⽀持 Single-Label 分类,⽽ NCE ⽀持 Multi-Label 分类。候选类别⼦集 Ci 由采样类别 Si 和真实类别 Ti 组成,即 Ci=Si∪Ti。对于候选类别⼦集中的每⼀个类别,都建⽴⼀个 Logistic ⼆分类问题,其损失函数为
最⼩化 J 训练模型。
参考:
TensorFlow 中的候选采样 | AlgorithmDog

本文发布于:2023-07-10 01:30:11,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1088284.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:类别   采样   候选   损失   函数
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图