数据挖掘和机器学习20个面试问题( 三 )


6.解决维度灾难问题:
主成分分析法PCA,线性判别法LDA
奇异值分解简化数据、拉普拉斯特征映射
缩减系数法(L1)、小波分析法
7. 在图像处理中为什么要使用卷积神经网络而不是全连接网络?
首先,卷积过程是考虑到图像的局部特征,能够更加准确的抽取空间特征 。如果使用全连接的话,我们可能会考虑到很多不相关的信息 。
其次,CNN有平移不变性,因为权值共享,图像平移了,卷积核还是可以识别出来,但是全连接则做不到 。
8. 是什么使得CNN具有平移不变性?
正如上面解释,每个卷积核都是一个特征探测器 。所以就像我们在侦查一样东西的时候,不管物体在图像的哪个位置都能识别该物体 。因为在卷积过程,我们使用卷积核在整张图片上进行滑动卷积,所以CNN具有平移不变性 。
9. 为什么实现分类的CNN中需要进行Max-?
Max-可以将特征维度变小,使得减小计算时间,同时,不会损失太多重要的信息,因为我们是保存最大值,这个最大值可以理解为该窗口下的最重要信息 。同时,Max-也对CNN具有平移不变性提供了很多理论支撑,详细可以看吴恩达的 of () 。
10. 什么是batch,原理是什么?
Batch 就是在训练过程,每一层输入加一个标准化处理 。全连接层之后,激活层之前 。
深度神经网络之所以复杂有一个原因就是由于在训练的过程中上一层参数的更新使得每一层的输入一直在改变 。所以有个办法就是去标准化每一层的输入 。具体归一化的方式如下图,如果只将归一化的结果进行下一层的输入,这样可能会影响到本层学习的特征,因为可能该层学习到的特征分布可能并不是正态分布的,这样强制变成正态分布会有一定影响,所以还需要乘上γ和β,这两个参数是在训练过程学习的,这样可以保留学习到的特征 。
神经网络其实就是一系列层组合成的,并且上一层的输出作为下层的输入,这意味着我们可以将神经网络的每一层都看成是以该层作为第一层的小型序列网络 。这样我们在使用激活函数之前归一化该层的输出,然后将其作为下一层的输入,这样就可以解决输入一直改变的问题 。

数据挖掘和机器学习20个面试问题

文章插图
11. 为什么卷积核一般都是3*3而不是更大?
第一,相对于用较大的卷积核,使用多个较小的卷积核可以获得相同的感受野和能获得更多的特征信息,同时使用小的卷积核参数更少,计算量更小 。
第二:你可以使用更多的激活函数,有更多的非线性,使得在你的CNN模型中的判决函数有更有判决性 。
20. 神经网络为什么要用函数?为什么要映射到0-1之间?
(1)对于深度神经网络,中间的隐层的输出必须有一个激活函数 。否则多个隐层的作用和没有隐层相同 。这个激活函数不一定是,常见的有、tanh、relu等 。
(2)对于二分类问题,输出层是函数 。这是因为函数可以把实数域光滑的映射到[0,1]空间 。函数值恰好可以解释为属于正类的概率(概率的取值范围是0~1) 。另外,函数单调递增,连续可导,导数形式非常简单,是一个比较合适的函数
(3)对于多分类问题,输出层就必须是函数了 。函数是函数的推广