【机器学习】数学基础——张量(傻瓜篇)

目录

前言

一、张量的定义

1. 标量(0维张量)

2. 向量(1维张量)

3. 矩阵(2维张量)

4. 高阶张量(≥3维张量)

二、张量的数学表示

2.1 张量表示法示例

三、 张量的运算

3.1 常见张量运算

四、张量在深度学习中的应用

4.1 PyTorch 示例:张量在神经网络中的运用

五、总结:张量的多维世界

延伸阅读


【机器学习】数学基础——张量(傻瓜篇)_第1张图片

前言

在机器学习、深度学习以及物理学中,张量是一个至关重要的概念。无论是在人工智能领域的神经网络中,还是在高等数学、物理学的研究中,张量都扮演着举足轻重的角色。

很多初学者可能听到这个术语时,感到有些困惑:“张量究竟是什么?它是一个什么样的数学对象?” 今天,我们就来一起从基础应用,全面解析“张量”这一概念。


一、张量的定义

张量(Tensor)是一个多维数组,它可以包含任何数量的维度。它是一个非常广泛的数学和物理工具,可以用于表示从标量(0维)、向量(1维)、矩阵(2维)到更高维度的复杂结构。

张量的核心概念就是通过维度(dimension)和形状(shape)来描述数据的结构。

1. 标量(0维张量)

标量是一个数值,只有大小,没有方向。例如:

  • 温度:25°C

  • 质量:5kg

2. 向量(1维张量)

向量是一个数值的有序集合,它有大小和方向。比如:

  • 速度向量:[30 m/s, 0°]

  • 力向量:[10 N, 45°]

3. 矩阵(2维张量)

矩阵是一个包含行和列的二维数组。矩阵常用来表示数据和变量的关系。

| 1  2 |
| 3  4 |

4. 高阶张量(≥3维张量)

在更高的维度中,张量可以表示更加复杂的数据结构。比如:

  • 图像数据:图像可以表示为一个3维张量 [高度, 宽度, 通道数]

  • 视频数据:可以表示为4维张量 [帧数, 高度, 宽度, 通道数]


二、张量的数学表示

张量是一个数学对象,可以用不同的方式进行表示,通常根据它的维度和形状来确定:

  1. 标量(0维):用一个单一数值表示,如 5、25°C。

  2. 向量(1维):用一维数组表示,如 [3, 4, 5]。

  3. 矩阵(2维):用二维数组表示,如:

[[1, 2], 
 [3, 4]]

     4. 高阶张量(3维及以上):用更高维数组表示,如 [3, 3, 3] 的张量(3个3x3矩阵的集合)。

2.1 张量表示法示例

在Python中,张量通常使用 NumPyPyTorch 等库来表示和操作。例如,使用 PyTorch 创建一个2维张量:

import torch
tensor = torch.tensor([[1, 2], [3, 4]])
print(tensor)

三、 张量的运算

张量不仅仅是存储数据的容器,它还支持各种数学运算。张量的运算包括加法、乘法、转置、求逆等,这些运算广泛应用于机器学习和深度学习中的前向传播、反向传播等过程。

3.1 常见张量运算

  1. 加法

    张量相加,元素对应相加。
  2. 乘法

    可以是逐元素乘法,也可以是矩阵乘法。
  3. 转置

    交换矩阵的行和列。
  4. 求逆

    对于方阵,可以求其逆矩阵。

深度学习 中,张量运算通常在GPU上并行进行,这样可以大大加速计算。


四、张量在深度学习中的应用

在深度学习中,神经网络的输入、权重、输出等都是张量。神经网络中的数据流动、计算过程以及反向传播的梯度更新,都是在张量的基础上进行的。

例如,在 图像分类任务 中:

  • 输入图像:通常表示为一个3维张量 [batch_size, height, width, channels]

  • 权重:神经网络的权重通常也是一个多维张量,代表每一层神经元与上一层神经元的连接。

  • 输出:神经网络的输出是一个向量,表示每个类别的概率。

4.1 PyTorch 示例:张量在神经网络中的运用

import torch
import torch.nn as nn

# 输入:假设输入的图片是 28x28 像素,1个通道(灰度图)
x = torch.randn(64, 1, 28, 28)  # 64个图像样本

# 定义一个简单的卷积神经网络
conv1 = nn.Conv2d(1, 32, kernel_size=3)
output = conv1(x)  # 卷积运算,输出是一个张量

五、总结:张量的多维世界

维度 描述 示例
标量 0维,只有大小,没有方向 温度、质量、时间等
向量 1维,有大小和方向 速度、力、位移等
矩阵 2维,表示数据的关系 图像、数据表格等
高阶张量 3维及以上,复杂数据结构 图像、视频数据等

张量是我们在数学、物理、计算机科学等领域处理复杂数据的强大工具。它在深度学习中的应用尤为广泛,无论是在数据输入、模型训练、还是计算梯度更新,张量都是核心概念。


延伸阅读

  • 深度学习中的张量操作:PyTorch 基础教程

  • 《神经网络与深度学习》 — Michael Nielsen

你可能感兴趣的:(深度学习【理论】,机器学习,人工智能)