当前位置:首页 » 安全设置 » 神经网络过渡怎么设置
扩展阅读
手机代码告白软件下载 2025-07-10 03:17:03

神经网络过渡怎么设置

发布时间: 2022-10-19 00:19:47

‘壹’ 神经网络预测中关于目标值的确定,一般是怎么设置的啊可不可以举例帮助说明

看你是什么问题。如果是分类问题,目标是3类,那么可以设置成:0 0 1 -----第一类,0 1 0 ----第二类。

‘贰’ 如何训练神经网络

1、先别着急写代码

训练神经网络前,别管代码,先从预处理数据集开始。我们先花几个小时的时间,了解数据的分布并找出其中的规律。

Andrej有一次在整理数据时发现了重复的样本,还有一次发现了图像和标签中的错误。所以先看一眼数据能避免我们走很多弯路。

由于神经网络实际上是数据集的压缩版本,因此您将能够查看网络(错误)预测并了解它们的来源。如果你的网络给你的预测看起来与你在数据中看到的内容不一致,那么就会有所收获。

一旦从数据中发现规律,可以编写一些代码对他们进行搜索、过滤、排序。把数据可视化能帮助我们发现异常值,而异常值总能揭示数据的质量或预处理中的一些错误。

2、设置端到端的训练评估框架

处理完数据集,接下来就能开始训练模型了吗?并不能!下一步是建立一个完整的训练+评估框架。

在这个阶段,我们选择一个简单又不至于搞砸的模型,比如线性分类器、CNN,可视化损失。获得准确度等衡量模型的标准,用模型进行预测。

这个阶段的技巧有:

· 固定随机种子

使用固定的随机种子,来保证运行代码两次都获得相同的结果,消除差异因素。

· 简单化

在此阶段不要有任何幻想,不要扩增数据。扩增数据后面会用到,但是在这里不要使用,现在引入只会导致错误。

· 在评估中添加有效数字

在绘制测试集损失时,对整个测试集进行评估,不要只绘制批次测试损失图像,然后用Tensorboard对它们进行平滑处理。

· 在初始阶段验证损失函数

验证函数是否从正确的损失值开始。例如,如果正确初始化最后一层,则应在softmax初始化时测量-log(1/n_classes)。

· 初始化

正确初始化最后一层的权重。如果回归一些平均值为50的值,则将最终偏差初始化为50。如果有一个比例为1:10的不平衡数据集,请设置对数的偏差,使网络预测概率在初始化时为0.1。正确设置这些可以加速模型的收敛。

· 人类基线

监控除人为可解释和可检查的损失之外的指标。尽可能评估人的准确性并与之进行比较。或者对测试数据进行两次注释,并且对于每个示例,将一个注释视为预测,将第二个注释视为事实。

· 设置一个独立于输入的基线

最简单的方法是将所有输入设置为零,看看模型是否学会从输入中提取任何信息。

· 过拟合一个batch

增加了模型的容量并验证我们可以达到的最低损失。

· 验证减少训练损失

尝试稍微增加数据容量。

‘叁’ 神经网络如何外推:从前馈网络到图网络

How Neural Networks Extrapolate: From Feedforward to Graph Neural Networks

ICLR2021最高分论文            https://arxiv.org/abs/2009.11848

52页论文,正文占9页,主要都是附录,不过附录里很多图片(一页就一两张图),排除这些一页一图的,只有40页

我们研究用梯度下降法训练的神经网络如何外推,也就是说,它们在训练分布的支持之外学习什么。以前的工作报告了使用神经网络进行外推时混合的实证结果:虽然前馈神经网络,即多层感知器(MLP)在某些简单任务中外推效果不好,但图形神经网络(GNN)——带有MLP模块的结构化网络——在更复杂的任务中取得了一些成功。为了得到理论解释,我们确定了MLPs和GNNs外推良好的条件。首先,我们量化了ReLU-MLPs从原点沿任意方向快速收敛到线性函数的观测结果,这意味着ReLU-MLPs不能外推大多数非线性函数。但是,当训练分布足够“多样化”时,他们可以证明学习线性目标函数。其次,在分析GNNs的成功和局限性时,这些结果提出了一个假设,我们提供了理论和经验证据:GNNs在将算法任务外推到新数据(例如。,较大的图或边权重)依赖于编码体系结构或特征中特定于任务的非线性。我们的理论分析建立在过度参数化网络与神经切线核的联系上。根据经验,我们的理论适用于不同的培训环境

1简介

