深度学习-数学基础(四)

news/2024/7/8 2:58:57 标签: 深度学习, 人工智能, 机器学习

深度学习数学基础

  • 数学基础
    • 线性代数-标量和向量
    • 线性代数-向量运算
      • 向量加和
      • 向量内积
      • 向量夹角余弦值
    • 线性代数-矩阵
      • 矩阵加法
      • 矩阵乘法
      • 矩阵点乘
      • 矩阵计算的其他内容
    • 人工智能-矩阵的操作
      • 矩阵转置(transpose)
      • 矩阵与向量的转化
    • 线性代数-张量(tensor)
    • 常见张量操作
      • 转置操作(transpose)
      • 张量展平(view)

数学基础

线性代数-标量和向量

标量(Scalar): 一个标量就是一个单独的数
向量(Vector): 一个向量就是一列数,即把向量看做空间中的点,只是有方向,有一个起始点指向所表示的空间位置。
示例:
A[0,0,1]由O执行A的箭头表示向量:
在这里插入图片描述
向量有几个数字,我们就叫几维向量

线性代数-向量运算

向量加和

条件 两个相加的向量维度相同,即有相同的位置或者长度
示例

A + B = B + A
[1,2] + [2,3] = [2,3] + [1,2] = [3,5]

向量内积

条件 两个相加的向量维度相同,即有相同的位置或者长度
示例

A + B = B + A
[1,4] + [2,3] = 12 + 43 = 14
规则:对应位置上的数相乘之和

向量夹角余弦值

条件 两个相加的向量维度相同,即有相同的位置或者长度
示例

A + B = B + A
Cosθ = A*B / |A| · |B|
余弦值的计算:即为内积除于两个向量模的乘积
|A|叫做A的模,可以理解为向量的长度的意思
模的计算:|A| = √(𝑥^2),即对A的所有数字的平方求和并开方

线性代数-矩阵

矩阵(matrix)释义: 字面意思,多个数组组成的矩形
示例
在这里插入图片描述

3乘2的矩阵就是有三行两列数字,如果是1乘3矩阵,就是有1行,三列数字的矩形

矩阵加法

条件: 相加的矩阵行列必须相同,即形状要一样
规则: 对应的位置数字相加即可

在这里插入图片描述

矩阵乘法

条件: 两个矩阵相乘,首先不能交换位置;其次左边的矩阵的列数必须于右边相乘矩阵的行数相同,即左边的宽必须等右边的长。
规则: 即为左侧矩阵的行与右侧矩阵的列对应序号的数字相乘之后作为所在行与所在列序号的结果,比如左侧第一行数字分别于右侧第一列的数字相乘之和得到的数字,在新的矩阵中的位置就是一行一列

注意特点: M x N 矩阵乘以 N x P矩阵得到M x P维度矩
在这里插入图片描述

矩阵点乘

条件: 两个矩阵点乘,必须形状一致,即必须是行列大小相同。
规则: 即为两个矩阵对应位置的数相乘,得到新的位置矩阵的数
在这里插入图片描述

矩阵计算的其他内容

1.符合分配率

A*(B+C) =AB +AC

1.符合结合率

A*(BC) =(AB )*C

人工智能-矩阵的操作

矩阵转置(transpose)

释义: 就是将矩阵的行列互换,原来第一列的数据,改为第一行,数字的顺序不变,形成转置后的矩阵。

示例:在这里插入图片描述

矩阵与向量的转化

释义:

向量转矩阵称为reshape,规则即为,将向量的数字,按照形成的矩阵要求,从第一行从左到右数字填充,填完后再到第二行重复操作
在这里插入图片描述
矩阵转向量称为flatten,规则即为,将矩阵的数,从第一行由左到右,接着第二行由左到右写为一排即可

在这里插入图片描述

线性代数-张量(tensor)

张量释义: 将多个矩阵排列在一起,就是张量,那么排列在一起的矩阵必须形状一致才行,比如是MxN的矩阵,有S个排列在一起,就称为SxMxN的张量;更进一步 将K个SxMxN的张量排列在一起,就可以称为KxSxMxN维度的张量。
注意:

张量是神经网络训练中最为常见的数据形式
所有的输入,和输出、中间结果基本都是以张量形式存在的
张量中的矩阵一般形状都是相同的即行列大小相同

