卷积神经网络 - 参数学习

news2025/4/21 15:22:36

本文我们通过两个简化的例子,展示如何从前向传播、损失计算,到反向传播推导梯度,再到参数更新,完整地描述卷积层的参数学习过程。

一、例子一

我们构造一个非常简单的卷积神经网络,其结构仅包含一个卷积层和一个输出(不使用激活函数,为了便于数学推导),损失函数采用均方误差(MSE)。

1. 设定问题

输入数据
假设输入为一幅小的灰度图像 X:

例如,令

卷积核
使用一个 2×2 的卷积核 W:

并设有偏置 b。

卷积操作
采用“valid”卷积(不填充),在这种情况下,由于输入和核大小都为2×2,卷积操作仅得到一个输出标量 O:

O=(w1⋅x11+w2⋅x12+w3⋅x21+w4⋅x22)+b.

我们为了简化,不使用激活函数(即线性激活),这样前向计算就很直观。

目标输出
设定目标值为 y(比如标签值),假设 y=10。

损失函数
我们使用均方误差(MSE):

2. 前向传播计算

代入示例数据:

  • 初始假设卷积核权重和偏置(假设初始值为):

计算输出 O:

损失:

3. 梯度推导(反向传播)

我们需要计算损失 L 关于每个参数的梯度,即

步骤1:计算损失对输出 O 的梯度

代入数据:O−y=4.5−10=−5.5.

步骤2:计算输出 O 关于各参数的梯度

步骤3:链式法则计算损失对各参数的梯度

根据链式法则:

代入数值:

4. 参数更新(梯度下降)

设定学习率 η,例如 η=0.01,则更新规则为:

更新后的参数:

更新后,新的卷积核参数为:

5. 训练过程总结

整个训练过程如下:

  1. 前向传播:对输入图像进行卷积计算,得到输出 O。
  2. 计算损失:利用损失函数(MSE)计算模型输出与目标值之间的误差 L。
  3. 反向传播:根据链式法则计算损失对各参数(卷积核权重和偏置)的梯度。
  4. 参数更新:使用梯度下降(或其他优化算法)更新参数,向降低损失的方向调整。
  5. 迭代训练:重复上述步骤,遍历整个训练数据集,直到损失收敛或达到设定的迭代次数。

这个例子虽然非常简单(只有一个卷积层,一个输出单元),但它清楚展示了如何从前向传播计算输出、如何利用损失函数计算误差、如何通过反向传播推导每个参数的梯度,并最终利用梯度下降更新参数。实际的卷积神经网络通常包含多个卷积层、池化层和全连接层,但每个部分的参数学习原理都是类似的——都是通过不断地计算梯度并更新参数,使得模型能够更好地拟合数据,从而实现准确的图像分类、检测等任务。

二、例子二

以下是一个具体的卷积神经网络(CNN)训练过程示例,详细展示前向传播、损失计算、反向传播、参数更新的每个步骤。我们以简单的数字识别任务为例,使用极简网络结构便于手动验证。

示例设定

1. 输入数据
  • 输入图像:2×2的灰度图像,表示数字“1”

  • 真实标签:y_true=[1,0](二分类,索引0为“非1”,索引1为“是1”)

2. 网络结构
  • 卷积层:1个2×2卷积核,无填充,步长=1

    • 初始权重:

    • 激活函数:ReLU(ReLU(x)=max⁡(0,x))

  • 全连接层:输入1个神经元 → 输出2个神经元

    • 初始权重:

    • 激活函数:Softmax(输出概率)

3. 超参数
  • 学习率:η=0.1

  • 损失函数:交叉熵损失(Cross-Entropy Loss)

(一)前向传播(Forward Pass)

1. 卷积层计算
  • 卷积操作
    输入 X 与卷积核 W_conv 逐元素相乘后求和,加偏置:

    Conv输出=(0.2×0.5+0.8×(−0.3)+0.6×0.2+0.1×0.4)+0.1=0.1−0.24+0.12+0.04+0.1=0.12
  • ReLU激活

    Aconv=ReLU(0.12)=0.12
2. 全连接层计算
  • 线性变换

  • Softmax激活

    预测结果:类别1(“是1”)的概率为0.628,类别0为0.372。

(二)损失计算(Loss Calculation)

  • 交叉熵损失

(三)反向传播(Backward Pass)

1. 全连接层梯度
  • Softmax梯度

  • 权重梯度

  • 偏置梯度

