神经网络是不是层数越多越好?
1、神经网络算法隐含层的选取1.1构造法首先运用三种确定隐含层层数的方法得到三个隐含层层数,找到最小值和最大值,然后从最小值开始逐个验证模型预测误差,直到达到最大值。
最后选取模型误差最小的那个隐含层层数。该方法适用于双隐含层网络。1.2删除法单隐含层网络非线性映射能力较弱,相同问题,为达到预定映射关系,隐层节点要多一些,以增加网络的可调参数,故适合运用删除法。
1.3黄金分割法算法的主要思想:首先在[a,b]内寻找理想的隐含层节点数,这样就充分保证了网络的逼近能力和泛化能力。
为满足高精度逼近的要求,再按照黄金分割原理拓展搜索区间,即得到区间[b,c](其中b=0.619*(c-a)+a),在区间[b,c]中搜索最优,则得到逼近能力更强的隐含层节点数,在实际应用根据要求,从中选取其一即可。
BP算法中,权值和阈值是每训练一次,调整一次。逐步试验得到隐层节点数就是先设置一个初始值,然后在这个值的基础上逐渐增加,比较每次网络的预测性能,选择性能最好的对应的节点数作为隐含层神经元节点数。
什么是深度学习与机器视觉
深度学习框架,尤其是基于人工神经网络的框架可以追溯到1980年福岛邦彦提出的新认知机[2],而人工神经网络的历史更为久远rfid。
1989年,燕乐存(YannLeCun)等人开始将1974年提出的标准反向传播算法[3]应用于深度神经网络,这一网络被用于手写邮政编码识别。
尽管算法可以成功执行,但计算代价非常巨大,神经网路的训练时间达到了3天,因而无法投入实际使用[4]。
许多因素导致了这一缓慢的训练过程,其中一种是由于尔根·施密德胡伯(JürgenSchmidhuber)的学生赛普·霍克赖特(SeppHochreiter)于1991年提出的梯度消失问题[5][6]。
与此同时,神经网络也受到了其他更加简单模型的挑战,支持向量机等模型在20世纪90年代到21世纪初成为更加流行的机器学习算法。“深度学习”这一概念从2007年前后开始受到关注。
当时,杰弗里·辛顿(GeoffreyHinton)和鲁斯兰·萨拉赫丁诺夫(RuslanSalakhutdinov)提出了一种在前馈神经网络中进行有效训练的算法。
这一算法将网络中的每一层视为无监督的受限玻尔兹曼机,再使用有监督的反向传播算法进行调优[7]。
在此之前的1992年,在更为普遍的情形下,施密德胡伯也曾在递归神经网络上提出一种类似的训练方法,并在实验中证明这一训练方法能够有效提高有监督学习的执行速度[8][9].自深度学习出现以来,它已成为很多领域,尤其是在计算机视觉和语音识别中,成为各种领先系统的一部分。
在通用的用于检验的数据集,例如语音识别中的TIMIT和图像识别中的ImageNet,Cifar10上的实验证明,深度学习能够提高识别的精度。硬件的进步也是深度学习重新获得关注的重要因素。
高性能图形处理器的出现极大地提高了数值和矩阵运算的速度,使得机器学习算法的运行时间得到了显著的缩短[10][11]。
基本概念[编辑]深度学习的基础是机器学习中的分散表示(distributedrepresentation)。分散表示假定观测值是由不同因子相互作用生成。
在此基础上,深度学习进一步假定这一相互作用的过程可分为多个层次,代表对观测值的多层抽象。不同的层数和层的规模可用于不同程度的抽象[1]。
深度学习运用了这分层次抽象的思想,更高层次的概念从低层次的概念学习得到。
这一分层结构常常使用贪婪算法逐层构建而成,并从中选取有助于机器学习的更有效的特征[1].不少深度学习算法都以无监督学习的形式出现,因而这些算法能被应用于其他算法无法企及的无标签数据,这一类数据比有标签数据更丰富,也更容易获得。
这一点也为深度学习赢得了重要的优势[1]。人工神经网络下的深度学习[编辑]一部分最成功的深度学习方法涉及到对人工神经网络的运用。
人工神经网络受到了1959年由诺贝尔奖得主大卫·休伯尔(DavidH.Hubel)和托斯坦·威泽尔(TorstenWiesel)提出的理论启发。
休伯尔和威泽尔发现,在大脑的初级视觉皮层中存在两种细胞:简单细胞和复杂细胞,这两种细胞承担不同层次的视觉感知功能。受此启发,许多神经网络模型也被设计为不同节点之间的分层模型[12]。
福岛邦彦提出的新认知机引入了使用无监督学习训练的卷积神经网络。燕乐存将有监督的反向传播算法应用于这一架构[13]。
事实上,从反向传播算法自20世纪70年代提出以来,不少研究者都曾试图将其应用于训练有监督的深度神经网络,但最初的尝试大都失败。
赛普·霍克赖特(SeppHochreiter)在其博士论文中将失败的原因归结为梯度消失,这一现象同时在深度前馈神经网络和递归神经网络中出现,后者的训练过程类似深度网络。
在分层训练的过程中,本应用于修正模型参数的误差随着层数的增加指数递减,这导致了模型训练的效率低下[14][15]。为了解决这一问题,研究者们提出了一些不同的方法。
于尔根·施密德胡伯(JürgenSchmidhuber)于1992年提出多层级网络,利用无监督学习训练深度神经网络的每一层,再使用反向传播算法进行调优。
在这一模型中,神经网络中的每一层都代表观测变量的一种压缩表示,这一表示也被传递到下一层网络[8]。
另一种方法是赛普·霍克赖特和于尔根·施密德胡伯提出的长短期记忆神经网络(longshorttermmemory,LSTM)[16]。
2009年,在ICDAR2009举办的连笔