问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

深度学习图解:张量的运算

创作时间:
作者:
@小白创作中心

深度学习图解:张量的运算

引用
1
来源
1.
https://www.cainiaoxueyuan.com/ai/66285.html

神经网络中的数据通常以张量的形式表示,这些张量运算通过矩阵乘法、向量点积等线性代数运算来实现,对于模型的训练、推理和特征提取等任务至关重要。
在神经网络的前向传播过程中,输入数据、权重和偏置通常以张量的形式存在,并通过一系列的张量运算(如矩阵乘法、加法等)来计算输出。在反向传播过程中,梯度也是以张量的形式传播,用于更新模型的权重和偏置。

一、平移、旋转、缩放

张量的平移、旋转、缩放是什么?在深度学习中,张量的平移、旋转和缩放等操作通常用于数据增强、图像变换和特征提取等任务。这些操作可以通过深度学习框架中的张量运算库(如NumPy、PyTorch或TensorFlow)来实现。

张量的平移操作(Translation)是通过加上一个平移向量来实现的,这个向量决定了移动的距离和方向。

张量的旋转操作(Rotation)则是通过将与一个旋转矩阵相乘来完成的,这个矩阵能够保持向量的长度和夹角不变,只改变方向。

张量的缩放操作(Scaling)则是通过将张量与一个对角矩阵相乘来实现的,对角矩阵的对角线元素决定了各个方向上的缩放比例。

“一图 + 一句话”彻底搞懂平移、旋转、缩放。

“张量的平移是加向量移动位置,旋转是乘旋转矩阵改变方向,缩放是乘对角矩阵调整尺寸。在深度学习中,这些操作对数据增强、图像变换等至关重要,能增加数据集多样性,助模型学更多特征,提性能。”

二、线性变换和仿射变换

张量的线性变换和仿射变换是什么?在深度学习中,张量的线性变换是通过矩阵乘法保持向量线性关系的操作,而仿射变换则是线性变换后再加上一个平移向量的复合操作。

张量的线性变换操作(Linear Transform)是通过矩阵乘法将张量映射到另一个张量。与任意矩阵做点积运算,都可以实现一次线性变换,上面提到的缩放和旋转,都属于线性变换。

  • 缩放:通过与一个对角矩阵相乘来实现,其中对角矩阵的对角线元素表示各个方向上的缩放比例。
  • 旋转:通过与一个正交矩阵相乘来实现,这个矩阵能够保持向量的长度和夹角不变,只改变向量的方向。

张量的仿射变换操作(Affine Transform)是通过先进行一个线性变换(即与矩阵相乘),再添加一个平移向量来完成的复合变换。一个没有激活函数的Dense层就是一个仿射层。

带有ReLU激活函数的Dense层通过非线性激活打破了仿射变换的线性叠加性,使得多层神经网络能够实现复杂的非线性变换,而纯仿射变换的多层网络则等同于一个线性模型。

“一图 + 一句话”彻底搞懂线性变换和仿射变换。

“线性变换通过矩阵乘法保持张量的线性关系,实现缩放和旋转等操作;而仿射变换则是在线性变换的基础上,再添加一个平移向量,完成更复杂的复合变换,无激活函数的Dense层即仿射层,但加入非线性激活函数(如ReLU)后,多层神经网络可实现复杂的非线性变换。”

本文原文来自菜鸟学院

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号