没有合适的资源?快使用搜索试试~ 我知道了~
首页机器学习算法岗面试知识.pdf
机器学习算法岗面试知识.pdf

作者于2018年夏秋开始备战机器学习算法岗,总结汇总了如此的面试和笔试经验,希望能够对众多童鞋有用。
资源详情
资源评论
资源推荐

(1) 常见面试题:https://mp.weixin.qq.com/s/QchF-SoWvH1E6V0w7uoQhQ
https://mp.weixin.qq.com/s/g13Ap0cuNkZqNDm685QlFQ
https://www.cnblogs.com/helloworld0604/p/9017030.html
(2) 数据增强的常用方式:
Color Jittering
:对颜色的数据增强:图像亮度、饱和度、对比度变化(此处对色彩
抖动的理解不知是否得当);
PCA Jittering
:首先按照
RGB
三个颜色通道计算均值和标准差,再在整个训练集上
计算协方差矩阵,进行特征分解,得到特征向量和特征值,用来做
PCA Jittering
;
Random Scale:尺度变换;
Random Crop
:采用随机图像差值方式,对图像进行裁剪、缩放;
Horizontal/Vertical
Flip:水平/垂直翻转;
Shift:平移变换;
Rotation/Reflection:旋转/仿射变换;
Noise
:高斯噪声、模糊处理;
Label shuffle:类别不平衡数据的增广。
(3) 线性函数的值越接近正无穷,概率值就越接近 1;线性值越接近负无穷,概率值
越接近
0
,这样的模型是逻辑斯蒂回归模型。在深度学习中用到的非线性变换
sigmoid
函数是逻辑斯蒂分布的的特殊形式。
(4) 数据分布(伯努利分布、二项分布等等)
https://blog.csdn.net/michael_r_chang/article/details/39188321
(5) K-means:
K-means 方法的时间复杂度为 O(NKT),N 代表总元素个数,K 代表簇中心个数,T
代表迭代次数。
K-means
算法是一种硬性划分的聚类,即每个数据点唯一地分配给
一个聚类,由于事先不知道实际的聚类情况,因此可能是一种严重的局限。该算法
对初始中心的选取非常敏感,初始中心随机选取,导致结果波动较大,稳定性较差。
同时该算法对噪声数据和孤立点数据较为敏感。该算法通常采用欧式距离作为数据
样本之间的度量方式,导致该算法对球状的簇有比较好的聚类效果,但是很难发现
其他形状的簇。
(6) 在进行 K-means 聚类时,选择距离函数:
邻近度函数:曼哈顿距离。质心:中位数。目标函数:最小化对象到其簇质心的距
离和
邻近度函数:平方欧几里德距离。质心:均值。目标函数:最小化对象到其簇质心
的距离的平方 和
邻近度函数:余弦。质心:均值。最大化对象与其质心的余弦相似度和
邻近度函数:
Bregman
散度。质心:均值。目标函数:最 小化对象到其簇质心的
Bregma n 散度和
(7) 误差与偏差:(借引周志华《机器学习》)
误差(对象是单个模型)是指预测结果与真实值之间的差值。
方差是指,预测值与期望值
(
平均值
)
之间的差值。
偏差则是指真实值与平均值(期望值)之间的差值。都是对单个样本而言,只不过误
差的参照物只有一个,而偏差或偏差的参照物是群体的平均值。
(8) Logistics
回归的详细介绍:

