矩阵分解

奇异分解(SVD)理论介绍

萝らか妹 提交于 2019-12-04 04:54:49
一、前言 奇异值分解(Singular Value Decomposition,以下简称SVD)是在机器学习领域广泛应用的算法,主要应用如下: 信息检索(LSA:隐性语义索引,LSA:隐性语义分析),分解后的奇异值代表了文章的主题或者概念,信息检索的时候同义词,或者说同一主题下的词会映射为同一主题,这样就可以提高搜索效率 数据压缩:通过奇异值分解,选择能量较大的前N个奇异值来代替所有的数据信息,这样可以降低噪声,节省空间。 推荐系统:主要是降噪,矩阵变换至低维空间(分解后还原的矩阵元素值作为原本缺失值的一种近似),方便计算(目前没有意识到它对推荐精确度的提升有什么具体作用)。 二、奇异值与特征值基础知识: 特征值分解的方法比较简单,有趣的是探究什么样的矩阵可以进行特征值分解以及矩阵进行特征值分解之后展现出的矩阵有意思的性质。特征向量矩阵S 是一个正交矩阵,一般写作 Q,也就是实对称矩阵的特征值分解可以写作: 首先,要明确的是,一个矩阵其实相当于一个线性变换,因为一个矩阵乘以一个向量后得到的向量,其实就相当于将这个向量进行了线性变换。比如说下面的一个矩阵: 这其实是在平面上对一个轴进行的拉伸变换(如蓝色的箭头所示),在图中,蓝色的箭头是一个最主要的变化方向(变化方向可能有不止一个),如果我们想要描述好一个变换,那我们就描述好这个变换主要的变化方向就好了。 特征值分解也有很多的局限

纠删码简介

 ̄綄美尐妖づ 提交于 2019-12-04 01:32:42
纠删码(Erasure Code)中的数学知识 背景   在数据存储领域,Hadoop采用三副本策略有效的解决了存储的容错问题,但是三副本策略中磁盘的利用效率比较低,仅有33%,而且副本带来的成本压力实在太高,后来适时的出现了纠删码的概念。当冗余级别为n+m时,将这些数据块分别存放在n+m个硬盘上,这样就能容忍m个(假设初始数据有n个)硬盘发生故障。当不超过m个硬盘发生故障时,只需任意选取n个正常的数据块就能计算得到所有的原始数据。纠删码以更低的存储成本备受青睐,目前Microsoft、Google、Facebook、Amazon、淘宝(TFS)都已经在自己的产品中采用了Erasure Code.    在以上背景的基础上,本文在纠删码的编码、解码中采用的矩阵数学知识,以及矩阵分解中用到的LU分解等数学知识进行分析,并在文末给出相应的代码示例。 纠删码工作原理简介:   RS(Reed-Solomom)码是一种比较常见的纠删码,它的两个参数m和n分别代表校验块个数和原始数据块个数。 纠删码编码过程: 在图中的编码过程,C代表校验块,D代表原始的数据块。 当丢失了部分数据,如图 纠删码解码过程: Step1: 在编码矩阵中去掉丢失数据块以及该数据块对应的行。即B矩阵变为了n*n 维度的方阵,C与D组合的矩阵由(n+m)行变为n行,在上述假设过程中

巧用递归解决矩阵最大序列和问题

本秂侑毒 提交于 2019-12-03 15:40:46
之前同事问了一道需要点脑洞的算法题,我觉得蛮有意思的,思路可能会给大家带来一些启发,特意在此记录一下 题目 现有一个元素仅为 0,1 的 n 阶矩阵,求连续相邻(水平或垂直,不能有环)元素值为 1 的序列和的最大值 假设有如下矩阵 则此矩阵连续相邻元素为 1 的序列和分别为 4, 3,(如图示),可知这个矩阵序列和的最大值为 4 解题思路 要算序列和的最大值,我们可以先找出所有可能的序列和,然后取其中的最大值,那怎么找这些序列呢? 首先我们发现,每个序列的起点和终点必然是 1,我们可以遍历矩阵的每一个元素,如果元素值为 1,则将其作为序列的起点开始查找所有以这个元素为起点的序列,我们知道序列是可以向垂直和水平方向延伸的,所以我们可以以这个元素为起点,查找它的上下左右值为 1 的元素,再以找到的这些元素为起点,继续在元素的上下左右查找值为1的元素(递归),如果找不到符合条件的值,则序列终止,在遍历过程中保存每条序列遍历的元素,即可知晓每条序列的元素和,从而求得序列和的最大值 文字说得有点绕,接下来我们就以查找以下矩阵的最大序列和为例来详细看一下如何查找最大序列和 从左到右,从上到下遍历所有值为 1 的元素,第一个符合条件的元素在右上角,所以以这个元素为起点来查找序列 以这个元素为起点,查找这个元素上下左右为值为 1 的元素,发现只有这个元素下面的元素符合条件

机器学习专业词汇中英文对照

