第1章 特征工程

1、为什么需要对数值类型的特征做归一化?

(1)消除量纲,将所有特征统一到一个大致相同的区间范围,使不同指标之间具由可比性;
(2)可以加快梯度下降收敛的速度,归一化后让等高线的分布更加均匀,类似于一个圆,减少求解过程中参数寻优的震荡,更加笔直的找到最优解。

常用的归一化方式有两种:
(1)线性函数归一化(min-max scaling):
x n o m = X − X m i n X m a x − X m i n x_{nom} = \frac{X-X_{min}}{X_{max}-X_{min}} xnom​=Xmax​−Xmin​X−Xmin​​
将数映射到[0,1]之间,实现对原始数据的等比缩放。但存在量纲,故此方式仅适用于数据不符合正态分布、不涉及距离度量、协方差计算的时候,例如图像处理RGB转化为[0 255]范围。

(2)零均值归一化(z-score normalization):
z = x − μ σ z = \frac{x-\mu}{\sigma} z=σx−μ​
其中 μ \mu μ为均值, σ \sigma σ为方差,使特征的均值变为0,方差变为1。将有量纲的表达式变为无量纲的表达式,适用于分类、聚类算法中,需要使用距离来度量相似性或PCA进行降维的时候。

注:决策树模型不适合归一化,它使用的信息增益比跟特征是否归一化无关。

2、怎样处理类别型特征?

类别特征是只能在有限选项内取值的特征,通常以字符串形式输入。故除决策树外,其余模型使用前需要将其转化为数值型特征才能处理。

(1)序号编码(Ordinal Encoding)
使用具有大小关系的数值ID,来处理类别间具有大小关系的数据。例如,低、中、高,会用1、2、3表示。

(2)独热编码(One-hot Encoding)
使用稀疏向量,来处理类别间不具有大小关系的特征。例如,红、黄、蓝用(1,0,0)、(0,1,0)、(0,0,1)。
注意:(1)使用稀疏向量来节省空间(2)配合特征选择来降低维度

(3)二进制编码(Binary Encoding)
是对One-hot的改进,先用序号编码给每个类别赋予一个类别ID,然后将类别ID对应的二进制编码作为结果。
实际上:利用二进制对ID进行哈希映射,最终得到0/1特征向量,且维数少于独热编码,节省空间。

3、什么是组合特征?如何处理高维组合特征?

为提高复杂关系拟合能力,将一阶离散特征两两组合,构成高阶组合特征。
对于高维组合特征可能会面临学习参数规模过大问题,一种处理方式是将组合前的各个特征用更小的低维特征向量来表示,然后用这个低维向量组合特征。(类似于矩阵分解)

4、怎样有效地找到组合特征?

基于决策树的特征组合寻找。
其决策树可采用梯度提升决策树,思想是每次都在之前构建的决策树的残差上构建下一棵决策树。

5、有哪些文本表示模型?它们各有什么优缺点?

6、在图像分类任务中,训练数据不足会带来什么问题?如何缓解数据量不足带来的问题?

数据量不足可能会产生过拟合现象,模型在测试集上的泛化效果不强。
处理方式:
(1)基于模型的方法,采用降低过拟合风险的措施,例如简化模型、正则化等。
(2)基于数据的方法,进行数据扩充(Data Augmentaton),即根据一些先验知识,在保持特定信息的前提下,对原始数据进行适当变换以达到扩充数据集的效果。例如,对图像空间进行变化。对图像进行特征提取后再其特征空间内进行变化,利用通用的数据扩充或上采样技术。借助已有的其他模型或数据进行迁移学习。

7、Word2Vec是如何工作的?它和隐狄利克雷模型有什么区别与联系?


* 补充

8、

第2章 模型评估

1、准确率的局限

2、精确率与召回率的权衡

3、平方根误差的“意外”?

4、什么是ROC曲线?

5、如何绘制ROC曲线?

6、如何计算AUC?

7、ROC曲线相比P-R曲线有什么特点?

8、为什么在一些场景中要使用余弦相似度而不是欧氏距离?

