人工智能Artificial Intelligence中卷积神经网络Convolutional Neural Network基本原理综述

人工智能(Artificial Intelligence,简称AI)的Deep Learning(深度学习)通过机器学习,把某一层的输出output当做下一层的输入input。在人工智能中,认为output是机器通过深度学习获得的某种“智慧”。深度学习(Deep Learning)通过神经网络把海量数据分组,然后形成组合分层结果,这样就形成了神经网络,通过层层的深度学习,最终获得理想的结果。人工智能的最终目的,是实现机器能够高效模拟人类大脑进行有效思考,在人类有挑战意义的领域,进化出超越人类认知和思考水平的人工智能。

卷积神经网络(Convolutional Neural Network,简称CNN)基本结构和原理

卷积神经网络是人工神经网络的一种,卷积神经网络是机器深度学习中的一种“前馈神经网络”,前馈是信号量的输入获得,到输出过程是往前方传导的,简言之信号是往前方传递的,所以称之为前馈。前馈用以神经网络的计算输出,不对神经网络调整,每一层中每一个神经元算出该层的输出并向下一层传递到输出层,进而计算出网络的输出结果。Back Propagation神经网络,即BP神经网络。反向传播训练神经网络权值和阈值的调整。网络前向传递计算输出结果时与正确结果存在误差,因此需要Back Propagation调整神经网络的前向计算过程。

卷积神经网络本质上是一种输入到输出的映射网络,它能够学习大量的输入与输出之间的映射关系,而不需要任何输入和输出之间的精确的数学表达式,只要用已知的模式对卷积神经网络加以训练,神经网络就具有输入输出之间的映射能力。卷积神经网络执行的是有监督训练,所以其样本集是由形如:(输入向量,理想输出向量)的向量对构成。这些向量对,可以是从实际运行系统中采集来。在开始训练前,所有的权重都应该用一些不同的小随机数进行初始化。小随机数用来保证神经网络不会因权值过大而进入饱和状态,从而导致训练失败,权值不同用来保证神经网络可以正常地学习。事实上,如果用相同的权值去初始化矩阵,则神经网络无能力学习。

卷积神经网络是一个多层的神经网络,每层由多个二维平面组成,而每个平面由多个独立神经元组成。卷积神经网络的神经元感知周围神经单元。


图像通过和三个可训练的滤波器和可加偏置进行卷积,滤波过程如图,卷积后在C1层产生三个特征映射图,然后特征映射图中每组的四个像素再进行求和,加权值,加偏置,通过一个Sigmoid函数得到三个S2层的特征映射图。这些映射图再进入滤波器得到C3层。这个层级结构再和S2一样产生S4。最终,这些像素值被光栅化,并连接成一个向量输入到传统的神经网络,得到输出。
C层为特征提取层,每个神经元的输入与前一层的局部感受器(探测器)相连,并提取该局部的特征,一旦该局部特征被提取后,它与其他特征间的位置关系也随之确定下来;S层是特征映射层,卷积神经网络的每个计算层由多个特征映射组成,每个特征映射为一个平面,平面上所有神经元的权值相等。卷积运算可以使原信号特征增强,并且降低噪音,这种特征提取结构在识别时对输入样本有较高的畸变容忍能力。
卷积神经网络包含卷积层和池化层。卷积神经网络特征检测层通过数据训练进行学习,避免显示的特征提取,隐式地从训练数据中进行深度学习,同一特征映射面上的神经元权值相同,意味着可以并行训练学习。流行的分类方式多是基于统计特征,这意味着在进行分类前必须提取某些特征。然而,显式的特征提取并不容易,在一些实际问题中也并非总是可靠的。卷积神经网络,避免了显式的特征取样,隐式地从训练数据中进行学习。这使得卷积神经网络明显有别于其他基于神经网络的分类器,通过结构重组和减少权值将特征提取功能融合进多层感知器。

最小化数据预处理:通过感受野和权值共享减少神经网络需要训练的参数个数

卷积神经网络降低参数数量,目的是降低计算负荷压力。其中一个策略是局部感知,以图像识别为例,如果把一个1000 X 1000的图像作为输入参数,每个隐层神经元都连接感知图像的每一个像素点,如果全连接,那数据就太多,1000x1000x1000000=10^12,计算压力太大,所以要考虑一种有效的方式。局部感知可以解决这个问题,局部感知基于以下基本假设:人类的大脑在认知周围世界时候,是从局部到全局的。任一图像中,某一特定像素点和局部周围的像素关系紧密,而和较远距离的全局像素关系不是非常密切,即平面图像的空间联系是局部的。每一个神经元,没有必要对全局的像素点都要认知,一不必要,二是资源浪费。每一个神经元都无须对全局图像做感受,每个神经元只感受局部的图像,然后在更高层,这些感受到不同局部的神经元综合起来就可以得到全局信息。
神经网络中的参数经过局部感知后,有些时候数据集可能仍然非常大。此时可以考虑第二种方案,权值共享。假设图像中有1000X1000=1000000(一百万)个像素点,经过处理,每个神经元100(卷积操作)个特征相同,那么此时要处理的1000000数据集问题就缩减为处理100的问题,数据量大大降低。局部感受野是10X10,隐层每个感受野只需要和这10X10的局部图像相连接,所以1百万个隐层神经元就只有一亿个连接,即10^8个参数。比原来降低四个0(数量级)。

