电脑疯子技术论坛|电脑极客社区

微信扫一扫 分享朋友圈

已有 4413 人浏览分享

一文了解卷积神经网络基础,建议收藏

[复制链接]
4413 1
今天给大家讲一下卷积神经网络 主要包括四个部分:卷积神经网络的历史 全连接层 卷积层和池化层。
CNN的英文全称是Convolutional Neural Network 雏形是LeCun在1998年发明的LeNet网络结构。

9030CC5DDF27E4704ACAE544867643EA.jpg

LeNet网络架构

那么到底什么是神经网络呢?应该说只要带有卷积层的就可以被叫做卷积神经网络。

QQ截图20200814154334.png

1986年:Rumelhart和Hinton等人提出了反向传播(Back Propagation)算法。
1998年:LeCun基于BP神经网络训练了LeNet网络 标志着CNN的真正面世。
2006年:Hinton在他们的Science Paper中首次提出了Deep Learning的概念。

2012年:其实在2006年Hinton提出深度神经网络之后 受到了很多的质疑 但是在2012年Hinton的学生Alex Krizhevsky在
寝室用GPU死磕了一个Deep Learning模型 一举拿下了计算机视觉TOP领域ILSVRC 2012的冠军 在百万量级的ImageNet
数据集合上 效果大幅度的超过了传统的方法 准确率从70%提升到80%。

952.png

98.jpg

其实全连接层就是模仿大脑的神经元结构,我们可以看到:
输出值 = 输入值x经过加权w之后累加的结果再经过激励函数。形式化为:

A1C0110CF023BC213285E752AEAEC60B.jpg

那么我们将神经元按列进行排列 列与列之间进行全连接 就得到了一个BP神经网络。

58DD6FF2C358D57764476D0C01C0D87B.jpg

BP神经网络算法包括信号的前向传播和误差的反向传播两个过程。即计算误差输出时按从输入到输出的方向
进行而调整权值和阈值则从输出到输入的方向进行。
下面我们来看一个实例来了解一下BP神经网络。

实例:利用BP神经网络进行数字识别


87.jpg

我们拿到一张图片 例如上边第一张图所示拿到的是0 这张图是由若干像素组成 每个像素有RGB三个通道 然后经过灰
度化后变成第二张图片 然后将灰度化后的图片进行二值化得到第三张图片。

39.jpg

之后我们对图片进行概率处理 例如第一个框中白色块/全部块 = 0.2 经过相应的策略处理之
后第一个数值为0.2以此类推 可以得到上图右边的矩阵。
然后我们对这个矩阵进行维度变换和处理 将其变为1*n的行向量 这样处理之后的形式可以使得神经网络更好的输入处理。

38.jpg

我们知道神经网络如何输入了 那么最后应该输出什么才可以更好的辨别数字呢?One-Hot编码!

36.jpg

也就是说 每个数字都对应一个编码 如果输入1000000000 则判定为数字0 以此类推。
既然有了输入 也有了输出 我们就可以通过神经网络对其进行训练了。

32.jpg

首先将输入层的神经元数设置为25个节点 将输出层设置为10个节点 将上边1*n的向量输入到BP神经网络中然后经过
隐藏层最后到输出层onehot编码 输出层通过softmax激活函数可以得到每个数字出现的概率 即可识别数字。

12.png

到底什么是卷积层?之前的文章中讲过了 有兴趣的可以直接查看。
漫画:卷积神经网络中的卷积核到底是什么?
漫画:卷积神经网络为什么适合处理图片数据?
干货 | 如何入手卷积神经网络
在卷积层的讲解中 想问大家一个问题 卷积核如果越界了应该如何处理?例如下面这样:

11.jpg

假设用这么一个矩阵 我们使用3*3的滑动窗口 步长为2 则出现下面这种情况应该如何处理?

9.jpg

我们可以对其进行使用Padding对其进行补0处理 如下所示:

8.jpg

在卷积操作过程中 矩阵经过卷积操作之后大小由下面几个因数决定:

输入图像大小W*W
•Filter大小F*F
•步长S
•padding的像素数P

经过卷积后的矩阵尺寸大小是有一个规律的 那么给大家一个通用的公式:
N=(W-F+2P)/S+1

6.png

为什么要存在池化层?因为当前的输入数据太大 有很多冗余信息 那么我们就要想办法对图像矩阵进行下采样对特
征图进行稀疏处理 减少数据运算量。下面通过MaxPooling下采样来给大家看一下到底什么是池化层。

7.jpg

上图中红色部分的值为115 6,我们使用的是MaxPooling 所以取最大值 则右图中红色部
分为max(1,1,5,6)=6以此类推 即可得到下采样结果。
类似于最大下采样 同样也有平均下采样层 如下图所示:

6.jpg

为了大家更好的理解和使用池化层 我总结了池化层的三个特点:

没有训练参数
•只会改变特征矩阵的w和h,不改变channel
•一般pool size和卷积核的stride相同

今天讲的是卷积神经网络的整体架构基础 包括神经网络的发展历史 全连接层 卷积层和池化层
大家有什么见解或者想法都可以在下面留言哦~

评论 1

游戏福利社 游戏福利社  合格会员  发表于 2020-8-17 01:20:32 | 显示全部楼层
对于学习网络的我很有帮助 谢谢大佬

您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

关注

0

粉丝

9021

主题
精彩推荐
热门资讯
网友晒图
图文推荐

Powered by Pcgho! X3.4

© 2008-2022 Pcgho Inc.