博舍

AI人工智能、机器学习 面试题(2023最新版) ai人工智能面试题目及答案

AI人工智能、机器学习 面试题(2023最新版)

人工智能、机器学习面试题总结,侧重于理解,回答供参考,欢迎讨论。

General

深度学习(DeepLearning,DL)和机器学习(MachineLearning,ML)的关系是什么?

深度学习是机器学习的子类,是利用深度神经网络提取特征进行学习。机器学习还有其他非深度学习的技术,例如SVM、DecisionTree、NaiveBayes等。

深度学习流行的框架有哪些?各有什么特点?

TensorFlow:最主流,生态支持完备,硬件友好,同时有GoogleBrain研究支撑。

PyTorch:后起之秀,融合了Torch和Caffe2,和python混合编程体验好,学术界宠儿。

以及国内的PaddlePaddle,MindSpore等。

精确率(Precision)和召回率(Recall)以及F1值/分数(F1value/score)是什么?查准率和查全率呢?

先解释缩写:

TP:TruePositive,预测为真,结果也为真的数量;

FP:FalsePositive,预测为真,结果为假的数量;

FN:FalseNegative,预测为假,结果为真的数量。

精确率:P=TP/(TP+FP),西瓜书里也叫查准率;

召回率:R=TP/(TP+FN),西瓜书里也叫查全率。

F1值:F1=2*(P*R)/(P+R),精确率和召回率的调和均值。

可以看出,精确率和召回率的区别在于分母,精确率关心的是预测为真的数量中有多少真正对的(而不是其他类错误预测为这一类),而召回率关注的是这一类有多少判断正确了(而不是判断为其他类了)。直观理解:召回的意思是,如果这一类错误预测为其他类了,要找回来,即为召回。

AUC指标与precesion/recall/F1评估模型的手段有何区别,什么情况下应该用哪一种?

AUC是AreaunderCurve,曲线下面积。这个曲线横纵坐标分别为TPR和FPR.

TPR:TruePositiveRate,即recall;TPR=TP/(TP+FN),表示正确分类的正样本所占所有正样本的比例;

FPR:FalsePositiveRate,FPR=FP/(FP+TN),表示错误分类的负样本占所有负样本的比例。

对于同一个模型,TPR和FPR是一对跷跷板,可以通过修改阈值的方式来调节,例如调低分类为正样本的门槛,则更多的样本被分类为正样本,TP会增加,导致FPR增加;但此时,FP也会增加,导致FPR增加。

F1score相当于是综合了precision和recall,使用默认阈值;AUC是一个模型更为全面的指标,考虑了不同的阈值。但由于AUC比较复杂,一般情况下使用F1score就可以了。

SGD中S代表什么,如何理解?

S即为stochastic,随机梯度是指用来计算梯度的输入数据是随机选取的一部分(batch),而不是所有的数据。使用所有数据一方面计算量巨大,不太现实,另一方面容易陷入局部极小值难以跳出,随机batch的梯度反而增加了跳出局部极限值的可能性,从而获得更好的结果。

激活函数(ActivationFunction)有什么用处,有哪几种?

提供了非线性单元,使得整个网络变为非线性,从而能够解决各种非线性问题。

有ReLU/PReLU/Relu6/Sigmond/Tanh/SELU/SWISH等,目前最常用的还是ReLU,复杂度低,效果还可以。

监督学习和无监督学习的区别?请分别举例。

监督学习必须要标注,使用标记数据牵引训练,例如LR、SVM;

无监督机器学习不需要标注,模型通过自己发现数据的内部关系,例如Kmeans。

机器学习/深度学习项目中所需的步骤?

采集数据、预处理与特征选择、选择模型、训练模型、评估模型、诊断模型、调整参数,最后是预测、上线运行。

神经网络参数初始化方法有哪些,适用范围是什么?

weight最常用的是由KaimingHe提出的MSRA,在Xavier的基础上改进。Xavier假设激活函数关于原点中心对称,而常用的ReLU并不满足该条件。MSRA初始化是一个均值为0,方差为sqrt(2/Fin)的高斯分布。Xavier初始化是一个均匀分布U[-sqrt(6/(Fin+Fout))],Fin、Fout代表扇入、扇出,即为输入和输出的维度。

bias一般初始化为0,另外提醒一下如果conv后面接bn,可以省略bias,是等价的,有兴趣的可以自己推导一下。

