特征向量

线性代数之——相似矩阵

那年仲夏 提交于 2019-12-05 10:54:28
当 \(A\) 有足够的特征向量的时候,我们有 \(S^{-1}AS=\Lambda\) 。在这部分, \(S\) 仍然是最好的选择,但现在我们允许任意可逆矩阵 \(M\) ,矩阵 \(A\) 和 \(M^{-1}AM\) 称为 相似矩阵 ,并且不管选择哪个 \(M\) ,特征值都保持不变。 1. 相似矩阵 假设 \(M\) 是任意的可逆矩阵,那么 \(B = M^{-1}AM\) 相似于矩阵 \(A\) 。 \[B = M^{-1}AM \to A = MBM^{-1}\] 也就是说如果 \(B\) 相似于 \(A\) ,那么 \(A\) 也相似于 \(B\) 。如果 \(A\) 可以对角化,那么 \(A\) 相似于 \(\Lambda\) ,它们肯定具有相同的特征值。 相似的矩阵 \(A\) 和 \(M^{-1}AM\) 具有相同的特征值,如果 \(x\) 是 \(A\) 的一个特征向量,那么 \(M^{-1}x\) 是 \(B = M^{-1}AM\) 的特征向量。 \[Ax=\lambda x \to MBM^{-1}x=\lambda x \to B(M^{-1}x)=\lambda (M^{-1}x)\] 所有具有特征值 1 和 0 的 2×2 矩阵都是相似的,特征向量会随着 \(M\) 而改变,但特征值不变。上面的例子中特征值是不重复的,这种情况很好办

CNN提取图片特征,之后用SVM分类

眉间皱痕 提交于 2019-12-05 08:06:09
先用CNN提取特征,之后用SVM分类,平台是TensorFlow 1.3.0-rc0,python3.6 这个是我的一个小小的测试,下面这个链接是我主要参考的, 在实现过程中,本来想使用 vgg16 或者 VGG19 做迁移来提取特征 ,但是担心自己的算力不够,还有就是 UCI 手写数据集本来就是一个不大的数据集,使用 vgg16 或 vgg19 有点杀鸡用牛刀的感觉。于是放弃做迁移。 我的代码主要是基于下面链接来的。参考链接 点击打开链接 这个代码主要是,通过一个CNN网络,在网络的第一个全连接层也就h_fc1得到的一个一维的256的一个特征向量,将这个特征向量作为的svm的输入。主要的操作是在代码行的140-146. 同时代码也实现了CNN的过程(读一下代码就知道)。 如果你要是知道你的CNN的结构,然后就知道在全连接层输出的其实就是一个特征向量。直接用这个特征向量简单处理输入到svm中就可以。 具体的参考论文和代码数据集等, 百度网盘 来源: CSDN 作者: 邓乐乐 链接: https://blog.csdn.net/qq_27756361/article/details/80479278

基于乘积量化的快速特征匹配

半城伤御伤魂 提交于 2019-12-04 01:31:56
基于乘积量化的快速特征匹配 1、算法实现 不使用乘积量化的特征匹配方法 假设有两张图片p1、p2,分别有k1、k2个128维的sift描述子特征向量,该方法算出p1中每一个特征向量与p2中的每一个特征向量的欧式距离,距离最短的那一对特征向量构成一组匹配。该方法的计算复杂度:k1*k2*128。存储空间为:k1*128+k2*128。 基于乘积量化的快速特征匹配法 1、训练码本。将待训练的图片p1、p2、p3……的每个sift描述子特征向量分为m段,将属于同一段的所有128/m维特征向量用k-means方法聚类成n个聚类中心,得到m段包含n个聚类中心的码本。对每段的聚类结果,计算任意两个聚类中心之间距离,生成一个大小为n*n的距离矩阵,共有m个这样的距离矩阵。代码如下: % 将用于训练的sift描述子向量均分为16段,每段8维 sub_vector = cell( 16 , 1 ); for i = 1 : 16 sub_vector {i} = siftDescriptorTrain(( i - 1 )* 8 + 1 : 8 * i ,:); end C = cell( 16 , 1 ); Idx = cell( 16 , 1 ); opts = statset( 'MaxIter' , 300 ); % 对每一段进行k-means聚类,k=64 for i = 1 : 16

半监督学习(四)——基于图的半监督学习

