算法八股文——大厂真题——感知智能+数据挖掘

目录

文章目录

感知智能

Batch Normalization 缺点?(百度)

  • batch 太小,会造成波动大
  • 对于文本数据,不同有效长度问题;
  • 测试集上两个数据均值和方差差别很大就不合适了
  • 附:LN 是对一个样本的一个时间步上的数据进行减均除标准差,然后再回放(参数学习)对应到普通线性回归就是一层节点求均除标准差。
     

CNN 原理及优缺点?(车企)

  • CNN 是一种前馈神经网络,通常包含 5 层,输入层,卷积层,激活层,池化层,全连接 FC 层,其中核心部分是卷积层和池化层
  • 优点:共享卷积核,对高维数据处理无压力;无需手动选取特征。
  • 缺点:需要调参;需要大量样本。
     

transformer 结构?(车企)

  • Transformer 本身是一个典型的 encoder-decoder 模型
  • Encoder 端和 Decoder 端均有6个 Block
  • Encoder 端的 Block 包括两个模块多头 self-attention 模块以及一个前馈神经网络模块;
  • Decoder 端的 Block 包括三个模块多头 self-attention 模块,多头 Encoder-Decoder attention 交互模块,以及一个前馈神经网络模块;
  • 需要注意:Encoder 端和 Decoder 端中的每个模块都有残差层和 Layer Normalization 层

 

lstm 与 GRU 区别?(车企)

(1)LSTM 和 GRU 的性能在很多任务上不分伯仲;
(2)GRU 参数更少,因此更容易收敛,但是在大数据集的情况下,LSTM性能表现更好
(3)GRU 只有两个门(update和reset),LSTM 有三个门(forget,input,output),GRU 直接将hidden state 传给下一个单元,而 LSTM 用 memory cell 把 hidden state 包装起来。

 

图像处理的基本知识:直方图均衡化、维纳滤波、锐化的操作(字节跳动)

  • 直方图均衡化(Histogram Equalization)是一种增强图像对比度(Image Contrast)的方法,
    • 其主要思想是将一副图像的直方图分布通过累积分布函数变成近似均匀分布,从而增强图像的对比度。
  • 维纳滤波器一种以最小平方为最优准则的线性滤波器
    • 在一定的约束条件下,其输出与一给定函数(通常称为期望输出)的差的平方达到最小
  • 锐化滤波器则使用邻域的微分作为算子,增大邻域间像素的差值,使图像的突变部分变的更加明显
    • 锐化的作用是加强图像的边沿和轮廓,通常也成为高通滤波器。
       

BN 过程,为什么测试和训练不一样?(字节跳动)

  • 对于BN,
    • 训练时,是对每一批的训练数据进行归一化,也即用每一批数据的均值和方差
    • 而在测试时,比如进行一个样本的预测,就并没有batch的概念,因此,这个时候用的均值和方差是全量训练数据的均值和方差,这个可以通过移动平均法求得。
  • 对于BN,当一个模型训练完成之后,它的所有参数都确定了,包括均值和方差,gamma和bata。

 

简单介绍 gbdt 算法的原理(美团)

  • GBDT是梯度提升决策树,是一种基于Boosting的算法,采用以决策树为基学习器的加法模型,通过不断拟合上一个弱学习器的残差,最终实现分类或回归的模型。
  • 关键在于利用损失函数的负梯度在当前模型的值作为残差的近似值,从而拟合一个回归树
    • 对于分类问题:常使用指数损失函数;
    • 对于回归问题:常使用平方误差损失函数(此时,其负梯度就是通常意义的残差),对于一般损失函数来说就是残差的近似。
  • 无论损失函数是什么形式,每个决策树拟合的都是负梯度。准确的说,不是用负梯度代替残差,而是当损失函数是均方损失时,负梯度刚好是残差,残差只是特例。

 

pca 属于有监督还是无监督?(美团)

  • PCA 按有监督和无监督划分应该属于无监督学习
  • 所以数据集有无 y 并不重要,只是改变样本 X 的属性(特征)维度

 

防止过拟合的方法?(阿里)

  • 降低模型复杂度
  • 增加更多的训练数据:使用更大的数据集训练模型
  • 数据增强
  • 正则化:L1、L2、添加BN层
  • 添加Dropout策略
  • Early Stopping
     

