词袋向量及其计算方法
词袋向量及其计算方法
词袋模型基础
(略)
词袋向量的特点
通过词袋模型,一副图片可以用词袋向量描述。词袋向量的维度等于词典的维度(词典中单词的个数),故词袋向量往往是超高维的向量,几万,几十万的都有可能。这种超高维的特征一般是不能用的,但是索性词袋向量同时也是稀疏的,在几十万维度中非零项往往只有几百。这种高维稀疏特征带来的一个显著的好处就是区分性,正因此,它几乎成为场景识别,回环检测的主流特征。
词袋向量的计算
对于一个\(n\)维度词袋向量\(bow=\left\{ word_{1},word_{2},...,word_{n}\right\}\)中任意一个单词\(word_{i} ,i \in [1,n]\)有
\[word_{i}=value_{i} \cdot weight_{i}
\]
也就是说单词的计算是其值乘以单词的权重,值来源于图片,是变化的,权与图片无关是恒定的。值有3种:二进制,频数,频率(TF),权有两种:恒为1和IDF权重。
\[valuetype=\left\{\begin{matrix}
二进制\\
频数\\
频率(\mathrm{TF})
\end{matrix}\right. ,
weighttype=\left\{\begin{matrix}
1\\
\mathrm{IDF}
\end{matrix}\right.\]
他们常见的搭配如下表:
值 | 权 | 方法 |
---|---|---|
二进制 | 1 | 二进制-1 |
频数 | 1 | 频数-1 |
频率 | 1 | TF-1 |
频率 | IDF | TF-IDF |
上述方法中的三种在DBoW2中都可选(binary,TF,TF-IDF),其中TF-IDF是回环检测中比较常用的一种词袋向量计算方法。它有效衡量了偶然性和区分性,TF词频是单词在图片中出现的频率,越高说明此单词越不可能是噪声。IDF是出现该单词场景占比的倒数的对数,越大,说明该词越不常见,区分度越好。对于离线词典来说,IDF值在词典训练的过程中就确定了,例如DBoW2中ymal词典文件中记录了每个节点的权(1或IDF)。但是对于在线的次词典创建来说,IDF是变动的,因为每次都会有新的图片加进来,所以严格讲使用TF-IDF的在线BOW是不存在词袋向量的,bayes框架多用这种去计算当前观测到各个场景的\(likehood\)(bayes框架不需要图像特征,只需要似然)。