(1)欧氏距离体现数值上的绝对差异,而余弦相似度体现方向上的相对差异。
(2)欧式距离的数值受维度的影响,范围不固定。余弦相似度更关注相对差异,即向量之间的角度关系。不论是在高维还是低维空间,依然保持“相同时为1,正交时为0,相反时为-1”的性质。
(3)例如,用户A(1,0)和用户B(0,1),采用欧氏距离会很小,采用余弦相似度会很大。如果想要表示用户之间的相对差异时,余弦相似度会更好。
再比如,用户A(1,10)和用户(1,100),采用欧氏距离会很大,采用余弦距离会很近。如果更关注数值绝对差异,使用欧氏距离会更好。

9、余弦距离是否是一个严格定的的距离?

10、为什么要进行在线A/B测试?

11、如何进行线上A/B测试?

12、如何划分实验组和对照组?

13、模型评估过程中的验证方法及其优缺点?

14、自助法采样在极限情况下会有多少数据从未被选择过?

15、超参数有哪些调优方法?

16、过拟合和欠拟合具体是指什么现象?

过拟合是指模型对于训练数据拟合呈过当的情况,反映到评估指标上,就是
模型在训练集上的表现很好,但在测试集和新数据上的表现较差。欠拟合指的是
模型在训练和预测时表现都不好的情况

17、能否说出几种降低过拟合和欠拟合风险的方法?

一、降低过拟合风险的方法

1、从数据入手,获得更多的训练数据。因为更多的样本能够让模型学习到更多更有效的特征,减小噪声的影响。直接增加实验数据一般是很困难的,但是可以通过一定的规则来扩充训练数据。比如,在图像分类的问题上,可以通过图像的平移、旋转、缩放等方式扩充数据;更进一步地,可以使用生成式对抗网络来合成大量的新训练数据。

2、降低模型复杂度。在数据较少时,模型过于复杂是产生过拟合的主要因素,适当降低模型复杂度可以避免模型拟合过多的采样噪声。

3、正则化方法。给模型的参数加上一定的正则约束,比如将权值的大小加入到损失函数中。一般设置惩罚系数为(0.01、0.001、0.0001)。

4、集成学习方法。集成学习是把多个模型集成在一起,来降低单一模型的过拟合风险,如Bagging方法。

二、降低欠拟合风险的方法

1、添加新特征。当特征不足或者现有特征与样本标签的相关性不强时,模型容易出现欠拟合。通过挖掘“上下文特征”“ID类特征”“组合特征”等新的特征,往往能够取得更好的效果。在深度学习潮流中,有很多模型可以帮助完成特征工程,如因子分解机、梯度提升决策树、Deep-crossing等都可以成为丰富特征的方法。

2、增加模型复杂度。 简单模型的学习能力较差,通过增加模型的复杂度可以使模型拥有更强的拟合能力。 例如,在线性模型中添加高次项,在神经网络模型中增加网络层数或神经元个数等。

3、减小正则化系数。正则化是用来防止过拟合的,但当模型出现欠拟合现象时,则需要有针对性地减小正则化系数。


* 补充

18、

第3章 经典算法

1、线性回归

(1)机器学习中有显示解的模型是哪个?

线性回归

2、逻辑回归

3、决策树

决策树是一种自上而下,对样本数据进行树形分类的过程,由结点和有向边组成。结点分为内部结点和叶节点,其中每个内部结点表示一个特征或属性,叶结点表示类别。常被用于分类问题和回归问题。

(1)决策树有哪些启发函数?

从若干不同的决策树中选取最优的决策树是一个NP完全问题,因此长采用启发式学习的方法去构建一颗满足启发式条件的决策树。
常用的决策树算法有ID3(最大信息增益)、C4.5(最大信息增益比)、CART(最大基尼指数)。

ID3:
(1)采用信息增益作为评价指标,会倾向于取值较多的特征。信息增益反映的是给定条件以后不确定性减少的程度,特征取值越多就意味着确定性越高,条件熵越小,信息增益越大。但容易产生过拟合现象,导致泛化能力弱。
(2)ID3只能处理离散型变量。可以再每个节点上产生出多叉分支,且每个特征在层级之间不会复用。
(3)ID3对样本特征缺失值比较敏感。
(4)ID3通过剪枝来权衡树的准确性与泛化能力。

