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


概要

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

CNN主要思路快速回顾

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

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

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

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

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

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

其详细工作过程如下:

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

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

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

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

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

这里有两个要注意的点:

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

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

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

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

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

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

其工作过程如下:

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

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

相关推荐
2601_962177301 分钟前
小白安装Claude Code完整教程:Windows从零装好并接入Crazyrouter(附403解决方法)
人工智能·深度学习·目标检测·机器学习·数据挖掘
m4Rk_4 分钟前
【论文阅读】Agent 记忆机制(82):ReasoningBank——从成功与失败经验中沉淀可复用的推理记忆
论文阅读·人工智能·学习·开源·github
XMAIPC_Robot4 分钟前
为什么大型储能需要边缘 AI 协调控制器?RK3588+FPGA 高速采集方案
人工智能·嵌入式硬件·fpga开发·arm+fpga·rk3588+fpga·协调控制器
xx_xxxxx_6 分钟前
论文阅读-CoTTA
人工智能·深度学习·机器学习
RPAdaren13 分钟前
金融政企高合规场景,该选现场编排还是流程库调用型 AI Agent
人工智能
泥人张16 分钟前
踩坑无数换来的教训:指挥AI开发App,这几点你必须知道
人工智能
蓝速科技18 分钟前
政务自助终端信创选型与无人值守落地方案
android·大数据·数据库·人工智能·科技·技术分享·政务
“AI国潮设计-小江”20 分钟前
[AIGC实战] 基于Stable Diffusion的潮汕非遗IP自动化生成工作流(附Python批量处理脚本)
开发语言·人工智能·python·prompt·aigc
szxinmai主板定制专家24 分钟前
RK3576+CODESYS+RK182X+FPGA异构架构:半导体精密设备一体化控制器方案
人工智能·fpga开发·架构·rk3576+codesys
EatFan31 分钟前
GitHub Trending 三连观察:AI 编码智能体进入“周边生态”竞争阶段
人工智能·驱动开发·github·mcp·superpowers·github trending·spec kit