笔记(总结)-卷积神经网络

CNN卷积神经网络学习笔记1:背景介绍 Convolutional Neural Network 卷积神经网络是基于人工神经网络提出的。人工神经网络模拟人的神经系统,由一定数量的神经元构成。在一个监督学习问题中,有一组训练数据(xi,yi)(x_i,y_i),x是样本,y是label,把它们输入人工神经网络,会得到一个非线性的分类超平面hw,b(x)h_{w,b}(x),在这篇笔记中先梳理一下传统人工神经网络的基本概念,再基于传统人工神经 阅读详情

神经网络是一棵根深叶茂的大树,有过许多果实,可是都略显青涩,无法摘食。直到2010年后,这棵大树才真正可谓硕果累累,其中最璀璨甘甜的就是卷积神经网络(Convolutional Neural Network,下称CNN)。在这之后,神经网络再次成为科研界的热点,在这个数据和算力初具规模的时代,神经网络终于展现出了应用的价值。闲话到此,只是想说明CNN对于神经网络的意义。本篇将主要讨论CNN的模型原理,并简述其在分类问题上的应用。


起源

全连接前馈神经网络(前馈神经网络指一层神经元只接受上一层作为输入,并输出到下一层,该层神经元之间、该层与其它层都没有连接关系)以其复杂的连接方式,在一段时间内展现出了很强的拟合能力。但是面对特定问题时,展示出了缺陷。比如面对图像问题时,各像素点打平变成一个向量输入时,假设图像尺寸为10*10=100个像素点,隐层神经元有1024个,那么参数个数为100*1024个,如此大的参数空间,在训练时是无法忍受的。

CNN也是一种前馈神经网络,受生物学上的“感受野”机制带来的灵感而提出。

感受野主要是指听觉系统、本体感觉系统和视觉系统中神经元的一些性质。比如在视觉神经系统中,一个神经元的感受野是指视网膜上的特定区域,只有这个区域内的刺激才能够激活该神经元。

CNN具有感受野提取特征的能力,参数少、训练快等诸多优点。很好地解决了图像特征提取的问题。

接下来的叙述思路为理解CNN,即在给定CNN的结构下,如何理解CNN中各部分的设计与功能。由于能力有限,如果按照“如何得出CNN的结构设计”这一种方式来讲,恐怕难以讲清,虽然这种思路是更加自然的,也是CNN发明者的智慧精华所在。


整体设计

以图像分类问题为例(即给定一副图,根据图片内容,将图片分类到相关类别),CNN架构图如下:
这里写图片描述
原始图片的像素作为原始特征输入到神经网络中,经过卷积层(Convolution)-池化层(Pooling)组合模块的堆叠,完成特征提取过程,此时得到的是图像的高维特征表示。然后将特征打平(Flatten),输入到全连接网络中,完成分类功能。可以看到,整个CNN的架构、功能分为清晰的两部分:卷积-池化模块的特征抽取+全连接网络的分类。其中全连接网络是已经知道的,CNN的贡献在于前一部分。

题外话:单独的前馈神经网络其实也可以看做两个模块,中间隐层完成了特征提取过程,最后一层完成了分类过程。但由于网络层都是全连接,特征提取和分类某种程度上杂糅了起来,耦合度比较高。这样的网络在训练时其实是不好做的。而CNN很好的解决了这个问题,架构上进行了解耦,模块各司其职,优化也可以分别进行。


卷积层(Convolution Layer)

考虑一张简单的6*6的像素图,像素不含灰度值时(像素点取值为0或1),表示如下图。

卷积层主要由卷积核(filter)构成。逻辑上来说,卷积核是形如下图的参数矩阵:

卷积核与像素矩阵进行卷积运算,得到特征,卷积神经网络也因此得名。运算图如下:
这里写图片描述
可以看到,卷积核与像素矩阵中同尺寸的部分进行点积运算(即两个同尺寸矩阵的对应元素相乘,对乘积结果进行求和),公式化表示如下:

featurek=∑i,jaijbij   aij∈Matriximage, bij∈Matrixfilterfeaturek=∑i,jaijbij   aij∈Matriximage, bij∈Matrixfilter