C4.5:
(1)是对ID3进行的优化,引入信息增益比,一定程度上对取值比较多的特征进行惩罚,避免ID3出现过拟合的特性,提升决策树的泛化能力。
(2)C4.5可以处理连续型变量。通过对数据排序之后找到类别不同的分割线作为切分点,根据切分点把连续属性转换为布尔型,从而将连续型变量转换为多个取值区间的离散型变量。可以再每个节点上产生出多叉分支,且每个特征在层级之间不会复用。
(3)C4.5对样本特征缺失值可以处理。
(4)C4.5通过剪枝来权衡树的泛化能力。

CART:
(1)分类回归树(Classification and Regression Tree),不仅可以用于分类,也可以用于回归任务。
(2)CART在构建时每次都会对特征进行二值划分,因此可以很好地适用于连续型变量。CART每个结点只会产生出两个分支,因此最后会形成一颗二叉树,且每个特征可以重复使用。
(3)CART对样本特征缺失值可以处理。
(4)CART直接利用全部数据发现所有可能的树结构进行对比。

(2)如何对决策树进行剪枝?

4、SVM

(1)在空间上线性可分的两类点,分别向SVM分类的超平面上做投影,这些点在超平面上的投影任然线性可分吗?

对于任意线性可分的两组点,它们在SVM分类的超平面上的投影 都是线性不可分的。

方法一: 反证法
使用反证法来证明,若有两组线性可分的点,在超平面上投影和仍然线性可分。那么,可以找到一个更优的超平面将原来的两组点分割开来,但当投影到该超平面时,可以发现投影上的点不能线性分离。(前提SVM仅依赖于支持向量)

方法二: 超平面分离定理(Separating Hyperplane Theorem, SHT)
对于不想交的两个凸集,存在一个超平面,将两个凸集分离。对于二维的情况,两个凸集间距离最短两点连线的中垂线就是一个将它们分离的超平面。

(2)是否存在一组参数使SVM训练误差为0?

(3)训练误差为0的SVM分类器一定存在吗?

(4)加入松弛变量的SVM的训练误差可以为0吗?

(5)线性回归和逻辑回归的区别是什么?

区别:
(1)线性回归处理回归问题,逻辑回归处理分类问题。
(2)逻辑回归的因变量取值是一个二元分布,给定自变量和超参数后,模型学习得到的是因变量的期望,基于此期望来处理预测分类问题。线性回归中求解的是多项式,假设预测模型可以用来近似真实模型,目标便是让预测模型与真实模型之间的误差最小,使用此方式来处理回归问题。
(3)逻辑回归中的因变量是离散的,线性回归中的因变量是连续的。
相同:
(1)二者都使用了极大似然估计来对训练样本建模。线性回归使用最小二乘法,实际上就是在自变量与超参数确定,因变量y服从正态分布的假设下,使用极大似然估计的一种简化。而逻辑回归中通过似然函数的学习来得到最佳的参数。
(2)在求超参数的过程中,都是用梯度下降法。

(6)当使用逻辑回归处理多标签的分类问题时,有哪些常见做法,分别应用于哪些场景,它们之间又有怎样的关系?

5、softmax回归




具体的softmax操作,是将 o o o里中的第i个元素做指数再去除以所有的 o o o中元素做指数后求和。

一文详解Softmax函数

(1)softmax(归一化指数函数)是什么?有什么作用?

softmax回归是一个多类分类模型,logistic回归相当于是softmax回归的一个特例。

它的作用是将一个序列,变成概率的形式:

转化为概率的形式后可以保证:(1)所有的值都是 [0, 1] 之间的(因为概率必须是 [0, 1]);(2)所有的值加起来等于 1。

转化成概率的好处:(1)概率非负数;(2)概率之和为1。

(2)交叉熵用来做什么?

交叉熵常用来衡量两个概率的区别 H ( p , q ) = ∑ i − p i l o g ( q i ) H(p, q) = \sum_i-p_ilog(q_i) H(p,q)=∑i​−pi​log(qi​),将它用于损失函数的时候,形式为:
l ( y , y ^ ) = − ∑ i y i l o g y i ^ = − l o g y ^ y l(y, \hat{y}) = -\sum_iy_i log \hat{y_i} = -log\hat{y}_y l(y,y^​)=−i∑​yi​logyi​^​=−logy^​y​

softmax中常用交叉熵来计算损失函数。

