深度神经网络

时间:8月16日   上午10:00(北京时间)

注:本次研讨会为英文讲解,中文字幕!    我要注册

在过去的几年时间里计算机视觉领域发生了非常重大的变化,从传统的视觉算法转向了深度神经网络算法。很多之前专注于经典视觉算法和相关开发的公司希望在不影响现有情况的前提下采用DNN(深度神经网络)。当为即将推出的产品选择IP时可能需要同时支持传统视觉和基于DNN的视觉功能。

本次研讨会,我们将向大家介绍基于专用DNN IP(比如PowerVR 2NX)的一些基本操作,以及如何将传统计算机视觉算法匹配到这些操作上,这些方法会为大家提供低成本的解决方案,能够同时支持传统的和基于DNN的机器视觉算法。

演讲者:Paul Brasnett——Imagination PowerVR部门视觉与AI高级研究管理人员

理解神经网络中的Dropout

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

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

算法概述

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

深度神经网络(DNN)的正则化

和普通的机器学习算法一样,DNN也会遇到过拟合的问题,需要考虑泛化,这里我们就对DNN的正则化方法做一个总结。

1. DNN的L1&L2正则化

想到正则化,我们首先想到的就是L1正则化和L2正则化。L1正则化和L2正则化原理类似,这里重点讲述DNN的L2正则化。

而DNN的L2正则化通常的做法是只针对与线性系数矩阵W,而不针对偏倚系数b。利用我们之前的机器学习的知识,我们很容易可以写出DNN的L2正则化的损失函数。

假如我们的每个样本的损失函数是均方差损失函数,则所有的m个样本的损失函数为:

深度神经网络(DNN)的正则化

则加上了L2正则化后的损失函数是:
深度神经网络(DNN)的正则化

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

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

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

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

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

从图像到知识:深度神经网络实现图像理解的原理解析

摘要:本文将详细解析深度神经网络识别图形图像的基本原理。针对卷积神经网络,本文将详细探讨网络中每一层在图像识别中的原理和作用,例如卷积层(convolutional layer),采样层(pooling layer),全连接层(hidden layer),输出层(softmax output layer)。针对递归神经网络,本文将解释它在在序列数据上表现出的强大能力。针对通用的深度神经网络模型,本文也将详细探讨网络的前馈和学习过程。卷积神经网络和递归神经网络的结合形成的深度学习模型甚至可以自动生成针对图片的文字描述。作为近年来重新兴起的技术,深度学习已经在诸多人工智能领域取得了令人瞩目的进展,但是神经网络模型的可解释性仍然是一个难题,本文从原理的角度探讨了用深度学习实现图像识别的基本原理,详细解析了从图像到知识的转换过程。

1 引言

传统的机器学习技术往往使用原始形式来处理自然数据,模型的学习能力受到很大的局限,构成一个模式识别或机器学习系统往往需要相当的专业知识来从原始数据中(如图像的像素值)提取特征,并转换成一个适当的内部表示。而深度学习则具有自动提取特征的能力,它是一种针对表示的学习。

如何用70行Java代码实现深度神经网络算法

作者:彭渊

对于现在流行的深度学习,保持学习精神是必要的——程序员尤其是架构师永远都要对核心技术和关键算法保持关注和敏感,必要时要动手写一写掌握下来,先不用关心什么时候用到——用不用是政治问题,会不会写是技术问题,就像军人不关心打不打的问题,而要关心如何打赢的问题。

程序员如何学习机器学习

对程序员来说,机器学习是有一定门槛的(这个门槛也是其核心竞争力),相信很多人在学习机器学习时都会为满是数学公式的英文论文而头疼,甚至可能知难而退。但实际上机器学习算法落地程序并不难写,下面是70行代码实现的反向多层(BP)神经网络算法,也就是深度学习。其实不光是神经网络,逻辑回归、决策树C45/ID3、随机森林、贝叶斯、协同过滤、图计算、Kmeans、PageRank等大部分机器学习算法都能在100行单机程序内实现(以后考虑分享出来)。

