深度学习中的卷积神经网络

article/2025/8/22 13:12:09

 博主简介

博主是一名大二学生,主攻人工智能研究。感谢让我们在CSDN相遇,博主致力于在这里分享关于人工智能,c++,Python,爬虫等方面知识的分享。 如果有需要的小伙伴可以关注博主,博主会继续更新的,如果有错误之处,大家可以指正。

专栏简介:   本专栏主要研究计算机视觉,涉及算法,案例实践,网络模型等知识。包括一些常用的数据处理算法,也会介绍很多的Python第三方库。如果需要,点击这里订阅专栏   。

给大家分享一个我很喜欢的一句话:“每天多努力一点,不为别的,只为日后,能够多一些选择,选择舒心的日子,选择自己喜欢的人!”


目录

​卷积神经网络基本结构

​卷积层

​池化层

​全连层

​Softmax激活函数

​交叉熵损失

AlexNet详解

​卷积神经网络的优点



2012年,AlexNet横空出世,卷积神经网络从此火遍大江南北。此后无数人开始研究,卷积神经网络终于在图像识别领域超过人类,那么卷积神经网络有什么神奇?下面我们来了解了解。

卷积神经网络基本结构

与最早的神经网络不同,除了全连接之外,卷积神经网络加入了卷积层和池化层。卷积层和我们在传统计算机视觉中的卷积极为相似,而池化层主要用于减少参数的数量,防止过拟合。 

卷积层

卷积层,英文名convolution layer,卷积层是卷积神经网络的核心,每个卷积层由多个卷积核组成。当输入图像经过卷积核时,每个通道的图像会与每个卷积核进行卷积操作。

\begin{pmatrix} a_{1} &a_{2} &a_{3} \\ a_{4} &a_{5} &a_{6} \\ a_{7}&a_{8} &a_{9} \end{pmatrix}*\begin{pmatrix} b_{1}&b_{2} &b_{3} \\ b_{4}&b_{5} &b_{6} \\ b_{7}&b_{8} &b_{9} \end{pmatrix}=\sum a_{i}b_{i}

\begin{bmatrix} 1 & 1 & 1 & 1 &1 \\ 2& 2 & 2 & 2 & 2\\ 3 &3 & 3 & 3 &3 \\ 4 &4 & 4 &4 &4 \\ 5 & 5 &5 & 5 &5 \end{bmatrix}*\begin{pmatrix} 1 &1 &1 \\ 1 &1 &1 \\ 1 &1 &1 \end{pmatrix}=\begin{pmatrix} 18 &18 &18 \\ 27& 27 &27 \\ 36& 36 &36 \end{pmatrix}

 输入图片经过卷积层后变为多通道输出。具体操作如下图:

下面这张图片可能更加清楚:

 

一般的情况下,如果输入图像的大小为n1*n2,卷积核的大小为m1*m2,(mi<ni).卷积后,卷积核水平滑动距离为s1,竖直滑动距离为s2,则输出图像大小为k1*k2,

k_{1}=\frac{n_{1}-m_{1}+1}{s1},k_{2}=\frac{n_{2}-m_{2}+1}{s2}

这里需要注意的是,当卷积核滑动到 图片末尾时,当剩余的像素数量不够一次滑动时,会自动忽略剩余的像素。由于这种卷积方式会忽略边缘的像素(边缘的像素只计算一次,而中心的像素被计算多次),所以有了第二种卷积方式,我们称之为填充(padding),很简单,在边缘之外加入像素值为0的行和列。这样,新的像素值为0的行和列变为新的边缘,而旧的边缘则变为内部的像素,从而可以被计算多次。

 padding操作卷积后特征大小为:

k_{1}=Floor(\frac{n_{1}-m_{1}+2*p_{1}}{s_{1}})+1

k_{2}=Floor(\frac{n_{2}-m_{2}+2*p_{2}}{s_{2}})+1

Floor表示向下取整,p1和p2表示padding补充单列0的行和列。

最后,如果卷积核的数量为n,则输出特征图片共有n个通道。如果输入图像通道数为c,则每个卷积核的通道数为c,卷积层的参数个数为:每个卷积核大小×c×n。

池化层

池化层,英文名(pooling layer),将图片分成一个一个池子,每个池子输出一个值。池化层可以扩大或者缩小图像的大小,而且还能保证图片的像素不发生变化。常用的池化层:

\begin{bmatrix} 1 &2 \\ 3& 4 \end{bmatrix}\rightarrow2.5经过平均池化;

\begin{bmatrix} 1 &2 \\ 3& 4 \end{bmatrix}\rightarrow 4经过最大池化