下面是一个2x2x2维度的张量
***注意:***实际代码中,矩阵中每行的数字都由[]括起来的,是一种写法,不必纠结;等价于矩阵的整体的大括号[]
在这里插入图片描述

常见张量操作

原始的2x2x2的张量如下:
在这里插入图片描述

转置操作(transpose)

进行transpose(1,2)

含义,即原有的2x2x2的张量,其中数字可以看做成一个数组[2,2,2],这里的transpose(1,2)即代表原有数组中的第二号位置和第三号位置,第二号代表行,第三号数字代表列,即原有的张量中的每一个矩阵内部行列转换。结果如下:

在这里插入图片描述

进行transpose(0,1)

含义:和上述一样,代表的是原有张量中的第0号位置、和第1号位置,即分别代表张量和行,所以进行的转置是张量内的矩阵之前进行行交换

在这里插入图片描述

张量展平(view)

X.view(-1,2)
X.view(4,2)
释义: 上面两个展平的结果和作用在当前这个张量例子中是一样的效果,含义不一样。

X.view(-1,2),代表需要将张量展平为2列的矩阵,-1就是一个占位的,直接写-1即可;如果张量有10个数字,展开就是5x2;即指定列数,行数自动给你算。
X.view(4,2),代表我目标就是展平为4x2的矩阵,这个是写的更明白,写-1更方便。注意哈,原来的张量有多少个数字,展平后,不管那种写法,原有的数字都不会减少和增多

在这里插入图片描述


http://www.niftyadmin.cn/n/5536057.html

相关文章

Pip的缓存机制解析:提升Python包管理效率的秘密武器

Pip的缓存机制解析:提升Python包管理效率的秘密武器 Pip是Python的包管理工具,用于安装和管理Python库。从pip 20.3版本开始,引入了一项重要的特性——缓存机制。这一机制显著提升了包安装的速度和效率,尤其是在网络条件不佳或需…

技术赋能政务服务:VR导视与AI客服在政务大厅的创新应用

在数字化转型的浪潮中,政务大厅作为服务民众的前沿阵地,其服务效率和质量直接影响着政府形象和民众满意度。然而,许多政务大厅仍面临着缺乏智能化导航系统的挑战,这不仅增加了群众的办事难度,也降低了服务效率。维小帮…

NPM(Node Package Manager)常用指令详解

NPM(Node Package Manager)是Node.js的包管理工具,它允许用户从NPM仓库中安装、更新、删除软件包,以及管理项目的依赖关系。以下是NPM的一些常用命令及其详解: 查看版本 npm -v:查看当前NPM的版本号。 初始…

Dubbo 3.x源码(22)—Dubbo服务引用源码(5)服务引用bean的获取以及懒加载原理

基于Dubbo 3.1,详细介绍了Dubbo服务的发布与引用的源码。 此前我们学习了Dubbo3.1版本的服务引入的总体流程,当然真正的服务远程引入、以及配置迁移啥的都还没讲,但是本次我们先不接着讲MigrationRuleListener#onRefer方法,而是先…

OpenCV 张正友标定法(二)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 在之前的博客OpenCV 张氏标定法中,我们没有考虑镜头畸变等因素,因此计算出的内参与外参均是理想情况下的数值,而如果我们考虑到镜头的畸变: 我们就需要考虑使用最小二乘法最小化像素坐标的重投影误差(上述所求…

背包问题(一)

一.P3985 不开心的金明(01背包变式) 解析: 一开始没有看数据范围,直接当01背包直接写了,结果最后4个测试点RE,一看到数据范围就老实了,1e9的数据,数组直接炸,所以不能直接使用一维的01背包.看了一下题解,部分人是通过极差对数据进行分类,按照300进行分开,使用贪心和dp一起做. …

IPython的“%paste“魔法:代码粘贴的救星

IPython的"%paste"魔法:代码粘贴的救星 在数据科学和编程的世界中,效率和便捷性是至关重要的。IPython,作为一个强大的交互式Python解释器,提供了一系列的"魔法命令"来增强用户体验。其中,%paste…

深入浅出:npm常用命令详解和实践

npm 是 Node.js 的包管理器,用于管理 Node.js 应用的依赖关系和版本。 以下是一些常用的 npm 命令: npm init: 命令用于初始化一个新的 Node.js 项目。它会创建一个 package.json 文件,这个文件包含了项目的元数据和依赖信息。 npm initnpm…