cnn输入层_CNN概述

087fa850fa6741bbadcf9a0618a23b9f.png

CNN——Convolutional Neural Network

我的博客:

CNN概述_人工智能_稚与的博客-CSDN博客​blog.csdn.net
9f3453fa8b3b6dbe35f4eebf98ebff62.png

卷积神经网络简介

  • 特点
    • 将大数据量的图片降维成小数据量
    • 有效保留图片特征
  • 应用领域
    • 人脸识别、自动驾驶、无人安防
  • CNN解决的问题
    • 图像的数据量太大,导致成本很高,效率很低
    • 图像在数字化的过程中容易丢失特征
    • (其实就对应了两个特点)

下面具体看一下这两个问题

数据量大

图像是由很多像素构成的,每个像素又是由颜色构成的。一张彩色图,每一个像素都有RGB(即光学三原色)三个通道,用于表示颜色信息。所以,对于一张常见的1000*1000清晰度的图片,就会含有1000*1000*3个数值需要计算,这显然是一个庞大的数据。

为了解决此问题,CNN将大量参数降维成少量参数。

需要说明的是,降维并不会影响结果。就比如将一张图像在一定范围内缩小,图像的特征仍然不会改变。

保留图像特征

28cc15a8c60625eb278120f2db424009.png

如果简单地将图像的特征01化,即有圆形的地方为1,其余地方为0。则对于特征相近的图像(比如平移),则数字化的矩阵会有很大区别。

为解决此问题,CNN用视觉的方式保留图像特征,即模仿人的肉眼去提取、存留特征。

人的视觉原理

深度学习的理论研究,很大程度上是对人视觉的模仿。

人类视觉如何运作?

a9ebef111c7dbd580bba384aca101bee.png

首先摄入原始信号(即各种颜色的像素点),然后提取不同物体间的分界,接着识别图像的抽象(如几何形状),最后判断物体。

对应成图像处理的步骤:读取图像并数值化、提取图像边缘、提取图像特征、图像分类。

所以一个图像处理的思路是:构造多层的神经网络,较低层提取初级的图像特征,较高层进一步细化,最终在顶层实现图像的分类。

CNN基本原理

  • CNN三个基本组成部分
    • 卷积层:提取图像局部特征
    • 池化层:数据降维
    • 全连接层:输出结果

卷积层

核心部分是一个卷积核,滑窗处理。大致思路是用一个卷积核来过滤图像的各个区域,得到这些小区域的特征值

db227bab6d926777af5b24fbb02f2772.gif

具体计算过程为对应项相乘然后相加。

30aac5f3e509dc4cb905c5d1b0d3cb51.png

(32*32*3->28*28*1)

在具体应用中,往往有多个卷积核,可以认为,每个卷积核代表了一种图像模式,如果某个图像块与此卷积核卷积出的值大,则认为此图像块十分接近于此卷积核。如果我们设计了6个卷积核,可以理解:我们认为这个图像上有6种底层纹理模式,也就是我们用6中基础模式就能描绘出一副图像。比如说垂直边缘、水平边缘等。

443f15c8208601f4a98cb68185e31b3a.png

如果使用6个卷积核提取,最终得到6个特征图,叠加在一起就得到了卷积层。

e779e63604469c87e6b5652da93fd13f.png

同时可以对卷积层继续进行卷积操作。注意每一个卷积核的深度和上一层的输入相等。经过连续的卷积不断提炼出高层次的特征,一步步将特征浓缩,得到高层次特征,最终达到分类效果。

可以发现,其实卷积层已经将图像缩小了一圈(如果不加边框),但是效果并不明显。

在了解卷积的大致过程后,还有一些细节部分需要思考。

  • 卷积核每次滑动的步长stride
    • 步长如果太大,比如大于卷积核的长度,则会遗漏一些像素点,导致特征损失。
    • 步长如果太小,比如为1,则效率太低。
  • 卷积对每个像素点是否平权
    • 由于滑窗的交集部分是计算了多次的,所以边缘的像素点计算次数少于中间的像素点。所以可能会丢失一部分边缘信息。
    • 解决方法是在图像外围加一圈0(或多圈),使得在不影响特征的情况下,增加边缘像素点的计算次数。

a6fb48897f680a9324199c9164209d02.png
  • 由于卷积的过程是多次叠加的,所以需要计算卷积过程中每一次的输入图尺寸,来设计卷积核。

  • 权值共享
    • 同一卷积过程中,filter内的值不变,即对于每一时刻滑窗对应的矩阵,各个位置的参数对于结果的权重保持一致。

前向传播和反向传播

  • 前向传播即是卷积的操作。(输入->输出)

本质是用输入层和卷积核去求解卷积结果。​表示第i个卷积核。

bf8f6ed1c438c27fb0614294ce791d90.png
  • 反向传播

本质是已知卷积结果,去更新​的过程。

4e69a80b5ab9573c6d1f0363d69a904d.png

提取边缘特征

  • 为什么中间的卷积核可以提取垂直边缘?

b3e50db0e649c7f0354657a99ddcf311.png

在颜色相近的区域,矩阵内的值相近,卷积计算的结果小,表现为暗色;在颜色区别明显的区域(可以认为是边缘),卷积计算结果大,表现为白色。

  • 垂直边界和水平边界

一个物体的边界可以看成由许多小的垂直边缘和水平边缘组成。

49f19f305dfe78824540372411bae3b0.png

偏差值和激活函数

  • 卷积计算后还需加入偏差​,计算出新矩阵放入激活函数(Relu、Softmax、logistic等),作为卷积层的输出结果。

池化层(下采样)

池化层可以大大降低数据的维度,也可以有效避免过拟合。如下图(20*20->2*2)

72f7df7d52733d49dbdd9d8c6d886379.gif

池化的大致过程:选取输入图中某个区域的最大值或均值来代替整个区域。在一幅图像中提取最大值可能意味着提取了某些特定特征,如垂直边缘等。

ad3312a4f9e1928007cf2b27d8c5bc44.png

全连接层

经过卷积层和池化层降维过的数据,全连接层才能”跑得动”,不然数据量太大,计算成本高,效率低下。

c520044c43e0e881eae5052a167dad90.png

典型的 CNN 并非只是上面提到的3层结构,而是多层结构,例如 LeNet-5 的结构就如下图所示:

卷积层 – 池化层- 卷积层 – 池化层 – 卷积层 – 全连接层

311ceb37a426cfe36c236137a3ee5462.png

ec9af0d64d52cc93c746d4ad67b9c70d.png

也就是说卷积和池化重复出现,避免一次池化降维太快,导致特征损失。

reference:

一文看懂卷积神经网络-CNN(基本原理+独特价值+实际应用)- 产品经理的人工智能学习库​easyai.tech
331c23112bfcc9db69467e2e98f653e3.png
一文让你彻底了解卷积神经网络_人工智能_比比的博客-CSDN博客​blog.csdn.net
45e44ab18dfda3b5e098819f8238fc6d.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值