机器学习面试系列六

101.深度学习(CNN RNN Attention)解决大规模文本分类问题

  https://zhuanlan.zhihu.com/p/25928551


102.如何解决RNN梯度爆炸和弥散的问题的

  本题解析来源:http://blog.csdn.net/han_xiaoyang/article/details/51932536

  为了解决梯度爆炸问题,Thomas Mikolov首先提出了一个简单的启发性的解决方案,就是当梯度大于一定阈值的的时候,将它截断为一个较小的数。具体如算法1所述:

  算法:当梯度爆炸时截断梯度(伪代码)

  下图可视化了梯度截断的效果。它展示了一个小的rnn(其中W为权值矩阵,b为bias项)的决策面。这个模型是一个一小段时间的rnn单元组成;实心箭头表明每步梯度下降的训练过程。当梯度下降过程中,模型的目标函数取得了较高的误差时,梯度将被送到远离决策面的位置。截断模型产生了一个虚线,它将误差梯度拉回到离原始梯度接近的位置。

 


梯度爆炸,梯度截断可视化 

  为了解决梯度弥散的问题,我们介绍了两种方法。第一种方法是将随机初始化 W(hh)改为一个有关联的矩阵初始化。第二种方法是使用ReLU(Rectified Linear Units)代替sigmoid函数。ReLU的导数不是0就是1.因此,神经元的梯度将始终为1,而不会当梯度传播了一定时间之后变小。


103.如何提高深度学习的性能
http://blog.csdn.net/han_xiaoyang/article/details/52654879


104.RNN、LSTM、GRU区别
  @我愛大泡泡,本题解析来源:http://blog.csdn.net/woaidapaopao/article/details/77806273

  RNN引入了循环的概念,但是在实际过程中却出现了初始信息随时间消失的问题,即长期依赖(Long-Term Dependencies)问题,所以引入了LSTM。

  LSTM:因为LSTM有进有出且当前的cell informaton是通过input gate控制之后叠加的,RNN是叠乘,因此LSTM可以防止梯度消失或者爆炸的变化是关键,下图非常明确适合记忆:

  GRU是LSTM的变体,将忘记门和输入们合成了一个单一的更新门。  


105.当机器学习性能遭遇瓶颈时,你会如何优化的?

  可以从这4个方面进行尝试:、基于数据、借助算法、用算法调参、借助模型融合。当然能谈多细多深入就看你的经验心得了。这里有一份参考清单:机器学习性能改善备忘单(http://blog.csdn.net/han_xiaoyang/article/details/53453145)


106.做过什么样的机器学习项目?比如如何从零构建一个推荐系统
  这里有一个推荐系统的公开课http://www.julyedu.com/video/play/18/148,另,再推荐一个课程:机器学习项目班 [10次纯项目讲解,100%纯实战]


107.什么样的资料集不适合用深度学习?
  @抽象猴,来源:https://www.zhihu.com/question/41233373

  a.数据集太小,数据样本不足时,深度学习相对其它机器学习算法,没有明显优势。

  b.数据集没有局部相关特性,目前深度学习表现比较好的领域主要是图像/语音/自然语言处理等领域,这些领域的一个共性是局部相关性。图像中像素组成物体,语音信号中音位组合成单词,文本数据中单词组合成句子,这些特征元素的组合一旦被打乱,表示的含义同时也被改变。对于没有这样的局部相关性的数据集,不适于使用深度学习算法进行处理。举个例子:预测一个人的健康状况,相关的参数会有年龄、职业、收入、家庭状况等各种元素,将这些元素打乱,并不会影响相关的结果。


108.广义线性模型是怎被应用在深度学习中?
  @许韩,来源:https://www.zhihu.com/question/41233373/answer/145404190
A Statistical View of Deep Learning (I): Recursive GLMs
  深度学习从统计学角度,可以看做递归的广义线性模型。
  广义线性模型相对于经典的线性模型(y=wx+b),核心在于引入了连接函数g(.),形式变为:y=g−1(wx+b)。
  深度学习时递归的广义线性模型,神经元的激活函数,即为广义线性模型的链接函数。逻辑回归(广义线性模型的一种)的Logistic函数即为神经元激活函数中的Sigmoid函数,很多类似的方法在统计学和神经网络中的名称不一样,容易引起初学者(这里主要指我)的困惑。下图是一个对照表

109.准备机器学习面试应该了解哪些理论知识
  @穆文,来源:https://www.zhihu.com/question/62482926


  看下来,这些问题的答案基本都在本BAT机器学习面试1000题系列里了。


110.标准化与归一化的区别?

  简单来说,标准化是依照特征矩阵的列处理数据,其通过求z-score的方法,将样本的特征值转换到同一量纲下。归一化是依照特征矩阵的行处理数据,其目的在于样本向量在点乘运算或其他核函数计算相似性时,拥有统一的标准,也就是说都转化为“单位向量”。规则为l2的归一化公式如下:

  特征向量的缺失值处理
  1. 缺失值较多.直接将该特征舍弃掉,否则可能反倒会带入较大的noise,对结果造成不良影响。
  2. 缺失值较少,其余的特征缺失值都在10%以内,我们可以采取很多的方式来处理:
  1) 把NaN直接作为一个特征,假设用0表示;
  2) 用均值填充;
  3) 用随机森林等算法预测填充


