神经网络

作者:Sleibso,编译:csc57

可编程逻辑(PLD)是由一种通用的集成电路产生的,逻辑功能按照用户对器件编程来确定,用户可以自行编程把数字系统集成在PLD中。经过多年的发展,可编程逻辑器件由70年代的可编程逻辑阵列器件 (PLD) 发展到目前的拥有数千万门的现场可编程阵列逻辑 (FPGA), 随着人工智能研究的火热发展,FPGA的并行性已经在一些实时性很高的神经网络计算任务中得到应用。由于在FPGA上实现浮点数会耗费很多硬件资源,而定点数虽然精度有限,但是对于不同应用通过选择合适的字长精度仍可以保证收敛,且速度要比浮点数表示更快而且资源耗费更少, 已经使其成为嵌入式AI和机器学习应用程序的理想选择。

BrainChip Holdings刚刚发布了一款PCIe服务器加速卡BrainChip Accelerator,该卡可以使用脉冲神经网络而不是卷积神经网络(CNN)同时处理多种视频格式的16路视频。 BrainChip加速卡采用 Xilinx Kintex UltraScale FPGA实现了6核处理单元的BrainChip的Spiking神经网络(SNN)处理器。

这是BrainChip加速卡的照片:

神经网络入门指南

人工神经网络(ANN)是一种从信息处理角度对人脑神经元网络进行抽象从而建立的某种简单模型,按不同的连接方式组成不同的网络。其在语音识别、计算机视觉和文本处理等方面取得的突破性成果。在下文,我们将深入了解一种名为多层感知器的人工神经网络。

神经元
在神经网络中,神经元是计算的基本单元,也被称为节点或单元。它接受其他节点或外部的输入,在计算后产生输出。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重(w)。该节点将一个函数f(定义如下)作用于输入的加权和,如下图所示

上述网络采用数值输入X1和X2、与输入相关联的权重w1和w2以及输入权重b(称为偏置)。稍后我们会介绍更多关于偏置的细节。
神经元输出Y的计算上图所示。函数f是非线性的,称为激活函数。它的作用是将非线性引入到神经元的输出中,以此达到神经元学习非线性表示的目的,满足实际环境的数据要求。

每个激活函数都取一个数并对它进行特定的运算。在实际应用中我们可能会遇到下面几种激活函数:

理解神经网络中的Dropout

dropout是指在深度学习网络的训练过程中,对于神经网络单元,按照一定的概率将其暂时从网络中丢弃。注意是暂时,对于随机梯度下降来说,由于是随机丢弃,故而每一个mini-batch都在训练不同的网络。

过拟合是深度神经网(DNN)中的一个常见问题:模型只学会在训练集上分类,这些年提出的许多过拟合问题的解决方案,其中dropout具有简单性而且效果也非常良好。

算法概述

我们知道如果要训练一个大型的网络,而训练数据很少的话,那么很容易引起过拟合,一般情况我们会想到用正则化、或者减小网络规模。然而Hinton在2012年文献:《Improving neural networks by preventing co-adaptation of feature detectors》提出了,在每次训练的时候,随机让一半的特征检测器停过工作,这样可以提高网络的泛化能力,Hinton又把它称之为dropout。

了解神经网络,你需要知道的名词都在这里

作者:Kailash Ahirwar

近日,Mate Labs 联合创始人兼 CTO 在 Medium 上撰文《Everything you need to know about Neural Networks》,从神经元到 Epoch,扼要介绍了神经网络的主要核心术语。

理解什么是人工智能,以及机器学习和深度学习如何影响它,是一种不同凡响的体验。在 Mate Labs 我们有一群自学有成的工程师,希望本文能够分享一些学习的经验和捷径,帮助机器学习入门者理解一些核心术语的意义。

神经元(节点)—神经网络的基本单元,它包括特定数量的输入和一个偏置值。当一个信号(值)输入,它乘以一个权重值。如果一个神经元有 4 个输入,则有 4 个可在训练中调节的权重值。