浪子不回头ぞ 提交于 2019-12-03 01:33:49
基于图的半监督学习 以一个无标签数据的例子作为垫脚石 Alice 正在翻阅一本《 Sky and Earth 》的杂志,里面是关于天文学和旅行的文章。 Alice 不会英文,她只能通过文章中的图片来猜测文章的类别。比如第一个故事是“ Bridge Asteroid ”有一张多坑的小行星图片,那么它很明显是天文学类别的。第二个故事是“ Yellowstone Camping ”有张灰熊的图片,那么将它分类到旅行类别。但是其它文章没有图片, Alice 不能给它们分类。 Alice 是一个聪明的人,她注意到其他文章的标题 “Asteroid and Comet,” “Comet Light Curve,” “Camping in Denali,” and “Denali Airport.”她猜测如果两个文章的标题中有相同的单词,它们可能是一个类的,然后他就画出这样一幅图: 这其实就是基于图的半监督学习的一个例子。 图的概念 我们首先来看看如何从训练数据中构建出图,给定半监督数据集 , 每个数据样本(有标签 & 无标签)是图上的一个顶点,显然,图会非常大,因为无标签数据很多,一旦图构建完成,学习的过程就包括给图中的每一个定点设置标签 y 值。在图中可以通过边将有标签和无标签数据点相连,边通常是无向的,表示的是两个节点(样本)之间的相似性。将边权重记作 wij , wij 越大, xi 和

论文笔记:DeepFace: Closing the Gap to Human-Level Performance in Face Verification

匿名 (未验证) 提交于 2019-12-03 00:43:02
2014 CVPR Facebook AI研究院 简单介绍 人脸识别中,通常经过四个步骤,检测,对齐(校正),表示,分类 论文主要阐述了在对齐和表示这两个步骤上提出了新的方法,模型的表现超越了前人的工作 对齐方面主要使用了3D人脸模型来对齐人脸,表示方面使用了9层的一个CNN,其中使用了局部卷积 人脸对齐 已经存在一些人脸数据库的对齐版本(比如LFW-a),但是对齐人脸仍然是一件很困难的事,由于受到姿态(人脸的非平面性),非刚性表情等因素的影响。已经有很多方法成功用于人脸对齐,论文使用的方法是基于基准点的3D建模方法,把人脸转为3D的正脸。主要步骤为: 用LBP+SVR的方法检测出人脸的6个基准点,眼镜两个点,鼻子一个点,嘴巴三个点,如下图(a) 通过拟合一个对基准点的转换(缩放,旋转,平移)对图像进行裁剪,得到下图(b) 对图像定位67个基准点,并进行三角剖分,得到下图(c) 用一个3D人脸库USF Human-ID得到一个平均3D人脸模型(正脸),如图(d) 学习一个3D人脸模型和原2D人脸之间的映射P,并可视化三角块,如图(e) 通过相关的映射,把原2D人脸中的基准点转换成3D模型产生的基准点,得到如图(f)所示,最后的正脸就是图(g)。 人脸表示 如下图所示,训练了一个DNN来提取人脸图像的特征表示 C1和C3表示卷积层,M2表示最大池化层,“32x11x11x3

从主成分分析(PCA)到奇异值分解(SVD)

匿名 (未验证) 提交于 2019-12-03 00:41:02
主成分分析(principal factor analysis),简称PCA,是机器学习中非常常见的压缩降维方法。为什么需要压缩降维?是由于高维的样本本身存在冗余、稀疏的特点,直接把高维样本用于拟合或者模式识别,极其容易出现过拟合。而在处理实际问题时,与学习任务相关的也许仅是高维样本的某个低维分布,因而需要降维。(举个例子,如……) PCA的降维思想是,在高维的样本空间中,寻找一个低维的超平面,把所有高维样本投影于此超平面上,得到低维样本,并且使投影误差最小,或者使投影得到的样本最大可分。 紧接着上述提到的两种性质,在描述PCA的降维思想时,有以下两种定义方式: 最小误差形式 最大方差形式 可以从数学推导上证明,两种定义方式最终导出的结果等价,可以得到一样的算法。(两种方法的数学推导过程有时间再补充……) (算法流程待补充……) 总结来说,主成分分析涉及到计算数据集的均值 x x 和协方差矩阵 S S ,然后寻找协方差矩阵的对应于 M M 个最大特征值的 M M 个特征向量,从而得到投影矩阵。 PCA与SVD的关系主要体现在求解特征向量的过程。在一般介绍PCA算法原理的资料中,均是要先求得样本的协方差矩阵,然后从协方差矩阵中求解得特征值和特征向量。然而,对于归一化的样本,协方差矩阵 S = X X T S = X X T (待补充数学证明),而某些SVD的实现方法可以从样本矩阵 X

机器学习笔记:主成分分析

