卷积神经网络

卷积神经网络(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 的情况下实现简单的卷积网络。

如何让人工智能推理、训练更高效?

作者: Benny Har-Even

毫无悬念地,神经网络和人工智能是目前最炙手可热的科技辞藻,它们应用广泛,在各种你喜欢或者不喜欢的社交平台上助力识别图像,在智能音箱上实现语音识别, 在智能手机里担任数字语音助理,神经网络比人类有更好的识别模式能力,这意味着它们现在可以帮助医生识别癌症,帮助农民提升产量,并在人流中识别特定人物,不久,它们会很快应用到注入安全摄像头这样的嵌入式设备中,并且通过脸部识别来解锁手机,这样的手机未来会越来越多。

然而训练神经网络需要强大的硬件,同时耗费大量的时间。此外在云端强大的服务器上运行的应用不能简单的就移植到移动设备上来,因为它们在计算能力和电池方面有限制。

幸运的是,在训练一个神经网络,“离线的”和可以实时识别新对象的训练模型(称为“推理”)之间是有区别的,例如,如果一个神经网络设计成用来识别过往的图片,例如一只猫,那么就需要从数千张猫的图像数据库中了解到猫是什么样的。 经过适当的训练,当你给一个有神经网络的设备展示猫先生的图片时,它就能够认出猫,即使它以前没有见过猫,这就是推理。

自然语言处理的6大法宝

什么是人工神经网络?它是如何工作的?在自然语言处理中使用不同类型的人工神经网络到底能达到什么效果?今天我们就通过这篇文章简单地探讨一下这些问题。

作者:Olga Davydova

人工神经网络是一种基于大脑神经结构的非线性运算模型。它仅通过参考样本便可学习完成诸如分类、预测、决定和可视化等任务。

人工神经网络由许多神经元处理单元广泛连接而成。这些处理单元分为三类,包括输入层、隐含层(可以多于一层)和输出层。

自然语言处理的6大法宝

位于输入层的神经元将信息传递到隐含层,隐含层再传递至输出层。每个神经元都有加权输入(突触)、一个激活函数(代表该神经元特定输出的函数)和一个输出。突触是将神经网络转换为参数化系统的可调参数。

不懂卷积神经网络?别怕,看完这几张萌图你就明白了

这篇文章用最简明易懂的方式解释了卷积神经网络(CNN)的基本原理,并绕开了里面的数学理论。

同时,如果想对从头开始构建CNN网络之类的问题感兴趣,作者推荐去读《 Artificial Intelligence for Humans Volume 3: Deep Learning and Neural Networks》中第10章节的内容。

不多说了,开始CNN之旅——

网络结构

CNN的模型通常建立在前馈神经网络模型之上,它的结构你也应该不陌生。不同是的,“隐藏层”将被以下这些层取代:

卷积层(Convolutional Layers)

池化层(Pooling Layers)

全连接层(稠密层,Dense Layers)

结构类似下图:

不懂卷积神经网络?别怕,看完这几张萌图你就明白了

解惑!卷积神经网络原来是这样实现图像识别的

图像识别是非常有趣和具有挑战性的研究领域。本文阐述了卷积神经网络用于图像识别的概念、应用和技术。

什么是图像识别,为什么要使用它?

在机器视觉领域,图像识别是指软件识别人物、场景、物体、动作和图像写入的能力。为了实现图像识别,计算机可以结合人工智能软件和摄像机使用机器视觉技术。

虽然人类和动物的大脑很容易识别物体,但计算机在相同的任务中却遇到了困难。当我们看着像树木、汽车或朋友的东西时,我们通常不需要有意识地去学习后才能判断它是什么。然而,对于计算机,识别任何东西(无论是钟、椅子、人类或动物)都是一个非常困难的问题,并且为该问题找到解决方案的风险非常高。

解惑!卷积神经网络原来是这样实现图像识别的
图片:CS231.github

一文了解各种卷积结构原理及优劣

卷积神经网络作为深度学习的典型网络,在图像处理和计算机视觉等多个领域都取得了很好的效果。

Paul-Louis Pröve在Medium上通过这篇文章快速地介绍了不同类型的卷积结构(Convolution)及优势。为了简单起见,本文仅探讨二维卷积结构。

卷积

首先,定义下卷积层的结构参数。

一文了解各种卷积结构原理及优劣
△ 卷积核为3、步幅为1和带有边界扩充的二维卷积结构

卷积核大小(Kernel Size):定义了卷积操作的感受野。在二维卷积中,通常设置为3,即卷积核大小为3×3。

步幅(Stride):定义了卷积核遍历图像时的步幅大小。其默认值通常设置为1,也可将步幅设置为2后对图像进行下采样,这种方式与最大池化类似。

用例子说明为何我们需要卷积神经网络,以及卷积在神经网络中的作用。
目前网上的卷积网络科普大多是翻译的,内容大同小异。本文会更偏重于实际例子。

1. 找橘猫:最简单的办法

今天我们的任务是找出图中有没有橘猫:

走近 AlphaGo (7.2) :教你快速理解卷积和卷积神经网络

怎样用最简单(笨)的方法完成这个任务?那肯定是看图中的橘色占多少面积,比如说超过10%就认为有橘猫:

走近 AlphaGo (7.2) :教你快速理解卷积和卷积神经网络

但怎么告诉电脑?具体来说,图像在电脑中是按像素(就是一个个点)存储的:

卷积:如何成为一个很厉害的神经网络

什么是卷积神经网络?又为什么很重要?

卷积神经网络(Convolutional Neural Networks, ConvNets or CNNs)是一种在图像识别与分类领域被证明特别有效的神经网络。卷积网络已经成功地识别人脸、物体、交通标志,应用在机器人和无人车等载具。

卷积:如何成为一个很厉害的神经网络

在上面的图1当中,卷积网络能够识别场景而系统可以自动推荐相关标签如“桥”、“铁路”、“网球”等。图2则展示了卷积网络识别日常事物如人、动物的例子。最近,卷积网络也已经在自然语言处理上显示出了威力(比如句子分类)。

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