CNN(卷积神经网络)的实现过程详解

3ba55a80f4bd4bb889b69408c3338420.jpg


 

概要

 

在图像处理领域,CNN(卷积神经网络)处于绝对统治地位,但对于CNN具体是如何用神经网络实现的,能找到的介绍要么是一大堆数学公式,要么是大段晦涩的文字说明,读起来很是辛苦,想写好一片完整的而且有深度的文章出来非常难,所以本文适合入门的朋友对CNN的学习和了解。

 

CNN主要思路快速回顾

为了便于大家理解,这里简单回顾一下CNN的主要思路:对于一张M * N像素的图,我们用一个大小为 S * S(如3 * 3)的特征提取器,扫描整个图片,强化图片的重要特征,忽略不重要的细节,得到一个强化了特征的新图:

5baef1a7b4814fcaa9b712e41976e383.png

 不断递归上述过程,就可以逐渐从细节特征(如线条、纹理)中提取出高级特征(如器官、物种),最终完成各种图像处理任务。

图解CNN的神经网络实现过程

a540440389eb4db38c645c488f3e9ffd.png

假设我们有一张3 * 3的图,图中每个像素用一个字母表示:

cf44c905624a48bfb365363a3a01a369.png

 我们的特征提取器为一个2 * 2的矩阵,矩阵每个元素是一个希腊字母:

9de3e9c6756345a482d2085bd90a7051.png

 用特征提取器处理后的图片为:

347ffd8570e94affaa2c0820d9dd458b.png

 其详细工作过程如下:

87a7d52d374c45289c32ea3bd3de8be8.png

 上述工作过程可以表达为以下等式:

d80bddd229834654a458229f95f75017.png

 注意上述等式中的bias参数b在4个等式中都是一样的,可以把b理解为特征提取器的一部分,就像权重参数(α, β, γ, δ)是特征提取器的一部分一样。

上述等式更紧凑的写法为:

fcb3032a0a454bc7b67e23aa18768c4b.png

 上述写法可以直接表示为一个神经网络(连接线对应权重α, β, γ, δ):

4fda7151c1024632bdbe027809030f3e.png

 神经元的激活过程就是权重矩阵和输入矩阵的乘积:

752cdf3c92534c148c754291092a1486.png

 这里有两个要注意的点:

  • 灰色格子的0,代表不可训练的参数,它们在整个训练过程中始终为0

  • 剩下可训练的参数中,很多参数取值是保持相同的,这叫做"共享权重"

权重矩阵的每一行,代表了在图片上对特征过滤器的一次应用,其中的0表示这次应用不会覆盖的像素。

假设我们把取值为0的权重也补充到上面的神经网络图中(用灰色的线表示0权重),就可以得到一个经典的、全连接的神经网络图:

 

4bd940e5136b486fb150cb18d22e48af.png

 去掉颜色和字母,就和熟悉的神经网络示意图一模一样了:

d53951cb941a4605ac2fc524f87f6f83.png

 上面,我们用一个2 * 2的特征提取器把一个3 * 3的图变成了一个2 * 2的图,通过zero-padding和一个3 * 3的特征提取器,我们就可以保持图片大小不变:

cf8a9547c7a34ddd937773dc4fe8771e.png

 其工作过程如下:

34972490b4a04154a2d35fce36d3f36a.png

 而如果不应用zero-padding,则我们只能得到一个1 * 1的结果图:

85f6964551e042158746922e4d2ecd25.png

 

以上就是CNN落地实现为神经网络的过程,欢迎大家阅读,感谢🙏。

 

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

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

相关文章

【开源项目】低代码数据可视化开发平台-Datav

Datav 基本介绍 Datav是一个Vue3搭建的低代码数据可视化开发平台,将图表或页面元素封装为基础组件,无需编写代码即可完成业务需求。 它的技术栈为:Vue3 TypeScript4 Vite2 ECharts5 Axios Pinia2 在线预览 账号: admin 密码: 123123预…

Spring Cloud+Spring Boot+Mybatis+uniapp+前后端分离实现知识付费平台免费搭建

Java版知识付费-轻松拥有知识付费平台 多种直播形式,全面满足直播场景需求 公开课、小班课、独立直播间等类型,满足讲师个性化直播场景需求;低延迟、双向视频,亲密互动,无论是互动、答疑,还是打赏、带货、…

RocketMq 事务消息原理

Rocketmq 事务消息API使用 使用TransactionMQProducer类。 实现TransactionListener 接口覆盖其方法executeLocalTransaction和checkLocalTransaction 即可。 其中executeLocalTransaction 执行本地方法和checkLocalTransaction 事务状态回查。 玩法 简历一张本地事务表&…

回归预测 | MATLAB实现TCN-BiGRU时间卷积双向门控循环单元多输入单输出回归预测

