花书《深度学习》代码实现:01 线性代数:基本概念+代码实现基本运算

1 标量、向量、矩阵和张量

2 矩阵和向量相乘

3 单位矩阵和逆矩阵

3.0 单位矩阵

a = np.identity(3) # 三行三列单位矩阵

3.1 矩阵的逆

A = [[1.0,2.0],[3.0,4.0]]
A_inv = np.linalg.inv(A)
print("A 的逆矩阵", A_inv)

3.1 转置

A = np.array([[1.0,2.0],[1.0,0.0],[2.0,3.0]])
A_t = A.transpose()
print("A:", A)
print("A 的转置:", A_t)

3.2 矩阵相加

 a = np.array([[1.0,2.0],[3.0,4.0]])
b = np.array([[6.0,7.0],[8.0,9.0]])
print("矩阵相加: ", a + b)

3.3 矩阵乘法

m1 = np.array([[1.0,3.0],[1.0,0.0]])
m2 = np.array([[1.0,2.0],[5.0,0.0]])
print("按矩阵乘法规则: ", np.dot(m1, m2))
print("按逐元素相乘: ", np.multiply(m1, m2))
print("按逐元素相乘: ", m1*m2)
v1 = np.array([1.0,2.0])
v2 = np.array([4.0,5.0])
print("向量内积: ", np.dot(v1, v2))

4 线性相关和生成子空间


5 范数

5.0 代码实现

5.0.1 向量的L1 L2 无穷范数

a = np.array([1.0,3.0])
print("向量 2 范数", np.linalg.norm(a,ord=2))
print("向量 1 范数", np.linalg.norm(a,ord=1))
print("向量无穷范数", np.linalg.norm(a,ord=np.inf))

5.0.2 矩阵的F范数

a = np.array([[1.0,3.0],[2.0,1.0]])
print("矩阵 F 范数", np.linalg.norm(a,ord="fro"))

5.1 范数的总定义

范数是将向量映射到非负值的函数。直观上来说,向量 x 的范数衡量从原点到点 x 的距离。

5.1.1 定义

5.1 L1范数

5.1.1 定义

当机器学习问题中零和非零元素之间的差异非常重要时,在这些情况下,转而使用在各个位置斜率相同,通常会使用L1范数,也经常作为表示非零元素数目的替代函数。

5.1.2 数学表达

5.2 L2范数/欧几里得范数

表示从原点出发到向量 x 确定的点的欧几里得距离。

5.2.1 平方 L2 范数

也经常用来衡量向量的大小,可以简单地通过点积计算,在原点附近增长得十分缓慢。

5.2.2 平方L2范数与L2 范数对比

平方L2范数对x中每个元素的导数只取决于对应的元素。

L2范数对每个元素的导数却和整个向量相关。

5.3 最大范数

5.3.1 含义

表示向量中具有最大幅值的元素的绝对值:

5.3.2 定义

 5.4 F范数

5.4.1 含义

F范数用来衡量矩阵的大小

5.4.2 数学定义

 5.5 用范数表示点积

6 特殊矩阵

6.1 对角矩阵

只在主对角线上含有非零元素,其他位置都是零。

6.1.1 对角矩阵的含义

通过将一些矩阵限制为对角矩阵,我们可以得到计算代价较低的(并且简明扼要的)算法。

6.1.2 非标准对角矩阵的乘法计算

 6.2 对称矩阵

 6.3 正交矩阵

行向量和列向量是分别标准正交的方阵:

 6.4 单位向量与正交

6.5 标准正交

如果这些向量不仅互相正交,并且范数都为1,那么我们称它们是标准正交。

7 特征分解

7.0 代码实现:特征分解

A = np.array([[1.0,2.0,3.0],
[4.0,5.0,6.0],
[7.0,8.0,9.0]])
# 计算特征值
print("特征值:", np.linalg.eigvals(A))
# 计算特征值和特征向量
eigvals,eigvectors = np.linalg.eig(A)
print("特征值:", eigvals)
print("特征向量:", eigvectors)

7.1 定义

将矩阵分解成一组特征向量和特征值。

7.2 计算方法

 7.3 Tip

不是每一个矩阵都可以分解成特征值和特征向量。

