题库深度学习面试题型介绍及解析--第4期
- 格式:doc
- 大小:43.50 KB
- 文档页数:7
1.循环神经网络理解
循环神经网络(recurrent neural network, RNN),
主要应用在语音识别、语言模型、机器翻译以及时序分析等问题上。
在经典应用中,卷积神经网络在不同的空间位置共享参数,循环神经网络是在不同的时间位置共享参数,从而能够使用有限的参数处理任意长度的序列。 RNN
可以看做作是同一神经网络结构在时间序列上被复制多次的结果,这个被复制多次的结构称为循环体,如何设计循环体的网络结构是 RNN
解决实际问题的关键。 RNN 的输入有两个部分,一部分为上一时刻的状态,另一部分为当前时刻的输入样本。
2.神经网络的压缩方法
•低秩近似
•剪枝与稀疏约束
•参数量化
•二值网络
•知识蒸馏
•紧凑的网络结构
我们知道,在一定程度上,网络越深,参数越多,模型越复杂,其最终效果越好。神经网络的压缩算法是,旨在将一个庞大而复杂的预训练模型
(pre-trained model)转化为一个精简的小模型。
按照压缩过程对网络结构的破坏程度,我们将模型压缩技术分为“前端压缩”和“后端压缩”两部分。
• 前端压缩,是指在不改变原网络结构的压缩技术,主要包括知识蒸馏、紧凑的模型结构涉及以及滤波器(filter)层面的剪枝等;
• 后端压缩,是指包括低秩近似、未加限制的剪枝、参数量化
以及二值网络等,目标在于尽可能减少模型大小,会对原始网络结构造成极大程度的改造。
总结:前端压缩几乎不改变原有网络结构(仅仅只是在原模型基础上减少了网络的层数或者滤波器个数),后端压缩对网络结构有不可逆的大幅度改变,造成原有深度学习库、甚至硬件设备不兼容改变之后的网络,其维护成本很高。
3.什么是梯度消失和爆炸,什么原因造成了梯度消失和梯度爆炸,怎么解决?
•梯度消失是指在深度学习训练的过程中,梯度随着链式求导逐层传递逐层减小,最后趋近于 0,导致对某些层的训练失效;
•梯度爆炸与梯度消失相反,梯度随着链式求导逐层传递逐层增大,最后趋于无穷,导致某些层无法收敛;
在反向传播过程中需要对激活 han 函数进行求导,如果导数大于
1,那么随着网络层数的增加,梯度更新将会朝着指数爆炸的方式
增加这就是梯度爆炸。同样如果导数小于 1,那么随着网络层数的增加梯度更新信息会朝着指数衰减的方式减少这就是梯度消失。
出现梯度消失和梯度爆炸的问题主要是因为参数初始化不当以及激活函数选择不当造成的。其根本原因在于反向传播训练法则,属于先天不足。当训练较多层数的模型时,一般会出现梯度消失问题(gradient
vanishing
problem)和梯度爆炸问题(gradient exploding problem)。注意在反向传播中,当网络模型层数较多时,梯度消失和梯度爆炸是不可避免的。
深度神经网络中的梯度不稳定性,根本原因在于前面层上的梯度是来自于后面层上梯度的乘积。当存在过多的层次时,就出现了内在本质上的不稳定场景。前面的层比后面的层梯度变化更小,故变化更慢,故引起了梯度消失问题。前面层比后面层梯度变化更快,故引起梯度爆炸问题。
解决梯度消失和梯度爆炸问题,常用的有以下几个方案:
•预训练模型 + 微调
•梯度剪切 + 正则化
•relu、leakrelu、elu 等激活函数
•BN 批归一化
•CNN 中的残差结构
•LSTM 结构
4.训练过程中模型不收敛,是否说明这个模型无效,致模型不收敛的原因有哪些?
不一定。导致模型不收敛的原因有很多种可能,常见的有以下几种:
•没有对数据做归一化。
•没有检查过你的结果。这里的结果包括预处理结果和最终的训练测试结果。
•忘了做数据预处理。
•忘了使用正则化。
•Batch Size 设的太大。
•学习率设的不对。
•最后一层的激活函数用的不对。
•网络存在坏梯度。比如 Relu 对负值的梯度为 0,反向传播时,0 梯度就是不传播。
•参数初始化错误。
•网络太深。隐藏层神经元数量错误。
5.简单描述过拟合与欠拟合
1. 欠拟合指模型不能在训练集上获得足够低的训练误差;
2.
过拟合指模型的训练误差与测试误差(泛化误差)之间差距过大;
反映在评价指标上,就是模型在训练集上表现良好,但是在测试集和新数据上
3.
表现一般(泛化能力差);
6.降低过拟合风险的方法
•数据增强
• 图像:平移、旋转、缩放
• 利用生成对抗网络(GAN)生成新数据
• NLP:利用机器翻译生成新数据
•降低模型复杂度
• 神经网络:减少网络层、神经元个数
• 决策树:降低树的深度、剪枝
•权值约束(添加正则化项)
• L1 正则化
• L2 正则化
•集成学习
• 神经网络:Dropout
• 决策树:随机森林、GBDT
•提前终止
注:所有为了减少测试误差的策略统称为正则化方法,这些方法可能会以增大训练误差为代价。
7.降低欠拟合风险的方法
•加入新的特征
• 交叉特征、多项式特征、...
• 深度学习:因子分解机、Deep-Crossing、自编码器
•增加模型复杂度
• 线性模型:添加高次项
• 神经网络:增加网络层数、神经元个数
•减小正则化项的系数
• 添加正则化项是为了限制模型的学习能力,减小正则化项的系数则可以放宽这个限制
• 模型通常更倾向于更大的权重,更大的权重可以使模型更好的拟合数据