回归预测 | MATLAB实现TCN-BiGRU时间卷积双向门控循环单元多输入单输出回归预测 目录 回归预测 | MATLAB实现TCN-BiGRU时间卷积双向门控循环单元多输入单输出回归预测预测效果基本介绍模型描述程序设计参考资料 预测效果 ![6 基本介绍 1.MATLAB实现TCN-BiGRU时间卷积双向门控循…

实现基于UDP简易的英汉词典

文章目录 实现目标认识相关接口socketbzerobindrecvfromsendto 实现思路和注意事项完整代码Server.hppServer.ccClient.hppClient.cc 运行效果END 实现目标 实现一个服务端和一个客户端,客户端负责发送一个单词,服务端接收到后将翻译后的结果返回发送到…

Android 之 动画合集之帧动画

本节引言: 从本节开始我们来探究Android中的动画,毕竟在APP中添加上一些动画,会让我们的应用变得 很炫,比如最简单的关开Activity,当然自定义控件动画肯定必不可少啦~而Android中的动画 分为三大类,逐帧动画…

了解uuid

目录 一.认识 UUID 二.UUID 会耗尽吗 三.UUID 会重复吗 四.UUID 的版本 五.UUID的应用 六.java 如何生成UUID 一.认识 UUID uuid是经过特定的算法得到的. UUID 是 16 字节 128 位长的数字,通常以 36 字节的字符串表示,示例如下: 3F2…

boardmix AI:让工作效率翻倍的AI智能在线白板软件!

随着ChatGPT热度的飙升,AI逐步深入到各个领域,尤其在技术领域,引发了一场AI的新浪潮,人们谈论的焦点都与AI有关。 AI工具不仅帮助企业节约了成本,还极大提高了生产力。那些尚未融入AI的行业和产品,有着被AI…

OSI 和 TCP/IP 网络分层模型详解(基础)

OSI模型: 即开放式通信系统互联参考模型(Open System Interconnection Reference Model),是国际标准化组织(ISO)提出的一个试图使各种计算机在世界范围内互连为网络的标准框架,简称OSI。 OSI 七层模型 OS…

Windows环境部署安装Chatglm2-6B-int4

chatglm2-6B是最近比较火爆的大模型,可以在消费级显卡上部署使用,适合学习。但是一般人也不一定有那么高的硬件配置,所以部署个int4版本应该是大多数人的最好选择。我就在家里部署起了int4版本的chatglm2-6B,记录一下免得忘了。 …

【AST抽象语法树】结构分析及特性

什么是AST? AST译名抽象语法树(Abstract Syntax Tree),是一种用于表示源代码结构的数据结构。 它在编译器、解析器和静态代码分析等领域中被广泛使用。 AST结构分析 我们利用成熟的astexplorer来进行结构化的比较和分析。可以尝试登录以下网…

树 - 前缀树(Trie Tree)

树 - 前缀树(Trie Tree) 什么是前缀树前缀树的实现节点数据结构定义插入方法●非递归方式●递归方式 查询单词方法●非递归方式●递归方式 查询前缀方法●非递归方式●递归方式 前缀树的复杂度前缀树有哪些应用前缀树的压缩:基数树双数组Trie树(DoubleAr…

探讨ChatGPT的强化学习:AI学习与交互的未来

🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~&#x1f33…

ES6基础知识八:你是怎么理解ES6中Proxy的?使用场景?

一、介绍 定义: 用于定义基本操作的自定义行为 本质: 修改的是程序默认形为,就形同于在编程语言层面上做修改,属于元编程(meta programming) 元编程(Metaprogramming,又译超编程,是指某类计算…

ChatGPT和搜索引擎哪个更好用

目录 ChatGPT和搜索引擎的概念 ChatGPT和搜索引擎的作用 ChatGPT的作用 搜索引擎的作用 ChatGPT和搜索引擎哪个更好用 总结 ChatGPT和搜索引擎的概念 ChatGPT是一种基于对话的人工智能技术,而搜索引擎则是一种用于在互联网上查找和检索信息的工具。它们各自具…

kaggle新赛:Bengali.AI 语音识别大赛赛题解析

赛题名称:Bengali.AI Speech Recognition 赛题链接:https://www.kaggle.com/competitions/bengaliai-speech 赛题背景 竞赛主办方 Bengali.AI 致力于加速孟加拉语(当地称为孟加拉语)的语言技术研究。Bengali.AI 通过社区驱动的…

7p透明屏的制造过程复杂琐屑吗?

7p透明屏是一种新型的显示技术,它可以使屏幕变得透明,让用户可以透过屏幕看到背后的物体。这种技术在科幻电影中经常出现,但现在已经成为现实。 7p透明屏的工作原理是利用液晶显示技术和透明材料。液晶显示技术是一种通过控制液晶分子的排列…

【Qt】安装Qt 5.7.1 MSVC2013 64bit版本的说明

【Qt】安装Qt 5.7.1 MSVC2013 64bit版本的说明 1、背景2、安装Qt 5.7.13、运行Qt Creator 1、背景 刚开始Qt是C库,后来Qt发展就越来越强大了。后来Qt 发展成为一套跨平台C图形用户界面应用程序开发框架。 注意它不但可以开发GUI程序,而且也可用于开发非…

Python怎么将图片转换成base64编码

目录 什么是base64编码 Base64编码的特点 Base64编码的应用 Python怎么将图片转换成base64编码 什么是base64编码 Base64编码是一种将二进制数据转换为ASCII字符的编码方式。它是由MIME(Multipurpose Internet Mail Extensions)规范定义的&#xff0…

怎么清空回收站?3个方法轻松搞定!

有没有大佬知道该怎么清空回收站呀?想把回收站清空了不知道该如何操作!求一个清空方法!感谢大家啦! 电脑的回收站会为我们保存一些删除的数据,如果我们删除文件后意识到这些文件仍然是有用的,可以利用回收站…