假设池化层的参数为m1*m2,输入图像大小为n1*n2,则输出图像大小为 \begin{bmatrix} n1\\m1 \end{bmatrix}*\begin{bmatrix} n2\\m2 \end{bmatrix},输入图像和输出图像的通道相同。池化层也有stride和padding操作,同卷积层的操作规则一样。

全连层

全连接层与最早的人工神经网络的线性层一样。但是,图象是二维的,我们常用的全连接层是一维的,所以我们想要将其“压扁”为一维:

\begin{bmatrix} 1 &1 \\ 1& 1 \end{bmatrix}=\begin{bmatrix} 1 &1 &1 &1 \end{bmatrix}

全连接层的作用相当于对输入向量左乘矩阵,假设输入向量为x,全连接层对应矩阵为W,输出为'x':

(x^{'})^{T}=wx^{T}

Softmax激活函数

在卷积神经网络的最后一层,激活函数与之前每一层的的激活函数不同。由于最后一层要作为分类的结果,我们希望输出结果(一维向量的值)为各分类的概率,那么概率最大的那个分类就是我们得到的预测结果。例如输出为[0.2,0.3,0.4,0.1,0.1],那么我们就以第三类为预测结果。

如何使输出的结果为概率值?这里就需要用到Softmax激活函数。为了使得输出结果为概率值,首先我们需要将每一个值限制在0~1.其次是需要一个向量所有值的和为1,最后函数应该为单调递增的函数。所以我们选用归一化的指数函数作为激活函数式:

\begin{bmatrix} x_{1} & x_{2} &... &x_{4} \end{bmatrix}softmax\rightarrow \begin{bmatrix} \frac{e^{x_{1}}}{\sum e^{x_{i}}} &\frac{e^{x_{2}}}{\sum e^{x_{i}}} & ...& \frac{e^{x_{n}}}{\sum e^{x_{i}}} \end{bmatrix}

交叉熵损失

最后,我们使用交叉熵损失作为损失函数,主要是因为这种损失使得我们一开始的训练速度很快。交叉熵的概念从熵的概念引申而来,所以计算公式非常相似。假设我们的输出直播为X=[x1,x2,x3,x4,x5,,,,xn],标签为Y=[y1,y2,y3,,,yn],则损失函数的值为:

\sum -y_{i}log(x_{i}))

AlexNet详解

我们现在来解析一下AlexNet的结构。首先输入图像大小为227x227x3.

第一层为卷积层,卷积核大小为11x11,共96个卷积核,由两个GPU分别训练,滑动步长为4,激活函数为ReLU,所以输出图像的特征大小为55x55x96.

第二层为池化层,核大小为3x3,每次滑动步长为2,所以图片大小为27x27x96((55-3)/2+1)

第三层为卷积层,卷积核大小为5x5,共256个卷积核,每次滑动步长为1,对图像做两个像素的填充,激活函数为ReLU,所以输出特征图为27x27x256(其中27+2x2-5+1).

第四层为池化层,核大小为3x3,每次滑动步长为2,所以输出图像大小为13x13x256((27-3)/2+1)。

第五层为卷积层,卷积核大小为3x3,共384个卷积核,每次滑动步长为1,对图像做一个像素的填充,激活函数为ReLU,所以输出特征图为13x13x384(其中13+1x2-3+1=13).

第六层为卷积层,卷积核大小为3x3,共384个卷积核,每次滑动步长为1,对图像做一个像素的填充,激活函数为ReLU,所以输出特征图为13x13x384(其中13+1x2-3+1=13).

第七层为卷积层,卷积核大小为3x3,共256个卷积核,每次滑动步长为1,对图像做一个像素的填充,激活函数为ReLU,所以输出特征图为13x13x256(其中13+1x2-3+1=13).

第四层为池化层,核大小为3x3,每次滑动步长为2,所以输出图像大小为6x6x256((13-3)/2+1=6).

之后将特征图重构为至一维:9216x1.

第九层为全连接层,输出为4096x1,激活函数为ReLU。

第十层为Dropout层,神经元激活的概率为0.5.

第十一层为全连接层,输出为4096x1,激活函数为ReLU。

第十二层为Droupout层,神经元激活的概率为0.5.

第十三层,也是最后一层为全连接层,输出为1000x1,激活函数为Softmax。

最后使用交叉熵损失进行多分类训练。

前面说了,图像最好是227x227大小,这是因为经过所有的处理,他们的除都是整数,比较方便处理,所以最好设定为227x227x3大小。

总共的参数个数就为:62367776(59.5M)。

卷积神经网络的优点

卷积神经网络现在比全连接神经网络更获得原因:

第一,减少了网络参数,例如大小为28x28x3的图像,经过3x3x32的卷积层,输出为28x28x32的特征图,卷积层的参数为3x3x3x32=864,而如果使用一个全连接层,参数数量为28x28x3x28x28x32=59006976,大了几个数量级,由于减少了网络参数,大大减少了过拟合的可能,从而增加了网络的准确率。

第二,保留了局部特征,由于卷积层比起全连接层更注重局部特征,更能对较小的物体进行识别,而图像中的物体往往占整个图像的比例不高,所以物体的局部特征更重要。

 第三,卷积层具有平移不变性。就是说,相同的两个图片,无论卷积层怎么移动,他们的输出值是一样的,不会变。

好了,本节内容就到此结束了,下一节我们学习Tensorflow深度学习,拜拜了你嘞!

点赞加关注不迷路


http://chatgpt.dhexx.cn/article/lNN5llRy.shtml

相关文章

深度学习:卷积神经网络(详解版)

文章目录 一、全局连接VS局部连接1.1 局部神经元连接的优势1.2 全连接网络的权重参数量1.3 神经网络的局部特征提取&#xff08;卷积&#xff09; 二&#xff1a;感受野2.1 生物上的定义2.2 深度学习的定义2.3 感受野的作用2.4 感受野的计算公式2.5 感受野对网络的影响 三&…

深度卷积神经网络基本介绍

关于深度卷积神经网络的前世今生&#xff0c;就不在此处进行过多的介绍。在此&#xff0c;主要对网络的各个组成部分进行简要介绍&#xff1a; 图1 基本的深度卷积网络结构 通过图1可知深度卷积神经网络主要是由输入层、卷积层、激活函数、池化层、全连接层和输出层组成。以下将…

深度卷积神经网络(CNN)

CNN简述 卷积神经网络&#xff08;Convolutional Neural Network&#xff0c;CNN&#xff09;&#xff0c;它是属于前馈神经网络的一种&#xff0c;其特点是每层的神经元节点只响应前一层局部区域范围内的神经元&#xff08;全连接网络中每个神经元节点则是响应前一层的全部节…

深度学习|卷积神经网络

一、卷积神经网络简介 卷积神经网络&#xff08;Convolutional Neural Network&#xff0c;CNN&#xff09;是一种深度学习神经网络结构&#xff0c;主要用于图像识别、计算机视觉等领域。该结构在处理图像等高维数据时表现出色&#xff0c;因为它具有共享权重和局部感知的特点…

什么是深度卷积神经网络,卷积神经网络怎么学

卷积神经网络通俗理解 。 卷积神经网络&#xff08;ConvolutionalNeuralNetworks,CNN&#xff09;是一类包含卷积计算且具有深度结构的前馈神经网络&#xff08;FeedforwardNeuralNetworks&#xff09;&#xff0c;是深度学习&#xff08;deeplearning&#xff09;的代表算法…

深度学习—卷积神经网络(Convolutional Neural Networks)

卷积神经网络&#xff08;Convolutional Neural Networks&#xff09; 卷积神经网络&#xff08;convolutional neural network, CNN&#xff09;&#xff0c;是一种专门用来处理具有类似网格结构的数据的神经网络。例如时间序列数据&#xff08;可以认为是在时间轴上有规律地…

深度卷积图神经网络(Deep Convolutional Graph Neural Network,DCGNN)的基本概念与应用

目录 一、引言 1.1 神经网络的发展历程 1.2 图神经网络的出现 二、深度卷积图神经网络的基本概念 2.1 图的表示 2.2 图卷积神经网络 2.3 深度卷积图神经网络 三、深度卷积图神经网络的应用 3.1 图像分类 3.2 图像分割 3.3 图像生成 四、深度卷积图神经网络的优缺点 …

超级详细的安装虚拟机教程--配图--步骤拆分

1、首先我们需要下载两个文件&#xff0c;一个虚拟机文件&#xff0c;一个程序光盘文件。然后我们安装虚拟机&#xff0c; 类似于这两个文件&#xff1a; 2、虚拟机安装好之后回来到这个页面&#xff1a;点击创建新的虚拟机 3、选择界面&#xff0c;建议选择自定义&#xff1a;…

VMware vSphere Client 安装虚拟机

一、VMware vSphere Client安装虚拟机步骤。 1、启动虚拟机安装&#xff0c;如下图所示。 2、选择所需要安装的虚拟机类型&#xff0c;例如Centos7 、ubuntu、debian等。 3、选择磁盘、内存、CPU大小。 4、启动虚拟机。 5、选择操作系统镜像进行安装。 二、操作系统安装。 1、…

Mac m2芯片安装虚拟机win11

写在前面&#xff0c;这两天安装虚拟机和Windows系统搞的我头皮发麻&#xff0c;遇到了很多不能解决的问题&#xff0c;主要就是m1/m2芯片好多软件都不兼容脑阔疼&#xff0c;失败的路程就不展示了&#xff0c;我们只展示成功过程中的修问题 一开始使用的virtual box虚拟机&am…

VirtualBox安装虚拟机全过程

使用Virtual Box安装虚拟机&#xff0c;虚拟机操作系统使用CentOS7进行安装&#xff0c;安装完成后解决网络设置的问题。 一、虚拟机新建过程 1、点击新建。 2、设置内存大小&#xff0c;点击下一步。 3、选择虚拟硬盘&#xff0c;点击创建。 4、选择创建虚拟硬盘&#xff0c;点…

crossover2023最新苹果笔记本mac系统如何安装虚拟机?

mac系统怎么装虚拟机&#xff1f;如果只在mac上安装虚拟机软件是无法正常运行Windows系统的&#xff0c;还需要将Windows镜像文件导入由虚拟机软件搭建的Windows系统运行环境。mac虚拟机性能怎么样&#xff1f;mac虚拟机的性能由电脑本身的存储空间&#xff0c;以及虚拟机软件&…

安装虚拟机步骤 详细

虚拟机安装步骤 打开VMware Workstation&#xff0c;点击创建新的虚拟机。 点击自定义&#xff08;高级&#xff09;&#xff08;C&#xff09;&#xff0c;下一步。 选择虚拟机硬件兼容性 Workstation 15.x&#xff0c;下一步。 选择稍后安装操作系统&#xff0c;下一步。 …

cas cvm服务器虚拟化安装虚拟机,CAS系统如何安装虚拟机

1、在CVM的云平台中选择一台物理服务器右击,在弹出的选项中选择“增加虚拟机”。给虚拟机配置名称,选择操作系统版本,这一步一定要注意,这里选择的操作系统版本指的是会安装对应操作系统版本的驱动,如果这里选择的版本和实际安装的操作系统版本不一致会导致虚拟机不能正常…

虚拟机服务器安装虚拟机的步骤

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1.创建虚拟机第一步第二步第三步第四步第五步第六步 2.配置虚拟机 1.创建虚拟机 第一步 访问虚拟机服务器&#xff1a;IP地址端口号 第二步 创建/注册虚拟机>…

win10系统安装虚拟机

本文包含1553 个字&#xff0c;阅读大约需要3-5分钟。 昨天在平台上分享了一下&#xff0c;如何安装win10系统&#xff0c;今天想跟大家分享一下如何在Windows上安装虚拟机。 文章目录 1.为什么要安装虚拟机2.虚拟机的好处3.虚拟机的种类4.安装步骤注意事项&#xff1a;因为p…

超详细使用VirtualBox安装虚拟机

文章为中华石杉老师课程总结&#xff01;&#xff01;&#xff01; 1、下载VirtualBox管理工具。 2、到官网下载。我下载的是最新的版本。 3、安装VirtualBox. 4、这里变更下安装路径。只要不是系统盘就可以。 之后就是默认 下一步就可以。 5、打开VirtualBox。 6、点击控制-&…

虚拟机安装群晖

1.准备文件 下载链接 群晖助手、群晖pat文件、虚拟机文件 2.记事本编辑虚拟机vmx文件 修改版本号与虚拟机版本一致 3.双击vmx文件 选择虚拟机 右键设置参数如图 4.安装群晖助手 启动虚拟机打开助手 搜索联机 等待加载 点击安装 选择pat 等待安装 配置账号信息登录

手机安装虚拟机

大部分一般都是把 Linux 系统装在计算机中的&#xff0c;通过虚拟机安装运行或者执行装成 Linux 系统使用。那么手机上可以安装 Linux 吗&#xff1f;有没有人想过这个问题&#xff0c;答案是当然可以。可以想一下在日常使用的手机上安装一套完整的 Linux 系统&#xff0c;那将…

win11安装虚拟机

目录 前言安装流程蓝屏解决办法第一种办法第二种办法 最后总结 前言 最近用上了win11系统&#xff0c;然后重新安装虚拟机 安装流程 输入许可证后&#xff0c;点击完成就可以了。 然后在桌面上打开虚拟机 这个界面按自己喜欢的去填&#xff0c;密码要记住 蓝屏解决办法…