矩阵分解

《机器学习》第三章 (2)

醉酒当歌 提交于 2019-12-02 11:10:31
线性判别分析LDA LDA思想:给定训练样例集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能的接近、异类样例的投影点尽可能的远离;在对新样本进行分类的时候,将其投影到同样的一条直线,在根据投影点来确定样本的类别。 给定数据集 D = { ( x i , y i ) i = 1 m , y i ∈ { 0 , 1 } } D=\left\{(x_i,y_i)_{i=1}^m,y_i \in \left\{ 0,1 \right\} \right\} D = { ( x i ​ , y i ​ ) i = 1 m ​ , y i ​ ∈ { 0 , 1 } } 令 X i 、 μ i 、 ∑ i X_i、\mu_i、\sum_i X i ​ 、 μ i ​ 、 ∑ i ​ 分别表示第 i ∈ { 0 , 1 } i\in\left\{ 0,1\right\} i ∈ { 0 , 1 } 类示例的集合、均值向量、协方差矩阵。 示例的集合:数据集D 均值向量 μ i \mu_i μ i ​ : 假设样本 X i = ( x i 1 , x i 2 , . . . , x i p ) T , i = ( 1 , 2 , . . . , N ) X_i=(x_{i1},x_{i2},...,x_{ip})^T,i=(1,2,...,N) X i ​ = ( x i 1 ​ , x i

[线性代数xOI/ACM]系数矩阵的QGXZ分解

丶灬走出姿态 提交于 2019-12-02 07:02:25
一些无关紧要的Q&A Q:你是怎么想到这个花里胡哨的算法的啊? A:前几天学习线性代数时有幸和 Magolor大佬 讨论到 $LU$ 分解在多解时的时间复杂度问题,于是yy出了这个奇怪(?)的算法。 Q:为什么叫 $QGXZ$ 分解呀?你是不是在装逼啊? A:这个名字是 Magolor大佬 起的,我也只能无条件服从咯~ 如有雷同绝非学术不端~ Q: Magolor大佬 太强啦~ A:恭喜我们达成了共识~ 概述 $QGXZ$ 分解,是用于解决多线性方程组通解问题的算法。具体来讲: 给出 $n\times m$ 的系数矩阵 $A$ ,分别求 $Ax=b_1,Ax=b_2,...,Ax=b_q$ 的 通解 ,其中 $b_i$ 是 $n\times 1$ 的列向量。以下假设 $n,m,q$ 同阶。 如果对 $b_i$ 强制在线的话,朴素算法的时间复杂度为 $O(n^4)$ 。如果对矩阵进行 $QGXZ$ 分解,则复杂度降为 $O(n^3)$ 。 前置技能 $QGXZ$ 分解本质上是 $LU$ 分解的扩展,因此先来介绍一下 $LU$ 分解。 $LU$ 分解是对于一个 $n\times m$ 的矩阵,将其分解为一个 $n\times n$ 的下三角矩阵 $L$ 和一个 $n\times m$ 的上梯形矩阵 $U$ 的乘积的结果,即 $A=L\times U$ 。 求法:对于矩阵 $A$

Python 矩阵(线性代数)

╄→尐↘猪︶ㄣ 提交于 2019-12-02 04:56:44
Python 矩阵(线性代数) 这里有一份新手友好的 线性代数笔记 ,是和深度学习 花书 配套,还被Ian Goodfellow老师翻了牌。 笔记来自巴黎高等师范学院的博士生Hadrien Jean,是针对“花书”的 线性代数 一章,初来乍到的小伙伴可以在笔记的辅佐之下,了解深度学习最常用的数学理论,加以轻松的支配。 把 理论 和 代码 搭配食用,疗效更好。笔记里列举的各种 例子 ,可以帮初学者用一种更直观实用的方式学好线代。开始前,你需要准备好 Numpy 和 Python 。 然后来看一下,要走怎样一个疗程—— 1 标量、向量、矩阵和张量 △ 标量,向量,矩阵,张量 (左起) 这一课讲了向量和矩阵,以及它们的一些基础运算。另外,这里介绍了 Numpy 的一些相关 函数 ,也浅浅地谈到了 Broadcasting 机制。 2 矩阵和向量的乘法 △ 矩阵与向量的点乘 本小节主要讨论的是, 向量和矩阵的点积 ,我们可以从中了解矩阵的一些属性。之后,便是用矩阵符号来创建一个 线性方程组 ——这也是日后的学习里,经常要做的事情。 3 单位矩阵和逆矩阵 △ 单位矩阵长这样 我们要了解这两种矩阵 为什么重要 ,然后知道怎样在Numpy里和它们玩耍。另外,本小节包含用 逆矩阵求解线性方程组 的一个例题。 4 线性依赖与线性生成空间 线性方程组,除非 无解 ,不然要么有 唯一解 ,要么有

从0开始学算法--数学(4.1矩阵)

为君一笑 提交于 2019-12-02 03:02:46
1,概念 以下词条解释来自百度百科:代数,代数系统,线性代数,矩阵 代数   代数是研究数、数量、关系、结构与代数方程(组)的通用解法及其性质的数学分支。 初等代数 一般在中学时讲授,介绍代数的基本思想:研究当我们对数字作加法或乘法时会发生什么,以及了解变量的概念和如何建立 多项式 并找出它们的根。代数的研究对象不仅是数字,而是各种抽象化的结构。在其中我们只关心各种关系及其性质,而对于“数本身是什么”这样的问题并不关心。常见的代数结构类型有群、 环 、域、模、 线性空间 等。 代数系统   非空集合A和A上k个一元或二元运算f1,f2,…,fk组成的系统称为一个代数系统,简称代数,记作(A,f1,f2,…,fk)。由定义可知,一个代数系统需要满足下面3个条件:(1)有一个非空集合A;(2)有一些建立在集合A上的运算;(3)这些运算在集合A上是封闭的。有的书上对代数系统定义时不要求运算的封闭性,而是把具有封闭性的代数系统定义为一个新的概念- 广群 。 线性代数   线性代数是数学的一个分支,它的研究对象是 向量 , 向量空间 (或称线性空间), 线性变换 和有限维的 线性方程组 。向量空间是 现代数学 的一个重要课题;因而,线性代数被广泛地应用于 抽象代数 和 泛函分析 中;通过解析几何,线性代数得以被具体表示。线性代数的理论已被泛化为算子理论。由于科学研究中的 非 线性模型

机器学习中的数学知识

不想你离开。 提交于 2019-12-01 15:31:55
复习过程中遇到的一些机器学习中与数学相关的知识,总结于此 线性代数中的基础知识 设A是n阶矩阵,如果数和n维非零列向量x式关系式 成立,那么,这样的数称为矩阵A的特征值,非零向量x称为A的对应于特征值的特征向量 特征值分解 对于一个方阵,可以将其表现为如下形式: 可以将A分解为如下形式: 特征值分解后,分解得到的矩阵是一个对角阵,里面的特征值是由大到小排列的,这些特征值所对应的前N个特征向量,对应了这个矩阵最重要的N各变化方向。利用这前N个变化方向就可以近似 大专栏 机器学习中的数学知识 这个矩阵。 特征值分解最大的局限就是变换矩阵必须是方阵 SVD分解 奇异值分解是一个能适合任意矩阵的一种分解方式: 假设A是一个N M的矩阵,那么得到的U是一个N N的方阵(里面的向量是正交的,U里面的向量称为左奇异向量),Σ是一个N M的矩阵(除了对角线的元素都是0,对角线上的元素称为奇异值),V’(V的转置)是一个N N的矩阵,里面的向量也是正交的,V里面的向量称为右奇异向量) 关于SVD求解,比如如下: 参考 同济大学《线性代数》第五版 强大的矩阵奇异值分解及其应用 来源: https://www.cnblogs.com/wangziqiang123/p/11690851.html

网易云音乐歌单的推荐算法

。_饼干妹妹 提交于 2019-12-01 13:27:01
这里我想给大家介绍另外一种推荐系统,这种算法叫做潜在因子(Latent Factor)算法。这种算法是在NetFlix(没错,就是用大数据捧火《纸牌屋》的那家公司)的推荐算法竞赛中获奖的算法,最早被应用于电影推荐中。这种算法在实际应用中比现在排名第一的算法误差(RMSE)会小不少,效率更高。我下面仅利用基础的矩阵知识来介绍下这种算法。 这种算法的思想是这样:每个用户(user)都有自己的偏好,比如A喜欢带有小清新的、吉他伴奏的、王菲等元素(latent factor),如果一首歌(item)带有这些元素,那么就将这首歌推荐给该用户,也就是用元素去连接用户和音乐。每个人对不同的元素偏好不同,而每首歌包含的元素也不一样。我们希望能找到这样两个矩阵: 一,用户-潜在因子矩阵Q, 表示不同的用户对于不用元素的偏好程度,1代表很喜欢,0代表不喜欢。比如下面这样: 二, 潜在因子-音乐矩阵P ,表示每种音乐含有各种元素的成分,比如下表中,音乐A是一个偏小清新的音乐,含有小清新这个Latent Factor的成分是0.9,重口味的成分是0.1,优雅的成分是0.2…… 利用这两个矩阵,我们能得出张三对音乐A的喜欢程度是:张三对 小清新 的偏好*音乐A含有 小清新 的成分+对 重口味 的偏好*音乐A含有 重口味 的成分+对 优雅 的偏好*音乐A含有 优雅 的成分+…… 即:0.6*0.9+0.8*0

