深度学习--数学基础(1)
深度学习–数学基础(1)
*2021-04-21 22:56
在学习深度学习之前,需具备良好的数学基础,主要包括线性代数、微积分、概率论三个数学分支。
目录
- 深度学习--数学基础(1)
- 1.数据表示--标量、向量、矩阵、张量
- 2. 张量的常见操作
- 3. 张量的基本操作(基于PyTorch)
- (1)初始化一个张量
- (2)arange,range,linspace的使用
- (3)张量基本运算操作
- 4.小结
1.数据表示–标量、向量、矩阵、张量
(1)标量(scalar):标量就是一个简单的只有大小、没有方向的数字。在计算机专业技术中,标量可以通过一个固定类型的变量来表示。
(2)向量(vector):向量就是一列数,是由一组数组组成的有序数组,同时具有大小和方向,通过一个次序索引,我们可以确定每个单独的数。下面就是一个行向量: x=[x1, x2, …, xn]。
(3)矩阵(matrix):矩阵是一个二维数组,其中每个元素可以被两个索引所确定,aij表示矩阵A中第i行,第j列。
(4)张量(tensor):在深度学习中,主要讨论的坐标往往是超过两维的数组。一般地,如果一个数组中的元素分布在若干维坐标的规则网格中,我们将其称为张量。张量通过对应维度个数的索引来确定张量内部的值。
2. 张量的常见操作
在深度学习中,我们将待处理的数据规范化为特定维度的张量。例如,不进行批处理时,有如下的对应关系:
(1) 彩色图像可以看成是一个三维张量:图像的三个颜色通道(红、绿、蓝)、图像的高、图像的宽。
(2)视频可以看成是一个四维张量:视频的时间帧方向、每一帧图像的颜色通道、宽、高。
(3)三维场景可以看成一个四维张量:场景中每一点的信息编码轴、场景的高、场景的长、场景的宽。
对不同的张量有不同的运算方式,但是下面这几个操作是常用的:索引(indexing)、切片(slicing)、连接(joining)、换位(mutating)。
3. 张量的基本操作(基于PyTorch)
(1)初始化一个张量
import torch
x = torch.rand(5,3) #生成一个随机的5×3的张量x
print(x)
print(x.size()) #输出张量x的大小
输出结果为:
(2)arange,range,linspace的使用
torch.arange(start, end, step)返回一个以start为首项, 以end为尾项,以step为公差的等差数列。不包含end。
print(torch.arange(1,21,2))
运行结果:
torch.range(start, end, step)
返回一个以start为首项, 以end为尾项,以step为公差的等差数列。但是包含end。
print(torch.range(1, 21, 2))
运行结果:
torch.linspace(start, end, steps)
返回一个以start为首项, 以end为尾项,返回一个1维张量,包含在区间start和end上均匀间隔的step个点。
print(torch.linspace(1,15,5))
运行结果:
(3)张量基本运算操作
x = torch.rand(3,2)
y = torch.rand(3,2)
print(x)
print(y)
print(x+y)
print(torch.add(x,y))
print(y.add_(x))
print(y)
运行结果:
tensor([[0.2059, 0.0645],[0.0310, 0.3479],[0.6152, 0.1724]])
tensor([[0.0874, 0.5010],[0.6648, 0.1793],[0.9541, 0.7467]])
tensor([[0.2933, 0.5654],[0.6958, 0.5271],[1.5693, 0.9191]])
tensor([[0.2933, 0.5654],[0.6958, 0.5271],[1.5693, 0.9191]])
tensor([[0.2933, 0.5654],[0.6958, 0.5271],[1.5693, 0.9191]])
tensor([[0.2933, 0.5654],[0.6958, 0.5271],[1.5693, 0.9191]])Process finished with exit code 0
a = torch.rand(3,2)
print(a)
print(a[:,1]) #支持索引操作,取第二列
print(a.size())
b=a.view(6)
print(b)
print(b.size())
运行结果:
tensor([[0.6872, 0.8567],[0.0259, 0.6550],[0.8212, 0.6122]])
tensor([0.8567, 0.6550, 0.6122])
torch.Size([3, 2])
tensor([0.6872, 0.8567, 0.0259, 0.6550, 0.8212, 0.6122])
torch.Size([6])
4.小结
在学习深度学习之前,需要一定的数学基础,其中张量这一概念就十分重要,可以简单的类比成矩阵或者C语言里面的数组概念,方便理解。对张量执行的一系列操作需要从实际问题出发,用到什么就学什么。下一小节将介绍Numpy的使用。
深度学习--数学基础(1)相关推荐
- 《速通深度学习数学基础》
目录 序 前言 第1章 线性代数的基本概念 1.1 向量和深度学习 1.2 向量距离计算 1.3 向量的基本性质 1.4 矩阵的基本概念 1.5 一些特殊的矩阵 第2章 线性代数在深度学习中的应用 2 ...
- 【转载】深度学习数学基础(二)~随机梯度下降(Stochastic Gradient Descent, SGD)
Source: 作者:Evan 链接:https://www.zhihu.com/question/264189719/answer/291167114 来源:知乎 著作权归作者所有.商业转载请联系作 ...
- 深度学习数学基础之线性代数
深度学习中的基本数据结构,基本上都是用向量或矩阵表示的,因此: 深度学习的基础学科之一:就是线性代数. 深度学习中的线性代数知识主要包括以下部分: 1.标量.向量.矩阵和张量: 这4个变量很好理解: ...
- 深度学习数学基础——矩阵微分篇
https://www.toutiao.com/a6641771475994952206/ 2019-01-02 13:45:27 深度学习是一个令人兴奋的领域,具有巨大的现实世界影响力. 本文是Te ...
- 深度学习数学基础-概率与信息论
前言 概率论学科定义 概率与信息论在人工智能领域的应用 3.1,为什么要使用概率论 3.2,随机变量 3.3,概率分布 3.3.1,离散型变量和概率质量函数 3.3.2,连续型变量和概率密度分布函数 ...
- 深度学习数学基础(一)~卷积
前言 我在学习机器学习和图像处理的过程中经常会遇到卷积这个概念,但我每次遇到这个概念都有点不甚了解.于是我在学习了几个博客之后把我理解的做了一个总结,其不足之处敬请指正. 一.卷积的起源 文献来源:- ...
- 深度学习数学基础(三): 激活函数、正则化函数、损失函数、评价指标
目录 1. 激活函数activation function 1.1 Sigmoid 1.2 tanh 1.3 ReLU 1.4 Leaky ReLU 1.5 softmax 1.6 Gelu 2. 归 ...
- 深度学习数学基础之激活函数与导数
活动地址:CSDN21天学习挑战赛 函数与导数 函数 神经网路最常听到的一个名词就是激活函数,那激活函数是什么呢? 百度百科是这样说的,函数,最早由中国清朝数学家李善兰翻译,出于其著作< ...
- 深度学习数学基础 熵?
信息论-熵 信息熵 信息熵,可以看作是样本集合纯度一种指标,也可以认为是样本集合包含的平均信息量,信息熵越小,蕴含的粗确定性越小 联合熵 两个随机变量X和Y的联合分布可以形成联合熵,度量二维随机变量X ...
最新文章
- 【NOIP校内模拟】T2 华莱士(环套树)
- 知识图谱还有哪些方向值得深入研究?这 6 篇最新论文给你答案
- c语言10个人 三向成绩,C语言入门学习精华:这样学习C语言最有效
- Java并发编程之显式锁(Lock)使用
- Java学习笔记——面向对象 1
- 可道云 docker 群晖_【curl】校园网群晖DS120j自动认证
- WordPress模板iDowns1.8.3+支持对接Erphpdown
- rgb24转yuv420P
- 整理牛人看文献的方法
- java线上文件图片资源存储方案,定时清理垃圾文件
- 建立基于安全域的涉密信息系统
- PCB六层板如何分层最好?
- 计算机二级多少人优秀,计算机二级各科通过率是多少
- 基于RTMP协议的Flash流媒体网页直播播放器
- 资产负债表编制 (by shany shang)
- L1-040 最佳情侣身高差 (10分)
- JBoss学习和应用
- 网络流量监控技术与方法
- 高通android开源代码下载,高通平台开源代码下载
- ibook备份_在“提示”框中:选择多个壁纸,iBook快速导航和跟踪应用价格