隐层的每一个神经元都连接10X10个像素点,即每一个神经元存在10 X 10=100个连接权值参数。如果每个神经元这100个参数是相同的呢?也就是说每个神经元用的是同一个卷积核去卷积图像。这样我们就只有100个参数,不管隐含层的神经元个数有多少,两层间的连接我只有100个参数,这就是卷积神经网络权值共享。
权值共享降低了网络的复杂度,避免了特征提取和分类过程中模型重建开销。权值共享的方式:假设针对图像,设定100个提取(学习)特征,这100个提取特征与图像中的不同区域及位置没有关系,是打算要深度学习的特征。图像的一块(局部感受野)作为层级结构中最低层的输入,信号再依次传输到不同的层,每层通过一个数字滤波器(或探测器)去获取感知数据的最显著的特征。
举例,假设从一个图像中取出8 X 8的像素样本中首先训练机器学习到的特征作为探测器,然后再回归到图像中的任一区域。举例,假设从图像中选取一小块8 X 8的区域,通过对8 X 8的小区域学习到的特征与1000 X 1000的图形做卷积,从而就得到该完整图像中任一位置的有价值的输出值,激活值。
下图展示了3 X 3的卷积核在5 X 5的图像上做卷积的过程。每一次卷积均以固定的算式算出激活值,假设激活值越大越符合要求的条件,那么通过这种筛选方式就可以筛出需要的图像:

卷积神经网络中的多核卷积

实际的运用中,往往要多层卷积,多层卷积越往层级高的地方,特征越具有全局意义,单层卷积学习到的特征更多的是局部性特征。如果用100个参数时,只有一个10 X 10的卷积核,这样的特征提取是不充分的。这样只提取一种特征,现实中需要提取多种特征。假如一种滤波器,也就是一种卷积核,去提取图像的一种特征,比如某个方向边缘。那需要提取不同的特征,就需要加多几种滤波器(探测器)。所以当加到100种滤波器,每种滤波器的参数不一样,表示它提出输入图像的不同特征,例如不同的边缘。这样每种滤波器去卷积完整图像就得到对图像不同特征的映射Feature Map。因此100种卷积核就有100个Feature Map。这100个Feature Map就组成了一层神经元。100种卷积核乘以每种卷积核共享100个参数=100x100=10K,每一层也就是1万个参数。

不同的颜色代表不同的卷积核,也即不同的颜色表达不同的滤波器,每一个卷积核算出的结果形成一幅全新的图像。
再假设针对图像设定更多的卷积核,比如32个,这也就意味着可以学习32个特征。多个卷积核时候,32个卷积核,生成32幅图像。这32幅图可以认为是完整图像的不同通道。
通过卷积算出特征后,开始利用特征进行分类,理论上可以用所有提取到的特征训练分拣器,但这里计算机要处理的数据太多太多。比如一个96 X 96像素图像,假设已经学习得到400个定义的8 X 8输入的特征,每一个特征和图像卷积都会得到一个 (96−8+1)×(96−8+1)=7921维的卷积特征,由于有 400 个特征,所以每个样例就会得到一个 7921 × 400 = 3,168,400 维的卷积特征向量。学习一个拥有超过三百多万特征输入的分类器任务量太大,并且容易出现过拟合 (over-fitting)。
卷积后的特征值,在完整图像的不同区域极有可能仍然适用,因此为了描述一个大图像的特征,可以针对不同位置的特征进行聚合统计。比如可以计算图像中某一块区域的平均值(或者最大值),这些概略性的特征统计,第一可以大大降低需要计算的维度,第二还可以从一定程度上改善拟合结果。这种聚合的计算过程就叫做池化 (Pooling),或称之为平均池化或者最大池化 (依据计算池化的方式):

