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

cnn突破七(四层bpnet网络公式与卷积核bpnet公式相关)

我们要有一个概念,就是卷积核就是我们的w1,w12,w2

那么我们的5*5卷积核怎么表达,当他在14*14的图像中流动时,对应的像素也在变化

这个和我们的上面w1,w12,w2不同,因为这几个都是全连接,比如,w1【0,0】对应图像第一像素和hi的第一个。

假定我们给5*5卷积核起名w1cnn,图像第一像素和hi的第一个对应w1cnn【0】,那么5*5卷积核走到第二个像素又用到了w1cnn【0】,w1cnn应该有25个,即w1cnn【0-24】

我们backward时,求\frac{\partial E}{\partial w1cnn[0]}应该对应哪个像素?

我们先用这一个5*5卷积核,捋一下forward:

14*14(w1cnn【25】)-》10*10(2*2池化,取最大)-》5*5-》80-》10,期望d【10】

14*14图像x第一个像素即x【0】所在位置5*5方阵像素与5*5的卷积核(w1cnn【25】)生成了10*10图像temphicnn的第一个像素。

我们用公式描述一下:

temphicnn【0】+=x[i=j=0,5*5方阵像素]*w1cnn[0-24],

temphicnn【1】+=x[i=1,j=0,5*5方阵像素]*w1cnn[0-24],

。。。。。。。。

这样重复下去,我们就有100个temphicnn【0-99】图像,来自14*14图像x每一个像素卷积。

然后temphicnn【0-99】图像2*2池化,取最大,变成25个像素图像hicnn【0-24】。

这里要注意的是,我们要记录下这25个最大值图像,在10*10图像中的位置,以及在14*14图像中开始卷积的位置,我找到一个公式:如果在25个最大值图像中,i=3;j=4,池化时记录最大位置在(1,0)

那么在10*10中位置(j*2+0)*10+i*2+1

那么在14*14中开始卷积的位置(j*2+0)*14+i*2+1

这有什么用,都是为backward时方便,找哪一个x【?】值

当我们图像变成25hicnn,使用sigmod函数,得到25个hocnn,接下来就变成三层bpnet,即25-》80-》10

到了这里,我们看的就很明显:一个卷积核的cnn很像我们的四层bpnet神经网络。

四层网络backward时,公式:

 \frac{\partial E}{\partial w1[i,j]}=\sum_{k=0}^{9}\frac{\partial E}{\partial yo[k]}\frac{\partial yo[k]}{\partial yi[k]}\frac{\partial yi[k]]}{\partial h2o[m]}\frac{\partial h2o[m]}{\partial h2i[m]}\frac{\partial h2i[m]}{\partial ho[j]}\frac{\partial ho[j]}{\partial hi[j]}\frac{\partial hi[j]}{\partial w1[i,j]}

=\sum_{k=0}^{9}(yo[k]-d[k])*ds(yo[k])*w2【m,k】*ds(h2o[m])*w12【j,m】*ds(ho[j])*x[i]

我们这个卷积核公式怎么写?

 \frac{\partial E}{\partial w1cnn[i]}=\sum_{k=0}^{9}\frac{\partial E}{\partial yo[k]}\frac{\partial yo[k]}{\partial yi[k]}\frac{\partial yi[k]]}{\partial h2o[m]}\frac{\partial h2o[m]}{\partial h2i[m]}\frac{\partial h2i[m]}{\partial hocnn[j]}\frac{\partial hocnn[m]}{\partial hicnn[j]}\frac{\partial hicnn[j]}{\partial w1cnn[i]}

=\sum_{k=0}^{9}(yo[k]-d[k])*ds(yo[k])*w2【m,k】*ds(h2o[m])*w12【j,m】*ds(hocnn[j])*x[i->?]

从上面分析,我们从j就能推出i,通过公式(h*2+0)*14+w*2+1,所以x【?】中这个问号就能定下来!

当你习惯了全连接,突然变成这一种,一般情况思路转不过来!

法宝就一个,仔细的分析从前到后forward,从后到前backward,当你熟悉起来,就ok了!

公式推导,到了,就是,结果很明显,想是想不出来的!

相关文章:

cnn突破七(四层bpnet网络公式与卷积核bpnet公式相关)

我们要有一个概念,就是卷积核就是我们的w1,w12,w2 那么我们的5*5卷积核怎么表达,当他在14*14的图像中流动时,对应的像素也在变化 这个和我们的上面w1,w12,w2不同,因为这几个都是全…...

PHP中的PEAR是什么

