2026-04-28 数据科学第七章作业

第一题:简述误差反向传播算法的基本原理

误差反向传播(BP)算法核心依托链式法则与梯度下降:

1. 前向传播:样本输入网络,逐层计算得到预测输出;

2. 计算损失:对比预测值与真实值,求解整体误差;

3. 反向传播:从输出层逆向至输入层,逐层计算各权重、偏置的误差梯度;

4. 参数更新:根据梯度下降法则调整网络参数,不断缩小损失;

反复迭代,最终实现模型拟合。

第二题:给定数据x以及卷积核w如下,设步长为 1,计算卷积输出

步骤1:明确输入与卷积核

  • 输入3个通道:
    $$
    X_1 = \begin{bmatrix}1&0&1&1\0&1&0&0\0&0&1&1\1&0&1&0\end{bmatrix},
    X_2 = \begin{bmatrix}2&1&2&2\0&2&1&1\1&2&0&2\0&0&0&1\end{bmatrix},
    X_3 = \begin{bmatrix}1&0&0&0\0&0&1&1\1&1&1&1\0&0&1&0\end{bmatrix}
    $$
  • 卷积核3个通道:
    $$
    W_1 = \begin{bmatrix}1&0\0&1\end{bmatrix},
    W_2 = \begin{bmatrix}1&1\0&0\end{bmatrix},
    W_3 = \begin{bmatrix}1&1\1&0\end{bmatrix}
    $$

步骤2:计算单通道互相关结果

(1)$X_1$与$W_1$的互相关结果$O_1$

$W_1$为2×2单位矩阵,互相关等价于窗口主对角线元素求和:
$$
O_1 = \begin{bmatrix}
1+1 & 0+0 & 1+0 \
0+0 & 1+1 & 0+1 \
0+0 & 0+1 & 1+0
\end{bmatrix}
= \begin{bmatrix}2&0&1\0&2&1\0&1&1\end{bmatrix}
$$

(2)$X_2$与$W_2$的互相关结果$O_2$

$W_2$仅第一行有效,互相关等价于窗口第一行元素求和:
$$
O_2 = \begin{bmatrix}
2+1 & 1+2 & 2+2 \
0+2 & 2+1 & 1+1 \
1+2 & 2+0 & 0+2
\end{bmatrix}
= \begin{bmatrix}3&3&4\2&3&2\3&2&2\end{bmatrix}
$$

(3)$X_3$与$W_3$的互相关结果$O_3$

$W_3$仅右下角元素为0,互相关等价于窗口前三个元素求和:
$$
O_3 = \begin{bmatrix}
1+0+0 & 0+0+0 & 0+0+1 \
0+0+1 & 0+1+1 & 1+1+1 \
1+1+0 & 1+1+0 & 1+1+1
\end{bmatrix}
= \begin{bmatrix}1&0&1\1&2&3\2&2&3\end{bmatrix}
$$

步骤3:多通道结果逐元素相加

最终输出$O = O_1 + O_2 + O_3$,对应位置求和:
$$
O = \begin{bmatrix}
2+3+1 & 0+3+0 & 1+4+1 \
0+2+1 & 2+3+2 & 1+2+3 \
0+3+2 & 1+2+2 & 1+2+3
\end{bmatrix}
$$

步骤4:最终卷积输出

$$
\boldsymbol{O} = \begin{bmatrix}
6 & 3 & 6 \
3 & 7 & 6 \
5 & 5 & 6
\end{bmatrix}
$$

第三题:

步骤1:计算前提说明

输入6×6矩阵:
$$
x = \begin{bmatrix}
1 & 2 & 1 & 2 & 1 & 2 \
1 & 3 & 1 & 4 & 1 & 3 \
2 & 3 & 2 & 3 & 1 & 5 \
6 & 2 & 2 & 5 & 4 & 1 \
1 & 2 & 5 & 4 & 1 & 3 \
4 & 4 & 3 & 1 & 6 & 7
\end{bmatrix}
$$
最大池化核心规则:对池化窗口内的所有元素取最大值作为输出;无重叠池化的步长=池化核尺寸有重叠池化的步长<池化核尺寸


步骤2:2×2和3×3无重叠最大池化

无重叠池化要求步长与池化核大小相等,保证窗口无重叠。

