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
概率最大的说明就是这一类
全部串起来就是这样: