Cartesian k-means论文理解

1.普通k-means

给定n个p维数据点,D≡{Xj}nj=1,普通Kmeans算法将它们分成k个类别,每个类别有个类中心。目标函数是:

其中矩阵C的第i列是ci,分成m个类别,那么矩阵就有m列,b∈{0,1}k,且b 的模长为1,即b只有一个分量值为1,其余分量值为0。

K-means算法之所以很难,其中一个原因是存在一个assignment过程,需要将数据集中每个点根据距离分配到离它最近的唯一的类中心所在的类别。

2.Orthogonal k-means with 2m centers

对于上述的矩阵C,一共有m列,{每列是一个向量,向量的线性组合仍然是一个向量,}有m个元素的集合一共有2m个子集,让每个子集对应 一个类别。优化的目标函数如下:

这时b不再是1-of-k 编码了,而是b的分量可以有0个或多个1。assignment时时间复杂度是O(2mn),当2m非常大时,目标函数难以优化。

一个直观的想法是,如果上述矩阵C的各列互相正交,即满足CTC是一个对角矩阵。在这里。令

b′=2b?1∈Hm≡{?1,1}m,则有:

其中sgn(*)函数作用于向量的每个分量。

平移后的ok-means优化的目标函数为:

μ的计算方法是计算所有数据的平均向量。这个式子中,通过矩阵C和μ就将m维空间中的超立方体上的顶点映射到特征空间,并且使得其映射后与特征x尽可能接近。由于C的每列是互相正交的,因此可以表示成一个旋转矩阵和一个对角矩阵的积。

变形后为:

其中C≡RD,R∈Rp×m,且RTR=Im,D是m阶对角正定矩阵。

这个形式下,最小化问题是一个Orthogonal Procrustes

problem,可以先固定DB′,优化R,首先在D的后面添加p?m行,DB′就是p×n阶矩阵,对R也做相应变形使得R变成p阶方正,然后就可以使用SVD方法求解R了。由于DB′是退化了的矩阵,因此我们只需要R的前m列就可以,其余列都是对零空间的旋转变化仍然是零空间。

此等式可进一步变形为:

其中R⊥是R的正交补。其中D是m阶对角矩阵,DB′和RTX′均为m×n阶矩阵。DB′的第i行元素只能取值于{?di,+di},di=Dii,为了最小化目标函数,当RTX′的对应位置元素为正时,DB′的相应位置元素取值di,否则取值?di。根据最小化平方差原理,di的最佳取值为:

而矩阵B′的取值为:

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算法中,矩阵C的每个子矩阵都是两列,即每个子中心集合只有两个元素。但在Cartesian kmeans(ck-means)中,每个子集合有h(h>=2)个元素。类中心的个数是hm centers,但是要存储的类中心的个数是hm。在确定某个query的类中心时,从m个元素个数为h的子中心集合中各取一个中心,然后求和(其实是将中心向量按维数拼接起来)得到其中心。公式表示如下:

ck-means优化的目标函数为:

变形为:

ck-means在假设各个子空间互相独立的情况下,优化的目标函数可以化为在各个子空间进行优化。

未完,待续。。。

时间: 2025-01-04 08:48:11

Cartesian k-means论文理解的相关文章

[论文理解] CornerNet: Detecting Objects as Paired Keypoints

[论文理解] CornerNet: Detecting Objects as Paired Keypoints 简介 首先这是一篇anchor free的文章,看了之后觉得方法挺好的,预测左上角和右下角,这样不需要去管anchor了,理论上也就w*h个点,这总比好几万甚至好几十万的anchor容易吧.文章灵感来源于Newell et al. (2017) on Associative Embedding in the context of multi-person pose estimation

《Real-Time Compressive Tracking》论文理解

     这是Kaihua Zhang发表在ECCV2012的paper,paper的主题思想是利用满足压缩感知(compressive sensing)的RIP(restricted isometry property)条件的随机测量矩阵(random measurement matrix)对多尺度(multiple scale)的图像特征(features)进行降维,然后通过朴素贝叶斯分类器(naive Bayes classifier)对特征进行分类预测目标位置.   首先介绍下paper

[论文理解]关于ResNet的进一步理解

