CNN

【多图】CNN之间的计算

卷积神经网络(Convolutional Neural Networks,CNN)

1、基本计算原理

【多图】CNN之间的计算

动态过程:
【多图】CNN之间的计算

滤波器(过滤器:filter)的权值是根据你要检测的特征来决定的,在深度学习中,也即是要经过训练得到。检测的特征不同,权值就不一样。

如上单层的图像一般表示的是灰白图,既是没有颜色的,有颜色的RGB图像,会包含三个相同大小的图层,这时对应的滤波器也要变成三层,滤波器的层数(通道数)必须时刻与图像层数保持一致。。。

自然语言处理中CNN模型几种常见的Max Pooling操作

作者:张俊林

CNN是目前自然语言处理中和RNN并驾齐驱的两种最常见的深度学习模型。图1展示了在NLP任务中使用CNN模型的典型网络结构。一般而言,输入的字或者词用Word Embedding的方式表达,这样本来一维的文本信息输入就转换成了二维的输入结构,假设输入X包含m个字符,而每个字符的Word Embedding的长度为d,那么输入就是m*d的二维向量。

自然语言处理中CNN模型几种常见的Max Pooling操作
图1 自然语言处理中CNN模型典型网络结构

卷积神经网络(CNN)之一维卷积、二维卷积、三维卷积详解

作者:szx_spark

由于计算机视觉的大红大紫,二维卷积的用处范围最广。因此本文首先介绍二维卷积,之后再介绍一维卷积与三维卷积的具体流程,并描述其各自的具体应用。

1. 二维卷积

卷积神经网络(CNN)之一维卷积、二维卷积、三维卷积详解

 • 图中的输入的数据维度为 14 × 14 ,过滤器大小为 5 × 5,二者做卷积,输出的数据维度为 10 × 10( 14 − 5 + 1 = 10 )。

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

作者: Yelbosh

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

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

详解卷积神经网络(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 的维度。下面是图解:

先说DNN,从结构上来说他和传统意义上的NN(神经网络)没什么区别,但是神经网络发展时遇到了一些瓶颈问题。

一开始的神经元不能表示异或运算,科学家通过增加网络层数,增加隐藏层可以表达。并发现神经网络的层数直接决定了它对现实的表达能力。但是随着层数的增加会出现局部函数越来越容易出现局部最优解的现象,用数据训练深层网络有时候还不如浅层网络,并会出现梯度消失的问题。

我们经常使用sigmoid函数作为神经元的输入输出函数,在BP反向传播梯度时,信号量为1的传到下一层就变成0.25了,到最后面几层基本无法达到调节参数的作用。值得一提的是,最近提出的高速公路网络和深度残差学习避免梯度消失的问题。

DNN与NN主要的区别在于把sigmoid函数替换成了ReLU,maxout,克服了梯度消失的问题。

下图为深度网络DNN结构图
CNN(卷积神经网络)、RNN(递归神经网络)、DNN(深度神经网络)内部网络结构的区别

你所不能不知道的CNN

作者:许铁

说起CNN,最初人们想到的都是某电视台,但等过几年,人们想起的多半是深度学习了。

应该说, CNN是这两年深度学习风暴的罪魁祸首, 自2012年, 正是它让打入冷宫的神经网络重见天日并且建立起自己在人工智能王国的霸主地位。

如过你认为深度学习是只能用来理解图像的,你就大错特错了, 因为它的用途太广了,上至文字,中有图像, 下至音频, 从手写数字识别到大名鼎鼎的GAN对抗学习, 都离不开它。

不过要了解CNN,还是拿图像做例子比较恰当。一句话来说CNN图像处理的本质,就是信息抽取, 巨大的网络可以抽取一步步得到最关键的图像特征, 我们有时也叫自动的特征工程。

CNN的建造灵感来自于人类对视觉信息的识别过程。 人脑对物体的识别的第一个问题是: 对应某一类对象的图像千千万, 比如一个苹果, 就有各种状态的成千上万状态, 我们识别物体的类别,事实上是给这成千上万不同的图片都打上同一个标签。

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

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

1.时间复杂度

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

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

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

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

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

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

看得「深」、看得「清」—— 深度学习在图像超清化的应用

作者:张雨石

日复一日的人像临摹练习使得画家能够仅凭几个关键特征画出完整的人脸。同样地,我们希望机器能够通过低清图像有限的图像信息,推断出图像对应的高清细节,这就需要算法能够像画家一样“理解”图像内容。至此,传统的规则算法不堪重负,新兴的深度学习照耀着图像超清化的星空。

看得「深」、看得「清」—— 深度学习在图像超清化的应用
图1. 最新的Pixel递归网络在图像超清化上的应用。左图为低清图像,右图为其对应的高清图像,中间为算法生成结果。这是4倍超清问题,即将边长扩大为原来的4倍。

得益于硬件的迅猛发展,短短几年间,手机已更新了数代,老手机拍下的照片在大分辨率的屏幕上变得模糊起来。同样地,图像分辨率的提升使得网络带宽的压力骤增。如此,图像超清化算法就有了用武之地。

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