【算法】网易云音乐日推算法浅析

荒凉一梦 提交于 2019-12-01 13:25:37
“网易云音乐”里有一项类似于淘宝“我的喜好”的“日推”功能,根据你经常听的歌曲类型,每日推送给你类似的音乐,几乎次次惊艳,而且大多都没听过,或者好久以前听过早就忘记了名字,或者之前不知道在哪听过 只是知道其中一部分旋律,根本不知道名字,等等。 参考了在北京实习时一个同事的分享以及在“知乎”上大神们的介绍,本文暂不考虑算法实现,仅仅从算法本身来学习一番,对IT世界里一些脑洞大开的想法做以分享。 如图,是日推算法的两种实现思路: 一、“潜在因子”算法 这种算法是在NetFlix(没错,就是用大数据捧火《纸牌屋》的那家公司)的推荐算法竞赛中获奖的算法,具体用在日推上的套路是这样: 1、思路 每个用户(user)都有自己的偏好,比如A喜欢带有小清新的、吉他伴奏的、李健等 元素 (其实就是标签),如果一首歌(item)带有这些 元素 ,那么就将这首歌推荐给该用户,也就是用元素去连接用户和音乐。 2、实现: 每个人对不同的元素偏好不同,而每首歌包含的元素也不一样。模拟这样两个矩阵: (1)用户-潜在因子矩阵Q: 表示不同的用户对于不用元素的偏好程度,1代表很喜欢,0代表不喜欢。比如下面这样: (2)潜在因子-音乐矩阵P 表示每种音乐含有各种元素的成分,比如下表中,音乐A是一个偏小清新的音乐,含有小清新这个Latent Factor的成分是0.9,重口味的成分是0.1,优雅的成分是0.2……

潜在因子算法-网易云音乐

