From 949b3a518cdfddb252be3b97f875358355fb23f1 Mon Sep 17 00:00:00 2001 From: NH5 Date: Thu, 15 Jan 2026 15:18:56 +0800 Subject: [PATCH] bug fix --- .../02-feedforward-network.typ | 25 +++++++++++-------- .../03-convolutional-neuro-network.typ | 3 +++ .../04-recurrent-neuro-network.typ | 4 +-- 3 files changed, 19 insertions(+), 13 deletions(-) diff --git a/Neuro-Network-and-Deep-Learning/02-feedforward-network.typ b/Neuro-Network-and-Deep-Learning/02-feedforward-network.typ index 32857a7..9b69935 100644 --- a/Neuro-Network-and-Deep-Learning/02-feedforward-network.typ +++ b/Neuro-Network-and-Deep-Learning/02-feedforward-network.typ @@ -17,8 +17,8 @@ / 前馈神经网络: 也称多层感知机, 各神经元分别属于不同的层.每一层的神经元可以接收前一层神经元的信号, 并产生信号输出到下一层.第0层称为*输入层*, 最后一层称为*输出层*, 其他中间层称为*隐藏层*.整个网络中*无反馈*, 信号从输入层向输出层单向传播 -$ z^((l)) = W^((l)) dot a^((l)) + b^((l)) $ -$ a^((l)) = f_l(z^((l))) $ +$ z^((l)) = W^((l)) dot a^((l-1)) + b^((l)) $ +$ a^((l)) = f_l (z^((l))) $ 在应用时, 通过FNN将样本映射后输入到一个分类器实现分类, 例如使用 logistic 函数处理二分类, 使用 softmax 函数处理多分类问题. @@ -154,9 +154,9 @@ $ + *反向传播算法 (Backpropagation) - 核心难点* - *链式法则*:BP算法的数学基础, 需熟练掌握复合函数的求导. - *误差项 ($delta$) 的定义与传递*: - - 定义:$delta^((l)) = partial cal(L) / partial z^((l))$. + - 定义:$delta^((l)) = (partial cal(L)) / (partial z^((l)))$. - 递推公式:$delta^((l)) = f'_l (z^((l))) dot ((W^((l+1)))^T delta^((l+1)))$. 注意矩阵转置和逐元素相乘. - - *参数梯度*:利用误差项计算权重和偏置的梯度:$partial cal(L) / partial W^((l)) = delta^((l)) (a^((l-1)))^T$. + - *参数梯度*:利用误差项计算权重和偏置的梯度:$(partial cal(L)) / (partial W^((l))) = delta^((l)) (a^((l-1)))^T$. + *优化与正则化* - *梯度消失问题*:产生原因 (Sigmoid导数最大值为0.25, 深层网络链式连乘导致梯度衰减) 及解决方案 (使用ReLU等). @@ -197,12 +197,14 @@ $ ==== 简答题 1. *激活函数性质*:请简述激活函数在神经网络中的作用. 如果将多层前馈神经网络中的所有激活函数都替换为线性函数 $f(x) = c x$, 网络会有什么变化? + *参考答案*: - *作用*:激活函数引入了非线性因素, 使得神经网络能够逼近任意复杂的非线性函数 (依据通用近似定理). - *线性化的后果*:如果使用线性函数, 无论网络有多少层, 其输出都是输入的线性组合. - *结论*:整个多层网络将等价于一个单层线性模型 (如感知器), 从而失去处理非线性问题 (如异或问题) 的能力. 2. *梯度消失*:请结合 Sigmoid 函数的导数特性, 解释梯度消失问题产生的原因, 并列举一种解决方案. + *参考答案*: - *导数特性*:Sigmoid 函数的导数为 $sigma'(x) = sigma(x)(1 - sigma(x))$, 其最大值仅为 0.25. - *产生原因*:在反向传播中, 误差项是通过链式法则向前传递的, 涉及多个导数项的连乘. 如果网络很深, 多个小于 0.25 的数值相乘会迅速趋近于 0, 导致靠近输入层的梯度极其微弱, 参数无法有效更新. @@ -212,6 +214,7 @@ $ - 使用残差连接 (ResNet). 3. *参数初始化*:为什么在训练神经网络时, 不能将所有权重参数 $W$ 初始化为 0? + *参考答案*: - *前向传播*:如果所有权重初始化为 0, 同一层的所有神经元接收到的输入相同, 激活输出也完全相同. - *反向传播*:由于输出相同, 它们获得的梯度更新也完全相同. @@ -238,13 +241,13 @@ $ *反向计算*: $ - partial f / partial h_3 &= -1 / h_3^2 = -0.25 \ - partial h_3 / partial h_2 &= 1 \ - arrow.r partial f / partial h_2 &= -0.25 \ - partial h_2 / partial h_1 &= exp(h_1) = 1 \ - arrow.r partial f / partial h_1 &= -0.25 \ - partial h_1 / partial w &= -x = -1 \ - arrow.r partial f / partial w &= (-0.25) times (-1) = 0.25 + (partial f) / (partial h_3) &= -1 / h_3^2 = -0.25 \ + (partial h_3) / (partial h_2) &= 1 \ + arrow.r (partial f) / (partial h_2) &= -0.25 \ + (partial h_2) / (partial h_1) &= exp(h_1) = 1 \ + arrow.r (partial f) / (partial h_1) &= -0.25 \ + (partial h_1) / (partial w) &= -x = -1 \ + arrow.r (partial f) / (partial w) &= (-0.25) times (-1) = 0.25 $ 2. *反向传播推导* diff --git a/Neuro-Network-and-Deep-Learning/03-convolutional-neuro-network.typ b/Neuro-Network-and-Deep-Learning/03-convolutional-neuro-network.typ index b4f9ecf..a1a6843 100644 --- a/Neuro-Network-and-Deep-Learning/03-convolutional-neuro-network.typ +++ b/Neuro-Network-and-Deep-Learning/03-convolutional-neuro-network.typ @@ -190,18 +190,21 @@ ResNet 是深度学习领域的一个重要里程碑, 解决了深层网络难 ==== 简答题 1. *(核心概念)* 请简述卷积神经网络中“局部连接”和“权重共享”的含义, 并说明它们如何帮助处理图像数据. + *参考答案*: - *局部连接*: 神经元不再与上一层的所有神经元相连, 而只与一个局部区域(感受野)内的神经元相连. 这符合图像的空间局部相关性(相邻像素联系紧密). - *权重共享*: 同一个卷积核(滤波器)在图像的所有位置上滑动时, 其权重参数是固定的. 这意味着网络在图像不同位置使用相同的特征提取器. - *作用*: 这两个机制大大减少了网络的参数数量, 提高了训练效率, 并赋予了网络平移不变性的基础. 2. *(数学性质)* 在教材 5.1 节中提到了“宽卷积”、“窄卷积”和“等宽卷积”. 请分别解释这三种卷积在步长 $S=1$ 时的定义(基于填充 $P$ 和核大小 $K$ 的关系)及输出尺寸的变化趋势. + *参考答案*: - *窄卷积*: $P=0$, 输出尺寸为 $M - K + 1$, 特征图逐渐变小. - *宽卷积*: $P=K-1$, 输出尺寸为 $M + K - 1$, 特征图变大. - *等宽卷积*: $P=(K-1)/2$, 输出尺寸为 $M$, 特征图大小保持不变(常用于深层网络以维持空间维度). 3. *(结构分析)* 为什么现在的深层卷积网络(如 ResNet, Inception) 倾向于使用较小的卷积核(如 $1 times 1$ 和 $3 times 3$), 而不是大的卷积核(如 $5 times 5$ 或 $7 times 7$)? + *参考答案*: - *减少参数量*: 堆叠两个 $3 times 3$ 卷积层的感受野与一个 $5 times 5$ 相同, 但参数量更少 ($2 times 3^2 = 18$ vs $5^2 = 25$). - *增加非线性*: 多层小卷积核之间会加入激活函数(如 ReLU), 增加了网络的非线性表达能力, 使网络能学习更复杂的特征. diff --git a/Neuro-Network-and-Deep-Learning/04-recurrent-neuro-network.typ b/Neuro-Network-and-Deep-Learning/04-recurrent-neuro-network.typ index 0a6643e..8216238 100644 --- a/Neuro-Network-and-Deep-Learning/04-recurrent-neuro-network.typ +++ b/Neuro-Network-and-Deep-Learning/04-recurrent-neuro-network.typ @@ -91,7 +91,7 @@ BPTT 在处理长序列时, 由于梯度在时间轴上的连乘效应 (特别 === 长短期记忆网络 (LSTM) -长短期记忆网络 (Long Short-Term Memory, LSTM) 是解决 RNN 梯度消失问题的核心方案. 它通过引入*细胞状态 (Cell State) *和*门控机制 (Gating Mechanisms) *, 实现了信息的长期保存. LSTM 的精妙之处在于 $c_t = f_t dot C_(t-1) + i_t dot tilde(c)_t$. 这种*线性加法*结构使得误差在反向传播时, 即使经过很多个时间步, 只要遗忘门开启, 梯度就不会像传统 RNN 那样因为连乘而迅速消失. +长短期记忆网络 (Long Short-Term Memory, LSTM) 是解决 RNN 梯度消失问题的核心方案. 它通过引入*细胞状态 (Cell State) *和*门控机制 (Gating Mechanisms) *, 实现了信息的长期保存. LSTM 的精妙之处在于 $c_t = f_t dot c_(t-1) + i_t dot tilde(c)_t$. 这种*线性加法*结构使得误差在反向传播时, 即使经过很多个时间步, 只要遗忘门开启, 梯度就不会像传统 RNN 那样因为连乘而迅速消失. 在每个时刻 $t$, LSTM 的计算逻辑由以下公式构成: @@ -102,7 +102,7 @@ BPTT 在处理长序列时, 由于梯度在时间轴上的连乘效应 (特别 2. *更新细胞状态*: - 候选状态: $tilde(c)_t = tanh(W_c x_t + U_c h_(t-1) + b_c)$ - - 当前状态: $c_t = f_t dot C_(t-1) + i_t dot tilde(c)_t$ (*关键: 加法运算避免了梯度消失*) + - 当前状态: $c_t = f_t dot c_(t-1) + i_t dot tilde(c)_t$ (*关键: 加法运算避免了梯度消失*) 3. *计算隐藏输出*: - $h_t = o_t dot tanh(c_t)$