PHP中的PEAR是PHP Extension and Application Repository的缩写,即PHP扩展与应用库。它是一个PHP扩展及应用的代码仓库,提供了许多常用的PHP库和工具,涵盖了页面呈现、数据库访问、文件操作、数据结构、缓存操作、网络协议、WebService等许多…...

(C语言贪吃蛇)4.贪吃蛇地图优化及算法说明

上节代码示例&#xff1a; #include <curses.h>void initNcurse() {initscr();keypad(stdscr,1); }void gamePic() {int hang;int lie;for(hang 0;hang < 20;hang ){if(hang 0){for(lie 0;lie < 20;lie ){printw("--");}printw("\n");for(…...

国外电商系统开发-运维系统拓扑布局

点击列表中设备字段&#xff0c;然后定位到【拓扑布局】中&#xff0c;可以看到拓扑发生了变化 再回头&#xff0c;您再次添加一个服务器到系统中&#xff0c;并且选择该服务器的连接节点为您刚才创建的“SDN路由器”&#xff0c;保存后&#xff0c;您可以看到这个服务器连接着…...

使用winsock和ip相关指令重置Window网络配置

netsh winsock reset 和 netsh int ip reset 是 Windows 中用于修复网络问题的命令。它们分别用于重置 Winsock 和 TCP/IP 网络配置&#xff0c;以解决可能由于配置错误或网络堆栈损坏而导致的网络连接问题。 1. netsh winsock reset 1.1 作用 重置 Winsock 目录。Winsock 是…...

用AI做电子萌宠,快速涨粉变现

今天给大家分享一个很热门的小副业—AI宠物视频 项目介绍 前一阵刷到一个萌宠账号&#xff0c;爆款率可真高&#xff0c;涨粉可真快呀。 28篇笔记涨粉3.2万&#xff0c;点赞更是达到了十几万。其中有6篇点赞上万。 至于究竟是不是AI其实没那么重要&#xff0c;重要的是&…...

如何在 Axios 中封装事件中心EventEmitter

在 Axios 中封装一个事件中心 EventEmitter 允许你在请求的不同阶段&#xff08;如请求开始、请求成功、请求失败等&#xff09;触发事件。这可以通过创建一个自定义的 Axios 实例&#xff0c;并结合 Node.js 的 events 模块来实现。以下是一个详细的步骤指南和示例代码&#x…...

计算机网络——ftp

在网络通信中&#xff0c;控制连接和数据连接是两种不同类型的连接&#xff0c;它们各自具有特定的功能和用途。 一、控制连接 定义与功能&#xff1a; 控制连接主要用于在通信双方之间传输控制信息&#xff0c;以建立、维护和终止数据连接。它负责协调和管理数据传输的过程&am…...

Redis:set类型

Redis&#xff1a;set类型 set命令SADDSMEMBERSSISMEMBERSCARDSPOPSRANDMEMBERSMOVESREM 集合间操作SINTERSINTERSTORESUNIONSUNIONSTORESDIFFSDIFFSTORE 内部编码intsethashtable 当把一些关联的数据放到一起&#xff0c;就构成一个集合。在Redis中&#xff0c;使用set类型维护…...

九大排序之插入排序

1.前言 插入排序是把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中&#xff0c;直到所有的记录插入完为止&#xff0c;得到一个新的有序序列 。实际中我们玩扑克牌时&#xff0c;就用了插入排序的思想。 本章重点&#xff1a;主要着重的介绍两种插入排序…...

DNABERT: 一个基于 Transformer 双向编码器表征的预训练 DNA 语言模型

本文结合 DNABERT 的原文&#xff0c;主要介绍了&#xff1a; Overview of DNABERT 开发 DNABERT 的背景 DNABERT 的 tokenization DNABERT 的模型架构 DNABERT 的预训练 基于微调 DNABERT 的应用 1. Overview of DNABERT 我们之前介绍了 BERT&#xff0c;它是一个基于 Transfo…...

基于Hive和Hadoop的电商消费分析系统

本项目是一个基于大数据技术的电商消费分析系统&#xff0c;旨在为用户提供全面的电商消费信息和深入的消费行为分析。系统采用 Hadoop 平台进行大规模数据存储和处理&#xff0c;利用 MapReduce 进行数据分析和处理&#xff0c;通过 Sqoop 实现数据的导入导出&#xff0c;以 S…...

记一次炉石传说记牌器 Crash 排查经历

大家好这里是 Geek技术前线。最近在打炉石过程中遇到了HSTracker记牌器的一个闪退问题&#xff0c;尝试性排查了下原因。这里简单记录一下 最近炉石国服回归&#xff1b;由于设备限制&#xff0c;我基本只会在 Mac 上打炉石。并且由于主要打竞技场&#xff0c;所以记牌器是必不…...

精益驱动的敏捷开发