每个实对称矩阵都可以分解成实特征向量和实特征值。

 7.4 正定、半正定、负定、半负定矩阵

  1. 所有特征值都是正数的矩阵被称为正定矩阵。
  2. 所有特征值都是非负数的矩阵被称为半正定矩阵。
  3. 所有特征值都是负数的矩阵被称为负定矩阵。
  4. 所有特征值都是非正数的矩阵被称为半负定矩阵。

8 奇异值分解(singular value decomposition, SVD)

8.0 代码实现奇异值分解

A = np.array([[1.0,2.0,3.0],
[4.0,5.0,6.0]])
U,D,V = np.linalg.svd(A)
print("U:", U)
print("D:", D)
print("V:", V)

8.1 含义

将矩阵分解为奇异向量和奇异值。

8.1 分解计算方法

 9 伪逆

9.1 解决的问题

如果矩阵A的行数大于列数,那么上述方程可能没有解。如果矩阵A的行数小于列数,那么上述矩阵可能有多个解。

9.2 计算过程 

10 迹运算

10.1 迹的定义

10.2 迹运算提供了描述矩阵Frobenius范数的方式:

10.3 运算规则

10.3.1 迹运算在转置运算下是不变的

10.3.2 多个矩阵相乘得到的方阵的迹,和将这些矩阵中的最后一个挪到最前面之后相乘的迹是相同的。

10.3.3 循环置换后矩阵乘积得到的矩阵形状变了,迹运算的结果依然不变。

 10.3.4 标量在迹运算后仍然是它自己

 11 行列式

11.1 定义

行列式,记作det(A),是一个将方阵A映射到实数的函数。

11.2 行列式的特点

  1. 行列式等于矩阵特征值的乘积。
  2. 行列式的绝对值可以用来衡量矩阵参与矩阵乘法后空间扩大或者缩小多少。
  3. 如果行列式是0,那么空间至少沿着某一维完全收缩,使其失去所有的体积。
  4. 如果行列式是1,那么这个转换保持空间体积不变。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/469173.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Pytorch神经网络理论篇】 38 Transformers:安装说明+应用结构+AutoModel类

同学你好!本文章于2021年末编写,获得广泛的好评! 故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现, Pytorch深度学习理论篇(2023版)目录地址…

clone是深拷贝还是浅拷贝_Python中的浅拷贝和深拷贝

本文翻译自copy in Python (Deep Copy and Shallow Copy),讲述了在Python语言中浅拷贝与深拷贝的不同用法。全文系作者原创,仅供学习参考使用,转载授权请私信联系,否则将视为侵权行为。码字不易,感谢支持。以下为全文内…

【Pytorch神经网络实战案例】32 使用Transformers库的管道方式实现:加载指定模型+文本分类+掩码语言建模+摘要生成+特征提取+阅读理解+实体词识别

管道方式是Transformers库中高度集成的极简使用方式。使用这种方式来处理NLP任务,只需要编写几行代码就能实现。通过本例的练习可以使读者对Transformers库的使用快速上手。 1 在管道方式中指定NLP任务 Transfomers库的管道方式使用起来非常简单,核心步…

jqprint获取打印页数_如何将每张打印多页PPT的PDF变成常规课件

在工作和学习中,经常会收到各种 PDF 文件,尤其是老师的课件。为了防止学生大量上传到各种文库网站赚积分,或者为了方便学生打印出来预习复习。通常,会在每页 PDF 里面,打印多张 PPT 内容。一般是 6 张或 9 张&#xff…

vba 判断文本框内容是否为空_【VBA】 数据输入 Inputbox 基本语法

在使用Excel 的过程中,如果需要用户输入简单的数据,作为“已知数”,那么可以使用inputbox 函数显示一个对话框,供用户在对话框中输入数据。 Inputbox 函数语法在一对话框来中显示提示,等待用户输入正文或按下按钮&…

无向图的深度优先遍历非递归_LeetCode0429: N叉树的层序遍历

题目介绍描述:给定一个 N 叉树,返回其节点值的层序遍历。 (即从左到右,逐层遍历)。例如,给定一个 3叉树 :返回其层序遍历:[[1],[3,2,4],[5,6] ]说明:树的深度不会超过 1000。 树的节点总数不会超过 5000。解题思路:★ …

一条龙操作有效解决PermissionError: [WinError 5] 拒绝访问的问题

1 问题描述 当在使用pip install 安装包时,如:pip install scrapy scrapyd scrapyd-client spiderkeeper出现报错:PermissionError: [WinError 5] 拒绝访问。: ‘c:\programdata\anaconda3\lib\site-packages\dateutil\easter.py’ 2 解决办…

