BP神经网络和CNN公式推导

CNN理论基础
CNN基本结构

图一 CNN基本结构
在这里插入图片描述

CNN卷积神经网络的构成,主要由输入层,卷积层,池化层,全连接层,输出层等。
(1)输入层:计算机将输入层理解为若干矩阵。在数据输入前,通常需要进行预处理操作,1.是为了防止输入数据单位不一样,网络收敛较慢。2.如果所选的激活函数有值域限制,必须将网络训练的目标数据映射到激活函数值域。
进行数据预处理的方式
1.去均值(将输入数据的各个维度中心化到0)
将数据的每一维特征都减去平均值。在numpy 中 X -= np.mean(X, axis = 0)
2.标准化(将输入数据的各个维度的幅度标准化到同样范围)
归一化数据,使数据在相同尺度。 在numpy 中 X /= np.std(X, axis = 0)
3.PCA \ 白化(用PCA降维,即去掉特征与特征之间的相关性;在PCA基础 上对转换后的数据每个特征轴上的幅度标准化为白化)首先均值化数据,然后求协方差矩阵。
(2)卷积层:对于一张输入图片, 将其转化为矩阵, 矩阵的元素为对应的像素值. 转换后得到的矩阵与卷积核(也称滤波器)矩阵进项卷积操作。在输入图片的矩阵中,找到一个尺寸和卷积核矩阵尺寸相同的矩阵,将两者对应位置的元素相乘相加得到的标量作为新矩阵(也称feature map)的一个元素,并放在对应位置上完成一次卷积操作。
在这里插入图片描述

                 图二 卷积操作

具体操作如下:假如输入矩阵A=[1 1 1 0 0;0 1 1 1 0;0 0 1 1 1;0 0 1 1 0;0 1 1 0 0];卷积核B=[1 0 1;0 1 0;1 0 1];则可以得到一个3×3的feacher map第一个元素是:1×1+0×1+1×1+0×0+1×1+0×1+0×1+0×0+1×1=4。以此类推得到矩阵
[4 3 4;2 4 3;2 3 4],如下图所示。
卷积核可以根据需要调整滑动的幅度,如果出现无法恰好到达边缘的情况可在输入矩阵的外层补上一层0,可根据需要设定补零的层数. 补零层称为 Zero Padding, 是一个可以设置的超参数, 但要根据卷积核的大小, 步幅, 输入矩阵的大小进行调整, 以使得卷积核恰好滑动到边缘。
如果输入的是一组矩阵,例如输入一组“RGB”。 这时卷积核也不再是一层的, 而要变成相应的深度.如果使用多个卷积核,各个卷积核产生的feachermap“相互叠加”得到一个新的矩阵。
(3)池化层:池化又叫下采样,池化过程也可以理解为存在着一个滑动核(也称滑动窗口),它的存在是为了降低数据量。常用的方式有:Max Pooling—最大值池化,Avearage pooling(也称 Mean Pooling)—均值池化。具体如下:
在这里插入图片描述

图三 max pooling
滑动核是2×2的矩阵,第一次池化与上图中feachermap的对应位置重合。取4个元素的最大值作为滑动核的第一个元素,再整体向右移动一个单位。完成一次max pooling操作。
在这里插入图片描述

