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

卷积神经网络 - 参数学习

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

一、例子一

我们构造一个非常简单的卷积神经网络,其结构仅包含一个卷积层和一个输出(不使用激活函数,为了便于数学推导),损失函数采用均方误差(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、学习率衰减)提升效果。

相关文章:

卷积神经网络 - 参数学习

本文我们通过两个简化的例子,展示如何从前向传播、损失计算,到反向传播推导梯度,再到参数更新,完整地描述卷积层的参数学习过程。 一、例子一 我们构造一个非常简单的卷积神经网络,其结构仅包含一个卷积层和一个输出…...

【加密社】币圈合约交易量监控,含TG推送

首先需要在币安的开发者中心去申请自己的BINANCE_API_KEY和BINANCE_API_SECRET 有了这个后,接着去申请一个TG的机器人token和对话chatid 如果不需要绑定tg推送的话,可以忽略这步 接下来直接上代码 引用部分 from os import system from binance.c…...

大模型概述

大模型属于Foundation Model(基础模型)[插图],是一种神经网络模型,具有参数量大、训练数据量大、计算能力要求高、泛化能力强、应用广泛等特点。与传统人工智能模型相比,大模型在参数规模上涵盖十亿级、百亿级、千亿级…...

【CSS3】完整修仙功法

目录 CSS 基本概念CSS 的定义CSS 的作用CSS 语法 CSS 引入方式内部样式表外部样式表行内样式表 选择器基础选择器标签选择器类选择器id 选择器通配符选择器 画盒子文字控制属性字体大小字体粗细字体倾斜行高字体族font 复合属性文本缩进文本对齐文本修饰线文字颜色 复合选择器后…...

C++ 的 if-constexpr

1 if-constexpr 语法 1.1 基本语法 ​ if-constexpr 语法是 C 17 引入的新语法特性,也被称为常量 if 表达式或静态 if(static if)。引入这个语言特性的目的是将 C 在编译期计算和求值的能力进一步扩展,更方便地实现编译期的分支…...

【电气设计】接地/浮地设计

在工作的过程中,遇到了需要测量接地阻抗的情况,组内讨论提到了保护接地和功能接地的相关需求。此文章用来记录这个过程的学习和感悟。 人体触电的原理: 可以看到我们形成了电流回路,导致触电。因此我们需要针对设备做一些保护设计…...

Gone v2 配置管理3:连接 Nacos 配置中心

🚀 发现 gone-io/gone:一个优雅的 Go 依赖注入框架!💻 它让您的代码更简洁、更易测试。🔍 框架轻量却功能强大,完美平衡了灵活性与易用性。⭐ 如果您喜欢这个项目,请给我们点个星!&a…...

深度强化学习中的深度神经网络优化策略:挑战与解决方案

I. 引言 深度强化学习(Deep Reinforcement Learning,DRL)结合了强化学习(Reinforcement Learning,RL)和深度学习(Deep Learning)的优点,使得智能体能够在复杂的环境中学…...

浅拷贝与深拷贝

浅拷贝和深拷贝是对象复制中的两种常见方式,它们在处理对象的属性时有本质的区别。 一. 浅拷贝(Shallow Copy) 浅拷贝是指创建一个新对象,然后将当前对象的非静态字段复制到新对象中。如果字段是值类型的,那么将复制字…...

macOS 安装 Miniconda

macOS 安装 Miniconda 1. Quickstart install instructions2. 执行3. shell 上初始化 conda4. 关闭 终端登录用户名前的 base参考 1. Quickstart install instructions mkdir -p ~/miniconda3 curl https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-arm64.sh -o…...

分布式限流方案:基于 Redis 的令牌桶算法实现

分布式限流方案:基于 Redis 的令牌桶算法实现 前言一、原理介绍:令牌桶算法二、分布式限流的设计思路三、代码实现四、方案优缺点五、 适用场景总结 前言 在分布式场景下,接口限流变得更加复杂。传统的单机限流方式难以满足跨节点的限流需求…...

OpenHarmony子系统开发 - 电池管理(二)

OpenHarmony子系统开发 - 电池管理(二) 五、充电限流限压定制开发指导 概述 简介 OpenHarmony默认提供了充电限流限压的特性。在对终端设备进行充电时,由于环境影响,可能会导致电池温度过高,因此需要对充电电流或电…...

Cocos Creator版本发布时间线

官网找不到,DeepSeek给的答案,这里做个记录。 Cocos Creator 1.x 系列 发布时间:2016 年 - 2018 年 1.0(2016 年 3 月): 首个正式版本,基于 Cocos2d-x 的 2D 游戏开发工具链,集成可…...

修形还是需要再研究一下

