线性代数

Python 矩阵(线性代数)

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

Python与线性代数基本概念

牧云@^-^@ 提交于 2019-11-30 08:15:26
在Python中使用Numpy创建向量: x = np.array([1, 2, 3, 4]) 创建3 x 3矩阵 B = np.array([[1, 2],[3, 4],[5, 6]]) Shape形状,也可称为维度,表示矩阵中每个维度的具体数值; B.shape 3 x 2 转置 行向量可转置为列向量,列向量转置为行向量 如为方阵转置后行数列数不变,对于非方阵,2 x 3矩阵转置后为3 x 2矩阵 B_t = A.T 检查转置后形状shape B_t.shape 矩阵加法 矩阵相加为两个矩阵对应的元素相加; A = np.array([1,2],[3,4]) B = np.array([4,5],[5,6]) C = A + B = [[5, 7],[8, 10]] 如标量与矩阵相加规则为:标量与矩阵中对应的每个元素相加; 广播   广播为Numpy的机制,使得Numpy可以处理各个不同形状(shape)之间的操作,较小的阵列将会被扩充以匹配较大的阵列形状;   就如上面使用标量与矩阵做相加元素,实际上Numpy把标量转成了与矩阵相同维度的矩阵与该矩阵进行相加;   比如一个3 x 2 矩阵与一个3 x 1矩阵相加,Numpy会自动把3 x 1矩阵复制一列形成3 x2矩阵与该3 x 2矩阵相加,使得两个矩阵的shape能够匹配; 矩阵乘法   矩阵乘法与矩阵加法规则并不一样

线性代数随笔

