深度学习面试100题(第41-45题)

2018 年 7 月 18 日 七月在线实验室

41、请简述应当从哪些方向上思考和解决深度学习中出现的的over fitting问题?

解析:

如果模型的训练效果不好,可先考察以下几个方面是否有可以优化的地方。


(1)选择合适的损失函数(choosing proper loss )

神经网络的损失函数是非凸的,有多个局部最低点,目标是找到一个可用的最低点。非凸函数是凹凸不平的,但是不同的损失函数凹凸起伏的程度不同,例如下述的平方损失和交叉熵损失,后者起伏更大,且后者更容易找到一个可用的最低点,从而达到优化的目的。

- Square Error(平方损失)

- Cross Entropy(交叉熵损失)


(2)选择合适的Mini-batch size

采用合适的Mini-batch进行学习,使用Mini-batch的方法进行学习,一方面可以减少计算量,一方面有助于跳出局部最优点。因此要使用Mini-batch。更进一步,batch的选择非常重要,batch取太大会陷入局部最小值,batch取太小会抖动厉害,因此要选择一个合适的batch size。


(3)选择合适的激活函数(New activation function)

使用激活函数把卷积层输出结果做非线性映射,但是要选择合适的激活函数。

- Sigmoid函数是一个平滑函数,且具有连续性和可微性,它的最大优点就是非线性。但该函数的两端很缓,会带来猪队友的问题,易发生学不动的情况,产生梯度弥散。

- ReLU函数是如今设计神经网络时使用最广泛的激活函数,该函数为非线性映射,且简单,可缓解梯度弥散。


(4)选择合适的自适应学习率(apdative learning rate)

- 学习率过大,会抖动厉害,导致没有优化提升

- 学习率太小,下降太慢,训练会很慢


(5)使用动量(Momentum)

在梯度的基础上使用动量,有助于冲出局部最低点。


如果以上五部分都选对了,效果还不好,那就是产生过拟合了,可使如下方法来防止过拟合,分别是


- 1.早停法(earyly stoping)。早停法将数据分成训练集和验证集,训练集用来计算梯度、更新权重和阈值,验证集用来估计误差,若训练集误差降低但验证集误差升高,则停止训练,同时返回具有最小验证集误差的连接权和阈值。


- 2.权重衰减(Weight Decay)。到训练的后期,通过衰减因子使权重的梯度下降地越来越缓。


- 3.Dropout。Dropout是正则化的一种处理,以一定的概率关闭神经元的通路,阻止信息的传递。由于每次关闭的神经元不同,从而得到不同的网路模型,最终对这些模型进行融合。


- 4.调整网络结构(Network Structure)。


42、神经网络中,是否隐藏层如果具有足够数量的单位,它就可以近似任何连续函数?

解析:

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


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



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



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

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


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


43、为什么更深的网络更好? 

解析:

在实践中,更深的多层感知器(具有超过一个隐藏层)在许多感兴趣的任务上的表现,在很大程度上都胜过浅层感知器。为什么会出现这种情况呢?有人认为,更深的神经网络仅需更少的参数就可以表达许多重要的函数类。


理论上已经表明,表达简单的径向函数和组合函数需要使用浅层网络的指数级大量参数。但深度神经网络则不然。


剧透警告:我打算用实验来验证这些论文,但我不能这样做(这并不会使论文的结果无效——仅仅因为存在一组神经网络参数,并不意味着它们可以通过随机梯度下降来轻松习得)。


我唯一能做的就是,某种程度上可靠地再现来自论文《Representation Benefits of Deep Feedforward Networks》的唯一结果,这篇论文提出了一系列困难的分类问题,这些问题对更深层的神经网络而言更容易。


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


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



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

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


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


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


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

解析:

深度学习和大数据密切相关;通常认为,当数据集的规模大到足够克服过拟合时,深度学习只会比其他技术(如浅层神经网络和随机森林)更有效,并更有利于增强深层网络的表达性。我们在一个非常简单的数据集上进行研究,这个数据集由高斯样本混合而成。


