当前位置: 首页 > news >正文

从随机数值到特征检测器的学习与更新

(1)一张图片的特征千千万,卷积核也有千千万,我们是怎样来确定卷积核的数值是可以提取我们想要的特征,或者说能提取使得最后分类正确的特征呢?

(2)卷积核里面的权值是如何更新的呢?

(1) 卷积核的数值是如何确定/学习到有效特征的?

卷积核的数值不是人工预设的,而是通过反向传播算法和梯度下降,在训练过程中从数据中自动学习得到的。 初始值是随机的,网络通过不断试错和调整,逐渐让卷积核学会提取对最终任务(如分类)有用的特征。

详细过程:

  1. 随机初始化:

    • 训练开始时,所有卷积核的权重(数值)被设置为小的随机值(如从高斯分布中采样)。这相当于给网络一堆“随机的特征检测器”。

  2. 前向传播:

    • 输入一张训练图片。

    • 图片经过这些随机卷积核的卷积操作、激活函数(如ReLU)、池化等,逐层计算。

    • 最终到达输出层(通常是全连接层+Softmax),得到一个预测结果(比如预测图片是“猫”的概率)。

  3. 计算损失:

    • 将网络的预测结果与该图片的真实标签进行比较。

    • 使用损失函数计算预测值与真实值之间的误差。常见的损失函数如交叉熵损失。这个损失值量化了网络当前预测的“糟糕程度”。

  4. 反向传播:

    • 这是最关键的一步!目标是将计算出的损失值,从网络的输出层逐层反向传递到输入层,并计算出损失函数相对于网络中每一个权重(包括所有卷积核的每一个数值)的梯度

    • 梯度 ∂Loss / ∂W 指明了:如果稍微增大这个权重,损失函数的值会增大还是减小?以及变化的幅度有多大? 梯度是一个向量,指向损失函数增长最快的方向。

  5. 梯度下降更新权重:

    • 拿到梯度后,网络的目标是最小化损失函数。因此,它需要沿着梯度相反的方向调整权重。

    • 更新公式(简化):新权重 = 旧权重 - 学习率 * 梯度

    • 学习率: 一个超参数,控制每次更新的步长。太小则学习慢,太大可能跳过最优解。

    • 核心作用: 对于某个卷积核中的某个权重 W

      • 如果梯度 ∂Loss / ∂W 是正的,说明增大 W 会增加损失(预测更差),那么我们就需要减小 W (新W = 旧W - 正数)。

      • 如果梯度 ∂Loss / ∂W 是负的,说明增大 W 会减少损失(预测更好),那么我们就需要增大 W (新W = 旧W - 负数 = 旧W + 正数)。

    • 通过这种方式,卷积核中的每个数值都被调整,使得整个网络在该训练样本上的预测损失能够减小一点点。

  6. 迭代优化:

    • 对训练数据集中的大量样本重复步骤 2-5(通常分批进行,称为 mini-batch)。

    • 在遍历整个数据集多次(称为 epoch)的过程中,网络持续接收反馈(损失),并根据反馈不断调整所有卷积核的数值。

    • 逐渐地,这些初始随机的卷积核会演变成能够检测特定模式的滤波器:

      • 低层卷积核:学习检测简单的边缘、角点、颜色斑点等基础特征。

      • 中层卷积核:组合基础特征,学习检测纹理、部件(如车轮、眼睛)等更复杂的模式。

      • 高层卷积核:组合中层特征,学习检测接近目标类别的整体结构或显著模式(如整个猫脸、汽车轮廓)。

总结 (1): 卷积核的数值不是我们预先设定的“正确答案”,而是网络在训练过程中,为了最小化预测任务(如分类)的损失函数,通过反向传播计算梯度并利用梯度下降算法,在大量数据反复迭代调整而自动学习得到的。学习的目标就是找到那些能帮助网络最终做出正确预测的特征。


(2) 卷积核里面的权值是如何更新的呢?

核心答案:卷积核权重的更新是通过反向传播计算出损失函数对该权重的梯度 (∂Loss / ∂W),然后使用梯度下降规则 (W_new = W_old - learning_rate * ∂Loss/∂W) 来完成的。 这个过程与网络中其他层(如全连接层)的权重更新原理相同。

