卷积神经网络的最佳解释!

简介: CNN由由可学习权重和偏置的神经元组成。每个神经元接收多个输入,对它们进行加权求和,将其传递给一个激活函数并用一个输出作为响应。整个网络有一个损失函数,在神经网络开发过程中的技巧和窍门仍然适用于CNN。

CNN由由可学习权重和偏置的神经元组成。每个神经元接收多个输入,对它们进行加权求和,将其传递给一个激活函数并用一个输出作为响应。整个网络有一个损失函数,在神经网络开发过程中的技巧和窍门仍然适用于CNN。很简单,对吧?

那么,卷积神经网络与神经网络有什么不同呢?

d97756dc2888d0e05a1e950ca2aded706400b44b

和神经网络输入不同,这里的输入是一个多通道图像(在这种情况下是3通道,如RGB)。

在我们深入之前,让我们先了解一下卷积的含义。

卷积

5dc3af3238ed9ffc73a4f1fdafe1debfe32d2c2e

我们用5 * 5 * 3的滤波器滑过整个图像,并在滑动过程中与滑过的图像部分点积。

fb764fc838c0d92d159811e175ee8eb864cf0290

每个点积的结果都是标量。

那么,当我们将整个图像与滤波器进行卷积时会发生什么?

d2e05d2d7ec0786bed3da4928099f966a549d5ab

卷积结果的大小28是怎么来的留给读者思考。(提示:有28 * 28个独特的位置,滤波器可以放在图像上)

现在回到CNN

卷积层是卷积神经网络的重要部分。

a3c21e317ffad5cbaff2fa2db1387af3a888a765

卷积层包含一组独立的滤波器(在所示的例子中是6个)。每个滤波器都与图像独立卷积,最终形成6个形状为28 * 28 * 1的特征图。

假设我们有多个卷积层。然后会发生什么?

a8157a2fe359b066784e2396f649c64d53813d5b

所有这些滤波器都是随机初始化的,并在网络训练过程中学习参数。

下面是训练好的网络的例子。

9c0928ceff172771b7b160275d9d5b2776227295

看看第一层中的滤波器(在这是5 * 5 * 3的滤波器)。通过反向传播,逐渐调整成为彩色碎片和边缘的斑点。当层次变深时,滤波器与先前一层的输出做点积。所以,他们正在用较小的彩色碎片或边缘制作出更大的碎片

对于特定的特征图,每个神经元仅与输入图像的一小块连接,并且所有神经元具有相同的连接权重,这就是CNN与神经网络的最大区别。

参数共享和局部连接

参数共享指的是特定特征图中所有神经元的权重共享。

局部连接是每个神经只与输入图像的一个子集连接(不同于全连接的神经网络)

这有助于减少整个系统中的参数数量,并使计算更加高效。

池化层

池化层是CNN的另一个构建块。

63c18951d676b22c9f6d5a48a67412ef6966841f

其功能是逐步缩小表示空间的大小,以减少网络中的参数和计算量。池化层独立地在每个特征映射上工作。

最常用的方法是最大池化(max pooling)。

82b624a7b798d31fa78fb9a1208c0de76c9f5a18

CNN的典型架构

79027ee900e2719a04aa332aa11268e95f811a1b
我们已经介绍了卷积层(由CONV表示)和池化层(由POOL表示)。

RELU只是一个应用于神经单元的非线性激活函数。

FC是CNN末端的全连接层。全连接层中的神经元与前一层中的所有激活都有完全连接,如常规神经网络中所见,并以相似的方式工作。

CNN架构有许多变化,但正如我之前提到的,基本概念保持不变。


原文发布时间为:2018-08-12

本文来自云栖社区合作伙伴“机器学习算法与Python学习”,了解相关信息可以关注“机器学习算法与Python学习”。