第4章 降维

第5章 非监督学习

1、K-means聚类

聚类是在事先并不知道任何样本类别标签的情况 下,通过数据之间的内在关系把样本划分为若干类别,使得同类别样本之间的相 似度高,不同类别之间的样本相似度低。

基本思想:通过迭代方式寻找K个簇(Cluster)的一种划分方案,使得聚类结果对应的代价函数最小。(代价函数通常为欧氏距离)

(1)简述K-means算法的具体步骤

(1)数据预处理,进行归一化(0-1均值、线性均值)、离群点处理(基于统计)
(2)随机选取K个簇中心
(3)定义代价函数(一般为欧氏距离)
(4)进行迭代重复选取每个样本分配到距离最近的簇,然后重新计算簇中心。直至簇中心不再变化或者达到规定的迭代次数。

(2)K-means算法的优缺点是什么?如何对其进行优化

缺点:
(1)受初值和离群点的影响每次的结果不稳定。
(2)结果通常不是全局最优而是局部最优解,效果受初始值的影响大。
(3)无法很好地解决数据簇分布差别比较大的情况
(4)不太适用于离散分类等

优点:
(1)对大数据集,K-means算法相对是可伸缩和高效的,它的计算复杂度是O(NKt)接近于线性,其中N是数据对象的数量,K是聚类的簇数,t是迭代的轮数。
(2)尽管最终得到的是局部最优解,但一般情况下此解已可满足聚类的需求。

调优:
(1)数据归一化和离群点处理
(2)合理选择K值
根据经验或多次试验选取。
手肘法是一个经验方法,选择拐点处的K值,缺点就是不够自动化。Gap Statistic方法是比先进的方法,可以不需要用肉眼进行判断,而只需要找到最大的Gap Statistic所对应的K值即可,因此该方法也适用于批量化作业。Gap Statistic定义为
G a p ( K ) = E ( l o g D k ) − l o g D k Gap(K)=E(logD_k)-logD_k Gap(K)=E(logDk​)−logDk​
其中, D k D_k Dk​为分为之前分为K簇时对应的损失函数。
该方法一般通过蒙特卡洛模拟产生,我们在样本所在的区域内按照均匀分布随机地产生和原始样本树一样多的随机样本,并对这个随机样本做K均值,得到一个 D k D_k Dk​;重复多次就可以得出 E ( l o g D k ) E(logD_k) E(logDk​)的近似值。 G a p ( K ) Gap(K) Gap(K)的物理含义可视为随机样本的损失与实际样本的损失之差。

(3)采用核函数
传统的欧氏距离度量方式,使得K-means算法本质上假设了各个数据簇的数据具有一样的先验概率,并呈现球形或者高维球形分布,但这种分布在实际生活中并不常见。对于非凸的数据分布形状时,可能需要引入核函数来优化,这时的算法称为核K-means算法。
主要思想是通过一个非线性映射,将输入空间中的数据点映射到高维的特征空间中,并在新的特征空间中进行聚类。非线性映射增加了数据点线性可分的概率,从而在经典的聚类算法失效的情况下,通过引入核函数可以达到更为准确的聚类结果。

(3)针对K-means算法的缺点,有哪些改进的模型?

K-means++算法

ISODATA算法

(4)证明K-means算法的收敛性

高斯混合模型

第6章 概率图模型

第7章 优化算法

机器学习算法 = 模型表征 + 模型评估 + 优化算法

1、有监督学习涉及的损失函数有哪些?请列举并简述它们的特点。

损失函数研究思路:
(1)列出损失函数、损失函数的导数值、损失函数的似然函数。
(2)观察在预测值距离真实值比较远时,梯度的作用,观察在预测值距离真实值比较近时,梯度的作用。
(3)考察其梯度的可导性、稳定性、平滑性。

(1)均方损失函数 L2 Loss


其中y为真实值,y’为预测值。其中,蓝色的线为损失函数的的曲线,绿色的线为其似然函数,橙色的线为其导数值。 当预测值与真实值差异较大时,梯度会很大,而随着预测值越来越靠近真实值的时候,梯度就会越来越小。但是,当我们预测值距离真实值比较远的时候,并不一定都需要很大的幅度去更新预测值

(2)绝对值损失函数 L1 Loss


