特征向量

深入浅出:矩阵的本质是什么(下)

China☆狼群 提交于 2020-04-30 13:46:14
深入浅出:矩阵的本质是什么(下) (一) 如果不熟悉线性代数的概念,要去学习自然科学,现在看来就和文盲差不多。”,然而“按照现行的国际标准,线性代数是通过公理化来表述的,它是第二代数学模型,这就带来了教学上的困难。” * 矩阵究竟是什么东西? 向量可以被认为是具有n个相互独立的性质(维度)的对象的表示,矩阵又是什么呢?我们如果认为矩阵是一组列(行)向量组成的新的复合向量的展开式,那么为什么这种展开式具有如此广泛的应用?特别是,为什么偏偏二维的展开式如此有用?如果矩阵中每一个元素又是一个向量,那么我们再展开一次,变成三维的立方阵,是不是更有用? * 矩阵的乘法规则究竟为什么这样规定? 为什么这样一种怪异的乘法规则却能够在实践中发挥如此巨大的功效?很多看上去似乎是完全不相关的问题,最后竟然都归结到矩阵的乘法,这难道不是很奇妙的事情?难道在矩阵乘法那看上去莫名其妙的规则下面,包含着世界的某些本质规律?如果是的话,这些本质规律是什么? * 行列式究竟是一个什么东西? 为什么会有如此怪异的计算规则?行列式与其对应方阵本质上是什么关系?为什么只有方阵才有对应的行列式,而一般矩阵就没有(不要觉得这个问题很蠢,如果必要,针对m x n矩阵定义行列式不是做不到的,之所以不做,是因为没有这个必要,但是为什么没有这个必要)?而且,行列式的计算规则,看上去跟矩阵的任何计算规则都没有直观的联系

HOG算法基础

感情迁移 提交于 2020-04-29 11:52:30
实现思路步骤: 1.对原图像gamma校正,img=sqrt(img); 2.求图像竖直边缘,水平边缘,边缘强度,边缘斜率。 3.将图像每16*16(取其他也可以)个像素分到一个cell中。对于256*256的lena来说,就分成了16*16个cell了。 4.对于每个cell求其梯度方向直方图。通常取9(取其他也可以)个方向(特征),也就是每360/9=40度分到一个方向,方向大小按像素边缘强度加权。 5.每2*2(取其他也可以)个cell合成一个block,所以这里就有(16-1)*(16-1)=225个block。最后归一化直方图。 6.所以每个block中都有2*2*9个特征,一共有225个block,所以总的特征有225*36个。 当然一般HOG特征都不是对整幅图像取的,而是对图像中的一个滑动窗口取的。 形象化的用一个流程图显示: matlab实现代码:参考别人的修改的 clear;clc; img =imread( ' E:\mat\lena.jpg ' );% 图片位置 % 获取图像,尺寸,并将图像resize成step的最近整数倍 img = double (img); figure;imshow(img,[]); % 显示图像 step = 8 ; %step* step个像素作为一个cell [m1 ,n1] =size(img);% 获取图像尺寸 img

海量数据检索的利器

[亡魂溺海] 提交于 2020-04-28 21:28:03
检索:解决的最大问题就是如何做到低延迟、快速匹配   采用局部敏感哈希:lsh   FaceBook的开源数据包:pysparnn   解决问题:稀疏数据的近邻搜索!   源代码网址:http://www.github.com/facebookresearch/pysparnn 测试源码: """ test """ import os import pysparnn.cluster_index as ci from sklearn.feature_extraction.text import TfidfVectorizer DIR_PATH = os.path.dirname(os.path.abspath( __file__ )) data = [ " 你好 世界 " , " 哦 世界 在这里 " , " 和 他 一起 玩 " , " 你 喜欢 玩 篮球 " , ] tv = TfidfVectorizer() tv.fit(data) # 特征向量 features_vec = tv.transform(data) # 建立搜索索引 cp = ci.MultiClusterIndex(features_vec, data) # 搜索带有索引的 search_data = [ " 哦 在这里 " , " 我 喜欢 玩 足球 " ] search_feature_vec = tv

寻找通用表征:CVPR 2020上重要的三种解决方案