人类在许多任务中推断得很好。例如,我们可以对任意大的数应用算术。人们可能想知道,神经网络是否也能做到这一点,并将其推广到任意远离训练数据的示例中(Lake et al.,2017)。奇怪的是,以前的工作报告混合外推结果与神经网络。早期的工作表明,前馈神经网络,又称多层感知器(MLPs),在学习简单多项式函数时不能很好地进行外推(Barnard&Wessels,1992;Haley&Soloway,1992年)。然而,最近的研究表明,图神经网络(GNNs)(Scarselli et al.,2009)是一类具有MLP构建块的结构化网络,在具有挑战性的算法任务中,如预测物理系统的时间演化(Battaglia et al.,2016),可以推广到比训练图大得多的图,学习图形算法(Velickovic et al.,2020),求解数学方程(Lample&Charton,2020)。

为了解释这个难题,我们正式研究了梯度下降(GD)训练的神经网络是如何外推的,即它们在训练分布的支持之外学习什么。我们说,如果一个神经网络在训练分布之外学习了一个任务,它就能很好地进行外推。乍一看,似乎神经网络可以在训练分布之外任意行为,因为它们具有高容量(Zhang et al.,2017),并且是通用逼近器(Cybenko,1989;Funahashi,1989年;Hornik等人,1989年;库尔科娃,1992年)。然而,神经网络受到梯度下降训练的限制(Hardt等人,2016;Soudry等人,2018年)。在我们的分析中,我们通过类比过参数化神经网络的训练动态和通过神经切线核(NTK)的核回归,明确考虑了这种隐式偏差(Jacot等人,2018)。

从前馈网络、最简单的神经网络和更复杂的体系结构(如GNNs)的构建块开始,我们建立了由GD训练的具有ReLU激活的过参数mlp的预测从原点沿任意方向收敛到线性函数。我们证明了两层网络的收敛速度,并从经验上观察到收敛经常发生在训练数据附近(图1),这表明ReLU-MLPs不能很好地外推大多数非线性任务。我们强调,我们的结果并不是基于ReLU网络具有有限多个线性区域的事实(Arora et al.,2018;Hanin&Rolnick,2019年;Hein等人,2019年)。虽然有有限多个线性区域意味着ReLU MLPs最终会变为线性,但MLPs是否会学习到接近训练分布的正确目标函数并没有说明。相比之下,我们的结果是非渐近的,并且量化了MLPs将学习什么样的函数接近于训练分布。其次,我们确定了mlp外推良好的条件:任务是线性的,训练分布的几何结构是充分“多样化”的。据我们所知,我们的结果是这种前馈神经网络的第一个外推结果。

然后,我们将我们对前馈神经网络的见解与GNNs联系起来,以解释GNNs在某些算法任务中外推得好的原因。先前的工作报告了可以通过动态规划(DP)解决的任务的成功外推(Bellman,1966),其计算结构与GNNs一致(Xu等人,2020)。DP更新通常可以分解为非线性和线性步骤。因此,我们假设GD训练的GNN可以在DP任务中很好地外推,如果我们在架构和输入表示中编码适当的非线性(图2)。重要的是,编码非线性可能不需要GNNs插值,因为MLP模块可以很容易地学习训练分布中的许多非线性函数(Cybenko,1989;Hornik等人,1989年;Xu等人,2020),但GNNs正确外推至关重要。我们使用图NTK(Du等人,2019b)证明了简化情况下的这一假设。在经验上,我们验证了三个DP任务的假设:最大度、最短路径和n体问题。我们证明了具有适当结构、输入表示和训练分布的GNNs可以很好地预测具有未知大小、结构、边权值和节点特征的图。我们的理论解释了以往工作的经验成功,并指出了它们的局限性:成功的外推依赖于编码任务特定的非线性,这需要领域知识或广泛的模型搜索。从更广泛的角度来看,我们的见解超越了GNNs,并广泛应用于其他神经网络。

总之,我们研究神经网络如何外推。首先,由GD训练的ReLU-mlp以O(1/t)的速率沿原点方向收敛为线性函数。其次,为了解释为什么GNNs在一些算法任务中可以很好地外推,我们证明了ReLU-MLPs在线性任务中可以很好地外推,从而引出一个假设:当适当的非线性被编码到结构和特征中时,神经网络可以很好地外推。我们用一个简化的例子证明了这个假设,并为更一般的情况提供了经验支持。

1.1相关工作

