Rehashing Kernel Evaluation in High Dimensions阅读笔记

%%

%%研二了,开始磕盐了hh,方向是机器学习核方法,之前接触的不是很多,感觉理论性很强,硕士慎入坑啊。。。。

%%老师推荐阅读的第一篇文章就是《Rehashing Kernel Evaluation in High Dimensions》,连带参考文献已经读了不止三遍了,还是感觉有很多东西没有弄明白

%%想先写出来整理一下思绪,后面理解深入了会再补充改正

%%

  • 核密度估计(KDE)

  密度估计问题可以分为参数密度估计和非参数密度估计。

  参数密度估计是先根据先验知识假设数据分布,通过训练样本学习分布的参数。

  非参数密度估计不基于任何先验知识,通过将样本划分为不同的区域,估计每个区域的概率来近似数据的密度估计。

  当数据集中数据的数量N很大时,我们近似将落入区域R的样本数量K占总样本数量的比例作为查询点的密度估计。

Rehashing Kernel Evaluation in High Dimensions阅读笔记  假设区域R足够小,那么内部每一点的概率都是一样的,单个点的概率乘区域体积就是区域概率P

Rehashing Kernel Evaluation in High Dimensions阅读笔记  结合上面两个式子,可以得到,查询点的概率密度:

Rehashing Kernel Evaluation in High Dimensions阅读笔记  核密度估计是直方图密度估计的一种改进:假设R为d维空间中一个以查询q为中心的超立方体,定义核函数表示一个样本是否落入超立方体中。核函数有远小近大的特点,因此和查询点离得近的点,核函数值大,接近1,此点落在查询点的近邻区域中,其密度值可以用来估计查询点的密度。

Rehashing Kernel Evaluation in High Dimensions阅读笔记

  Rehashing Kernel Evaluation in High Dimensions阅读笔记

  Rehashing Kernel Evaluation in High Dimensions阅读笔记

  •   HBE

  HBE(Hashing-Based-Estimators):

(1)采样m个哈希函数

(2)使用每个哈希函数在数据集 P上将所有数据映射到相应的哈希桶中,建立起哈希表,每个哈希函数都能建立一个哈希表,建立起m个哈希表

(3)在每个哈希表上:找到查询点映射到的哈希桶,如果桶内除了查询点没有别的点,则返回0;否则,从桶内随机选取一个点。

(4)这样,我们至多选取了m个点用来估计查询点的密度

Rehashing Kernel Evaluation in High Dimensions阅读笔记

  

(?这里为什么要除碰撞几率?

碰撞几率用来评估哈希函数,如果通过哈希函数选出的点和查询点的碰撞几率高,则会赋予此哈希函数对应的预测更高的权重,那么为什么是除碰撞几率?)

******关于碰撞几率*****

在<Locality-Sensitive Hashing Schme Based on p-Stable Distribution>这篇文章中提到,eLSH的哈希函数为

Rehashing Kernel Evaluation in High Dimensions阅读笔记

  用点乘表示投影,形象的说,就是将数据点投影到随机生成点的高维直线上,然后将直线切分成长度为w的线段最终投影所在的段就是映射成的哈希值,这满足位置敏感性,保持了数据点在原始空间中的距离关系。w是最重要的参数,调得过大,数据被划分的一个桶中,得不到有效地区分,调的过小,起不到局部敏感的效果。还有一个参数k表示哈希表中哈希函数的个数。

Rehashing Kernel Evaluation in High Dimensions阅读笔记

  • 确定方差界

  Rehashing Kernel Evaluation in High Dimensions阅读笔记

  • Adaptive Mean Relaxation(AMR)

  Rehashing Kernel Evaluation in High Dimensions阅读笔记

  首先,猜测估计结果,利用猜测的结果确定方差界,而采样个数和方差界有关(?),确定了方差界就确定了采样个数,然后利用HBE采样至多m个样本,利用这些样本生成查询点的密度估计,最后取结果的平均值作为最后的实验结果。

 

  

 

上一篇:Python 爬虫利器二之 Beautiful Soup 的用法


下一篇:面向新手解析python Beautiful Soup基本用法