机器学习、深度学习面试题合集。
1.介绍SVM
2. 介绍Tensorflow的计算图
3. GBDT、XGBoost的区别
XGBoost的优点:
- 损失函数用泰勒二项逼近,而GBDT用一阶导数
- 对树结构进行正则化约束,防止模型过度复杂,降低过拟合
- 节点分裂方式不同,GBDT用的基尼系数
4.k-means或KNN计算与最近邻居的距离用欧氏距离,为什么不用曼哈顿距离?
曼哈顿距离只计算水平或垂直距离,有维数限制。欧氏距离可计算任何空间的距离计算问题。
5. 特征工程
6. LR
建模、数据推导
正则化
LR和maxent模型关系
LR为什么比线性回归好
并行化怎么做,几种并行化方式
7. overfitting怎么解决
dropout、regularization、batch normalization
8.LR和SVM的联系与区别?
联系:
- LR和SVM都可处理分类问题,且一般都处理线性二分类 。
- 都增加不同的正则化项,如L1、L2,实验中二者效果接近。
区别:
- LR参数模型,SVM非参数模型
- 从目标函数看,LR逻辑回归采用Logistical Loss,SVM采用hinge loss。
- SVM处理方法只考虑Support Vectors,即和分类最相关的少数点去学习分类器。LR通过非线性映射,大大减少离分类平面较远的点的权重,提升与分类最相关的数据点的权重。
- LR适用于大规模线性分类,SVM转为对偶问题后,分类只需计算与少数几个支持向量的距离,进行复杂核函数计算时优势明显。
9. LR与线性回归的区别与联系?
- 逻辑回归、线性回归均是广义线性回归
- 经典线性模型优化目标函数是最小二乘,而逻辑回归是似然函数
- 线性回归预测值在R内,分类范围[0, 1]。逻辑回归是减少预测范围,将预测值限定为[0, 1]之间的回归模型。LR鲁棒性更好。
10.XGBoost用泰勒展开原因
XGBoost使用一阶和二阶偏导,二阶导数有利于梯度下降更快更准。泰勒展开到二阶导数形式,可以在不选定损失函数具体形式的情况下用于算法优化分析。本质上把损失函数的选取和模型算法优化/参数选取分开,去耦合增加XGBoost的适用性。
11.XGBoost如何寻找最优特征?
XGBoost训练过程中给出每个特征的评分,表示每个特征对模型训练的重要性。
利用梯度优化模型,样本不放回,但XGBoost支持子采样,即每轮计算可以不使用全部样本。
12. 判别模型、生成模型
判别方法:直接学习决策函数 Y = f(X), 或者由条件分布概率P(Y|X)作为预测模型,即判别模型。
生成方法:学习联合概率密度分布函数P(X, Y),然后求出P(Y|X)作为预测模型,即生成模型。
生成可得判别,判别不可得生成。
1 | 常见判别模型: |
13. L1和L2 的区别
L1范数(L1 norm)是指向量中各个元素绝对值之和,即”稀疏规则算子”
L1范数: |x1| + |x2| + … + |xn|
L2范数: (x12 + x22 + … + xn2)1/2
Lp范数: (x1p + x2p + …. + xnp )1/p
1 | 在SVM学习过程中,L1范数是一种对成本函数求解最优的过程,L1范数正则化通过向成本函数中添加L1范数,使得学习的结果满足稀疏化,从而方便提取特征. |
14. L1和L2正则先验分别服从什么分布?
L1是拉普拉斯分布,L2是高斯分布.
15.CNN最成功应用在CV,为什么NLP和Speech的很多问题也可以用CNN解决?
存在局部与整体的关系,由低层次的特征经过组合,组成高层次的特征,并且得到不同特征之间的空间相关性。
CNN获取此共性的四方法:
局部连接:使网络可以提取数据的局部特征
权值共享:降低网络的训练难度,一个Filter只提取一个特征,在整个图片/文本中进行卷积。
池化操作和多层次结构:实现了数据降维,将低维特征组合成高维特征,从而对整个图片/文本进行表示。
如果每个点的处理使用相同的Filter,则为全卷积,否则为Local-Conv。
16. LSTM结构为什么比RNN好?
推导 forget gate, input gate, cell state, hidden information 等的变化;
当前的 cell informaton 是通过 input gate 控制之后叠加的, RNN 是叠乘,因此 LSTM 可以防止梯度消失或者爆炸。
17.朴素贝叶斯为什么“朴素”
假定所有特征作用相同,且独立。
18. 机器学习为何对数据进行归一化?
归一化加快了梯度下降求最优解的速度
归一化可能提高精度
归一化类型
线性归一化
x‘ = ( x - min(x) ) / ( max(x) - min(x) )
标准差标准化
经过处理的数据符合标准正态分布,转换函数为:
x* = (x - μ ) / σ
非线性归一化
用于数据分化比较大的场景,通过数学函数将原始值进行映射,包括log、正切、指数等。
19. 完整机器学习项目流程
抽象为数学问题
获取数据
数据觉得机器学习结果的上限,而算法只是尽可能逼近这个上限。
数据预处理与特征选择
归一化、离散化、因子化、缺失值处理、去除共线性
特征有效性分析:相关系数、卡方检验、平均互信息、条件熵、后验概率、逻辑回归权重等方法
训练模型与调优
真正考验水平的是调整这些算法的(超)参数,需要对算法的原理有深入的理解。
模型诊断
确定模型调优的方向与思路,需要对模型进行诊断。
过拟合、欠拟合判断
误差分析
模型融合
工程上,提升算法准确度方法是分别在模型的前端(特征清洗和预处理,不同的采样模式)与后端(模型融合)上下功夫。
上线运行
20.hash冲突及解决
21.解决梯度消失和梯度膨胀?
梯度消失
根据链式法则,如果每一层神经元对上一层的输出的偏导乘上权重结果都小于1 的话,那么即使这个结果是 0.99,在经过足够多层传播之后,误差对输入层的偏导会趋于 0。
可以采用 ReLU 激活函数有效的解决梯度消失的情况。梯度膨胀
根据链式法则,如果每一层神经元对上一层的输出的偏导乘上权重结果都大于1 的话,在经过足够多层传播之后,误差对输入层的偏导会趋于无穷大。
可以通过激活函数来解决。
22.CRF相比HMM和MEMM模型的优势
CRF, HMM(隐马模型), MEMM(最大熵隐马模型)都常用来做序列标注的建模 。
HMM最大缺点在于输出独立性假设,导致不考虑上下文特征,限制了特征选择。
MEMM解决HMM问题,可任意选择特征。但每个节点都要归一化,所以只能找到局部最优值,同时也带来了标记偏见的问题,即凡是训练语料中未出现的情况全都忽略掉。
CRF对所有特征进行全局归一化,可求得全局最优值。
23.有监督/无监督
有监督:LR、SVM、BP、RF、GBDT
无监督:KMeans、DL
24.正则化
针对过拟合提出,求解模型最优的一般是优化最小的经验风险,现在在该经验风险上加入模型复杂度这一项(正则化项是模型参数向量的范数),并使用一个 rate 比率来权衡模型复杂度与以往经验风险的权重。
25.协方差和相关性的区别
相关性是协方差的标准化格式。
26.线性分类器与非线性分类器的区别以及优劣
如果模型是参数的线性函数,并且存在线性分类面,那么就是线性分类器,否则不是。
1 | 常见的线性分类器有: LR,贝叶斯分类,单层感知机、线性回归。 |
27.各种存储结构从运行速度、存储效率和适用场合
等方面进行简要地分析。
28.分布式数据库
29.贝叶斯定理
30.关联规则发现
31. 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务? (数据预处理)
32.数据预处理方法包括A 变量代换 B 离散化 C 聚集
33.KDD
数据挖掘与知识发现
34.当不知道数据所带标签时,可以使用哪种技术促使带同类标签的数据与带其他标签的数据相分离? (聚类)
35.预测建模
36. 特征选择的标准方法A 嵌入 B 过滤 C 包装 D 抽样
37.sigmoid 激活函数
常用的非线性激活函数有 sigmoid、 tanh、 relu 等等,前两者 sigmoid/tanh比较常见于全连接层,后者 relu 常见于卷积层。
38.卷积
39.CNN的池化pool层
池化,即取区域平均或最大。
40. 生成对抗网络GAN
GAN 之所以是对抗的,是因为 GAN 的内部是竞争关系,
一方叫 generator,它的主要工作是生成图片,并且尽量使得其看上去是来自于训练样本的。另一
方是 discriminator,其目标是判断输入图片是否属于真实训练样本。
更直白的讲,将 generator 想象成假币制造商,而 discriminator 是警察。generator 目的是尽可能把假币造的跟真的一样,从而能够骗过discriminator,即生成样本并使它看上去好像来自于真实训练样本一样。
41.哪些机器学习算法不需要归一化
概率模型不需要归一化, 因为它们不关心变量的值,而是关心变量的分布和变量之间的条件概率,如决策树、 RF。
而像 Adaboost、 GBDT、 XGBoost、SVM、 LR、 KNN、 KMeans 之类的最优化问题就需要归一化。
42.梯度下降
回归在数学上来说是给定一个点集,能够用一条曲线去拟合之,如果这个曲线是一条直线,那就被称为线性回归,如果曲线是一条二次曲线,就被称为二次回归,回归还有很多的变种,如 locally weighted 回归, logistic 回归。
43.梯度下降法并不是下降最快的方向
只是目标函数在当前的点的切平面(当然高维问题不能叫平面)上下降最快的方向。
44.随机梯度下降法的问题和挑战?
困难:
梯度计算
目标函数经常是求和形式,样本量极大时,计算耗时。
学习率的选择
45.最小二乘法
最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。
46.Python生成随机数
random
47.常见的损失函数
L(Y, f(x))
(1)0-1损失函数
(2)平方损失函数
(3)绝对损失函数
(4)对数损失函数
48.Logistics回归
逻辑回归目的是从特征学习出一个 0/1 分类模型,而这个模型是将特性的线性组合作为自变量,由于自变量的取值范围是负无穷到正无穷。因此,使用logistic 函数(或称作 sigmoid 函数)将自变量映射到(0,1)上,映射后的值被认为是属于 y=1 的概率。
49. HashMap与HashTable区别
HashTable 的应用非常广泛, HashMap 是新框架中用来代替 HashTable 的类,也就是说建议使用 HashMap,不要使用 HashTable。
50.正负样本数据量不等
51.稠密矩阵乘法效率
53. SVM分类间隔
54.在HMM中,如果已知观察序列和产生观察序列的状态序列,那么可用以下哪种方法直接进行参数估计( D极大似然估计 )
EM 算法: 只有观测序列,无状态序列时来学习模型参数,即 Baum-Welch算法
维特比算法: 用动态规划解决 HMM 的预测问题,不是参数估计
前向后向算法:用来算概率
极大似然估计:即观测序列和相应的状态序列都存在时的监督学习算法,用来估计参数
注意的是在给定观测序列和对应的状态序列估计模型参数,可以利用极大似然估计。如果给定观测序列,没有对应的状态序列,才用 EM,将状态序列看作不可测的隐数据。
55.Naive Bayesian( NB)分类模型时,将训练数据
的两个维度重复
模型效果相比无重复特征的情况下精确度会降低。
当两列特征高度相关时,无法用两列特征相同时所得到的结论来分析问题。
1 | NB 的核心在于它假设向量的所有分量之间是独立的。 |
56.文本分类
分类:决策树、SVM、KNN
聚类:Kmeans
57.一组数据的协方差矩阵P
58. Kmeans的复杂度
时间复杂度: O(tKmn),其中, t 为迭代次数, K 为簇的数目, m 为记录数, n为维数
空间复杂度: O((m+K)n),其中, K 为簇的数目, m 为记录数, n 为维数。
59.逻辑回归、SVM
Logit 回归目标函数是最小化后验概率, Logit 回归可以用于预测事件发生概率的大小
SVM 目标是结构风险最小化, SVM 可以有效避免模型过拟合。
60.输出特征大小
输入图片大小为 200×200,依次经过一层卷积( kernel size 5×5,padding 1, stride 2), pooling( kernel size 3×3, padding 0,stride 1),又一层卷积( kernel size 3×3, padding 1, stride 1)之后,输出特征图大小为:()
计算尺寸不被整除只在 GoogLeNet 中遇到过。卷积向下取整,池化向上取整。
本题 ( 200-5+21) /2+1 为 99.5,取 99
( 99-3) /1+1 为 97
( 97-3+21) /1+1 为 97
67.标准化与归一化的区别
标准化是依照特征矩阵的列处理数据,其通过求 z-score 的方法,将样本的特征值转换到同一量纲下。
归一化是依照特征矩阵的行处理数据,其目的在于样本向量在点乘运算或其他核函数计算相似性时,拥有统一的标准,也就是说都转化为“单位向量”。
特征向量的缺失值处理:
1.缺失值较多.直接将该特征舍弃掉,否则可能反倒会带入较大的 noise,对结果造成不良影响。
2.缺失值较少,其余的特征缺失值都在 10%以内,我们可以采取很多的方式来处理:
- 把 NaN 直接作为一个特征,假设用 0 表示;
- 用均值填充;
- 用随机森林等算法预测填充
发布时间: 2020-03-28
最后更新: 2020-03-28
本文链接: https://juoyo.github.io/posts/f02ee159.html
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!