1. 2×2无重叠最大池化

  • 池化核2×2,步长stride=2
  • 输出尺寸:$\frac{6-2}{2}+1=3$,即3×3矩阵
  • 计算逻辑:将输入划分为9个不重叠的2×2子块,每个子块取最大值,结果如下:
    $$
    \boldsymbol{O}_{2\times2\text{无重叠}} = \begin{bmatrix}
    3 & 4 & 3 \
    6 & 5 & 5 \
    4 & 5 & 7
    \end{bmatrix}
    $$

2. 3×3无重叠最大池化

  • 池化核3×3,步长stride=3
  • 输出尺寸:$\frac{6-3}{3}+1=2$,即2×2矩阵
  • 计算逻辑:将输入划分为4个不重叠的3×3子块,每个子块取最大值,结果如下:
    $$
    \boldsymbol{O}_{3\times3\text{无重叠}} = \begin{bmatrix}
    3 & 5 \
    6 & 7
    \end{bmatrix}
    $$

步骤3:步长为1的有重叠最大池化

该类题目默认使用2×2池化核(深度学习通用设定),计算如下:

  • 池化核2×2,步长stride=1
  • 输出尺寸:$\frac{6-2}{1}+1=5$,即5×5矩阵
  • 计算逻辑:窗口逐行逐列滑动(步长1),每个2×2窗口取最大值,最终结果:
    $$
    \boldsymbol{O}_{2\times2\text{步长1}} = \begin{bmatrix}
    3 & 3 & 4 & 4 & 3 \
    3 & 3 & 4 & 4 & 5 \
    6 & 3 & 5 & 5 & 5 \
    6 & 5 & 5 & 5 & 4 \
    4 & 5 & 5 & 6 & 7
    \end{bmatrix}
    $$

第四题:计算损失函数

步骤1:交叉熵损失

对于多分类问题,交叉熵损失的公式为:

$$
L_{CE} = -\frac{1}{N}\sum_{i=1}^{N} \sum_{j=1}^{C} \hat{y}{ij} \ln(y{ij})
$$

其中 $N$ 为样本数,$C$ 为类别数。由于真实标签为 one-hot 向量,实际只计算真实类别对应的负对数似然。

  • 样本 1:真实类别为第 3 类(索引 2),预测概率 $p_1 = 0.7$
    $L_1 = -\ln(0.7)$
  • 样本 2:真实类别为第 1 类(索引 0),预测概率 $p_2 = 0.6$
    $L_2 = -\ln(0.6)$

平均交叉熵损失为:

$$
L_{CE} = \frac{-\ln(0.7) - \ln(0.6)}{2} = -\frac{\ln(0.42)}{2} \approx 0.4338
$$

步骤2:平滑 $L_1$ 损失 (Smooth L1 Loss / Huber Loss)

平滑 $L_1$ 损失的元素级定义为:

$$
\text{smooth}_{L_1}(x) =
\begin{cases}
0.5x^2, & |x| < 1 \
|x| - 0.5, & |x| \ge 1
\end{cases}
$$

对所有样本的所有输出节点求平均。先计算每个元素的预测值与真实值之差:

  • 样本 1:$\mathbf{y}_1 = [0.1, 0.2, 0.7]^\top$,$\hat{\mathbf{y}}_1 = [0, 0, 1]^\top$
    误差:$0.1,; 0.2,; -0.3$
  • 样本 2:$\mathbf{y}_2 = [0.6, 0.2, 0.2]^\top$,$\hat{\mathbf{y}}_2 = [1, 0, 0]^\top$
    误差:$-0.4,; 0.2,; 0.2$

所有误差的绝对值均小于 1,因此每个元素使用 $0.5x^2$:

$$
\begin{aligned}
&0.5 \times (0.1)^2 = 0.005 \
&0.5 \times (0.2)^2 = 0.02 \
&0.5 \times (-0.3)^2 = 0.045 \
&0.5 \times (-0.4)^2 = 0.08 \
&0.5 \times (0.2)^2 = 0.02 \
&0.5 \times (0.2)^2 = 0.02 \
\end{aligned}
$$

总和为 $0.005 + 0.02 + 0.045 + 0.08 + 0.02 + 0.02 = 0.19$。总元素个数为 $2 \times 3 = 6$,平均平滑 $L_1$ 损失为:

$$
L_{SmoothL1} = \frac{0.19}{6} \approx 0.03167
$$

步骤3:答案汇总

  • 交叉熵损失:$\displaystyle -\frac{\ln(0.42)}{2} \approx 0.4338$
  • 平滑 $L_1$ 损失:$\displaystyle \frac{0.19}{6} \approx 0.03167$

第五题:简述 Inception 模块的设计思想

1. 早期卷积网络的局限性

早期卷积网络(如 AlexNet、VGG)每一层只能使用单一尺寸的卷积核(如 3×3 或 5×5),一层接一层堆叠。这种设计的问题在于:

  • 每层能捕捉的特征尺度完全固定;
  • 需要依靠堆叠层数来扩大感受野,积累不同尺度信息。

2. Inception 的核心思想

Inception 模块的设计思路非常直接:既然无法提前确定这一层哪种尺寸的卷积核提取的特征最有用,不如将不同尺寸的卷积核并行放入网络,让网络自主学习哪些特征更重要。

每个 Inception 模块内部包含:

  • 多种尺寸的卷积操作(如 1×1、3×3、5×5)
  • 池化操作

这些并行分支在同一层级中:

  • 小卷积核捕获细节纹理等小尺度特征;
  • 大卷积核捕获轮廓、区域等大尺度特征;
  • 分支输出在通道维度拼接,供后续层使用。

这样网络在同一阶段就能同时具备不同尺度的特征感知能力,无需单纯依靠堆叠层数来获取多尺度信息。

3. 1×1 卷积的关键作用

直接堆叠大尺寸卷积核会导致参数量和计算量爆炸。Inception 通过引入 1×1 卷积巧妙解决了这个问题:

  • 降维作用:先用 1×1 卷积降低输入通道数,再进行 3×3、5×5 卷积;
  • 示例:假设输入 256 通道特征图,直接用 5×5 卷积参数量巨大;先通过 1×1 卷积将通道降至 64,再做 5×5 卷积,参数量大幅减少;
  • 额外收益:增加一层非线性激活,提升网络拟合能力,同时降低过拟合风险。

第六题:残差模块卷积计算

在残差模块中,常通过填充(Padding)使卷积输出与输入的特征图尺寸保持一致,以便进行跳跃连接相加。本题输入 $x$ 为 $4 \times 4$ 矩阵,卷积核 $w$ 为 $2 \times 2$,步长默认为 $1$。要获得与输入尺寸相同的 $4 \times 4$ 输出,需使用 “SAME” 填充方式,总填充量为 $1$,通常分配为上方 $0$、下方 $1$,左方 $0$、右方 $1$(不对称填充)。

步骤1:填充后的输入矩阵(尺寸 $5 \times 5$)

$$
x_{\text{pad}} =
\begin{bmatrix}
1 & 0 & 1 & 2 & 0 \
2 & 1 & 0 & 3 & 0 \
2 & 1 & 1 & 1 & 0 \
5 & 0 & 3 & 1 & 0 \
0 & 0 & 0 & 0 & 0
\end{bmatrix}
$$

步骤2:卷积计算

卷积核 $w = \begin{bmatrix} 1 & 0 \ 0 & 0 \end{bmatrix}$ 只有左上角元素为 $1$,其余为 $0$。输出矩阵 $y$ 的元素为:

$$
y[i,j] = \sum_{m=0}^{1}\sum_{n=0}^{1} x_{\text{pad}}[i+m,, j+n] \cdot w[m,n] = x_{\text{pad}}[i,j] \cdot 1 = x_{\text{pad}}[i,j]
$$

由于输出尺寸为 $4 \times 4$,取 $x_{\text{pad}}$ 左上角的 $4 \times 4$ 子矩阵,即原始输入 $x$。

步骤3:残差模块下的卷积输出

该卷积操作的结果(残差映射 $\mathcal{F}(x)$)为:

$$
\mathcal{F}(x) =
\begin{bmatrix}
1 & 0 & 1 & 2 \
2 & 1 & 0 & 3 \
2 & 1 & 1 & 1 \
5 & 0 & 3 & 1
\end{bmatrix}
$$

第七题:卷积神经网络前向传播计算

按照网络结构 Conv1+ReLU1 → MaxPooling1 → Conv2+ReLU2 → AvgPooling2 → FC+Softmax 逐步计算。

步骤1:输入数据

输入为5×5单通道矩阵:
$$
X = \begin{bmatrix}
1 & 0 & 1 & 1 & 1 \
1 & 0 & 1 & 1 & 0 \
0 & 1 & 0 & 1 & 0 \
1 & 0 & 1 & 1 & 0 \
1 & 1 & 0 & 1 & 1
\end{bmatrix}
$$

步骤2:Conv1 + ReLU1

  • 卷积核参数:3×3单通道卷积核 $W=\begin{bmatrix}1&-1&1\0&1&0\0&1&-1\end{bmatrix}$,padding=1,stride=1
  • 输出尺寸:$\frac{5-3+2×1}{1}+1=5$,即5×5矩阵
  • 卷积计算结果(互相关):
    $$
    O_{conv1} = \begin{bmatrix}
    2 & -1 & 1 & 2 & 1 \
    -1 & 3 & 0 & 3 & 0 \
    0 & 2 & 0 & 2 & 1 \
    2 & 0 & 2 & 0 & 2 \
    0 & 3 & 0 & 1 & 2
    \end{bmatrix}
    $$
  • ReLU激活($max(0,x)$,负数置0):
    $$
    O_{relu1} = \begin{bmatrix}
    2 & 0 & 1 & 2 & 1 \
    0 & 3 & 0 & 3 & 0 \
    0 & 2 & 0 & 2 & 1 \
    2 & 0 & 2 & 0 & 2 \
    0 & 3 & 0 & 1 & 2
    \end{bmatrix}
    $$

步骤3:MaxPooling1

  • 池化参数:2×2核,stride=1,无padding
  • 输出尺寸:$\frac{5-2}{1}+1=4$,即4×4矩阵
  • 最大池化结果(每个2×2窗口取最大值):
    $$
    O_{pool1} = \begin{bmatrix}
    3 & 3 & 3 & 3 \
    3 & 3 & 3 & 3 \
    2 & 2 & 2 & 2 \
    3 & 3 & 2 & 2
    \end{bmatrix}
    $$

步骤4:Conv2 + ReLU2

  • 卷积核参数:2个3×3单通道卷积核,padding=1,stride=1,输出2通道4×4特征图
    $$W_1=\begin{bmatrix}1&0&0\1&-1&-1\0&1&1\end{bmatrix}, \quad W_2=\begin{bmatrix}0&-1&-1\1&1&-1\1&1&0\end{bmatrix}$$
  • 输出尺寸:$\frac{4-3+2×1}{1}+1=4$,每个卷积核输出4×4矩阵

(1)W1卷积结果
$$
O_{conv2_w1} = \begin{bmatrix}
0 & 3 & 3 & 3 \
-2 & 4 & 4 & 5 \
2 & 6 & 5 & 5 \
-6 & 0 & 1 & 2
\end{bmatrix}
$$
ReLU激活后:
$$
O_{relu2_w1} = \begin{bmatrix}
0 & 3 & 3 & 3 \
0 & 4 & 4 & 5 \
2 & 6 & 5 & 5 \
0 & 0 & 1 & 2
\end{bmatrix}
$$

(2)W2卷积结果
$$
O_{conv2_w2} = \begin{bmatrix}
3 & 9 & 9 & 12 \
-4 & 1 & 1 & 7 \
-3 & 2 & 1 & 5 \
-4 & 0 & -1 & 2
\end{bmatrix}
$$
ReLU激活后:
$$
O_{relu2_w2} = \begin{bmatrix}
3 & 9 & 9 & 12 \
0 & 1 & 1 & 7 \
0 & 2 & 1 & 5 \
0 & 0 & 0 & 2
\end{bmatrix}
$$

步骤5:AvgPooling2

  • 池化参数:4×4核,stride=1,无padding(全局平均池化)
  • 输出尺寸:$\frac{4-4}{1}+1=1$,每个通道输出1个标量
  • 计算结果:
    • 通道1(W1):所有元素和为43,平均值 $43/16=2.6875$
    • 通道2(W2):所有元素和为52,平均值 $52/16=3.25$
  • 池化输出向量:$x_{fc} = [2.6875,\ 3.25]$

步骤6:FC + Softmax

  • 全连接权重:$W_1=[0,1]^T$,$W_2=[-1,1]^T$,无偏置
  • 全连接层输出:
    $$z_1 = x_{fc}·W_1 = 2.6875×0 + 3.25×1 = 3.25$$
    $$z_2 = x_{fc}·W_2 = 2.6875×(-1) + 3.25×1 = 0.5625$$
  • Softmax激活($y_i=\frac{e^{z_i}}{e^{z_1}+e^{z_2}}$):
    $$e^{3.25}≈25.7903,\ e^{0.5625}≈1.7551,\ 总和≈27.5454$$
    $$y_1≈\frac{25.7903}{27.5454}≈0.936$$
    $$y_2≈\frac{1.7551}{27.5454}≈0.064$$

步骤7:最终输出

网络最终的Softmax输出为:$\boldsymbol{[0.936,\ 0.064]}$


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 kipleyarch@gmail.com
Archive PDF预览 PPTX Obsidian