卷积核和像素矩阵的不同部分做卷积运算,提取出不同的featurefeature。可以想象卷积核贴附在像素矩阵上方,沿着不同方向滑动(stride),从而提取不同区域的特征。最终得到特征矩阵,特征矩阵的尺寸与卷积核尺寸、滑动步长、像素矩阵相关。
这里写图片描述
当使用多个卷积核时,便能得到多个特征矩阵。对于卷积核,我们可以理解为特征提取器,这种特征可能是图像中的轮廓、边角、颜色等信息。卷积核1提取整个图像上的轮廓信息,卷积核2提取整个图像上的颜色信息等等。而特征矩阵则是整个图像矩阵不同局部的某种特征表示。
这里写图片描述
直观上来看,卷积核只是完成了卷积运算,而提取出的特征也不过是乘积求和的数值。但由于神经网络有惊人的拟合能力,BP优化的过程中能产生很多神奇的效果。当我们拿到卷积层的中间结果,并进行合理展示时,这种特征提取过程更加明显(数学确实是个神奇的东西,这种结果看起来不可思议):
这里写图片描述

以上分析都是基于卷积层的逻辑视图。考虑卷积层计算的物理视图(转化为神经网络的神经元计算)。像素矩阵按行列打平,作为输入神经元;特征矩阵中的元素相当于隐层神经元;而卷积核则相当于权值参数。卷积运算的过程实际上就是:输入神经元的特定部分,乘以权值矩阵,得到隐层神经元的过程。
这里写图片描述
由上图可以看到,相比于全连接神经网络,每个隐层神经元和每个输入神经元都有连接。卷积层只是进行了局部连接(稀疏连接)。
这里写图片描述
除此之外,卷积层还进行了参数共享。由之前的逻辑视图已经看到,卷积核在提取每个局部特征的过程中,是不变的。结合上图可以看到,同一卷积核得到的不同隐层神经元,与输入神经元连接的参数是一样的。

这两者结合起来,极大地减少了卷积层的参数空间。并且由逻辑视图可以看到,卷积核在不同图像局部的卷积运算、不同的卷积核的卷积运算都是相互独立,可以使用并行计算来加速卷积层的运算。这也是CNN在工业界能够得到大规模应用的原因。


池化层(Pooling Layer)

卷积层在小参数空间下完成了特征提取,然而特征矩阵(隐层)神经元的个数仍然是众多的。当像素矩阵巨大时,特征矩阵的神经元个数就会变得很多(一般卷积核的尺寸不会太大,从而保证能提取到足够小的局部的特征)。这样就会使得后续层的参数空间仍然很大。池化层通过对特征采样,进一步减少了神经元个数。
这里写图片描述
针对原图进行像素级别的采样,能在保持原图大致内容的前提下,达到图像压缩的目的。池化层也是如此,经过采样,虽然可能丢失一些特征细节,但能保证抓住其中的要点。
这里写图片描述
参照上图,左边为特征矩阵,右边为池化后的结果。以黄色框内元素为例,MaxPoolingMaxPooling取出四个元素中最大的元素,相当于取出了其中特征最鲜明的像素代表,而AveragePoolingAveragePooling均值化了四个元素,则相当于综合考量了这个局部区域的像素特征,其它框进行类似操作。可以看到特征矩阵尺寸缩小为了四分之一,且仍然保持了局部结构的相对不变性(各颜色的框位置是没变的)。这进一步降低了训练计算的开销,且通过引入采样这种带有随机性质的行为,有效地防止了过拟合。


经过以上卷积层、池化层的操作后,像素矩阵被压缩为了一个小尺寸的池化特征矩阵:
这里写图片描述
可以想象,被压缩后的池化特征矩阵仍然具有类似于图像的性质,其中的每个元素都来自于特征矩阵的对应区域,而特征矩阵中的元素又来自于原始像素矩阵的各个局部区域。因此,运用深度学习的思想,我们可以堆叠卷积-池化的模块,来让模型变“深”,具备更强的拟合能力。

第一个卷积-池化模块的输出结果是诸如轮廓,边角之类的特征信息,第二个模块在前一个模块的结果上进行进一步的特征提取,得到的便是更细微的特征元素,比如线段、弧度等等。通过数个这样的模块堆叠,将原始像素矩阵逐步拆解为很细微的特征表示,达到表示学习、理解图像的目的。


全连接层

卷积-池化模块已经完成了表示学习部分,全连接层只是充当特征组织与分类的角色。将池化层的高阶特征矩阵打平,输入到全连接层即可。在不同的问题中,按不同方式来配置卷积-池化模块(如调整卷积核大小、个数、初始化方法;池化层尺寸、步长;堆叠层数、激活函数等等),来对不同类型的特征进行提取。根据最终表示学习结果的尺寸,合理设置全连接层的层数、神经元个数,达到分类的目的。

