深度学习 -- 随手笔记

发布时间:2026/10/30 1:26:09
深度学习 -- 随手笔记

一、基础知识

1、数据

每个数据集由一个个样本组成,每个样本由一组称为特征的属性组成,机器学习模型会根据这些属性进行预测,预测的是一个特殊的属性,它被称为标签

2、模型

3、目标函数

定义模型的优劣程度的度量,这些函数有时被称为损失函数。
当任务在试图预测数值时,最常见的损失函数是平方误差,即预测值与实际值之差的平方。
当试图解决分类问题时,最常见的目标函数是最小化错误率,即预测与实际情况不符的样本比例。
当一个模型在训练集上表现良好,但不能推广到测试集时,这个模型被称为过拟合的。就像在现实生活中,尽管模拟考试考得很好,真正的考试不一定百发百中。

4、优化算法

当我们获得了一些数据源及其表示、一个模型和一个合适的损失函数,接下来就需要一种算法,它能够搜索出 最佳参数,以最小化损失函数。大多流行的优化算法通常基于一种基本方法–梯度下降

5、监督学习

可以在“给定输入特征”的情况下预测标签
回归

是最简单的监督学习任务之一。当标签取任意数值时,我们称之为回归问题,此时的目标是生成一个模型,使它的预测非常接近实际标签值

分类
二项分类、多项分类、层次分类、多标签分类
“哪一个”的问题叫做分类问题。分类问题希望模型能够预 测样本属于哪个类别。常见损失函数被称为交叉熵
搜索

有时,我们不仅仅希望输出一个类别或一个实值。在信息检索领域,我们希望对一组项目进行排序

推荐系统

另一类与搜索和排名相关的问题是推荐系统,它的目标是向特定用户进行“个性化” 推荐

序列学习

序列学习需要摄取输入序列或预测输出序 列,或两者兼而有之

6、无监督学习

工作没有十分具体的目标,就需要“自发”地去学习了。
这类数据中不含有“目标”的机器学习问题通常被为无监督学习。

7、强化学习

机器学习开发与环境交互并采取行动。

当环境可被完全观察到时,强化学习问题被称为马尔可夫决策过程。

当状态不依赖于之前的操作时,我们称该问题为上下文赌博机。

当没有状态,只有一组最初未知回报的可用动作时,这个问题就是经典的多臂赌博机。

二、线性神经网络

1、线性回归

回归是能为一个或多个自变量与因变量之间关系建模的一类方法

基本元素

训练数据集(真实的数据集)、样本(每行数据)、标签(预测的目标)、特征(预测所依据的自变量)

线性模型

目标 = 权重1*特征1 + 权重2*特征2 + 偏置

仿射变换:通过加权和对特征进行线性变换,并通过偏置项来进行平移

损失函数

量化目标的实际值与预测值之间的差距,通常会选择非负数作为损失,且数值越小表示损失越小,完美预测时的损失为0

解析解

线性回归的解可以用一个公式简单地表达出来,这类解叫作解析解

随机梯度下降

优化深度学习模型,通过不断地在损失函数递减的方向上更新参数来降低误差

梯度下降最简单的用法是计算损失函数关于模型参数的导数

|B|表示每个小批量中的样本数,η表示学习率。批量大小和学习率的值通常是手动预先指定,而不是通过模型训练得到的。这些可以调整但不在训练过程中更新的参数称为超参数

从零实现线性回归
  1. 初始化:随机设置w和b的初始值

  2. 前向传播:用当前参数计算预测值 ŷ = Xw + b

  3. 计算损失:比较预测值ŷ和真实值y的差异

  4. 反向传播:计算损失对w和b的梯度(导数)

  5. 参数更新:沿着梯度反方向调整w和b

  6. 重复:不断重复2-5步,直到损失足够小

步骤:

1、生成数据集

2、读取数据集

3、定义模型

4、初始化模型参数

5、定义损失函数

6、定义优化算法

7、训练

2、softmax回归

常用做分类问题

三、多层感知机

1、隐藏层

克服线性模型的限制,使其能处理更普遍的函数关系类型

2、激活函数

通过计算加权和并加上偏置来确定神经元是否应该被激活

大多数激活函数都是非线性的

ReLU函数

给定元素x,ReLU函数被定义为该元素与0的最大值

ReLU(x) =max(x,0)

sigmoid函数

对于一个定义域在R中的输入,sigmoid函数将输入变换为区间(0, 1)上的输出

因此,sigmoid通常称为挤压函数

tanh函数

与sigmoid函数类似,tanh(双曲正切)函数也能将其输入压缩转换到区间(‐1, 1)上,不同的是tanh函数关于坐标系原点中心对称

3、多层感知机从零开始实现

1、初始化模型参数

2、激活函数

