卷积神经网络

图文并茂地讲解卷积神经网络

卷积神经网络(Convolutional Neural Network,CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。 它包括卷积层(convolutional layer)和池化层(pooling layer)。

对比:卷积神经网络、全连接神经网络

图文并茂地讲解卷积神经网络

左图:全连接神经网络(平面),组成:输入层、激活函数、全连接层

右图:卷积神经网络(立体),组成:输入层、卷积层、激活函数、池化层、全连接层

在卷积神经网络中有一个重要的概念:深度

卷积层

卷积:在原始的输入上进行特征的提取。特征提取简言之就是,在原始输入上一个小区域一个小区域进行特征的提取,稍后细致讲解卷积的计算过程。

卷积神经网络CNN在自然语言处理中的应用

作者: Yelbosh

卷积神经网络(Convolution Neural Network, CNN)在数字图像处理领域取得了巨大的成功,从而掀起了深度学习在自然语言处理领域(Natural Language Processing, NLP)的狂潮。2015年以来,有关深度学习在NLP领域的论文层出不穷。尽管其中必定有很多附庸风雅的水文,但是也存在很多经典的应用型文章。笔者在2016年也发表过一篇关于CNN在文本分类方面的论文,今天写这篇博客的目的,是希望能对CNN的结构做一个比较清晰的阐述,同时就目前的研究现状做一个简单的总结,并对未来的发展方向做一个小小的期望。由于笔者在深度学习方面的资历尚浅,因此如文中出现错误,请不吝赐教。

一. CNN的结构阐述(以LeNet-5为例)

卷积神经网络(2)分类与回归—几类经典网络简介

卷积神经网络(Convolutional Neural Network,CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。它包括卷积层(convolutional layer)和池化层(pooling layer)。

1、经典神经网络有:2012年提出的AlexNet和2014年提出的VGGNet,结构图分别如下:

卷积神经网络(2)分类与回归—几类经典网络简介卷积神经网络(2)分类与回归—几类经典网络简介

2.分类与回归:

(1)分类(classfication):就是经过经过一系列的卷积层和池化层之后,再经过全连接层得到样本属于每个类的得分,再用比如softmax分类其对其进行分类;

详解卷积神经网络(CNN)

卷积神经网络(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。

概揽

卷积神经网络(Convolutional Neural Networks / CNNs / ConvNets)与普通神经网络非常相似,它们都由具有可学习的权重和偏置常量(biases)的神经元组成。每个神经元都接收一些输入,并做一些点积计算,输出是每个分类的分数,普通神经网络里的一些计算技巧到这里依旧适用。

所以哪里不同呢?卷积神经网络默认输入是图像,可以让我们把特定的性质编码入网络结构,使是我们的前馈函数更加有效率,并减少了大量参数。

具有三维体积的神经元(3D volumes of neurons)

卷积神经网络利用输入是图片的特点,把神经元设计成三个维度 : width, height, depth(注意这个depth不是神经网络的深度,而是用来描述神经元的) 。比如输入的图片大小是 32 × 32 × 3 (rgb),那么输入神经元就也具有 32×32×3 的维度。下面是图解:

卷积神经网络(3)——几种简单训练技巧

卷积神经网络(Convolutional Neural Network,CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。它包括卷积层(convolutional layer)和池化层(pooling layer)。

下面来介绍几种简单的训练技巧:

1、首先说一下filter(感受野)的概念:感受野的大小即特征图中的某一单元是从原始输入图像中多大的一块区域中提取的特征;

卷积神经网络——几种简单训练技巧

如上图,第一次卷积后得到的特征图中,每一个小单元的感受野大小为3*3,而第二次卷积后特征图中的每一个小单元对应的感受野大小为5*5,以此类推,如果

用三层3*3的filter,那么最后一层特征图中每一个小单元的感受野大小即为7*7。

卷积神经网络(1)——卷积层和池化层学习

卷积神经网络(CNN)由输入层、卷积层、激活函数、池化层、全连接层组成,即INPUT-CONV-RELU-POOL-FC

(1)卷积层:用它来进行特征提取,如下:

卷积神经网络(1)——卷积层和池化层学习

输入图像是32*32*3,3是它的深度(即R、G、B),卷积层是一个5*5*3的filter(感受野),这里注意:感受野的深度必须和输入图像的深度相同。通过一个filter与输入图像的卷积可以得到一个28*28*1的特征图,上图是用了两个filter得到了两个特征图;

我们通常会使用多层卷积层来得到更深层次的特征图。如下:

卷积神经网络(1)——卷积层和池化层学习

卷积神经网络的几种简单训练技巧

卷积神经网络(Convolutional Neural Network,CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。它包括卷积层(convolutional layer)和池化层(pooling layer)。

下面来介绍几种简单的训练技巧:

1.首先说一下filter(感受野)的概念:感受野的大小即特征图中的某一单元是从原始输入图像中多大的一块区域中提取的特征;

卷积神经网络的几种简单训练技巧

如上图,第一次卷积后得到的特征图中,每一个小单元的感受野大小为3*3,而第二次卷积后特征图中的每一个小单元对应的感受野大小为5*5,以此类推,如果用三层3*3的filter,那么最后一层特征图中每一个小单元的感受野大小即为7*7。同时我们可以推论:卷积层数越多,越后面的特征图中的每个单元的感受野大小就越大,特征提取的效果就越好。

这时我们有一个问题,能不能用一层7*7的filter来代替三层3*3的filter?

卷积神经网络(CNN)模型结构

在DNN大类中,卷积神经网络(Convolutional Neural Networks,以下简称CNN)是最为成功的DNN特例之一。CNN广泛的应用于图像识别,当然现在也应用于NLP等其他领域,本文我们就对CNN的模型结构做一个总结。

1. CNN的基本结构

首先我们来看看CNN的基本结构。一个常见的CNN例子如下图:

卷积神经网络(CNN)模型结构

图中是一个图形识别的CNN模型。可以看出最左边的船的图像就是我们的输入层,计算机理解为输入若干个矩阵,这点和DNN基本相同。

卷积神经网络的复杂度分析

在梳理CNN经典模型的过程中,我理解到其实经典模型演进中的很多创新点都与改善模型计算复杂度紧密相关,因此今天就让我们对卷积神经网络的复杂度分析简单总结一下下。

1.时间复杂度

卷积神经网络的复杂度分析
1.2 卷积神经网络整体的时间复杂度
卷积神经网络的复杂度分析
示例:用 Numpy 手动简单实现二维卷积

假设 Stride = 1, Padding = 0, img 和 kernel 都是 np.ndarray.

徒手实现CNN:综述论文详解卷积网络的数学本质

近日南洋理工大学研究者发布了一篇描述卷积网络数学原理的论文,该论文从数学的角度阐述整个卷积网络的运算与传播过程。该论文对理解卷积网络的数学本质非常有帮助,有助于读者「徒手」(不使用卷积API)实现卷积网络。

在该论文中,我们将从卷积架构、组成模块和传播过程等方面了解卷积网络的数学本质。读者可能对卷积网络具体的运算过程比较了解,入门读者也可先查看 Capsule 论文解读的第一部分了解详细的卷积过程,但其实我们一般并不会关注于卷积网络到底在数学上是如何实现的。因为各大深度学习框架都提供了简洁的卷积层API,所以我们不需要数学表达式也能构建各种各样的卷积层,我们最多只需要关注卷积运算输入与输出的张量维度是多少就行。这样虽然能完美地实现网络,但我们对卷积网络的数学本质和过程仍然不是太清楚,这也就是本论文的目的。

下面我们将简要介绍该论文的主体内容,并尝试理解卷积网络的数学过程。有基础的读者可以查阅原论文以实现更深的理解,此外我们也许能借助该论文的计算式在不使用层级 API 的情况下实现简单的卷积网络。

同步内容
--电子创新网--
粤ICP备12070055号