CNN卷积神经网络

简介: 一、BP神经网络回顾人工全连接神经网络(1)每相邻两层之间的每个神经元之间都是有边相连的(2)当输入层的特征维度变得很高时,这时全连接网络需要训练              的参数就会增大很多,计算速度就会变得...

一、BP神经网络回顾


人工全连接神经网络
(1)每相邻两层之间的每个神经元之间都是有边相连的
(2)当输入层的特征维度变得很高时,这时全连接网络需要训练
              的参数就会增大很多,计算速度就会变得很慢
传统神经网络存在的问题:
(1)权值太多,计算量太大
(2)权值太多,需要大量样本进行训练

二、CNN卷积神经网络
1、CNN的主要概述
卷积层的神经元只与前一层的 部分神经元节点相连 ,即它的神经元间的连接是非全连接的,且同一层中某些神经元之间的连接的 权重w 偏置b 是共享的(即相同的)
      大量地减少了需要训练参数的数量
CNN主要特点 :减少权值,局部连接,权值共享
CNN通过 感受野 权值共享 减少了神经网络需要训练的参数的个数。
2、CNN的一般结构
输入层 :用于数据的输入
卷积层 :使用 卷积核 进行 特征提取 特征映射
激励层 :由于卷积也是一种线性运算,因此需要增加非线性映射
池化层 :压缩数据和参数的量,减小过拟合。
全连接层 :通常在 CNN 的尾部进行重新拟合,减少特征信息的损失
输出层 :用于输出结果
(1)输入层
在CNN的输入层中,(图片)数据输入的格式与全连接神经网络的输入格式(一维向量)不太一样。CNN的输入层的输入 格式保留了图片本身的结构
对于黑白的 28×28 的图片,CNN的输入是一个28×28 的的 二维神经元
对于RGB格式的28×28图片,CNN的输入则是一个 3×28×28 的 三维神经元 (RGB中的每一个颜色通道都有一个 28×28 的矩阵),如下图所示:

(2)卷积层
需要明确的几个概念:
感受视野(  local receptive fields
    即感受 上一层的部分特征。在卷积神经网络中,隐藏层中的神经元的感受视野比较小,只能看到上一次的 部分特征 ,上一层的其他特征可以通过 平移感受视野 来得到同一层的其他神经元。
卷积核
    感受视野中的 权重矩阵
共享权值( shared weights
步长( stride
    感受 视野对输入的扫描间隔称为 步长( stride
边界扩充( pad
     当 步长比较大时( stride>1 ),为了扫描到边缘的一些特征,感受视野可能会 “出界” ,这时需要对 边界扩充 (pad)
特征映射图( feature map
     通过一 个带有 卷积核 感受视野  扫描生成的下一层神经元矩阵 称为一个 特征映射图( feature map
通过以下图理解以上概念及卷积计算



(3)激励层
激励层主要对卷积层的输出进行一个 非线性映射 ,因为卷积层的计算还是一种线性计算。使用的激励函数一般为 ReLu 函数
      卷积 层和激励层通常合并在一起称为“卷积层”。
(4)池化层
当输入经过卷积层时,若感受视野比较小,布长 stride 比较小,得到的 feature map (特征映射图)还是比较大,可以通过池化层来对每一个 feature map 进行 降维操作 ,输出的深度还是不变的,依然为 feature map 的个数。
池化层也有一个“池化视野( filter )”来对 feature map 矩阵进行扫描,对“池化视野”中的 矩阵值进行计算 ,一般有两种计算方式:
   (1 Max pooling :取“池化视野”矩阵中的 最大值
   (2 Average pooling :取“池化视野”矩阵中的 平均值


(5)全连接层和输出层
全连接层 主要对特征进行重新拟合,减少特征信息的丢失。
输出层 主要准备做好最后目标结果的输出。
(6)中间还可以使用其他的功能层
归一化层 Batch Normalization ):在 CNN 中对特征的归一化
  切分层 :对某些(图片)数据的进行分区域的单独学习
   融合层 :对独立进行特征学习的分支进行融合



CNN卷积神经网络实现Mnist数据集:








参考博客资料:




相关文章
|
2月前
|
机器学习/深度学习 编解码 PyTorch
Pytorch实现手写数字识别 | MNIST数据集(CNN卷积神经网络)
Pytorch实现手写数字识别 | MNIST数据集(CNN卷积神经网络)
|
1月前
|
机器学习/深度学习 算法 数据库
基于CNN卷积网络的MNIST手写数字识别matlab仿真,CNN编程实现不使用matlab工具箱
基于CNN卷积网络的MNIST手写数字识别matlab仿真,CNN编程实现不使用matlab工具箱
|
2月前
|
机器学习/深度学习 测试技术 Ruby
YOLOv5改进 | 主干篇 | 反向残差块网络EMO一种轻量级的CNN架构(附完整代码 + 修改教程)
YOLOv5改进 | 主干篇 | 反向残差块网络EMO一种轻量级的CNN架构(附完整代码 + 修改教程)
126 2
|
2天前
|
机器学习/深度学习 数据采集 TensorFlow
R语言KERAS深度学习CNN卷积神经网络分类识别手写数字图像数据(MNIST)
R语言KERAS深度学习CNN卷积神经网络分类识别手写数字图像数据(MNIST)
22 0
|
1月前
|
机器学习/深度学习 人工智能 算法
详细介绍卷积神经网络(CNN)的原理 !!
详细介绍卷积神经网络(CNN)的原理 !!
74 0
|
1月前
|
机器学习/深度学习 自然语言处理 并行计算
神经网络结构——CNN、RNN、LSTM、Transformer !!
神经网络结构——CNN、RNN、LSTM、Transformer !!
127 0
|
1月前
|
机器学习/深度学习 算法
基于CNN+LSTM深度学习网络的时间序列预测matlab仿真
基于CNN+LSTM深度学习网络的时间序列预测matlab仿真
|
1月前
|
机器学习/深度学习 编解码 人工智能
一篇文章搞懂CNN(卷积神经网络)及其所含概念
一篇文章搞懂CNN(卷积神经网络)及其所含概念
68 0
一篇文章搞懂CNN(卷积神经网络)及其所含概念
|
2月前
|
算法
m基于Faster-RCNN网络的人员摔倒检测系统matlab仿真,带GUI操作界面
m基于Faster-RCNN网络的人员摔倒检测系统matlab仿真,带GUI操作界面
31 9
|
2月前
|
机器学习/深度学习 算法 TensorFlow
基于 Python中的深度学习:神经网络与卷积神经网络
基于 Python中的深度学习:神经网络与卷积神经网络

热门文章

最新文章