深度学习算法面试题总结(38题)

article/2025/10/3 9:58:34

原文链接:https://blog.csdn.net/attitude_yu/article/details/80963323

1.  什么是凸集、凸函数、凸学习问题?

凸集:若对集合C中任意两点u和v,连接他们的线段仍在集合C中,那么集合C是凸集。

公式表示为:αu+(1-α)v∈C α∈[0, 1]

凸函数:凸集上的函数是凸函数。凸函数的每一个局部极小值也是全局极小值( f(x) = 0.5x^2 )。

公式表示为:f(αu + (1-α)v) ≤ αf(u)+ (1-α)f(v)

2.  L0、L1、L2正则化?

L0范数:计算向量中非0元素的个数。

L1范数:计算向量中各元素绝对值之和。

L2范数:计算向量中各元素平方和的开方。

L0范数和L1范数目的是使参数稀疏化。L1范数比L0范数容易优化求解。

L2范数是防止过拟合,提高模型的泛化性能。

3.  无监督学习方法有哪些?

强化学习、K-means 聚类、自编码、受限波尔兹曼机

4.  空洞卷积(dilated convolution)的理解?

基于FCN的语义分割问题中,需保持输入图像与输出特征图的size相同。

若使用池化层,则降低了特征图size,需在高层阶段使用上采样,由于池化会损失信息,所以此方法会影响导致精度降低;

若使用较小的卷积核尺寸,虽可以实现输入输出特征图的size相同,但输出特征图的各个节点感受野小;

若使用较大的卷积核尺寸,由于需增加特征图通道数,此方法会导致计算量较大;

所以,引入空洞卷积(dilatedconvolution),在卷积后的特征图上进行0填充扩大特征图size,这样既因为有卷积核增大感受野,也因为0填充保持计算点不变。

5.  增大感受野的方法?

空洞卷积、池化操作、较大卷积核尺寸的卷积操作

6.  卷积层中感受野大小的计算?

卷积层的感受野大小与其之前层的卷积核尺寸和步长有关,与padding无关。基于从深层向浅层递归计算的方式。

计算公式为:Fj-1 = Kj + (Fj - 1)*Sj(最后一层特征图的感受野大小是其计算卷积核大小)

7.  梯度下降法和牛顿法的优缺点?

优点:梯度下降法:可用于数据量较大的情况;

牛顿法:收敛速度更快;

缺点:梯度下降法:每一步可能不是向着最优解的方向;

牛顿法:每次迭代的时间长;需要计算一阶和二阶导数;

8.  解决训练样本类别不平衡问题?

现象:训练样本中,正负样本数量的比例较大。

1. 过采样。增加正例样本数量,使得正负样本数量接近,然后再进行学习。

2. 欠采样。去除反例样本数量,使得正负样本数量接近,然后再进行学习。

3. 设置阈值。基于原始数据集学习,当使用已训练好的分类器进行预测时,将正负样本数量的比例作为阈值嵌入到决策过程中。

9.  各个激活函数的优缺点?

Sigmoid激活函数 缺点:

1. 不是关于原点对称;

2. 需要计算exp

Tanh 激活函数 优点:

1. 关于原点对称

2. 比sigmoid梯度更新更快

ReLU激活函数 优点:

1. 神经元输出为正时,没有饱和区

2. 计算复杂度低,效率高

3. 在实际应用中,比sigmoid、tanh更新更快

4. 相比于sigmoid更加符合生物特性

ReLU激活函数 缺点:

1. 神经元输出为负时,进入了饱和区

2. 神经元的输出在非0中心

3. 使得数据存在Active ReLU、Dead ReLU(当wx+b<0时,将永远无法进行权值更新,此时的神经元将死掉)的问题

Leaky ReLU激活函数 优点:

1. 解决了ReLU激活函数Dead ReLU问题;

Maxout激活函数max(w1*x+b1,w2*x+b2)  缺点:

2. 参数较多;

10. 神经网络的正则化方法?/过拟合的解决方法?

数据增强(镜像对称、随机裁剪、旋转图像、剪切图像、局部弯曲图像、色彩转换)

early stopping(比较训练损失和验证损失曲线,验证损失最小即为最优迭代次数)

L2正则化(权重参数的平方和)

L1正则化(权重参数的绝对值之和)

dropout 正则化(设置keep_pro参数随机让当前层神经元失活)

11. 目标检测领域的常见算法?

两阶段检测器:R-CNN、Fast R-CNN、Faster R-CNN

单阶段检测器:YOLO、YOLO9000、SSD、DSSD、RetinaNet

12. Batch Normalization如何实现?作用?