因此,如果激活函数使用ReLU,则推荐使用MSRA;如果激活函数使用tanh等中心对称的函数,则使用Xavier初始化。

CV

列举深度学习中常用的分类网络、检测网络、分割网络(语义分割、多实例分割)、超分网络。

分类网络:ResNet,SENet,EfficientNet等;

检测网络:FasterRCNN,YOLO,SSD等;

分割网络:MaskRCNN、UNet等;

超分网络:SRCNN、FSRCNN等。

具体网络介绍可以关注我的公众号和博客。

ResNet解决了什么问题?结构有何特点?

ResNet提出是为了解决或缓解深度神经网络训练中的梯度消失问题。通过增加shortcut,使得梯度多了一个传递的途径,让更深的网络成为可能。

在图像处理中为什么要使用卷积神经网络(CNN)而不是全连接网络(FC)?

首先,CNN相对于FC的参数量减少非常多,对于图像这种输入维度相对较大的任务,全部使用FC不现实,另外参数量过多而数据规模跟不上非常容易过拟合,网络本身也难以训练。图像本身附近像素的关联信息很多,CNN正好能够提取一个区域数据的特征,并且能够通过不断加深扩展感受野,使得其适用于图像任务。

分类网络和检测网络的区别?

任务不同,Loss函数不同,一般分类网络使用crossentropyloss,而检测网络的loss是分类的loss和检测框回归loss的加权和。

损失函数(loss函数)有什么作用?

牵引网络的更新,梯度是loss函数相对于权重的偏导。

网络训练时为何要加正则化,有哪些手段?

目的是防止网络过拟合。

手段有:

L1/L2正则化

Dropout

Earlystop

数据增强也可以视为是一种正则化,例如图像的平移、旋转、缩放等。

如何判断网络是过拟合还是欠拟合?有哪些手段改善?

通过train和test的准确率来判断,如果train和test准确率差距非常大,即train的准确率接近100%,而test较差,说明过拟合;如果train的准确率就较差,说明欠拟合。

过拟合可以通过增加数据,或者加正则化缓解;欠拟合可以增加网络容量,例如加深或者加宽网络来改善。

BatchNormalization有什么作用?使用时需要注意什么?

BN的主要作用有:

加速网络的训练(缓解梯度消失,支持更大的学习率)

防止过拟合

降低了参数初始化的要求

使用时需要注意train时更新bn的相关参数,而test时要固定,一般有is_training的flag.

梯度爆炸有哪些解决办法?

梯度截断(gradientclipping)

良好的参数初始化策略

调小lr

相关文章

人工智能技术分析

人工智能机器学习深度学习

第六届世界互联网大会乌镇峰会简评

华为人工智能战略分析:2019华为全连接大会

阿里含光VS华为昇腾:AI芯片路在何方

AI人工智能三要素:数据、算力和算法

计算机视觉(CV)任务介绍:分类、检测、分割、超分、关键点识别、图像生成、度量学习

理解深度学习中的分类网络:LeNet

PyTorch1.3

tf.GradientTape详解:梯度求解利器

TensorFlow高阶API和低阶API

TensorFlow静态图和eager机制

TensorFlow2.0

TensorFlow高阶API和低阶API

TensorFlow调试技巧

TensorFlow与PyTorch对比

PyCharm调试技巧

解读谷歌的AI杀手级专利:Dropout

AutoML算法分析(一):基于强化学习的算法

SENet详解

关于我

缘起:新的开始

公众号持续更新,欢迎订阅。

AI人工智能与大数据

人工智能面试题总结

1、深度学习框架TensorFlow中都有哪些优化方法?答:GradientDescentOptimizer     AdagradOptimizer     Optimizer     优化最小代价函数2、深度学习框架TensorFlow中常见的激活函数都有哪些? 答:relu,sigmoid,tanh3、深度学习框架TensorFlow中有哪四种常用交叉熵?答:tf.nn.weighted_cross_entropy_with_logits    tf.nn.sigmoid_cross_entropy_with_logits      tf.nn.softmax_cross_entropy_with_logits     tf.nn.sparse_softmax_cross_entropy_with_logits4、什么叫过拟合,产生过拟合的原因?避免过拟合方法?答:过拟合简单说,就是在机器学习中,模型训练效果好,但对新的测试数据预测很差。

