【深度学习算法代码解读】基于keras实现图像识别CNN模型-含CNN卷积神经网络模型原理

图像识别为什么要用卷积神经网络CNN?比传统神经网络好在哪里?
核心差别点:多了卷积层+池化层,所以本文主要是梳理卷积层和池化层设计原理+CNN模型实现(基于Keras代码)

传统神经网络的劣势

我们知道,图像是由一个个像素点构成,每个像素点有三个通道,代表RGB颜色,如果一个图像的尺寸是(28,28,1),即代表这个图像的是一个长宽均为28,channel为1的图像(channel也叫depth,此处1代表灰色图像)。如果使用全连接的网络结构,即,网络中的神经与与相邻层上的每个神经元均连接,那就意味着我们的网络有28 * 28 =784个神经元,hidden层采用了15个神经元,那么简单计算一下,我们需要的参数个数(w和b)就有:7841510+15+10=117625个,这个参数太多了,随便进行一次反向传播计算量都是巨大的,从计算资源和调参的角度都不建议用传统的神经网络。卷积神经网络CNN通过卷积层、池化层分别对图像数据进行特征提取,特征降维,可以大大减少计算权重参数的工作量。Dropout层的设计可以随机将一定比例的神经元权重设置为0,有效防止过拟合。
 CNN卷积神经网络图像识别图解:
在这里插入图片描述

一、CNN图像识别数据流工作过程:

在这里插入图片描述
1输入:图像预处理、图像增强
2特征提取:多层卷积+池化

2.1卷积层要点:
可以把卷积核就理解为特征提取器,只需要把图片数据灌进去,设计好卷积核的尺寸、数量和滑动的步长就可以让自动提取出图片的某些特征

猜你喜欢

转载自blog.csdn.net/weixin_37479258/article/details/99655693