2. 卷积层梯度
  • ReLU梯度

  • 传递到卷积层的梯度

  • 卷积核权重梯度

  • 卷积层偏置梯度

(四)参数更新(Parameter Update)

1. 全连接层参数
  • 权重更新

  • 偏置更新

2. 卷积层参数
  • 权重更新

  • 偏置更新

(五)更新后效果验证

1. 前向传播再计算
  • 新卷积输出

    Conv输出=(0.2×0.4933+0.8×(−0.3268)+0.6×0.1799+0.1×0.3967)+0.0665≈0.0987

    ReLU激活后:Aconv=0.0987

  • 新全连接输出

    Softmax概率:

2. 新损失值

New Loss=−log⁡(0.581)≈0.542(比原始损失0.465反而增大)

(六)结果分析

  1. 损失未下降的原因

    • 单步更新局限性:梯度下降可能需要多步迭代才能收敛。

    • 学习率过大:学习率 η=0.1 可能跳过最优解,可尝试更小值(如0.05)。

    • 网络容量限制:极简模型可能无法有效拟合复杂模式。

  2. 参数学习方向验证

(七)关键总结

  • 前向传播:数据从输入到输出的逐层变换。

  • 反向传播:通过链式法则计算梯度,明确参数调整方向。

  • 参数更新:沿负梯度方向微调参数,逐步逼近最优解。

  • 迭代优化:需多次迭代(Epoch)才能显著降低损失。

通过这个极简示例,可直观理解CNN参数学习的动态过程。实际训练中需结合批量数据、更复杂网络结构和优化策略(如Adam、学习率衰减)提升效果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2321917.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

亮数据爬取API爬取亚马逊电商平台实战教程

前言 在当今数据驱动的商业环境中,企业需要快速、精准地获取互联网上的公开数据以支持市场分析、竞品调研和用户行为研究。然而,传统的手动网页爬取方式面临着诸多挑战:IP封锁、验证码干扰、网站结构频繁变更,以及高昂的运维成本…

[CLS] Token 在 ViT(Vision Transformer)中的作用与实现

