深度神经网络

AI热潮的关键:深度学习不止深度神经网络

【编者按】作为本轮AI的关键技术,深度学习不单只是深度神经网络模型本身。事实上,深度神经网络的发展痛点频频,包括稳定性和对设备的依赖性,以及调试复杂度困难等等。事实上,回归到深度学习的本质问题,前企学研界还有很多探索深度学习新的可能性。

本文原载于21世纪经济报,经亿欧网编辑,以供业内人士参考。

作为本轮人工智能热潮的关键技术,机器学习尤其是深度学习受到了热捧。一时间,人人嘴上挂着深度学习、神经网络等词汇,似乎不谈这一话题,便与智能时代脱节。

然而,无论开发者或科技企业,对深度学习恐怕存在一定误解。“如果问一下‘什么是深度学习’,绝大多数人的答案都会是:深度学习就是深度神经网络,甚至认为‘深度学习’就是‘深度神经网络’的同义词。”在2018英特尔人工智能大会上,南京大学计算机系主任、人工智能学院院长周志华直言现状。

这一观念其实是片面的。事实上,当前深度学习主流的深度神经网络模型本身,也存在着诸多问题。“吃数据,吃机器,对开发者门槛要求高。”当谈及当前模型痛点时,一位深度学习领域相关开发者向记者直言。另一位开发者则告诉记者,深度神经网络模型的效果稳定性也可能不如预期。

一位ML工程师构建深度神经网络的实用技巧

在经历成千上万个小时机器学习训练时间后,计算机并不是唯一学到很多东西的角色,作为开发者和训练者的我们也犯了很多错误,修复了许多错误,从而积累了很多经验。在本文中,作者基于自己的经验(主要基于 TensorFlow)提出了一些训练神经网络的建议,还结合了案例,可以说是过来人的实践技巧了。

作者| Matt H/Daniel R
译者| 婉清
编辑| Jane
出品| AI 科技大本营

通用技巧

有些技巧对你来说可能就是明摆着的事,但在某些时候可能却并非如此,也可能存在不适用的情况,甚至对你的特定任务来说,可能不是一个好的技巧,所以使用时需要务必要谨慎!

▌使用 ADAM 优化器

确实很有效。与更传统的优化器相比,如 Vanilla 梯度下降法,我们更喜欢用ADAM优化器。用 TensorFlow 时要注意:如果保存和恢复模型权重,请记住在设置完AdamOptimizer 后设置 Saver,因为 ADAM 也有需要恢复的状态(即每个权重的学习率)。

▌ReLU 是最好的非线性(激活函数)

【人工神经网络基础】为什么神经网络选择了“深度”?

现在提到“神经网络”和“深度神经网络”,会觉得两者没有什么区别,神经网络还能不是“深度”(deep)的吗?我们常用的 Logistic regression 就可以认为是一个不含隐含层的输出层激活函数用 sigmoid(logistic) 的神经网络,显然 Logistic regression 就不是 deep 的。不过,现在神经网络基本都是 deep 的,即包含多个隐含层。Why?

1. universality approximation theorem(通用近似定理)

任何连续的函数 f : RN→RM 都可以用只有一个隐含层的神经网络表示。(隐含层神经元足够多)

【人工神经网络基础】为什么神经网络选择了“深度”?
图 1:仅含一个隐含层的神经网络示意图

深度神经网络训练的必知技巧

作者:章华燕
编辑:李文臣

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

1、数据增广

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

深度神经网络训练的必知技巧
图像识别领域数据增广的例子

时间: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行单机程序内实现(以后考虑分享出来)。

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