矩阵乘法

线性代数学习笔记

大城市里の小女人 提交于 2020-01-13 22:51:26
线性代数学习笔记 1 矩阵 1.0 矩阵的基本概念 首先需要了解基本的东西,矩阵. 定义一个矩阵 \(A\) 有 \(m\) 行 \(n\) 列,那么可以写成: \[ \begin{matrix} A_{1,1}\ A_{1,2}\cdots A_{1,n}\\ A_{2,1}\ A_{2,2}\cdots A_{2,n}\\ \ \ \ \ \ \ \ \vdots \\ A_{m,1}\ A_{m,2}\cdots A_{m,n}\\ \end{matrix} \] 我们还可以定义矩阵的数乘为 \(\lambda A\) ,相当于是给矩阵中所有的元素都乘上一个数字. 然后矩阵有如下性质: 结合率: \(ABC=A(BC)\) 数乘结合律: \(\beta(\lambda A)=\beta\lambda A\) ...(自行百度) 有一些特殊的矩阵,我们称之为 \(I\) , \(0\) . \(I\) ,单位矩阵,就是对角线全是 \(1\) ,其他位置都是 \(0\) 的矩阵. \(0\) ,零矩阵,就是所以位置都是 \(0\) 的矩阵. 1.1 矩阵的逆,矩阵的秩 矩阵的逆,就是存在一个矩阵 \(A^{-1}*A=I\) ,我们就称 \(A^{-1}\) 为 \(A\) 的逆矩阵. 矩阵的秩 \(A^{T}\) ,定义就是 \(A^{T}(i,j)=A(j,i)\) .

特征值分解与奇异值分解

佐手、 提交于 2020-01-13 16:50:11
https://www.cnblogs.com/fuleying/p/4466326.html 特征值分解和奇异值分解在机器学习领域都是属于满地可见的方法。两者有着很紧密的关系,我在接下来会谈到,特征值分解和奇异值分解的目的都是一样,就是提取出一个矩阵最重要的特征。 1. 特征值: 如果说一个向量v是方阵A的特征向量,将一定可以表示成下面的形式: 写成矩阵形式: 这时候λ就被称为特征向量v对应的特征值, 一个矩阵的一组特征向量是一组正交向量 。 2. 特征分解: 特征值分解是将一个矩阵分解成下面的形式: 其中Q是这个矩阵A的特征向量组成的矩阵, 正交矩阵是可逆的。 Σ = diag(λ 1 , λ 2 , ..., λ n )是一个对角阵,每一个对角线上的元素就是一个特征值。 首先,要明确的是, 一个矩阵其实就是一个线性变换,因为一个矩阵乘以一个向量后得到的向量,其实就相当于将这个向量进行了线性变换。   当矩阵是高维的情况下,那么这个矩阵就是高维空间下的一个线性变换,这个线性变化可能没法通过图片来表示,但是可以想象,这个变换也同样有很多的变换方向, 我们通过特征值分解得到的前N个特征向量,那么就对应了这个矩阵最主要的N个变化方向。 我们利用这前N个变化方向,就可以近似这个矩阵(变换)。也就是之前说的: 提取这个矩阵最重要的特征。 总结一下,特征值分解可以得到特征值与特征向量,

位运算的诱惑,FFT摇身一变FWT(快速沃尔什变换)(未完待续)

烂漫一生 提交于 2020-01-13 10:41:41
目录 参考文献 例题 符号约定 通用思路 规律性 限制性 可行性 可分治性 矩阵 和运算 非运算 异或运算 代码 小结 未完待续 真的想点接触这个玩意。 cmd写的OI多项式💊是真的顶。 参考文献 人称OI药丸: https://www.luogu.com.cn/blog/command-block/wei-yun-suan-juan-ji-yu-ji-kuo-zhan ZFY:你又从洛谷日报上抄袭,烦不烦呀。 如果能有源码我还自己打!QAQ 例题 例题 符号约定 ZFY:抄袭的第一步。。。 文中的多项式和下标均为向量, \([]\) 表示向量拼接(但是 \([\) 命题 \(]\) 就是当命题成立时为 \(1\) )。 \(A_{i}\) 表示 \(A\) 中的第 \(i\) 位, \(i_{j}\) 表示 \(i\) 的二进制中从高往低的第 \(j\) 位。 ZWQ:你这和照搬有什么区别。。。为什么不能有自己的思考呢?像我一样。 \(⊕\) 为位运算,&为和运算,^为异或,|为非运算。 规定 \(n\) 为总位数,且一定是 \(2\) 的次幂,记为 \(2^u\) 。 \(C[k]=\sum\limits_{i⊕j==k,0≤i,j≤n-1}A[i]*B[i]\) ,写成 \((A*B=C)\) ,称为位运算 \(⊕\) 的卷积形式。 称 \(DWT(A)\) 为 \(A\)

