国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

筆記:ITQ

2019-11-06 08:48:06
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

IntroductionRelated WorksApPRoximate Nearest Neighbor SearchSimilarity Preserving Binary CodesITQ代碼

Introduction

large-scale image retrieval的主要挑戰(zhàn): 1. define similarity between images(圖片間相似度定義-cv的基礎(chǔ)問(wèn)題) 2. design compact representation for images so we can store them(設(shè)計(jì)圖片的緊湊表達(dá),高效存儲(chǔ)) 3. design fast search schemes so we can efficiently find similar images(設(shè)計(jì)高效搜索方法)

LSH:Locality-sensitive hashing. high-dimensional vectors -> discrete representation. Based on: random projections to perform spatial partitioning.

擴(kuò)展閱讀: 1. boosting. 2. restricted Boltzmann machines.

Related Works

方法總體上來(lái)說(shuō)有O(logn)O(n)兩種復(fù)雜度。第一種復(fù)雜度專注于一些數(shù)據(jù)結(jié)構(gòu),比如樹(shù);第二種是讓暴力方法更加高效。第一種的例子是kd-tree,第二種是LSH。

Similarity Preserving Binary Codes

相似度保存的二值編碼,主要有一下三步: 1. Projection learning, or ?nding a linear or nonlinear projection of the data;(映射數(shù)據(jù)) 2. Binary thresholding, or quantizing continuous projected data to binary vectors;(量化映射后的數(shù)據(jù)到二值向量) 3. Similarity computation, or ?nding distances between query and database points.(相似度計(jì)算)

ITQ

主要思路:先對(duì)原始空間的數(shù)據(jù)集X∈Rn?d用PCA進(jìn)行降維處理,設(shè)經(jīng)過(guò)PCA降維后的數(shù)據(jù)集為V∈Rn?c,該問(wèn)題就可以轉(zhuǎn)化為將該數(shù)據(jù)集中的數(shù)據(jù)點(diǎn)映射到一個(gè)二進(jìn)制超立方體的頂點(diǎn)上,使得對(duì)應(yīng)的量化誤差最小,從而得到對(duì)應(yīng)該數(shù)據(jù)集優(yōu)良的二進(jìn)制編碼。

設(shè)v∈Rc為原特征空間中某一數(shù)據(jù)點(diǎn)經(jīng)過(guò)PCA降維后的表示形式,對(duì)應(yīng)在超立方體中的頂點(diǎn)用sgn(v)∈{?1,1}c來(lái)表示,要使量化誤差最小,即v∈Rcsgn(v)∈{?1,1}c的歐式距離最小,即min||sgn(v)?v)||2,對(duì)于所有的數(shù)據(jù)點(diǎn)進(jìn)行二進(jìn)制編碼后用B表示,PCA降維后V=X?W,對(duì)整個(gè)數(shù)據(jù)集為min||B?V||2 。由于對(duì)矩陣進(jìn)行旋轉(zhuǎn)可以降低量化誤差,如下圖示: 這里寫圖片描述 從圖1可以看出,對(duì)投影后的矩陣V進(jìn)行隨機(jī)旋轉(zhuǎn)后,量化誤差降低至0.93,對(duì)于找到的最優(yōu)的旋轉(zhuǎn)矩陣,量化誤差降低至0.88(矩陣與正交矩陣相乘實(shí)際上就是對(duì)矩陣做旋轉(zhuǎn))。基于這樣一個(gè)事實(shí),考慮將投影后的數(shù)據(jù)集V進(jìn)行旋轉(zhuǎn)變換,min||B?V||2便變換為min||B?VR||2R∈Rc?c為旋轉(zhuǎn)矩陣,正交。整個(gè)問(wèn)題域就變成了min||B?VR||2的優(yōu)化問(wèn)題,即找出最優(yōu)的旋轉(zhuǎn)矩陣R和與之對(duì)應(yīng)的編碼B。 該式的優(yōu)化可以采用交替迭代的求解方法:先生成隨機(jī)矩陣并對(duì)其進(jìn)行SVD分解得到對(duì)應(yīng)的正交矩陣作為R的初始值,然后固定RBB=sgn(V×D)(注意這里截距 b=0 ,因?yàn)樵谠臻g已對(duì)數(shù)據(jù)中心化,非常重要),B求出來(lái)再通過(guò)對(duì) B×V進(jìn)行SVD更新R,交替迭代若干次即可,文中選用的是50次。 總結(jié)一下,整個(gè)過(guò)程可以概括為:先對(duì)數(shù)據(jù)集進(jìn)行PCA降維,然后尋找量化誤差最小的旋轉(zhuǎn)矩陣即可得到對(duì)應(yīng)該最優(yōu)旋轉(zhuǎn)矩陣下的特征向量的二進(jìn)制編碼。

代碼

function ITQparam = trainITQ(X, ITQparam)% Input:% X: n * d, n is the number of images% ITQparam:% ITQparam.pcaW---PCA of all the database% ITQparam.nbits---encoding length%% Output:% ITQparam:% ITQparam.pcaW---PCA of all the database% ITQparam.nbits---encoding length% ITQparam.r---ITQ rotation projectionpc = ITQparam.pcaW; % Wnbits = ITQparam.nbits; % cV = X * pc; % V% initialize with a orthogonal random rotationR = randn(nbits, nbits);% R-orthogonal[U11 S2 V2] = svd(R);R = U11(:, 1: nbits);% ITQ to find optimal rotationfor iter = 0 : 50 Z = V * R; % calculate B = UX UX = ones(size(Z, 1), size(Z, 2)) .* -1; UX(Z >= 0) = 1; % B' * V C = UX' * V; [UB, sigma, UA] = svd(C); R = UA * UB'; %fprintf('iteration %d has finished/r',iter);end% make B binary%B = UX;%B(B<0) = 0;ITQparam.r = R;
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 潼南县| 泉州市| 昌江| 枣强县| 香港 | 阿荣旗| 四子王旗| 苍梧县| 永康市| 通道| 中阳县| 龙口市| 泾阳县| 榆林市| 广德县| 韶关市| 德格县| 犍为县| 广东省| 丰台区| 昌邑市| 娄烦县| 日喀则市| 石棉县| 章丘市| 搜索| 临湘市| 富裕县| 万宁市| 武邑县| 辛集市| 德庆县| 迭部县| 庄河市| 萝北县| 墨竹工卡县| 平山县| 松阳县| 宝兴县| 思南县| 开封市|