早期的工作显示了MLP不能很好地外推的示例任务,例如学习简单多项式(Barnard&Wessels,1992;Haley&Soloway,1992年)。相反,我们展示了ReLU MLPs如何外推的一般模式,并确定MLPs外推良好的条件。最近的工作研究了在NTK和平均场两种情况下,梯度下降对MLP产生的隐性偏差(Bietti和Mairal,2019;Chizat&Bach,2018年;Song等人,2018年)。与我们的结果相关,一些工作表明MLP预测收敛于“简单”分段线性函数,例如,具有很少的线性区域(Hanin&Rolnick,2019;Maennel等人,2018年;Savarese等人,2019年;威廉姆斯等人,2019年)。我们的工作不同之处在于,这些工作都没有明确研究外推法,有些只关注一维输入。最近的研究还表明,在NTK区域的高维环境中,MLP在某些标度极限下至多是一个渐近线性预测因子(Ba等人,2020;Ghorbani等人,2019年)。我们研究不同的设置(外推),我们的分析是非渐近性质,不依赖于随机矩阵理论。

先前的工作通过在较大的图上进行测试来探索GNN外推(Battaglia et al.,2018;Santoro等人,2018年;萨克斯顿等人,2019年;Velickovic等人,2020年)。我们是第一个从理论上研究GNN外推法的人,我们完成了外推法的概念,包括看不见的特征和结构。

2准备工作

3前馈神经网络如何外推

前馈网络是最简单的神经网络和更复杂的体系结构(如GNNs)的构建块,因此我们首先研究它们在GD训练时是如何外推的。在本文中,我们假设ReLU激活。第3.3节包含其他激活的初步结果。

3.1 RELU MLP的线性外推行为

通过架构,ReLU网络学习分段线性函数,但是在训练数据的支持之外,这些区域究竟是什么样的呢?图1举例说明了当GD对各种非线性函数进行训练时,ReLU MLP如何进行外推。这些例子表明,在训练支持之外,预测很快就会沿着原点的方向线性化。我们通过线性回归对MLPs的预测进行了系统的验证:决定系数(R2)总是大于0.99(附录C.2)。也就是说,ReLU MLPs几乎立即在训练数据范围之外“线性化”。

我们使用GD通过神经切线核(NTK)训练的神经网络的隐式偏差来形式化这个观察:GD训练的过参数化网络的优化轨迹等价于具有特定神经切线核的核回归的轨迹,在一系列被称为“NTK制度”的假设下(Jacot等人,2018年)。我们在这里提供了一个非正式的定义;更多详情,请参阅Jacot等人(2018)和附录A。

定义2。

(非正式)在NTK区域训练的神经网络是无限宽的,以一定的比例随机初始化,并且由GD以无穷小的步长训练。

先前的工作通过NTK分析过参数化神经网络的优化和分布泛化(Allen-Zhu等人,2019a;b类;Arora等人,2019a;b类;曹顾,2019;杜等人,2019c;一个;李亮,2018;日田和铃木,2021年)。相反,我们分析外推。

定理1将我们从图1中观察到的结果形式化:在训练数据范围之外,沿着原点的任何方向tv,两层ReLU MLP的预测迅速收敛为速率为O(1/t)的线性函数。线性系数β收敛速度中的常数项依赖于训练数据和方向v。证据见附录B.1

定理1

ReLU网络具有有限多个线性区域(Arora等人,2018;汉宁和罗尔尼克,2019),因此他们的预测最终成为线性。相反,定理1是一个更细粒度的分析MLP如何外推,并提供了收敛速度。虽然定理1假设两层网络处于NTK状态,但实验证实,线性外推行为发生在具有不同深度、宽度、学习速率和批量大小的网络上(附录C.1和C.2)。我们的证明技术也可能扩展到更深层次的网络。

图4a提供了一个更积极的结果:MLP在许多不同的超参数上很好地外推了线性目标函数。虽然学习线性函数一开始似乎非常有限,但在第4节中,这一见解将有助于解释GNN在非线性实际任务中的外推特性。在此之前,我们首先从理论上分析了MLPs外推的好时机。

3.2当RELU MLPS可证明外推井

图4a显示,当目标函数为线性时,MLP可以很好地外推。然而,这并不总是正确的。在本节中,我们展示了成功的外推依赖于训练数据的几何结构。直观地说,训练分布必须足够“多样化”,以便进行正确的推断

我们提供了两个条件,将训练数据的几何结构与外推联系起来。引理1指出,过参数化的mlp只需二维例子就可以学习线性目标函数。