实现过程

计算训练阶段mini_batch数量激活函数前结果的均值和方差,然后对其进行归一化,最后对其进行缩放和平移。

作用

1. 限制参数对隐层数据分布的影响,使其始终保持均值为0,方差为1的分布;

2. 削弱了前层参数和后层参数之间的联系,使得当前层稍稍独立于其他层,加快收敛速度;

3. 有轻微的正则化效果。

13. Momentum优化算法原理?作用?

原理:在梯度下降算法中引入指数加权平均数,在更新梯度方向的过程中,在一定程度上保留了之前梯度更新的方向,同时利用当前mini_batch的梯度方向微调最终的更新方向。

作用:在一定程度上增加梯度更新方向的稳定性,从而使得收敛速度更快。

14. 群卷积?

假设上一层的特征图通道数为N,群卷积数目为M,则每个群卷积层上的特征图通道数为N/M,然后将其分配在不同的GPU上,待卷积完成后将输出叠加在一起。

15. 反卷积?

卷积的逆过程,GANs基于反卷积操作生成图片。

16. 梯度消失和梯度爆炸?

原因:激活函数的选择。

梯度消失:令bias=0,则神经网络的输出结果等于各层权重参数的积再与输入数据集相乘,若参数值较小时,则权重参数呈指数级减小。

梯度爆炸:令bias=0,则神经网络的输出结果等于各层权重参数的积再与输入数据集相乘,若参数值较大时,则权重参数呈指数级增长。

17.质数与互质数

质数是能被1和其本身整除的数;比如2,3,5,7是质数;

互质数是两个数的公因数只有一个1的数;比如8和9、27和32是互质数;

18. 生成模型和判别模型

生成方法是首先基于数据学习联合概率分布P(X,Y),然后获得条件概率分布P(Y|X)作为预测模型。

常用模型:隐马尔可夫模型(HMM)、朴素贝叶斯

判别方法是直接基于数据学习到决策函数F或条件概率分布P(Y|X)作为预测模型。

常用模型:支持向量机、K近邻算法、决策树、逻辑回归、感知机、最大熵等

19. 从贝叶斯的角度来看,正则化等价于对模型参数引入先验分布,谈谈你对正则化的理解,并且阐述引入L2和L1分别对应什么分布。

正则化的理解:正则化是在损失函数中加入对模型参数的惩罚项,以平衡因子lamda控制惩罚力度,其通过在训练过程中降低参数的数量级,从而降低模型的过拟合现象。

从贝叶斯的角度来看,正则化等价于对模型参数引入先验分布:对参数引入高斯先验分布等价于L2正则化,对参数引入拉普拉斯分布等价于L1正则化。

20. 从变换矩阵和变换效果等方面阐述相似变换、仿射变换、投影变换的区别。

等距变换:图像旋转+平移

相似变换:图像旋转+平移+缩放(放大或缩小原图)

仿射变换:图像旋转+平移+缩放+切变(虽改变图像的形状,但未改变图像中的平行线)

投影变换:图像旋转+平移+缩放+切变+射影(不仅改变了图像的形状,而且改变了图像中的平行线)

21. HOG特征的计算流程

直方图:横轴:间隔,纵轴为各间隔统计值的个数。特点1:显示此数据的的分布情况;特点2:显示各组统计数据的差异;

HOG(histogram of oriented gradient)通过获得局部区域像素的梯度直方图来构成特征。

1. 转化为灰度图;

2. 图像的归一化;

3. 计算各个像素的梯度;

4. 将图像划分为cell(6*6个像素是一个cell)

5. 计算cell区域的梯度直方图(统计各个梯度的数量),构成cell的discripter

6. 将cell划分为block(3*3个cell是一个block),串联block内的cell discripter即可得到此区域的HOG特征discripter

7. 将一幅图像中的Hog discripter串联就是用于分类的特征向量;

22. 简述回归,分类,聚类方法的区别和联系并分别举出一个例子,简要介绍算法思路

回归:对连续随机变量建模预测的监督学习算法;经典案例:房价预测;算法举例:线性回归,建立数据的拟合曲线作为预测模型(y = wx + b);

分类:对离散随机变量建模预测的监督学习算法;经典案例:垃圾邮件分类;算法举例:支持向量机,寻找二类支持向量的最大切分超平面;

聚类:基于数据的内部规律,寻找其属于不同族群的无监督学习算法;算法举例:k-means;

23. 列举至少三种损失函数,写出数学表达式并简述各自优点

https://blog.csdn.net/heyongluoyao8/article/details/52462400

0-1损失 感知机损失 绝对值损失

平方误差损失(线性回归)

