1700538331
LeCun Yann和其他人发展的神经网络正开始被热捧的时候,他一生较劲的对象Vapnik(贝尔实验室的同事)出现了。20世纪90年代中期,由Vapnik等人发明的支持向量机诞生,它同样解决了线性不可分问题,但是对比神经网络有全方位优势。比如,高效,可以快速训练;无须调参,没有梯度消失问题;泛化性能好,过拟合风险小。支持向量机迅速打败多层神经网络成为主流。后来一度发展到,只要你的论文中包含神经网络相关的字眼,就非常容易被拒稿,学术界那时对神经网络的态度可想而知。神经网络再次堕入黑暗。10年沉寂中,只有几个学者仍然在坚持研究,比如一再提及的Hinton教授。
1700538332
1700538333
2006年,Hinton在《Science》和相关期刊上发表了论文,首次提出了“深度置信网络”的概念。与传统的训练方式不同,深度信念网络有一个“预训练”的过程,它的作用是让神经网络权值找到一个接近最优解的值,之后再使用“微调”技术,使用反向传播算法或者其他算法作为调优的手段,来对整个网络进行优化训练。这两个技术的运用大幅度提升了模型的性能,而且减少了训练多层神经网络的时间。他给多层神经网络相关的学习方法赋予了一个新名词——“深度学习”。
1700538334
1700538335
后面的故事我们都知道了,2012年Hinton的团队用LeCun赖以成名的卷积神经网络,和自己在深度置信网络的调优技术,碾压了其他机器学习办法。至此,深度学习开始垄断人工智能的新闻报道,Hinton、LeCun和他们的学生像摇滚明星一般受到追捧,学者们的态度也来了个180度大转变,现在是没有和深度学习沾上边的文章很难发表了。除了名,还有利,Google、Facebook等大公司不但把学术界人物挖了个遍,更是重金收购深度学习大佬们所创建的公司,坐了几十年冷板凳的人忽然一夜之间身价暴涨、财务自由。不过,现在主导Facebook AI 实验室的LeCun Yann则不断呼吁学术界对深度学习保持冷静。
1700538336
1700538337
1700538338
1700538339
1700538341
百面机器学习:算法工程师带你去面试 04 神经网络训练技巧
1700538342
1700538343
1700538344
1700538345
场景描述
1700538346
1700538347
在大规模神经网络的训练过程中,我们常常会面临“过拟合”的问题,即当参数数目过于庞大而相应的训练数据短缺时,模型在训练集上损失值很小,但在测试集上损失较大,泛化能力很差。解决“过拟合”的方法有很多,包括数据集增强(Data Augmentation)、参数范数惩罚/正则化(Regularization)、模型集成(Model Ensemble)等;其中Dropout是模型集成方法中最高效与常用的技巧。同时,深度神经网络的训练中涉及诸多手调参数,如学习率、权重衰减系数、Dropout比例等,这些参数的选择会显著影响模型最终的训练效果。批量归一化(Batch Normalization,BN)方法有效规避了这些复杂参数对网络训练产生的影响,在加速训练收敛的同时也提升了网络的泛化能力。
1700538348
1700538349
知识点
1700538350
1700538351
概率与统计,深度学习
1700538352
1700538353
问题1 神经网络训练时是否可以将全部参数初始化为0?
1700538354
1700538355
难度:难度:★☆☆☆☆
1700538356
1700538357
分析与解答
1700538358
1700538359
考虑全连接的深度神经网络,同一层中的任意神经元都是同构的,它们拥有相同的输入和输出,如果再将参数全部初始化为同样的值,那么无论前向传播还是反向传播的取值都是完全相同的。学习过程将永远无法打破这种对称性,最终同一网络层中的各个参数仍然是相同的。
1700538360
1700538361
1700538362
因此,我们需要随机地初始化神经网络参数的值,以打破这种对称性。简单来说,我们可以初始化参数为取值范围的均匀分布,其中d是一个神经元接受的输入维度。偏置可以被简单地设为0,并不会导致参数对称的问题。
1700538363
1700538364
问题2 为什么Dropout可以抑制过拟合?它的工作原理和实现?
1700538365
1700538366
难度:★★★☆☆
1700538367
1700538368
分析与解答
1700538369
1700538370
Dropout是指在深度网络的训练中,以一定的概率随机地 “临时丢弃”一部分神经元节点。具体来讲,Dropout作用于每份小批量训练数据,由于其随机丢弃部分神经元的机制,相当于每次迭代都在训练不同结构的神经网络。类比于Bagging方法,Dropout可被认为是一种实用的大规模深度神经网络的模型集成算法。这是由于传统意义上的Bagging涉及多个模型的同时训练与测试评估,当网络与参数规模庞大时,这种集成方式需要消耗大量的运算时间与空间。Dropout在小批量级别上的操作,提供了一种轻量级的Bagging集成近似,能够实现指数级数量神经网络的训练与评测。
1700538371
1700538372
Dropout的具体实现中,要求某个神经元节点激活值以一定的概率p被“丢弃”,即该神经元暂时停止工作,如图9.12所示。因此,对于包含N个神经元节点的网络,在Dropout的作用下可看作为2N个模型的集成。这2N个模型可认为是原始网络的子网络,它们共享部分权值,并且具有相同的网络层数,而模型整体的参数数目不变,这就大大简化了运算。对于任意神经元,每次训练中都与一组随机挑选的不同的神经元集合共同进行优化,这个过程会减弱全体神经元之间的联合适应性,减少过拟合的风险,增强泛化能力。
1700538373
1700538374
在神经网络中应用Dropout包括训练和预测两个阶段。在训练阶段中,每个神经元节点需要增加一个概率系数,如图9.13所示。训练阶段又分为前向传播和反向传播两个步骤。原始网络对应的前向传播公式为
1700538375
1700538376
1700538377
,
1700538378
1700538379
(9.30)
1700538380
[
上一页 ]
[ :1.700538331e+09 ]
[
下一页 ]