Pytorch 和 Tensorflow 的区别?(科大讯飞

  • 创建
    • 创建和运行计算图可能是两个框架最不同的地方。
    • pyTorch中,图结构是动态的,这意味着图在运行时构建。而在TensorFlow中,图结构是静态的,这意味着图先被“编译”然后再运行。
    • pyTorch中简单的图结构更容易理解,更重要的是,还更容易调试。调试pyTorch代码就像调试Python代码一样。你可以使用pdb并在任何地方设置断点。
    • 调试tensorFlow代码可不容易。要么得从会话请求要检查的变量,要么学会使用tensorFlow的调试器。
  • 灵活性
    • pytorch:动态计算图,数据参数在CPU与GPU之间迁移十分灵活,调试简便
    • tensorflow:静态计算图,数据参数在CPU与GPU之间迁移麻烦,调试麻烦
  • 设备管理
    • pytorch:需要明确启用的设备
    • tensorflow:不需要手动调整,简单

 

torch.eval() 的作用?(科大讯飞)

BN的影响:

  • 对于BN,训练时通常采用mini-batch,所以每一批中的mean和std大致是相同的;
  • 而测试阶段往往是单个图像的输入,不存在mini-batch的概念。
  • 所以将model改为eval模式后,BN的参数固定,并采用之前训练好的全局的mean和std;
  • 总结就是使用全局固定的BN。

dropout的影响:

  • 训练阶段,隐含层神经元先乘概率P,再进行激活;
  • 测试阶段,神经元先激活,每个隐含层神经元的输出再乘概率P,
  • 总结来说就是顺序不同

 

PCA 是什么?实现过程是什么,意义是什么?(科大讯飞)

  • 主成分分析 (PCA, principal component analysis)是一种数学降维方法, 利用正交变换 (orthogonal transformation)把一系列可能线性相关的变量转换为一组线性不相关的新变量
  • 也称为主成分,从而利用新变量在更小的维度下展示数据的特征

实现过程:

  • 一种是基于特征值分解协方差矩阵实现PCA算法,
  • 一种是基于SVD分解协方差矩阵实现PCA算法。

意义:

  • 使得数据集更易使用;降低算法的计算开销;去除噪声;使得结果容易理解。

 

简述 K-means。(科大讯飞)

K-means算法的基本思想是:以空间中k个点为中心进行聚类,对最靠近他们的对象归类

  • 通过迭代的方法,逐次更新各聚类中心的值,直至得到最好的聚类结果。

假设要把样本集分为k个类别,算法描述如下:
(1)适当选择k个类的初始中心,最初一般为随机选取;
(2)在每次迭代中,对任意一个样本,分别求其到k个中心的欧式距离,将该样本归到距离最短的中心所在的类
(3)利用均值方法更新该k个类的中心的值
(4)对于所有的k个聚类中心,重复(2)(3),类的中心值的移动距离满足一定条件时,则迭代结束,完成分类。
Kmeans聚类算法原理简单,效果也依赖于k值和类中初始点的选择。

 

图像边缘检测的原理?(其他)

  • 图像的边缘是指:其周围像素灰度急剧变化的那些像素的集合,它是图像最基本的特征,
  • ⽽图像的边缘检测即:
    • 先检测图像的边缘点
    • 再按照某种策略将边缘点连接成轮廓,从而构成分割区域。

 

图像中的角点(Harris 角点)是什么?为什么用角点作为特征点?(其他)

Harris角点:在任意两个相互垂直的方向上,都有较大变化的点。

  • 角点在保留图像图形重要特征的同时,可以有效地减少信息的数据量,使其信息的含量很高
  • 有效地提高了计算的速度,有利于图像的可靠匹配,使得实时处理成为可能。
     

什么是感受野?(其他)

某⼀层特征图中的⼀个cell对应到原始输⼊的响应的大小区域
 

工业界中遇到上亿的图像检索任务,如何提高图像对比效率?(其他)

假设原图像输出的特征维度为2048维,

  • 通过哈希的索引技术,将原图的2048维度映射到128维度的0/1值中,再进⾏特征维度对⽐。

 

物体检测方法列举(其他)

Deformable Parts Model
RCNN
Fast-RCNN
Faster-RCNN
RFCN
Mask-RCNN

 

 

数据挖掘

机器学习

KNN 中的 K 如何选取的?(BAT)

  • 如果选择较小的K值,就相当于用较小的领域中的训练实例进行预测,“学习”近似误差会减小
    • 只有与输入实例较近或相似的训练实例才会对预测结果起作用,与此同时带来的问题是“学习”的估计误差会增大
    • 换句话说,K值的减小就意味着整体模型变得复杂,容易发生过拟合
  • 如果选择较大的K值,就相当于用较大领域中的训练实例进行预测
    • 其优点是可以减少学习的估计误差,但缺点是学习的近似误差会增大
    • 这时候,与输入实例较远(不相似的)训练实例也会对预测器作用,使预测发生错误,且K值的增大就意味着整体的模型变得简单。
  • K=N,则完全不足取,因为此时无论输入实例是什么,都只是简单的预测它属于在训练实例中最多的累,模型过于简单,忽略了训练实例中大量有用信息。
  • 在实际应用中,K值一般取一个比较小的数值,例如采用交叉验证法(简单来说,就是一部分样本做训练集,一部分做测试集)来选择最优的K值

 

防止过拟合的方法(BAT)

  • 过拟合的原因是
    • 算法的学习能力过强
    • 一些假设条件(如样本独立同分布)可能是不成立的
    • 训练样本过少不能对整个空间进行分布估计
  • 处理方法:
    1. 早停止:如在训练中多次迭代后发现模型性能没有显著提高就停止训练
    2. 数据集扩增:原有数据增加、原有数据加随机噪声、重采样
    3. 正则化,正则化可以限制模型的复杂度
    4. 交叉验证
    5. 特征选择/特征降维
    6. 创建一个验证集是最基本的防止过拟合的方法。我们最终训练得到的模型目标是要在验证集上面有好的表现,而不训练集

 

什么最小二乘法?(BAT)

  • 最小二乘法(又称最小平方法)是一种数学优化技术。
  • 它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小
  • 使误差「所谓误差,当然是观察值与实际真实值的差量」平方和达到最小以寻求估计值的方法,就叫做最小二乘法,用最小二乘法得到的估计,叫做最小二乘估计。
  • 当然,取平方和作为目标函数只是众多可取的方法之一。

 

请简要介绍下SVM(BAT)

  • SVM,全称是support vector machine,中文名叫支持向量机。
  • SVM是一个面向数据的分类算法,它的目标是为确定一个分类超平面,从而将不同的数据分隔开

 

请简要介绍下 tensorflow 的计算图(BAT)

  • Tensorflow是一个通过计算图的形式来表述计算的编程系统,计算图也叫数据流图,可以把计算图看做是一种有向图,
  • Tensorflow中的每一个计算都是计算图上的一个节点,而节点之间的边描述了计算之间的依赖关系

 

overfitting 怎么解决?(BAT)

dropoutregularizationbatch normalizatin

 

LR 和 SVM 的联系与区别(BAT)

联系:

  1. LR和SVM都可以处理分类问题,且一般都用于处理线性二分类问题(在改进的情况下可以处理多分类问题)
  2. 两个方法都可以增加不同的正则化项,如l1、l2等等。所以在很多实验中,两种算法的结果是很接近的。

区别:
3. LR是参数模型,SVM是非参数模型。
4. 从目标函数来看,区别在于逻辑回归采用的是logistical loss,SVM采用的是hinge loss.这两个损失函数的目的都是增加对分类影响较大的数据点的权重减少与分类关系较小的数据点的权重
5. SVM的处理方法是只考虑support vectors,也就是和分类最相关的少数点,去学习分类器。而逻辑回归通过非线性映射,大大减小了离分类平面较远的点的权重,相对提升了与分类最相关的数据点的权重
6. 逻辑回归相对来说模型更简单,好理解,特别是大规模线性分类时比较方便。
7. 而SVM的理解和优化相对来说复杂一些,SVM转化为对偶问题后,分类只需要计算与少数几个支持向量的距离,这个在进行复杂核函数计算时优势很明显,能够大大简化模型和计算。
8. logic 能做的 svm能做,但可能在准确率上有问题,svm能做的logic有的做不了。

 

LR 与线性回归的区别与联系(BAT)

  • 个人感觉逻辑回归和线性回归首先都是广义的线性回归
  • 其次经典线性模型的优化目标函数是最小二乘, 而逻辑回归则是似然函数
  • 另外线性回归在整个实数域范围内进行预测,敏感度一致,而分类范围,需要在[0,1]。
  • 逻辑回归就是一种减小预测范围,将预测值限定为[0,1]间的一种回归模型,因而对于这类问题来说,逻辑回归的鲁棒性比线性回归的要好。
  • 逻辑回归的模型本质上是一个线性回归模型,逻辑回归都是以线性回归为理论支持的。
  • 但线性回归模型无法做到sigmoid的非线性形式sigmoid可以轻松处理0/1分类问题。
     

请问(决策树、Random Forest、Booting、Adaboot)GBDT 和 XGBoost 的区别是什么?(BAT)

  • xgboost类似于gbdt的优化版,不论是精度还是效率上都有了提升。与gbdt相比,具体的优点有:
    1. 损失函数是用泰勒展式二项逼近,而不是像gbdt里的就是一阶导数
    2. 树的结构进行了正则化约束,防止模型过度复杂,降低了过拟合的可能性
    3. 节点分裂的方式不同,gbdt是用的gini系数,xgboost是经过优化推导后的

 

为什么 XGBoost 要用泰勒展开,优势在哪里?(BAT)

  • XGBoost使用了一阶和二阶偏导,二阶导数有利于梯度下降的更快更准
    • 使用泰勒展开取得二阶倒数形式,可以在不选定损失函数具体形式的情况下用于算法优化分析
  • 本质上也就把损失函数的选取和模型算法优化/参数选择分开了。
  • 这种去耦合增加了XGBoost的适用性

 

XGBoost 如何寻找最优特征?是又放回还是无放回的呢?(BAT)

  • XGBoost在训练的过程中给出各个特征的评分,从而表明每个特征对模型训练的重要性
  • XGBoost利用梯度优化模型算法,样本是不放回的(想象一个样本连续重复抽出,梯度来回踏步会不会高兴)。
  • 但XGBoost支持子采样,也就是每轮计算可以不使用全部样本

 

谈谈判别式模型和生成式模型?(BAT)

  • 判别方法:由数据直接学习决策函数 Y = f(X),或者由条件分布概率 P(Y|X)作为预测模型,即判别模型。
  • 生成方法:由数据学习联合概率密度分布函数 P(X,Y),然后求出条件概率分布P(Y|X)作为预测的模型,即生成模型。

生成模型可以得到判别模型,但由判别模型得不到生成模型

  • 常见的判别模型有:K近邻、SVM、决策树、感知机、线性判别分析(LDA)、线性回归、传统的神经网络、逻辑斯蒂回归、boosting、条件随机场
  • 常见的生成模型有:朴素贝叶斯、隐马尔可夫模型、高斯混合模型、文档主题生成模型(LDA)、限制玻尔兹曼机

 

L1 和 L2 的区别。(BAT)

  • L1范数(L1 norm)是指向量中各个元素绝对值之和,也有个美称叫“稀疏规则算子”(Lasso regularization)。
    比如 向量A=[1,-1,3], 那么A的L1范数为 |1|+|-1|+|3|

简单总结一下就是:
L1范数: 为x向量各个元素绝对值之和
L2范数: 为x向量各个元素平方和的1/2次方,L2范数又称Euclidean范数或Frobenius范数
Lp范数: 为x向量各个元素绝对值p次方和的1/p次方

在支持向量机学习过程中,L1范数实际是一种对于成本函数求解最优的过程,因此,L1范数正则化通过向成本函数中添加L1范数,使得学习得到的结果满足稀疏化,从而方便人类提取特征。

  • L1范数可以使权值稀疏,方便特征提取
  • L2范数可以防止过拟合,提升模型的泛化能力。

 

L1 和 L2 正则先验分别服从什么分布 ?(BAT)

L1是拉普拉斯分布,L2是高斯分布。

 

LSTM 结构推导,为什么比 RNN 好?(BAT)

  • 推导forget gate,input gate,cell state, hidden information等的变化;
  • 因为LSTM有进有出且当前的cell informaton是通过input gate控制之后叠加的,
  • RNN叠乘,因此LSTM可以防止梯度消失或者爆炸。
     

为什么朴素贝叶斯如此“朴素”?(BAT)

  • 因为它假定所有的特征在数据集中的作用是同样重要和独立的。
  • 正如我们所知,这个假设在现实世界中是很不真实的,因此,说朴素贝叶斯真的很“朴素”。

 

如何解决梯度消失和梯度膨胀?(BAT)

(1)梯度消失

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

(2)梯度膨胀

  • 根据链式法则,如果每一层神经元对上一层的输出的偏导乘上权重结果都大于1的话,在经过足够多层传播之后,误差对输入层的偏导会趋于无穷大
  • 可以通过激活函数来解决。

 

了解正则化么?(BAT)

  • 正则化是针对过拟合而提出的,以为在求解模型最优的是一般优化最小的经验风险,
  • 现在在该经验风险上加入模型复杂度这一项(正则化项是模型参数向量的范数),并使用一个rate比率来权衡模型复杂度与以往经验风险的权重
  • 如果模型复杂度越高,结构化的经验风险会越大,现在的目标就变为了结构经验风险的最优化,可以防止模型训练过度复杂,有效的降低过拟合的风险
  • 奥卡姆剃刀原理,能够很好的解释已知数据并且十分简单才是最好的模型。

 

线性分类器与非线性分类器的区别以及优劣?(BAT)

  • 如果模型是参数的线性函数,并且存在线性分类面,那么就是线性分类器,否则不是。
    • 常见的线性分类器有:LR、贝叶斯分类、单层感知机、线性回归。
    • 常见的非线性分类器:决策树、RF、GBDT、多层感知机。
    • SVM两种都有(看线性核还是高斯核)。
  • 线性分类器速度快、编程方便,但是可能拟合效果不会很好。
  • 非线性分类器编程复杂,但是效果拟合能力强

 

BN 和 LN 区别?(字节)

  • Batch Normalization 是对这批样本的同一维度特征做归一化

  • Layer Normalization 是对这单个样本的所有维度特征做归一化。

  • 区别:

    • LN同层神经元输入拥有相同的均值和方差不同的输入样本有不同的均值和方差
    • BN中则针对不同神经元输入计算均值和方差同一个batch中的输入拥有相同的均值和方差。所以,LN不依赖于batch的大小和输入sequence的长度,因此可以用于batchsize为1和RNN中sequence的normalize操作。

 

讲讲 self attention。(字节)

  • Self Attention与传统的Attention机制非常的不同:
    • 传统的Attention是基于source端和target端的隐变量(hidden state)计算Attention的,得到的结果是源端的每个词与目标端每个词之间的依赖关系
    • 但Self Attention不同,它分别在source端和target端进行,仅与source input或者target input自身相关的Self Attention,捕捉source端或target端自身的词与词之间的依赖关系
    • 然后再把source端的得到的self Attention加入到target端得到的Attention中,捕捉source端和target端词与词之间的依赖关系。
  • 因此,self Attention Attention比传统的Attention mechanism效果要好,
    • 主要原因之一是,传统的Attention机制忽略了源端或目标端句子中词与词之间的依赖关系
    • 相对比,self Attention可以不仅可以得到源端与目标端词与词之间的依赖关系,同时还可以有效获取源端或目标端自身词与词之间的依赖关系。

 

Bert 的预训练过程?(字节)

  • Bert的预训练主要包含两个任务,MLM和NSP,
    • Masked Language Model任务可以理解为完形填空,随机mask每一个句子中15%的词,用其上下文来做预测
  • Next Sentence Prediction任务选择一些句子对A与B,其中50%的数据B是A的下一条句子,剩余50%的数据B是语料库中随机选择的,学习其中的相关性
  • BERT 预训练阶段实际上是将上述两个任务结合起来,同时进行,然后将所有的 Loss 相加

 

Pre Norm 与 Post Norm 的区别?(字节)

  • 在同一设置下,Pre Norm(也就是Norm and add)的效果是要优于Post Norm(Add and Norm)的,
  • 但是单独调整的话,Post Norm的效果是更好的,Pre Norm结构无形地增加了模型的宽度而降低了模型的深度
  • Post Norm每Norm一次就削弱一次恒等分支的权重,所以Post Norm反而是更突出残差分支的。

 

GPT 与 Bert 的区别?(字节)

1) GPT是单向模型,无法利用上下文信息,只能利用上文;而BERT是双向模型
2) GPT是基于自回归模型,可以应用在NLU和NLG两大任务,而原生的BERT采用的基于自编码模型只能完成NLU任务,无法直接应用在文本生成上面。

 

