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

深度学习数学基础

  • 数学基础
    • 线性代数-标量和向量
    • 线性代数-向量运算
      • 向量加和
      • 向量内积
      • 向量夹角余弦值
    • 线性代数-矩阵
      • 矩阵加法
      • 矩阵乘法
      • 矩阵点乘
      • 矩阵计算的其他内容
    • 人工智能-矩阵的操作
      • 矩阵转置(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更方便。注意哈,原来的张量有多少个数字,展平后,不管那种写法,原有的数字都不会减少和增多

在这里插入图片描述

导数

导数介绍

导数释义: 导数在数学中的含义,就是描述一个函数在某一点的变化趋势;简单点说就是,x增大,y增大还是减小,(y这个数随着x变化而变化的)这个关系由导数的正负表达。
示意图如下:
在这里插入图片描述
导数在深度学习中的用处拆解:

1.首先我们在深度学习训练中,有个重要的步骤,就是求模型预测值和我们想要的值之间的差距 –loss
2.换一句话说,我们的想办法调整原来函数中举例:(y=k*x +b),可以调整的数,使得求出来的loss最小。
3.那以y=k*x +b)为例,啥参数可以调整呢?是:k、b吧;x是我们的输入数据、y是我们预测的数据哦别搞混了
4.那调整k、b,怎么调呢,哎,导数呗,导数可以知道当前k,b调大,loss是增大还是减小嘛,这就是最关键的作用。

常见导数(一般都不常见)

在这里插入图片描述

复合函数基本求导法则

在这里插入图片描述

注释

看到这的朋友,如果数学不太好的话,感觉有点懵,想和您说一声,辛苦了,其实上面使用的基础数学知识呢,对于一般的开发者来说,用不上。咱们都有框架了pytorch、Tensorflow…,还有各种numpy、…包;咱们只需要了解基本的原理就行,等需要用到时,一般也不是啥问题了。

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

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

相关文章

GEE代码实例教程详解:湖泊面积变化分析

GEE代码实例教程详解:湖泊面积变化分析 简介 在本篇博客中,我们将通过Google Earth Engine (GEE) 探索湖泊面积随时间的变化。通过分析MODIS数据集中的归一化差异水体指数(NDWI),我们可以识别湖泊区域并监测其面积变…

达梦数据库kill会话

达梦数据库kill会话 在达梦数据库(DM Database)中,可以使用 SP_CLOSE_SESSION 存储过程来终止会话。这个存储过程需要提供会话 ID (sid) 作为参数,用于指定哪个会话需要被终止。 下面是使用 SP_CLOSE_SESSION 存储过程的详细步骤…

第5章 Vite高级功能(二)

文章目录 6 缓存和持久化6.1 配置缓存目录 7 压缩与最小化7.1 启用压缩7.2 配置压缩选项 8 生产环境优化8.1 移除调试信息8.2 配置环境变量 9 静态资源优化9.1 压缩图像9.2 合并和压缩 CSS9.3 使用 HTTP/2 10 分析构建结果10.1 使用分析插件10.2 生成包分析报告 6 缓存和持久化…

PostgreSQL的使用

PostgreSQL的使用 1.首先,使用docker进行安装pgvector数据库,具体的安装步骤可以查看我之前发的博文。 2.docker exec -it pgvector /bin/bash 进入docker容器内部,操作数据库,上述命令是以交互式命令进入了容器的内部&#xf…

卷技术还是卷应用?李彦宏给出了明确答案

如何理解李彦宏说的“不要卷模型,要卷应用” 引言 7月4日,2024世界人工智能大会在上海世博中心召开。百度创始人兼CEO李彦宏在产业发展主论坛上呼吁:“大家不要卷模型,要卷应用!”这句话引起了广泛讨论。李彦宏认为&a…

Python股票计算小程序(字符串格式化练习)

要求:打印的第一行使用f控制,第二行打印使用占位符,股价输出保留两位小数。 # 股价计算小程序 name"周氏集团" stock_price19.99 stock_code "9283" stock_price_daily_growth_factor1.2 growth_days7print(f"公司…

多线程场景下,使用QEventLoop使界面不卡顿的同时过滤用户输入

背景描述 有耗时的操作需要放到子线程中处理,但是此过程中不允许界面执行其他操作,不能使用阻塞界面的模态对话框实现。 可以通过QEventLoop在子线程执行的同时开启一个事件循环,使UI界面不卡顿,能够正常响应。但是这种不卡顿只是…

