Cartesian k-means论文理解
来源:互联网 发布:app分发平台cms 编辑:程序博客网 时间:2024/06/16 14:46
1.普通k-means
给定
其中矩阵
K-means算法之所以很难,其中一个原因是存在一个assignment过程,需要将数据集中每个点根据距离分配到离它最近的唯一的类中心所在的类别。
2.Orthogonal k-means with 2m centers
对于上述的矩阵
这时b不再是1-of-k 编码了,而是b的分量可以有0个或多个1。assignment时时间复杂度是
一个直观的想法是,如果上述矩阵
其中sgn(*)函数作用于向量的每个分量。
平移后的ok-means优化的目标函数为:
变形后为:
其中
这个形式下,最小化问题是一个Orthogonal Procrustes
problem,可以先固定
此等式可进一步变形为:
其中
{ps:这个简单理解的话就是,欧式空间上一点到原点的距离平方等于其x坐标值平方加上y坐标值平方,x和y坐标值是这个点分别在x和y方向上的投影长度;A左乘以一个矩阵R,相当于将A向R空间投影}
而矩阵
3.1. Learning ok-means
回顾下解决Orthogonal Procrustes problem的方法:
当B固定时求解这个目标式的最小值就是一个Orthogonal Procrustes problem。于是,先对矩阵做SVD分解为,更新R使得。
3.2. Approximate nearest neighbor search
在ANN中,检索有两种方法,一种是计算对database特征和query特征都进行量化后的距离,另一种是计算仅仅对database特征进行量化后与query之间的距离。分别叫SQD和AQD。SQD要比AQD快,但是效果差些。AQD相似度标准下,度量函数为:
4. Cartesian k-means
在ok-means算法中,矩阵
ck-means优化的目标函数为:
变形为:
ck-means在假设各个子空间互相独立的情况下,优化的目标函数可以化为在各个子空间进行优化。
5. Relations and related work
5.1 ITQ vs. ok-means
ITQ:
其中PCA投影矩阵
ITQ先将数据X中心化为
ok-means:
ok-means将m维空间中的超立方体上的顶点映射到特征空间,并且优化子空间的量化误差和投影误差。
重点在于ok-means采用了一个投影过程将特征空间分离了,表现为上述目标函数RHS中的第二项,同时还有个**。
5.2 ok-means vs. ck-means.
令ck-means中的参数
5.3 PQ vs. ck-means
PQ与ck-means一样将特征空间分成许多个子空间,同时假设各个子空间之间互相正交。但是PQ中没有一个需要优化的选择矩阵R,因此子空间划分对于PQ非常重要。本人也做过PQ的实验,可以访问http://blog.csdn.net/chieryu/article/details/50404920
ck-means既在子空间中优化又在空间划分上优化(通过空间旋转)。
6.实验
数据:http://corpus-texmex.irisa.fr/
MATLAB代码:https://github.com/norouzi/ckmeans
一个朋友写的C++代码:https://github.com/AnshanTJU/ckmeans
本文链接:http://blog.csdn.net/chieryu/article/details/51170843
- Cartesian k-means论文理解
- Cartesian k-means论文理解
- Cartesian k-means论文理解
- K-means Hashing: Learning Binary Compact Codes论文理解
- K-means clustering 介绍论文
- K-means clustering 介绍论文
- K-means clustering 介绍论文
- K-means算法理解
- k-means算法理解
- K-means hashing: An affinity-preserving quantization method for learning binary compact codes论文理解
- K-means最简理解
- opencv2.4.9中K-means算法理解
- 深入理解K-Means聚类算法
- 深入理解K-Means聚类算法
- K-Means
- k-means
- K-means
- k means
- 码农小汪-spring框架学习之11-Spring MVC简介
- 进制转换
- 字符编码 Unicode UTF-8,GB2312,shift-jis编码判断。
- PLSQL Developer 通过oracle客户端 连接oracle
- 【leetcode】155. Min Stack
- Cartesian k-means论文理解
- 配置 Apache 服务器支持 PHP 文件的解析
- 如何使用yarn界面查看spark job运行的情况
- ERROR 1045 (28000): Access denied for user 'hive'@'localhost' (using password: YES)
- LeetCode之20---Valid Parentheses
- java web项目搭建(spring4+springMVC+hibernate)
- 实现一个具有GetMin功能的栈
- [技术讨论]关于前几天发布的京东bug上的问题分析
- http://blog.sina.com.cn/s/blog_4452275001012vzl.html