矩阵分解

机器学习――低秩矩阵分解中低秩的意义、矩阵填补、交叉验证

匿名 (未验证) 提交于 2019-12-03 00:22:01
一、低秩矩阵中低秩(Low-rank)的意义 1,问题的引出――对低秩矩阵分解中低秩的误解 点击打开链接 ),当时对矩阵分解的理解是:评分矩阵X分解成两个隐特征矩阵U和V,U代表用户隐特征矩阵,V代表商品隐特征矩阵。U和V的隐因子向量的长度为k,其中k<<min{m,n},自己也就理解成了分解后的两个矩阵的秩是比原来的评分矩阵X的秩低很多,所以就把该方法称为低秩矩阵分解法。 2,低秩矩阵分解中低秩的意义 我们先来回忆下线性代数里面“秩”到底是啥?举个简单的例子吧: 对上面的线性方程组,第一个方程和第二个方程有不同的解,而第2个方程和第3个方程的解完全相同。从这个意义上说,第3个方程是“多余”的,因为它没有带来任何的信息量,把它去掉,所得的方程组与原来的方程组同解。为了从方程组中去掉多余的方程,自然就导出了“矩阵的秩”这一概念。 从物理意义上讲,矩阵的秩度量的就是矩阵的行列之间的相关性。 如果矩阵的各行或列是线性无关的,矩阵就是满秩的,也就是秩等于行数。回到上面线性方程组来说吧,因为线性方程组可以用矩阵描述嘛。秩就表示了有多少个有用的方程了。上面的方程组有3个方程,实际上只有2个是有用的,一个是多余的,所以对应的矩阵的秩就是2了。 OK。既然秩可以度量相关性,而矩阵的相关性实际上就表示了矩阵的结构信息。如果矩阵之间各行的相关性很强,那么就表示这个矩阵实际可以投影到更低维的线性子空间

旋转图像

