秀站网,秀执着,秀梦想,一个爱秀的地方!

自媒体资讯网

热门关键词:  as  i hone  阿萨德  网站
深度学习从入门到进阶的12个经典问题及解答
来源:
作者:
时间:2018-06-28
浏览热度:
#评论#
[ 导读 ] 即使对于老手而言,深度学习仍然是一种神秘的艺术。因为人们通常在大型数据集上进行复杂的实验,这就掩盖了数据集、超参数和性能之间的基本关系,人们无法窥一斑而知全豹。
深度学习是有着三十多年历史的反向传播算法的新版本,它基于一种抽象的神经元模型。神经元层级将一个信号(如声波的振幅或图像的像素亮度)映射到对这个信号的含义更为明确的高层描述中(如该声波传达的文字或图像中的物体)。反向传播最初只能在两三层神经元中工作,而现在的新版算法可以在更多层级的神经元中工作,使得网络层级越来越深,类似于大脑中相关联的神经元之间的“深度”层级,因而被称为“深度学习”。

深度学习的核心问题就是一个非常难的优化问题。深度学习在理论上无法证明它为何有效,但在实际问题上它却的确有效。现在我们来看看 Abubakar Abid 日前撰写的文章《12 Atomic Experiments in Deep Learning》(https://abidlabs.github.io/Atomic-Experiments/ ),他在文中提出了深度学习中的 12 个谜题,并设计出简单的实验来寻求答案,为我们提供了深度神经网络的一些基本直觉。

即使对于老手而言,深度学习仍然是一种神秘的艺术。因为人们通常在大型数据集上进行复杂的实验,这就掩盖了数据集、超参数和性能之间的基本关系,人们无法窥一斑而知全豹。

本文的目标是通过在小型数据集上运行非常简单的实验,来获得深度神经网络的一些基本直觉。这些实验有助于人们理解通常在大型数据集上发生的趋势。这些实验被设计为“原子”的,因为它们试图以一种可控的方式来分析深度学习的基本方面。此外,这些实验并不需要专门的硬件,它们只需运行几分钟,不需要 GPU。运行时间是基于只使用 CPU 的机器测得的。

所有这些实验都是用 Python 编写的,使用了 tensorflow 和 sklearn 库,但鉴于篇幅,本文中大部分代码都被抽象出来,以便使实验更容易运行。请参阅 Github repo 的完整代码 (https://github.com/abidlabs/AtomsOfDeepLearning/ )。

 

深度学习从入门到进阶的12个经典问题及解答

 

I. 基础知识

1. 为什么首先使用神经网络?

通用逼近性定理指出,一个具有单个隐藏层和标准激活函数的简单前馈神经网络(即多层感知器),如果隐藏层具有足够数量的单位,它就可以近似任何连续函数。让我们在实践中看一下,看看需要多少单位来近似一些特定函数。

方法:我们将在 50 个数据点 (x,y) 上训练一个 1 层神经网络,这些数据点从域 [-1,1] 上的以下函数中绘制,所得拟合的均方误差(mean square error,MSE)。我们将尝试以下函数(你可随时通过更改以下代码来尝试自己的函数。):

 

深度学习从入门到进阶的12个经典问题及解答

 

假设: 随着隐藏层中单位的数量增加,所得拟合的正确率(Accuracy)将会增加(误差将会减少)。

 

深度学习从入门到进阶的12个经典问题及解答

 

运行实验所需的时间: 91.595 s

 

深度学习从入门到进阶的12个经典问题及解答

 

结论: 随着隐藏单位数量的增加,训练数据的逼近误差一般会减小。

讨论: 尽管通用逼近定理指出,具有足够参数的神经网络可以近似一个真实的分类 / 回归函数,但它并没有说明这些参数是否可以通过随机梯度下降这样的过程来习得。另外,你可能想知道我们是否可以从理论上计算出需要多少神经元才能很好地近似给定的函数。你可参阅论文《NEURAL NETWORKS FOR OPTIMAL APPROXIMATION OFSMOOTH AND ANALYTIC FUNCTIONS》对此的一些讨论。

论文地址:https://pdfs.semanticscholar.org/694a/d455c119c0d07036792b80abbf5488a9a4ca.pdf

2. 为什么更深的网络更好?

在实践中,更深的多层感知器(具有超过一个隐藏层)在许多感兴趣的任务上的表现,在很大程度上都胜过浅层感知器。为什么会出现这种情况呢?有人认为,更深的神经网络仅需更少的参数就可以表达许多重要的函数类。理论上已经表明,表达简单的径向函数和组合函数需要使用浅层网络的指数级大量参数。但深度神经网络则不然。剧透警告:我打算用实验来验证这些论文,但我不能这样做(这并不会使论文的结果无效——仅仅因为存在一组神经网络参数,并不意味着它们可以通过随机梯度下降来轻松习得)。我唯一能做的就是,某种程度上可靠地再现来自论文《Representation Benefits of Deep Feedforward Networks》的唯一结果,这篇论文提出了一系列困难的分类问题,这些问题对更深层的神经网络而言更容易。

Representation Benefits of Deep Feedforward Networks 论文地址:https://arxiv.org/pdf/1509.08101.pdf

简单径向函数论文:https://arxiv.org/pdf/1512.03965.pdf
组合函数论文:https://arxiv.org/pdf/1603.00988.pdf

方法: 该数据集由沿着 x 轴的 16 个等距点组成,每对相邻点都属于相反的类。一种特殊类型的深度神经网络(一种跨层共享权重的神经网络)具有固定数量(152)的参数,但测试了层的不同数量。

假设: 随着具有固定数量参数的神经网络中层数的增加,困难的分类问题的正确率将得到提高。

 

深度学习从入门到进阶的12个经典问题及解答

 

运行实验所需的时间: 28.688 s

 

深度学习从入门到进阶的12个经典问题及解答

 

此处,红点和蓝点代表属于不同类别的点。黑色的虚线表示最接近神经网络学习的训练数据近似值(若神经网络分配的分数大于零,则被预测为红点;否则,被预测为蓝点)。零线显示为黑色。

结论: 在大多实验中,正确率随深度的增加而增加。

讨论: 似乎更深的层允许从输入到输出的学习到的函数出现更多“急弯”。这似乎跟神经网络的轨迹长度有关(即衡量输入沿着固定长度的一维路径变化时,神经网络的输出量是多少)。

轨迹长度论文:https://arxiv.org/pdf/1606.05336.pdf

II. 数据集

3. 更多的数据是否有利于更深的神经网络?

相关文档:

用机器学习搞技术,谷歌Megenta..

我们还缺多少基础理论,才能在高..

DeepMind提出神经元删除法:通过..