博主头像
小雨淅沥

Some things were meant to be.

例行汇报:2025/10/21

进度报告 2025/10/21

本周工作主要集中在学习基础课程上,详细的规划可以参考主页左侧 Notion 链接

1 理论学习

由于混乱的视频顺序,下文中的 P 仅仅对应手写笔记,并不对应视频链接顺序

下文中只汇报学习的内容,以及大致框架,具体详细的数学推导可以参见手写笔记

1.1 机器学习原理 (P8~P9)

通过设定 threshold 来进行分类的结果分割,设定 h 的范围属于给定的一个集合 H,设定数据集为 D

可以计算损失函数如下所示(如果正确为1,错误为0)

$$ L(h, \mathcal{D}) = \frac{1}{N} \sum_{n=1}^{N} l(h, x^n, \hat{y}^n) $$

在训练过程中常见问题就是:训练的阈值在实际的数据中表现不佳,先设定目标是如何将两个 Loss 接近?

$$ L(h^{train},D_{train}) \quad L(h^{train},D_{all}) $$

这里问题就出在数据集上,这里给出结论,为了让两者差距足够小:

$$ L(h^{train}, \mathcal{D}_{all}) - L(h^{all}, \mathcal{D}_{all}) \leq \delta $$

需要数据集满足条件:

$$ \forall h \in \mathcal{H}, \; \left| L(h, \mathcal{D}_{train}) - L(h, \mathcal{D}_{all}) \right| \leq \frac{\delta}{2} $$

经过一系列的推导后我们可以得到结论:

$$ P(\mathcal{D}_{train} \text{ is } bad) \leq |\mathcal{H}| \cdot 2 \exp(-2N\varepsilon^2) $$

这代表了在N不变的情况下,如果想让训练结果接近于实际数据集的结果,模型弹性H应该尽可能地小,数据集数量N应该尽可能大

但是,H越大则模型在所有数据集上表现更好,这就涉及到了一个权衡

这个 Trade-off 可以通过 hidden-layer 实现,深度学习多个层可以通过类似于复用的方式,在少量的 H 的情况下获得很好的模型弹性。

1.2 训练攻略(P10)

  • 为什么用了 Validation set 还是会出现过拟合的问题?

结论是: 验证数据集选择的太大了

  • 有什么办法可以让 Error Surface 更加平滑?

这指的是,在训练到某个位置的时候,可能某个维度 feature 很大,导致同样的参数变化可以产生差异很大的 Loss 变化

解决方法成为 Batch Normalization 也就是对所有的,其中一种称为 Feature Normalization,也就是对所有的 feature 进行归一化

  • 万一输入(例如测试集)数量不固定怎么 Normalization?

可以通过及计算 moving average 来实现,另外也有一些其他的方法用于优化 Error Surface(例如 Internal Covariate Shift)

1.3 卷积神经网络 CNN(P11)

卷积神经网络有两种解释方式,这里均不阐述,只写结论性

在处理图像的时候,由于数据过于庞大,不能像传统的处理方式一样直接使用 Fully Connected Network

输入的数据格式一般为:

$$ H \times W \times C $$

其中C是 Channel

  • Kernel Size: 卷积核大小,一般 3*3
  • Stride: 卷积的步长,1代表没有跳过
  • Padding: 卷积到边缘会没有空间,Padding 代表在边界补充什么数值,可以是0或者平均值等等

对于处理同一个信息的块,称为 Receptive Field,他们使用同一组训练参数(这减少了参数量),共享的参数称为 Filter

在卷积完成后,一般也会使用 Pooling 操作将图像信息进一步提取,Channel 不变但是 H,W 会变小。

也有的网络不使用池化操作,因为池化会损失信息,本质是为了加快训练的速度。

在 Pooling 后通过 Flatten 展开成为 一个向量,输入全连接网络进入 SoftMax 完成最后的处理。

CNN的缺陷是:不可以处理放大(Scaling)和旋转(Rotation)后的数据,这个可以用 Spatial Transformer Layer 解决

CNN的框架是由图像处理的特性来实现:

  1. 不需要一次性完整地观看完所有的图片:使用卷积而不是直接全连接层
  2. 一个特征可能会出现在图片不同的位置:使用 Filter 共享参数
  3. 将图片缩小并不会影响图像特征:使用 Pooling 缩小图片

1.4 Self-attention(P12~P13)

self-attention 主要应对的是输入 Vector 会改变的数据,例如 语音输入,句子输入,图(CS数据结构)的操作

对于这种输入,一般有三种情况:

  1. 每一个向量对应一个 Label: POS tagging
  2. 每一组向量对应一个 Label: Sentiment analysis
  3. 需要让网络自行决定: Sequence to Sequence

在这种任务下,应当考虑使用串口 Window 输入,使用 self-attention 来判断不同元素之间的关联性

Self-attention的内容以公式为主,此处并不详细展开,仅仅给出核心公式

$$ \text{Attention}(Q, K, V) = \text{softmax}\!\left(\frac{QK^{\mathrm{T}}}{\sqrt{d_k}}\right)V $$

Self-attention 有很多的变种,对于之前的CNN,实际上是 self-attention 的一种变种,CNN 的弹性更小,因此只需要更少的数据可以训练,但是如果训练数据足够大,self-attention 的表现会优于 CNN。这两者并不冲突,可以同时使用。

RNN 曾经作为一种网络结构,已经被 self-attention 取代,因为其计算关联性不可以并行运算

不同self-attention 之间的对比可以参考这篇论文 Long Range ArenaEfficient Transformers

例行汇报:2025/10/21
https://www.rainerseventeen.cn/index.php/Weekly-Report/22.html
本文作者 Rainer
发布时间 2025-10-21
许可协议 CC BY-NC-SA 4.0

评论已关闭