产生过拟合原因:

数据有噪声训练数据不足,有限的训练数据训练模型过度导致模型非常复杂

避免过拟合方法(常见):

earlystopping,在发生拟合之前提前结束训练。数据集扩增,最大的满足全样本。正则化,引入范数概念,增强模型泛化能力。droput,每次训练时丢弃一些节点,增强泛化能力batchnormalization减小模型复杂度

L1和L2的区别

L1范数为向量中各个元素的绝对值之和,符合拉普拉斯分布,可以使权值稀疏。L2范数为向量中各个元素的平方和的1/2次方,符合高斯分布,可以防止过拟合。Lp范数为向量中各个元素的p次方和的1/p次方。

6、什么是核函数?

核函数是将线性不可分的特征隐射到高维特征空间,从而让支持向量机在这个高维空间线性可分,也就是使用核函数可以向高维空间映射并解决非线性的分类问题。包括线性核函数,多项式核函数,高斯核函数等,其中高斯核函数最为常用。

7、深度学习框架TensorFlow中常见的核函数都有哪些?

SVM高斯核函数,应为如果想要分割非线性数据集,改变线性分类器隐射到数据集,就要改变SVM损失函数中的核函数

线性核函数;多项式核函数

8、朴素贝叶斯方法的优势是什么?

   朴素贝叶斯有稳定的分类效率   对于小规模的数据表现很好,能处理多分类问题,可以再数据超出内存时,去增量训练   对缺失数据不太敏感,算法比较简单,常用于文本分类。

9、什么是监督学习的标准方法?

     所有的回归算法和分类算法都属于监督学习。并且明确的给给出初始值,在训练集中有特征和标签,并且通过训练获得一个模型,在面对只有特征而没有标签的数据时,能进行预测。

   监督学习和非监督学习?

监督学习:通过已有的一部分输入数据与输出数据之间的对应关系,生成一个函数,将输入映射到合适的输出,例如分类。非监督学习:直接对输入数据集进行建模,例如聚类。半监督学习:综合利用有类标的数据和没有类标的数据,来生成合适的分类函数。

 目前最广泛被使用的分类器有人工神经网络、支持向量机、最近邻居法、高斯混合模型、朴素贝叶斯方法、决策树和径向基函数分类。

 无监督学习里典型的例子就是聚类了。聚类的目的在于把相似的东西聚在一起,而我们并不关心这一类是什么。因此,一个聚类算法通常只需要知道如何计算相似度就可以开始工作了。 

10、在机器学习中,模型的选择是指什么?

      根据一组不同复杂度的模型表现,从某个模型中挑选最好的模型。选择一个最好模型后,在新的数据上来评价其预测误差等评价和指标。

 11、谈谈判别式模型和生成式模型?

常见的判别模型有:K近邻、SVM、决策树、感知机、线性判别分析(LDA)、线性回归、传统的神经网络、逻辑斯蒂回归、boosting、条件随机场。通过决策函数来进行判别。常见的生成模型有:朴素贝叶斯、隐马尔可夫模型、高斯混合模型、文档主题生成模型(LDA)、限制玻尔兹曼机。通过联合概率密度分布函数来进行预测。 

11、图形数据库Neo4J的优劣势?

优势:1.更快的数据库操作,前提是数据量足够大。

         2.数据更加直观,相应的SQL语句更加好写。

         3.更灵活,不管有什么新的数据需要储存,都是一律的节点,只需要考虑节点属性和边属性。

        4.数据库的操作不会随着数据库的增大有明显的降低。

劣势:1.极慢的插入速度。

       2.超大的节点。当一个节点的边非常多,有关这个节点的操作速度就会大大下降

12、LR和SVM的联系与区别是什么?

   都是分类算法,如果不考虑核函数,LR和SVM都是线性分类算法,也就是说他们的分类决策面都是线性的。   LR和SVM都是监督学习算法   LR和SVM的损失函数不同   SVM只考虑局部的边界线附近的点,LR考虑全局,远离的点对边界线的确定也起作用。

13、什么是聚类,聚类的应用场景?

    聚类是指根据一定的准则,把一份事物按照这个准则归纳成互不重合的几份,机器学习中,聚类指按照一个标准,这个标准通常是相似性,把样本分成几份,是得相似程度高的聚在一起,相似程度低的互相分开。

    聚类的应用场景,求职信息完善(有大约10万份优质简历,其中部分简历包含完整的字段,部分简历在学历,公司规模,薪水,等字段有些置空顶。希望对数据进行学习,编码与测试,挖掘出职位路径的走向与规律,形成算法模型,在对数据中置空的信息进行预测。)

 

