CNN

介绍一款基于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和手工设计的局部特征盖过。

卷积神经网络(CNN)的简单实现(MNIST)

卷积神经网络(CNN)的基础介绍见 http://xilinx.eetrend.com/article/11731 ,这里主要以代码实现为主。

CNN是一个多层的神经网络,每层由多个二维平面组成,而每个平面由多个独立神经元组成。

以MNIST作为数据库,仿照LeNet-5和tiny-cnn( http://blog.csdn.net/fengbingchun/article/details/50573841 ) 设计一个简单的7层CNN结构如下:
输入层Input:神经元数量32*32=1024;

C1层:卷积窗大小5*5,输出特征图数量6,卷积窗种类6,输出特征图大小28*28,可训练参数(权值+阈值(偏置))5*5*6+6=150+6,神经元数量28*28*6=4704;

S2层:卷积窗大小2*2,输出下采样图数量6,卷积窗种类6,输出下采样图大小14*14,可训练参数1*6+6=6+6,神经元数量14*14*6=1176;

C3层:卷积窗大小5*5,输出特征图数量16,卷积窗种类6*16=96,输出特征图大小10*10,可训练参数5*5*(6*16)+16=2400+16,神经元数量10*10*16=1600;

CNN模型压缩与加速算法综述

自从AlexNet一举夺得ILSVRC 2012 ImageNet图像分类竞赛的冠军后,卷积神经网络(CNN)的热潮便席卷了整个计算机视觉领域。CNN模型火速替代了传统人工设计(hand-crafted)特征和分类器,不仅提供了一种端到端的处理方法,还大幅度地刷新了各个图像竞赛任务的精度,更甚者超越了人眼的精度(LFW人脸识别任务)。CNN模型在不断逼近计算机视觉任务的精度极限的同时,其深度和尺寸也在成倍增长。

表1 几种经典模型的尺寸,计算量和参数数量对比

Model Model Size(MB) Million
Mult-Adds
Million
Parameters
AlexNet[1] >200 720 60

卷积神经网络(CNN)基础介绍

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

一、卷积神经网络概念

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

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

神经网络会成为机器视觉的未来趋势吗?

作者:Peter Behringer /Dr. Florian Hoppe

什么是神经网络?为什么它会成为工业图像处理系统的热点话题?因为神经网络不仅使开发人员从复杂的差异化标准界定程序中解脱出来,还能够自主识别并学习这一标准,并将这一“能力”应用于精确的任务中。但神经网络并不能保持持续可靠地运作,也无法主动实现与时俱进的更新。它们必须先接受专业且深入的培训。本文详细描述了应该如何进行这一培训,所需的准备工作以及与建立神经网络有关的各个开发步骤。

1 简介
1.1 苹果和梨
有人说苹果和桔子根本不具备可比性,而如果谈及机器视觉系统的话,苹果和梨这一组合似乎也找不到任何共同点。即便如此,我们仍然急切地需要能够精确处理不同任务的系统,类似能够基于图像数据区分两种不同类型水果的任务。

同步内容