简单多元线性回归(梯度下降算法与矩阵法)

China☆狼群 提交于 2020-01-13 06:04:19
from:https://www.cnblogs.com/shibalang/p/4859645.html 多元线性回归是最简单的机器学习模型,通过给定的训练数据集,拟合出一个线性模型,进而对新数据做出预测。 对应的模型如下: n: 特征数量。 一般选取残差平方和最小化作为损失函数,对应为: M: 训练样本数量。 通过最小化代价损失函数,来求得 值,一般优化的方法有两种,第一是梯度下降算法( Gradient Descent ),第二种是矩阵法( The normal equations )。 梯度下降算法 给 一个初始值,然后逐步的迭代改变的值,是代价损失函数逐次变小,使每次都往梯度下降的方向改变: 表示下降速度。 为了求偏导数,当只有一个样本时,即 ; 即: 当有多个训练样本时,下降梯度算法即为: 由于每次迭代都需要计算所有样本的残差并加和,因此此方法也叫做批下降梯度法( batch gradient descent),当有大规模数据时,此方法不太适合,可采取它得一个变种,即每次更新权重时,不是计算所有的样本,而是选取其中一个样本进行计算梯度,这个方法叫做随机下降梯度法( stochastic gradient descent): 随机下降梯度法与下降梯度法对比可能收敛更快,但是可能找不到最优点而在最优点附近徘徊。 矩阵求解法 由于梯度下降算法需要多次迭代,并且需要指定下降速率

矩阵论基础(1)

余生长醉 提交于 2020-01-12 01:46:04
1. 共轭复数 在 数学 中, 复数 的 共轭复数 (常简称 共轭 )是对虚部变号的运算,因此一个复数 的复共轭是 将复数理解为 复平面 ,则复共轭无非是对实轴的 反射 。复数 的复共轭有时也表为 2. 矩阵A的复数共轭A*定义为[A*]ij = aij* 3. 矩阵的运算 矩阵的乘法不满足交换律。 4. 来源: https://www.cnblogs.com/dulun/p/12181690.html

ACM 位运算,(矩阵)快速幂

你离开我真会死。 提交于 2020-01-11 00:21:12
位运算 & 按位与,全1为1。例如5&3-----> 101&11----->1即1 | 按位或,有1则1。例如5|3-----> 101|11 ---->111即7 ^按位异或,相同为0,不同为1。例如5^3----->101^11---->110即6 ~取反运算,0变1,1变0,例如~5—>101—>010即2 <<左移指令 >>右移指令 快速幂运算,即模平方重复计算法 为什么要有快速幂运算,因为对于c++来说,pow函数在函数库中的定义之中是通过连续相乘得到的结果,那么对于一些小的幂来说,计算确实很快,但是当幂达到1e8往上这些大的幂来说的话,时间复杂度太大,过于耗时,所以采用了快速幂的算法,来提高运算的速度,对于 2 2 1 00 2^{2^100} 2 2 1 0 0 来说,普通算法要运算 2 1 00 2^100 2 1 0 0 次,而采用快速幂算法的话,只需要运算100次,也就是时间复杂度是O(logn),原本的时间复杂度是O(n)级别的; 具体原理: 对于想要求得的一个 b y b^y b y ,我们可以把y化成二级制的科学计数法,也就是 y = a n 2 c n + . . + a 1 2 c 1 + a 0 y=a_n2^{c_n}+..+a_12^{c_1}+a_0 y = a n ​ 2 c n ​ + . . + a 1 ​ 2 c 1 ​ + a 0

算法导论笔记(一):复杂度,分治,随机

做~自己de王妃 提交于 2020-01-07 18:59:15
示例与概念 插入排序 归并排序 最坏情况分析与平均情况分析 函数增长的渐进记号 (O(n)) 表示函数增长的上界。即,花费时间不会高于线性增长。 (Theta(n)) 同时表示上界和下界。即,花费时间一定是这个线性增长的。 (Omega(n)) 表示增长的下界。 (o(n)) 表示不渐进紧确的上界。如, (2n =O(n^2)) , (n^2=O(n^2)) , (2n=O(n^2)) ,但 (n^2neq o(n^2)) (omega(n)) 与 (o(n)) 类似,表示不紧确的下界。 此外,常用 (T(n)) 表示所需的实际时间的函数。 分析分治算法,以归并排序为例 归并排序最坏运行时间的递归式: [ T(n)=begin{cases}Theta(1)&text{若} n=1,\ 2T(n/2)+Theta(n)&text{若} n>1. end{cases} ] 除使用主定理外,还可以这样理解递归式的值:将递归过程看做一个二叉树。递归调用中的每一层的总代价均为 (cn) ,其中 (c) 为常数。而二叉树的层数应为 (log_2n+1) 。故,整个算法的代价期望为 (Theta(nlog_2n)) 。 分治法 分治法求最大和的子数组 分解。将数组划分为两个子数组。此时,只存在三种子数组: 全部位于中点左侧的子数组 全部位于中点右侧的子数组 跨越中点的子数组 解决