可以看到(2)中,存在导数值的区间,其导数值都为常数。当y’大于0时,导数值为1;当y’小于0的时候,导数值为-1。当y’等于0时,导数值不存在。

此梯度函数的优势是当预测值和真实值不论相隔多远的时候,梯度值都相同,梯度具有更多的稳定性。但劣势是0点处不可导,当预测值和真实值比较靠近时,梯度会在-1和1之间震荡,变得不稳定。总结来说,不靠近真实值时,梯度稳定,靠近真实值时,梯度不稳定,到0点出不可导。

(3)鲁棒损失 Huber’s Robust Loss


当预测值和真实值误差大于1时,采用绝对值误差的方式(减去 1 2 \frac{1}{2} 21​保证两个曲线可以连接),可以保证相距较远时,梯度保持稳定。当预测值和真实值误差小于等于1时,采用均方误差的方式,可以保证靠近真实值时,梯度可小幅度靠近让优化平滑并保证0点处可导。

(4)0-1损失函数

L 0 − 1 ( f , y ) = 1 f y ≤ 0 L_{0-1}(f,y)=1_{fy≤0} L0−1​(f,y)=1fy≤0​

其中 1 p 1_p 1p​ 是指示函数,当 p p p 为真时取1, p p p 为假时取0。可以很直观地反映分类的错误率,但由于是非凸、非光滑的特点,使得该算法很难直接对该函数进行优化。

(5)Hinge Loss 铰链损失函数(0-1损失函数的代理损失函数)

L h i n g e ( f , y ) = m a x { 0 , 1 − f y } L_{hinge}(f, y) = max\{0, 1 - fy\} Lhinge​(f,y)=max{0,1−fy}
其中 f y ≥ 1 fy≥1 fy≥1 时,不对其做任何惩罚输出为0; f y < 1 fy<1 fy<1 时,输出 1 − f y 1-fy 1−fy。通常被用于最大间隔算法(maximum-margin),而最大间隔算法又是SVM(支持向量机support vector machines)用到的重要算法(注意:SVM的学习算法有两种解释:1. 间隔最大化与拉格朗日对偶;2. Hinge Loss)。它是0-1损失函数相对紧的凸上界,但在 f y = 1 fy=1 fy=1 处不可导,因此不能用梯度下降法进行优化,而是用次梯度下降法。

(6)Logistic损失函数(0-1损失函数的代理损失函数)

L l o g i s t i c ( f , y ) = l o g 2 ( 1 + e − f y ) L_{logistic}(f, y) = log_2(1 + e^{-fy}) Llogistic​(f,y)=log2​(1+e−fy)

它是0-1损失函数的凸上界,且该函数出处光滑,可以使用梯度下降法进行优化。但该损失函数对所有的样本点都有所惩罚,因此对异常值相对更敏感一些。

(7)Cross Entropy交叉熵损失函数( f ∈ [ − 1 , 1 ] f \in [-1,1] f∈[−1,1] 时,0-1损失函数代理函数)

L c r o s s e n t r o p y ( f , y ) = − l o g 2 ( 1 + f y 2 ) L_{cross \ entropy}(f, y) = - log_2(\frac{1 + fy}{2}) Lcross entropy​(f,y)=−log2​(21+fy​)交叉熵损失函数也是0-1损失函数的光滑凸上界。

2、凸优化基本概念

(1)机器学习中的优化问题,哪些是凸优化问题,哪些是非凸优化问题?请举例。


凸优化例子:线性回归、Logistic 回归、SVM
非凸优化例子:PCA、深度神经网络模型

3、梯度问题

当数值过大或过小时,可能会发生数值问题,这种现象长发生于深度模型当中,因为链式求导法会导致越乘这个效应会变得越大。

(1)梯度爆炸问题

参数更新过大,破坏了模型的稳定收敛。

由于神经网络的梯度在计算损失函数时,对参数W采用的是链式求导法,因此当起始时学习率太大的话,就有可能会导致这个大的影响不断的递进,导致这个效应越来越强,从而出现梯度爆炸。

但如果学习率太小的化,训练就会没有多大进展,因此,设置适当的学习率是一个比较棘手的问题。

(2)梯度消失问题

参数更新过小,在每次更新时几乎不会移动,导致模型无法学习。