当前深度神经网络模型压缩和加速方法速览

作者:刘晓坤

大型神经网络具有大量的层级与结点,因此考虑如何减少它们所需要的内存与计算量就显得极为重要,特别是对于在线学习和增量学习等实时应用。此外,近来智能可穿戴设备的流行也为研究员提供了在资源(内存、CPU、能耗和带宽等)有限的便携式设备上部署深度学习应用提供了机会。高效的深度学习方法可以显著地影响分布式系统、嵌入式设备和用于人工智能的 FPGA 等。典型的例子是 ResNet-50[5],它有 50 层卷积网络、超过 95MB 的储存需求和计算每一张图片所需要的浮点数乘法时间。如果剪枝一些冗余的权重后,其大概能节约 75% 的参数和 50% 的计算时间。对于只有兆字节资源的手机和 FPGA 等设备,如何使用这些方法压缩模型就很重要了。

实现这个目标需要联合多个学科以寻找解决方案,包括但不限于机器学习、最优化、计算机架构、数据压缩、索引和硬件设计等。在本论文中,我们回顾了在压缩和加速深度神经网络方面的工作,它们广泛受到了深度学习社区的关注,并且近年来已经实现了很大的进展。

深度神经网络中深度究竟带来了什么?

作者:赵黎明

缘起

人工智能近几年实现了爆炸式发展,深度学习可以说是其主要的推动力。笔者对于能来微软实习并从事深度学习方面的研究感到十分荣幸,因为微软研究院在该领域一直处于领先的地位,其优秀的人才配备和强大的计算资源都非常适合做这方面的研究。

在计算机视觉领域,大部分的问题都已经开始使用深度神经网络进行解决,也确实取得了广泛的成功。在很多视觉任务中,如图像识别、语义分割、目标检测与跟踪、图像检索等,作为提取特征的CNN网络模型往往起到了关键的作用。我们经常见到最新的方法将基础网络换一下,性能就会得到很大的提升。因此,研究并设计一个更好的网络模型变得至关重要。

基础网络模型的结构样例
基础网络模型的结构样例

最新研究进展

深度神经网络生成模型:从 GAN VAE 到 CVAE-GAN

在几年前,深度神经网络的热门话题是分类问题:

给定一张图 x,神经网络可以告诉你其中是什么内容,或者说属于什么类别 c。
而近年来,深度神经网络的热门话题是生成模型,它想做的事情相反:

给定一个类别 c,神经网络就可以无穷无尽地自动生成真实而多变的此类别的图像 x。
这无疑听上去更神奇,也更困难。这里介绍的 CVAE-GAN 方法,其论文是 Fine-Grained Image Generation through Asymmetric Training ,它可以在各个数据集上生成目前综合效果最好的结果:

深度神经网络生成模型:从 GAN VAE 到 CVAE-GAN

深度神经网络训练有哪些必知技巧?

本文主要介绍8种实现细节的技巧或tricks:数据增广、图像预处理、网络初始化、训练过程中的技巧、激活函数的选择、不同正则化方法、来自于数据的洞察、集成多个深度网络的方法。

1. 数据增广

在不改变图像类别的情况下,增加数据量,能提高模型的泛化能力。

自然图像的数据增广方式包括很多,如常用的水平翻转(horizontally flipping),一定程度的位移或者裁剪和颜色抖动(color jittering)。此外还可以尝试多种操作的组合, 例如同时做旋转和随机尺度变换,此外还可以把每个patch中所有像素在HSV颜色空间中的饱和度和明度提升0.25-4次幂方,乘以0.7-1.4之间的一个因子,再加一个-0.1-0.1之间的值。同样你可以在色调通道(H)对每张图片或patch的所有像素增加一个-0.1~0.1之间的值。

2. 预处理

2.1 最简单的预处理方法:

- 零均值化
- 标准化

2.1.1 为什么要零均值化

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