最近有不少小伙伴问到修形和蜗杆砂轮的问题,之前虽然研究过一段时间,但是由于时间问题放下了,最近想再捡起来。 之前计算的砂轮齿形是一整段的,但是似乎这种对于有些小伙伴来说不太容易接受,希望按照修形的区域进行分…...

Java面试黄金宝典11

1. 什么是 JMM 内存模型 定义 JMM(Java Memory Model)即 Java 内存模型,它并非真实的物理内存结构,而是一种抽象的概念。其主要作用是规范 Java 虚拟机与计算机主内存(Main Memory)之间的交互方式&#x…...

华为p10 plus 鸿蒙2.0降级emui9.1.0.228

需要用到的工具 HiSuite Proxy V3 华为手机助手11.0.0.530_ove或者11.0.0.630_ove应该都可以。 官方的通道已关闭,所以要用代理,127.0.0.1端口7777 https://www.firmfinder.ml/ https://professorjtj.github.io/v2/ https://hisubway.online/articl…...

高速开源镜像站网址列表2503

高速开源镜像站网址列表 以下是国内常用的高速开源镜像站网址列表,涵盖企业和教育机构的主要站点,适用于快速下载开源软件和系统镜像: 一、企业镜像站 阿里云镜像站 地址:https://mirrors.aliyun.com/ 特点:覆盖广泛…...

Python----计算机视觉处理(Opencv:绘制图像轮廓:寻找轮廓,findContours()函数)

一、轮廓 轮廓是图像中目标物体或区域的外部边界线或边界区域,由一系列相连的像素构成封闭形状,代表了物体的基本外形。与边缘不同,轮廓是连续的,而边缘则不一定是连续的。 轮廓与边缘的区别: 轮廓是一组连续的点或线…...

python --face_recognition(人脸识别,检测,特征提取,绘制鼻子,眼睛,嘴巴,眉毛)/活体检测

dlib 安装方法 之前博文 https://blog.csdn.net/weixin_44634704/article/details/141332644 环境: python==3.8 opencv-python==4.11.0.86 face_recognition==1.3.0 dlib==19.24.6人脸检测 import cv2 import face_recognition# 读取人脸图片 img = cv2.imread(r"C:\U…...

【测试工具】如何使用 burp pro 自定义一个拦截器插件

在 Burp Suite 中,你可以使用 Burp Extender 编写自定义拦截器插件,以拦截并修改 HTTP 请求或响应。Burp Suite 支持 Java 和 Python (Jython) 作为扩展开发语言。以下是一个完整的流程,介绍如何创建一个 Burp 插件来拦截请求并进行自定义处理…...

51单片机和STM32 入门分析

51单片机和STM32是嵌入式开发中两种主流的微控制器,它们在架构、性能、应用场景等方面存在显著差异。以下是两者的对比分析及选择建议: 1. 51单片机与STM32的定义与特点 51单片机 定义:基于Intel 8051内核的8位微控制器,结构简单…...

python暴力破解html表单

import requests import time# 目标URL url "http://192.168.3.101/pikachu/vul/burteforce/bf_form.php" # 请替换为实际的目标URL# 已知的用户名 username "admin"# 密码字典文件路径 password_file "passwords.txt"# 伪造请求头&#xff…...

DeepSeek+RAG局域网部署

已经有很多平台集成RAG模式,dify,cherrystudio等,这里通过AI辅助,用DS的API实现一个简单的RAG部署。框架主要技术栈是Chroma,langchain,streamlit,答案流式输出,并且对答案加上索引。支持doc,docx,pdf,txt。…...

流影---开源网络流量分析平台(一)(小白超详细)

目录 流影介绍 一、技术架构与核心技术 二、核心功能与特性 流影部署 流影介绍 一、技术架构与核心技术 模块化引擎设计 流影采用四层模块化架构:流量探针(数据采集)、网络行为分析引擎(特征提取)、威胁检测引擎&…...

在IDEA中快速注释所有console.log

在IDEA中快速注释所有console.log 在前端IDEA中,快速注释所有console.log语句可以通过以下步骤实现2: 打开要修改的文件。使用快捷键CtrlF打开搜索框。点击打开使用正则搜索的开关或者通过AltR快捷键来打开。在搜索框输入[]*console.log[]*,…...

python全栈-前端

python全栈-前端 文章目录 HTML标签段落p、换行br、水平线hr图片img路径src超文本链接a超链接之锚点href#id文本有序列表ol无序列表ul自定义列表表格table表格属性单元格合并 表单Forminput标签HTML5新增type属性HTML5新增常用属性 实体字符块元素与行内元素/内联元素容器元素d…...

基于PySide6与pycatia的CATIA绘图文本批量处理工具开发实践

