CNN

卷积神经网络CNN中的各种意义

只是知道CNN是不够,我们需要对其进行解剖,继而分析不同部件存在的意义

CNN的目的
简单来说,CNN的目的是以一定的模型对事物进行特征提取,而后根据特征对该事物进行分类、识别、预测或决策等。在这个过程里,最重要的步骤在于特征提取,即如何提取到能最大程度区分事物的特征。如果提取的特征无法将不同的事物进行划分,那么该特征提取步骤将毫无意义。而实现这个伟大的模型的,是对CNN进行迭代训练。

特征
在图像中(举个例子),目标事物的特征主要体现在像素与像素之间的关系。比如说,我们能区分一张图片中有一条直线,是因为直线上的像素与直线外邻像素的区别足够大(或直线两边的像素区别足够大),以至于这“直线”能被识别出来:

除了直线外,其他特征也同理。在CNN中,大部分特征提取依赖于卷积运算。

卷积与特征提取

商汤科技联合北京大学等提出一种基于 FPGA 的快速 Winograd 算法,可以大幅降低算法复杂度,改善 FPGA 上的 CNN 性能。论文中的实验使用当前最优的多种 CNN 架构,从而实现了 FPGA 加速之下的最优性能和能耗。

1. 引言
深度卷积神经网络(CNN)在多个计算机视觉任务上取得了优秀的性能,包括图像分类、目标检测和语义分割 [1, 2]。CNN 的高准确率是以极大的计算复杂度为代价的,因为它需要对特征图中的所有区域进行综合评估 [3, 4]。为了解决如此巨大的计算压力,研究者使用 GPU、FPGA 和 ASIC 等硬件加速器来加速 CNN [5–17]。其中,FPGA 因其高性能、低能耗和可重配置性成为有效解决方案。更重要的是,使用 C 或 C++的高级综合(High Level Synthesis,HLS)大幅降低了 FPGA 的编程障碍,并提高了生产效率 [18–20]。

卷积神经网络(CNN)学习笔记1:基础入门

概述
卷积神经网络(Convolutional Neural Network, CNN)是深度学习技术中极具代表的网络结构之一,在图像处理领域取得了很大的成功,在国际标准的ImageNet数据集上,许多成功的模型都是基于CNN的。CNN相较于传统的图像处理算法的优点之一在于,避免了对图像复杂的前期预处理过程(提取人工特征等),可以直接输入原始图像。

图像处理中,往往会将图像看成是一个或多个的二维向量,如之前博文中提到的MNIST手写体图片就可以看做是一个28 × 28的二维向量(黑白图片,只有一个颜色通道;如果是RGB表示的彩色图片则有三个颜色通道,可表示为三张二维向量)。传统的神经网络都是采用全连接的方式,即输入层到隐藏层的神经元都是全部连接的,这样做将导致参数量巨大,使得网络训练耗时甚至难以训练,而CNN则通过局部连接、权值共享等方法避免这一困难,有趣的是,这些方法都是受到现代生物神经网络相关研究的启发(感兴趣可阅读以下部分)。

异构计算架构师眼中的AI算法(object detection)

作者: erickmeng, 腾讯架构师

导语:
虽然detection在classification基础上焕发了春天,但算法的复杂度确实增加了不少。对于底层平台来说,虽然看起来还是一堆卷积,但图片的增大,带来了一些列问题。

目标检测object detection由于除了要识别what,还要找出where,从算法本身上复杂了许多。虽然最终实现端到端检测的网络是一个卷机网络,貌似和之前没有多大差别,但大图片除了计算量增加xx倍意外,图片的搬移才是给底层计算平台带来的最大挑战,高效的数据搬移重要性浮出水面,设计的中心从“计算为主”逐步切换到“计算加搬移”并重。

对底层平台来说,核心在于理解:

1. 为什么图片在object detection下越来越大,这个是不是其核心诉求?答案是,这个是第一诉求,从应用场景看,detection本身就是识别多个物体,提取出小图片来识别的代价太大;同时应用中物体的远近不等,大图片采集更大的视野也是一个主要原因。但同时一个利好因素是,在端侧应用,受限于人眼的识别能力,图片识别的张数要远比在服务器侧压力小。

2. 功耗的额要求:在机器人、无人车等应用中,和服务器端相比,功耗是一个关键因素。

介绍一款基于FPGA的CNN硬件加速器IP

作者:Sleibso,编译:Stark