白昼怎懂夜的黑 提交于 2019-11-29 23:54:37
线性代数学习笔记 矩阵(Matrix) 矩阵简介及矩阵加速 简介 在数学中,矩阵是一个按照长方阵列排列的复数或实数集合,最早来自于方程组的系数及常数所构成的方阵——百度百科 通俗的来讲,把集合里的一些数填入到一个矩形中即得到一个矩阵 定义 由$m\times n$个数$a_{i,j}$排成的数表称为$m$行$n$列的矩阵简称$m\times n$矩阵。 $$ A=\begin{bmatrix}a_{1,1}&a_{1,2}&...&a_{1,n}\a_{2,1}&a_{2,2}&...&a_{2,n}\...&...&...&...\a_{m,1}&a_{m,2}&...&a_{m,n}\end{bmatrix} $$ 这$n\times m$个数称为矩阵$A$的元素,简称为元。。。( 剩下的都是百度百科的废话 有$m$行$n$列的矩阵也记作$A_{mn}$ 特别的,两个$n,m$都相同的矩阵称为同型矩阵 $n=m$的矩阵称为$n$阶矩阵或者$n$阶方阵 基本运算 加法 $$ \begin{bmatrix}a_{1,1}&...&a_{1,n}\...&...&...\a_{m,1}&...&a_{m,n}\end{bmatrix}+\begin{bmatrix}b_{1,1}&...&b_{1,n}\...&...&...\b_{m,1}&...&b_{m,n}\end

机器学习中的线性代数

◇◆丶佛笑我妖孽 提交于 2019-11-29 10:56:49
第二章 机器学习中的线性代数知识 线性代数作为数学中的一个重要的分支,广发应用在科学与工程中。掌握好线性代数对于理解和从事机器学习算法相关的工作是很有必要的,尤其是对于深度学习而言。因此,在开始介绍深度学习之前,先集中探讨一些必备的线性代数知识。 2.1 标量,向量,矩阵和张量 标量(scalar) :一个标量就是一个单独的数。用斜体表示标量,如 s ∈ R //--> . 向量(vector) :一个向量是一列数,我们用粗体的小写名称表示向量。比如 x //--> ,将向量 x //--> 写成方括号包含的纵柱: x = ⎡ ⎣ ⎢ ⎢ ⎢ ⎢ x 1 x 2 ⋮ x n ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ //--> 矩阵(matrix) :矩阵是二维数组,我们通常赋予矩阵粗体大写变量名称,比如 A ​ //--> 。如果一个矩阵高度是 m ​ //--> ,宽度是 n ​ //--> ,那么说 A ∈ R m × n ​ //--> 。一个矩阵可以表示如下: A = [ x 11 x 21 x 12 x 22 ] //--> 张量(tensor) :某些情况下,我们会讨论不止维坐标的数组。如果一组数组中的元素分布在若干维坐标的规则网络中,就将其称为张量。用 A ​ //--> 表示,如张量中坐标为 ( i , j , k ) ​ //--> 的元素记作 A i , j , k ​ //-

形象理解线性代数(三)——列空间、零空间(核)、值域、特征值(特征向量)、矩阵与空间变换、矩阵的秩

≡放荡痞女 提交于 2019-11-29 10:56:28
这里,我们还是要以 形象理解线性代数(一)——什么是线性变换? 为基础。矩阵对向量的作用,可以理解为线性变换,同时也可以理解为空间的变换,即(m*n)的矩阵会把一个向量从m维空间变换到n维空间。 一、 矩阵的列空间与矩阵的秩以及值域的关系 矩阵的列空间,其实就是矩阵的列所组成的空间 。比如我们考虑一个(3*2)的矩阵 ,他的列空间就是 向量和 向量所能组成的空间。在这里,我们有两个向量,所以矩阵的列秩为2(在两向量线性不想关的情况下,表现在图中即两个向量不共线)。如果共线,那么向量 可以写成 的线性表示,这个时候,这两个向量所张成的空间只能是一条直线,所以秩变成了1。 一个矩阵 中的m和n不能等价于矩阵的秩。矩阵的秩,其实就是矩阵的列空间所张成的空间的维度。 矩阵的秩的意义是列向量所能张成的空间的形状的一种描述,虽然在三维空间中,列向量张成的空间中的任一个向量要用三维坐标来表示,但是并不意味着这个空间是一个三维的体,而是一个面,只不过这个面是带有角度的。 从线性变换的角度理解的值域,其实就是从空间角度理解的矩阵的列空间。 二、矩阵与空间变换 同样我们考虑上面的矩阵 ,言外之意就是把二维空间转化为三维空间。在原二维空间中的一个向量 ,经过矩阵A变换后,可以写成: ,即 向量和 向量的线性组合。两个向量(不共线)只能组成平面,而不能形成一个立方体。也就是说,输入 的定义域是一个二维平面

线性代数中的一点理解和感悟

余生颓废 提交于 2019-11-29 10:53:51
看完各路大神相关的东西,写下自己的一点理解和总结。 1.先说 线性 的概念,何为线性,数学里,一般说的线性指的是线性映射,这个映射要同时满足两个条件: 1)可加性:f(x+y)=f(x)+f(y) 2) 齐次性:f(ax)= af(x) 任何一条不满足,就不能叫做线性。 2.再说线性空间,线性空间就是一个包含若干向量的空间,而且根据线性空间的定义(),它还应该满足以下条件: 1)任意取一个向量来伸缩,得到的新的向量还是在这个空间里面(齐次性)。 2)或者任意取两个向量来求和,得到的新的向量还是在这个空间里面(可加性)。 3.基、维、向量、线性变换等 下面图片中是我们常看到书上对基和维的定义: *线性无关即不存在任意一个向量可以由其他向量线性表示。 所以线性空间中的任何一个对象,通过选取基和坐标的办法,都可以表达为向量的形式。这里的对象可以看做或者理解成线性空间中的一个点,比如我们常见的二维或者三维空间中的任意一点的坐标(x,y)、(x,y,z),都可以写作向量的形式(x,y)T,(x,y,z)T。 线性空间中的运动,被称为线性变换。也就是说,你 从线性空间中的一个点运动到任意的另外一个点,都可以通过一个线性变化来完成 。 而对于向量,线性变换可以实现向量的旋转和缩放 。那么,线性变换如何表示呢?很有意思,在线性空间中,当你选定一组基之后,不仅可以用一个向量来描述空间中的任何一个对象

线性代数(五) :子空间及向量张成的空间

风格不统一 提交于 2019-11-29 10:53:37
理解线性组合及向量张成的空间是理解线性无关,子空间,维数和基等等的基础。能更一步加深对线性空间的认识 1 子空间 (1) 子空间的定义 线性空间 X的一个子集Y称为子空间,如果Y中元素的和与数乘仍属于Y。 (注意子空间中一定包含零向量,很容易用反证法证明) 下面是子空间的例子: (i) 二维空间中过原点的直线,三维空间中过原点的平面和直线都是子空间.: 很容易想出上图中的平面和直线上的向量做数乘和加法运算还是平面或者直线上 ,并且他们都经过原点,因此他们都是R^3下的子空间. (ii) 全体行向量(a1,...,an)(aj∈ ) 所构成的集合, Y是首末分量均是零的全体向量所构成的集合(很容易验证) (2)子空间的性质 (i)线性空间X的两个子集Y和Z的和是全体形如y+z(y∈Y,z∈Z)的向量所构成的集合. 记做Y+Z. 若Y和Z均为X的线性子空间。则Y+Z也是。 (ii) 线性空间X的两个子集Y和Z的交是所有公共向量所构成的集合,记做Y∩Z. 若Y和Z均为X的线性子空间。则Y∩Z也是。 (iii)由线性空间X的零元素所构成的集合{0}是X的子空间 叫做 平凡子空间 (trivial subspace)。 以上三条性质很容易证明,这里不做证明 2 线性组合 线性空间X中的一个向量组x1,x2,...,xj的一个线性组合(linear combination)是