14、机器学习中,为何要经常对数据做归一化?

   归一化后加快的梯度下降对最优解的速度。   归一化有可能提高精度。

15、归一化的好处

归一化加快了梯度下降求解最优解的速度归一化还可能会提高精度。

16、归一化的种类

线性归一化。利用max和min进行归一化,如果max和min不稳定,则常用经验值来替代max和min。标准差归一化。利用所有样本的均值和方差将样本归一化为正态分布。非线性归一化。比如指数、对数、三角函数等。

17、归一化和标准化的区别

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

对于深度网络而言,归一化的目的是方便比较,可以加快网络的收敛速度;标准化是将数据利用z-score(均值、方差)的方法转化为符合特定分布的数据,方便进行下一步处理,不为比较。

18、熵

熵是指样本的随机程度。样本越无序,熵越大,信息越多。

19、SGD中S(stochastic)代表什么

StochasticGradientDescent随机梯度下降。GD即Full-Batch,SGD即为Mini-Batch。随机性表现在训练数据的shuffle。

20、SoftmaxLoss推倒

21、RectifiedLinearUnit,ReLU激活`函数缺点以及优点比较

22、ReLU比Sigmoid、Tanh好的原因

 

23、引入非线性激活函数的原因? 

 

指数函数运算量大。ReLU节省运算量。(计算量小)Sigmoid容易引发梯度消失问题,因为Sigmoid函数在两端的导数趋近于0.(解决梯度消失问题)ReLU使得一部分神经元死亡,这样可以使得网络变得比较稀疏,缓解了过拟合的发生。(避免过拟合)

24、若使用线性激活函数,则无论神经网络有多少层,输出都是输入的线性组合。

好的激活函数有以下特点:

   非线性:即导数不是常数。   几乎处处可微:可微性保证了在优化中梯度的可计算性。   计算简单。   非饱和性(saturation):饱和指的是在某些区间梯度接近于零(即梯度消失),使得参数无法继续更新的问题。   单调性(monotonic):即导数符号不变。   输出范围有限:有限的输出范围使得网络对于一些比较大的输入也会比较稳定   接近恒等变换(identity):即约等于x。这样的好处是使得输出的幅值不会随着深度的增加而发生显著的增加   参数少:大部分激活函数都是没有参数的。       归一化(normalization):这个是最近才出来的概念,对应的激活函数是SELU。类似于BatchNormalization

25、什么造成了梯度消失和梯度膨胀? 

深度网络的链式连乘法则,使得反向传播时到达前几层时,权值更新值非常小或非常大。可以通过ReLU解决一部分。

26、各大指标

混淆矩阵

包含四部分的信息:1.Truenegative(TN),称为真阴率,表明实际是负样本预测成负样本的样本数2.Falsepositive(FP),称为假阳率,表明实际是负样本预测成正样本的样本数3.Falsenegative(FN),称为假阴率,表明实际是正样本预测成负样本的样本数4.Truepositive(TP),称为真阳率,表明实际是正样本预测成正样本的样本数ROC曲线

二分类标签的输出概率需要定义一个阈值p,p值的选取反映了分类器的分类性能。ROC曲线的横轴为FP(将真实负样本预测为了正样本,越低越好),纵轴为TP(将真实正样本预测为正样本,越高越好)

 (0,0):假阳率和真阳率都为0,即分类器全部预测成负样本(0,1):假阳率为0,真阳率为1,全部完美预测正确,happy(1,0):假阳率为1,真阳率为0,全部完美预测错误,悲剧(1,1):假阳率和真阳率都为1,即分类器全部预测成正样本TPR=FPR,斜对角线,预测为正样本的结果一半是对的,一半是错的,随机分类则,若ROC曲线处于对角线之下,则分类性能差于随机分类器。希望该曲线向左上角凸。

AUC指标

AUC(AreaundertheROCcurve),适用于二元分类问题,AUC实际上就是ROC曲线下的面积。AUC直观地反映了ROC曲线表达的分类能力。

   AUC=1,代表完美分类器   0.5

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