对数损失(逻辑回归)

指数损失(Adaboost)

铰链损失(SVM)

24. 分类问题的评价标准

准确率 = (TP+TN)/总样本数

精确率 = TP/(TP+FP) = 所有预测为正类样本中正类的概率

召回率 = TP/(TP+FN) = 所有真正类样本中正类的概率

2/调和平均值 = 1/精确率+1/召回率

P-R曲线:纵轴为精确率,横轴为召回率,基于平衡点(P=R)度量各个基分类器的优劣;

ROC曲线:纵轴为TPR,横轴为FPR

TPR = TP/(TP+FN)  FPR = FP/(FP+TN)

AUC:ROC曲线下的面积

mAP = 所有类别的AP之和/类别数量

P = (一张图片类别C识别正确数量)/(一张图片类别C的总数量)

AP = 每张图片的P之和/图片数量

25. 回归问题的评价指标

平均绝对值误差(MAE)

均方差(MSE)

26.  逻辑回归和SVM的区别和联系

1.损失函数不同,LR损失函数是对数损失;SVM损失函数时合页损失;

2.LR考虑了所有点的损失,但通过非线性操作大大减小离超平面较远点的权重;SVM仅考虑支持向量的损失

3.LR受类别平衡的影响;SVM则不受类别平衡的影响;

4.LR适合较大数据集;SVM适合较小数据集

27. 深度学习为什么在计算机视觉领域这么好

以目标检测为例,传统的计算机视觉方法需首先基于经验手动设计特征,然后使用分类器分类,这两个过程都是分开的。而深度学习里的卷积网络可实现对局部区域信息的提取,获得更高级的特征,当神经网络层数越多时,提取的特征会更抽象,将更有助于分类,同时神经网路将提取特征和分类融合在一个结构中。

28.  Bagging和Boosting之间的区别?

1.从样本选择角度:

Bagging采用随机有放回的采样方式(Boostraping);Boosting使用所有样本,但每个样本的权重不同;

2.从决策方式角度:

Bagging分类预测采用大多数投票选举法,回归预测采用各基分类器预测结果的平均值;Boosting采用各基分类器在不同权重作用下预测结果的累加和;

3.从方差、偏差角度:

Bagging以减小方差为目的;Boosting以减少偏差为目的;

模型过拟合,则方差大,Bagging以随机采样样本的方式减少异常样本的选择比例,从而可以降低过拟合,随之也就减小了方差;

Boosting的损失函数就是以减少偏差为目的来训练下一个基分类器;

4.从权重角度:

Bagging各个样本的权重相同,各个基分类器权重相同;Boosting各个样本的权重不同,正确预测的样本权重减小,错误预测的样本权重增大;各个基分类器的权重不同,预测准确率高的权重大,预测准确率低的权重小;

29. 常用的池化操作有哪些?

1.Max pooling:选取滑动窗口的最大值

2.Average pooling:平均滑动串口的所有值

3.Global average pooling:平均每页特征图的所有值

优点:

1.解决全连接层所造成的过拟合问题

CNN网络需要将特征图reshape成全连接层,然后再连接输出层,而global average pooling不需要此操作,直接将特征图pooling成输出层

2.没有权重参数

29. 朴素贝叶斯的朴素是什么意思?

朴素指的是各个特征之间相互独立。

30.1*1卷积核的作用?

1.跨通道信息的融合;

2.通过对通道数的降维和升维,减少计算量;

31. 随机森林的随机性指的是?

1.决策树训练样本是有放回随机采样的;

2.决策树节点分裂特征集是有放回随机采样的;

32. 随机森林和GBDT算法的区别?

1.并行和串行

随机森林是并行算法,GBDT算法是串行算法

2.决策方式

随机森林分类问题采用大多数投票选举法,回归问题采用各基分类器结果的平均值;GBDT算法采用各基分类器预测结果的累加和;

3.样本选择

随机森林各基分类器采用有放回随机采样的方式;GBDT则使用所有的样本;

4.偏差、方差

随机森林通过降低方差提高性能;GBDT通过降低偏差提高性能;

5.异常值

随机森林对异常值不敏感;GBDT对异常值敏感;

33. 为什么ReLU常用于神经网络的激活函数?

1.在前向传播和反向传播过程中,ReLU相比于Sigmoid等激活函数计算量小;

2.在反向传播过程中,Sigmoid函数存在饱和区,若激活值进入饱和区,则其梯度更新值非常小,导致出现梯度消失的现象。而ReLU没有饱和区,可避免此问题;

3.ReLU可令部分神经元输出为0,造成网络的稀疏性,减少前后层参数对当前层参数的影响,提升了模型的泛化性能;

