%%
%%研二了,开始磕盐了hh,方向是机器学习核方法,之前接触的不是很多,感觉理论性很强,硕士慎入坑啊。。。。
%%老师推荐阅读的第一篇文章就是《Rehashing Kernel Evaluation in High Dimensions》,连带参考文献已经读了不止三遍了,还是感觉有很多东西没有弄明白
%%想先写出来整理一下思绪,后面理解深入了会再补充改正
%%
- 核密度估计(KDE)
密度估计问题可以分为参数密度估计和非参数密度估计。
参数密度估计是先根据先验知识假设数据分布,通过训练样本学习分布的参数。
非参数密度估计不基于任何先验知识,通过将样本划分为不同的区域,估计每个区域的概率来近似数据的密度估计。
当数据集中数据的数量N很大时,我们近似将落入区域R的样本数量K占总样本数量的比例作为查询点的密度估计。
假设区域R足够小,那么内部每一点的概率都是一样的,单个点的概率乘区域体积就是区域概率P
结合上面两个式子,可以得到,查询点的概率密度:
核密度估计是直方图密度估计的一种改进:假设R为d维空间中一个以查询q为中心的超立方体,定义核函数表示一个样本是否落入超立方体中。核函数有远小近大的特点,因此和查询点离得近的点,核函数值大,接近1,此点落在查询点的近邻区域中,其密度值可以用来估计查询点的密度。
- HBE
HBE(Hashing-Based-Estimators):
(1)采样m个哈希函数
(2)使用每个哈希函数在数据集 P上将所有数据映射到相应的哈希桶中,建立起哈希表,每个哈希函数都能建立一个哈希表,建立起m个哈希表
(3)在每个哈希表上:找到查询点映射到的哈希桶,如果桶内除了查询点没有别的点,则返回0;否则,从桶内随机选取一个点。
(4)这样,我们至多选取了m个点用来估计查询点的密度
(?这里为什么要除碰撞几率?
碰撞几率用来评估哈希函数,如果通过哈希函数选出的点和查询点的碰撞几率高,则会赋予此哈希函数对应的预测更高的权重,那么为什么是除碰撞几率?)
******关于碰撞几率*****
在<Locality-Sensitive Hashing Schme Based on p-Stable Distribution>这篇文章中提到,eLSH的哈希函数为
用点乘表示投影,形象的说,就是将数据点投影到随机生成点的高维直线上,然后将直线切分成长度为w的线段最终投影所在的段就是映射成的哈希值,这满足位置敏感性,保持了数据点在原始空间中的距离关系。w是最重要的参数,调得过大,数据被划分的一个桶中,得不到有效地区分,调的过小,起不到局部敏感的效果。还有一个参数k表示哈希表中哈希函数的个数。
- 确定方差界
- Adaptive Mean Relaxation(AMR)
首先,猜测估计结果,利用猜测的结果确定方差界,而采样个数和方差界有关(?),确定了方差界就确定了采样个数,然后利用HBE采样至多m个样本,利用这些样本生成查询点的密度估计,最后取结果的平均值作为最后的实验结果。