111.随机森林如何处理缺失值
  方法一(na.roughfix)简单粗暴,对于训练集,同一个class下的数据,如果是分类变量缺失,用众数补上,如果是连续型变量缺失,用中位数补。
  方法二(rfImpute)这个方法计算量大,至于比方法一好坏?不好判断。先用na.roughfix补上缺失值,然后构建森林并计算proximity matrix,再回头看缺失值,如果是分类变量,则用没有阵进行加权平均的方法补缺失值。然后迭代4-6次,这个补缺失值的思想和KNN有些类似1缺失的观测实例的proximity中的权重进行投票。如果是连续型变量,则用proximity矩2。


112.随机森林如何评估特征重要性
  衡量变量重要性的方法有两种,Decrease GINI 和 Decrease Accuracy:
  1) Decrease GINI: 对于回归问题,直接使用argmax(VarVarLeftVarRight)作为评判标准,即当前节点训练集的方差Var减去左节点的方差VarLeft和右节点的方差VarRight。
  2) Decrease Accuracy:对于一棵树Tb(x),我们用OOB样本可以得到测试误差1;然后随机改变OOB样本的第j列:保持其他列不变,对第j列进行随机的上下置换,得到误差2。至此,我们可以用误差1-误差2来刻画变量j的重要性。基本思想就是,如果一个变量j足够重要,那么改变它会极大的增加测试误差;反之,如果改变它测试误差没有增大,则说明该变量不是那么的重要。


113.优化Kmeans
  使用kd树或者ball tree
  将所有的观测实例构建成一颗kd树,之前每个聚类中心都是需要和每个观测点做依次距离计算,现在这些聚类中心根据kd树只需要计算附近的一个局部区域即可。


114.KMeans初始类簇中心点的选取
  k-means++算法选择初始seeds的基本思想就是:初始的聚类中心之间的相互距离要尽可能的远。
  1. 从输入的数据点集合中随机选择一个点作为第一个聚类中心
  2. 对于数据集中的每一个点x,计算它与最近聚类中心(指已选择的聚类中心)的距离D(x)
  3. 选择一个新的数据点作为新的聚类中心,选择的原则是:D(x)较大的点,被选取作为聚类中心的概率较大
  4. 重复2和3直到k个聚类中心被选出来
  5. 利用这k个初始的聚类中心来运行标准的k-means算法


115.解释对偶的概念

  一个优化问题可以从两个角度进行考察,一个是primal 问题,一个是dual 问题,就是对偶问题,一般情况下对偶问题给出主问题最优值的下界,在强对偶性成立的情况下由对偶问题可以得到主问题的最优下界,对偶问题是凸优化问题,可以进行较好的求解,SVM中就是将primal问题转换为dual问题进行求解,从而进一步引入核函数的思想。