岁酱吖の 提交于 2019-12-03 13:32:21
activation 激活值 activation function 激活函数 additive noise 加性噪声 autoencoder 自编码器 Autoencoders 自编码算法 average firing rate 平均激活率 average sum-of-squares error 均方差 backpropagation 后向传播 basis 基 basis feature vectors 特征基向量 batch gradient ascent 批量梯度上升法 Bayesian regularization method 贝叶斯规则化方法 Bernoulli random variable 伯努利随机变量 bias term 偏置项 binary classfication 二元分类 class labels 类型标记 concatenation 级联 conjugate gradient 共轭梯度 contiguous groups 联通区域 convex optimization software 凸优化软件 convolution 卷积 cost function 代价函数 covariance matrix 协方差矩阵 DC component 直流分量 decorrelation 去相关 degeneracy 退化 demensionality

matlab关于矩阵的操作

北慕城南 提交于 2019-12-03 09:59:02
一.矩阵表示 例如,A = [1,2,3;3,4,5].其中,矩阵的元素可以是数值、变量、表达式或者函数。 二.矩阵的创建 特殊矩阵的创建:a. ones(): ones(n)表示生成一个n*n的全1矩阵、ones(m,n)生成m*n的全1矩阵          b.zeros(): 类似ones()函数,其生成全0矩阵          c.rand(): 产生在(0,1)间均匀分布的矩阵          d. randn() : 产生均值为0,方差为1的标准正态分布随机矩阵          e.eye() :产生单位阵 三.矩阵的获取 1.获取元素:一种是直接元素下标索引,列如:Matrix(i,j);一种是元素序号索引,列如:Matrix(m)。其中,m = (j-1)*M+i,也就是一列一列的来,像Z型循环。 2.矩阵截取:(1) A( :,j )表示取A矩阵的第j列全部元素; A(i,:) 表示A矩阵第i行的全部元素;A(i,j)表示取A矩阵第i行、第j列的元素。 (2) A(i:i+m,:)表示取A矩阵第i~i+m行的全部元素;A(:,k:k+m)表示取A矩阵第k~k+m列的全部元素,A(i:i+m,k:k+m)表示取A矩阵第i~i+m行内,并在第k~k+m列中的所有元素。 四.矩阵运算 1. ’(转置):对实数矩阵进行行列互换,对复数矩阵,共轭转置,特殊的,操作符

LU分解求逆

大兔子大兔子 提交于 2019-12-03 07:33:32
文章转自: https://www.cnblogs.com/bigmonkey/p/9555710.html https://blog.csdn.net/xx_123_1_rj/article/details/39553809 什么是LU分解 在线性代数中, LU分解是矩阵分解的一种,可以将一个矩阵分解为一个单位下三角矩阵和一个上三角矩阵的乘积(有时是它们和一个置换矩阵的乘积) 如果有一个矩阵A,将A表示成下三角矩阵L和上三角矩阵U的乘积,称为A的LU分解。   更进一步,我们希望下三角矩阵的对角元素都为1: LU分解的步骤   上一章讲到,对于满秩矩阵A来说,通过左乘一个消元矩阵,可以得到一个上三角矩阵U。   可以看到,L实际上就是消元矩阵的逆。容易知道二阶矩阵的逆:   现在假设A是一个3×3矩阵,在不考虑行交换的情况下,通过消元得到上三角矩阵的过程是: LU 分解的前提   并非所有矩阵都能进行LU分解,能够LU分解的矩阵需要满足以下三个条件: 矩阵是方阵(LU分解主要是针对方阵); 矩阵是可逆的,也就是该矩阵是满秩矩阵,每一行都是独立向量; 消元过程中没有0主元出现,也就是消元过程中不能出现行交换的初等变换 示例      如果A存在LU分解存,a,b满足什么条件?   使用消元法逐一消去主元:   由于E 31 中出现了 –b/a,所以a ≠ 0   b可以是任意常数。

matlab中fft快速傅里叶变换

核能气质少年 提交于 2019-12-03 02:36:01
视频来源: https://www.bilibili.com/video/av51932171?t=628 。 博文来源:https://ww2.mathworks.cn/help/matlab/ref/fft.html?searchHighlight=fft&s_tid=doc_srchtitle 视频来源很好的解释了: 1 .傅里叶变换过程,经过傅里叶变化得到了,频率w,振幅a0,相位角φ; 2. 傅里叶变换 主要应用领域: 声音, 图像处理; 博文则很好的解释了: 1. 傅里叶变换在matlab软件中怎样应用 2.. 傅里叶变换的作用效果的展示,从时域到频域的变化,时域难以解决的问题到频域中却很清晰。 语法 Y = fft(X) Y = fft(X,n) Y = fft(X,n,dim) 说明 示例 Y = fft( X ) 用快速傅里叶变换 ( FFT) 算法计算 X 的 离散傅里叶变换 (DFT)。 如果 X 是向量,则 fft(X) 返回该向量的傅里叶变换。 如果 X 是矩阵,则 fft(X) 将 X 的各列视为向量,并返回每列的傅里叶变换。 如果 X 是一个多维数组,则 fft(X) 将沿大小不等于 1 的第一个数组维度的值视为向量,并返回每个向量的傅里叶变换。 示例 Y = fft( X , n ) 返回 n 点 DFT。如果未指定任何值,则 Y 的大小与 X 相同