匿名 (未验证) 提交于 2019-12-03 00:20:01
给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 说明: 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。 请不要 使用另一个矩阵来旋转图像。 示例 1: 给定 matrix = [ [ 1 , 2 , 3 ], [ 4 , 5 , 6 ], [ 7 , 8 , 9 ] ], 原地 旋转输入矩阵,使其变为: [ [ 7 , 4 , 1 ], [ 8 , 5 , 2 ], [ 9 , 6 , 3 ] ] 解题思路: 刚开始没有想到,后来看过提示才恍然大悟,感觉这一类题目还是要注意观察图像的特征,把操作进行逐步分解,这样就把原地旋转分解为上下行互换、和对角线互换两个步骤,接下来就很容易了。 public static void rotate ( int [][] matrix ) { // System.out.println(matrix.length); int a = 0 ; //第一步,上下互换 for ( int i = 0 ; i < matrix . length / 2 ; i ++){ for ( int j = 0 ; j < matrix . length ; j ++){ //第一行和最后一行互换,第二行和倒数第二行互换,以此类推 a = matrix [ i ][ j ]; matrix [ i ][ j ] =

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个含有绝大部分方差的坐标轴。事实上,这相当于只保留包含绝大部分方差的维度特征

机器学习中的数学原理――矩阵论

匿名 (未验证) 提交于 2019-12-02 23:34:01
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/vivian_ll/article/details/90371758 正定矩阵 在线性代数里,正定矩阵 (positive definite matrix) 有时会简称为正定阵。 定义 : A A A 是n阶方阵,如果对任何非零向量 x x x ,都有 x T A x > 0 x^TAx>0 x T A x > 0 ,其中 x T x^T x T 表示 x x x 的转置,就称 A A A 正定矩阵。 性质 : 正定矩阵的行列式恒为正; 实对称矩阵 A A A 正定当且仅当 A A A 与单位矩阵合同; 两个正定矩阵的和是正定矩阵; 正实数与正定矩阵的乘积是正定矩阵。 等价命题 : 对于n阶实对称矩阵 A A A ,下列条件是等价的: A A A 是正定矩阵; A A A 的一切顺序主子式均为正; A A A 的一切主子式均为正; A A A 的特征值均为正; 存在实可逆矩阵C,使 A = C T C A=C^TC A = C T C ; 存在秩为n的m×n实矩阵B,使 A = B T B A=B^TB A = B T B ; 存在主对角线元素全为正的实三角矩阵R,使 A = R T R A=R^TR A = R T R 根据正定矩阵的定义及性质,判别对称矩阵A的正定性有两种方法:

MATLAB编程与应用系列-第3章 矩阵运算(2)

匿名 (未验证) 提交于 2019-12-02 22:56:40
本系列教程来源于出版设计《基于MATLAB编程基础与典型应用书籍》,如涉及版权问题,请联系:156204968@qq.com。 出版社:人民邮电出版社, 页数:525。 本系列教程目前基于MATLABR2006a,可能对于更高级版本的功能和函数有差异,教程中如有问题,请联系:156204968@qq.com ###3.1.5 矩阵函数 MATLAB提供了丰富的函数来实现对矩阵的各种运算,下面将逐步介绍。因篇幅关系,将不作数学方面的解释。表3.1所示为常用的矩阵运算函数以及函数相对应的功能描述。 表3.1 常用矩阵运算函数 函数名 功能 det(X) 计算方阵行列式 rank(X) 求矩阵的秩,得出的行列式不为零的最大方阵边长。 trace(X) 矩阵A的迹b,即A的对角线元素之和 expm(A) 使用Pade近似算法计算eA,这是一个内部函数,A为方阵 expm1(A) 使用一个M文件和内部函数相同的算法计算e^A expm2(A) 使用泰勒级数计算e^A expm3(A) 使用特征值和特征向量计算e^A logm(X) 计算矩阵X的对数,它是expm(X)的反函数 funm(X, fun) 指定的函数fun计算方阵X的函数矩阵 sqrtm(X) 计算矩阵A的平方根A1/2,相当于X*X=A,求X polyvalm(P, X) 按照矩阵运算规则计算多项式的值。其中

灰度共生矩阵-python

匿名 (未验证) 提交于 2019-12-02 22:51:30
博主基于Github Pages与Hexo搭建了个人博客,欢迎访问 http://maself.top 纹理特征刻画了图像中重复出现的局部模式与他们的排列规则,常用于图像分类和场景识别。其只能反映物体表面的特性,无法完全反映出物体的本质属性,所以仅仅利用纹理特征无法获得图像的高层次内容。 优点 : 1. 具有旋转不变性 2. 具有良好的抗噪性能。 缺点 : 1. 当图像的分辨率变化的时候,所计算出来的纹理可能会有较大偏差 2. 有可能受到光照、反射情况的影响 3. 从2-D图像中反映出来的纹理不一定是3-D物体表面真实的纹理 常用的纹理特征提取方法一般分为四大类: 1.基于统计的方法:灰度共生矩阵、灰度行程统计、灰度差分统计、局部灰度统计、半方差图、自相关函数等 优点:方法简单,易于实现。 缺点:无法利用全局信息,与人类视觉模型不匹配;计算复杂度较高,计算耗时。 较为经典的算法为灰度共生矩阵方法,其通过统计不同灰度值对的共现频率得到灰度共生矩阵,基于矩阵可计算出14种统计量:能量、熵、对比度、均匀性、相关性、方差、和平均、和方差、和熵、差方差、差平均、差熵、相关信息测度以及最大相关系数。 灰度梯度共生矩阵将图梯度信息加入到灰度共生矩阵中,综合利用图像的灰度与梯度信息,效果更好。图像的梯度信息一般通过梯度算子(也称边缘检测算子)提取,如sobel、canny、reborts等。 2

【转载】【收藏】机器学习与深度学习核心知识点总结

耗尽温柔 提交于 2019-12-02 19:02:56
原文地址: https://cloud.tencent.com/developer/article/1526902 数学 1.列举常用的最优化方法 梯度下降法 牛顿法 拟牛顿法 坐标下降法 梯度下降法的改进型如AdaDelta,AdaGrad,Adam,NAG等。 2.梯度下降法的关键点 梯度下降法沿着梯度的反方向进行搜索,利用了函数的一阶导数信息。梯度下降法的迭代公式为: 根据函数的一阶泰勒展开,在负梯度方向,函数值是下降的。只要学习率设置的足够小,并且没有到达梯度为0的点处,每次迭代时函数值一定会下降。需要设置学习率为一个非常小的正数的原因是要保证迭代之后的x k +1位于迭代之前的值x k 的邻域内,从而可以忽略泰勒展开中的高次项,保证迭代时函数值下降。 梯度下降法只能保证找到梯度为0的点,不能保证找到极小值点。迭代终止的判定依据是梯度值充分接近于0,或者达到最大指定迭代次数。 梯度下降法在机器学习中应用广泛,尤其是在深度学习中。AdaDelta,AdaGrad,Adam,NAG等改进的梯度下降法都是用梯度构造更新项,区别在于更新项的构造方式不同。对梯度下降法更全面的介绍可以阅读SIGAI之前的文章“ 理解梯度下降法 ”。 3.牛顿法的关键点 牛顿法利用了函数的一阶和二阶导数信息,直接寻找梯度为0的点。牛顿法的迭代公式为: 其中H为Hessian矩阵,g为梯度向量

[转] 矩阵分解介绍

我们两清 提交于 2019-12-02 18:03:13
from: https://www.cnblogs.com/marsggbo/p/10152644.html#autoid-4-0-0 https://www.cnblogs.com/marsggbo/p/10156077.html 1 | 0 I. 行列式(Determinants)和迹(Trace) 1 | 1 1. 行列式(Determinants) 为避免和绝对值符号混淆,本文一般使用 𝑑 𝑒 𝑡 ( 𝐴 ) det(A)来表示矩阵 𝐴 A的行列式。另外这里的 𝐴 ∈ 𝑅 𝑛 × 𝑛 A∈Rn×n默认是方阵,因为只有方阵才能计算行列式。 行列式如何计算的就不在这里赘述了,下面简要给出行列式的各种性质和定理。 定理1 :当且仅当一个方阵的行列式不为0,则该方阵可逆。 定理2 :方阵 𝐴 A的行列式可沿着某一行或某一列的元素展开,形式如下: 沿着第 𝑖 i行展开: 𝑑 𝑒 𝑡 ( 𝐴 ) = ∑ 𝑘 = 1 𝑛 ( − 1 ) 𝑘 + 𝑖 𝑎 𝑖 𝑘 𝑑 𝑒 𝑡 ( 𝐴 𝑖 , 𝑘 ) det(A)=∑k=1n(−1)k+iaikdet(Ai,k) 沿着第 𝑖 i列展开: 𝑑 𝑒 𝑡 ( 𝐴 ) = ∑ 𝑘 = 1 𝑛 ( − 1 ) 𝑘 + 𝑖 𝑎 𝑘 𝑖 𝑑 𝑒 𝑡 ( 𝐴 𝑘 , 𝑖 ) det(A)=∑k=1n(−1)k+iakidet(Ak,i) 定理3

简单的把矩阵分解成一个正交矩阵和一个对角线全为1的上三角矩阵(转载)

空扰寡人 提交于 2019-12-02 16:13:22
转载: https://blog.csdn.net/aimatfuture/article/details/7741892 function [He Xx] = GQR(A) % param A : 是一个可逆矩阵 % return He : 是一个满足每两个不同列向量的内积为0的矩阵 % return Xx : 是一个主对角线全为1的上三角矩阵 % function : 分解 A = He * Xx % CopyRight : edu.nust.cs726.JunH(111060881) [H L] = size(A); if H ~= L error('hehehe'); end if det(A) == 0 error('hahaha'); end BIJ = eye(H); B = zeros(H, L); B(:, 1) = A(:, 1); for R = 2:L ar = A(:, R); br = ar; for K = 1:R-1 % disp(ar) % disp(B(:, K)); % disp(' '); % disp(' '); bij = Gb(ar, B(:, K)); BIJ(K, R) = bij; br = br - bij*B(:, K); end B(:, R) = br; end He = B; Xx = BIJ; function bij

latent dirichlet allocation

可紊 提交于 2019-12-02 12:41:45
1.Dirichlet-Multinomial共轭 2.LDA=PLSA+bayes 3.训练方法有gibbs sampling(吉布斯采样)和variation inference-EM算法(变分推断-EM算法) 4.LDA将document-term矩阵分解成topic-term矩阵和document-topic矩阵 来源: https://www.cnblogs.com/pandas-blue/p/11745612.html