深入浅出深度学习

  • 人工智能是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门技术科学。
  • 机器学习是人工智能的一个分支,它是研究计算机如何通过数据学习的科学。它是人工智能的核心,是实现人工智能的主要手段。
  • 深度学习是机器学习的一个分支,它是研究计算机如何通过多层神经网络学习的科学。它是机器学习的核心,是实现机器学习的主要手段。
  • 深度学习的本质是通过多层神经网络对数据进行特征提取和转换,从而实现对数据的理解和预测。它的核心是神经网络,神经网络是一种模拟人脑神经元结构和功能的计算模型,它由大量的神经元(节点)和连接(权重)组成,通过对输入数据进行加权求和和非线性变换,实现对数据的表示和处理。
  • 深度学习的优势在于它能够自动地从数据中学习特征,而不需要人工设计特征,这使得它在处理复杂数据(如图像、语音、文本等)时表现出色。它的应用范围非常广泛,包括计算机视觉、自然语言处理、语音识别、推荐系统等领域。
  • 本文将对深度学习的基本原理进行介绍,并使用 PyTorchPyTorch 进行深度学习的实践。

张量

几何代数中定义的张量是基于向量和矩阵的推广,比如可以将标量视为零阶张量,矢量可以视为一阶张量,矩阵就是二阶张量。

张量维度 代表含义
0维张量 代表的是标量(数字)
1维张量 代表的是向量
2维张量 代表的是矩阵
3维张量 时间序列数据 股价 文本数据 单张彩色图片(RGB)

张量是现代机器学习的基础。它的核心是一个数据容器,多数情况下,它包含数字,有时候它也包含字符串,但这种情况比较少。因此可以把它想象成一个数字的水桶。

这里有一些存储在各种类型张量的公用数据集类型:

  • 3维 = 时间序列
  • 4维 = 图像
  • 5维 = 视频

创建张量

函数 功能
Tensor(sizes) 基础构造函数
tensor(data) 类似于np.array
ones(sizes) 全1
zeros(sizes) 全0
eye(sizes) 对角为1,其余为0
arange(s,e,step) 从s到e,步长为step
linspace(s,e,steps) 从s到e,均匀分成step份
rand/randn(sizes) rand是[0,1)均匀分布;randn是服从N(0,1)的正态分布
normal(mean,std) 正态分布(均值为mean,标准差是std)
randperm(m) 随机排列

操作张量

PyTorch中的 Tensor 支持超过一百种操作,包括转置、索引、切片、数学运算、线性代数、随机数等等,具体使用方法可参考官方文档

参考文档