推荐系统发展综述

匿名 (未验证) 提交于 2019-12-03 00:37:01
1. 引言 随着信息技术和互联网技术的发展,人们从信息匮乏时代步入了信息过载时代,在这种时代背景下,人们越来越难从大量的信息中找到自身感兴趣的信息,信息也越来越难展示给可能对它感兴趣的用户,而推荐系统的任务就是连接用户和信息,创造价值。 设想用户想买一本《Recommender Systems An Introduction》,用户只需要走进一家书店,寻找这本书即可。通过互联网,用户可以打开当当,在搜索框中输入书名,然后就可以找到用户想要购买的书籍,这两种方式都需要用户有明确的目的,如购买《Recommender Systems An Introduction》或某一类别的书籍。 但是,当用户没有明确目标时,比如寻找感兴趣的音乐,用户只能通过一些预先设定的类别或标签去寻找他可能感兴趣的音乐,但面对如此之多音乐,用户很难在短时间内找出真正感兴趣的音乐。这时就需要一个自动化的工具,来分析用户曾经收听的音乐,进而寻找出用户可能感兴趣的音乐推荐给用户,这就是个性化推荐系统的工作。 作为一种信息过滤系统,推荐系统具有以下两个最显著的特性: (1)主动化。从用户角度考虑,门户网站和搜索引擎都是解决信息过载的有效方式,但它们都需要用户提供明确需求,当用户无法准确描述自己的需求时,这两种方式就无法为用户提供精确的服务了。而推荐系统不需要用户提供明确的需求,而是通过分析用户和物品的数据

图像的等距变换,相似变换,仿射变换,射影变换及其matlab实现

匿名 (未验证) 提交于 2019-12-03 00:32:02
转载:https://blog.csdn.net/u014096352/article/details/53526747 图像的等距变换,相似变换,仿射变换,射影变换及其matlab实现   非常详细的一个说明,珍藏了。 今天,我们学习一下图像(2维平面)到图像(2维平面)的四种变换, 等距变换,相似变换,仿射变换,投影变换 首先介绍它的原理,最后介绍matlab的实现 1.数学基础 射影变换矩阵 H H 属于 射影群 P L ( n ) PL(n) 中的一个,仿射群是由 P L ( 3 ) PL(3) 中最后一行为 ( 0 , 0 , 1 ) (0,0,1) 的矩阵组成的 子群 ,包括 仿射群 , ŷʽȺ ,其中欧式群是仿射群的子群,其左上角的矩阵是正交的,当它的行列式为1是称为定向欧式群,距离是欧式群的不变量,但不是相似群的不变量,而夹角是这两个群的不变量。 听了这么多群,不变量的数学概念,可能有点晕,下面我用最直观的语言解释。线性空间中的线性变换可以用矩阵来描述,因此我们用矩阵来刻画这四种变换。我们以数学系的经典代数入门教材北大版的《高等代数》为例,研究这些变换是如何进行的 2. 等距变换 等距变换(isometric transform),保持欧式距离不变,当图像中的点用齐次坐标表示时, 其中 R R 是旋转矩阵。 t t 是平移矢量,有3个自由度(1旋转角 θ θ

对极几何及单应矩阵

匿名 (未验证) 提交于 2019-12-03 00:30:01
1.本质矩阵 用两个相机在不同位置拍摄同一物体,两张照片中的景物有重叠部分,那么理论上这两张照片会存在一定的对应关系,本节任务是探索如何描述他们之间的对应关系--对极几何,属于立体视觉的部分。关于相机成像模型等部分这里不多介绍,默认理解这部分知识。 首先来看几个基本概念 图中的概念有: 极点e: 分别是左边相机中心在右图像平面上的像,右相机中心在左像平面上的像。 极平面: 两个相机中心和空间中某店p形成的平面。 极线l: 极平面分别和两个像平面的交线。 对极几何则是描述这几个量之间的对应关系。直观讲,从左图的角度看,如果不知道p点的深度信息,射线op是这个点可能出现的空间位置,因为该射线上的点都会投影到同一个像素点,同时,如果不知道p点的具体位置,那么当在右图的位置看时,极线 l' 就是点p可能出现的位置,即在这条线上的某个地方。如下图所示 回顾向量的知识 两个正交的向量的内积为0。假设左图到右图的位姿关系由R和t表示,那么由基本的刚体变换可以得到 另外 已知三向量 x, t 和 x' 共面,则 t 和 x 做外积得到一个垂直该平面的向量,因此上式为零没有问题,接下来 简单的代入即可。然后,向量的外积可以写成矩阵相乘的形式,即将其中一个向量写成反对称矩阵,如下图 那么将之前的t和x的外积也写成矩阵的形式可得 其中的矩阵E就是本质矩阵,最后一个式子为对极约束,形式非常简洁