预订态势图

//预订态势图JS//根据日期得到对应星期几 function getWeekByDay(riqi){//2017-01-23;var getWeek "";var arys1 new Array(); arys1riqi.split(-); //日期为输入日期,格式为 2013-3-10var ssdatenew Date(arys1[0],parseInt(arys1[1]-1),arys1…

altera fpga sdi输出方案_FPGA在电力电子中的应用有哪些?

大家好,很抱歉上周末没有及时更新公众号,本来这期想聊聊IGBT的拖尾电流,但是由于周末去深圳高交会(高新技术成果交易会)逛了一天,时间给耽搁了,感觉要想把拖尾电流讲清楚也不太容易,还得需要点时间&#xf…

【Pytorch神经网络理论篇】 39 Transformers库中的BERTology系列模型

同学你好!本文章于2021年末编写,获得广泛的好评! 故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现, Pytorch深度学习理论篇(2023版)目录地址…

Unity之CharacterController2D学习笔记(1)——基础使用

在很多游戏类型中,玩家角色对物理行为的处理往往和场景中其它物体的行为有比较大的区别。比如角色可能会以90多公里的时速狂奔,同时一次跳跃能跳10多米高,与此同时却几乎不会有任何惯性。同时角色在正常情况下当头部碰到障碍物的时候&#xf…

【Pytorch神经网络实战案例】33 使用BERT模型实现完形填空任务

1 案例描述 案例:加载Transformers库中的BERT模型,并用它实现完形填空任务,即预测一个句子中缺失的单词。 2 代码实现:使用BERT模型实现完形填空任务 2.1 代码实现:载入词表,并对输入的文本进行分词转化--…

c++ string 删除字符_字符串操作的全面总结

来自公众号:C语言与cpp编程字符串操作看似简单,其实非常重要,不注意的话,经常出现代码运行结果和自己想要的不一致,甚至崩溃。本文总结了一些构建string对象方法、修改string对象的方法、string类型的操作函数、string…

【Pytorch神经网络理论篇】 40 Transformers中的词表工具Tokenizer

同学你好!本文章于2021年末编写,获得广泛的好评! 故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现, Pytorch深度学习理论篇(2023版)目录地址…

【Pytorch神经网络实战案例】34 使用GPT-2模型实现句子补全功能(手动加载)

1 GPT-2 模型结构 GPT-2的整体结构如下图,GPT-2是以Transformer为基础构建的,使用字节对编码的方法进行数据预处理,通过预测下一个词任务进行预训练的语言模型。 1.1 GPT-2 功能简介 GPT-2 就是一个语言模型,能够根据上文预测下…

电容式传感器位移性能试验报告_一文读懂什么是接近传感器?

点击上方蓝字 记得关注我们哦!接近传感器是一种非接触式传感器,当目标进入传感器的视野时,它会检测到物体(通常称为“目标”)的存在。取决于接近传感器的类型,传感器可以利用声音,光,红外辐射(IR)或电磁场来…

[dts]DTS实例分析

2. 通常会碰到的实际问题 到此,问题出现了: 1. 当写一个按键驱动,应该如何在*.dts或者*.dtsi中操作? 2. 当在串口driver中需要使用到某个pin脚作为普通输出IO,该如何操作? 3. 当在串口driver中需要使用某个muxpin脚作…

【解决】YOLOv6.1安装requirements.txt报错UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0x84

案例描述: 使用YOLOV5时,报错解决UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0x84 in position 285: illegal multibyte sequence 解决方案: 在C:\ProgramData\Anaconda3\lib\distutils\dist.py"文件搜索read 将parser.read(filenam…

bp 神经网络 优点 不足_深度学习之BP神经网络--Stata和R同步实现(附Stata数据和代码)

说明:本文原发于“计量经济圈”公众号,在此仅展示Stata的部分。R部分请移步至本人主页的“R语言与机器学习--经济学视角”专栏,或点击下方链接卡跳转。盲区行者:深度学习之BP神经网络--Stata和R同步实现(附R数据和代码…

Win10系统下使用anaconda在虚拟环境下安装CUDA及CUDNN

前排预警:不要挂梯子!!!!!使用清华源就行不然报错!!!! 解决check_hostname requires server_hostname_orange_の_呜的博客-CSDN博客错误描述在GitHub下载代码文件后使用pip install -r requirement.txt下载依赖包时出…