a 夏天 提交于 2020-04-28 20:30:20
「道可道,非常道」,AI 领域的表征却一直在向着「常道可道」的方向前进,让可以表征的东西越来越接近「常道」。2017 年,DARPA 提出的第三波机器学习概念 [1] 中,其中一个方向也是找到更加通用的表征,从而让 AI 从当前「精心定义」过的任务中解脱出来,能够完成更加复杂的任务,更进一步接近人类的表现。为了解决这个问题,主要有两个方向——找到新的表征方式 [2](更有效的计算方式或是全新的表征)或是提升当前表征计算方法的通用性 [3, 4]。本文涉及了在今年 CVPR 中提出的三个解决方案,先是说明了如何改进现有的表征,然后说明了如何提升表征的表现,最后基于多任务学习说明了如何处理不太相关的两个任务的表征。本文对每篇论文的描述中会先说明任务和算法概述(方便大概了解论文),再进行算法细节的讨论(如果想深入了解可以把后面部分也看完)。 机器之心分析师网络,作者:王子嘉,编辑:Joni Zhong。 1. Distribution-Aware Coordinate Representation for Human Pose Estimation 论文链接: https:// arxiv.org/abs/1910.0627 8 1.1 任务描述 本文的目标任务是人类姿态估计(human pose estimation),主要目的就是检测任意图片中人类关节的空间位置(坐标)

线性代数重新学习之lambda矩阵

∥☆過路亽.° 提交于 2020-04-26 23:38:44
重新学习线性代数(一) 写这篇文章是主要目的是为了解决在学习 现代控制理论 中所遇到的困难. latex公式感谢 $\lambda$矩阵 什么是$\lambda$矩阵? 矩阵中的元素是以$\lambda​$为自变量的多项式的矩阵称之为$\lambda​$-矩阵(或多项式矩阵). $\lambda$-矩阵的秩和n阶$\lambda​$-阵的奇异性 略,和数矩阵一致.只要$\lambda​$矩阵中有一个r阶子式不为零而所有r+1阶子式全为零,则称该矩阵的秩为r,即$rank(A)=r​$ ,如果n阶方阵满足$rank(A)=n​$,则称之为满秩(非奇异). 可逆$\lambda$矩阵的行列式一定是一个非零 常数 一定是 常数 ,$\lambda$的多项式也不行. 初等变换和初等矩阵 与数矩阵一致.$\lambda$矩阵的初等变换和初等矩阵都是 可逆 的 矩阵的等价 与数矩阵一致.两个$\lambda$矩阵等价的充要条件是: 两个矩阵是同型的(阶次相同)可以通过有限次初等变换互相转化 . 一般记作 $A(\lambda)\cong B(\lambda)$ 显然,等价的两个矩阵具有相同的秩. smith标准型(与smith正交化区分) 对于$\lambda$矩阵A($\lambda$),假设$rank(A)=r$,存在 $$A(\lambda)\cong D(\lambda)=\left

matlab练习程序(对应点集配准的四元数法)