匿名 (未验证) 提交于 2019-12-03 00:26:01
(1)使得数据集更易使用 (2)降低算法的计算开销 (3)去除噪声 (4)使得结果容易理解 3 PCA 去除平均值 计算协方差矩阵 计算协方差矩阵的特征值和特征向量 将特征值从大到小排序 保留最上面的前N个特征向量 将数据转换到上述N个特征向量构建的新空间中 def pca(dataMat, topNfeat=9999999): #如果没有第二个参数,就返回所有新的维度 meanVals = mean(dataMat, axis=0) meanRemoved = dataMat - meanVals #remove mean covMat = cov(meanRemoved, rowvar=0) eigVals,eigVects = linalg.eig(mat(covMat)) eigValInd = argsort(eigVals) #排序 eigValInd = eigValInd[:-(topNfeat+1):-1] #去除多余成分 redEigVects = eigVects[:,eigValInd] #逆序 lowDDataMat = meanRemoved * redEigVects #把数据转换到新的维度 reconMat = (lowDDataMat * redEigVects.T) + meanVals return lowDDataMat, reconMat

R-CNN

匿名 (未验证) 提交于 2019-12-03 00:18:01
R-CNN:selective search+CNN+L-SVM的检测器 首先输入一张图片,我们先定位出2000个物体候选框,然后采用CNN提取每个候选框中图片的特征向量,特征向量的维度为4096维,接着采用svm算法对各个候选框中的物体进行分类识别。也就是总个过程分为三个程序:a、找出候选框;b、利用CNN提取特征向量;c、利用SVM进行特征向量分类 CNN特征提取阶段 1、算法实现 a、网络结构设计阶段 b、网络有监督预训练阶段 参数初始化部分: 物体检测的一个难点在于,物体标签训练数据少,如果要直接采用随机初始化CNN参数的方法,那么目前的训练数据量是远远不够的 。这种情况下,最好的是采用某些方法,把参数初始化了,然后在进行有监督的参数微调,这边文献采用的是有监督的预训练。所以paper在设计网络结构的时候,是直接用Alexnet的网络,然后连参数也是直接采用它的参数,作为初始的参数值,然后再fine-tuning训练。 网络优化求解:采用随机梯度下降法,学习速率大小为0.001; C、fine-tuning阶段 那么我们就需要把上面预训练阶段的CNN模型的最后一层给替换掉,替换成N+1个输出的神经元(加1,表示还有一个背景) (20 + 1bg) R-CNN有很多缺点: 重复计算:R-CNN虽然不再是穷举,但依然有两千个左右的候选框,这些候选框都需要进行CNN操作

[opencv]keypoint数据结构分析

匿名 (未验证) 提交于 2019-12-03 00:11:01
KeyPoint 这数据结构中有如下数据成员: angle: 角度,表示特征点的方向,通过Lowe大神的论文可以知道,为了保证方向不变形,SIFT算法通过对特征点周围邻域进行梯度运算,求得该点方向。-1为初值。 class_id :当要对图片进行分类时,我们可以用class_id对每个特征点进行区分,未设定时为-1,需要靠自己设定。 size :特征点领域的直径。 octave :代表是从金字塔哪一层提取的得到的数据。 pt :特征点的坐标。 response :响应程度,代表该点强壮大小,即该点是特征点的程度。 注意:keypoint只是保存了opencv检测到的特征点的一些基本信息,也就上面所说的这些,但每个特征点所提取出来的特征向量其实不是在这个里面,特征向量结果放在一个Mat的数据结构中。 这个数据结构才真正保存了该特征点所对应的特征向量。 来源:博客园 作者: CodeByLinXu 链接:https://www.cnblogs.com/lx17746071609/p/11591980.html

PCA,AE,VAE,RPCA,概率PCA之间的联系与区别

匿名 (未验证) 提交于 2019-12-02 23:43:01
AE 自编码器 代码:自编码器keras教程 是半监督的,自编码器是只有一层隐层节点,输入和输出具有相同节点数的神经网络 自动编码器输入的是X,我们的AE网络结构是X->H->X‘,我们的目的是让X’尽可能的等于X(X‘与X有相同维度),这样训练出来的H就可以用来表示或重构X。 用于压缩数据,但是没有泛化能力,因此不能作为生成模型 自动编码器与PCA的比较 自动编码器既能表征线性变换,也能表征非线性变换 ;而 PCA 只能执行线性变换 。 PCA可以直接得到最优的解析解,而AutoEncoders只能通过反向传播得到局部最优的数值解 。因为自动编码器的网络表征形式,所以可将其作为层用于构建深度学习网络。设置合适的维度和稀疏约束,自编码器可以学习到比PCA等技术更有意思的数据投影。 PCA PCA(Principal Component Analysis),即主成分分析方法,是一种使用最广泛的数据降维算法。PCA的主要思想是将n维特征映射到k维上,这k维是全新的正交特征也被称为主成分,是在原有n维特征的基础上重新构造出来的k维特征。通过这种方式获得的新的坐标轴,我们发现,大部分方差都包含在前面k个坐标轴中,后面的坐标轴所含的方差几乎为0。于是,我们可以忽略余下的坐标轴,只保留前面k个含有绝大部分方差的坐标轴。事实上,这相当于只保留包含绝大部分方差的维度特征