https://blog.csdn.net/louishao/article/details/54813073
https://blog.csdn.net/LiuPeiP_VIPL/article/details/78287598
假设有如下线性拟合方法(
),...,,,(
321 n
xxxxx
为样本的向量化表示):
nn
xwxwxwxwwwx ...
3322110
1) 二项逻辑回归模型是如下条件概率:
)(
e1
e
)|1( xxYP
wx
wx
)(-1
e1
1
)|0( xxYP
wx
2) 设一个事件的几率 Odd,指的是该事件发生的概率与不发生概率的比值。则这里
事件的对数几率为
wx
x
x
xYP
xYP
xYP
xYP
xOdd
)
)(1
)(
log()
)|1(1
)|1(
log()
)|0(
)|1(
log())((log(
我们可以看到,在逻辑斯蒂回归中,输出 Y=1 的对数几率是输入 X 的线性函数。
3)
通过对训练样本的交叉熵损失进行误差最小化
(
详见统计学习
P79)
。得到似然函
数:
N
j
y
j
y
j
jj
xx
1
1
)](1[()]([
对数似然函数:
N
j
wx
jj
N
j
j
j
j
j
N
j
jjjj
j
ewxy
x
x
x
y
xyxywL
1
1
1
)]1log([
))](1log(
)(1
)(
log[
))](1log()1()(log[)(
其中,
y
i
是样本标签。
4) 学习到回归参数后,比较样本实例在两个条件概率的大小。将实例 x 分到概率较
大的那一类。
5)
对于多项
(≥3)
的逻辑回归:
假设离散性随机变量 Y(类别)的取值范围为(1,2,3,...,K),那么多项逻辑回归模型为:
1
1
w
w
k
k
e1
e
)|(
K
k
x
x
xkYP
1
1
w
k
e1
1
)|K(
K
k
x
xYP
这里,
k
w
是针对第 k 类样本的分类学出的参数。
(9)
优化逻辑回归的方法:
梯度下降法;
牛顿法;
BFGS
方法;

(10) Logistic 回归(起到预测作用)有自身的优缺点:
优点:计算代价不高,易于理解和实现
缺点:容易欠拟合,分类精度可能不高
适用数据类型:数值型和标称型
(11) 线性回归:
线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定
量关系的一种统计分析方法,运用十分广泛。回归分析中,只包括一个自变量和一
个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归
分析。如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线
性关系,则称为多元线性回归分析。
(12) 线性回归与逻辑回归的区别:
1
)线性回归要求变量服从正态分布,
logistic
回归对变量分布没有要求。
2
)线性回归要求因变量是连续性数值变量,而
logistic
回归要求因变量是分类型变
量。
3
)线性回归要求自变量和因变量呈线性关系,而
logistic
回归不要求自变量和因变
量呈线性关系
4)logistic 回归是分析因变量取某个值的概率与自变量的关系,而线性回归是直接
分析因变量与自变量的关系
logistic
回归与线性回归实际上有很多相同之处,最大的区别就在于他们的因变量不
同,其他的基本都差不多。正是因为如此,这两种回归可以归于同一个家族,即广
义线性模型。
(13) LR
与
SVM
的异同:
相同点:
(1)LR
和
SVM
都是分类算法。
(2)如果不考虑核函数,LR 和 SVM 都是线性分类算法,也就是说他们的分类决策面
都是线性的。
(3)LR 和 SVM 都是监督学习算法。
(4)LR
和
SVM
都是判别模型。
(5)LR 和 SVM 在学术界和工业界都广为人知并且应用广泛。
不同点:
(1)loss function
不同。
(2)支持向量机只考虑局部的边界线附近的点,而逻辑回归考虑全局(远离的点对边
界线的确定也起作用)。
(3)在解决非线性问题时,支持向量机采用核函数的机制,而 LR 通常不采用核函数
的方法。
(4)线性 SVM 依赖数据表达的距离测度,所以需要对数据先做标准化,LR 不受其影
响。
(5)SVM
的损失函数就自带正则
,
而
LR
必须另外在损失函数上添加正则项!
(14) 深度学习欠拟合:

训练误差和验证误差都很大,这种情况称为欠拟合。出现欠拟合的原因是模型
尚未学习到数据的真实结构。
解决方案:
做特征工程,添加跟多的特征项。
增加模型复杂度,如使用核函数,集成学习方法,深度学习。
(15)
解决过拟合的方法:
模拟过拟合的原因主要有以下几种:
训练数据集样本单一,样本不足。
训练数据中噪声干扰过大。
模型过于复杂。
解决方案:
重新清洗数据;
增加训练数据量;
采用正则化:具体原因详见 L1 和 L2 正则化
Early stopping
:将数据分为训练集和验证集;每个
epoch
结束后(或每
N
个
epoch
后),在验证集上获取测试结果,随着 epoch 的增加,如果在验证集上发现测试误
差上升,则停止训练;将停止之后的权重作为网络的最终参数。缺点:没有采取不
同的方式来解决优化损失函数和降低方差这两个问题,而是用一种方法同时解决两
个问题 ,结果就是要考虑的东西变得更复杂。
采用 Dropout 方法:每次训练时,都删除一部分的神经元。在剩下的神经元上正向
和反向更新权重和偏向。Dropout 利用这个原理,相当于在不同的神经网络上进行
训练,这样就减少了神经元之间的依赖性,使神经网络能学习到与其他神经元之间
的更加健壮 robust 的特征。
Batch normalization
:
BN
首先是把所有的
samples
的统计分布标准化,降低了
batch
内不同样本的差异性,然后又允许
batch
内的各个
samples
有各自的统计分布。
BN
最大的优点为允许网络使用较大的学习速率进行训练,加快网络的训练速度(减少
epoch 次数),提升效果。
缺点:那就是在训练时,因为要对数据进行
scale
,所以有很多矩阵乘法,导致训练
时间过长。
(为什么使用 Batch Normalization
https://blog.csdn.net/xwd18280820053/article/details/76026523)
(16) L1
正则和
L2
正则:在损失函数后面加上
L1
和
L2
范数
(
我个人理解为拉格
朗日算子)
Lp 范数表示如下:
p
n
i
p
i
w
1
1
||
正则化通过降低模型的复杂性, 达到避免过拟合的问题。使用
L1
正则化的模型建
叫做
Lasso
回归,使用
L2
正则化的模型叫做
Ridge
回归(岭回归)。
https://www.jianshu.com/p/a47c46153326
https://blog.csdn.net/jinping_shi/article/details/52433975

(1) L1 正则化可以产生稀疏权值矩阵,即产生一个稀疏模型,可以用于特征选择(因
为很多特征是没有贡献的,或者贡献很小。),它的优良性质是能产生稀疏性,导
致
W
中许多项变成零。
(2) L2 正则化可以防止模型过拟合(L2 使得模型的解偏向于 norm 较小的 W,小的
权重的情况下,变量一些随机的变化不会对神经网络的模型造成太大影响。通过限
制
W
的
norm
的大小实现了对模型空间的限制,从而在一定程度上避免了
overfitting);一定程度上,L1 也可以防止过拟合。
(17) L1
与
L2
的不同:
L1
正则化会导致参数值变为
0
,
L2
只会使得参数值减小;
L1 的主要作用是数据稀疏和特征选择,L2 的主要作用是提升模型的泛化能力
和防止过拟合。
L1
得到稀疏的权值,
L2
得到平滑的权值;
在机器学习中,
L2
使得目标函数变为凸函数,梯度下降法和
L-BFGS
都能收敛
到全局最优解。在权衡拟合能力和泛化能力对整个模型的影响,L2 越大,对
参数值惩罚越大,泛化能力越好。
L1 减少一个常量(η,λ,n 根据输入都是固定的,sgn(w)为 1 或-1,故为
常量),而 L2 减少的是权重的一个固定的比例;如果权重本身很大的话,L2
减少的比 L1 减少的多,若权重小,则 L1 减少的更多。
例题:如果在
Logistic Regression
中加入
L1
和
L2
,会怎样?
会得到更准确的结果。
(18) 数据归一化:
作用: 归一化是归纳统一样本的统计分布性,便于计算。并且在神经网络中加快学
习速率。
数据归一化的方法:
线性函数归一化
(Min-Max scaling)
0 均值标准化(Z-score standardization)
均值绝对偏差标准化
对数变换;
(19)
熵
(
信息熵
)
:
1) 熵的计算公式为:
)(log)()(H
1
i
n
i
i
xpxpx
在这里,
)p(x
i
表示随机事件 X 发生为
i
x
的概率,log 是以 2 为底的对数。
2) 熵的性质:
对称性;
确定性;
非负性;
可加性。
3)
熵的理解:
剩余61页未读,继续阅读















安全验证
文档复制为VIP权益,开通VIP直接复制

评论1