3、模型

4、损失函数

5、训练

4、模型选择、欠拟合和过拟合

过拟合

将模型在训练数据上拟合的比在潜在分布中更接近现象,训练误差很低,验证误差很高用于对抗过拟合的技术称为正则化,权重衰减是最广泛使用的正则化的技术之一

欠拟合

指的是模型过于简单,无法捕捉数据中潜在的基本规律或模式

训练误差很高,验证误差也很高

训练误差和泛化误差

训练误差:模型在训练数据集上计算得到的误差

泛化误差:模型应用在同样从原始样本的分布中抽取的无限多数据样本时,模型误差的 期望

5、权重衰减

通过在损失函数中添加一个惩罚项,来抑制模型权重的大小,从而防止过拟合

通常也被称为L2正则化,这项技术通过函数与零的距离来衡量函数的复杂度

简单说,它就是故意给模型“找点麻烦”,不让它过于依赖某些特征

6、暂退法

暂退法通过在训练过程中随机地“关闭”网络中的一部分神经元,来防止神经网络对某些特定的神经元过于依赖,从而增强模型的鲁棒性和泛化能力

(鲁棒性就是指一个系统(比如模型、程序、机器)在遇到异常、干扰或不理想情况时,能够保持稳定、正常工作的能力)

对于输入层,p通常设置得较小(如0.1或0.2),因为我们需要保留大部分原始信息

对于隐藏层,p常用值是0.5

对于输出层,通常不使用暂退法

7、前向传播

按顺序(从输入层到输出层)计算和存储神经网络中每层的结果

8、反向传播

计算神经网络参数梯度的方法。简言之,该方法根据微积分中的链式规则,按相反的顺序从输出层到输入层遍历网络

反向传播是一种高效计算神经网络中所有权重梯度的方法。它通过“链式法则”将最终预测的误差(损失)从输出层向输入层逐层反向传递,从而揭示每个权重对总误差的“贡献度”

梯度消失

梯度信号变得极其微小,导致网络前层的权重几乎无法更新,学习停滞

根本原因在于反向传播中的链式法则

梯度爆炸

梯度信号变得极其巨大,导致权重更新幅度过大,网络变得不稳定,无法收敛

根本原因在于反向传播中的链式法则

参数初始化

参数初始化是在开始训练神经网络之前,为所有权重和偏置设置一个合适的初始值的过程。其根本目标是打破对称性,并确保信号在前向传播和梯度在反向传播过程中能够稳定地流动,从而避免梯度消失或爆炸,使模型能够高效地开始学习

9、环境和分布偏移

分布偏移指的是模型训练时所依赖的数据分布,与实际应用时遇到的数据分布不一致的现象

协变量偏移

输入(特征)的分布变了,但输入到输出的映射关系(条件概率)没变

标签偏移

输出(标签)的分布变了,但输出到输入的映射关系(条件概率)没变

概念偏移

输入到输出的映射关系(概念本身)变了

四、深度学习计算

1、层和块

层

层是进行特定数据变换的单个操作或一组操作。它通常包含一组权重(参数)和一个前向传播函数

是基础建筑材料,比如一块砖、一块木板、一块玻璃。它是最基本、不可再分的计算单元

块

块是一个比层更大、更复杂的单元,它通过组合多个层(以及其他块)来形成一个具有特定功能的子网络。块本身也可以被视为一个“层”,因为它也接受输入张量并返回输出张量

是由多个层(或其它块)组合而成的功能模块,比如一扇门、一扇窗户、一段楼梯。它是一个可以重复使用的复杂单元

2、参数管理

参数访问

从已有模型中访问参数

参数初始化

内置初始化、自定义初始化、

参数绑定

多个层间共享参数

3、延后初始化

在定义神经网络模型时,框架不会立即创建和分配层的权重参数(如权重矩阵W和偏置向量b),而是等到第一次看到输入数据(或其形状)时,才根据输入数据的形状来最终确定并初始化这些参数

五、卷积神经网络

1、从全连接层到卷积

卷积神经网络是机器学习利用自然图像中一些已知结构的创造性方法

不变性

平移不变性:不管检测对象出现在图像中的哪个位置,神经网络的前面几层应该对相同的图像区域具有相似的反应

局部性:神经网络的前面几层应该只探索输入图像中的局部区域,而不过度在意图像中相隔较远区域的关系。最终,可以聚合这些局部特征,以在整个图像级别进行预测

通道

CNN中的通道概念是图像通道的延伸和抽象。通道的数量代表了特征图的深度或信息的丰富程度

2、图像卷积

卷积核

卷积核是一个小尺寸的、带有权重的矩阵(例如 3x3, 5x5),它是卷积神经网络中可学习的基本单位

可以将卷积核理解为:

1、一个特征探测器:它的任务是寻找输入中存在的特定模式

2、一个可学习的模板:它的内部权重通过训练数据自动优化,以最好地完成任务

3、一个局部扫描器:它只关注一小块区域,通过滑动来观察全局

4、一个层次化的工作者:浅层核找简单特征,深层核找复杂特征

互相关运算

衡量两个信号(或函数、矩阵)在不同相对位置上相似性的度量方法

例:你有一张大图片和一张小模板图片,你想知道小模板在大图片的哪个位置

操作:

1、把小模板覆盖在大图片的左上角

2、将模板上的每个像素与其覆盖的大图片上的对应像素相乘

3、将所有乘积结果求和,得到一个数值。这个数值代表了模板在这个位置与图片的匹配程度。数值越高,说明越相似

4、你将模板向右滑动一个像素,重复这个过程。直到你扫描完整个大图片

你得到了一张“响应图”,图上最亮的点(值最大的点)就是模板最可能所在的位置

卷积神经网络(CNN)中实际使用的操作就是互相关运算,但大家习惯性地称之为“卷积”

互相关vs卷积

卷积:在计算之前,需要先将卷积核(模板)旋转180度,然后再进行滑动点乘求和

互相关:不进行旋转,直接进行滑动点乘求和

特征映射和感受野

特征映射:是由一个卷积核在整个输入上扫描后,输出的二维矩阵

感受野:特征映射上的某个元素,在原始输入空间上所对应和影响的区域大小

一句话概括:CNN通过感受野由小到大地整合信息,并在每一层形成代表不同抽象程度的特征映射。特征映射告诉我们“是什么”,而感受野告诉我们“这个信息是从哪里来的”

3、填充和步幅

填充:在输入图像的边界外围加一圈“边框”(通常为0),保持输入输出尺寸相同和充分利用边缘信息

步幅:控制卷积核滑动的“步长”,显著降维,减少计算量和扩大感受野

4、多输入多输出通道

多输入通道:指卷积层的输入数据具有多个特征维度(例如彩色图像的RGB三通道或上一层的多个特征图)。处理多输入通道时,卷积核的深度必须与输入通道数相同,以便综合所有输入通道的信息进行计算

多输出通道:指一个卷积层使用多个不同的卷积核,每个卷积核独立地在输入上执行卷积操作,从而生成一个独立的输出通道。这允许该层并行地提取多种不同类型的特征,增加了模型的表示能力

5、汇聚层

最大汇聚:在汇聚窗口覆盖的区域内,取所有值的最大值作为输出

平均汇聚:在汇聚窗口覆盖的区域内,取所有值的平均值作为输出

目的:降低卷积层对位置的敏感性,同时降低对空间降采样表示的敏感性

6、卷积神经网络(LeNet)

通过卷积提取空间特征,通过池化进行下采样和降维,最后通过全连接层进行分类

六、现代卷积神经网络

1、深度卷积神经网络(AlexNet)

2、使用块的网络(VGG)

3、网络中的网络(NiN)

4、含并行连结的网络(GoogLeNet)

5、批量规范化

是什么:一种通过标准化每层输入来稳定网络内部数据分布的技术

怎么做:1、计算批量均值和方差

2、进行标准化

3、通过可学习的参数 γ 和 β 进行缩放和平移

放在哪:通常位于全连接/卷积层之后,激活函数之前

6、残差网络(ResNet)

7、稠密连接网络(DenseNet)

七、循环神经网络

1、序列模型

自回归模型

用一个序列在过去时间步的观测值,来预测其下一个时间步的观测值

隐变量自回归模型

引入一个看不见的“隐状态”来概括所有历史信息,这个隐状态随时间自回归地演化,而观测值则由当前的隐状态生成

因果模型

不仅要了解事物之间的“相关性”,更要揭示它们之间的“因果关系”,即一个事件如何“导致”另一个事件的发生

马尔可夫模型

系统的“未来”状态只依赖于“当前”状态,而与“过去”的状态无关

基于循环神经网络的字符级语言模型

给定之前出现过的所有字符(或前几个字符),预测下一个最可能出现的字符是什么

2、神经网络

无隐状态的神经网络

每次预测都是独立的,只看当前输入,没有“记忆”;这种网络在处理每个输入时,都像是第一次看到数据一样。它不保留任何关于之前输入的信息

有隐状态的循环神经网络

每次预测都依赖于过去,拥有“记忆”;RNN有一个内部的隐藏状态,这个状态会在处理序列的过程中不断更新,像一个“记忆单元”,封装了到当前时刻为止所看到的所有序列信息

3、困惑度

衡量一个语言模型在面对一段从未见过的文本时,会有“多困惑”。其数值表示模型“平均在每个词位置上面临的选择可能性数量”