引言 在CAD软件二次开发领域,CATIA的自动化处理一直存在开发门槛高、接口复杂等痛点。本文基于Python生态,结合PySide6 GUI框架与pycatia接口库,实现了一套高效的绘图文本批量处理工具。该工具支持背景视图文本批量处理和交互式文本选择处理…...

Jenkins 集成 SonarQube 代码静态检查使用说明

环境准备 Jenkins 服务器 确保 Jenkins 已安装并运行(推荐 LTS 版本)。安装插件: SonarQube Scanner for Jenkins(用于集成 SonarQube 扫描)NodeJS Plugin(可选,用于 JavaScript 项目&#xff0…...

pytorch构建线性回归模型

仅仅用于自己记录pytorch学习记录 线性回归模型 (1)准备数据集 数据:三个数据x[x1,x2,x3] y[y1,y2,y3] import torch #线性回归,我们使用三组数据,分别是(1,2),(2,4&a…...

本地部署 LangManus

本地部署 LangManus 0. 引言1. 部署 LangManus2. 部署 LangManus Web UI 0. 引言 LangManus 是一个社区驱动的 AI 自动化框架,它建立在开源社区的卓越工作基础之上。我们的目标是将语言模型与专业工具(如网络搜索、爬虫和 Python 代码执行)相…...

skynet网络包库(lua-netpack.c)的作用解析

目录 网络包库(lua-netpack.c)的作用解析1. 数据包的分片与重组2. 网络事件处理3. 内存管理4. 数据打包与解包 动态库(.so)在 Lua 中的使用1. 编译为动态库2. Lua 中加载与调用(1) 加载模块(2) 核心方法(3) 使用示例 3. 注意事项 …...

XXL-Job 二次分片是怎么做的?有什么问题?怎么去优化的?

XXL-JOB二次分片机制及优化策略 二次分片实现原理 XXL-JOB的二次分片是在分片广播策略的基础上,由开发者自行实现的更细粒度数据拆分。核心流程如下: 初次分片:调度中心根据执行器实例数量(总分片数n)分配分片索引i&…...

零基础本地部署 ComfyUI+Flux.1 模型!5 分钟搭建远程 AI 绘图服务器(保姆级教程)

文章目录 前言1. 本地部署ComfyUI2. 下载 Flux.1 模型3. 下载CLIP模型4. 下载 VAE 模型5. 演示文生图6. 公网使用 Flux.1 大模型6.1 创建远程连接公网地址 7. 固定远程访问公网地址 前言 在如今这 AI 技术一路火花带闪电、疯狂往前冲的时代,图像生成模型那可不再是…...

ABC398题解

A 算法标签: 模拟 #include <iostream> #include <algorithm> #include <cstring>using namespace std;const int N 110;int main() {ios::sync_with_stdio(false);cin.tie(0), cout.tie(0);int n;cin >> n;string res;if (n % 2) {int mid n / 2;f…...

数据通信——计算机基础

通信系统的组成 通信系统是指从一个地方向另外一个地方传递和交换信息&#xff0c;实现信息传递所需的一切技术设备和传输媒体的总和。通信系统一般由信源、发送设备、信道、接收设备、信宿以及噪声源组成&#xff0c;以下是各部分的具体介绍&#xff1a; 信源 信源是产生各…...

量子计算与人工智能的融合:下一代算力革命

1. 引言&#xff1a;算力需求的飞速增长与量子计算的潜力 在信息技术飞速发展的今天&#xff0c;人工智能&#xff08;AI&#xff09;已经渗透到我们生活的方方面面&#xff0c;从智能助手到自动驾驶&#xff0c;再到医疗诊断&#xff0c;AI 的应用场景日益广泛。然而&#xf…...

神经网络解决非线性二分类

这份 Python 代码实现了一个简单的神经网络&#xff0c;用于解决复杂的非线性二分类问题。具体步骤包含生成数据集、定义神经网络模型、训练模型、测试模型以及可视化决策边界。 依赖库说明 python import numpy as np import matplotlib.pyplot as plt from sklearn.datase…...

nuxt3网站文章分享微信 ,QQ功能

1.安装 npm install qrcode --save-dev 2.组件使用 <div class"share"><div style"line-height: 69px; color: #fff;width: 100px;"><p style"text-align: center;">分享:</p></div><div click"shareToMi…...

深入理解Spring框架:核心概念与组成剖析

引言 在Java企业级开发领域&#xff0c;Spring框架无疑是当之无愧的王者。自2003年首次发布以来&#xff0c;Spring凭借其强大的功能、高度的灵活性和卓越的扩展性&#xff0c;已成为构建大型企业应用程序的首选框架。本文将深入探讨Spring框架的核心概念与多样组成部分&#…...

Ubuntu22.04美化MacOS主题

安装Tweaks 参考Ubuntu 22.04 桌面美化成Mac风格这篇更好点 sudo apt install gnome-tweaks gnome-shell-extensions -y安装macos主题 git clone https://github.com/vinceliuice/WhiteSur-gtk-theme.git # 进到文件目录 ./install.sh -t all -N glassy sudo ./tweaks.sh -g…...

MySQL: 创建两个关联的表,用联表sql创建一个新表

MySQL: 创建两个关联的表 建表思路 USERS 表&#xff1a;包含用户的基本信息&#xff0c;像 ID、NAME、EMAIL 等。v_card 表&#xff1a;存有虚拟卡的相关信息&#xff0c;如 type 和 amount。关联字段&#xff1a;USERS 表的 V_CARD 字段和 v_card 表的 v_card 字段用于建立…...

JavaScript 中for...in和for...of循环的原理区别,在遍历对象和数组时分别如何使用

大白话JavaScript 中for…in和for…of循环的原理区别&#xff0c;在遍历对象和数组时分别如何使用 嘿&#xff0c;朋友&#xff01;咱来唠唠 JavaScript 里 for...in 和 for...of 这两种循环的事儿。它们就像是两个不同的小帮手&#xff0c;能帮你在对象和数组里溜达溜达&…...

图解AUTOSAR_SWS_WatchdogInterface

AUTOSAR Watchdog Interface (WdgIf) 详解 AUTOSAR经典平台看门狗接口模块技术详解 目录 1. 概述 1.1 WdgIf模块的作用1.2 WdgIf在AUTOSAR中的位置2. 架构设计 2.1 WdgIf架构概览2.2 接口设计2.3 序列设计3. 配置详解 3.1 配置参数3.2 配置结构3.3 配置类型4. 总结 4.1 主要特点…...

快速搭建yolo测试环境,超简明的神经网络训练说明书

1 快速搭建yolo测试环境 相对于更早的版本&#xff0c;v5是比较舒服的&#xff0c;直接把仓库拉下来就行&#xff0c;不用单独搞测试脚本和权重文件 $ git clone https://github.com/ultralytics/yolov5.git然后就是切到目录下安装依赖的第三方库&#xff1a; $ cd yolov5 $…...

如何在IDEA中借助深度思考模型 QwQ 提高编码效率?

通义灵码上新模型选择功能&#xff0c;不仅引入了 DeepSeek 满血版 V3 和 R1 这两大 “新星”&#xff0c;Qwen2.5-Max 和 QWQ 也强势登场&#xff0c;正式加入通义灵码的 “豪华阵容”。开发者只需在通义灵码智能问答窗口的输入框中&#xff0c;单击模型选择的下拉菜单&#x…...

探索 Ollama:开源大语言模型平台的无限可能​

在人工智能的快速发展进程中&#xff0c;大语言模型扮演着至关重要的角色。Ollama 作为一个开源的大语言模型平台&#xff0c;正逐渐崭露头角&#xff0c;为广大开发者和爱好者带来了全新的体验。它允许用户在本地环境中轻松地运行、创建和共享大型语言模型&#xff0c;极大地降…...

clickhouse多条件查询

安装包 infi.clickhouse-orm 2.1.3建表 create table test.test (name String,age UInt32,birthday Date32,sex UInt8 ) engineMergeTree() order by (name,sex)insert into test.testvalues (aa,34,1991-01-19,1), (cc,30,1994-01-19,0), (haha,31,1994-02-19,0);多条件查询…...

信息的度量

系列文章目录 文章目录 系列文章目录一、离散消息的信息量1.自信息的引入2.自信息定义 二、离散信源的平均信息量---信息熵1.信息熵定义 一、离散消息的信息量 1.自信息的引入 通信的本质是传递信息&#xff0c;为了定量表征信息的度量&#xff0c;引入自信息量的概念。事件包…...

ffmpeg+QOpenGLWidget显示视频

​一个基于 ‌FFmpeg 4.x‌ 和 QOpenGLWidget的简单视频播放器代码示例&#xff0c;实现视频解码和渲染到 Qt 窗口的功能。 1&#xff09;ffmpeg库界面&#xff0c;视频解码支持软解和硬解方式。 硬解后&#xff0c;硬件解码完成需要将数据从GPU复制到CPU。优先采用av_hwf…...

从零开始实现 C++ TinyWebServer 项目总览

文章目录 引言Web Server 概念如何实现高性能 WebServer&#xff1f;基础网络通信I/O 多路复用技术并发处理事件处理模式其他优化策略&#xff08;未实现&#xff09; 主要功能模块BufferLogSqlConnectPoolHttpRequestHttpResponseHttpConnectHeapTimerWebServer 引言 TinyWeb…...