图四 Average pooling
同样地,滑动核是2×2的矩阵,第一次池化与上图中feachermap的对应位置重合。取4个元素的平均值作为滑动核的第一个元素,再整体向右移动一个单位。完成一次Average pooling操作。
(4)全连接层:全连接层的目的是将网络学习到的特征映射到样本的标记空间中,将前面经过多次卷积后高度抽象化的特征进行整合,然后可以进行归一化,对各种分类情况都输出一个概率,之后的分类器(Classifier)可以根据全连接得到的概率进行分类。
(5)输出层:输出层主要准备做好最后目标结果的输出。使用Softmax激活函数来做图像识别的分类。
前向传播
输入:包括图片样本,CNN模型的层数和所有隐藏层的类型(卷积层+卷积层,或者卷积层+卷积层+池化层的组合等)。
对于卷积层,要定义卷积核的大小K,卷积核子矩阵的维度F,填充大小P,步幅S。
对于池化层,要定义池化区域大小k和池化标准(MAX或Average)。
对于全连接层,要定义全连接层的激活函数(输出层除外)和各层的神经元个数(一种关于神经元的理解是每个矩阵的元素可以看成一个神经元)。
根据输入层的填充大小P,填充原始图片的边缘,得到输入张量
初始化所有隐藏层的参数W,b
for l=2 to L−1:
如果第l层是卷积层,则输出为al=ReLU(zl )=ReLU(a(l-1)*Wl+b^l )
如果第l层是池化层,则输出为al=pool⁡(a(l-1) ),这里的pool指按照池化区域大小k和池化标准将输入张量缩小的过程
如果第l层是全连接层,则输出为al=σ(zl )=σ(W^l a(l-1)+bl )
对于输出层第L层: aL=softmax⁡(zL )=softmax⁡(W^L a(L-1)+bL )

接着,是反向传播,我写word文档的时候,公式用的是mathtype弄到博客里面还不太会,上截图了,需要源文档的欢迎私信博主啊(博主这有CNN,RNN,LSTM,transformer)。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机视觉 | 面试题:12、手动推导反向传播公式BP

问题 现在才意识到,卷积神经网络在不同的层上的反向传播的计算公式不一样,之前一直按照全连接层的那种简单反向传播去理解了。 全连接层反向传播 在数据表示上,将全连接神经网络的每一层神经元都表示为一个列向量。每一层的神经元,会将上一层神经元的输出作为输入,通过乘…

Bp算法公式推导推导-详解

前言 学习深度学习我们应该从Bp开始,一下是学习路径 如果我们把深度学习比喻一棵大树,Bp相当于根,LeNet相当于茎,GAN,RNN,CNN相当于树叶. Bp 神经网络的简单理解 bp是 Back Propagation 的简写 ,意思是反向传播。而神经网络,听着高大上,其实…

人工神经网络推理机制,bp神经网络公式推导

Recurrent network 的backpropagation公式 怎么样推导出来 反向传播算法(Backpropagation)是目前用来训练人工神经网络(ArtificialNeuralNetwork,ANN)的最常用且最有效的算法。 其主要思想是:&#xff08…

BP神经网络理解及公式推导

BP神经网络理解及公式推导 __508任务 仅个人学习记录使用,可能有误 一、人工神经网络 人工神经网络(ANN)是一种旨在模仿人脑结构及其功能的由多个非常简单的处理单元彼此按某种方式相互连接而形成的计算机系统,该系统靠其状态对…

特斯拉面试,工控经典PLC题目:一键启动功能实现解法分析,少个坑,给自己多个机会

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、问题分析:二、模拟运行三、还有没有更简单的 前言 PLC 面试经典题目,一键启动功能:单个按钮按下一次控制灯亮起&#x…

使用调色板修改png图片

这个算法是参考一位高人的文章,直接读取并修改png格式图片的调色板,然后生成新的调色板替代原来的。
这样可以实现游戏中常见的变色效果,可以解决游戏容量有限,不能存放太多精灵图片的问题。 具体过程其实并不复杂,大…

android图像处理系列之三--图片色调饱和度、色相、亮度处理

原图: 处理后: 下面贴代码: 一、图片处理层: package com.jacp.tone.view;import java.util.ArrayList;import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; import android.gra…

图片调色学习

色相环 色相混合正红(0)正黄(60),透明度为(50%)即红黄等比例混合橙色(30) (060)/230 真实调整透明度混合出并不一定为两者均值的色相,需要选择不同的混合方法…

图片颜色调节

云区 粉色云彩: 粉色云彩: 打开星图,清新滤镜马卡龙, 调节打开智能优化, 降低光感-100(根据图片调)、 色温最高、 色调最高, 增加结构让云更清晰, 增加饱和度。 晚霞&a…

excel如何快速将英文表格翻译为中文表格