家住魔仙堡 提交于 2019-12-01 13:24:43
《数学之美》(书籍推荐) 网易云音乐的歌单推荐算法(自认为是灵魂之处,其他不觉得),在此本书中说到类似问题, 书中提到矩阵运算和文本处理中的分类问题(后文复制处)。 网易云音乐的歌单推荐算法(转自知乎): 潜在因子(Latent Factor)算法。这种算法是在NetFlix(没错,就是用大数据捧火《纸牌屋》的那家公司)的推荐算法竞赛中获奖的算法,最早被应用于电影推荐中。这种算法在实际应用中比现在排名第一的 @邰原朗 所介绍的算法误差(RMSE)会小不少,效率更高。我下面仅利用基础的矩阵知识来介绍下这种算法。 这种算法的思想是这样:每个用户( user )都有自己的偏好,比如A喜欢带有 小清新的 、 吉他伴奏的 、 王菲 等元素( latent factor ),如果一首歌( item )带有这些元素,那么就将这首歌推荐给该用户,也就是用元素去连接用户和音乐。每个人对不同的元素偏好不同,而每首歌包含的元素也不一样。我们希望能找到这样两个矩阵: 一, 用户-潜在因子矩阵Q ,表示不同的用户对于不用元素的偏好程度,1代表很喜欢,0代表不喜欢。比如下面这样: 二, 潜在因子-音乐矩阵P ,表示每种音乐含有各种元素的成分,比如下表中,音乐A是一个偏小清新的音乐,含有小清新这个Latent Factor的成分是0.9,重口味的成分是0.1,优雅的成分是0.2…… 利用这两个矩阵

一些特殊的矩阵快速幂 hdu5950 hdu3369 hdu 3483

狂风中的少年 提交于 2019-12-01 06:09:22
思想启发来自, 罗博士 的 根据递推公式构造系数矩阵用于快速幂 对于矩阵乘法和矩阵快速幂就不多重复了,网上很多博客都有讲解。主要来学习一下系数矩阵的构造 一开始,最一般的矩阵快速幂,要斐波那契数列Fn=F n-1 +F n-2 的第n项,想必都知道可以构造矩阵来转移 其中,前面那个矩阵就叫做系数矩阵(我比较喜欢叫转移矩阵) POJ3070 Fibonacci 可以试一试 1 #include<cstdio> 2 typedef long long ll; 3 const ll md=10000; 4 struct Mar{ 5 int r,c; 6 ll a[10][10]; 7 Mar(){} 8 Mar(int r,int c):r(r),c(c){ 9 for(int i=0;i<r;i++) 10 for(int j=0;j<c;j++) a[i][j]=0; 11 } 12 }A,T; 13 Mar mul(Mar A,Mar B){ 14 Mar ans(A.r,B.c); 15 for(int i=0;i<A.r;i++) 16 for(int j=0;j<B.c;j++) 17 for(int k=0;k<A.c;k++){ 18 ans.a[i][j]+=A.a[i][k]*B.a[k][j]%md; 19 if(ans.a[i][j]>=md) ans.a[i]

GCN

旧街凉风 提交于 2019-12-01 02:32:46
REFERENCE: https://www.jianshu.com/p/ad528c40a08f https://www.zhihu.com/question/54504471 Notes: 离散卷积的本质是加权求和 CNN中的卷积本质上就是利用一个共享参数的过滤器(kernel),通过计算中心像素点以及相邻像素点的加权和来构成feature map实现空间特征的提取,当然加权系数就是卷积核的权重系数。 那么卷积核的系数如何确定的呢?是随机化初值,然后根据误差函数通过反向传播梯度下降进行迭代优化。这是一个关键点,卷积核的参数通过优化求出才能实现特征提取的作用,GCN的理论很大一部分工作就是为了引入可以优化的卷积参数。 CNN在Computer Vision里效果为什么好呢?原因:可以很有效地提取空间特征。 但是有一点需要注意:CNN处理的图像或者视频数据中像素点(pixel)是排列成成很整齐的矩阵。(欧几里得距离Euclidean Structure) 与之相对应,科学研究中还有很多Non Euclidean Structure的数据,如图3所示。社交网络、信息网络中有很多类似的结构。 Graph Convolutional Network中的Graph是指数学(图论)中的用顶点和边建立相应关系的拓扑图。 那么为什么要研究GCN? 原因有三: 1)CNN无法处理Non