人工智能中卷积神经网络基本原理综述相关推荐

  1. 【论文翻译】卷积神经网络研究综述

    论文题目:卷积神经网络研究综述 论文来源:卷积神经网络研究综述 翻译人:BDML@CQUT实验室 卷积神经网络研究综述 Review of Convolutional Neural Network 周 ...

  2. 图卷积神经网络(GCN)综述与实现(PyTorch版)

    图卷积神经网络(GCN)综述与实现(PyTorch版) 本文的实验环境为PyTorch = 1.11.0 + cu113,PyG = 2.0.4,相关依赖库和数据集的下载请见链接. 一.图卷积神经网络 ...

  3. 深度学习算法中卷积神经网络的应用

    下面一起来探讨一下关于深度学习算法中卷积神经网络的基本概念和应用: 1.卷积神经网络基本概念 卷积神经网络也是在传统人工神经网络的基础上发展起来的,它与 BP 神经网络有很大的相似之处,但也有很大的区 ...

  4. 神经网络和人工智能原理,人工神经网络基本原理

    神经网络的基本原理是什么? 神经网络的基本原理是:每个神经元把最初的输入值乘以一定的权重,并加上其他输入到这个神经元里的值(并结合其他信息值),最后算出一个总和,再经过神经元的偏差调整,最后用激励函数 ...

  5. 卷积神经网络 图像处理,卷积神经网络基本原理

    基于深度卷积神经网络进行人脸识别的原理是什么? 本质上是模式识别,把现实的东西抽象成计算机能够理解的数字.如果一个图片是256色的,那么图像的每一个像素点,都是0到255中间的一个值,这样你可以把一个 ...

  6. [Python人工智能] 八.卷积神经网络CNN原理详解及TensorFlow编写CNN

    从本专栏开始,作者正式开始研究Python深度学习.神经网络及人工智能相关知识.前一篇文章介绍了什么是过拟合,并采用droput解决神经网络中过拟合的问题,以TensorFlow和sklearn的lo ...

  7. 人工智能和卷积神经网络,卷积神经网络算法实现

    人工智能的原理是什么 人工智能的原理,简单的形容就是:人工智能=数学计算.机器的智能程度,取决于"算法".最初,人们发现用电路的开和关,可以表示1和0. 那么很多个电路组织在一起, ...

  8. ai照片放大python源码_Bigjpg - AI人工智能图片无损放大 - 使用人工智能深度卷积神经网络(CNN)无损放大图片...

    常见问题 软件下载 放大原理是什么? 使用最新人工智能深度学习技术--深度卷积神经网络.它会将噪点和锯齿的部分进行补充,实现图片的无损放大.查看示例图片 bigjpg 有API吗? 有的! 登录后在用 ...

  9. 人工智能发展史——卷积神经网络

    1.卷积神经网络发展史(convolutional neural networks,CNN) CNN是针对图像领域任务提出的神经网络,经历数代人的发展,在2012年之后大部分图像任务被CNN统治,例如 ...

最新文章

  1. 多多客DOODOOKE更新插件模块及下载附件教程
  2. 【网络安全】NFS服务安全加固
  3. 道县谋定农业创新-李加映:中国农民丰收节交易会产业化
  4. android读取excel文件_python里读写excel等数据文件的几种常用方式
  5. 分治算法求最大最小值c语言,[蓝桥杯][算法提高VIP]和最大子序列 (C语言代码)分治法...
  6. Redis整合Springboot实现单机配置
  7. 最大值减最小值等于区间长度_呆哥数学每日一题 ——三角函数求余弦最小值...
  8. 如何创建一个最小的串口、TTY设备包括虚拟控制台,串口以及伪终端设备的驱动程序
  9. 戴尔电脑开机黑屏怎么办_电脑黑屏开不了机怎么办
  10. mysql查询添加数据库表_MySQL数据库篇之表的增删改查
  11. 2019小程序没必要做了_2019年什么行业适合做小程序
  12. 论文记载:FRAP:Learning Phase Competition for Traffic Signal Control
  13. Go Context 原理详解
  14. 函函函函函函函函函函函数——two
  15. mysql获取经纬度_mysql-百度地图从MySql中获取经纬度
  16. iSpring SDK 10 Crack!iSpring SDK NEW @ 2022定格!
  17. 常用虚拟机服务器系统,VM虚拟机10/11+各种纯净虚拟机系统镜像完整版
  18. 离散数学_九章:关系(1)
  19. iniparser——C配置文件解析库
  20. 关于 某讯QQ群的群文件上传和下载出现错误-134 的解决方法

热门文章

  1. 微软飞行模拟器android,微软飞行模拟器2020
  2. office“你的许可证不是正版,并且你可能是盗版软件的受害者
  3. 树莓派常用的软件(记录)
  4. ADB局域网连接手机进行调试项目
  5. 读易[11]·业务平台在系统中的位置
  6. 一个密码本(ACodebook)介绍
  7. 多模态学习 讲座记录
  8. Pixelmator Pro 教程,认识 Pixelmator Pro 界面
  9. html 体温单源码,体温单 三色单
  10. 07thinkphp第二天总结