对于sigmoid函数来说,越靠近两侧的时候梯度越小,甚至接近于0,若过大或过小,就会有可能让梯度变得非常小。

顶部一次矩阵乘法,而到了底部,可能会导致越乘越小导致梯度消失现象。

(3)保持梯度稳定性方法

合理的权重初始值和激活函数选取可以提升数值的稳定性。

1、保持每层的均值和方差不变,为一个常数

常用方式是保持每层的均值和方差都不变,而每层的输出和梯度作为随机变量。例如,让每层的均值为0,方差为1。

2、函数调整

因为计算机里的非线性函数通常是由泰勒多项式进行拟合计算得来,因此我们可以检查具体的激活函数实现情况,对其进行响应的调整。

对于sigmoid来说,一般改为 4 × s i g m o i d ( x ) − 2 4×sigmoid(x) - 2 4×sigmoid(x)−2,就会使该函数在0点附近近似于 f ( x ) = x f(x)=x f(x)=x这个函数,能解决很多梯度问题。

、L1正则化与稀疏性

稀疏性说白了就是模型的很多参数为0。相当于是对模型进行依次特征选择后,只留下一些比较重要的特征,提高模型的泛化能力,降低过拟合的可能。

在实际应用中,机器学习模型的输入动辄几百上千万维,稀疏性就显得更加重要,谁也不希望把这上千万维的特征全部搬到先上去,因为在线上可能需要毫秒级的响应时间下完成千万维特征的特区以及模型的预测。

(1)L1正则化使得模型参数具有稀疏性的原理是什么?

L2的正则项约束后的解空间是圆形的,L1的正则项约束的解空间是多边形的。而多边形的解空间更容易在尖角处与等高线碰撞出系数解。

第8章 采样

第9章 前向神经网络

、深度神经中的激活函数

对于线性不可分问题,需要使用非线性变换对数据的分布进行重新映射。对于深度神经网络,我们在每一层线性变换后叠加一个非线性激活函数,以避免多层网络等效于单层线性函数,从而获得更强大的学习与拟合能力。

(1)常用激活函数及其导数

1. Sigmoid
f ( x ) = 1 1 + e − x f(x)=\frac{1}{1+e^{-x}} f(x)=1+e−x1​
对应的导数为
f ′ ( x ) = f ( x ) ( 1 − f ( x ) ) f'(x)=f(x)(1-f(x)) f′(x)=f(x)(1−f(x))

2. Tanh
f ( x ) = t a n h ( x ) = e x − e − x e x + e − x f(x)=tanh(x)=\frac{e^x-e^{-x}}{e^x+e^{-x}} f(x)=tanh(x)=ex+e−xex−e−x​
对应的导数为
f ′ ( x ) = 1 − ( f ( x ) ) 2 f'(x)=1-(f(x))^2 f′(x)=1−(f(x))2
注:Tanh相当于Sigmoid的平移: t a n h ( x ) = 2 s i g m o i d ( 2 x ) − 1 tanh(x)=2sigmoid(2x)-1 tanh(x)=2sigmoid(2x)−1