实验:训练数据的几何结构影响外推。

定理2中的条件形式化了一种直觉,即训练分布必须是“多样的”,才能成功地进行外推,例如,D包括所有方向。从经验上讲,当满足定理2的条件时(图4b中的“all”),外推误差确实很小。相反,当训练示例仅限于某些方向时,外推误差要大得多(图4b和图3)。

与之前的工作相关,定理2提出了为什么虚假相关性可能会损害外推,补充了因果关系论点(Arjovsky et al.,2019;Peters等人,2016年;Rojas Carulla等人,2018年)。当训练数据具有虚假相关性时,某些特征组合丢失;e、 例如,骆驼可能只出现在沙漠中的图像收集。因此,定理2的条件不再成立,模型可能外推错误。定理2也类似于线性模型的可辨识条件,但更为严格。如果训练数据具有全(特征)秩,我们可以唯一地识别一个线性函数。mlp更具表现力,因此识别线性目标函数需要附加约束。

综上所述,我们分析了ReLU-MLPs是如何外推的,并提供了两个启示:(1)MLPs由于其线性外推而不能外推大多数非线性任务(定理1);当目标函数是线性函数时,如果训练分布是“多样的”(定理2),mlp可以很好地外推。在下一节中,这些结果将帮助我们理解更复杂的网络是如何外推的。

3.3具有其他激活功能的MLPS

在继续讨论GNNs之前,我们通过对其他激活函数tanh的实验来完成MLPs的描述σ(x) =tanh(x),余弦σ(x) =cos(x)(Lapedes&Farber,1987年;McCaughan,1997年;Sopena和Alquezar,1994),和σ(x) =x2(杜和李,2018;Livni等人,2014年)。详情见附录C.4。当激活函数和目标函数相似时,MLPs外推效果较好;e、 例如,当学习tanh时,tanh激活可以很好地推断,但不能推断其他功能(图5)。而且,每个激活函数都有不同的局限性。要用tanh激活外推tanh函数,训练数据范围必须足够宽。当学习具有二次激活的二次函数时,只有两层网络可以很好地进行外推,而更多的层可以得到更高阶的多项式。对于高维数据,余弦激活很难优化,因此我们只考虑一维/二维余弦目标函数。

4图形神经网络如何外推

上面,我们看到非线性任务中的外推对于MLP来说是困难的。尽管存在这一局限性,GNNs在一些非线性算法任务中表现出了很好的外推能力,如直观物理(Battaglia et al.,2016;Janner等人,2019),图算法(Battaglia等人,2018;Velickovic等人,2020)和符号数学(Lample&Charton,2020)。为了解决这个差异,我们建立在MLP结果的基础上,研究GD训练的GNNs是如何外推的。

4.1假设:线性算法对齐有助于外推

我们从一个例子开始:训练GNNs来解决最短路径问题。对于这项任务,先前的工作观察到,具有最小聚集的改进GNN架构可以推广到比训练集中的图更大的图(Battaglia et al.,2018;Velickovic等人,2020):

我们首先提供一个直观的解释(图2a)。最短路径可通过Bellman-Ford(BF)算法(Bellman,1958)求解,并进行以下更新

其中w(v,u)是边(v,u)的权重,d[k][u]是k步内到节点u的最短距离。这两个方程可以很容易地对齐:如果GNNs的MLP模块学习一个线性函数d[k],那么它将模拟BF算法−1] [v]+w(v,u)。由于mlp可以外推线性任务,这种“对齐”可以解释为什么GNNs可以在这个任务中很好地外推。

为了进行比较,我们可以解释为什么我们不希望GNN使用更常用的和聚合(Eqn。1) 在这项任务中推断得很好。对于和聚合,MLP模块需要学习一个非线性函数来模拟BF算法,但定理1表明,它们不会在训练支持之外外推大多数非线性函数。

我们可以将上述直觉推广到其他算法任务。许多GNNs外推良好的任务可以通过动态规划(DP)来解决(Bellman,1966),这是一种具有类似GNNs(Eqn)的递归结构的算法范式。1) (Xu等人,2020年)。

定义3。动态规划(DP)是一个带有更新的递归过程

其中答案[k][s]是迭代k和状态s索引的子问题的解决方案,DP Update是一个任务特定的更新函数,它基于上一次迭代解决子问题。从更广泛的角度出发,我们假设:如果我们将适当的非线性编码到模型结构和输入表示中,使MLP模块只需要学习接近线性的步骤,那么所得到的神经网络就可以很好地外推。