1.打开excel,如下图想要快速将英文表格翻译为中 2.首先我们全选要翻译的表格区域单元格,接着点击【DIY工具箱】 ​ 3.点击【翻译】,选择【有道翻译】 4.接着鼠标点击【开始】 5.最后点击【确定】即可 6.完成效果如下图

CV大模型应用:Grounded-Segment-Anything实现目标分割、检测与风格迁移

Grounded-Segment-Anything实现目标分割、检测与风格迁移 文章目录 Grounded-Segment-Anything实现目标分割、检测与风格迁移一、Segment-Anything介绍二、Grounded-Segment-Anything1、简介2、测试 一、Segment-Anything介绍 代码链接:https://github.com/faceboo…

计算机视觉的应用6-利用VGG模型做毕加索风格图像迁移

大家好,我是微学AI,今天给大家介绍一下计算机视觉的应用5-利用VGG模型做毕加索风格图像迁移,本文将利用VGG模型实现毕加索风格图像迁移的方法。首先,我们将简要说明图像风格迁移的原理,然后使用PyTorch框架&#xff0c…

如何让ChatGPT帮我们提高开发效率

3 天前 ChatGPT云炬学长 ​关注 ChatGPT非常可怕!才不到短短的几个月时间有上亿用户。 火爆程度以至于官方都不得不暂停plus用户的升级,以缓解压力。 ChatGPT能够发展那么快,确实是因为他真的很强大! 能帮我们做ppt、帮我们做…

《联众》并购案细节公布,海虹海外公司浮出水面(ZT)

《联众》一夜身价暴增到2亿美金,《海虹>以及联众创始人成功套现1亿美金!这是中韩国际资本合作的典范?还是海外资本的大举进攻的信号?或者就是互联网第二次井喷的前奏?在历史给予答案之前,让我们理顺并购…

微信授权登录:移动端[unionid](一)

专栏简介 💒个人主页 📄本栏目录 📖心灵鸡汤📖 生活中其实没有绝境,绝境在于你自己的心没有打开。 ✍相关博文✍ 微信分享开发:准备工作微信PC端扫码登录 如果你有…

第三方对接-微信登陆对接

对接第三方之微信登陆 由于目前市面上社交软件的使用排行来看,基本上微信一马当先。因此在大多数应用上都会内置微信登陆的场景,这时候我们就非常有必要熟悉微信的登录流程。 微信登陆 微信官方开发文档说明目前移动应用上微信登录仅支持原生登陆方式…

对三大数学软件 Mathematica 、Maple 、MATLAB 的小测试比较

今天一时兴起,突然想试试几个数学软件的功能,就测试了一个不定积分,看看哪个算得最好,最简洁。 计算: 以下计算结果我都一一验算了。 1).先在Mathematica(我用的是在线的wolframalpha)中计算,结…

【计算机图形学(译)】 二、各种各样的数学

【计算机图形学(译)】 二、各种各样的数学 2 各种各样的数学 Miscellaneous Math2.1 集合和映射 Sets and Mapping2.1.1 反向映射 Inverse Mappings2.1.2 区间 Intervalsoft2.1.3 对数 Logarithms 2.2 解二次方程 Solving Quadratic Equations2.3 三角学 Trigonomet…

和托托一起学计算机图形学(一)-初识计算机图形学

文章目录 初识计算机图形学一、计算机科学与视觉信息处理二、计算机图形学的应用三、总结 数字图像基础一、像素二、RGB和CMY颜色模型三、颜色编码四、查色表五、图像文件六、总结 初识计算机图形学 一、计算机科学与视觉信息处理 计算机图形学:建模(建…

如何使用 ChatGPT 掌握讲故事的艺术

想出一个故事情节,虽然有时很有趣,但可能是一个耗时的过程。或者你可能会发现自己遇到了作家的障碍——每个作家存在的祸根。 这个重要的灵感火花是 ChatGPT 可以提供帮助的地方。OpenAI流行的文本生成聊天机器人可以协助写作过程的任何部分&#xff0c…