numpy矩阵乘法

百般思念 提交于 2020-01-06 17:30:35
乘号 * numpy矩阵主要是两种形式,numpy.mat和numpy.ndarray。使用乘号的时候要注意,如果是ndarray会默认是数量积,也就是对应点相乘。而如果是mat的话则是向量积,也就是一般的矩阵乘法的格式。 a = np.arange(4) a = a.reshape((2,2)) a_t = np.transpose(a) print(a) print(a_t) print(type(a)) print(a * a_t) b = np.asmatrix(a) print(type(b)) b_t = np.asmatrix(a_t) print(b * b_t) dot() dot遵循的是矩阵向量积,即一般的矩阵乘法。 来源: https://www.cnblogs.com/siren27/p/12157293.html

透视投影(Perspective Projection)变换推导

﹥>﹥吖頭↗ 提交于 2020-01-06 04:32:41
透视投影是3D固定流水线的重要组成部分,是将相机空间中的点从视锥体(frustum)变换到规则观察体(Canonical View Volume)中,待裁剪完毕后进行透视除法的行为。在算法中它是通过透视矩阵乘法和透视除法两步完成的。 透视投影变换是令很多刚刚进入3D图形领域的开发人员感到迷惑乃至神秘的一个图形技术。其中的理解困难在于步骤繁琐,对一些基础知识过分依赖,一旦对它们中的任何地方感到陌生,立刻导致理解停止不前。 没错,主流的3D APIs如OpenGL、D3D的确把具体的透视投影细节封装起来,比如gluPerspective(„) 就可以根据输入生成一个透视投影矩阵。而且在大多数情况下不需要了解具体的内幕算法也可以完成任务。但是你不觉得,如果想要成为一个职业的图形程序员或游 戏开发者,就应该真正降伏透视投影这个家伙么?我们先从必需的基础知识着手,一步一步深入下去(这些知识在很多地方可以单独找到,但我从来没有在同一个地 方全部找到,但是你现在找到了)。 我们首先介绍两个必须掌握的知识。有了它们,我们才不至于在理解透视投影变换的过程中迷失方向(这里会使用到向量几何、矩阵的部分知识,如果你对此不是很熟悉,可以参考 可以找到一组坐标(v1,v2,v3),使得 v = v1 a + v2 b + v3 c (1) 而对于一个点p,则可以找到一组坐标(p1,p2,p3),使得 p –

猪猪的机器学习笔记(三)矩阵和线性代数

随声附和 提交于 2020-01-05 22:14:10
矩阵和线性代数 作者:樱花猪 摘要: 本文为七月算法( julyedu.com ) 12 月机器学习第三次课在线笔记。 矩阵和线性代数在图像处理中运用的非常多,同样地,在机器学习某种事件特征我们常常会描绘成特征向量,那么矩阵的运算和理论方法都必将会应用进来。如果说,概率论提供了机器学习的思维方法,那么矩阵论则是机器学习公式推导和计算机计算的桥梁。本节课内容虽然知识点不多但都非常的重要,是我们日后能够看懂和实际编程的基石。 引言: 本文课题命名矩阵和线性代数但是内容实际上远远超出线性代数的范围,感叹邹博强大的理论基础把许多发杂的理论都简单化了,于是即使只在本科混了几节线性代数也能够无压力的上完这节课。 本文将按照上课的顺序,首先接着上次课再次细致的一下统计量的无偏性,接着再正式进入矩阵论的内容。在矩阵论部分,首先从矩阵的乘法规则来引出状态转移矩阵意义。接下来我们讨论了矩阵的特征值和向量,并介绍了对称阵、正交阵、正定阵等。最后介绍了一下矩阵求导的方法,这部分虽然没有技术难点但在平日操作中总是模糊不清需要强化记忆。 预备知识: 矩阵论 统计量的无偏性 无偏性;均方误差准则 MSE 线性代数: 代数余子式;伴随矩阵;方阵的逆; 概率转移矩阵;正交阵;特征值和特征向量;合同变换;正定阵; 矩阵与导数: 向量偏导公式;标量对向量的导数;标量对方阵的导数; 一、 统计量的无偏性 1.1 无偏性