如何加速 Bert 模型的训练?(字节)

  • BERT 基线模型的训练使用 Adam with weight decay(Adam优化器的变体)作为优化器,
  • LAMB 是一款通用优化器,它适用于小批量和大批量,且除了学习率以外其他超参数均无需调整。
  • LAMB 优化器支持自适应元素级更新(adaptive element-wise updating)和准确的逐层修正(layer-wise correction)。
  • LAMB 可将 BERT 预训练的批量大小扩展到 64K,且不会造成准确率损失,76分钟就可以完成BERT的训练。

 

比较 Boosting 和 Bagging 的异同(其他)

  • 二者都是集成学习算法,都是将多个弱学习器组合成强学习器的方法
  • Bagging:从原始数据集中每一轮有放回地抽取训练集,训练得到k个弱学习器,将这k个弱学习器以投票的方式得到最终的分类结果。
  • Boosting:每一轮根据上一轮的分类结果动态调整每个样本在分类器中的权重,训练得到k个弱分类器,他们都有各自的权重,通过加权组合的方式得到最终的分类结果。

 

无监督学习中存在过拟合吗?(其他)

存在

  • 我们可以使用无监督学习的某些指标或人为地去评估模型性能,以此来判断是否过拟合。

深度学习

什么是 RNN?(其他)