[CLS] Token 在 ViT(Vision Transformer)中的作用与实现 1. 什么是 [CLS] Token? [CLS](classification token)是Transformer模型中一个可学习的嵌入向量,最初在 BERT(Bidirectional Encoder …

基于网启PXE服务器的批量定制系统平台

项目概述 1.需求 公司新购了一批服务器和台式机,需要为台式机和服务器安装系统,一部分需要安装国产OpenEuler,一部分要求安装CentOS 7.9,同时也要满足定制化需求,即按要求分区安装相应软件。 2.使用开源软件 &…

在本地Windows机器加载大模型并生成内容

本篇演示在本地机器下载和加载大模型并获取AI产生的内容。简单起见,使用的大模型是Qwen2.5-0.5B-Instruct,整个模型的所有文件不到1G。 Qwen2.5-0.5B-Instruct 是阿里巴巴云 QWen 团队基于 Transformer 架构开发的轻量级指令调优语言模型,专…

热门面试题第14天|Leetcode 513找树左下角的值 112 113 路径总和 105 106 从中序与后序遍历序列构造二叉树 (及其扩展形式)以一敌二

找树左下角的值 本题递归偏难,反而迭代简单属于模板题, 两种方法掌握一下 题目链接/文章讲解/视频讲解:https://programmercarl.com/0513.%E6%89%BE%E6%A0%91%E5%B7%A6%E4%B8%8B%E8%A7%92%E7%9A%84%E5%80%BC.html 我们来分析一下题目&#…

【计算机网络】-计算机网络期末复习题复习资料

一、计算机网络体系结构(800字) 1. OSI参考模型 七层结构:物理层→数据链路层→网络层→传输层→会话层→表示层→应用层 各层核心功能: 物理层:比特流传输(如RJ45、光纤接口) 数据链路层&…

批归一化(Batch Normalization)与层归一化(Layer Normalization)的区别与联系

文章目录 一、Batch normalization 理论与应用1. 理论解释2. 数值例子 二、Layer normalization 理论与应用1. 理论解释2. 数值例子 三、Layer Normalization 和 Batch Normalization 的区别四、《Transformers without Normalization》笔记 一、Batch normalization 理论与应用…

12届蓝桥杯—货物摆放

货物摆放 题目描述 小蓝有一个超大的仓库,可以摆放很多货物。 现在,小蓝有 nn 箱货物要摆放在仓库,每箱货物都是规则的正方体。小蓝规定了长、宽、高三个互相垂直的方向,每箱货物的边都必须严格平行于长、宽、高。 小蓝希望所…

c++进阶--哈希表的实现

大家好,今天我们来学习ubordered_set和unordered_map的底层哈希表。 目录 哈希表实现 1. 哈希概念 1.1 直接定址法 1.2 哈希冲突 1.3 负载因⼦ 1.4 将关键字转为整数 1.5 哈希函数 下面我们介绍几种哈希函数:1.5.1 除法散列法/除留余数法 1.…

颠覆传统:SaaS 品牌如何通过 SEO 策略引爆市场!

SaaS 商业模式提供了令人难以置信的可扩展性和盈利能力——但前提是与正确的营销增长策略相结合。 SaaS 品牌知道,托管基于云的应用程序的成本会随着用户量的增加而降低,因此必须专注于订阅者的快速增长,以保持竞争力并降低成本。 许多 CMO…

特殊行车记录仪DAT视频丢失的恢复方法

行车记录仪是一种常见的车载记录仪,和常见的“小巧玲珑”的行车记录仪不同,一些特种车辆使用的记录仪的外观可以用“笨重”来形容。下边我们来看看特种车载行车记录仪删除文件后的恢复方法。 故障存储: 120GB存储设备/文件系统:exFAT /簇大小:128KB 故…

数据库中不存在该字段

mybatisplus 定义的类中某些字段是数据库里面没有的,我们可用tablefield(existfalse)来注解,演示如下:

吾爱出品,文件分类助手,高效管理您的 PC 资源库

在日常使用电脑的过程中,文件杂乱无章常常让人感到困扰。无论是桌面堆积如山的快捷方式,还是硬盘中混乱的音频、视频、文档等资源,都急需一种高效的整理方法。文件分类助手应运而生,它是一款文件管理工具,能够快速、智…

关于瑞芯微开发工具(RKDevTool)刷机下载Boot失败原因的研究

昨天发了文章《网心云OEC/OEC-turbo刷机问题——刷机教程、救砖方法、技术要点及下载boot失败异常解决尝试》,其中有关于刷机各种问题的一些解决方法。 网心云OEC/OEC-turbo刷机问题——刷机教程、救砖方法、技术要点及下载boot失败异常解决尝试-CSDN博客文章浏览阅…

web爬虫笔记:js逆向案例十一 某数cookie(补环境流程)

web爬虫笔记:js逆向案例十一 某数cookie(补环境流程) 一、获取网页数据请求流程 二、目标网址、cookie生成(逐步分析) 1、目标网址:aHR0cHM6Ly9zdWdoLnN6dS5lZHUuY24vSHRtbC9OZXdzL0NvbHVtbnMvNy9JbmRleC5odG1s 2、快速定位入口方法 1、通过脚本监听、hook_cookie等操作可…

Excel多级联动下拉菜单的自动化设置(使用Python中的openpyxl模块)

1 主要目的 在Excel中,经常会遇到需要制作多级联动下拉菜单的情况,要求单元格内填写的内容只能从指定的多个选项中进行选择,并且需要设置多级目录,其中下级目录的选项内容要根据上级目录的填写内容确定,如下图所示&am…

excalidraw画图工具——背景画布有无格子设置

服啦找了大半天,愣是没找到 toggle grid : 切换格子… Excalidraw的背景格子 只要右键,将这个勾取消就好了?

计算机组成原理———I\O系统精讲<1>

本篇文章主要介绍输入输出系统的发展概况 一.输入输出系统的发展概况 1.早期阶段 该阶段的特点是I/O设备与主存交换信息都必须通过CPU 当时的I/O设备有如下几个特点: (1)每个I\O设备都必须配有一套独立的逻辑电路与CPU相连,用来…

ENSP学习day9

ACL访问控制列表实验 ACL(Access Control List,访问控制列表)是一种用于控制用户或系统对资源(如文件、文件夹、网络等)访问权限的机制。通过ACL,系统管理员可以定义哪些用户或系统可以访问特定资源&#x…

【C++动态规划 数学】1039. 多边形三角剖分的最低得分|2130

本文涉及知识点 C动态规划 数学 LeetCode1039. 多边形三角剖分的最低得分 你有一个凸的 n 边形,其每个顶点都有一个整数值。给定一个整数数组 values ,其中 values[i] 是第 i 个顶点的值(即 顺时针顺序 )。 假设将多边形 剖分 …