痞子三分冷 提交于 2020-04-26 15:43:07
这个算是ICP算法中的一个关键步骤,单独拿出来看一下。 算法流程如下: 1.首先得到同名点集P和X。 2.计算P和X的均值up和ux。 3.由P和X构造协方差矩阵sigma。 4.由协方差矩阵sigma构造4*4对称矩阵Q。 5.计算Q的特征值与特征向量。其中Q最大特征值对应的特征向量即为最佳旋转向量q。 6.通过四元数q得到旋转矩阵R。 7.根据R计算最佳平移向量qr。 具体公式我就不贴图了,可以参考这篇 “ ICP算法在点云配准中的应用” 论文的3.1节。 处理效果如下: 原始点集: 其中蓝点为原始点集,红点为旋转平移后的点集。 配准后点集: 计算得到的旋转平移矩阵,通过对蓝点集进行转换得到绿点集,比较红点集与绿点集是否基本一致。 matlab代码如下: clear all; close all; clc; %生成原始点集 X=[];Y=[];Z=[]; for i=-180:2:180 for j=-90:2:90 x = i * pi / 180.0; y = j * pi / 180.0; X =[X,cos(y) * cos(x)]; Y =[Y,sin(y) * cos(x)]; Z =[Z,sin(x)]; end end P=[X(1:3000)' Y(1:3000)' Z(1:3000)']; %生成变换后点集 i=0.5;j=0.3;k=0.7; Rx=[1

无监督学习-主成分分析和聚类分析

耗尽温柔 提交于 2020-04-26 06:32:46
聚类分析(cluster analysis)是将一组研究对象分为相对同质的群组(clusters)的统计分析技术,即将观测对象的群体按照相似性和相异性进行不同群组的划分,划分后每个群组内部各对象相似度很高,而不同群组之间的对象彼此相异度很高。 回归、分类、聚类的区别 : 有监督学习 --->> 回归、分类 / 无监督学习 --->>聚类 回归 -->>产生连续结果,可用于预测 分类 -->>产生连续结果,可用于预测 聚类 -->>产生一组集合,可用于降维 一、PCA主成分分析 二、PCA主成分的python实现方法 通过sklearn的PCA类实现,from sklearn.decomposition import PCA pca = PCA(n_components=1) # n_components参数表示最终维度 pca.fit(data) #创建模型 data_pca = pca.transform(data) #降维,创建模型和降维可通过一步实现fit_transform data_inverse = pca.inverse_transform(data_pca) #根据降维结果反算原始数据 1.二维数据降维 rng = np.random.RandomState(8 ) data = np.dot(rng.rand(2,2),rng.randn(2,200)).T #

spark2.4+elasticsearch6.1.1搭建一个推荐系统

喜夏-厌秋 提交于 2020-04-26 06:31:10
[TOC] 本博文详细记录了IBM在网上公布使用spark,elasticsearch搭建一个推荐系统的DEMO。demo中使用的elasticsearch版本号为5.4,数据集是在推荐中经常使用movies data。Demo中提供计算向量相似度es5.4插件在es6.1.1中无法使用,因此我们基于es6.1.1开发一个新的计算特征向量相似度的插件,插件具体详情见 github ,下面我们一步一步的实现这个推荐系统: 整体框架 整个框架图如下: 从图中我们可以看出具体的操作流程是: 利用spark.read.csv()读取ratings,users,movies数据集。 对数据集进行相关的处理 通过es-hadoop插件,将整理后的数据集保存到es 训练一个推荐模型-协同过滤模型 把训练好的模型保存到es中 搜索推荐-es查询和一个自定义矢量评分插件,计算用户与movies的最后评分 安装相关的组件 elasticsearch安装 spark安装 下载es-hadoop中间件 安装计算向量相似度的elasticsearch插件 运行 安装完es,spark,下载es-hadoop插件,以及es安装计算矢量评分的插件,然后通过如下命令启动: PYSPARK_DRIVER_PYTHON="jupyter" PYSPARK_DRIVER_PYTHON_OPTS="notebook"

Python机器学习入门(1)之导学+无监督学习

拥有回忆 提交于 2020-04-26 06:27:21
Python Scikit-learn *一组简单有效的工具集 *依赖Python的NumPy,SciPy和matplotlib库 *开源 可复用 sklearn库的安装 DOS窗口中输入 pip install ** NumPy(开源科学计算库),SciPy(集成多种数学算法和函数模块)和matplotlib(提供大量绘图工具)库基础上开发的,因此需要先装这些依赖库 安装顺序 SKlearn库中的标准数据集及基本功能 波士顿房价数据集 使用sklearn.datasets.load_boston即可加载相关数据集 return_X_y:表示是否返回target(即价格),默认为False,只返回data(即属性)。 鸢尾花数据集 使用sklearn.datasets.load_iris即可加载相关数据集 参数:return_X_y:若为True,则以(data,target)形式返回数据;默认为False,表示以字典形式返回数据全部信息(包括data和target) 手写数字数据集 使用sklearn.datasets.load_digits即可加载相关数据集 return_X_y:若为True,则以(data,target)的形式返回数据;默认为False,表示以字典形式返回数据全部信息包括(data和target) n_calss:表示返回数据的类别数,如:n_class=5

一步步教你轻松学朴素贝叶斯模型算法Sklearn深度篇3

只愿长相守 提交于 2020-04-25 01:56:06
一步步教你轻松学朴素贝叶斯深度篇3 ( 白宁超 2018年9月4日14:18:14) 导读 :朴素贝叶斯模型是机器学习常用的模型算法之一,其在文本分类方面简单易行,且取得不错的分类效果。所以很受欢迎,对于朴素贝叶斯的学习,本文首先介绍理论知识即朴素贝叶斯相关概念和公式推导,为了加深理解,采用一个维基百科上面性别分类例子进行形式化描述。然后通过编程实现朴素贝叶斯分类算法,并在屏蔽社区言论、垃圾邮件、个人广告中获取区域倾向等几个方面进行应用,包括创建数据集、数据预处理、词集模型和词袋模型、朴素贝叶斯模型训练和优化等。然后结合复旦大学新闻语料进行朴素贝叶斯的应用。最后,大家熟悉其原理和实现之后,采用机器学习sklearn包进行实现和优化。由于篇幅较长,采用理论理解、案例实现、sklearn优化三个部分进行学习。(本文原创,转载必须注明出处: 一步步教你轻松学朴素贝叶斯模型算法Sklearn深度篇3 ) 目录 1 机器学习:一步步教你轻松学KNN模型算法 2 机器学习:一步步教你轻松学决策树算法 3 机器学习:一步步教你轻松学朴素贝叶斯模型算法理论篇1 4 机器学习:一步步教你轻松学朴素贝叶斯模型实现篇2 5 机器学习:一步步教你轻松学朴素贝叶斯模型算法Sklearn深度篇3 6 机器学习:一步步教你轻松学逻辑回归模型算法 7 机器学习:一步步教你轻松学K-means聚类算法 8 机器学习