1. 什么是精益&#xff1f;精益能给软件开发带来什么&#xff1f; 精益是一种起源于制造业的管理哲学&#xff0c;尤其是从丰田的生产体系中发展而来。它的核心目标是通过最小化浪费、提高效率和优化流程来实现高效的生产。精益的核心原则包括&#xff1a; 消除浪费&#xff…...

SolidWorks机器转ROS2 URDF

文章目录 开发环境SolidWords插件使用生成urdf文件之后的处理CMakeLists文件修改package.xml变更Launch更改运行 开发环境 Linux系统&#xff1a;Ubuntu 22.04 Ros2版本&#xff1a;humble Solidwords版本&#xff1a;2023 &#xff08;2019以上版本应该都是可以的&#xff09…...

(Linux驱动学习 - 6).Linux中断

一. Linux 中断 API 函数 1.中断号 每个中断都有一个中断号&#xff0c;通过中断号即可区分不同的中断&#xff0c;有的资料也把中断号叫做中 断线。在 Linux 内核中使用一个 int 变量表示中断号。 2.申请中断 - request_irq 函数原型&#xff1a; int request_irq(unsigne…...

SpringBoot驱动的明星周边产品电商解决方案

1系统概述 1.1 研究背景 如今互联网高速发展&#xff0c;网络遍布全球&#xff0c;通过互联网发布的消息能快而方便的传播到世界每个角落&#xff0c;并且互联网上能传播的信息也很广&#xff0c;比如文字、图片、声音、视频等。从而&#xff0c;这种种好处使得互联网成了信息传…...

C++、Ruby和JavaScript

C C最初被称为带类的C, 兼容C的语法&#xff0c;此既是C得以流行的前提&#xff0c;也是C某些语法被捆绑的根源。C的来源于C语言的递增运算符&#xff0c;代表增加&#xff0c;意义为扩展。 C的历史 C类的设计思想来源于Simula. Simula为模拟的意思&#xff0c;被称为最早的面向…...

32单片机 低功耗模式

以下是一个基于STM32的低功耗模式示例代码&#xff0c;展示如何将STM32微控制器置于低功耗模式&#xff0c;并在特定条件下唤醒它。这个示例使用的是STM32 HAL库。 ### 示例代码&#xff1a;进入睡眠模式并使用外部中断唤醒 c #include "stm32f4xx_hal.h" // 函数声明…...

501、二叉搜索树中的众数

1、题目描述 . - 力扣&#xff08;LeetCode&#xff09; 要求&#xff1a;给一个包含重复值的BST&#xff0c;找出并返回BST中的众数(出现频次最高的元素)。 注&#xff1a;如果树中有不止一个众数可以按任意顺序返回&#xff0c;即如果有多个众数多个都要返回。 ps&#xff1…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…...

idea大量爆红问题解决

问题描述 在学习和工作中&#xff0c;idea是程序员不可缺少的一个工具&#xff0c;但是突然在有些时候就会出现大量爆红的问题&#xff0c;发现无法跳转&#xff0c;无论是关机重启或者是替换root都无法解决 就是如上所展示的问题&#xff0c;但是程序依然可以启动。 问题解决…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻

在如今就业市场竞争日益激烈的背景下&#xff0c;越来越多的求职者将目光投向了日本及中日双语岗位。但是&#xff0c;一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧&#xff1f;面对生疏的日语交流环境&#xff0c;即便提前恶补了…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中&#xff0c;我们已经大致实现了rpc服务端的各项功能代…...

基于服务器使用 apt 安装、配置 Nginx

&#x1f9fe; 一、查看可安装的 Nginx 版本 首先&#xff0c;你可以运行以下命令查看可用版本&#xff1a; apt-cache madison nginx-core输出示例&#xff1a; nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装&#xff1b;只需暴露 19530&#xff08;gRPC&#xff09;与 9091&#xff08;HTTP/WebUI&#xff09;两个端口&#xff0c;即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

基础测试工具使用经验

背景 vtune&#xff0c;perf, nsight system等基础测试工具&#xff0c;都是用过的&#xff0c;但是没有记录&#xff0c;都逐渐忘了。所以写这篇博客总结记录一下&#xff0c;只要以后发现新的用法&#xff0c;就记得来编辑补充一下 perf 比较基础的用法&#xff1a; 先改这…...

Nuxt.js 中的路由配置详解

Nuxt.js 通过其内置的路由系统简化了应用的路由配置&#xff0c;使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

PL0语法,分析器实现!

简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...

基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解

JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用&#xff0c;结合SQLite数据库实现联系人管理功能&#xff0c;并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能&#xff0c;同时可以最小化到系统…...