34. 卷积层和全连接层的区别?

1.卷积层是局部连接,所以提取的是局部信息;全连接层是全局连接,所以提取的是全局信息;

2.当卷积层的局部连接是全局连接时,全连接层是卷积层的特例;

35. 偏差和方差的区别?

偏差是真实值和预测值之间的偏离程度;方差是预测值得分散程度,即越分散,方差越大;

36. 机器学习和深度学习的区别?

机器学习在训练模型之前,需要手动设置特征,即需要做特征工程;深度学习可自动提取特征;所以深度学习自动提取的特征比机器学习手动设置的特征鲁棒性更好;

37. 神经网络的优缺点?

优点:

1.拟合复杂的函数

随着神经网络层数的加深,网络的非线性程度越来越高,从而可拟合更加复杂的函数;

2.结构灵活

神经网络的结构可根据具体的任务进行相应的调整,选择适合的网络结构;

3.神经网络可自动提取特征,比人工设置的特征鲁棒性更好;

缺点:

1.由于神经网络强大的假设空间,使得神经网络极易陷入局部最优,使得模型的泛化能力较差;

2.当网络层数深时,神经网络在训练过程中容易产生梯度消失和梯度下降的问题;

3.随着网络层数的加深,神经网络收敛速度越来越慢;

4.神经网络训练参数多,占用内存大;

38. 解决过拟合的方法

1.数据增强

2.Ealy stopping

3.Dropout

4.交叉验证

5.L1、L2正则化

 


http://chatgpt.dhexx.cn/article/Be8yxeZk.shtml

相关文章

深度学习笔试、面试题 一

1、神经网络模型&#xff08;Neural Network&#xff09;因受人类大脑的启发而得名&#xff0c;神经网络由许多神经元&#xff08;Neuron&#xff09;组成&#xff0c;每个神经元接受一个输入&#xff0c;对输入进行处理后给出一个输出&#xff0c;如下图所示。请问下列关于神经…

面试笔试整理3:深度学习机器学习面试问题准备(必会)

第一部分&#xff1a;深度学习 1、神经网络基础问题 &#xff08;1&#xff09;Backpropagation&#xff08;要能推倒&#xff09;   后向传播是在求解损失函数L对参数w求导时候用到的方法&#xff0c;目的是通过链式法则对参数进行一层一层的求导。这里重点强调&#xff…

机器学习与深度学习常见面试题

为了帮助参加校园招聘、社招的同学更好的准备面试&#xff0c;SIGAI整理出了一些常见的机器学习、深度学习面试题。理解它们&#xff0c;对你通过技术面试非常有帮助&#xff0c;当然&#xff0c;我们不能只限于会做这些题目&#xff0c;最终的目标是真正理解机器学习与深度学习…

深度学习最全面试题总结(二)

&#x1f468;‍&#x1f4bb;作者简介&#xff1a; CSDN、阿里云人工智能领域博客专家&#xff0c;新星计划计算机视觉导师&#xff0c;百度飞桨PPDE&#xff0c;专注大数据与AI知识分享。✨公众号&#xff1a;GoAI的学习小屋 &#xff0c;免费分享书籍、简历、导图等&#xf…

大厂必考深度学习面试题及参考答案

目录 一&#xff0c;滤波器与卷积核二&#xff0c;卷积层和池化输出大小计算 2.1&#xff0c;CNN 中术语解释2.2&#xff0c;卷积输出大小计算&#xff08;简化型&#xff09;2.3&#xff0c;理解边界效应与填充 padding参考资料三&#xff0c;深度学习框架的张量形状格式四&am…

深度学习面试必备的25个问题

作者 | Tomer Amit 译者 | 弯月&#xff0c;编辑 | 屠敏 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 在本文中&#xff0c;我将分享有关深度学习的25个问题&#xff0c;希望能够帮助你为面试做好准备。 1.为什么必须在神经网络中引入非线性&#xff1f; 答&am…

深度学习算法面试题总结