116.如何进行特征选择?
  特征选择是一个重要的数据预处理过程,主要有两个原因:一是减少特征数量、降维,使模型泛化能力更强,减少过拟合;二是增强对特征和特征值之间的理解
  常见的特征选择方式:
  1. 去除方差较小的特征
  2. 正则化。1正则化能够生成稀疏的模型。L2正则化的表现更加稳定,由于有用的特征往往对应系数非零。
  3. 随机森林,对于分类问题,通常采用基尼不纯度或者信息增益,对于回归问题,通常采用的是方差或者最小二乘拟合。一般不需要feature engineering、调参等繁琐的步骤。它的两个主要问题,1是重要的特征有可能得分很低(关联特征问题),2是这种方法对特征变量类别多的特征越有利(偏向问题)。
  4. 稳定性选择。是一种基于二次抽样和选择算法相结合较新的方法,选择算法可以是回归、SVM或其他类似的方法。它的主要思想是在不同的数据子集和特征子集上运行特征选择算法,不断的重复,最终汇总特征选择结果,比如可以统计某个特征被认为是重要特征的频率(被选为重要特征的次数除以它所在的子集被测试的次数)。理想情况下,重要特征的得分会接近100%。稍微弱一点的特征得分会是非0的数,而最无用的特征得分将会接近于0。


117.数据预处理
  1. 缺失值,填充缺失值fillna:
  i. 离散:None,
  ii. 连续:均值。
  iii. 缺失值太多,则直接去除该列
  2. 连续值:离散化。有的模型(如决策树)需要离散值
  3. 对定量特征二值化。核心在于设定一个阈值,大于阈值的赋值为1,小于等于阈值的赋值为0。如图像操作
  4. 皮尔逊相关系数,去除高度相关的列