开源工具助你在FPGA上轻松实现二值化神经网络

作者:清风流云

神经网络技术起源于上世纪五、六十年代,当时叫感知机,拥有输入层、输出层和一个隐含层。输入的特征向量通过隐含层变换达到输出层,在输出层得到分类结果,早期感知机的推动者是Ronsenblatt。后来又发展到多层感知机,而多层感知机在摆脱早期离散传输函数的束缚,在训练算法上使用Werbos发明的反向传播BP算法,这个就是现在大家常数的神经网络NN,而目前存在的神经网络最常见的有:ANN,RNN,以及CNN。CNN是一种多层神经网络,擅长处理图像特别是大图像的相关机器学习问题,它可以通过一系列方法,成功将数据量庞大的图像识别问题不断将维,最终使其能够被训练。

GUNNESS开源工具:

Sigmoid函数的分段非线性拟合法及其FPGA实现

作者:宋宇鲲,高晓航,张多利,杜高明,2017年电子技术应用第8期

摘 要: 使用分段非线性逼近算法计算超越函数,以神经网络中应用最为广泛的Sigmoid函数为例,结合函数自身对称的性质及其导数不均匀的特点提出合理的分段方法,给出分段方式同逼近多项式阶数对逼近结果精度的影响。完成算法在FPGA上的硬件实现,给出一种使用三阶多项式处理Sigmoid函数的拟合结果及流水线架构,处理精度达到10-5数量级,最大频率达到127.327 MHz,满足了高速、高精度的处理要求。

0 引言

深度学习入门必须理解这25个概念

如果你是一个想学习或理解深度学习的人,这篇文章是为你量身定做的。在本文中,我将介绍深度学习中常用的各种术语。

如果你想知道我为什么要写这篇文章——我之所以在写,是因为我希望你开始你的深度学习之旅,而不会遇到麻烦或是被吓倒。当我第一次开始阅读关于深度学习资料的时候,有几个我听说过的术语,但是当我试图理解它的时候,它却是令人感到很迷惑的。而当我们开始阅读任何有关深度学习的应用程序时,总会有很多个单词重复出现。

在本文中,我为你创建了一个类似于深度学习的字典,你可以在需要使用最常用术语的基本定义时进行参考。我希望在你阅读这篇文章之后,你就不会再受到这些术语的困扰了。

与主题相关的术语

为了帮助你了解各种术语,我已经将它们分成3组。如果你正在寻找特定术语,你可以跳到该部分。如果你是这个领域的新手,那我建议你按照我写的顺序来通读它们。

1.神经网络基础(Basics of Neural Networks)
——常用激活函数(Common Activation Functions)

2.卷积神经网络(Convolutional Neural Networks)

3.循环神经网络(Recurrent Neural Networks)

摘要: 本文对多层感知器和反向传播进行入门级的介绍。作者 Ujjwal Karn 在机器学习领域有三年的从业和研究经验,对深度学习在语音和视觉识别上的应用非常感兴趣。 人工神经网络是一种计算模型,启发自人类大脑处理信息的生物神经网络。

人工神经网络是一种计算模型,启发自人类大脑处理信息的生物神经网络。人工神经网络在语音识别、计算机视觉和文本处理领域取得了一系列突破,让机器学习研究和产业感到了兴奋。在本篇博文中,我们将试图理解一种称为「多层感知器(Multi Layer Perceptron)」的特定的人工神经网络。

单个神经元

神经网络中计算的基本单元是神经元,一般称作「节点」(node)或者「单元」(unit)。节点从其他节点接收输入,或者从外部源接收输入,然后计算输出。每个输入都辅有「权重」(weight,即 w),权重取决于其他输入的相对重要性。节点将函数 f(定义如下)应用到加权后的输入总和,如图 1 所示:

图 1:单个神经元

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

作者:Peter Behringer /Dr. Florian Hoppe

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

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

同步内容