研究生面试深度学习,常考知识点有哪些

Q 研究生面试深度学习常考知识點整理

李博士:近几年人工智能领域大热,专业人才缺口问题也逐渐显现由于校招薪资比其他方向的开发人员高,很多同学想学习机器學习毕业以后从事算法相关的岗位。

所谓知己知彼百战不殆,下面整理了一些研究生面试深度学习算法工程师常考的知识点帮助同學们更好的了解深度学习,提高个人的竞争力

1)经典算法:EM,HMM贝叶斯网络,朴素贝叶斯聚类,PCALDA,高斯混合模型等等

2) 概率论相關:各种分布,极大似然最大后验,假设检验的过程(显著性水平和p的区别和联系)卡方检验等等。

3)机器学习主要模型:线性回归逻辑回归,svm各种树模型等等。原理公式要会也要能熟悉推导过程。

4)大数据:要了解并行化分布式的东西比如hadoop,sparkHive等,要明白底層的工作原理

另外,我们要知道面试回答问题的过程其实是各方面能力的展现过程对面试官提出的问题,不要想当然地给出非此即彼嘚答案要把自己的思考过程、分析脉络表述出来。很多时候面试官看重的不是你的答案而是你分析问题解决问题的思维过程。


  忽略前面那些铺垫直接介绍深喥学习爆发期的历史

  采用最大池化,代替平均池化

  通过反复堆叠3*3 小型卷积核和2*2 的最大池化层

采用1*1的卷积选取稀疏结构即多个分支。

通过殘差直连的方式来解决网络退化的问题或者过梯度消失或者梯度爆炸的过程。

相比rnn,lstm模型利用三个门来解决梯度消失和爆炸分别是输入門、忘记门和输出门;gru 将输入与忘记门合二为一,本质上没有区别但是参数较少,训练速度快

  1. bn为什么能加快收敛速度。bn解决了什么问題bn是怎么计算的?基于什么计算的训练和测试的时候有什么不同?测试时候的均值和方差是怎么来的

N的基本思想其实相当直观:因為深层神经网络在做非线性变换前的激活输入值(就是那个x=WU+B,U是输入)随着网络深度加深或者在训练过程中其分布逐渐发生偏移或者变動,之所以训练收敛慢一般是整体分布逐渐往非线性函数的取值区间的上下限两端靠近(对于Sigmoid函数来说,意味着激活输入值WU+B是大的负值戓正值)所以这导致反向传播时低层神经网络的梯度消失,这是训练深层神经网络收敛越来越慢的本质原因而BN就是通过一定的规范化掱段,把每层神经网络任意神经元这个输入值的分布强行拉回到均值为0方差为1的标准正态分布其实就是把越来越偏的分布强制拉回比较標准的分布,这样使得激活输入值落在非线性函数对输入比较敏感的区域这样输入的小变化就会导致损失函数较大的变化,意思是这样讓梯度变大避免梯度消失问题产生,而且梯度变大意味着学习收敛速度快能大大加快训练速度。

IT其实一句话就是:对于每个隐层神經元,把逐渐向非线性函数映射后向取值区间极限饱和区靠拢的输入分布强制拉回到均值为0方差为1的比较标准的正态分布使得非线性变換函数的输入值落入对输入比较敏感的区域,以此避免梯度消失问题因为梯度一直都能保持比较大的状态,所以很明显对神经网络的参數调整效率比较高就是变动大,就是说向损失函数最优值迈动的步子大也就是说收敛地快。BN说到底就是这么个机制方法很简单,道悝很深刻

注意BN训练和测试的不同

训练时基于每一个batch进行归一化

测试时,根据训练时所有的数据即所有batch的期望,计算参数

3. 池化层的作用池化层反向传播的时候是怎么计算的?

池化层主要有以下几个作用: 
d 可以实现不变性:平移不变性,旋转不变性,尺度不变性

Pooling池化操作的反向梯喥传播

CNN网络中另外一个不可导的环节就是Pooling池化操作因为Pooling操作使得feature map的尺寸变化,假如做2×2的池化假设那么第l+1层的feature map有16个梯度,那么第l层就會有64个梯度这使得梯度无法对位的进行传播下去。其实解决这个问题的思想也很简单就是把1个像素的梯度传递给4个像素,但是需要保證传递的loss(或者梯度)总和不变根据这条原则,mean pooling和max pooling的反向传播也是不同的

mean pooling的前向传播就是把一个patch中的值求取平均来做pooling,那么反向传播嘚过程也就是把某个元素的梯度等分为n份分配给前一层这样就保证池化前后的梯度(残差)之和保持不变,还是比较理解的图示如下 :

mean pooling比较容易让人理解错的地方就是会简单的认为直接把梯度复制N遍之后直接反向传播回去,但是这样会造成loss之和变为原来的N倍网络是会產生梯度爆炸的。

max pooling也要满足梯度之和不变的原则max pooling的前向传播是把patch中最大的值传递给后一层,而其他像素的值直接被舍弃掉那么反向传播也就是把梯度直接传给前一层某一个像素,而其他像素不接受梯度也就是为0。所以max pooling操作和mean pooling操作不同点在于需要记录下池化操作时到底哪个像素的值是最大也就是max id,这个变量就是记录最大值所在位置的因为在反向传播中要用到,那么假设前向传播和反向传播的过程就洳下图所示 :

4. 激活函数优缺点比较

缺点: 激活函数计算量大 
反向传播时容易出现梯度消失的情况

我要回帖

 

随机推荐