118.你知道有哪些数据处理和特征工程的处理?

  更多请查看此课程《机器学习工程师 第八期 [六大阶段、层层深入]》第7次课 特征工程(https://www.julyedu.com/course/getDetail/65)


119.简单说说特征工程

上图来源:http://www.julyedu.com/video/play/18


120.请对比下Sigmoid、Tanh、ReLu这三个激活函数

  logistic函数,应用在Logistic回归中。<span style="color: rgb(51, 51, 51); font-family:;" new="" times="" 14px;"="">logistic回归的目的是从特征学习出一个0/1分类模型,而这个模型是将特性的线性组合作为自变量,由于自变量的取值范围是负无穷到正无穷。因此,使用logistic函数将自变量映射到(0,1)上,映射后的值被认为是属于y=1的概率。

  假设函数 其中x是n维特征向量,函数g就是logistic函数。

  的图像是

  可以看到,将无穷映射到了(0,1)。

  而假设函数就是特征属于y=1的概率。

  从而,当我们要判别一个新来的特征属于哪个类时,只需求即可,若大于0.5就是y=1的类,反之属于y=0类。


  更多详见:https://mp.weixin.qq.com/s/7DgiXCNBS5vb07WIKTFYRQ


121.Sigmoid、Tanh、ReLu这三个激活函数有什么缺点或不足,有没改进的激活函数
@我愛大泡泡,来源:http://blog.csdn.net/woaidapaopao/article/details/77806273


122.怎么理解决策树、xgboost能处理缺失值?而有的模型(svm)对缺失值比较敏感?
https://www.zhihu.com/question/58230411


123.为什么引入非线性激励函数?
  @Begin Again,来源:https://www.zhihu.com/question/29021768
  如果不用激励函数(其实相当于激励函数是f(x) = x),在这种情况下你每一层输出都是上层输入的线性函数,很容易验证,无论你神经网络有多少层,输出都是输入的线性组合,与没有隐藏层效果相当,这种情况就是最原始的感知机(Perceptron)了。
  正因为上面的原因,我们决定引入非线性函数作为激励函数,这样深层神经网络就有意义了(不再是输入的线性组合,可以逼近任意函数)。最早的想法是sigmoid函数或者tanh函数,输出有界,很容易充当下一层输入(以及一些人的生物解释)。


124.请问人工神经网络中为什么ReLu要好过于tanh和sigmoid function?
  @Begin Again,来源:https://www.zhihu.com/question/29021768

  第一,采用sigmoid等函数,算激活函数时(指数运算),计算量大,反向传播求误差梯度时,求导涉及除法,计算量相对大,而采用Relu激活函数,整个过程的计算量节省很多。

  第二,对于深层网络,sigmoid函数反向传播时,很容易就会出现梯度消失的情况(在sigmoid接近饱和区时,变换太缓慢,导数趋于0,这种情况会造成信息丢失),从而无法完成深层网络的训练。
  第三,Relu会使一部分神经元的输出为0,这样就造成了网络的稀疏性,并且减少了参数的相互依存关系,缓解了过拟合问题的发生(以及一些人的生物解释balabala)。当然现在也有一些对relu的改进,比如prelu,random relu等,在不同的数据集上会有一些训练速度上或者准确率上的改进,具体的大家可以找相关的paper看。

  多加一句,现在主流的做法,会多做一步batch normalization,尽可能保证每一层网络的输入具有相同的分布[1]。而最新的paper[2],他们在加入bypass connection之后,发现改变batch normalization的位置会有更好的效果。大家有兴趣可以看下。
[1] Ioffe S, Szegedy C. Batch normalization: Accelerating deep network training by reducing internal covariate shift[J]. arXiv preprint arXiv:1502.03167, 2015.
[2] He, Kaiming, et al. "Identity Mappings in Deep Residual Networks." arXiv preprint arXiv:1603.05027 (2016). 


125.为什么LSTM模型中既存在sigmoid又存在tanh两种激活函数?

  为什么不是选择统一一种sigmoid或者tanh,而是混合使用呢?这样的目的是什么?

 

  本题解析来源:https://www.zhihu.com/question/46197687
  @beanfrog:二者目的不一样:sigmoid 用在了各种gate上,产生0~1之间的值,这个一般只有sigmoid最直接了。tanh 用在了状态和输出上,是对数据的处理,这个用其他激活函数或许也可以。
  @hhhh:另可参见A Critical Review of Recurrent Neural Networks for Sequence Learning的section4.1,说了那两个tanh都可以替换成别的。


126.衡量分类器的好坏。

  @我愛大泡泡,来源:http://blog.csdn.net/woaidapaopao/article/details/77806273
  这里首先要知道TP、FN(真的判成假的)、FP(假的判成真)、TN四种(可以画一个表格)。 
  几种常用的指标:

  精度precision = TP/(TP+FP) = TP/~P (~p为预测为真的数量)

  召回率 recall = TP/(TP+FN) = TP/ P

  F1值: 2/F1 = 1/recall + 1/precision

  ROC曲线:ROC空间是一个以伪阳性率(FPR,false positive rate)为X轴,真阳性率(TPR, true positive rate)为Y轴的二维坐标系所代表的平面。其中真阳率TPR = TP / P = recall, 伪阳率FPR = FP / N


127.机器学习和统计里面的auc的物理意义是什么?

  详情参见https://www.zhihu.com/question/39840928


128.观察增益gain, alpha和gamma越大,增益越小?

  @AntZ:xgboost寻找分割点的标准是最大化gain. 考虑传统的枚举每个特征的所有可能分割点的贪心法效率太低,xgboost实现了一种近似的算法。大致的思想是根据百分位法列举几个可能成为分割点的候选者,然后从候选者中计算Gain按最大值找出最佳的分割点。它的计算公式分为四项, 可以由正则化项参数调整(lamda为叶子权重平方和的系数, gama为叶子数量):


  第一项是假设分割的左孩子的权重分数, 第二项为右孩子, 第三项为不分割总体分数, 最后一项为引入一个节点的复杂度损失
由公式可知, gama越大gain越小, lamda越大, gain可能小也可能大。
  原问题是alpha而不是lambda, 这里paper上没有提到, xgboost实现上有这个参数. 上面是我从paper上理解的答案,下面是搜索到的:
https://zhidao.baidu.com/question/2121727290086699747.html?fr=iks&word=xgboost+lamda&ie=gbk
  lambda[默认1]权重的L2正则化项。(和Ridge regression类似)。 这个参数是用来控制XGBoost的正则化部分的。虽然大部分数据科学家很少用到这个参数,但是这个参数在减少过拟合上还是可以挖掘出更多用处的。11、alpha[默认1]权重的L1正则化项。(和Lasso regression类似)。 可以应用在很高维度的情况下,使得算法的速度更快。
  gamma[默认0]在节点分裂时,只有分裂后损失函数的值下降了,才会分裂这个节点。Gamma指定了节点分裂所需的最小损失函数下降值。 这个参数的值越大,算法越保守。


129.什么造成梯度消失问题? 推导一下

  @许韩,来源:https://www.zhihu.com/question/41233373/answer/145404190

Yes you should understand backdrop-Andrej Karpathy 

How does the ReLu solve the vanishing gradient problem?

  神经网络的训练中,通过改变神经元的权重,使网络的输出值尽可能逼近标签以降低误差值,训练普遍使用BP算法,核心思想是,计算出输出与标签间的损失函数值,然后计算其相对于每个神经元的梯度,进行权值的迭代。

  梯度消失会造成权值更新缓慢,模型训练难度增加。造成梯度消失的一个原因是,许多激活函数将输出值挤压在很小的区间内,在激活函数两端较大范围的定义域内梯度为0,造成学习停止。


130.什么是梯度消失和梯度爆炸?

  @寒小阳,反向传播中链式法则带来的连乘,如果有数很小趋于0,结果就会特别小(梯度消失);如果数都比较大,可能结果会很大(梯度爆炸)。
  @单车,下段来源:https://zhuanlan.zhihu.com/p/25631496
  层数比较多的神经网络模型在训练时也是会出现一些问题的,其中就包括梯度消失问题(gradient vanishing problem)和梯度爆炸问题(gradient exploding problem)。梯度消失问题和梯度爆炸问题一般随着网络层数的增加会变得越来越明显。

  例如,对于下图所示的含有3个隐藏层的神经网络,梯度消失问题发生时,接近于输出层的hidden layer 3等的权值更新相对正常,但前面的hidden layer 1的权值更新会变得很慢,导致前面的层权值几乎不变,仍接近于初始化的权值,这就导致hidden layer 1相当于只是一个映射层,对所有的输入做了一个同一映射,这是此深层网络的学习就等价于只有后几层的浅层网络的学习了。

  而这种问题为何会产生呢?以下图的反向传播为例(假设每一层只有一个神经元且对于每一层,其中为sigmoid函数)

  可以推导出

  而sigmoid的导数如下图

  可见,的最大值为1/4,而我们初始化的网络权值|w|通常都小于1,因此,因此对于上面的链式求导,层数越多,求导结果越小,因而导致梯度消失的情况出现。

  这样,梯度爆炸问题的出现原因就显而易见了,即,也就是w比较大的情况。但对于使用sigmoid激活函数来说,这种情况比较少。因为的大小也与w有关(z=wx+b),除非该层的输入值x在一直一个比较小的范围内。

  其实梯度爆炸和梯度消失问题都是因为网络太深,网络权值更新不稳定造成的,本质上是因为梯度反向传播中的连乘效应。对于更普遍的梯度消失问题,可以考虑用ReLU激活函数取代sigmoid激活函数。另外,LSTM的结构设计也可以改善RNN中的梯度消失问题。


131.如何解决梯度消失和梯度膨胀?

  (1)梯度消失:
  根据链式法则,如果每一层神经元对上一层的输出的偏导乘上权重结果都小于1的话,那么即使这个结果是0.99,在经过足够多层传播之后,误差对输入层的偏导会趋于0
  可以采用ReLU激活函数有效的解决梯度消失的情况
  (2)梯度膨胀
  根据链式法则,如果每一层神经元对上一层的输出的偏导乘上权重结果都大于1的话,在经过足够多层传播之后,误差对输入层的偏导会趋于无穷大
  可以通过激活函数来解决


132.推导下反向传播Backpropagation

  @我愛大泡泡,来源:http://blog.csdn.net/woaidapaopao/article/details/77806273

  反向传播是在求解损失函数L对参数w求导时候用到的方法,目的是通过链式法则对参数进行一层一层的求导。这里重点强调:要将参数进行随机初始化而不是全部置0,否则所有隐层的数值都会与输入相关,这称为对称失效。 

  大致过程是:

  1.首先前向传导计算出所有节点的激活值和输出值, 


  2.计算整体损失函数: 


  3.然后针对第L层的每个节点计算出残差(这里是因为UFLDL中说的是残差,本质就是整体损失函数对每一层激活值Z的导数),所以要对W求导只要再乘上激活函数对W的导数即可 

 


133.SVD和PCA

  PCA的理念是使得数据投影后的方差最大,找到这样一个投影向量,满足方差最大的条件即可。而经过了去除均值的操作之后,就可以用SVD分解来求解这样一个投影向量,选择特征值最大的方向。

134.数据不平衡问题

  这主要是由于数据分布不平衡造成的。解决方法如下:

  • 采样,对小样本加噪声采样,对大样本进行下采样

  • 进行特殊的加权,如在Adaboost中或者SVM中

  • 采用对不平衡数据集不敏感的算法

  • 改变评价标准:用AUC/ROC来进行评价

  • 采用Bagging/Boosting/ensemble等方法

  • 考虑数据的先验分布


135.简述神经网络的发展 

  MP模型+sgn—->单层感知机(只能线性)+sgn— Minsky 低谷 —>多层感知机+BP+sigmoid—- (低谷) —>深度学习+pre-training+ReLU/sigmoid


136.深度学习常用方法

  @SmallisBig,来源:http://blog.csdn.net/u010496169/article/details/73550487
  全连接DNN(相邻层相互连接、层内无连接): 
  AutoEncoder(尽可能还原输入)、Sparse Coding(在AE上加入L1规范)、RBM(解决概率问题)—–>特征探测器——>栈式叠加 贪心训练 
  RBM—->DBN 
  解决全连接DNN的全连接问题—–>CNN 
  解决全连接DNN的无法对时间序列上变化进行建模的问题—–>RNN—解决时间轴上的梯度消失问题——->LSTM


137.神经网络模型(Neural Network)因受人类大脑的启发而得名。


  神经网络由许多神经元(Neuron)组成,每个神经元接受一个输入,对输入进行处理后给出一个输出,如下图所示。请问下列关于神经元的描述中,哪一项是正确的?


  A.每个神经元只有一个输入和一个输出

  B.每个神经元有多个输入和一个输出

  C.每个神经元有一个输入和多个输出

  D.每个神经元有多个输入和多个输出

  E.上述都正确

  答案:(E)

  每个神经元可以有一个或多个输入,和一个或多个输出。

138.下图是一个神经元的数学表示


  这些组成部分分别表示为:

  - x1, x2,…, xN:表示神经元的输入。可以是输入层的实际观测值,也可以是某一个隐藏层(Hidden Layer)的中间值

  - w1, w2,…,wN:表示每一个输入的权重

  - bi:表示偏差单元/偏移量(bias unit)。作为常数项加到激活函数的输入当中,类似截距(Intercept)

  - a:作为神经元的激励函数(Activation),可以表示为


  - y:神经元输出

  考虑上述标注,线性等式(y = mx + c)可以被认为是属于神经元吗:

  A. 是

  B. 否

  答案:(A)

  一个不包含非线性的神经元可以看作是线性回归函数(Linear Regression Function)。


139.在一个神经网络中,知道每一个神经元的权重和偏差是最重要的一步。如果知道了神经元准确的权重和偏差,便可以近似任何函数,但怎么获知每个神经的权重和偏移呢?
  A 搜索每个可能的权重和偏差组合,直到得到最佳值
  B 赋予一个初始值,然后检查跟最佳值的差值,不断迭代调整权重
  C 随机赋值,听天由命
  D 以上都不正确的
  答案:(C)选项C是对梯度下降的描述。


140.梯度下降算法的正确步骤是什么?

  1.计算预测值和真实值之间的误差

  2.重复迭代,直至得到网络权重的最佳值

  3.把输入传入网络,得到输出值

  4.用随机值初始化权重和偏差

  5.对每一个产生误差的神经元,调整相应的(权重)值以减小误差

  答案:正确步骤排序是:4, 3, 1, 5, 2


141.已知:
  - 大脑是有很多个叫做神经元的东西构成,神经网络是对大脑的简单的数学表达。
  - 每一个神经元都有输入、处理函数和输出。
  - 神经元组合起来形成了网络,可以拟合任何函数。
  - 为了得到最佳的神经网络,我们用梯度下降方法不断更新模型
  给定上述关于神经网络的描述,什么情况下神经网络模型被称为深度学习模型?

  A 加入更多层,使神经网络的深度增加
  B 有维度更高的数据
  C 当这是一个图形识别的问题时
  D 以上都不正确
  答案:(A)
  更多层意味着网络更深。没有严格的定义多少层的模型才叫深度模型,目前如果有超过2层的隐层,那么也可以及叫做深度模型。


142.卷积神经网络可以对一个输入进行多种变换(旋转、平移、缩放),这个表述正确吗?
  答案:错误

  把数据传入神经网络之前需要做一系列数据预处理(也就是旋转、平移、缩放)工作,神经网络本身不能完成这些变换。


143.下面哪项操作能实现跟神经网络中Dropout的类似效果?
  A Boosting
  B Bagging
  C Stacking
  D Mapping

  答案:B

  Dropout可以认为是一种极端的Bagging,每一个模型都在单独的数据上训练,同时,通过和其他模型对应参数的共享,从而实现模型参数的高度正则化。


144.下列哪一项在神经网络中引入了非线性?

  A 随机梯度下降

  B 修正线性单元(ReLU)

  C 卷积函数

  D 以上都不正确

  答案:(B)

  修正线性单元是非线性的激活函数。


145.在训练神经网络时,损失函数(loss)在最初的几个epochs时没有下降,可能的原因是?()

  A 学习率(learning rate)太低
  B 正则参数太高
  C 陷入局部最小值

  D 以上都有可能

  答案:(A)


146.下列哪项关于模型能力(model capacity)的描述是正确的?(指神经网络模型能拟合复杂函数的能力)

  隐藏层层数增加,模型能力增加

  Dropout的比例增加,模型能力增加

  学习率增加,模型能力增加

  都不正确

  答案:(A)

147.如果增加多层感知机(Multilayer Perceptron)的隐藏层层数,分类误差便会减小。这种陈述正确还是错误?
  答案:错误

  并不总是正确。过拟合可能会导致错误增加。


148.构建一个神经网络,将前一层的输出和它自身作为输入。

下列哪一种架构有反馈连接?

  循环神经网络

  B 卷积神经网络

  C 限制玻尔兹曼机

  D 都不是

  答案:(A)


149.下列哪一项在神经网络中引入了非线性?在感知机中(Perceptron)的任务顺序是什么?
  1.随机初始化感知机的权重
  2.去到数据集的下一批(batch)
  3.如果预测值和输出不一致,则调整权重
  4.对一个输入样本,计算输出值
  答案:1 - 4 - 3 - 2


150.假设你需要调整参数来最小化代价函数(cost function),可以使用下列哪项技术?

  A. 穷举搜索

  B. 随机搜索

  C. Bayesian优化

  D. 以上任意一种

  答案:(D)


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值