详细解释 (结合问题1):

  1. 梯度计算 (∂Loss / ∂W):

    • 这是反向传播的核心任务。反向传播算法高效地利用链式法则,从输出层逐层回传误差。

    • 假设我们有一个位于第 l 层的卷积核 K 中的一个特定权重 W(位于核的第 i 行,第 j 列,连接到第 k 个输入通道,输出第 m 个特征图)。

    • 反向传播会计算损失 Loss 对 W 的偏导数 ∂Loss / ∂W。这个导数具体怎么算?

      • 它依赖于 Loss 对卷积层 l 输出的第 m 个特征图的梯度 (∂Loss / ∂Z^l_m)。

      • 再依赖于该特征图在卷积计算时,W 所作用的那一小块输入区域(第 k 个输入通道上,对应卷积核当前位置 (i, j) 滑过的区域)。

    • 简化理解:∂Loss / ∂W 大致等于 (∂Loss / ∂Z^l_m) 与 W 在卷积操作中对应的那块输入区域值 的乘积的累加和(还需要考虑具体卷积计算的数学形式)。它衡量了 W 对最终误差的“贡献”大小和方向。

  2. 更新规则 (W_new = W_old - learning_rate * ∂Loss/∂W):

    • 一旦计算出梯度 ∂Loss / ∂W,更新就非常简单直接了。

    • 学习率 learning_rate (η): 这是一个非常重要的超参数。它决定了每次更新的步长。

    • 更新方向: - ∂Loss/∂W。负号表示我们要沿着梯度下降的方向(即减小损失的方向)移动权重。

    • 更新量: learning_rate * ∂Loss/∂W。学习率控制了移动的幅度,梯度的大小决定了移动的幅度(误差贡献大的权重更新幅度大)。

    • 批量更新 (Mini-batch): 实践中很少对单个样本更新一次权重(效率低,噪声大)。通常将一批样本(如 32, 64, 128 张图)一起前向传播,计算这批样本的平均损失,然后计算这个平均损失对权重的平均梯度,最后用这个平均梯度来更新权重。这提高了稳定性和效率。

  3. 共享权重的特殊性:

    • 卷积神经网络的一个关键特性是权值共享:同一个卷积核会滑过输入特征图的所有位置。

    • 这意味着: 在计算 ∂Loss / ∂W (对于卷积核 K 中的某个权重 W) 时:

      • 反向传播过程中,所有该卷积核 K 在输入特征图上所有滑动位置产生的误差,都会汇总到这个权重 W 的梯度计算中。

      • 因此,∂Loss / ∂W 实际上是在该卷积核滑动的所有空间位置上,损失函数对 W 的梯度的总和(或平均值,取决于具体实现)。

    • 更新影响: 当用这个梯度更新 W 时,这个更新会影响该卷积核在所有位置的卷积计算结果。这正是权值共享的意义——同一个特征检测器(卷积核)应用于整个输入空间,并且它的学习基于所有位置上的综合反馈。

总结 (2): 每个卷积核中的每个权重 W 的更新遵循标准的梯度下降规则:

  1. 通过反向传播算法计算出损失函数 Loss 对 W 的梯度 ∂Loss / ∂W。这个计算利用了链式法则,并考虑了卷积操作的具体数学形式以及权值共享的特性(梯度是共享核在所有位置贡献的汇总)。

  2. 使用公式 W_new = W_old - learning_rate * ∂Loss/∂W 来更新权重。学习率控制步长,负号确保向减小损失的方向更新。

  3. 这个过程在训练数据集上反复迭代进行,直到网络性能收敛或达到停止条件。

示意图:

输入图片 -> [随机卷积核]卷积 -> ... -> 输出预测|V计算损失(Loss)|V(反向传播) <----- 计算梯度(∂Loss/∂W)|V(梯度下降) -----> 更新卷积核权重(W)

http://www.dtcms.com/a/288120.html

相关文章:

  • [硬件电路-37]:模拟电路、数字电路与计算软件信号处理的全方位比较
  • 暑假--作业3
  • 物联网系统中的可视化大屏定义
  • VSCode - VSCode 查找中文字符
  • 『 C++ 入门到放弃 』- AVL树
  • OpenCV 官翻 1 -介绍、安装、功能概览、核心操作
  • Streamlit 官翻 5 - 部署、社区云 Deploy
  • Linux内核空间的布局
  • 前端面试专栏-工程化:26.性能优化方案(加载优化、渲染优化)
  • 《Qt5串口开发》搭建跨平台通信系统
  • “外卖大战”正在改变国内“大零售”
  • 数据增强和微调
  • Codeforces Round 1037 (Div. 3)
  • windows docker-02-docker 最常用的命令汇总
  • uniapp props、$ref、$emit、$parent、$child、$on
  • 【数据结构】栈(stack)
  • xss-labs1-8题
  • ubuntu24 ros2 jazzy
  • OpenVINO使用教程--图像增强算法DarkIR
  • 华为擎云L420安装LocalSend
  • Oracle为什么需要临时表?——让数据处理更灵活
  • LeetCode 322. 零钱兑换 LeetCode 279.完全平方数 LeetCode 139.单词拆分 多重背包基础 56. 携带矿石资源
  • 【补题】Codeforces Round 958 (Div. 2) D. The Omnipotent Monster Killer
  • 窗口(6)-QMessageBox
  • ctf.show-web习题-web4-flag获取详解、总结
  • 动态规划——状压DP经典题目
  • Weavefox 图片 1 比 1 生成前端源代码
  • 计算机网络:(十)虚拟专用网 VPN 和网络地址转换 NAT
  • 详细阐述 TCP、UDP、ICMPv4 和 ICMPv6 协议-以及防火墙端口原理优雅草卓伊凡
  • 【王树森推荐系统】推荐系统涨指标的方法04:多样性