logo资料库

机器学习、深度学习面试笔试题300+.pdf

第1页 / 共196页
第2页 / 共196页
第3页 / 共196页
第4页 / 共196页
第5页 / 共196页
第6页 / 共196页
第7页 / 共196页
第8页 / 共196页
资料共196页,剩余部分请下载后查看
机器学习、深度学习面试题合集
1. 请简要介绍下 SVM。 SVM,全称是 support vector machine,中文名叫支持向量机。SVM 是一个 面向数据的分类算法,它的目标是为确定一个分类超平面,从而将不同的数据 分隔开。 扩展:支持向量机学习方法包括构建由简至繁的模型:线性可分支持向量机、 线性支持向量机及非线性支持向量机。当训练数据线性可分时,通过硬间隔最 大化,学习一个线性的分类器,即线性可分支持向量机,又称为硬间隔支持向 量机;当训练数据近似线性可分时,通过软间隔最大化,也学习一个线性的分 类器,即线性支持向量机,又称为软间隔支持向量机;当训练数据线性不可分 时,通过使用核技巧及软间隔最大化,学习非线性支持向量机。 2. 请简要介绍下 Tensorflow 的计算图。 Tensorflow 是一个通过计算图的形式来表述计算的编程系统,计算图也叫数据 流图,可以把计算图看做是一种有向图,Tensorflow 中的每一个计算都是计算 图上的一个节点,而节点之间的边描述了计算之间的依赖关系。
3. 请问 GBDT 和 XGBoost 的区别是什么? XGBoost 类似于 GBDT 的优化版,不论是精度还是效率上都有了提升。与 GBDT 相比,具体的优点有: 1.损失函数是用泰勒展式二项逼近,而不是像 GBDT 里的就是一阶导数; 2.对树的结构进行了正则化约束,防止模型过度复杂,降低了过拟合的可能 性; 3.节点分裂的方式不同,GBDT 是用的基尼系数,XGBoost 是经过优化推导后 的。 4. 在 k-means 或 kNN,我们是用欧氏距离来计算最近的邻居之间的距离。 为什么不用曼哈顿距离? 曼哈顿距离只计算水平或垂直距离,有维度的限制。另一方面,欧氏距离可用 于任何空间的距离计算问题。因为,数据点可以存在于任何空间,欧氏距离是 更可行的选择。例如:想象一下国际象棋棋盘,象或车所做的移动是由曼哈顿 距离计算的,因为它们是在各自的水平和垂直方向做的运动。 5. 简单说说特征工程。
6. 关于 LR 把 LR 从头到脚都给讲一遍。建模,现场数学推导,每种解法的原理,正则 化,LR 和 maxent 模型啥关系,LR 为啥比线性回归好。有不少会背答案的 人,问逻辑细节就糊涂了。原理都会? 那就问工程,并行化怎么做,有几种并 行化方式,读过哪些开源的实现。还会,那就准备收了吧,顺便逼问 LR 模型 发展历史。 7. overfitting 怎么解决? dropout、regularization、batch normalization
8. LR 和 SVM 的联系与区别? 1、LR 和 SVM 都可以处理分类问题,且一般都用于处理线性二分类问题 (在改进的情况下可以处理多分类问题) 2、两个方法都可以增加不同的正则化项,如 L1、L2 等等。所以在很多实 验中,两种算法的结果是很接近的。 区别: 1、LR 是参数模型,SVM 是非参数模型。 2、从目标函数来看,区别在于逻辑回归采用的是 Logistical Loss,SVM 采用的是 hinge loss.这两个损失函数的目的都是增加对分类影响较大的数 据点的权重,减少与分类关系较小的数据点的权重。 3、SVM 的处理方法是只考虑 Support Vectors,也就是和分类最相关的 少数点,去学习分类器。而逻辑回归通过非线性映射,大大减小了离分类 平面较远的点的权重,相对提升了与分类最相关的数据点的权重。 4、逻辑回归相对来说模型更简单,好理解,特别是大规模线性分类时比较 方便。而 SVM 的理解和优化相对来说复杂一些,SVM 转化为对偶问题后, 分类只需要计算与少数几个支持向量的距离,这个在进行复杂核函数计算时 优势很明显,能够大大简化模型和计算。 5、Logic 能做的 SVM 能做,但可能在准确率上有问题,SVM 能做的 Logic 有的做不了。
9. LR 与线性回归的区别与联系? 逻辑回归和线性回归首先都是广义的线性回归, 其次经典线性模型的优化目标函数是最小二乘,而逻辑回归则是似然函 数, 另外线性回归在整个实数域范围内进行预测,敏感度一致,而分类范围, 需要在[0,1]。逻辑回归就是一种减小预测范围,将预测值限定为[0,1]间的 一种回归模型,因而对于这类问题来说,逻辑回归的鲁棒性比线性回归的 要好。 逻辑回归的模型本质上是一个线性回归模型,逻辑回归都是以线性 回归为理论支持的。但线性回归模型无法做到 sigmoid 的非线性形式, sigmoid 可以轻松处理 0/1 分类问题。 10. 为什么 XGBoost 要用泰勒展开,优势在哪里? XGBoost 使用了一阶和二阶偏导, 二阶导数有利于梯度下降的更快更准. 使用 泰勒展开取得二阶倒数形式, 可以在不选定损失函数具体形式的情况下用于算 法优化分析.本质上也就把损失函数的选取和模型算法优化/参数选择分开了. 这 种去耦合增加了 XGBoost 的适用性。 11. XGBoost 如何寻找最优特征?是又放回还是无放回的呢? XGBoost 在训练的过程中给出各个特征的评分,从而表明每个特征对模型训练 的重要性.。XGBoost 利用梯度优化模型算法, 样本是不放回的(想象一个样本
连续重复抽出,梯度来回踏步会不会高兴)。但 XGBoost 支持子采样, 也就是每 轮计算可以不使用全部样本。 12. 谈谈判别式模型和生成式模型? 判别方法:由数据直接学习决策函数 Y = f(X),或者由条件分布概率 P (Y|X)作为预测模型,即判别模型。 生成方法:由数据学习联合概率密度分布函数 P(X,Y),然后求出条件概率分 布 P(Y|X)作为预测的模型,即生成模型。 由生成模型可以得到判别模型,但由判别模型得不到生成模型。 常见判别模型有:K 近邻、SVM、决策树、感知机、线性判别分析(LDA)、 线性回归、传统的神经网络、逻辑斯蒂回归、boosting、条件随机场,常见的 生成模型有:朴素贝叶斯、隐马尔可夫模型、高斯混合模型、文档主题生成模 型(LDA)、限制玻尔兹曼机 13. L1 和 L2 的区别。 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 范数可以防止过拟合,提升模型的泛化能力。 14. L1 和 L2 正则先验分别服从什么分布 ? 面试中遇到的,L1 和 L2 正则先验分别服从什么分布,L1 是拉普拉斯分布,L2 是高斯分布。 15. CNN 最成功的应用是在 CV,那为什么 NLP 和 Speech 的很多问题也可 以用 CNN 解出来?为什么 AlphaGo 里也用了 CNN?这几个不相关的问 题的相似性在哪里?CNN 通过什么手段抓住了这个共性? 以上几个不相关问题的相关性在于,都存在局部与整体的关系,由低层次的特 征经过组合,组成高层次的特征,并且得到不同特征之间的空间相关性。如下 图:低层次的直线/曲线等特征,组合成为不同的形状,最后得到汽车的表 示。
分享到:
收藏