题库深度学习面试题型介绍及解析--第8期

上传人:ja****ee 文档编号:149211533 上传时间:2020-10-25 格式:DOC 页数:6 大小:114.50KB
返回 下载 相关 举报
题库深度学习面试题型介绍及解析--第8期_第1页
第1页 / 共6页
题库深度学习面试题型介绍及解析--第8期_第2页
第2页 / 共6页
题库深度学习面试题型介绍及解析--第8期_第3页
第3页 / 共6页
题库深度学习面试题型介绍及解析--第8期_第4页
第4页 / 共6页
题库深度学习面试题型介绍及解析--第8期_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《题库深度学习面试题型介绍及解析--第8期》由会员分享,可在线阅读,更多相关《题库深度学习面试题型介绍及解析--第8期(6页珍藏版)》请在金锄头文库上搜索。

1、1.常见深度学习框架比较现有的深度学习开源平台主要有 Caffe, PyTorch, MXNet, CNTK, Theano, TensorFlow, Keras, fastai 等。目前从招聘来说,公司使用 TensorFlow 的占大多数,毕竟 TensorFlow 的社区、性能、部署方面都是很强的,所以之后写的实例代码都使用 TensorFlow 来完成。注:来源网络,只供参考。2.你知道 dropout 具体工作流程吗?以标准神经网络为例,正常的流程是:我们首先把输入数据 x 通过网络前向传播,然后把误差反向传播一决定如何更新参数让网络进行学习。使用 dropout 之后,过程变成如下

2、:(1). 首先随机(临时)删掉网络中一半的隐藏神经元,输入输出神经元保持不变(图 3 中虚线为部分临时被删除的神经元);(2). 然后把输入 x 通过修改后的网络进行前向传播计算,然后把得到的损失结果通过修改的网络反向传播。一小批训练样本执行完这个过程后,在没有被删除的神经元上按照随机梯度下降法更新对应的参数(w,b);(3). 然后重复这一过程: 恢复被删掉的神经元(此时被删除的神经元保持原样没有更新 w 参数,而没有被删除的神经元已经有所更新) 从隐藏层神经元中随机选择一个一半大小的子集临时删除掉(同时备份被删除神经元的参数)。 对一小批训练样本,先前向传播然后反向传播损失并根据随机梯度

3、下降法更新参数(w,b) (没有被删除的那一部分参数得到更新,删除的神经元参数保持被删除前的结果)。3.如何选择 dropout 的概率?input 的 dropout 概率推荐是 0.8, hidden layer 推荐是 0.5, 但是也可以在一定的区间上取值。(All dropout nets use p = 0.5 for hidden units and p = 0.8 for input units.)4.Batch_Size 是什么?它的优缺点是什么?batch_size 可以理解为批处理参数,它的极限值为训练集样本总数,当数据量比较少时,可以将 batch_size 值设置为全

4、数据集(Full batch cearning)。实际上,在深度学习中所涉及到的数据都是比较多的,一般都采用小批量数据处理原则。小批量训练网络的优点: 相对海量的的数据集和内存容量,小批量处理需要更少的内存就可以训练网络。 通常小批量训练网络速度更快,例如我们将一个大样本分成 11 小样本 (每个样本 100 个数据),采用小批量训练网络时,每次传播后更新权重,就传播了 11 批,在每批次后我们均更新了网络的(权重)参数;如果在传播过程中使用了一个大样本,我们只会对训练网络的权重参数进行 1 次更新。 全数据集确定的方向能够更好地代表样本总体,从而能够更准确地朝着极值所在的方向;但是不同权值的

5、梯度值差别较大,因此选取一个全局的学习率很困难。小批量训练网络的缺点: 批次越小,梯度的估值就越不准确,在下图中,我们可以看到,与完整批次渐变(蓝色)方向相比,小批量渐变(绿色)的方向波动更大。 极端特例 batch_size = 1,也成为在线学习(online learning);线性神经元在均方误差代价函数的错误面是一个抛物面,横截面是椭圆,对于多层神经元、非线性网络,在局部依然近似是抛物面,使用 online learning,每次修正方向以各自样本的梯度方向修正,这就造成了波动较大,难以达到收敛效果。5.为什么会需要 Batch_Size?Batch 的选择,首先决定的是下降的方向。

6、如果数据集比较小,可采用全数据集的形式,好处至少有两个:1. 由全数据集确定的方向能够更好地代表样本总体,从而更准确地朝向极值所在的方向。2. 由于不同权重的梯度值差别巨大,因此选取一个全局的学习率很困难。Full Batch Learning 可以使用 Rprop 只基于梯度符号并且针对性单独更新各权值。对于更大的数据集,假如采用全数据集的形式,两个好处又变成坏处:1. 随着数据集的海量增长和内存限制,一次性载入所有的数据进来变得越来越不可行。2. 以 Rprop 的方式迭代,会由于各个 Batch 之间的采样差异性,各次梯度修正值相互抵消,无法修正。这才有了后来 RMSProp 的妥协方案

7、。6.该如何选择 Batch_Size 值? 采用批梯度下降法 mini batch learning 时,如果数据集足够充分,用一半(甚至少的多)的数据训练算出来的梯度与全数据集训练 full batch learning 出来的梯度几乎一样。 在合理的范围内,增大 batch_size 可以提高内存利用率,大矩阵乘法的并行化效率提高;跑完一次 epoch(全数据集)所需的迭代次数减少,对于相同数据量的处理速度进一步加快;在适当的范围内,batch_size 越大,其确定的下降方向越准,引起训练波动越小。注意,当 batch_size 增大到一定程度,其确定的下降方向基本不会变化。 batc

8、h_size 值增大到超过合理范围时,和全数据训练 full batch learning 就会表现出相近的症候;内存容量占有率增加,跑完一次 epoch(全数据集)所需的迭代次数减少,达到相同的精度所耗损的时间增加,从而对参数的修正也就显得更加缓慢。7.在合理范围内,增大 Batch_Size 有何好处?1. 内存利用率提高了,大矩阵乘法的并行化效率提高。2. 跑完一次 epoch(全数据集)所需的迭代次数减少,对于相同数据量的处理速度进一步加快。3. 在一定范围内,一般来说 Batch_Size 越大,其确定的下降方向越准,引起训练震荡越小。8.盲目增大 Batch_Size 有何坏处?1

9、. 内存利用率提高了,但是内存容量可能撑不住了。2. 跑完一次 epoch(全数据集)所需的迭代次数减少,要想达到相同的精度,其所花费的时间大大增加了,从而对参数的修正也就显得更加缓慢。3. Batch_Size 增大到一定程度,其确定的下降方向已经基本不再变化。9.调节 Batch_Size 对训练效果影响到底如何?1. Batch_Size 太小,模型表现效果极其糟糕 (error 飙升)。2. 随着 Batch_Size 增大,处理相同数据量的速度越快。3. 随着 Batch_Size 增大,达到相同精度所需要的 epoch 数量越来越多。4. 由于上述两种因素的矛盾, Batch_Size 增大到某个时候,达到时间上的最优。5. 由于最终收敛精度会陷入不同的局部极值,因此 Batch_Size 增大到某些时候,达到最终收敛精度上的最优。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号