最近在准备东南palm实验室的面试,准备了这些问题。
参考:(81条消息) 保研面试/考研复试机器学习问题整理机器学习考研一匹好人呀的博客-CSDN博客
(81条消息) 保研考研面试—机器学习机器学习考研moluggg的博客-CSDN博客
[(81条消息) 夏令营]——东南大学计科院&PALM实验室夏令营随笔东南大学palm实验室Muasci的博客-CSDN博客
1、说一下F1值的计算(精确率、召回率、精确度)
正例 反例 正例 TP(真正例) FN(假负例) 反例 FP(假正例) TN(真负例) TP(True Positive):预测答案正确 TN(True Negative):其他类预测为其他类(负类判定为负类) FP(False Positive):错将其他类预测为本类 FN(False Negative):本类标签预测为其他类
准确率:所有的预测正确(正类预测为正类,负类预测为负类)的占总的比重。
精确率:指被分类器判定正例中的正样本的比重
召回率:指的是被预测为正例的占总的正例的比重
F1值: F1值就是Precision和Recall的调和平均数,如果只考虑精确度或者只考虑召回率都不能够作为评价一个模型好坏的指标,所以使用F1值来调和两者,兼容到精确度和召回率。 F1值最大值为1,最小值为0,精确度越高越好,召回率越高越好,可以在0~1的这个值域内,F1越大越好。
准确率Accuracy---分类器到底分对了多少? Accuracy = (1+5)/(1+2+1+5) = 0.67
精确率Precision---返回的图片中正确的有多少? Precision = 1/(1+2) = 0.33
召回率Recall---有多少张应该返回的图片没有找到? Recall = 1/(1+1) = 0.5
F1值---Precision与Recall的调和平均 F1score = (2∗0.33∗0.50)/(0.33+0.50) = 0.40
参考:(81条消息) 准确率、精确率、召回率、F1值、ROC/AUC整理笔记f1值计算公式【网络星空】的博客-CSDN博客
(81条消息) 准确率、精确度、召回率以及F1值的理解和作用f1值的意义新手村的一只汪的博客-CSDN博客
(81条消息) 分类模型的评估指标(1)--Accuracy、Precession、Recall、F1score的计算公式_precession recall_Okay灬的博客-CSDN博客
2、说一下CNN
以后更新吧,来不及写了。
3、说一下常见的数据挖掘算法
K-means算法(k均值算法)
算法流程: 1)随机选择k个点作为初始聚类的中心,由这个中心代表各个聚类 2)对任意一个样本,计算其到k个点的距离,将该样本归到距离最近的中心所在的聚类 3)计算聚类的平均值,即将聚类的中心移动到均值处。 4)重复2、3步的迭代,直到聚类的中心不再移动,此时算法收敛,迭代结束。 优点:原理简单、容易实现。 缺点:收敛太慢、算法复杂度高、需先确定K的个数、结果不一定是全局最优,只能保证局部最优。
kNN (k-近邻)算法
计算新样本与训练样本之间的距离,找到距离最近的K个邻居,根据这些邻居所属的类别来判定新样本的类别。如果邻居属于同一个类别,那么新样本也属于这个类;否则,对每个候选类别进行评分,按照某种规则确定新样本的类别。
决策树(ID3算法和C4.5算法)
ID3算法
熵是信息论中的概念,熵度量了事物的不确定性,越不确定的事物,它的熵就越大。当每件事物发生的概率相同时,它们发生的随机性最大,所以它们的熵也就越大。ID3算法就是用信息增益来判别当前节点应该用什么特征来构建决策树。某个特征的信息增益越大表示该特征对数据集的分类的不确定性减少的程度越高,越适合用来分类。 信息增益:构造好的决策树的关键在于如何选择属性。最常用的分类属性选择指标就是信息增益。信息增益用来衡量属性区分训练样例的能力。是指当前熵于两个新群组经过加权平均后的熵之间的差值。信息增益大的属性,其划分自己的纯度高(平均熵值校),分类能力强。
ID3的具体方法是:从根节点开始,对节点计算所有可能的特征的信息增益,选择信息增益最大的特征作为节点的特征,由该特征的不同取值建立子节点;再对子节点递归的调用以上方法,构建决策树;直到所有特征的信息增益均很小或没有特征可以选择为止。最后得到一个决策树。ID3相当于用极大似然估计法进行概率模型的选择。
案例参考:决策树——ID3算法id3决策树算法欧晨eli的博客-CSDN博客
ID3的缺点:
(1) ID3没有考虑连续特征,比如长度,密度都是连续值,无法在ID3运用。这大大限制了ID3的用途; (2)ID3采用信息增益大的特征优先建立决策树的节点,缺点是在相同条件下,取值比较多的特征比取值少的特征信息增益大。比如一个变量有2个值,各为1/2,另一个变量为3个值,各为1/3,其实他们都是完全不确定的变量,但是取3个值的比取2个值的信息增益大; (3) ID3算法对于缺失值的情况没有做考虑 (4) 没有考虑过拟合的问题。
C4.5算法
以信息增益作为划分训练数据集的特征,存在偏向于选择取值较多的特征的问题。使用信息增益比可以对这一问题进行校正。C4.5算法与ID3算法相似,C4.5算法对ID3算法进行了改进,C4.5在生成的过程中,用信息增益比来选择特征。
C4.5算法有如下优点:产生的分类规则易于理解,准确率较高。其缺点是:在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效。
参考:数据挖掘领域十大经典算法数据挖掘算法陈振阳的博客-CSDN博客
SVM(本科接触少,基本等于没学过)
支持向量机(SVM)是一类按监督学习方式对数据进行二元分类的广义线性分类器,其决策边界是对学习样本求解的最大边距超平面,可以将问题化为一个求解凸二次规划的问题。与逻辑回归和神经网络相比,支持向量机,在学习复杂的非线性方程时提供了一种更为清晰,更加强大的方式。
具体来说就是在线性可分时,在原空间寻找两类样本的最优分类超平面。在线性不可分时,加入松弛变量并通过使用非线性映射将低维度输入空间的样本映射到高维度空间使其变为线性可分,这样就可以在该特征空间中寻找最优分类超平面。
参考:机器学习:支持向量机(SVM)_燕双嘤的博客-CSDN博客
参考:数据挖掘领域十大经典算法数据挖掘算法陈振阳的博客-CSDN博客
4、说一下TCN
以后更新一下吧[狗头]
5、说一下傅里叶变换
一个满足某些条件的函数可以表示成三角函数或他们的积分形式的线性组合。
6、说一下深度学习和机器学习的区别和联系
机器学习:使用算法去解析数据,从中学习数据内部分布规律或者数据与数据、数据与标签之间的联系与差异,对新数据进行决定与预测。
深度学习:机器学习的一个子领域,它关心的是参照神经学科的理论构建神经网络,使用反向传播对大量未标注或半结构化的数据进行建模。
7、说一下交叉检验(Cross-Validation)
交叉验证用在数据不是很充足的时候。比如在我日常项目里面,对于普通适中问题,如果数据样本量小于一万条,我们就会采用交叉验证来训练优化选择模型。如果样本大于一万条的话,我们一般随机的把数据分成三份,一份为训练集(Training Set),一份为验证集(Validation Set),最后一份为测试集(Test Set)。用训练集来训练模型,用验证集来评估模型预测的好坏和选择模型及其对应的参数。把最终得到的模型再用于测试集,最终决定使用哪个模型以及对应参数。
交叉验证,顾名思义,就是重复的使用数据,把得到的样本数据进行切分,组合为不同的训练集和测试集,用训练集来训练模型,用测试集来评估模型预测的好坏。
根据切分的方法不同,交叉验证分为下面三种:
第一种是简单交叉验证,所谓的简单,是和其他交叉验证方法相对而言的。首先,我们随机的将样本数据分为两部分(比如: 70%的训练集,30%的测试集),然后用训练集来训练模型,在测试集上验证模型及参数。接着,我们再把样本打乱,重新选择训练集和测试集,继续训练数据和检验模型。最后我们选择损失函数评估最优的模型和参数。
第二种是S折交叉验证(S-Folder Cross Validation)。和第一种方法不同,S折交叉验证会把样本数据随机的分成S份,每次随机的选择S-1份作为训练集,剩下的1份做测试集。当这一轮完成后,重新随机选择S-1份来训练数据。若干轮(小于S)之后,选择损失函数评估最优的模型和参数。
第三种是留一交叉验证(Leave-one-out Cross Validation),它是第二种情况的特例,此时S等于样本数N,这样对于N个样本,每次选择N-1个样本来训练数据,留一个样本来验证模型预测的好坏。此方法主要用于样本量非常少的情况,比如对于普通适中问题,N小于50时,我一般采用留一交叉验证。
参考:(81条消息) 交叉验证(Cross Validation)原理小结_weixin_34411563的博客-CSDN博客
8、说一下过拟合和欠拟合
过拟合:具体表现就是最终模型在训练集上效果好;在测试集上效果差。模型泛化能力弱。 过拟合的原因: 训练数据中噪音干扰过大,使得学习器认为部分噪音是特征从而扰乱学习规则。 建模样本选取有误,例如训练数据太少,抽样方法错误,样本label错误等,导致样本不能代表整体。 模型不合理,或假设成立的条件与实际不符。 特征维度/参数太多,导致模型复杂度太高。 过拟合解决办法: 增加数据,降低模型复杂度,数据降维,dropout层,early stopping ,加正则化项
欠拟合:是指对训练样本的一般性质尚未学好。在训练集及测试集上的表现都不好。 欠拟合的原因 模型复杂度过低,特征量过少 解决办法: 增加特征数,增加模型复杂度,减少正则化系数
9、说一下残差网络
当网络退化时,浅层网络能够达到比深层网络更好的训练效果,这时如果我们把低层的特征传到高层,那么效果应该至少不比浅层的网络效果差
参考:残差网络(Residual Network),残差连接(skip-connect)_HealthScience的博客-CSDN博客
10、说一下如何评估你的机器学习模型的有效性
① 数据集分割的有效性,如何分训练集与测试集(训练集过大,更接近整个数据集,但是由于测试集较小,导致评估结果缺乏稳定性;测试集大了,偏离整个数据集,与根据数据集训练出的模型差距较大,缺乏保真性。把训练样本本身的特有性质当做所有潜在样本都会具有的一般性质,进而导致泛化能力减小,出现“过拟合”的情况。)
② 性能指标(精确率,召回率,F1值)
11、说一下GCN
A是邻接矩阵,是图的神经网络层之间的传递公式,GNN就是研究f应该是怎么样的,其中GNN中的GCN是这样做的:
其中W是需要训练的参数,D是度矩阵,,是单位矩阵。
其实中间的数学原理是最重要的,最开始不是对进行处理,而是对的对称规范化矩阵进行处理,不过这样的计算复杂度还是很高,于是就用切比雪夫多项式的一阶近似得到了最终的传递公式。
这里参考了:图卷积神经网络(GCN)的数学原理详解——谱图理论和傅立叶变换初探哔哩哔哩bilibili
12、说一下1x1的卷积有什么用途
如果卷积的输出输入都只是一个平面,那么1x1卷积核并没有什么意义,它是完全不考虑像素与周边其他像素关系。但卷积的输出输入是长方体,所以1x1卷积实际上是对每个像素点,在不同的channels上进行线性组合(信息整合),且保留了图片的原有平面结构,调控depth,从而完成升维或降维的功能。
可以实现信息的跨通道整合和交互
具有降维和升维的能力,减少网络参数。这里的维度指的是卷积核通道数(厚度),而不改变图片的宽和高。
在保持feature map 尺寸不变(即不损失分辨率)的前提下大幅增加非线性特性,既可以把网络做得很deep,也可以提升网络的表达能力
13、说一下梯度下降算法
批量梯度下降
批量梯度下降法是梯度下降法最原始的形式,它的具体思路是在更新每一参数时都使用所有的样本来进行更新。
优点:全局最优解;易于并行实现; 缺点:当样本数目很多时,训练过程会很慢。
小批量随机
随机梯度下降的思路是在每次迭代时,只使用一个样本,当样本个数很大的时候,随机梯度下降迭代一次的速度要远高于批量梯度下降方法。两者的关系可以这样理解:随机梯度下降方法以损失一部分精确度和增加一定数量的迭代次数为代价,换取了总体的优化效率的提升。增加的迭代次数远远小于样本的数量。如果样本量很大的情况(例如几十万),那么可能只用其中几万条或者几千条的样本,就已经迭代到最优解了。
优点:训练速度快; 缺点:准确度下降,并不是全局最优。
14、说一下梯度爆炸和梯度消失的解决办法
梯度消失和梯度爆炸问题都是因为网络太深,网络权值更新不稳定造成的,本质上是因为梯度反向传播中的连乘效应。
针对梯度爆炸问题,解决方案是引入Gradient Clipping(梯度裁剪)。通过Gradient Clipping,将梯度约束在一个范围内,这样不会使得梯度过大。
15、说一下chatgpt
在大规模数据上进行无监督学习和训练,小规模数据上进行微调。
ChatGPT通过大量无监督预训练和有监督微调实现,并具有在多种任务中泛化能力。
其主要特点有以下几点:
大量数据预训练:模型使用大量文本数据进行预训练,有助于模型学习通用的语言知识;
微调优化:在预训练之后,模型使用有标签数据进行微调,提升特定任务的性能;
高效生成与控制:ChatGPT可以生成连贯、自然且准确的回复,同时提供了生成策略的控制。
在什么领域有十分大的潜力:客户支持(顾问)、教育、语言翻译、新闻自动写作、情感分析
16、说一下空洞卷积
空洞卷积也叫扩张卷积或者膨胀卷积,简单来说就是在卷积核元素之间加入一些空格(零)来扩大卷积核的过程。
空洞卷积主要有三个作用:
1、扩大感受野。但需要明确一点,池化也可以扩大感受野,但空间分辨率降低了,相比之下,空洞卷积可以在扩大感受野的同时不丢失分辨率,且保持像素的相对空间位置不变。(池化就是取出一个区域的代表像素,然后做卷积)简单而言,空洞卷积可以同时控制感受野和分辨率。
2、获取多尺度上下文信息。当多个带有不同卷积扩张率
dilation rate
的空洞卷积核叠加时,不同的感受野会带来多尺度信息,这对于分割任务是非常重要的。3、可以降低计算量,不需要引入额外的参数,如上图空洞卷积示意图所示,实际卷积时只有带有红点的元素真正进行计算。