假设1。

我们的假设建立在(Xu等人,2020)的算法对齐框架之上,该框架指出,如果模块“对齐”以便于学习(可能是非线性)函数,则神经网络插值良好。成功的外推更难:模块需要与线性函数对齐。

线性算法对准的应用。

一般来说,线性算法对准不局限于GNN,广泛应用于神经网络。为了满足这种情况,我们可以在结构或输入表示中编码适当的非线性操作(图2)。使用GNNs学习DP算法是在体系结构中编码非线性的一个例子(Battaglia等人,2018;Corso等人,2020年)。另一个例子是对体系结构中的日志和exp变换进行编码,以帮助外推算术任务中的乘法(Trask等人,2018;Madsen&Johansen,2020年)。神经符号程序进一步发展,并对符号操作库进行编码,以帮助推断(Johnson等人,2017年;Mao等人,2019年;易等,2018年)。

对于某些任务,更改输入表示可能更容易(图2b)。有时,我们可以将目标函数f分解为f=g◦ 将h嵌入特征嵌入h和一个简单的目标函数g中,我们的模型可以很好地推断。我们可以通过使用领域知识通过专门的特征或特征转换获得h(Lample&Charton,2020;Webb等人,2020年),或通过X\D中未标记的未标记的未标记的分发数据的表示学习(例如,BERT)(Chen等人,2020年);Devlin等人,2019年;胡等,2020;Mikolov等人,2013b;Peters等人,2018年)。这为表示如何帮助在不同应用领域进行外推提供了新的视角。例如,在自然语言处理中,预处理表示(Mikolov等人,2013a;Wu&Dredze,2019)和使用领域知识进行特征转换(袁等,2020年;Zhang等人,2019)帮助模型在语言之间进行概括,这是一种特殊的外推。在定量金融中,确定正确的“因素”或特征对于深入学习模型至关重要,因为金融市场可能经常处于外推制度中(Banz,1981;法兰西,1993年;罗斯,1976)。

线性算法对齐解释了文献中成功的外推,并指出外推一般更难:编码适当的非线性通常需要领域专家或模型搜索。其次,我们为我们的假设提供理论和实证支持。

4.2理论和经验支持

我们验证了我们对三个DP任务的假设:最大度、最短路径和n-体问题,并证明了最大度假设。我们强调了图结构在外推中的作用。

理论分析。

我们从一个简单而基本的任务开始:学习一个图的最大度,一个DP的特例。作为定理1的推论,常用的基于和的GNN(Eqn。1) 无法很好地推断(证据见附录B.4)。

推论1。

具有和聚集和和和读出的GNNs在最大程度上不能很好地外推。为了实现线性算法对齐,我们可以对读出器中唯一的非线性max函数进行编码。定理3证实了具有最大读数的GNN在这个任务中可以很好地外推。

定理3并不是紧跟定理2,因为GNNs中的MLP模块只接受间接的监视。我们分析图NTK(Du等人,2019b)来证明附录B.5中的定理3。虽然定理3假设相同的节点特征,但我们在经验上观察到相同和不相同特征的相似结果(附录中的图16)。

条件的解释。

定理3中的条件类似于定理2中的条件。这两个定理都需要不同的训练数据,用定理3中的图结构或定理2中的方向来度量。在定理3中,如果所有训练图都具有相同的最大或最小节点度,例如,当训练数据来自以下族之一时,违反了该条件:路径、C-正则图(具有C度的正则图)、圈和阶梯。

实验:有助于推断的架构。

我们用两个DP任务来验证我们的理论分析:最大度和最短路径(详见附录C.5和C.6)。而以前的工作只测试不同大小的图(Battaglia et al.,2018;Velickovic等人,2020),我们还测试了具有不可见结构、边权重和节点特征的图。结果支持了我们的理论。对于最大度,具有最大读数的GNNs优于具有和读数的GNNs(图6a),证实了推论1和定理3。对于最短路径,具有最小读数和最小聚集的GNN优于具有和读数的GNN(图6a)。

实验证实了训练图结构的重要性(图7)。有趣的是,这两个任务支持不同的图结构。对于最大度,如定理3所预测的,当训练在树、完全图、扩张图和一般图上时,GNNs外推效果很好,当训练在4-正则图、圈图或梯形图上时,外推误差更大。对于最短路径,当我们改变训练图的稀疏性时,外推误差遵循U形曲线(附录中的图7b和图18)。直觉上,在稀疏或稠密图上训练的模型可能学习退化解。

