第六章 视觉处理基础
6.1 从全连接层到卷积层
6.1.1 图像的两个特性
图像是一种具有特殊结构的高维数据,它不同于普通的数值向量,而是在空间上具有平移不变性(translation
invariance)与局部相关性(locality)两大特征。传统的全连接神经网络(Fully
Connected Network,
FCN)无法有效利用这两种结构特性,参数量庞大且容易过拟合。卷积神经网络(Convolutional
Neural Network,
CNN)正是基于这两种图像特性而提出的,使模型能在空间上高效提取局部模式,并在平移后保持特征稳定。
① 平移不变性
平移不变性意味着:当图像中的物体发生小范围平移时,其语义信息和类别应保持不变。例如,把猫的图片向右移动几个像素,模型仍应识别为“猫”。
② 局部相关性
局部性指图像中相邻像素之间存在强相关,而远距离像素相关较弱。例如,一个边缘或纹理通常由相邻像素共同决定。全连接层在计算每个输出神经元时,都与所有输入像素相连,无法体现局部特征的集中性。
一个有效的神经网络应该保证这两个特性:
平移不变性:不管检测对象出现在图中的哪个位置,神经网络的前面几层都应该 ...
第五章 机器学习基础
这里写的比较简单,仅仅是机器学习与深度学习相关联的一些知识。传统机器学习的知识比如线性回归、决策树、PCA
主成分分析等内容都没有给出,可以自己了解。
5.1 机器学习的基本任务
机器学习的基本任务一般分成监督学习、无监督学习、半监督学习、强化学习。这四种学习方式的区别主要在于数据标注的情况以及模型学习目标的不同。
监督学习(Supervised
Learning)是最常见的机器学习形式,它依赖于一组带有标签(label)的样本数据。假设我们有训练集
\(\mathcal{D} = \{(x_i,
y_i)\}_{i=1}^N\),其中 \(x_i\)
表示输入特征,\(y_i\)
表示对应的真实输出标签。模型的目标是学习一个映射函数 \(f_\theta(x)\),使其在给定输入时能尽可能准确地预测输出,也就是最小化损失函数
\[
\mathcal{L}(\theta) = \frac{1}{N}\sum_{i=1}^{N} \ell(f_\theta(x_i), y_i)
\] 其中 \(\ell(\cdot)\)
通常是均方误差(MSE)或交叉熵损失。典型任务包括分类(如图像识别 ...
第四章 PyTorch 数据处理工具箱
4.1 数据处理工具箱概述
"""<===== 4.1 数据处理工具箱概述 =====>torch.utils.data 是 PyTorch 中用于数据处理的核心工具箱,提供了高效的数据加载和预处理功能。它包括以下 4 个类:1. Dataset: 用于表示数据集的抽象类,其他数据集需要继承这个类。用户可以继承该类并实现 __len__ 和 __getitem__ 方法来定义自己的数据集。2. DataLoader: 定义一个新的迭代器,用于将 Dataset 封装成一个可迭代的数据加载器,支持批量加载数据(Batch)、打乱数据顺序(Shuffle)、多线程加载等功能。3. random_split: 用于将数据集随机划分为给定长度非重叠的多个子集,常用于训练集和验证集的划分。4. Sampler: 定义了从数据集中采样样本的策略,可以自定义采样方式,如随机采样、顺序采样等。torchvision 是 PyTorch 中的计算机视觉工具箱,提供了常用的数据集、模型和图像处理工具。它包括以下 3 个模块:1. datasets: 提供了常用的计算机视觉数据集,如 MNIST ...
第三章 PyTorch 神经网络工具箱
3.1
神经网络的核心组件和主要工具
"""<===== 3.1 神经网络的主要组件 =====>神经网络的核心组件包括:1. 层(Layers):神经网络由多个层组成,每一层包含若干神经元(Neurons),层是神经网络的基本结构,将输入数据转换为输出数据。2. 模型(Models):模型是由多个层组成的整体结构,定义了数据如何在层之间流动以及如何进行计算。3. 损失函数(Loss Functions):参数学习的目标函数,通过最小化损失函数来优化模型参数,使模型的预测结果更接近真实值。4. 优化器(Optimizers):用于调整模型参数以最小化损失函数的算法。多个层链接在一起构成一个模型或者网络,输入数据通过这个模型转换为预测值。预测值与真实值共同构成损失函数的输入,损失函数的损失值用于衡量预测值与目标结果的 \匹配或相似程度。优化器可以利用损失值来更新模型参数,目的是让损失值更小,从而提升模型的预测能力。这是一个循环迭代的过程,当损失值足够小或者达到预设的迭代次数时,训练过程结束。可以利用 PyTorch 中的 nn 工具箱来构建神经网络的主要组件。<---- ...
第二章 PyTorch 基础
2.0 为什么需要学习 PyTorch
学习 PyTorch 的核心意义在于,它是目前最主流、最灵活的深度学习框架之一,已经成为学术研究和工业实践的“事实标准”。PyTorch 以张量(Tensor)为核心数据结构,结合动态计算图机制(Autograd),让模型的构建、调试与梯度计算都像写普通 Python 一样自然直观。它支持 GPU 加速计算,集成了丰富的神经网络模块(如 torch.nn、torch.optim、torchvision 等),几乎涵盖了从图像识别、自然语言处理到推荐系统等所有深度学习领域。
更重要的是,PyTorch 拥有庞大而活跃的开源生态,是许多前沿研究论文、竞赛解决方案以及工业级 AI 系统的首选框架。掌握 PyTorch,不仅能深入理解深度学习模型的底层原理(如前向传播、反向传播、梯度下降),还能快速将想法转化为可运行的实验代码,为科研创新和实际工程打下坚实基础。
PyTorch 的安装可以参照:[安装 PyTorch](Get Started) 。(下面代码均在 PyTorch 2.4.0 + CUDA 12.4 版本下完成,注意 PyTorch 安装 ...
第一章 NumPy 基础
最近一年都非常的忙碌,所以一直没来得及更新
blog。近期终于有了一些时间,想在巩固自己的 coding
基础的同时也顺便更新一下 blog,接下来会努力更新一下深度学习 (Deep
Learning, DL) 的代码教程,比较适用于基本掌握了 Python3
语法的同学,数学推导和语法方面的讲解会比较少,大多数代码是直接给出来的(以注释或者
print
的方式进行了一些讲解),一方面是因为时间仓促,另外一方面是因为完全可以把代码复制下来,然后粘贴给生成式人工智能(比如
ChatGPT、Gemini、deepseek、豆包等等)来得到讲解,所以就没有写过多的讲解内容。代码内容主要是想呈现常用的函数和
DL 的常见框架。
本次的基于 PyTorch 的深度学习入门教程计划更新 9
章左右的内容 (大概一个学期的时间),大致包含基础的 NumPy、PyTorch
知识;深度学习的代码三步框架以及一些 CV (Computer Vision) 和 NLP
(Natural Language Processing) 的基本模型框架来完成 Deep Learning
方面的入门。
代码参考于《P ...
计算机网络知识点总结
大致梳理了所有需要掌握的内容(可能有些自己写的解释是错误的,请大家自行分辨一下)。
备考建议:PDF上所有内容都有可能考察,建议全部记忆。
下载PDF点这里
常微分方程
更新说明:
本章内容如果有时间会专门开一个专栏来写ODE(常微分方程),参考书目为《常微分方程
(第四版)(王高雄)》。
如果没有时间则会稍后上传学习本书《高等数学》时写的笔记。
定积分在几何学上的应用
下载PDF点这里
第十节 闭区间上连续函数的性质
下载PDF点这里
第九节 连续函数的运算与初等函数的连续性
下载PDF点这里
第八节 函数的连续性与间断点
下载PDF点这里