Python学习路线人工智能线性代数知识点汇总
人工智能和数据分析相关的线性代数知识。比如什么是矢量,什么是矩阵,矩阵的加减乘除。矩阵对角化,三角化,秩,QR法,最小二法。等等
矢量:
高中数学中都学过复数,负数表达式是:
a+bi
复数实际上和二维的矢量是异性同构的。所谓异性同构,是一个很严格的数学定义,这里不是重点,不做介绍。我们可以近似的把它理解为本质是一样的,只是外形不同,就如正直的绅士和善良的乞丐那样。唯一的不同仅仅是外形。回忆下高中我们是如何在一个平面上描述负数的。
既然复数和二维矢量是一个东西,仅仅是外表不同,那么矢量在线性代数中如何描述呢。
坐标描述:
几何描述:
二维的矢量在二维矢量空间中和复数在复平面中是一样的。一个箭头带着常常的尾巴,箭头代表着它的方向,尾巴说明它是有长度的。矢量像一支支离弦之箭,在矢量空间翱翔。矢量空间是一个十分重要的数学概念。它包括很多子空间,你比如欧几里矢量空间、拓扑矢量空间、赋范空间、预希耳伯特空间、酉空间(复数矢量空间)。每个空间都有它的特别之处和独有的操作法则。我们关注的重点是欧几里空间,可能以后会稍微提一下赋范空间,其它的这里不做描述,尽管他们有些十分十分重要,和数据分析也密切相关。比如拓扑矢量空间。但是它实在太难了,如果你不打算当数学家的话,还是不要去招惹它。如果你感兴趣,我们可以私下聊。
我们一直在说二维矢量,那么多维矢量又是什么样呢。
例如坐标描述四维矢量:
几何描述在有限维度矢量空间均和二维空间一样。
和复数中的模类似,在欧几里空间中存在范数2,它是由标积派生而出。标积的定义如下:
当时:
矢量的加:
矢量加法适用结合律和交换律。
矢量的减:
矢量的三角不等式:
此不等式成立的原因,三角形两边之和大于第三边。
注:矢量可以在欧几里空间任意平移,不改变矢量本身。
矢量的除法:
目前数学上还没有这个定义,如果你能定义出矢量除法,并且合理。那菲尔茨奖肯定颁发给你。
叉积:
两个矢量的叉积又是矢量,其方向垂直于这两个矢量撑起的平面,其长度为:
这个值恰恰也是上面平面的面积。
在卡迪尔坐标下,叉积可表示成:
叉积满足负交换律。
交叉乘积:
人们通过下面的等式定义交叉乘积:
它的结果是一个标量。这个标量等于这三个矢量撑起平行六面体的体积(作业?)
如果这三个矢量构成右手系统,则是正值,反之,假如构成左手系统。则是负值。如果这些矢量是线性相关。则
矢量的归一化:
(选学)矢量的基底变换
通常我们遇到矢量都是借助于欧几里空间的卡迪尔坐标系统标准基底来描述的。什么是基底呢。
基底定义:基底是一个矢量空间的子集。这个子集不仅能够派生出整个矢量空间,也就是说任意一个这个矢量空间的矢量都可以通过这个基底唯一表达。这个我们称之为派生系统。而且子集中各元素线性不相关。(房子理论)
如何派生出整个矢量空间?
假设V是一个n维矢量空间,,是一个V的一个基底。那么我们可以这样来表达整个V矢量空间。
线性不相关:
现在我们把基底限制到单位卡迪尔坐标系统标准基底基底,也就是:
例子:假如矢量V1=(1,7,9)是关于标准基底的矢量,试用基本基底展开这个矢量。
我们把上面的例子普通化到n维空间,得到如下公式,
如果我们选择非标准基底,结果会怎样呢?
假如矢量V1=(1,7,9)是关于标准基底的矢量,现有另一个也是关于标准基底矢量空间基底,((1,1,0),(0,1,0),(0,0,1),请尝试用这个基底来表示V1。
办法:我们尝试把V1分别分解到这三个矢量上;公式如下:
这里矢量是我们的V1,是我们这里的基底矢量中的某一个。由此可得:
求上面等式可得:
这个就是矢量V1在新基底下的列矢量表述形式。
我们可以看到同一个矢量在不同的基底下列的表述完全是不一样的。这就要求我们,在做矢量运算时,一定要注意两点:
1. 这个矢量是在哪一个基底下被描述的。
2. 各矢量之间的运算必须在同一基底下才是正确的。
上面所讲的内容就是矢量的基底变换。它主要应用于一些与矢量运算,矩阵运算相关的数据处理,人工智能问题。通过基底变换很多复杂的矩阵变得十分简单。节省大量的运算时间。
注意:标积中的两个矢量必须关于相同基底,不同基底必须转化成相同基底才能运算。
矩阵
(选学)域(体)和环:
(代数学)域,有些书也称作体,是一个带有‘+’和‘*’操作的特殊集合。并且这个集合里的任意元素都满足下列特性。
1. 加法特性:
A.结合律
B.交换律
C.中性元素‘0’元素存在且满足0+a=a(中性元素就是说任何元素与其做+操作结果还是该元素本身)
D. 逆元素—a存在,即满足(任何元素的逆元素与该元素进行加操作结果都等于中性元素)
2. 乘特性
A.结合律
B.交换律
C. 中性元素‘1’元素存在且满足1*a=a(中性元素就是说任何元素与其做‘*’操作结果还是该元素本身)
D. 逆元素存在:对于任意存在且满足:任何元素的逆元素与该元素进行加操作结果都等于中性元素)
3. 分配率(‘+’和‘*’操作结合)
左分配律:
右分配律:
实数,有理数,和复数都是典型的域。
环,环是另一个代数概念,他的定义与体区别不多,唯一的不同在‘*’操作上。环在乘特性处只满足结合律,也就是说他没有乘操作中性元素和逆元素,也不满足交换律。
整数是一个典型的环。
线性函数,
假设V,W 是两个关于域K(注:没有特殊说明本讲义的体是实数)的矢量空间,一个映射叫做线性映射(函数)。如果对于V中任意两个元素x和y以及K中元素a,f 满足下列条件:
矩阵是矢量空间的线性映射的一种表现形式。它是矢量线性映射最佳表现形式。因此直到现在他还是研究多元性线性问题的一种主要手段。
矩阵的书写:
其中(a11 a12 ... a1n)... (am1 am2 ... amn)是行矢量,(a11 a21 ... am1) ... (a1n a2n ... amn)列矢量。
矩阵的加减乘:
+:
例:
例:
减法和加法没有任何区别。因为A-B=A +(-B)
其它矩阵“+”操作:
*:
1. 与标量相乘
例子
2. 矩阵相乘:
假设A,B,C是三个矩阵,且A*B=C。则下列等式满足:
通过这个等式我们可以确定整个矩阵C的元素。
例:
例:
通常
常用的乘操作公式:
以及是三个矩阵,那么下列等式总是有效。
矩阵转置
简单表示法
一般表示法:
其它与转置矩阵有关的公式:
逆矩阵
一个实数平方矩阵叫正则矩阵如果存在一个矩阵满足下列等式:
其中I是单位矩阵。矩阵B是唯一确定,并被称为A的逆矩阵。A的逆矩阵通常用来表示。
逆矩阵常见的性质:
(通过这个公式,人们可以把难以求逆的矩阵分解成容易求逆的矩阵)
逆矩阵的确定:高斯-约旦算法
例子:
例子:
逆矩阵的确定:行列式法
逆矩阵的确定:特征多项式法:
(选学)矩阵和线性函数的关系
假设K是一个域,V 和 W 是两个有穷维矢量空间,分别带有维数n和m。和是V和W的基底。这两个矢量空间能分别与标准坐标空间Kn和Km同构,这是因为对于任意都可以用下面唯一的等式表达:
等式的右边可以立马写成列坐标的形式:
通过上面的等式,我们能容易地证明V和W与Kn和Km同构(一一映射并且是线性的)。
假设是一个线性映射,那么V的一个基底矢量的象可以用下面的等式来表达:
同样等式的右边也可以写成坐标的形式:
我们把每次求出的排成一排,组成下面的一个矩阵.
我们也叫他映射矩阵.
下面我们来证实上面映射矩阵的构成是合理的。
又可以写成坐标的形式:
观察(*)等式,我们可以立即把等式写成矩阵和矢量相乘的形式。
Python学习路线人工智能线性代数知识点汇总的更多相关文章
- Python 学习路线(2022)
原文链接: Python 学习路线(2022) 前几天整理了一份 Go 学习路线(2022),广受好评.那么趁火打劫,不是,是趁热打铁,又整理了一份 Python 学习路线. 内容依然是从入门到进阶, ...
- 【最新发布】最新Python学习路线,值得收藏
随着AI的发展,Python的薪资也在逐年增加,但是很多初学者会盲目乱学,连正确的学习路线都不清楚,踩很多坑,为此经过我多年开发经验以及对目前行业发展形式总结出一套最新python学习路线,帮助大家正 ...
- python入门灵魂5问--python学习路线,python教程,python学哪些,python怎么学,python学到什么程度
一.python入门简介 对于刚接触python编程或者想学习python自动化的人来说,基本都会有以下python入门灵魂5问--python学习路线,python教程,python学哪些,pyth ...
- Python学习路线2019升级版(课程大纲+视频教程+网盘资源下载)
2019最新Python全栈+人工智能学习路线升级版 全面涵盖前端.后端.爬虫.数据挖掘.人工智能等课程(课程大纲+视频教程+网盘资源下载)! 学习路线四大亮点: 1.人工智能三大主流框架全覆盖 2. ...
- python学习路线以及视频下载
作者:林其链接:https://www.zhihu.com/question/19660572/answer/194904019来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...
- Python学习路线【对标大厂Python工程师的招聘要求,并推荐优质免费资源】打卡学习不迷茫
您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦. 本文要点:从Python爬虫工程师的招聘要求出发制定学习路线,同时还推荐免费优质的学习资源. 打卡学习不迷茫. 干货满满,建议收藏,需要用到时常看 ...
- 关于OpenStack的学习路线及相关资源汇总
首先我们想学习openstack,那么openstack是什么?能干什么?涉及的初衷是什么?由什么来组成?刚接触openstack,说openstack不是一个软件,而是由多个组件进行组合,这是一个更 ...
- python全栈开发 * 10知识点汇总 * 180612
10 函数进阶 知识点汇总 一.动态参数 形参的第三种1.动态接收位置传参 表达:*args (在参数位置编写 * 表⽰接收任意内容) (1)动态位置参数def eat(*args): print(a ...
- python学习两月总结_汇总大牛们的思想_值得收藏
下面是我汇总的我学习两个月python(version:3.3.2)的所有笔记 你可以访问:http://www.python.org获取更多信息 你也可以访问:http://www.cnblogs. ...
随机推荐
- 安全易用的云许可-VirboxLM许可管理平台
Virbox LM是深思推出的基于云许可管理的开放平台,旨在为开发者提供低成本.高强度.操作便捷的一站式软件保护方案. Virbox LM包括用户许可管理工具.加壳工具.API帮助工具.开发商管理工具 ...
- 手机端 https://doc.vux.li/zh-CN/components/badge.html
https://doc.vux.li/zh-CN/components/badge.html 手机端前端框架
- Scala辅助构造器和主构造器
和java或c++一样,scala也可以有任意多的构造器.不过,scala类有一个构造器比其它所有构造器都更为重要,它就是主构造器.除了主构造器之外,类还可以有任意多的辅助构造器. 有两点需要注意: ...
- Ubuntu Server16.04 配置网卡
展示全部启动网卡 $ ifconfig 配置网卡 $ sudo vi /etc/network/interfaces auto enp2s0 iface enp2s0 inet static addr ...
- Java 基础 接口和多态
接口 接口的概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”. 接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成.这样将功能的 ...
- Java 基础 变量和运算符
Java基础语法 第1章 变量 1.1 变量概述 1.2 计算机存储单元 1.3 基本类型之4类8种 1.4 常量与类型 1.5 定义变量(创建变量) 1.6 变量使用的注意事项 1.7 数据类型 ...
- 20165321实验一Java开发环境的熟悉-1
- jmeter二次开发----Loadrunner或Jmeter发送邮件报告
Loadrunner支持Java Vuser,而Jmeter本身就是基于Java开发的,所以两者都可以通过JMail组件实现邮件发送.本人使用的是mail-1.4.7.jar,可以通过下载获得:htt ...
- 延期版本webstorm(解决许可证过期,注册,激活,破解,码,支持正版,最新可用)
很多人都发现 http://idea.lanyus.com/ 不能激活了 很多帖子说的 http://15.idea.lanyus.com/ 之类都用不了了 选择 License server (20 ...
- C++ 类定义
C++ 类定义 定义一个类,本质上是定义一个数据类型的蓝图.这实际上并没有定义任何数据,但它定义了类的名称意味着什么,也就是说,它定义了类的对象包括了什么,以及可以在这个对象上执行哪些操作. 类定义是 ...