MyFPGA Forum

标题: 关于卷积神经网络体系设计的理论实现 [打印本页]

作者: winter    时间: 2020-6-23 13:36
标题: 关于卷积神经网络体系设计的理论实现
本帖最后由 winter 于 2020-6-23 13:40 编辑

目录

一、卷积神经网络与常规神经网络的区别
二、CNN的工作机制和原理
三、卷积神经网络体系结构
四、卷积神经网络的设计
      

       卷积神经网络,简称CNN,常用于视觉图像分析的深度学习的人工神经网络。形象地来说,这些网络结构就是由生物的神经元抽象拟合而成的。正如,每个生物神经元可以相互通信一般,CNN根据输入产生类似的通信输出。

       若要论CNN的起源,那大概就是1980年代初了,随着最近技术的迅猛进步和计算能力的不断强大,CNN就此流行起来。简而言之,CNN技术允许在合理的时间内,利用其自身性和扩展性的算法对大量数据和复杂训练进行卷积维度的“神经”运算。目前,CNN主要应用于:基于人工智能的虚拟助手、自动照片标记、视频标记和自动驾驶汽车等方面。

一、卷积神经网络与常规神经网络的区别




二、CNN的工作机制和原理

      卷积层都是基于卷积的数学运算。卷积层由一组滤波器组成,就像一个二维数字矩阵。然后,滤波器与输入图像合并以产生输出。在每个卷积层中,我们采用一个滤波器并将滤波器滑动到图像上以执行卷积操作。卷积运算的主要任务是对图像的滤波值和像素进行矩阵乘法,并将得到的值相加得到输出。


        CNN可以帮助我们寻找特定的局部化图像特征,例如:借助图像中的边缘,我们可以在网络初始层中,使用这些特征来寻求一个简单的模式。这一过程暂且称之为局部建模。再利用局部模型中的,划分图像的水平和垂直边缘。当然,也可以借助更深的层次结构,进行二度复杂的模式构建。

        一个典型的案例,就是垂直边缘检测的示例:



三、卷积神经网络体系结构

        首先,卷积神经网络由许许多多的卷积层进行组建,卷积层是CNN相对基础的部分。它主要负责承载CNN计算的负荷。这个基础层有助于减少神经定义的空间。因为符合这一特性,我们这里姑且将这基础层喻为单元池。这使得我们在进行类似CNN操作时,大大减少了所需的计算量和权重。目前,最所主流的检测过程也可以说是最大的池,它能检测出就近原理的最大输出。这些单元池提供了我们前面提及的检测不变性,这也恰恰意味着,一个对象将是可识别的,无论它出现在框架上的任何位置。

        我们这里,可以将部分单元池按照一定的线性规则进行链接而形成新的结构体,称为全连接层(FC)。这一层的神经元与前一层或者后续一层的所有神经元,都有完全的连通性,就像常规的神经网络中所看到的那样。这就是为什么它可以像常规神经网络一样,通过矩阵乘法和偏置效应来计算。FC层还能表示输入和输出之间的映射关系。 而对于非线性的网络层来说,由于卷积是一种线性运算,而且图像远离线性,因此常将非线性层直接置于卷积层之后,将非线性引入后直接激活映射。

  非线性运算有几种,流行的有:
                    

四、 卷积神经网络的设计

        在充分了解了CNN的组成要素和工作机制之后,我们就可以建立一个卷积神经网络了。例如:我们可以使用CIFAR 10,这是一个由50,000个示例和10,000个示例组成的训练集的数据集。每个示例是一个32×32彩色图像,均来自10个相互关联的标签类中。

        在数据训练与模型的拟合过程中,我们采用了数据增强的方法。在所构建的网络中,使用了分批层次,通过采取具有强制性质的高斯单位分布,避免了权重矩阵初始化不当的问题。用于实现的CNN模型的体系结构:




作者:Raodi 饶 弟
出处:http://www.cnblogs.com/Raodi/

本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。





欢迎光临 MyFPGA Forum (http://www.myfpga.org/discuz/) Powered by Discuz! X3