随着人工智能(AI)的不断发展,它已经从早期的人工特征工程进化到现在可以从海量数据中学习,机器视觉、语音识别以及自然语言处理等领域都取得了重大突破。CNN(Convolutional Neural Network,卷积神经网络)在人工智能领域受到越来越多的青睐,它是深度学习技术中极具代表性的网络结构之一,尤其在图像处理领域取得了很大的成功。随着网络变得越来越大、越来越复杂,我们需要大量的计算资源来对其进行训练,因此人们纷纷将注意力转向FPGA(Field Programmable Gate Array,现场可编程门阵列)器件,FPGA不仅具有软件的可编程性和灵活性,同时又有ASIC高吞吐和低延迟的特性,而且由于具有丰富的I/O接口,FPGA还非常适合用作协议和接口转换的芯片。

CNN在语音识别中的应用

作者:侯艺馨

前言

总结目前语音识别的发展现状,dnn、rnn/lstm和cnn算是语音识别中几个比较主流的方向。2012年,微软邓力和俞栋老师将前馈神经网络FFDNN(Feed Forward Deep Neural Network)引入到声学模型建模中,将FFDNN的输出层概率用于替换之前GMM-HMM中使用GMM计算的输出概率,引领了DNN-HMM混合系统的风潮。长短时记忆网络(LSTM,LongShort Term Memory)可以说是目前语音识别应用最广泛的一种结构,这种网络能够对语音的长时相关性进行建模,从而提高识别正确率。双向LSTM网络可以获得更好的性能,但同时也存在训练复杂度高、解码时延高的问题,尤其在工业界的实时识别系统中很难应用。

刚好在知乎上看到这个问题 如何用FPGA加速卷积神经网络CNN,恰巧我的硕士毕业设计做的就是在FPGA上实现CNN的架构,在此和大家分享。

先说一下背景,这个项目的目标硬件是Xilinx的PYNQ。该开发板加载了Linux Ubuntu操作系统,可以在CPU上运行现有的Python CNN架构如Caffe和Theano。本设计旨在用PYNQ加载的ZYNQ FPGA对于CNN核心计算进行硬件加速,以达到对于大规模信息流进行大吞吐量CNN处理。

初学者必读:卷积神经网络指南(一)

摘要: 何为卷积神经网络,它来自何方?又要走向何处?跟着作者的节奏,一起来开始探索CNN吧。

卷积神经网络听起来像一个奇怪的生物学和数学的组合,但它是计算机视觉领域最具影响力的创新之一。2012年是卷积神经网络最流行的一年,因为Alex Krizhevsky用它赢得当年的ImageNet竞争(基本上算得上是计算机视觉的年度奥运),它将分类错误记录从26%降至15%,这是惊人的改善。从那时起,深度学习开始流行起来,Facebook使用神经网络进行自动标记算法,Google进行照片搜索,亚马逊的产品推荐,家庭饲料个性化的Pinterest,以及以搜索为基础设施的Instagram。

今天我们来看看在图像处理中如何使用CNN进行图像分类。

1.空间问题

【科普】卷积神经网络(CNN)基础介绍

本文是对卷积神经网络的基础进行介绍,主要内容包括卷积神经网络概念、卷积神经网络结构、卷积神经网络求解、卷积神经网络LeNet-5结构分析、卷积神经网络注意事项。

一、卷积神经网络概念
上世纪60年代,Hubel等人通过对猫视觉皮层细胞的研究,提出了感受野这个概念,到80年代,Fukushima在感受野概念的基础之上提出了神经认知机的概念,可以看作是卷积神经网络的第一个实现网络,神经认知机将一个视觉模式分解成许多子模式(特征),然后进入分层递阶式相连的特征平面进行处理,它试图将视觉系统模型化,使其能够在即使物体有位移或轻微变形的时候,也能完成识别。

卷积神经网络(Convolutional Neural Networks, CNN)是多层感知机(MLP)的变种。由生物学家休博尔和维瑟尔在早期关于猫视觉皮层的研究发展而来。视觉皮层的细胞存在一个复杂的构造。这些细胞对视觉输入空间的子区域非常敏感,我们称之为感受野,以这种方式平铺覆盖到整个视野区域。这些细胞可以分为两种基本类型,简单细胞和复杂细胞。简单细胞最大程度响应来自感受野范围内的边缘刺激模式。复杂细胞有更大的接受域,它对来自确切位置的刺激具有局部不变性。

CNN各种网络概述-从LeNet到AlexNet

演化脉络
下图所示CNN结构演化的历史,起点是神经认知机模型,已经出现了卷积结构,但是第一个CNN模型诞生于1989年,1998年诞生了LeNet。随着ReLU和dropout的提出,以及GPU和大数据带来的历史机遇,CNN在12年迎来了历史突破。12年之后,CNN的演化路径可以总结为四条:1)更深的网络,2)增强卷积模的功能以及上诉两种思路的融合,3)从分类到检测,4)增加新的功能模块。

演化脉络

开始-LeNet


1998年,LeCun提出LeNet,并成功应用于美国手写数字识别。但很快,CNN的锋芒被SVM和手工设计的局部特征盖过。

同步内容