线性代数PDF

随声附和 提交于 2019-11-29 10:52:56
线性代数是数学的一个分支,它的研究对象是 向量 , 向量空间 (或称线性空间), 线性变换 和有限维的 线性方程组 。向量空间是 现代数学 的一个重要课题;因而,线性代数被广泛地应用于 抽象代数 和 泛函分析 中;通过解析几何,线性代数得以被具体表示。线性代数的理论已被泛化为算子理论。由于科学研究中的 非 线性模型 通常可以被近似为 线性模型 ,使得线性代数被广泛地应用于自然科学和社会科学中。 如下: https://pan.baidu.com/s/1awdGJmkpoFlymseICD_zRA 来源: CSDN 作者: xi邮lj 链接: https://blog.csdn.net/lj121829/article/details/100129069

形象理解线性代数的本质(一) 向量与矩阵

拈花ヽ惹草 提交于 2019-11-29 10:52:32
本科学习线性代数的时候,一直苦于对矩阵这么一堆罗列起来的数没有一种直观的感觉,也不知道它的具体应用,只是傻傻的学了为了得高分。当用到机器学习的时候才发现在高阶的应用领域都是需要线性代数作为基础的。之所以没有用到线性代数,不是因为它没有用,而是自己工作内容太LOW,够不到使用线性代数的水平。 这里结合中科院王赫然博士的线性代数课程和网上的线性代数帖子,写一系列线性代数的博文,直观的讲解一下线性代数的形象理解。这里只讲解其直观理解,不作推导与证明。 本节要讲的概念有 标量 向量 矩阵 空间 一、 向量和标量 标量的意义—— 比例,权重; 是一维的向量。 向量的意义—— 多个标量的组合;是进化了的标量。 二、向量思想 借用面向对象编程的一句话: 根据这个思想,我们可以把一切都看作向量,所有的变化都可以看做对向量的一种计算。 例如:在三维空间中, 向量 a (1,2,3)是空间中的一个点,也可以看做是一个向量;对它的伸缩、平移、翻转等变换就是一种运算。 三、行向量与列向量 列向量是对象,行向量是方法。这样我们就能够对 向量的乘法 有一个直觉的理解。 我们举一个有趣的例子,来讲一下行向量、列向量以及 行向量 × 列向量 的意义。 我们都玩过对战游戏,游戏角色通常有各种属性值。这里选的角色是曹操,我们用一个列向量来代表曹操(对象)的各项能力数据:统率值、武力值、智力值和政治值。其中每一个数据的

线性代数的本质

不问归期 提交于 2019-11-29 10:52:04
Essense Of Linear Algebra 让你完全理解线性代数。 线性空间中,当你选定一组基之后,不仅可以用一个向量来描述空间中的任何一个对象,而且可以用矩阵来描述该空间中的任何一个运动(变换),从而得出 矩阵 是线性空间里的变换 的描述 。而使某个对象发生对应运动(变换)的方法,就是用代表那个运动(变换)的矩阵,乘以代表那个对象的向量。转换为数学语言: 是 矩阵, 是向量, 相当于将 作线性变换从而 得到 ,从而使得 矩阵 (由n个向量组成)在对象或者说向量 上的变换 就由简单的实数 来刻画,由此称 为矩阵 A的特征值,而 称为 对应的特征向 量。 总结来说,特征值和特征向量的出现实际上将 复杂的矩阵由实数和低维的向量来形象的描述 (代表),实现了 降维 的目的。在几何空间上还可以这样理解:矩阵A是向量的集合,而 则是向量的方向, 可以理解为矩阵A在 方向上作投影,而矩阵又是线性空间变换的描述,所以变换后方向保持不变,仅是各个方向投影后有个缩放比例 。 线性代数的本质 是用静态的坐标(一维(线),二维(面),三维(体)),描述事物的运动。这是其实质。 矩阵 :矩阵就是建立不同的维度,不同的基坐标系。这样你应该理解矩阵的运算法则。加法,乘法。矩阵的阶代表不同的维度,二阶是平面,三阶是体也就是三维,4阶就是超立方体,依次类推。 你可能不理解多维度空间。简单点说:点,线,面