【Python进阶】继承进阶和私有权限

目录 一、继承进阶 1、方法重写 2、调用父类方法 3、多层继承 二、私有权限 1、私有属性 2、私有方法 面向对象基础:小白也能看懂的Python基础教程(8)-CSDN博客 一、继承进阶 1、方法重写 当父类的同名方法达不到子类的要求&#x…

阿里云上kubesphere安装配置 - 使用阿里云负载均衡

教程参考 https://www.kubesphere.io/zh/docs/v3.3/installing-on-linux/public-cloud/install-kubesphere-on-ali-ecs/ 环境配置 关闭防火墙关闭selinux关闭swap分区时间同步hosts解析内核参数设置检查DNS安装ipvs安装依赖组件安装、设置docker每台机器都需要操作 #安装工具…

crossJoin笛卡尔积

crossJoin笛卡尔积 在Spark中,crossJoin方法用于执行两个数据集之间的笛卡尔积操作。具体来说,如果有两个数据集(DataFrame或Dataset),调用crossJoin方法将会生成一个新的数据集,其中包含两个原始数据集中所…

Monaco 中添加 CodeLens

CodeLens 会在指定代码行上添加一行可点击的文字,点击时可以触发定义的命令,效果如下: 通过调用 API 注册 LensProvider,点击时触发 Command,首先要注册命令,通过 editor.addCommand () 方法进行注册。三个…

7月9日学习打卡-回文链表,交叉链表

大家好呀,本博客目的在于记录暑假学习打卡,后续会整理成一个专栏,主要打算在暑假学习完数据结构,因此会发一些相关的数据结构实现的博客和一些刷的题,个人学习使用,也希望大家多多支持,有不足之…

python使用tkinter添加下载进度UI

添加进度组件 def download(): # 创建下载进度框progress_window tk.Toplevel()progress_window.title("下载进度")progress_label tk.Label(progress_window, text"正在下载视频文件...")progress_label.pack(pady10)progress_bar ttk.Progre…

【微信小程序开发实战项目】——个人中心页面的制作

👨‍💻个人主页:开发者-曼亿点 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 曼亿点 原创 👨‍💻 收录于专栏&#xff1a…

canvas高清绘制与retina屏

一、retina屏 视网膜显示屏(英语:Retina Display)是一种由苹果公司设计和委托制造的现实屏幕,具备足够高像素密度而使得人体肉眼无法分辨其中单独像素点的液晶屏幕。 比如,初期Retina屏幕的分辨率为640960&#xff0…

在 PostgreSQL 里如何处理数据的版本跟踪和回滚?

文章目录 一、事务二、保存点三、使用版本控制扩展四、审计表和触发器五、使用时间戳列六、比较和还原数据七、考虑数据备份和恢复八、结论 在数据库管理中,数据的版本跟踪和回滚是非常重要的功能,有助于在数据操作出现错误或需要回滚到特定状态时进行有…

HINet: Half Instance Normalization Network for Image Restoration

论文:HINet: Half Instance Normalization Network for Image Restoration Abstract: 在本文中,我们探讨了实例归一化在低级视觉任务中的作用。 具体来说,我们提出了一个新颖的块:半实例归一化块(HIN 块&…

洛谷 数学进制 7.9

P1100 高低位交换 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 代码一 #include<bits/stdc.h> using namespace std; typedef long long ll; #define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)const ll N1e510; char a[N];int main() {IOS;ll a;int b[32]…

十分钟且一次性带你学懂泛型编程思想(模板化思想)

引言 在编程的世界里&#xff0c;泛型编程思想&#xff08;模板化思想&#xff09;是一种极具魅力的编程范式。它允许我们编写出具有高度通用性和可重用性的代码&#xff0c;极大地提高了开发效率和代码质量。无论你是初学者还是有一定经验的开发者&#xff0c;掌握泛型编程思想…

GNU/Linux - 什么是loopback设备

在计算机科学中&#xff0c;特别是在类Unix操作系统中&#xff0c;环回设备&#xff08;loopback device&#xff09;是一种虚拟设备&#xff0c;它将一个文件映射为块设备。这使得可以像访问物理磁盘或分区一样访问一个文件。环回设备通常用于挂载磁盘镜像、操作文件系统镜像以…