RNNs的目的使用来处理序列数据。

  • 传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,每层之间的节点是无连接的。
    • 但是这种普通的神经网络对于很多问题却无能无力
    • 例如,你要预测句子的下一个单词是什么,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的
  • RNNs之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关
    • 具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,
    • 隐藏层之间的节点不再无连接而是有连接的,并且隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出

 

CNN 关键的层有哪些?(其他)

其关键层有:
输入层,对数据去均值,做data augmentation等工作
卷积层,局部关联抽取feature
激活层,非线性变化
池化层,下采样
全连接层,增加模型非线性
⑥ 高速通道,快速连接
BN层,缓解梯度弥散”

 

GRU 是什么?GRU 对 LSTM 做了哪些改动?(其他)

GRU是 Gated Recurrent Units,是循环神经网络的一种。

  • GRU只有两个门(update和reset),LSTM有三个门(forget,input,output),
  • GRU直接将 hidden state 传给下一个单元,而LSTM用 memory cell 把 hidden state 包装起来。

 

何解决深度学习中模型训练效果不佳的情况?(其他)

如果模型的训练效果不好,可先考察以下几个方面是否有可以优化的地方。
(1) 选择合适的损失函数(choosing proper loss )

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

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

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

 

卷积神经网络 CNN 中池化层有什么作用?(其他)