实验:有助于推断的表征。

最后,我们展示了一个很好的输入表示帮助外推。我们研究了n体问题(Battaglia等人,2016;Watters等人,2017年)(附录C.7),即预测重力系统中n个物体的时间演化。根据之前的工作,输入是一个完整的图形,其中节点是对象(Battaglia等人,2016)。

5与其他分布外设置的连接

我们讨论几个相关的设置。直观地说,从我们上述结果的观点来看,相关设置中的方法可以通过1)学习超出训练数据范围的有用非线性和2)将相关测试数据映射到训练数据范围来改进外推。

领域适应研究对特定目标领域的泛化(Ben-David等人,2010;Blitzer等人,2008年;Mansour等人,2009年)。典型的策略会调整训练过程:例如,使用来自目标域的未标记样本来对齐目标和源分布(Ganin等人,2016;赵等,2018)。在训练期间使用目标域数据可能会导致有用的非线性,并可能通过匹配目标和源分布来减轻外推,尽管学习映射的正确性取决于标签分布(Zhao等人,2019)。

对大量未标记数据的自监督学习可以学习超出标记训练数据范围的有用非线性(Chen et al.,2020;Devlin等人,2019年;He等人,2020年;Peters等人,2018年)。因此,我们的结果提出了一个解释,为什么像BERT这样的预训练表示可以提高分布外鲁棒性(Hendrycks et al.,2020)。此外,自监督学习可以将语义相似的数据映射到相似的表示,因此映射后的一些域外实例可能会落入训练分布中。

不变模型旨在学习在多个训练分布中尊重特定不变性的特征(Arjovsky et al.,2019;Rojas Carulla等人,2018年;周等人,2021)。如果模型真的学习到了这些不变性,这可能发生在线性情况下,当存在混杂或反因果变量时(Ahuja等人,2021;Rosenfeld等人,2021),这可能从本质上增加了训练数据范围,因为模型可以忽略不变特征的变化。

分布鲁棒性考虑了数据分布的小干扰,并确保模型在这些干扰下表现良好(Goh&Sim,2010;Sagawa等人,2020年;Sinha等人,2018年;Staib&Jegelka,2019年)。相反,我们看的是更多的全局扰动。尽管如此,人们还是希望,有助于外推的修改通常也能提高对局部扰动的鲁棒性。

6结论

本文是一个初步的步骤,正式了解如何神经网络训练梯度下降外推。我们确定了MLPs和GNNs按期望外推的条件。我们还提出了一种解释,说明GNNs在复杂的算法任务中是如何能够很好地进行外推的:在架构和特性中编码适当的非线性可以帮助外推。我们的结果和假设与本文和文献中的实证结果一致

‘肆’ matlab 神经网络参数设置问题

net=newff(pr,[25 1],{'logsig' ,'purelin'},'traingdx','learngdm');
'logsig' 与'purelin'中间忘记加逗号了,你加上试试行不~

‘伍’ SPSS的神经网络模型参数设置疑问

1神经网络对于定量数据也能用

2因子根据具体研究面对确定
3比例3:7,也可以cross
4验证集必须
5这些就多了,有数学公式

‘陆’ 神经网络输入的每一组离散点的离散点个数都不一致,神经网络怎么设置

以可能达到的最多离散点的个数为准,其他样本中长度不足的补零

‘柒’ BP神经网络中初始权值和阈值的设定

1、首先需要了解BP神经网络是一种多层前馈网络。

‘捌’ 神经网络算法中,参数的设置或者调整,有什么方法可以采用