3. ReLU
f ( x ) = m a x ( 0 , x ) f(x)=max(0,x) f(x)=max(0,x)
对应的导数为
f ′ ( x ) = { 1 , x > 0 0 , x ≤ 0 f'(x)= \left \{\begin{array}{cc} 1, &x > 0 \\ 0, &x≤0 \end{array}\right. f′(x)={1,0,​x>0x≤0​

(2)为什么Sigmoid和Tanh激活函数会导致梯度消失的现象?

Sigmoid和Tanh激活函数的倒数在x趋近于很大或很小时都会趋近于0,从而出现“梯度消失”。

(3)ReLU系列的激活函数相对于Sigmoid和Tanh激活函数有什么优点?它们有什么局限性以及如何改进?

优点
(1)从计算角度来说,Sigmoid和Tanh激活函数需要计算指数,复杂度高,ReLU只需要一个阈值即可得到激活值
(2)ReLU的非饱和性可以有效地解决梯度消失问题,提供相对宽的激活边界
(3)ReLU的单侧抑制提供了网络的系数表达能力

局限性
会导致神经元容易死亡的问题,当负梯度经过ReLU时会被置为0,且在之后不回被任何数据激活。在训练中,如果学习率设置较大,会导致超过一定比例的神经元不可逆转的死亡,进而参数梯度无法更新,整个训练过程失败。

改进
未解决上述问题,设计了LReLU(Leaky ReLU)

LReLU相对于ReLU来说,在z<0时其值不为0,而是一个斜率为a的线性函数,这个a是一个很小的正常数,这样子既实现了单侧抑制,又保留了部分负梯度信息以至于不会完全丢失。但另一方面,就在于如何确定合适的a值。一般来说会通过多次重复训练来找到合适的值。

进一步改进
PReLU(Paramtetric ReLU):将斜率a作为网络中可学习的参数,进行反向传播训练,与其他含参数网络层联合优化。
RReLU(Random ReLU):增加了“随机化”机制,斜率a作为一个满足某种分布的随机采样,测试时再固定下来。在一定程度上能起到正则化的作用。

、多层感知机的反向传播算法

()平方损失函数和交叉熵损失函数分别适合什么场景?

平方损失函数适合输出为连续型数值,并且最后一层不含Sigmoid或Softmanx激活函数的神经网络.

  • 原因:

交叉熵损失适合二分类或多分类的场景。

第10章 循环神经网络

时序相关模型具有四个常用模型:时序模型、自回归模型、马尔可夫模型、潜变量模型(相比于马尔可夫模型多了一个h潜变量来作为最近的信息)

1、RNN循环神经网络


当前端的输出 O t O_t Ot​ 与上时刻的因变量 h t − 1 h_{t-1} ht−1​与观察值 X t − 1 X_{t-1} Xt−1​相关。


(1)RNN存在的问题?

当序列太长时,容易导致梯度消失和梯度爆炸。记忆容量问题,随着状态的不断积累存储新的输入信息,会发生饱和现象。也就是隐状态可存储的信息优先,随记忆单元存储内容越来越多,丢失的信息也越来越多。具有长期依赖问题,难以对长时间间隔的依赖关系进行建模。同时,RNN对于所有隐藏状态都作为同样中来要对待。

2、门控循环单元GRU(Gate Recurrent Unit)

增加了一些额外的控制单元,使得构造隐藏状态时,对不同的隐藏状态可具有不同的选择倾向。引入了更新门(能关注的机制)和重置门(能遗忘的机制)。


R t R_t Rt​ 重置门会控制更新是否遗忘 H t − 1 H_{t-1} Ht−1​ 上一阶段的信息。

Z t Z_t Zt​ 点乘上一阶段的隐状态 H t − 1 H_{t-1} Ht−1​, 1 − Z t 1 - Z_t 1−Zt​ 点乘候选隐藏状态 H ~ t \tilde{H}_t H~t​。 Z t Z_t Zt​几乎等于1的时候,就放弃现在阶段组成的隐藏状态,而选择上一阶段的隐藏状态。当几乎等于0的时候,就放弃上一阶段的隐藏状态,选择当前的候选隐藏状态。

3、LSTM长短期记忆神经网络模型




相当于RNN中的隐状态

F t F_t Ft​ 如果接近为0时,就会去遗忘 C t − 1 C_{t-1} Ct−1​,接近于1时,就会去记忆它。 I t I_t It​ 与之同理。


对候选记忆单元再做了一个tanh,因为 C t Ct Ct的范围是[-2, 2],因此使用tanh再将其压缩。

【机器学习面试】百面机器学习笔记和问题总结+扩展面试题相关推荐

  1. 百面机器学习--机器学习面试问题系列(四)降维

    本文是在学习<百面机器学习 算法工程师带你去面试>过程中的学习笔记,将面试问题进行记录以方便查阅,根据目录分成系列.持续更新中- 目录 1. PCA最大方差理论 2. PCA最小平方误差理 ...

  2. 《百面机器学习算法工程师带你去面试》资料学习

    <百面机器学习算法工程师带你去面试>收录了超过100道机器学习算法工程师的面试题目和解答,其中大部分源于Hulu算法研究岗位的真实场景.本书从日常工作.生活中各种有趣的现象出发,不仅囊括了 ...

  3. 百面机器学习!算法工程师面试宝典!

    本文部分内容经授权节选自<百面机器学习> 责编 | 胡巍巍 去年年底到今年年初,整个互联网圈,都笼罩着裁员的阴霾. 以至于很多程序员,都不敢看新闻了. 前段时间,SOHO中国董事长潘石屹, ...

  4. 百面机器学习!算法工程师面试宝典!| 码书

    本文部分内容经授权节选自<百面机器学习> 责编 | 胡巍巍 去年年底到今年年初,整个互联网圈,都笼罩着裁员的阴霾. 以至于很多程序员,都不敢看新闻了. 但是,昨天SOHO中国董事长潘石屹, ...

  5. 个人面试问答题知识库(一)百面机器学习篇

    第二篇(基础模型篇)已更新!        在前段时间的校招应聘经历中,我发现有时候即使面试官问的问题基本都回答上来了,最后还是没有通过面试,这固然跟自己是非科班.没有论文和相关实习经历有关,但自己的 ...

  6. “降维算法”面试知识点总结-PCA+LDA算法-百面机器学习系列4

    提示:在准备机器学习算法工程师面试的过程中,我主要参考<百面机器学习>去巩固自己的基础知识.本系列博客将以该书为主题,并以八股文的方式去概述整本书的内容,以尽量减少读者们的阅读作量,并方便 ...

  7. 《百面机器学习》读书笔记(十一)-强化学习

    全部笔记的汇总贴:<百面机器学习>-读书笔记汇总 强化学习近年来在机器学习领域越来越火,也受到了越来越多人的关注.强化学习是一个20世纪80年代兴起的,受行为心理学启发而来的一个机器学习领 ...

  8. 百面机器学习总结笔记(第十三章 生成对抗网络)

    百面机器学习总结笔记(第十三章 生成对抗网络) 百面机器学习总结笔记 第十三章 生成对抗网络 初识GANS的秘密 GANs值函数![在这里插入图片描述](https://img-blog.csdnim ...

  9. 《百面机器学习》读书笔记(十四)-人工智能的热门应用

    全部笔记的汇总贴:<百面机器学习>-读书笔记汇总 这一章较之前的十三章略微有些区别,这一章直接将知识点进行罗列出来,而不再是以问题的方式来导出,可能也是应为这一章的内容比较浅显易懂吧. 一 ...

最新文章

  1. 腾讯天衍实验室联合微众银行研发医疗联邦学习 AI利器让脑卒中预测准确率达80%
  2. R语言使用cowplot包的plot_grid函数将两个ggplot2可视化结果并排组合起来并添加图像标签A、B、设置组合图像使用共享的图例(shared legend in cowplot)
  3. BinaryTree with C#
  4. 财经法规税收征收管理法律制度练习题二
  5. Disruptor并发框架-1
  6. 视图的数据存放在哪里_分布式 | DBLE 是如何实现视图的?
  7. python产生10个不同的随机数组成列表并求平均值_计算多个随机数的平均数Python...
  8. 树,森林,二叉树之间的转换
  9. mysql 远程访问
  10. python安装包的路径
  11. java web 课程设计_javaweb期末课程设计
  12. 基于51单片机WiFi温湿度远程控制
  13. 张亚勤寄语哥伦比亚大学2020年毕业生:引领未知时代
  14. js 调用后台方法 ajax,JS直接调用C#后台方法(ajax调用)
  15. php人人商城定时任务,人人商城异步操作菜单示例
  16. 小程序管理新闻资讯分类-微信小程序视频教程27
  17. XAMPP打开MySQL报错Port 3306 in use by ... MySQL
  18. 程序员面试简历注意事项
  19. windows10修改用户名解决CDK闪退问题
  20. 添加自签发的 SSL 证书为受信任的根证书

热门文章

  1. sqlserver2000 详解
  2. java 多线程重温
  3. python注释多行
  4. 何恺明 matlab,[论文复现]何恺明博士CVPR2009去雾算法(1)
  5. Go | 一分钟掌握Go | 9 - 通道
  6. 蓝色荧光染料Monobromobimane (mBBr) 单溴二胺71418-44-5
  7. 刷子 撸一撸手头的几把刷
  8. [java]左键画圆,右键画方
  9. Android系列之Fragment(一)----Fragment加载到Activity当中
  10. 【Mysql】Mysql数据库查询“表空间”