深度学习 学习笔记1

深度学习基础

机器学习基础

核心:具有自学习能力

本质:通过数据来产生模型

学习到的模型在面对经验中没有出现的情况时,也能提供相应的判断或预测(泛化

分类:

  • 监督学习(标签),有老师、标准答案
  • 无监督学习(“自己发现”)
  • 强化学习(奖励和惩罚机制)

数据准备与预处理

  • 数据收集
    • 需要注意数据的代表性和多样性,来保证模型在位置数据上的表现,即繁华能力
  • 数据清洗
    • 处理缺失值、异常值、噪声、重复数据
  • 特征工程
    • 标准化:为了消除特征之间不同量纲导致的取值范围差异的影响。
    • 特征选择:去掉某些对输出结果没有影响的特征,减少数据的维度
  • 数据集的划分
    • 训练集:训练模型(60%-80%)
    • 验证集:用于模型选择和模型超参数调整(10%-20%)
    • 测试集:在整个训练过程未曾见过的数据,用于评估模型的效果(10%-20%)

模型构建

模型构建 = 网络结构 + 损失函数 + 超参数

损失函数:衡量模型得到的预测值与真实标签之间的差别大小

常用损失函数:

  1. 均方误差(L2损失)

    L2=1ni=1n(yiyi^)2L_2=\frac 1 n\sum_{i=1}^n(y_i-\hat{y_i})^2

    常用语回归问题-连续值

  2. 交叉熵误差:常用于分类问题,用于模型预测概率分布于真实标签的改了分布的差异

参数:可以通过训练进行学习和调整的参数(包括权重和偏差)

超参数:在训练模型之前需要设置的参数。这些参数是人为设定,包括学习率、迭代次数、隐藏层的节点数、正则化参数等

模型训练

训练:从数据中学习,获得模型的过程

  1. 前向传播:数据输入到模型中,得到预测的结果
  2. 计算损失:用预测结果和真实标签计算损失值
  3. 反向传播:用 loss.backward() 计算梯度
  4. 更新参数:调用 optimizer.step() 更新模型权重

优化算法:通过不断调整模型参数,使得在训练数据的损失函数值最小

常用策略:梯度下降

常用优化算法:SGD、Adam

测试、泛化与正则化

过拟合:Overfit

欠拟合:Underfit

image-20260802151429651

正则化(提高模型泛化能力的方法):

  1. L1和L2正则化:在模型的损失函数中添加一个额外的惩罚项
  2. 早停:观察验证集上的性能,在性能下降就停止训练
  3. Dropout(丢弃):训练过程中,Dropout会随机选择一部分神经元并将其输出设置为0,以此防止模型过度依赖某些特定神经元,从而提高泛化能力
  4. 数据增强:通过修改已有训练样本增加训练数据

全连接网络

网络结构

基本组成:Input、Hidden、Output

表达式:z=Wx+bz=Wx+b(x是输入向量,W是权重矩阵,b是偏置向量,z为线性组合结果)

假设前一层有 NN 个节点,当前层有 MM 个节点,则:

  • 权重数量 W=N×MW=N\times M
  • 偏置 bb 数量 MM
  • 总参数量:N×M+MN\times M+M

常见激活函数

目的:数据准备与预处理流程:引入非线性表达能力,使网络能够逼近任意复杂的非线性函数

image-20260802152623893

  • ReLU:计算数独快,x>0x>0 导数恒为1。能有效缓解梯度消失

    缺点:神经元坏死

  • Sigmoid 、tanh:容易梯度消失(x过大没什么变化)

反向传播

本质:微积分中的链式法则

核心目的:计算损失函数对网络中所有可训练参数(权重W和偏置b)的梯度

标准训练流程:

  • 前向传播:输入数据,层层计算,输出预测值并利用损失函数计算Loss
  • 反向传播:从输出层开始,自后向前利用链式法则传递误差,计算出每一层的梯度
  • 参数更新:利用优化算法(如梯度下降),根据算出的梯度调整算出:

Wnew=WoldηδLδWW_{new}=W_{old}-\eta\frac{\delta L}{\delta W}

卷积神经网络

卷积层

传统全连接网络的局限性:参数量爆炸,破坏空间结构

卷积运算机制:输入特征图与连续移动的卷积核进行对应元素相乘并求和(点积运算),再加上偏置。

image-20260802153325290

三大核心特点:

  • 局部特点:每个输出节点只与输入特征图的局部区域(由卷积核大小决定)相连,模拟了人类视觉系统的“局部感受视野”机制,大幅降低了单个节点的参数量
  • 权重共享:同一个通道中,卷积核滑动遍历整张图像时,其内部的权重是完全相同的
  • 平移不变性:无论特征出现在图像的那个位置,都能用同一个卷积核捕捉到

输出特征图尺寸计算:

设输入特征图尺寸在 Hin×WinH_{in}\times W_{in},卷积核大小为 Kh×KwK_h\times K_w ,步长为 SS,填充为 PP(在图像外圈额外补充一圈的数据),则输出尺寸为:

Hout=HinKh+2PS+1wout=wWinKw+2PS+1H_{out}=\lfloor\frac{H_{in}-K_h+2P}S\rfloor + 1\\ w_{out}=\lfloor\frac{wW_{in}-K_w+2P}S\rfloor + 1

输出特征图的完整维度:高 * 宽 * 通道数

卷积层可训练参数量计算:

设输入通道数为 CinC_{in},通道数(卷积核个数)为 CoutC_{out},卷积核大小 Kh×KwK_h\times K_w,则:

  • 单通道权重
  • 偏置总项:=Cout=C_{out}(每个卷积核配备一个偏置)
  • 总参数量:Kh×Kw×Cin×Cout+CoutK_h\times K_w\times C_{in}\times C_{out}+C_{out}

其他卷积类型

  • 转置卷积:常用语实现上采样。不是卷积的你原酸,是在输入元素之间或边缘填充零元素,乘以卷积核,从而将低分辨率的特征图扩大为高分辨的特征图

  • 空洞卷积:在标准卷积核元素之间引入“空洞”(即夸张率Dilated Rate,D)

    在D=1为标准卷积

    D=2在核元素之间插入一个空格

  • 分组卷积:将Cin和Cout分成 GG 组,可以把参数量和计算量都缩减为 1G\dfrac 1 G

  • 深度可分离卷积:分为两步:

    • 逐通道卷积(DW):一个卷积核只负责一个输入通过,卷积核尺寸为 Kh×Kw×1K_h\times K_w\times 1
    • 逐点卷积(PW):利用1x1标准卷积,讲DW层的多通道特征进行线性组合

池化层

本质:下采样技术

目的:

  1. 减少特征图空间尺寸,降低后续层的计算量
  2. 提取显著特征

两类:

最大池化 Max Pooling 平均池化 Average Pooling
机制 提取最大值 窗口内算术平均值
倾向 最醒目,忽略背景 保留背景

经典网络结构

  • LeNet-5(CNN鼻祖)

    成功应用于手写数字识别(MNIST)

    架构:“输入-卷积-池化-卷积-池化-全连接-输出”

  • AlexNet

    首度启用:ReLU、Dropout、数据增强、重叠池化、GPU并行加速

  • VGGNet

    3x3小型卷积核,与2x2最大池化层

  • ResNet(现代CNN基石)

    为解决网络层数加深时的网络退化

    残差块,引入了跳跃