若果对你有帮助,请点赞。
神经网络的结构(例如2输入3隐节点1输出)建好后,一般就要求神经网络里的权值和阈值。现在一般求解权值和阈值,都是采用梯度下降之类的搜索算法(梯度下降法、牛顿法、列文伯格-马跨特法、狗腿法等等),这些算法会先初始化一个解,在这个解的基础上,确定一个搜索方向和一个移动步长(各种法算确定方向和步长的方法不同,也就使各种算法适用于解决不同的问题),使初始解根据这个方向和步长移动后,能使目标函数的输出(在神经网络中就是预测误差)下降。 然后将它更新为新的解,再继续寻找下一步的移动方向的步长,这样不断的迭代下去,目标函数(神经网络中的预测误差)也不断下降,最终就能找到一个解,使得目标函数(预测误差)比较小。
而在寻解过程中,步长太大,就会搜索得不仔细,可能跨过了优秀的解,而步长太小,又会使寻解过程进行得太慢。因此,步长设置适当非常重要。
学习率对原步长(在梯度下降法中就是梯度的长度)作调整,如果学习率lr = 0.1,那么梯度下降法中每次调整的步长就是0.1*梯度,
而在matlab神经网络工具箱里的lr,代表的是初始学习率。因为matlab工具箱为了在寻解不同阶段更智能的选择合适的步长,使用的是可变学习率,它会根据上一次解的调整对目标函数带来的效果来对学习率作调整,再根据学习率决定步长。
机制如下:
if newE2/E2 > maxE_inc %若果误差上升大于阈值
lr = lr * lr_dec; %则降低学习率
else
if newE2 < E2 %若果误差减少
lr = lr * lr_inc;%则增加学习率
end
详细的可以看《神经网络之家》nnetinfo里的《[重要]写自己的BP神经网络(traingd)》一文,里面是matlab神经网络工具箱梯度下降法的简化代码

若果对你有帮助,请点赞。
祝学习愉快

‘玖’ 神经网络gradient怎么设置

梯度是计算得来的,不是“设置”的。

传统的神经网络通过前向、后向两步运算进行训练。其中最关键的就是BP算法,它是网络训练的根本方式。在运行BP的过程中,你需要先根据定义好的“代价函数”分别对每一层的参数(一般是W和b)求偏导(也就是你说的gradient),用该偏导数在每一次迭代中更新对应的W和b,直至算法收敛。

具体实现思路和细节可以参考:http://deeplearning.stanford.e/wiki/index.php/%E5%8F%8D%E5%90%91%E4%BC%A0%E5%AF%BC%E7%AE%97%E6%B3%95

‘拾’ 深度神经网络dnn怎么调节参数

深度神经网络(DNN)目前是许多现代AI应用的基础。
自从DNN在语音识别和图像识别任务中展现出突破性的成果,使用DNN的应用数量呈爆炸式增加。这些DNN方法被大量应用在无人驾驶汽车,癌症检测,游戏AI等方面。
在许多领域中,DNN目前的准确性已经超过人类。与早期的专家手动提取特征或制定规则不同,DNN的优越性能来自于在大量数据上使用统计学习方法,从原始数据中提取高级特征的能力,从而对输入空间进行有效的表示。

然而,DNN超高的准确性是以超高的计算复杂度为代价的。
通常意义下的计算引擎,尤其是GPU,是DNN的基础。因此,能够在不牺牲准确性和增加硬件成本的前提下,提高深度神经网络的能量效率和吞吐量的方法,对于DNN在AI系统中更广泛的应用是至关重要的。研究人员目前已经更多的将关注点放在针对DNN计算开发专用的加速方法。
鉴于篇幅,本文主要针对论文中的如下几部分详细介绍:
DNN的背景,历史和应用
DNN的组成部分,以及常见的DNN模型
简介如何使用硬件加速DNN运算
DNN的背景
人工智能与深度神经网络

深度神经网络,也被称为深度学习,是人工智能领域的重要分支,根据麦卡锡(人工智能之父)的定义,人工智能是创造像人一样的智能机械的科学工程。深度学习与人工智能的关系如图1所示:

图1:深度神经网络与人工智能的关系
人工智能领域内,一个大的子领域是机器学习,由Arthur Samuel在1959年定义为:让计算机拥有不需要明确编程即可学习的能力。
这意味着创建一个程序,这个程序可以被训练去学习如何去做一些智能的行为,然后这个程序就可以自己完成任务。而传统的人工启发式方法,需要对每个新问题重新设计程序。
高效的机器学习算法的优点是显而易见的。一个机器学习算法,只需通过训练,就可以解决某一领域中每一个新问题,而不是对每个新问题特定地进行编程。
在机器学习领域,有一个部分被称作brain-inspired computation。因为人类大脑是目前学习和解决问题最好的“机器”,很自然的,人们会从中寻找机器学习的方法。
尽管科学家们仍在探索大脑工作的细节,但是有一点被公认的是:神经元是大脑的主要计算单元。
人类大脑平均有860亿个神经元。神经元相互连接,通过树突接受其他神经元的信号,对这些信号进行计算之后,通过轴突将信号传递给下一个神经元。一个神经元的轴突分支出来并连接到许多其他神经元的树突上,轴突分支和树突之间的连接被称为突触。据估计,人类大脑平均有1014-1015个突触。
突触的一个关键特性是它可以缩放通过它的信号大小。这个比例因子可以被称为权重(weight),普遍认为,大脑学习的方式是通过改变突触的权重实现的。因此,不同的权重导致对输入产生不同的响应。注意,学习过程是学习刺激导致的权重调整,而大脑组织(可以被认为是程序)并不改变。
大脑的这个特征对机器学习算法有很好的启示。
神经网络与深度神经网络