[论文理解]关于ResNet的理解 这两天回忆起resnet,感觉残差结构还是不怎么理解(可能当时理解了,时间长了忘了吧),重新梳理一下两点,关于resnet结构的思考. 要解决什么问题 论文的一大贡献就是,证明了即使是深度网络,也可以通过训练达到很好的效果,这跟以往的经验不同,以往由于网络层数的加深,会出现梯度消失的现象.这是因为,在梯度反传的时候,由于层数太深,传递过程又是乘法传递,所以梯度值会越乘越小,梯度消失在所难免.那么怎么才能解决这个问题呢?resnet提供了很好的思路. 怎么解决

R-FCN论文理解

一.R-FCN初探 1. R-FCN贡献 提出Position-sensitive score maps来解决目标检测的位置敏感性问题: 区域为基础的,全卷积网络的二阶段目标检测框架: 比Faster-RCNN快2.5-20倍(在K40GPU上面使用ResNet-101网络可以达到 0.17 sec/image); 2. R-FCN与传统二阶段网络的异同点 图1 R-FCN与传统二阶段网络的异同点相同点:首先,两者二阶段的检测框架(全卷积子网络+RoI-wise subnetwork); 其次两

[论文理解] Attentional Pooling for Action Recognition

Attentional Pooling for Action Recognition 简介 这是一篇NIPS的文章,文章亮点是对池化进行矩阵表示,使用二阶池的矩阵表示,并将权重矩阵进行低秩分解,从而使分解后的结果能够自底向上和自顶向下的解释,并巧用attention机制来解释,我感觉学到了很多东西,特别是张量分解等矩阵论的知识点. 基础概念 低秩分解 目的:去除冗余并减少模型的权值参数 方法:使用两个K*1的卷积核代替掉一个K*K的卷积核 原理:权值向量主要分布在一些低秩子空间,使用少量的基就可

[论文理解]Region-Based Convolutional Networks for Accurate Object Detection and Segmentation

Region-Based Convolutional Networks for Accurate Object Detection and Segmentation 概括 这是一篇2016年的目标检测的文章,也是一篇比较经典的目标检测的文章.作者介绍到,现在表现最好的方法非常的复杂,而本文的方法,简单又容易理解,并且不需要大量的训练集. 文章的大致脉络如图. 产生region proposal 文章提到了滑窗的方法,由于滑窗的方法缺点非常明显,就是每次只能检测一个aspect ratio,所以确

SPP Net(Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition)论文理解

论文地址:https://arxiv.org/pdf/1406.4729.pdf 论文翻译请移步:http://www.dengfanxin.cn/?p=403 一.背景: 传统的CNN要求输入图像尺寸是固定的(因为全连接网络要求输入大小是固定的) crop处理,可能不包含整个物体,还会丢失上下文信息 warping处理,会导致图像变形 以上都会导致CNN对不同scale/size泛化能力不强 于是SPP做了如下改进,即将SPP层加在最后一个卷积层后面,然后再送入FC网络. 优点 不管输入尺寸为

[论文理解] Squeeze-and-Excitation Networks

Squeeze-and-Excitation Networks 简介 SENet提出了一种更好的特征表示结构,通过支路结构学习作用到input上更好的表示feature.结构上是使用一个支路去学习如何评估通道间的关联,然后作用到原feature map上去,实现对输入的校准.支路的帮助学习到的是神经网络更加适合的表示.为了使网络通过全局信息来衡量通道关联,结构上使用了global pooling捕获全局信息,然后连接两个全连接层,作用到输入上去,即完成了对输入的重校准,可以使网络学习到更好的表示

[论文理解] Learning Efficient Convolutional Networks through Network Slimming

Learning Efficient Convolutional Networks through Network Slimming 简介 这是我看的第一篇模型压缩方面的论文,应该也算比较出名的一篇吧,因为很早就对模型压缩比较感兴趣,所以抽了个时间看了一篇,代码也自己实现了一下,觉得还是挺容易的.这篇文章就模型压缩问题提出了一种剪枝针对BN层的剪枝方法,作者通过利用BN层的权重来评估输入channel的score,通过对score进行threshold过滤到score低的channel,在连接的