相关文章
|
4天前
|
机器学习/深度学习 编解码 算法
YOLOv5改进 | 主干网络 | 用EfficientNet卷积替换backbone【教程+代码 】
在YOLOv5的GFLOPs计算量中,卷积占了其中大多数的比列,为了减少计算量,研究人员提出了用EfficientNet代替backbone。本文给大家带来的教程是**将原来的主干网络替换为EfficientNet。文章在介绍主要的原理后,将手把手教学如何进行模块的代码添加和修改,并将修改后的完整代码放在文章的最后,方便大家一键运行,小白也可轻松上手实践。以帮助您更好地学习深度学习目标检测YOLO系列的挑战。
|
6天前
|
机器学习/深度学习 编解码 边缘计算
YOLOv5改进 | 卷积模块 | 用ShuffleNetV2卷积替换Conv【轻量化网络】
本文介绍了如何在YOLOv5中用ShuffleNetV2替换卷积以减少计算量。ShuffleNetV2是一个轻量级网络,采用深度可分离卷积、通道重组和多尺度特征融合技术。文中提供了一个逐步教程,包括ShuffleNetV2模块的代码实现和在YOLOv5配置文件中的添加方法。此外,还分享了完整的代码链接和GFLOPs的比较,显示了GFLOPs的显著减少。该教程适合初学者实践,以提升深度学习目标检测技能。
YOLOv5改进 | 卷积模块 | 用ShuffleNetV2卷积替换Conv【轻量化网络】
|
3天前
|
机器学习/深度学习 算法 计算机视觉
YOLOv8改进 | 融合模块 | 用Resblock+CBAM卷积替换Conv【轻量化网络】
在这个教程中,介绍了如何将YOLOv8的目标检测模型改进,用Resblock+CBAM替换原有的卷积层。Resblock基于ResNet的残差学习思想,减少信息丢失,而CBAM是通道和空间注意力模块,增强网络对特征的感知。教程详细解释了ResNet和CBAM的原理,并提供了代码示例展示如何在YOLOv8中实现这一改进。此外,还给出了新增的yaml配置文件示例以及如何注册模块和执行程序。作者分享了完整的代码,并对比了改进前后的GFLOPs计算量,强调了这种改进在提升性能的同时可能增加计算需求。教程适合深度学习初学者实践和提升YOLO系列模型的性能。
|
6天前
|
机器学习/深度学习 人工智能 算法
食物识别系统Python+深度学习人工智能+TensorFlow+卷积神经网络算法模型
食物识别系统采用TensorFlow的ResNet50模型,训练了包含11类食物的数据集,生成高精度H5模型。系统整合Django框架,提供网页平台,用户可上传图片进行食物识别。效果图片展示成功识别各类食物。[查看演示视频、代码及安装指南](https://www.yuque.com/ziwu/yygu3z/yhd6a7vai4o9iuys?singleDoc#)。项目利用深度学习的卷积神经网络(CNN),其局部感受野和权重共享机制适于图像识别,广泛应用于医疗图像分析等领域。示例代码展示了一个使用TensorFlow训练的简单CNN模型,用于MNIST手写数字识别。
23 3
|
11天前
|
机器学习/深度学习 算法 PyTorch
卷积神经网络的结构组成与解释(详细介绍)
卷积神经网络的结构组成与解释(详细介绍)
39 0
|
11天前
|
机器学习/深度学习 算法 数据挖掘
深度学习500问——Chapter05: 卷积神经网络(CNN)(4)
深度学习500问——Chapter05: 卷积神经网络(CNN)(4)
21 1
|
11天前
|
机器学习/深度学习 自然语言处理 计算机视觉
深度学习500问——Chapter05: 卷积神经网络(CNN)(3)
深度学习500问——Chapter05: 卷积神经网络(CNN)(3)
19 1
|
11天前
|
机器学习/深度学习 存储 算法
卷积神经网络(CNN)的数学原理解析
卷积神经网络(CNN)的数学原理解析
44 1
卷积神经网络(CNN)的数学原理解析
|
11天前
|
机器学习/深度学习 自然语言处理 计算机视觉
深度学习500问——Chapter05: 卷积神经网络(CNN)(2)
深度学习500问——Chapter05: 卷积神经网络(CNN)(2)
24 2
|
11天前
|
机器学习/深度学习 算法 PyTorch
卷积神经网络(CNN)——基础知识整理
卷积神经网络(CNN)——基础知识整理
37 2

热门文章

最新文章