深度学习基础笔记 (4) :卷积神经网络 CNN 《动手学深度学习》笔记——卷积神经网络 CNN(LeNet、AlexNet、VGG、NiN、GoogLeNet、ResNet、DenseNet) 阅读详情

相关推荐

卷积神经网络(CNN)学习笔记3:Matlab代码理解

近期正在学习卷积神经网络,大致的原理在之前参考前辈们经验,转载的两个笔记中已经做了简要梳理,下边就Github中的DeepLearnToolbox中的CNN的代码进行理解和实现讲解 参考代码来源:[CNN卷积神经网络的Matlab实现](https://github.com/rasmusbergpalm/DeepLearnToolbox) 网络结构图: 打开路径\tests\test_exampl

冰凝凝的专栏 2万+

机器学习之——神经网络模型

之前我们了解了神经网络模型(Nerual Network),这一次,我们来具体讨论一下神经网络模型的表达。 我们知道,神经网络模型是许多逻辑单元(Logistics Unit)按照不同的层级组织起来的网络,每一层的输出变量作为下一层的输入变量。如下图,是一个三层的神经网络,第一层为输入层(Input Layer),最后一层为输出层(Output La...

weixin_34235371的博客 843

SAP PP模块 MRP配置实战:5步完成工厂级物料需求计划激活

本文详细介绍了SAP PP模块中物料需求计划(MRP)的工厂级配置实战,通过5个关键步骤从基础环境准备到最终激活。内容涵盖SPRO后台配置、MRP控制者定义、主数据设置及核心参数调整,帮助顾问快速掌握MRP配置清单的完整流程,确保物料需求计划的高效运行。

weixin_30431445的博客 342

CNN-卷积神经网络

它在一整个屏幕滑动的时候,其实会把三个通道的值都累加起来,最终只是输出一个一维矩阵。而多个卷积核(一个卷积层的卷积核数目是自己确定的)滑动之后形成的Activation Map堆叠起来,再经过一个激活函数就是一个卷积层的输出了。从左上角开始,卷积核就对应着数据的3*3的矩阵范围,然后相乘再相加得出一个值。我们是使用卷积核来提取特征的,卷积核可以说是一个矩阵。假如我们设置一个卷积核为3*3的矩阵,而我们图片为一个分辨率5*5的图片。在我们面对线性可分的数据集的时候,简单的用线性分类器即可解决分类问题。...

zhangshaozhong__的博客 639

SecureCRT串口连接保姆级教程:从驱动安装到波特率设置(附常见问题解决)

本文提供SecureCRT串口连接的保姆级教程,涵盖从USB转串口驱动安装、端口识别到波特率等核心参数设置的完整流程。针对连接失败、乱码、键盘输入无响应等高频问题,给出了深度排查与解决方案,帮助网络与嵌入式开发新手快速掌握串口调试技能。

weixin_29281941的博客 433

【雕爷学编程】Arduino智慧交通之RF24通信实现车队之间的实时通信和协调

通过这些示例,车队领导可以发送指令给车队成员,车队成员可以接收指令并执行相应的操作,同时车队成员也可以发送自己的位置信息给车队领导或其他成员,以实现车队之间的实时通信和协调。例如,在高速公路上,车队中的车辆可以根据前方车辆的速度和位置信息,自动调整自身的速度和距离,以保持车队的整体稳定和安全。Arduino智慧交通系统利用RF24通信模块实现车队之间的实时通信和协调,通过无线通信技术,车辆之间可以实时传输数据和指令,以实现车队的协同行驶和交通优化。通过数据处理和分析,可以生成实时的交通信息和统计数据。

雕爷学编程 1075

深度学习相关原理

深度学习的原理

weixin_39455125的博客 2094

基于深度学习的商品标签识别系统:UI界面 + YOLOv8/v7/v6/v5代码 + 训练数据集

基于YOLO系列模型的商品标签识别系统能够有效解决商品信息提取的自动化问题。通过合理的数据集准备、模型训练和UI设计,我们可以实现一个功能强大的商品标签识别系统。希望本文提供的内容能够为大家提供有价值的帮助。

YOLO 474

各种卷积操作及其矩阵运算

前言 简单来讲,卷积是一种函数和函数产生一个新函数的数学运算,该数学运算的自变量是两个函数f, g(连续或离散都可以,,定义域之外的部分记函数值填充为0),输出为一个函数h,满足 ,或者说,就是对每个自变量t, 的h(t)值,都是g与对应​f的函数值的加权和。 1. 一维离散卷积数学表达 2. 二维离散卷积定义 3. 图像卷积 卷积核套合在图像上,对应位置相乘求和赋值给中心像素,滑动卷积核(从左到右,从上到下),依次得到新的特征图上的值。 上图展示的是 stride=1 的情形,既每次移动一个像

Nick Blog 7087

【Tiny_CD】Tiny_CD变化检测网络详解(含python代码)

tiny-cd网络详解,含论文下载、代码下载地址。

向上生长的程序媛的博客 2161

Python 爬虫实战:豆瓣电影海报批量获取(Top250 榜单 + 可视化展示)

在信息爆炸的时代,数据已成为决策的核心,而数据的获取是数据分析的第一步。本文将详细介绍如何利用 Python 爬虫获取豆瓣电影 Top250 榜单的海报,并对数据进行可视化展示,助你更好地了解电影市场的趋势和用户的喜好。

yansideyucsdn的博客 718

卷积神经网络卷积计算,卷积网络计算公式

卷积神经网络的连接性:卷积神经网络中卷积层间的连接被称为稀疏连接(sparseconnection),即相比于前馈神经网络中的全连接,卷积层中的神经元仅与其相邻层的部分,而非全部神经元相连。卷积神经网络的稀疏连接具有正则化的效果,提高了网络结构的稳定性和泛化能力,避免过度拟合,同时,稀疏连接减少了权重参数的总量,有利于神经网络的快速学习,和在计算时减少内存开销。然后核的具体的值,就是要训练出来的,核的初始化的话,若果你的输入是0-1之前,那么核值也可以初始化在0-1之间,不会有太大的误差。

神器榜 9307

MIMO-OFDM通信系统性能仿真及MATLAB实现

将MIMO和OFDM技术结合起来,可以充分利用两者的优点,进一步提高无线通信系统的性能。在MIMO-OFDM系统中,多个天线同时发射多个子载波,称为多天线多载波(MIMO-OFDM)系统。随着无线通信技术的不断发展,MIMO-OFDM技术因其高效、可靠和适应性等优点已被广泛应用于新一代通信系统中。本篇文章旨在介绍MIMO-OFDM通信系统的基本原理及其性能评估方法,并结合MATLAB提供相关代码实现。本篇文章介绍了MIMO-OFDM通信系统的基本原理和性能评估方法,并结合MATLAB提供了相关的实现代码。

学习使你进步。 2217

CNN卷积神经网络学习笔记

最近开始从事视觉领域的研究工作,CNN(卷积神经网络)是图像处理最常用的深度学习算法,听起来比较高深的样子,但是有了之前无线通信算法的经验,理解起来也非常容易。虽然网上介绍CNN的文章很多,还是自己写一下,理解更为深刻,其中很多图用了网络上,一并表示感谢。

Tony's Blog 1219

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

[神经网络学习笔记]卷积神经网络CNN(Convolutional Neural Networks, CNN) 综述

本人刚入门神经网络,边学习边总结,参考了很多大佬的博客和论文,整理出的自己思路的笔记,供入门的同学一起参考。其中可能有理解错误的地方,望指出 参考主要文献和博客 通俗讲解什么叫卷积、池化 参考资料 -卷积神经网络研究综述-周飞燕 一、常用的深度学习模型有 深度置信网络(Deep Belief Network DBN) 层叠自动去噪编码机(Stacked Deoising Autoencodes,SDA) 卷积神经网络(Convolutional Neural Network,CNN) 二、神经元

BetterBench的博客 6526

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

CNN学习笔记

学习CNN的一些总结

u010067397的专栏 362

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

卷积神经网络CNN学习笔记

主要操作 卷积、非线性变换(ReLU)、池化或子采样、分类(完全连接层) 卷积 卷积的主要目的是从输入图像中提取特征。 卷积的解释:将橙色矩阵在原始图像(绿色)上以每次1个像素的速率(也称为“步幅”)移动,对于每个位置,计算两个矩阵相对元素的乘积并相加,输出一个整数并作为最终输出矩阵(粉色)的一个元素。 在卷积神经网路的术语中,这个3 × 3矩阵被称为“过滤器”或“核”或“特征探测器”,通过在图...

qq_33793792的博客 926

卷积神经网络(CNN)入门学习笔记

CNN,全称,是一种专门用来处理图片、语音、文本等结构化数据的神经网络。,一步步提取特征,最后做出判断。

dark 1675

[深度学习笔记][CNN/GCN]卷积神经网络基础

注:这是写给自己看的学习笔记,如有错误敬请指出。 1.卷积神经网络的结构 由四层构成,分别为:输入、卷积、池化、输出层。 2.卷积神经网络的形象理解 2.1卷积层的形象理解 卷积层的目的实际上是进行特征的提取。 在卷积层(convention layer)中,使用一个过滤器(kernel)去扫描一个图像,这个过滤器的参数是需要学习的。过滤器与图像进行卷积并滑动,会生成这个图像的特征映射(feature map)。 此处可以深究的问题是:如何选取合适的过滤器、如何确定过滤器的大小等。(书中.

猎人伯爵 877

python3 27.keras使用卷积神经网络(CNN)对MNIST数据集进行分类 学习笔记

文章目录前言 前言      计算机视觉系列之学习笔记主要是本人进行学习人工智能(计算机视觉方向)的代码整理。本系列所有代码是用python3编写,在平台Anaconda中运行实现,在使用代码时,默认你已经安装相关的python库,这方面不做多余的说明。本系列所涉及的所有代码和资料可在我的github上下载到,gitbub地址:https://github....

112 4267

深度学习—卷积神经网络(CNN)全笔记,附代码

K近邻;神经网络基础,线性函数,损失函数,前向传播; 卷积神经网络,卷积网络与传统网络的区别,卷积层,卷积层涉及参数,池化层,最大池化,特征图的变化;经典网络Alexnet,经典网络—Vgg经典网络—Resnet,感受野; 项目实战—基于CNN构建识别模型一 项目实战—基于CNN构建识别模型二 图像识别实战常用模块解读...

weixin_58176527的博客 2万+

CNN笔记:通俗理解卷积神经网络_cnn卷积神经网络

2012年我在北京组织过8期machine learning读书会,那时“机器学习”非常火,很多人都对其抱有巨大的热情。当我2013年再次来到北京时,有一个词似乎比“机器学习”更火,那就是“深度学习”。本博客内写过一些机器学习相关的文章,但上一篇技术文章“LDA主题模型”还是写于2014年11月份,毕竟自2015年开始创业做在线教育后,太多的杂事、琐碎事,让我一直想再写点技术性文章但每每恨时间抽不开。然由于公司在不断开机器学习、深度学习等相关的在线课程,耳濡目染中,总会顺带着学习学习。

2401_87555477的博客 1132

【CNN】卷积神经网络笔记笔记

卷积神经网络 卷积神经网络是如何进行工作的呢? 通俗来讲,就是以下的工作流程: 一、图片如何转化为像素矩阵(如何用数字来表示图片呢) 首先Image.open()来打开一幅图像,然后调用numpy中的array()函数就可以将PIL对象转换为数组对象。 img=np.array(Image.open(‘d:/lena.jpg’)) #打开图像并转化为数字矩阵 如果是RGB三通道图像,转化为...

qq_43557445的博客 1027

CNN笔记

李宏毅老师的听课笔记 https://www.youtube.com/watch?v=Ye018rCVvOo&list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J 写的很简单,主要是为了自己理解,如有不明白或者指出问题,请多指教! CNN Convolutional Neural Network ,专门用在图像上的,目的就是提取有用的特征 Tensor 维度大于2的矩阵 版本1: 没必要fully connected,对于一张图片,辨识他是啥就看部分特征就行 每一个neur

qq_43785048的博客 192

cs231 CNN笔记

cs231的CNN讲义的笔记 结构概述 常规的神经网络不适合大尺寸的图片。图大导致参数很多,造成浪费与增加过拟合的风险。 神经元的三维排列。充分利用了图像的特点,更合理的构建网络、 用来构建卷积神经网络的各种层 卷积层,池化层,全连接层 卷积层 概述和直观介绍:在没有大脑和生物意义上的神经元之类的比喻下,直观的说,网络会学习到一种滤波器,这种滤波器当见到某一类视觉特征时就...

weixin_40520563的博客 374
上一篇: 笔记(总结)-神经语言模型和词向量
下一篇: 笔记(总结)-循环神经网络
ZSYGOOOD
博客等级 码龄12年 113粉丝 94原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值