cnn卷积神经网络(史上最容易理解版)

什么是cnn卷积神经网络?ta有什么用呢?
这些问题是否现在或者曾经是你们心中的问题?

cnn卷积神经网络详解

cnn卷积神经网络是一种人工智能网络,用于图片识别、图片分类等。
那怎么可以进行图片识别、分类等问题呢?
传一些图片进去为什么能实现训练和分类呢?
明明就是一张人们可见的图片,怎么能用于训练和计算呢?
其实大家应该都知道:灰色图片是由一个2维网格组成
灰色图片:

而彩色图片是由一个3层2维网格组成的,分别是R、P、G
彩色图片

给大家用python来检验一下:

所以,我们可以用图片来进行一系列数值、矩阵运算
到这里,大家应该对图片有些了解了,接下来我们来讲解一下cnn卷积神经网络
cnn卷积神经网络由卷积层池化层全连接层组成

卷积层:

这层主要是为了提取图像的特征值(特征值就是:该类图片与其他图片的不同点,如兔子的耳朵、猴子的尾巴)
提取特征值的主要操作:
b=a*w+b w就是在原图片挪动的小框框(即卷积核),小框框每个格子都有自己的值,b就是映射出来的矩阵,即映射出来的图片,b就是一个偏移值
bij=aij*wij+b

不同卷积核能提取图像不同的轮廓

池化层:

池化层为了减少数据量和减少特征值以防止过拟合
什么是过拟合呢?

第一个是欠拟合
第二个是拟合
第三个是过拟合
那什么是池化呢?其实与卷积差不多
就是有一个小框框(即最大池),在图像框中挪动,提取框中的最大值

经过池化的图像能减少一些特征值,让图像轮廓不那么明显

全连接层:

在全连接之前,应该将2维、3维的图像数据变为1维的数据

以便于后续的计算
flatten之后的长度=图片的长度*图片的宽度*3
图片中的fully connected layers就是全连接层的输入层,输入层的神经元个数等于flatten之后的长度
即每个神经元对应每个flatten之后的数值
全连接层的最后一层(图中的output layers)的神经元个数等于要分类的类别数

w就是每个神经元所带的权值,a就是flatten之后每个方格的数值,b就是一个偏移量
最后把每一个output算出来
因为算出来的值有正有负,所以我们用自然指数函数将其变为正的
output=e^output
再采用下面的函数算出该张图片是每一类的每一个概率

图中的e^z正是刚刚算出的每一个output
概率最大的说明就是这一类
全部串起来就是这样:

posted @ 2022-02-16 15:54  jimore  阅读(893)  评论(0编辑  收藏  举报