减小图像尺寸即数据降维,缓解过拟合,保持一定程度的旋转和平移不变性

 

神经网络中 Dropout 的作用?具体是怎么实现的?(其他)

防止过拟合。
每次训练,都对每个神经网络单元,按一定概率临时丢弃

 

利用梯度下降法训练神经网络,发现模型loss不变,可能有哪些问题?怎么解决?(其他)

  • 很有可能是梯度消失了,它表示神经网络迭代更新时,有些权值不更新的现象。
  • 改变激活函数,改变权值的初始化等。

 

残差网络为什么能做到很深层?(其他)

  • 神经网络在反向传播过程中要不断地传播梯度,
  • 当网络层数加深时,梯度在逐层传播过程中会逐渐衰减,导致无法对前面网络层的权重进行有效的调整
  • 残差网络中, 加入了short connections 为梯度带来了一个直接向前面层的传播通道,缓解了梯度的减小问题。

 

卷积神经网络中空洞卷积的作用是什么?(其他)

  • 空洞卷积也叫扩张卷积,在保持参数个数不变的情况下增大了卷积核的感受野
    • 同时它可以保证输出的特征映射(feature map)的大小保持不变
  • 一个扩张率为 2 的 3×3 卷积核,感受野与 5×5 的卷积核相同,但参数数量仅为 9 个。

 

解释下卷积神经网络中感受野的概念?(其他)

在卷积神经网络中,感受野 (receptive field) 的定义是卷积神经网络每一层输出的特征图(feature map)上的像素点在原始图像上映射的区域大小

 

卷积神经网络中 im2col 是如何实现的?(其他)

使用im2col的方法将划窗卷积转为两个大的矩阵相乘

 

梯度爆炸的解决方法?(其他)

  • 针对梯度爆炸问题,解决方案是引入Gradient Clipping(梯度裁剪)。
  • 通过Gradient Clipping,将梯度约束在一个范围内,这样不会使得梯度过大。
     

多任务学习中标签缺失如何处理?(其他)

一般做法是将缺失的标签设置特殊标志,在计算梯度的时候忽略。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
心中带点小风骚的头像心中带点小风骚普通用户
上一篇 2023年8月23日
下一篇 2023年8月23日

相关推荐