1. 什么是凸集、凸函数、凸学习问题? 凸集:若对集合C中任意两点u和v,连接他们的线段仍在集合C中,那么集合C是凸集。 公式表示为:αu+(1-α)v∈C α∈[0, 1] 凸函数:凸集上的函数是凸函数。凸函数的每一个局部极小值也是全局极小值( f(x) = 0.5x^2 )。 公式表示为:f(αu…

用python计算n的阶乘的方法!(含示例代码)

前言&#xff1a; 今天为大家的内容是&#xff1a;用python计算n的阶乘的方法&#xff01;&#xff08;含示例代码&#xff09;希望通过本文内容能够对各位有所帮助&#xff0c;要是喜欢的话记得点赞转发收藏关注不迷路哦&#xff01;&#xff01;&#xff01; 提示&#xff…

python计算n的阶乘

1.程序 n int(input())def fact(n):if n 0 | n 1:return 1elif n > 1:return n * fact(n - 1)print(fact(n)) 2.分析 首先&#xff0c;阶乘本身就是一个递归问题&#xff0c;那最好的方法就是写一个递归函数&#xff0c;即函数调用自身&#xff0c;递归函数一定要有基…

Python应用之计算阶乘

1.背景知识 阶乘是基斯顿卡曼(Christian Kramp,1760~1826)于 1808 年发明的运算符号。一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,通俗的讲也就是按顺序从1乘到n,所得的那个数就是n的阶乘。0的阶乘为1,自然数n的阶乘写作n!。即:0!= 11!= 12!= …

Python阶乘求和的方法

Python阶乘求和的方法 题目描述&#xff1a; 获得用户输入的整数n&#xff0c;输出 1!2!…n!的值。 如果输入数值为0、负数、非数字或非整数&#xff0c;输出提示信息&#xff1a;输入有误&#xff0c;请输入正整数。 &#xff08;推荐学习&#xff1a;Python视频教程&…

用Python进行1的阶乘到10的阶乘相加的计算

用Python实现1的阶乘到10的阶乘相加之和 对于阶乘我们不得不想到迭代&#xff0c;但其实除了迭代还有其他的办法&#xff0c;这里我将介绍我知晓的几种方法: 首先我们应知道迭代和递归的区别&#xff1a; 递归是针对于函数来讲的&#xff0c;我们常说函数递归调用&#xff0c;这…

Python阶乘求和

题目&#xff1a; 获得用户输入的整数n&#xff0c;输出 1!2!…n!的值。 思路&#xff1a; 依次计算每个阶乘的值&#xff0c;然后相加起来&#xff0c;即可得到结果 代码&#xff1a; # 获得用户输入的整数n&#xff0c;输出 1!2!…n!的值。 num int(input("please i…

python计算阶乘方法

1. 阶乘的概念 公式&#xff1a; n ! ∏ k 1 n k , ∀ n ≥ 1. n! \prod_{k1}^{n} k, \forall n\geq1. n!∏k1n​k,∀n≥1. 2. 方法1&#xff1a;循环 # method 1. def factorial_1(n):if n<1:return 1res 1for i in range(1, n1):res * ireturn res测试&#xff1a…

Python计算阶乘(5种方法)

Python计算阶乘 第一次写博客&#xff0c;请多多指教 五种方法计算阶乘方法如下&#xff1a; 1.利用循环&#xff0c;如下代码演示 def main(num):a1for i in range(1,num1):a*ireturn aprint(main(10))执行结果如下&#xff1a; 2.导入functools中的reduce模块 from func…

python入门学习——6种方法求n的阶乘(8种写法)

一、阶乘&#xff08;factorial&#xff09; 自然数n&#xff01;&#xff08;n的阶乘&#xff09;是指从1、2……&#xff08;n-1&#xff09;、n这n个数的连乘积&#xff0c;即 n&#xff01;n&#xff08;n-1&#xff09;……21 如&#xff1a; 1&#xff01; 1 1 2&…

Fiddler模拟发送POST请求

在发起POST请求时不像GET请求可以在浏览器地址栏直接输入&#xff0c;POST请求的参数是放在请求体中的&#xff0c;因此如果想要模拟POST请求&#xff0c;需要借助工具&#xff0c;比如Postman或者Fiddler&#xff0c;这里简单介绍一下Fiddler模拟Post请求的方法。 输入请求ur…

轻松把玩HttpClient之模拟post请求示例

HttpClient 是 Apache Jakarta Common 下的子项目&#xff0c;可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包&#xff0c;并且它支持 HTTP 协议最新的版本和建议。当前官网最新版介绍页是&#xff1a;http://hc.apache.org/httpcomponents-client-4…

IDEA模拟post发送请求

第一步&#xff1a; 第二步&#xff1a; 发送请求准备 第三步&#xff1a;查看结果

Python 模拟浏览器 POST请求思路

Python 模拟浏览器发送POST请求思路 昨天朋友找我说想对一个tp网站的视频刷播放量&#xff0c;说可以一个IP地址无限刷。 登陆到网站后对所需的视频进行点击播放&#xff0c;发现没有任何跳转&#xff0c;而是发送了个POST请求。 这样一看&#xff0c;我们用requests就可以完…