神经元的计算是输入值的加权和这个概念启发了神经网络的研究。这些加权和对应于突触的缩放值以及神经元所接收的值的组合。此外,神经元并不仅仅是输入信号的加权和,如果是这样的话,级联的神经元的计算将是一种简单的线性代数运算。
相反的是,神经元组合输入的操作似乎是一种非线性函数,只有输入达到某个阈值的时候,神经元才会生成输出。因此,通过类比,我们可以知道神经网络在输入值的加权和的基础上应用了非线性函数。
图2(a)展示了计算神经网络的示意图,图的最左边是接受数值的“输入层”。这些值被传播到中间层神经元,通常也叫做网络的“隐藏层”。通过一个或更多隐藏层的加权和最终被传播到“输出层”,将神经网络的最终结果输出给用户。

图2:神经网络示意图

在神经网络领域,一个子领域被称为深度学习。最初的神经网络通常只有几层的网络。而深度网络通常有更多的层数,今天的网络一般在五层以上,甚至达到一千多层。
目前在视觉应用中使用深度神经网络的解释是:将图像所有像素输入到网络的第一层之后,该层的加权和可以被解释为表示图像不同的低阶特征。随着层数的加深,这些特征被组合,从而代表更高阶的图像特征。
例如,线可以被组合成形状,再进一步,可以被组合成一系列形状的集合。最后,再训练好这些信息之后,针对各个图像类别,网络给出由这些高阶特征组成各个对象的概率,即分类结果。
推理(Inference)与训练(Training)
既然DNN是机器学习算法中的一员,那么它的基本编程思想仍然是学习。DNN的学习即确定网络的权重值。通常,学习过程被称为训练网络(training)。一旦训练完成,程序可以使用由训练确定的权值进行计算,这个使用网络完成任务的操作被被称为推断(inference)。
接下来,如图3所示,我们用图像分类作为例子来展示如何训练一个深度神经网络。当我们使用一个DNN的时候,我们输入一幅图片,DNN输出一个得分向量,每一个分数对应一个物体分类;得到最高分数的分类意味着这幅图片最有可能属于这个分类。
训练DNN的首要目标就是确定如何设置权重,使得正确分类的得分最高(图片所对应的正确分类在训练数据集中标出),而使其他不正确分类的得分尽可能低。理想的正确分类得分与目前的权重所计算出的得分之间的差距被称为损失函数(loss)。
因此训练DNN的目标即找到一组权重,使得对一个较大规模数据集的loss最小。

图3:图像分类

权重(weight)的优化过程类似爬山的过程,这种方法被称为梯度下降(gradient decent)。损失函数对每个权值的梯度,即损失函数对每个权值求偏导数,被用来更新权值(例:第t到t+1次迭代:,其中α被称为学习率(Learning rate)。梯度值表明权值应该如何变化以减小loss。这个减小loss值的过程是重复迭代进行的。
梯度可以通过反向传播(Back-Propagation)过程很高效地进行计算,loss的影响反向通过网络来计算loss是如何被每个权重影响的。
训练权重有很多种方法。前面提到的是最常见的方法,被称为监督学习,其中所有的训练样本是有标签的。
无监督学习是另一种方法,其中所有训练样本都没有标签,最终目标是在数据中查找结构或聚类。半监督学习结合了两种方法,只有训练数据的一小部分被标记(例如,使用未标记的数据来定义集群边界,并使用少量的标记数据来标记集群)。
最后,强化学习可以用来训练一个DNN作为一个策略网络,对策略网络给出一个输入,它可以做出一个决定,使得下一步的行动得到相应的奖励;训练这个网络的过程是使网络能够做出使奖励(即奖励函数)最大化的决策,并且训练过程必须平衡尝试新行为(Exploration)和使用已知能给予高回报的行为(Exploitation)两种方法。

用于确定权重的另一种常用方法是fine-tune,使用预先训练好的模型的权重用作初始化,然后针对新的数据集(例如,传递学习)或新的约束(例如,降低的精度)调整权重。与从随机初始化开始相比,能够更快的训练,并且有时会有更好的准确性。