方法: 数据集由两个 12 维的高斯混合而成,每个高斯生成属于一个类的数据。两个高斯具有相同的协方差矩阵,但也意味着在第 i 个维度上有 1/i1/i 单位。这个想法是基于:有一些维度,允许模型很容易区分不同的类,而其他维度则更为困难,但对区别能力还是有用的。


假设: 随着数据集大小的增加,所有技术方法的测试正确率都会提高,但深度模型的正确率会比非深度模型的正确率要高。我们进一步预计非深度学习技术的正确率将更快地饱和。



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

结论: 神经网络在数据集大小方面上表现始终优于 SVM 和随机森林。随着数据集大小的增加,性能上的差距也随之增加,至少在神经网络的正确率开始饱和之前,这表明神经网络更有效地利用了不断增加的数据集。然而,如果有足够的数据,即使是 SVM 也会有可观的正确率。深度网络比浅层网络的表现更好。


讨论: 虽然增加的数据集大小确实会像我们预计的那样有利于神经网络。但有趣的是,在相对较小的数据集上,神经网络已经比其他技术表现得更好。似乎 2 层网络并没有显著的过拟合,即使我们预计某些特征(如 6-12 特征,信号水平低)导致网络过拟合。同样有趣的是,SVM 看上去似乎有足够的数据来接近于 1.0。


45、不平衡数据是否会摧毁神经网络? 

解析:

当数据集不平衡时(如一个类的样本比另一个类还多),那么神经网络可能就无法学会如何区分这些类。在这个实验中,我们探讨这一情况是否存在。同时我们还探讨了过采样是否可以减轻问题带来的影响,这是一种流行的补救措施,该措施使用少数类中抽样替换的样本。


方法:我们生成两个二维的结果(结果未在这里显示,表明相同的结果适用于更高维)高斯,每个产生属于一个类别的数据。两个高斯具有相同的协方差矩阵,但它们的意思是在第 i 个维度上相距 1/i1/i 单位。每个训练数据集由 1,200 个数据点组成,但我们将类别不平衡从 1:1 变为 1:99。测试数据集以 1:1 的比例保持固定,以便于性能比较,并由 300 个点组成。我们还会在每种情况下显示决策边界。


假设:我们预计测试正确率会随着类别不平衡的增加而降低,但我们预计过采样可以缓解这个问题。



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



最下面的四张图显示了连同训练点(左)或测试点(右)绘制的决策边界的数量。第一行显示没有重采样法的结果,底部显示了使用重采样法的结果。


结论: 研究结果表明,类的不平衡无疑地降低了分类的正确率。重采样法可以显著提高性能。


讨论: 重采样法对提高分类正确率有显著的影响,这可能有点让人惊讶了,因为它并没有将分类器展示少数类中的新训练的样本。但该图显示,重采样法足以“助推(nudge)”或将决策边界推向正确的方向。在重采样法不是有效的情况下,那么可能需要复合方式来合成新的训练样本,以提高正确率。


题目来源:

七月在线官网(https://www.julyedu.com/)——面试题库——面试大题——深度学习 第41-45题。

深度学习是机器学习的一个分支深度学习除了可以学习特征和任务之间的关联以外,还能自动从简单特征中提取更加复杂的特征。深度学习算法可以从数据中学习更加复杂的特征表达,使得最后一步权重学习变得更加简单且有效。


为了帮助大家系统地学习机器学习课程的相关知识,我们特意推出了机器学习集训营系列课程。迄今为止,「机器学习集训营」已经举办了四期,每一期都涌现出了不少优秀offer,特别是上一期很多同学从Java、Android、iOS等传统IT行业成功转行转型转岗AI拿到年薪三四十万,部分甚至超过四十万拿到五十万。


本第五期,在第四期的基础上,除了继续维持“入学测评、直播答疑、布置作业、阶段考试、毕业考核、一对一批改、线上线下结合、CPU&GPU双云平台、组织比赛、面试辅导、就业推荐”十一位一体的教学模式,本期特地推出机器学习工程师联合认证。且线下在北京、上海、深圳、广州、杭州、沈阳、济南、郑州、成都的基础上,新增武汉、西安两个线下点,十一城同步开营


此外,本期依然沿用前四期线上线下相结合的授课方式,加强项目实训的同时引入线下BAT专家面对面、手把手的教学方式;突出BAT级工业项目实战辅导 + 一对一面试求职辅导,并提供一年GPU云实验平台免费使用,精讲面试考点。让每一位学员不用再为遇到问题没人解答,缺乏实战经验以及简历上没有项目经验,面试屡屡遭拒而发愁。


本期限150个名额,历时3个月,10多个BAT级工业项目,保障每一位学员所学更多、效率更高、收获更大。


机器学习集训营 第五期 课程详情可点击文末阅读原文进行查看,或者加微信客服:julyedukefu_02进行咨询。

扫码加客服微信

登录查看更多
15

相关内容

在人工神经网络中,给定一个输入或一组输入,节点的激活函数定义该节点的输出。一个标准集成电路可以看作是一个由激活函数组成的数字网络,根据输入的不同,激活函数可以是开(1)或关(0)。这类似于神经网络中的线性感知器的行为。然而,只有非线性激活函数允许这样的网络只使用少量的节点来计算重要问题,并且这样的激活函数被称为非线性。
【Nature论文】深度网络中的梯度下降复杂度控制
专知会员服务
38+阅读 · 2020年3月9日
【华侨大学】基于混合深度学习算法的疾病预测模型
专知会员服务
96+阅读 · 2020年1月21日
【新书】傻瓜式入门深度学习,371页pdf
专知会员服务
187+阅读 · 2019年12月28日
深度学习自然语言处理综述,266篇参考文献
专知会员服务
229+阅读 · 2019年10月12日
面经 | 算法工程师面试题汇总
极市平台
12+阅读 · 2019年10月14日
你有哪些深度学习(rnn、cnn)调参的经验?
七月在线实验室
10+阅读 · 2019年3月27日
深度学习面试100题(第81-85题)
七月在线实验室
16+阅读 · 2018年8月6日
深度学习面试100题(第76-80题)
七月在线实验室
6+阅读 · 2018年8月3日
深度学习面试100题(第71-75题)
七月在线实验室
5+阅读 · 2018年8月2日
深度学习面试100题(第56-60题)
七月在线实验室
9+阅读 · 2018年7月23日
深度学习面试100题(第31-35题)
七月在线实验室
8+阅读 · 2018年7月16日
BAT机器学习面试题1000题(316~320题)
七月在线实验室
14+阅读 · 2018年1月18日
深度学习面试你必须知道这些答案
AI研习社
18+阅读 · 2017年10月31日
A Survey on Bayesian Deep Learning
Arxiv
63+阅读 · 2020年7月2日
Generalization and Regularization in DQN
Arxiv
6+阅读 · 2019年1月30日
Arxiv
7+阅读 · 2018年12月26日
Logically-Constrained Reinforcement Learning
Arxiv
3+阅读 · 2018年12月6日
W-net: Bridged U-net for 2D Medical Image Segmentation
Arxiv
19+阅读 · 2018年7月12日
VIP会员
相关资讯
面经 | 算法工程师面试题汇总
极市平台
12+阅读 · 2019年10月14日
你有哪些深度学习(rnn、cnn)调参的经验?
七月在线实验室
10+阅读 · 2019年3月27日
深度学习面试100题(第81-85题)
七月在线实验室
16+阅读 · 2018年8月6日
深度学习面试100题(第76-80题)
七月在线实验室
6+阅读 · 2018年8月3日
深度学习面试100题(第71-75题)
七月在线实验室
5+阅读 · 2018年8月2日
深度学习面试100题(第56-60题)
七月在线实验室
9+阅读 · 2018年7月23日
深度学习面试100题(第31-35题)
七月在线实验室
8+阅读 · 2018年7月16日
BAT机器学习面试题1000题(316~320题)
七月在线实验室
14+阅读 · 2018年1月18日
深度学习面试你必须知道这些答案
AI研习社
18+阅读 · 2017年10月31日
Top
微信扫码咨询专知VIP会员