机器学习面试整理

文章目录

  • 机器学习面试总结
  • 基础
    • 困惑度:
    • AUC是什么:
    • sigmod函数
    • GELUs
    • 交叉熵损失函数
    • 先验、后验、似然
    • Bias和Variance 区别
    • 梯度爆炸和梯度消失问题
    • 线性回归模型
    • 梯度下降算法
    • 梯度下降算法对比L-BFGS
    • 条件熵
    • GELU定义
    • 最小二乘法原理
    • 二次规划
    • 拉格朗日乘子法
    • 概率密度函数
    • 似然函数
    • 最大似然估计的核心思想是
  • 传统model
    • LDA就是要干这事:
    • Logistic 回归
    • Softmax回归
    • 感知机
    • 朴素贝叶斯法分类
    • 感知器到logistic回归DIFF
    • 最小二乘法
    • SVM 是一种二类分类模型。
    • SVM 为什么采用间隔最大化:解是唯一的、最鲁棒的
    • bayes公式:(贝叶斯估计)
    • n-gram语言模型:
    • cbow & skip-gram模型
    • Hierarchical softmax
    • word2vec和fastText对比有什么区别
    • HMM和CRF区别
    • 集成学习介绍(boosting、bagging、stacking原理)
    • 如何处理缺失值
    • 请问人工神经网络中为什么ReLu要好过于tanh和sigmoid function
    • 概率图
    • 判别式模型 vs 生成式模型
    • hmm
    • 最大熵模型
    • MEMM,即最大熵马尔科夫模型(判别式模型)
    • 概率图模型
    • crf
    • HMM vs. MEMM vs. CR
    • 学习策略
    • 过拟合如何解决:
    • 为什么实现分类的CNN中需要进行Max-pooling
    • k-means原理
    • 两种计算梯度的方式:数值梯度、解析梯度
    • boosting的本意是是什么
    • Random forest:
    • 决策树
    • 分类树和回归树
    • 随机森林
    • bagging和boosting
    • GBDT
    • xgboost
    • xgboost相比于GBDT的创新之处:
  • deep model
    • 循环神经网络(Recurrent Neural Network, RNN)
    • 深度循环神经网络
    • 双向循环神经网络
    • 梯度裁剪
    • LSTM
    • GRU
    • RNN的梯度消失和梯度爆炸
    • Cnn
    • elmo双向语言模型的目标函数
    • BERT
    • 回顾一下bert好的原因:
    • ALBERT
    • 详解深度学习中的Normalization,BN/LN/WN
    • 残差网络
  • 工具分析
    • tensorflow
    • CRF++
    • jieba
  • 模型训练算法
    • 最大熵
    • GIS算法
    • IIS
    • 雅可比矩阵
    • 海森Hessian矩阵
    • 马尔可夫收敛
    • 蒙特卡罗方法
    • SGD -> SGDM -> NAG ->AdaGrad -> AdaDelta -> Adam -> Nadam
    • 训练算法:em算法。
    • 极大似然估计用一句话概括就是:知道结果,反推条件θ。
    • EM算法:

机器学习面试总结

基础

困惑度:

困惑度(perplexity)的基本思想是:给测试集的句子赋予较高概率值的语言模型较好,当语言模型训练完之后,测试集中的句子都是正常的句子,那么训练好的模型就是在测试集上的概率越高越好,公式如下:
在这里插入图片描述
由公式可知,句子概率越大,语言模型越好,迷惑度越小。困惑度p可以理解为,如果每个时间步都根据语言模型计算的概率分布随机挑词,那么平均情况下,挑多少个词才能挑到正确的那个

AUC是什么:

roc曲线的面积,假设已经得出一系列样本被划分为正类的概率,然后按照大小排序
机器学习面试整理_第1张图片
回到顶部

sigmod函数

在这里插入图片描述
sigmoid的导数小于0.25
机器学习面试整理_第2张图片

回到顶部

GELUs

机器学习面试整理_第3张图片
(Gaussian Error Linear Units:高斯误差线性单元)为提交模型效果,正是在激活中引入了随机正则的思想(GELUs其实是 dropout、Relus的综合),f(权重w + 偏置项bias)

回到顶部

交叉熵损失函数

在这里插入图片描述

  • softmax
    机器学习面试整理_第4张图片
    机器学习面试整理_第5张图片机器学习面试整理_第6张图片
  • softmax +cross entropy原因:交叉熵比均方误差好(即使与label中1所对应下标的预测值是正确的,其他项预测值的分布也会影响损失的大小,这不符合我们对于分类问题损失函数的预期),似然估计的视角:交叉熵就是对应于该样本的负对数似然估计在这里插入图片描述
    等价于KL散度又被称为相对熵。机器学习面试整理_第7张图片
    softmax+cross entropy在反向传播时传递的是预测值与label值的偏差,即 yi - ti
    在这里插入图片描述

回到顶部

先验、后验、似然

  • 先验——根据若干年的统计(经验)或者气候(常识),某地方下雨的概率;

  • 似然——下雨(果)的时候有乌云(因 or 证据 or 观察的数据)的概率,即已经有了果,对证据发生的可能性描述;

  • 后验——根据天上有乌云(原因或者证据 or 观察数据),下雨(结果)的概率;后验 ~ 先验*似然 : 存在下雨的可能(先验),下雨之前会有乌云(似然)~ 通过现在有乌云推断下雨概率(后验);

回到顶部

Bias和Variance 区别

  • 感性的讲,bias指的是与真值的偏离程度,variance是指的聚集程度,与真值关系不大
    机器学习面试整理_第8张图片

回到顶部

梯度爆炸和梯度消失问题

  • 只有后几层的浅层网络的学习,都是因为网络太深,链式求导,层数越多,梯度越小,导致梯度消失。
  • 梯度爆炸和梯度解决方法:
    • 用ReLU激活函数取代sigmoid激活函数。
    • 另外,LSTM的结构设计也可以改善RNN中的梯度消失问题,
    • dropout细节
    • Batchnorm原理:每一个batch输入的数据都具有不同的分布,显然会给网络的训练带来困难,β和γ分别称之为 平移参数和缩放参数 。这样就保证了每一次数据经过归一化后还保留的有学习来的特征,同时又能完成归一化这个操作,加速训练

回到顶部

线性回归模型

  • 线性回归模型:基于均方误差最小化来进行模型求解的方法称为“最小二乘法”.
    在这里插入图片描述

回到顶部

梯度下降算法

  • 梯度下降算法:按损失函数梯度下降的方向进行更新参数。
  • 批量梯度下降:遍历整个训练集
  • 随机梯度下降:每次下降时只选取其中的一个样本

回到顶部

梯度下降算法对比L-BFGS

  • 神经网络优化问题有三个特点:大数据(样本多),高维问题(参数极多),非凸牛顿和拟牛顿法在凸优化情形下,如果迭代点离全局最优很近时,收敛速率快于gd。然而:大数据带来的问题:因为数据量大,从计算上来说不可能每一次迭代都使用全部样本计算优化算法所需的统计量(梯度,Hessian等等),因此只能基于batch来计算,从而引入了噪声(sgd)。梯度的估计本身已经带了噪声,利用有噪声的梯度和历史梯度用近似公式逼近Hessian(L-BFGS),则噪声很可能更大,而且微分本身时放大噪声的。所以即使多花费了计算量,拟牛顿的效果未必会更好。高维带来的问题:因为参数极多,所以Hessian阵也会非常巨大,无法显式计算和存储,因此牛顿法几乎不可行,只能尝试用L-BFGS。由于非凸,非正定,导致不再是下降方向.

回到顶部

(热力学中的概念,由香浓引入到信息论中。在信息论和概率统计中,熵用来表示随机变量不确定性的度量)
机器学习面试整理_第9张图片
回到顶部

条件熵

机器学习面试整理_第10张图片
回到顶部

GELU定义

机器学习面试整理_第11张图片
回到顶部

最小二乘法原理

机器学习面试整理_第12张图片
回到顶部

二次规划

机器学习面试整理_第13张图片
回到顶部

拉格朗日乘子法

机器学习面试整理_第14张图片
回到顶部

概率密度函数

机器学习面试整理_第15张图片

回到顶部

似然函数

机器学习面试整理_第16张图片
回到顶部

最大似然估计的核心思想是

  • 找到参数θ的一个估计值,使得当前样本出现的可能性最大

机器学习面试整理_第17张图片
机器学习面试整理_第18张图片

  • 最大似然估计、贝叶斯估计区别:假设求解参数θ,最大似然是求出最有可能的θ值,而贝叶斯推断则是求解θ的分布。

机器学习面试整理_第19张图片
回到顶部

传统model

LDA就是要干这事:

  • 根据给定的一篇文档,反推其主题分布。
  • 确定主题和词汇的分布
  • 确定文章和主题的分布
  • 随机确定该文章的词汇个数N
  • 如果当前生成的词汇个数小于N执行第5步,否则执行第6步
  • 由文档和主题分布随机生成一个主题,通过该主题由主题和词汇分布随机生成一个词,继续执行第4步
  • 文章生成结束

回到顶部

Logistic 回归

  • 最大化对数似然函数,梯度上升算法求解。
    机器学习面试整理_第20张图片机器学习面试整理_第21张图片
    机器学习面试整理_第22张图片
    在这里插入图片描述

回到顶部

Softmax回归

机器学习面试整理_第23张图片
机器学习面试整理_第24张图片

  • 逻辑回归与Softmax回归的联系机器学习面试整理_第25张图片
  • 与神经网络的关系
    机器学习面试整理_第26张图片
    回到顶部

感知机

机器学习面试整理_第27张图片
在这里插入图片描述
回到顶部

朴素贝叶斯法分类

机器学习面试整理_第28张图片
回到顶部

感知器到logistic回归DIFF

  • 就是logistic损失函数不同。

  • 感知器到SVM:SVM的损失函数为合页函数.红色的曲线代表logistic回归的损失函数,绿色的线代表svm的损失函数. 分类SVM等于Hinge损失 + L2正则化。机器学习面试整理_第29张图片机器学习面试整理_第30张图片
    机器学习面试整理_第31张图片

回到顶部

最小二乘法

在这里插入图片描述
回到顶部

SVM 是一种二类分类模型。

  • 它的基本模型是在特征空间中寻找几何间隔最大化的分离超平面的线性分类器。求解算法:最小二乘法和SMO算法:选择两个变量(违反KKT条件最严重的变量),固定其他变量,针对这两个变量构建一个二次规划问题。
  • 函数间隔
    机器学习面试整理_第32张图片
    • 几何间隔
      机器学习面试整理_第33张图片
    • 几何间隔函数间隔关系
      机器学习面试整理_第34张图片
      机器学习面试整理_第35张图片
      机器学习面试整理_第36张图片
      机器学习面试整理_第37张图片
      机器学习面试整理_第38张图片
  1. 当训练样本线性可分时,通过硬间隔最大化,学习一个线性分类器,即线性可分支持向量机;
  2. 当训练数据近似线性可分时,引入松弛变量,通过软间隔最大化,学习一个线性分类器,即线性支持向量机;
  3. 当训练数据线性不可分时,通过使用核技巧及软间隔最大化,学习非线性支持向量机。
  4. 以上各种情况下的数学推到应当掌握,硬间隔最大化(几何间隔)、学习的对偶问题、软间隔最大化(引入松弛变量)、非线性支持向量机(核技巧)
  • 为什么 SVM 要引入核函数:原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。机器学习面试整理_第39张图片
  • smo算法机器学习面试整理_第40张图片
    机器学习面试整理_第41张图片

回到顶部

SVM 为什么采用间隔最大化:解是唯一的、最鲁棒的

机器学习面试整理_第42张图片

  • 为什么要将求解 SVM 的原始问题转换为其对偶问题:一。对偶问题往往更易求解,通过拉格朗日函数,再通过这个函数来寻找最优点。二是可以自然引入核函数,进而推广到非线性分类问题。
  • 线性模型:如果不考虑核函数,LR 与 SVM 都是线性分类算法,也就是说他们的分类决策面都是线性的。LR 与线性回归都是广义的线性回归;

回到顶部

bayes公式:(贝叶斯估计)

在这里插入图片描述
回到顶部

n-gram语言模型:

  • 一个由 m 个词组成的序列(markov假设)
  • 神经网络语言模型:1. 包含词语相似度关系 2. 自带平滑,概率不为0

回到顶部

cbow & skip-gram模型

  • skip-gram优于cbow,skip-gram,cbow相当于一个老师对着多个学生,skip-gram相当于一个学生对着多个老师,学习更充分。
    机器学习面试整理_第43张图片
    机器学习面试整理_第44张图片在这里插入图片描述在这里插入图片描述
    机器学习面试整理_第45张图片

回到顶部

Hierarchical softmax

  • 是用层级关系替代了扁平化的softmax层,预测速度可以提升至少50倍.
  • 负采样(Negative Sampling)可以被认为是NCE的一种近似版本

回到顶部

word2vec和fastText对比有什么区别

  1. 结构与CBOW类似,但学习目标是人工标注的分类结果;
  2. 采用hierarchical softmax对输出的分类标签建立哈夫曼树,样本中标签多的类别被分配短的搜寻路径;
  3. 引入N-gram,考虑词序特征;
  4. 引入subword来处理长词,处理未登陆词问题;
    机器学习面试整理_第46张图片

回到顶部

HMM和CRF区别

  • HMM是生成模型,CRF是判别模型
  • HMM是概率有向图,CRF是概率无向图
  • HMM求解过程可能是局部最优,CRF可以全局最优
  • CRF概率归一化比较合理,HMM则会导致label bias问题

回到顶部

集成学习介绍(boosting、bagging、stacking原理)

  1. 个体学习器之间存在强依赖关系,必须串行生成序列化方法。(Boosting)
  2. 个体学习器间不存在强依赖关系,可同时生成的并行化算法。(Bagging和Random Forest)

如何处理缺失值

一种是删除整行或者整列的数据,另一种则是使用其他值去填充

回到顶部

请问人工神经网络中为什么ReLu要好过于tanh和sigmoid function

机器学习面试整理_第47张图片
采用sigmoid等函数,指数运算,计算量大,sigmoid函数反向传播时,很容易就会出现梯度消失,Relu会使一部分神经元的输出为0,这样就造成了网络的稀疏性,并且减少了参数的相互依存关系,缓解了过拟合问题的发生

回到顶部

概率图

机器学习面试整理_第48张图片
回到顶部

判别式模型 vs 生成式模型

  • 判别模型是直接对 P(Y|X)建模,生成式模型是直接对 P(X,Y)联合概率分布建模.
    回到顶部

hmm

  • 五要素:所有的char构成的字表,形成观测集(O) ;标注集BES构成隐藏状态集 (i);状态转移概率矩阵A;观测概率(发射概率)B;初始状态概率矩阵 π机器学习面试整理_第49张图片
    机器学习面试整理_第50张图片
    机器学习面试整理_第51张图片机器学习面试整理_第52张图片
    机器学习面试整理_第53张图片
    机器学习面试整理_第54张图片
    机器学习面试整理_第55张图片

机器学习面试整理_第56张图片
机器学习面试整理_第57张图片
机器学习面试整理_第58张图片
回到顶部

最大熵模型

机器学习面试整理_第59张图片
机器学习面试整理_第60张图片
机器学习面试整理_第61张图片
回到顶部

MEMM,即最大熵马尔科夫模型(判别式模型)

在这里插入图片描述机器学习面试整理_第62张图片

  • labeling bias 问题:状态2可以转换的状态比状态1要多,从而使转移概率降低,即MEMM倾向于选择拥有更少转移的状态。

回到顶部

概率图模型

机器学习面试整理_第63张图片
回到顶部

crf

机器学习面试整理_第64张图片
机器学习面试整理_第65张图片
机器学习面试整理_第66张图片
一套CRF由一套参数λ唯一确定(先定义好各种特征函数)。
同样,CRF用极大似然估计方法、梯度下降、牛顿迭代、拟牛顿下降、IIS、BFGS、L-BFGS等等。
crf++特征模版
在这里插入图片描述
回到顶部

HMM vs. MEMM vs. CR

  1. MEMM解决了HMM输出独立性假设的问题。因为HMM只限定在了观测与状态之间的依赖,而MEMM引入自定义特征函数,不仅可以表达观测之间的依赖,还可表示当前观测与前后多个状态之间的复杂依赖。
  2. CRF不仅解决了HMM输出独立性假设的问题,还解决了MEMM的标注偏置问题,MEMM容易陷入局部最优是因为只在局部做归一化,而CRF统计了全局概率,在做归一化时考虑了数据在全局的分布,而不是仅仅在局部归一化,这样就解决了MEMM中的标记偏置的问题。
    机器学习面试整理_第67张图片
    回到顶部

学习策略

机器学习面试整理_第68张图片
回到顶部

过拟合如何解决:

Early stopping,数据集扩增,正则化方法,Dropout

  • Dropout:在训练开始时,随机得删除一些(可以设定为一半,也可以为1/3,1/4等)隐藏层神经元。L2正则化,Dropout(若规律不是在所有样本中都存在,则dropout会删除这样的规律),每个epoch之后shuffle训练数据,设置early-stopping。加Batch Normalization(BN首先是把所有的samples的统计分布标准化,降低了batch内不同样本的差异性,然后又允许batch内的各个samples有各自的统计分布),BN最大的优点为允许网络使用较大的学习速率进行训练,加快网络的训练速度(减少epoch次数),提升效果。

回到顶部

为什么实现分类的CNN中需要进行Max-pooling

Max-pooling可以将特征维度变小,使得减小计算时间,同时,不会损失太多重要的信息,因为我们是保存最大值
回到顶部

k-means原理

  1. 随机选择k个样本作为初始均值向量,类别k是人为设定的。
  2. 根据距离最近质心的聚合
  3. 更新均值向量
    重复2~3,直到收敛
    回到顶部

两种计算梯度的方式:数值梯度、解析梯度

在这里插入图片描述
回到顶部

boosting的本意是是什么

  • 跟bagging,random forest,adaboost,gradient boosting有什么区别?
  • 可以看成是一种圆桌会议,或是投票选举的形式。通过训练多个模型,将这些训练好的模型进行加权组合来获得最终的输出结果(分类/回归),一般这类方法的效果,都会好于单个模型的效果。

回到顶部

Random forest:

随机森林在bagging的基础上做了修改。

  • 从样本集散用Boostrap采样选出n个样本,预建立CART
  • 在树的每个节点上,从所有属性中随机选择k个属性/特征,选择出一个最佳属性/特征作为节点
  • 重复上述两步m次,i.e.build m棵cart
  • 这m棵cart形成random forest。

决策树

  • 决策树是一个有监督的分类模型,其本质是选择一个能带来最大信息增益的特征值进行树的分割,直到到达结束条件或者叶子结点纯度到达一定阈值。
  • 树分割算法
    • ID3:以信息增益为准则来选择最优划分属性,信息熵越小,数据集X的纯度越大
      在这里插入图片描述
    • C4.5:基于信息增益率准则选择最优分割属性的算法,信息增益比率通过引入一个被称作分裂信息(Split information)的项来惩罚取值较多的属性。
      机器学习面试整理_第69张图片
      回到顶部

分类树和回归树

  • 作为对比,先说分类树,我们知道ID3、C4.5分类树在每次分枝时,是穷举每一个特征属性的每一个阈值,找到使得按照feature<=阈值,和feature>阈值分成的两个分枝的熵最大的feature和阈值。按照该标准分枝得到两个新节点,用同样方法继续分枝直到所有人都被分入性别唯一的叶子节点,或达到预设的终止条件,若最终叶子节点中的性别不唯一,则以多数人的性别作为该叶子节点的性别。

  • 回归树总体流程也是类似,不过在每个节点(不一定是叶子节点)都会得一个预测值,以年龄为例,该预测值等于属于这个节点的所有人年龄的平均值。分枝时穷举每一个feature的每个阈值找最好的分割点,但衡量最好的标准不再是最大熵,而是最小化均方差–即(每个人的年龄-预测年龄)^2 的总和 / N,或者说是每个人的预测误差平方和 除以 N。这很好理解,被预测出错的人数越多,错的越离谱,均方差就越大,通过最小化均方差能够找到最靠谱的分枝依据。分枝直到每个叶子节点上人的年龄都唯一(这太难了)或者达到预设的终止条件(如叶子个数上限),若最终叶子节点上人的年龄不唯一,则以该节点上所有人的平均年龄做为该叶子节点的预测年龄。

  • 组合分类器(将多个分类器的结果进行多票表决或者是取平均值,以此作为最终的结果,整合各个模型的分类结果,得到更合理的决策边界,减少整体错误,实现更好的分类效果)

    • 提升模型精度:整合各个模型的分类结果,得到更合理的决策边界,减少整体错误,实现更好的分类效果
    • 处理过大或过小的数据集:数据集较大时,可以将数据集划分成多个子集,对子集构建分类器;数据集较小时,可通过多种抽样方式(bootstrap)从原始数据集抽样产生多组不同的数据集,构建分类器。
    • 若决策边界过于复杂,则线性模型不能很好地描述真实情况。因此先对于特定区域的数据集,训练多个线性分类器,再将它们集成。机器学习面试整理_第70张图片
    • 比较适合处理多源异构数据(存储方式不同(关系型、非关系型),类别不同(时序型、离散型、连续型、网络结构数据))
      机器学习面试整理_第71张图片
      回到顶部

随机森林

  • 是一个典型的多个决策树的组合分类器。主要包括两个方面:数据的随机性选取,以及待选特征的随机选取。
    • 机器学习面试整理_第72张图片
      机器学习面试整理_第73张图片
      回到顶部

bagging和boosting

  • Bagging的思想比较简单,即每一次从原始数据中根据均匀概率分布有放回的抽取和原始数据大小相同的样本集合,样本点可能出现重复,然后对每一次产生的训练集构造一个分类器,再对分类器进行组合

  • boosting的每一次抽样的样本分布都是不一样的。每一次迭代,都根据上一次迭代的结果,增加被错误分类的样本的权重,使得模型能在之后的迭代中更加注意到难以分类的样本,这是一个不断学习的过程,也是一个不断提升的过程,这也就是boosting思想的本质所在。迭代之后,将每次迭代的基分类器进行集成。那么如何进行样本权重的调整和分类器的集成是我们需要考虑的关键问题
    - 机器学习面试整理_第74张图片

    • 前向分布算法流程
      机器学习面试整理_第75张图片 机器学习面试整理_第76张图片

回到顶部

GBDT

GBDT是以决策树(CART)为基学习器的GB算法,是迭代树,而不是分类树。Boost是"提升"的意思,一般Boosting算法都是一个迭代的过程,每一次新的训练都是为了改进上一次的结果。有了前面Adaboost的铺垫,大家应该能很容易理解大体思想。GBDT的核心就在于:每一棵树学的是之前所有树结论和的残差机器学习面试整理_第77张图片
机器学习面试整理_第78张图片
回到顶部

xgboost

  • Xgboost相比于GBDT来说,更加有效应用了数值优化,最重要是对损失函数(预测值和真实值的误差)变得更复杂。目标函数依然是所有树的预测值相加等于预测值。损失函数如下,引入了一阶导数,二阶导数。:
    机器学习面试整理_第79张图片 机器学习面试整理_第80张图片

  • 常用的误差项有平方误差和逻辑斯蒂误差,常见的惩罚项有l1,l2正则,l1正则是将模型各个元素进行求和,l2正则是对元素求平方。机器学习面试整理_第81张图片

  • xgboost的迭代是以下图中gain式子定义的指标选择最优分割点的

    • 具体的对于某个节点,节点内选择最佳分裂点,候选分裂点计算增益用多线程并行机器学习面试整理_第82张图片
  • 那么如何得到优秀的组合树呢?

    • 一种办法是贪心算法,遍历一个节点内的所有特征,按照公式计算出按照每一个特征分割的信息增益,找到信息增益最大的点进行树的分割。增加的新叶子惩罚项对应了树的剪枝,当gain小于某个阈值的时候,我们可以剪掉这个分割。但是这种办法不适用于数据量大的时候,因此,我们需要运用近似算法。
    • 另一种方法:XGBoost在寻找splitpoint的时候,不会枚举所有的特征值,而会对特征值进行聚合统计,按照特征值的密度分布,构造直方图计算特征值分布的面积,然后划分分布形成若干个bucket(桶),每个bucket的面积相同,将bucket边界上的特征值作为split point的候选,遍历所有的候选分裂点来找到最佳分裂点。
    • 上图近似算法公式的解释:将特征k的特征值进行排序,计算特征值分布,rk(z)表示的是对于特征k而言,其特征值小于z的权重之和占总权重的比例,代表了这些特征值的重要程度,我们按照这个比例计算公式,将特征值分成若干个bucket,每个bucket的比例相同,选取这几类特征值的边界作为划分候选点,构成候选集;选择候选集的条件是要使得相邻的两个候选分裂节点差值小于某个阈值
  • xgboost过拟合预防方法

    • 学习效率参数shrinkage:类似于其它算法的学习效率参数LearningRate。
    • 引入正则项:包括树的叶子节点数量,叶子节点输出值的L1或L2范数。
    • 列(特征)采样:在迭代时只使用一部分特征来构建模型。列采样不仅缩短了计算时间,还提高了模型的预测效果。列采样方法源自于随机森林算法。
    • 行(样本)采样:在迭代时只使用一部分样本来构建模型。

回到顶部

xgboost相比于GBDT的创新之处:

  • 传统GBDT以CART作为基分类器,xgboost还支持线性分类器,这个时候xgboost相当于带L1和L2正则化项的逻辑斯蒂回归(分类问题)或者线性回归(回归问题)。

  • 传统GBDT在优化时只用到一阶导数信息,xgboost则对代价函数进行了二阶泰勒展开,同时用到了一阶和二阶导数。顺便提一下,xgboost工具支持自定义代价函数,只要函数可一阶和二阶求导。

  • xgboost在代价函数里加入了正则项,用于控制模型的复杂度。正则项里包含了树的叶子节点个数、每个叶子节点上输出的score的L2模的平方和。从Bias-variance tradeoff角度来讲,正则项降低了模型的variance,使学习出来的模型更加简单,防止过拟合,这也是xgboost优于传统GBDT的一个特性。

  • Shrinkage(缩减),相当于学习速率(xgboost中的eta)。每次迭代,增加新的模型,在前面成上一个小于1的系数,降低优化的速度,每次走一小步逐步逼近最优模型比每次走一大步逼近更加容易避免过拟合现象;

  • 列抽样(column subsampling)。xgboost借鉴了随机森林的做法,支持列抽样(即每次的输入特征不是全部特征),不仅能降低过拟合,还能减少计算,这也是xgboost异于传统gbdt的一个特性。

  • 忽略缺失值:在寻找splitpoint的时候,不会对该特征为missing的样本进行遍历统计,只对该列特征值为non-missing的样本上对应的特征值进行遍历,通过这个工程技巧来减少了为稀疏离散特征寻找splitpoint的时间开销

  • 指定缺失值的分隔方向:可以为缺失值或者指定的值指定分支的默认方向,为了保证完备性,会分别处理将missing该特征值的样本分配到左叶子结点和右叶子结点的两种情形,分到那个子节点带来的增益大,默认的方向就是哪个子节点,这能大大提升算法的效率。

  • 并行化处理:在训练之前,预先对每个特征内部进行了排序找出候选切割点,然后保存为block结构,后面的迭代中重复地使用这个结构,大大减小计算量。在进行节点的分裂时,需要计算每个特征的增益,最终选增益最大的那个特征去做分裂,那么各个特征的增益计算就可以开多线程进行,即在不同的特征属性上采用多线程并行方式寻找最佳分割点。

回到顶部

deep model

循环神经网络(Recurrent Neural Network, RNN)

机器学习面试整理_第83张图片
在这里插入图片描述
在这里插入图片描述
回到顶部

深度循环神经网络

机器学习面试整理_第84张图片
机器学习面试整理_第85张图片
回到顶部

双向循环神经网络

机器学习面试整理_第86张图片
回到顶部

梯度裁剪

循环神经网络中较容易出现梯度衰减或爆炸,为了应对梯度爆炸,我们可以裁剪梯度(clipping gradient)。假设我们把所有模型参数梯度的元素拼接成一个向量 g,并设裁剪的阈值是 θ。裁剪后梯度的 L2 范数不超过 θ。:
-在这里插入图片描述
回到顶部

LSTM

  • 推导forget gate,input gate,cell state, hidden information等的变化;因为LSTM有进有出且当前的cell informaton是通过input gate控制之后叠加的,RNN是叠乘,因此LSTM可以防止梯度消失或者爆炸;
    机器学习面试整理_第87张图片
    机器学习面试整理_第88张图片

回到顶部

GRU

机器学习面试整理_第89张图片
回到顶部

RNN的梯度消失和梯度爆炸

机器学习面试整理_第90张图片
因为LSTM有进有出且当前的cell informaton是通过input gate控制之后叠加的,RNN是叠乘,因此LSTM可以防止梯度消失或者爆炸
在这里插入图片描述
机器学习面试整理_第91张图片

  • RNN HMM(一旦状态增多,那么HMM的复杂度就急速上升了O(|S|2), 非线性激活函数的固定size的RNN几乎可以拟合任意的数学计算,并且RNN是基于NN的,不但可以用SGD方式训练,而且还可以增加正则项等来缓解过拟合问题,采用滑框形式来融合多个状态,一旦窗口变大,计算复杂度也指数上升)

回到顶部

Cnn

  • 卷积神经网络的核心思想是捕捉局部特征,对于文本来说,局部特征就是由若干单词组成的滑动窗口,类似于N-gram。卷积神经网络的优势在于能够自动地对N-gram特征进行组合和筛选,获得不同抽象层次的语义信息。
    • CNN的三个优点:
      • sparse interaction(稀疏的交互),parameter sharing(参数共享),equivalent respresentation(等价表示)。适合于自动问答系统中的答案选择模型的训练。
  • 对卡在局部极小值的处理方法:1.调节步伐:调节学习速率,使每一次的更新“步伐”不同;2.优化起点:合理初始化权重(weights initialization)、预训练网络(pre-train),使网络获得一个较好的“起始点”,如最右侧的起始点就比最左侧的起始点要好。常用方法有:高斯分布初始权重(Gaussian distribution)、均匀分布初始权重(Uniform distribution)、Glorot 初始权重、He初始权、稀疏矩阵初始权重(sparse matrix)。
    机器学习面试整理_第92张图片
    机器学习面试整理_第93张图片
  • 卷积: 内积(逐个元素相乘再求和)的操作就是所谓的卷积操作
    机器学习面试整理_第94张图片
    机器学习面试整理_第95张图片
    机器学习面试整理_第96张图片
    回到顶部

elmo双向语言模型的目标函数

最大化以上公式
机器学习面试整理_第97张图片机器学习面试整理_第98张图片
回到顶部

BERT

transformer经典架构,翻译encoder-decoder架构,encoder做句子表征,decoder做文本生成。
机器学习面试整理_第99张图片

  • attention类似于人类的注意力机制,比如(播放周杰伦的七里香,他的老婆是谁),那他这个字明显和周杰伦联系更大,所以,需要放更多的注意力在周杰伦上,更符合人类习惯。
    机器学习面试整理_第100张图片
    在这里插入图片描述

  • 多头机制:类似于CNN中通过(多卷积核)进行特征选择,可以抽取不同向量子空间特征(比如颜色可以看成3个通道即3原色),Transformer中先通过切头(spilt)再分别进行Scaled Dot-Product Attention,可以使进行点积计算的维度d不大(防止梯度消失),同时缩小attention mask矩阵,self attention通过attention mask动态编码变长序列,解决长距离依赖(无位置偏差)、可并行计算;单词和句子中的不同部分有不同的关系,slef attention(计算每个单词与其他所有单词之间的关联,利用层层叠加的Self-Attention机制对每一个词得到新的考虑了上下文信息的表征)
    机器学习面试整理_第101张图片
    机器学习面试整理_第102张图片

  • 缩放点积attention:Softmax函数对非常大的输入值会很敏感。这会导致梯度消失,并减慢学习速度,甚至使其完全停止。由于点积的平均值随着嵌入向量维度 k 的增长而增长,所以将点积的值减小一点有助于防止softmax函数的输入变得过大。self-attention关注已经生成的文本的关系,encoder-decoder attention可以关注到原始文本的重要词。

  • Feed-forward :在位置维度计算非线性层级特征;将Multi-Head Attention得到的提炼好的向量再投影到一个更大的空间(论文里将空间放大了4倍)在那个大空间里可以更方便地提取需要的信息(使用Relu激活函数),最后再投影回token向量原来的空间(类似SVM对于比较复杂的问题通过将特征其投影到更高维的空间使得问题简单到一个超平面就能解决)

  • Layer Norm & Residuals:加速训练,使“深度”网络更加健壮;Add代表了Residual Connection,是为了解决多层神经网络训练困难的问题,通过将前一层的信息无差的传递到下一层,可以有效的仅关注差异部分,Norm则代表了Layer

  • Normalization,通过对层的激活值的归一化,可以加速模型的训练过程,使其更快的收敛

  • 由于BERT本身在预训练过程和生成过程的不一致,并没有做生成任务的相应机制,导致在生成任务上效果不佳,不能直接应用于生成任务。

  • 单向 Transformer 作为特征抽取器,Transformer易于并行(RNN弱项);捕获长距离特征能力强(Transformer>LSTM>CNN);

  • Feed Foreword
    -

  • Multi-Head Attention
    机器学习面试整理_第103张图片
    回到顶部

  • Mask Attention
    机器学习面试整理_第104张图片

回顾一下bert好的原因:

  1. 学习通用的语言模型,学习通用的语言学知识
  2. 预训练的任务Masked LM 与 NSP (Next Sentence Prediction)在大多数自然语言理解任务相似或者有关联,bert基础架构transfomer在大多数nlp任务中是适用的,新任务一开始就可以站在更高的起点。
  3. 充分利用大量无监督数据,增加大量的先验知识。
  4. 目标任务的数据和预训练模型的领域相差较小

回到顶部

ALBERT

  • Factorized Embedding Parameterization:说白了就是在词表 V 到 隐层 H 的中间,插入一个小维度 E,多做一次尺度变换。Parameter-sharing
    在这里插入图片描述
    • Parameter-sharing:机器学习面试整理_第105张图片
  • Cross-layer Parameter Sharing
  • Sentence Order Prediction:将负样本换成了同一篇文章中的两个逆序的句子,进而消除“topic prediction”

回到顶部

详解深度学习中的Normalization,BN/LN/WN

  • 独立同分布与白化(去除特征之间的相关性 —> 独立;\使得所有特征具有相同的均值和方差 —> 同分布。)

  • 深度学习中的 Internal Covariate Shift:,深度神经网络涉及到很多层的叠加,而每一层的参数更新会导致上层的输入数据分布发生变化,通过层层叠加,高层的输入分布变化会非常剧烈,这就使得高层需要不断去重新适应底层的参数更新。为了训好模型,我们需要非常谨慎地去设定学习率、初始化权重、以及尽可能细致的参数更新策略。
    机器学习面试整理_第106张图片

  • ICS 会导致什么问题?

    • 简而言之,每个神经元的输入数据不再是“独立同分布”。
    • 其一,上层参数需要不断适应新的输入数据分布,降低学习速度。
    • 其二,下层输入的变化可能趋向于变大或者变小,导致上层落入饱和区,使得学习过早停止。
    • 其三,每层的更新都会影响到其它层,因此每层的参数更新策略需要尽可能的谨慎。
    • 通用变换框架就如下所示:最终得到的数据符合均值为 [公式] 、方差为 [公式] 的分布。
      在这里插入图片描述
    • Batch Normalization —— 纵向规范化,其规范化针对单个神经元进行,利用网络训练时一个 mini-batch 的数据来计算该神经元 xi的均值和方差,其中 , M是 mini-batch 的大小。在这里插入图片描述机器学习面试整理_第107张图片
    • Layer Normalization —— 横向规范化,层规范化就是针对 BN 的上述不足而提出的。与 BN 不同,LN 是一种横向的规范化,如图所示。它综合考虑一层所有维度的输入,计算该层的平均输入值和输入方差,然后用同一个规范化操作来转换各个维度的输入.
    • 机器学习面试整理_第108张图片
    • Weight Normalization —— 参数规范化
      机器学习面试整理_第109张图片
    • Cosine Normalization —— 余弦规范化
    • 机器学习面试整理_第110张图片
    • Normalization 为什么会有效?
      • Normalization 的权重伸缩不变性机器学习面试整理_第111张图片
      • Normalization 的数据伸缩不变性
        机器学习面试整理_第112张图片

回到顶部

残差网络

  • 问题(计算资源的消耗,模型容易过拟合,梯度消失/梯度爆炸问题的产生)
  • 残差块
    机器学习面试整理_第113张图片
  • 残差网络搭建分为两步
    • 使用VGG公式搭建Plain VGG网络
    • 在Plain VGG的卷积网络之间插入Identity Mapping,注意需要升维或者降维的时候加入 [公式] 卷积。
    • 为什么叫残差网络
      机器学习面试整理_第114张图片
    • 残差网络的背后原理
      机器学习面试整理_第115张图片
    • 直接映射是最好的选择
      机器学习面试整理_第116张图片

回到顶部

工具分析

tensorflow

TensorFlow基于数据流图,用于大规模分布式数值计算的开源框架。节点表示某种抽象的计算,边表示节点之间相互联系的张量。

  • Tensorflow是一个通过计算图的形式来表述计算的编程系统,计算图也叫数据流图,可以把计算图看做是一种有向图,Tensorflow中的每一个节点都是计算图上的一个Tensor, 也就是张量,而节点之间的边描述了计算之间的依赖关系(定义时)和数学操作(运算时)。
  • TensorFlow系统架构机器学习面试整理_第117张图片
  • 整个框架以C API为界,分为前端和后端两大部分。
    • 前端:提供编程模型,多语言的接口支持,比如Python Java C++等。通过C API建立前后端的连接,后面详细讲解。
    • 后端:提供运行环境,完成计算图的执行。进一步分为4层
      • 运行时:分为分布式运行时和本地运行时,负责计算图的接收,构造,编排等。
      • 计算层:提供各op算子的内核实现,例如conv2d, relu等
      • 通信层:实现组件间数据通信,基于GRPC和RDMA两种通信方式
      • 设备层:提供多种异构设备的支持,如CPU GPU TPU FPGA等
  • 模型构造和执行流程
    • TensorFlow的一大特点是,图的构造和执行相分离。用户添加完算子,构建好整图后,才开始进行训练和执行,也就是图的执行。大体流程如下
      • 图构建:用户在client中基于TensorFlow的多语言编程接口,添加算子,完成计算图的构造。
      • 图传递:client开启session,通过它建立和master之间的连接。执行session.run()时,将构造好的graph序列化为graphDef后,以protobuf的格式传递给master。
        图剪枝:master根据session.run()传递的fetches和feeds列表,反向遍历全图full graph,实施剪枝,得到最小
      • 依赖子图
      • 图分裂:master将最小子图分裂为多个Graph Partition,并注册到多个worker上。一个worker对应一个Graph Partition。
      • 图二次分裂:worker根据当前可用硬件资源,如CPU GPU,将Graph Partition按照op算子设备约束规范(例如tf.device(’/cpu:0’),二次分裂到不同设备上。每个计算设备对应一个Graph Partition。
      • 图运行:对于每一个计算设备,worker依照op在kernel中的实现,完成op的运算。设备间数据通信可以使用send/recv节点,而worker间通信,则使用GRPC或RDMA协议。
    • 前端多语言实现 - swig包装器
      -机器学习面试整理_第118张图片
      -机器学习面试整理_第119张图片
  • 机器学习面试整理_第120张图片
    • TensorFlow内核架构和源码结构。先从全局上对框架进行理解。
      • 前后端连接的桥梁–Session,重点理解session的生命周期,并通过相关源码可以加深理解Python前端如何调用底层C实现。
      • TensorFlow核心对象—Graph。图graph是TensorFlow最核心的对象,基本都是围绕着它来进行的。graph的节点为算子operation,边为数据tensor。
      • TensorFlow图的节点 – Operation。operation是图graph的节点,承载了计算算子。
      • TensorFlow图的边 – Tensor。Tensor是图graph的边,承载了计算的数据。
      • TensorFlow本地运行时。
        • TensorFlow分布式运行时。和本地运行时有一些共用的接口,但区别也很大。
        • TensorFlow设备层。主要了解设备层的定义规范,以及实现。
        • TensorFlow队列和并行运算。
        • TensorFlow断点检查checkpoint,模型保存Saver,以及可视化tensorboard。这三个为TensorFlow主要的工具。

回到顶部

CRF++

  • Encoder
  • Decoder
  • FeatureIndex
  • Allocator
  • FeatureCache
  • Tagger
  • Path
  • Node
  • CRFEncoderThread
    回到顶部

jieba

  • TF-IDF算法分析

机器学习面试整理_第121张图片
机器学习面试整理_第122张图片

- TextRank算法分析

机器学习面试整理_第123张图片

  • jieba基于词典,建立分词DAG词图,计算全局概率得到基于前缀词典的词频最大切分组合,未登陆词,加载隐马尔可夫hmm概率模型,viterbi算法计算最大概率的分词结果。建立分词DAG词图,计算全局概率得到基于前缀词典的词频最大切分组合,就是计算基于图的动态规划问题。dp[i] = max{ dp[j] + Wij}
    • MP算法:计算图的最大概率路径的分词方式
    • 全切分模式就是输出一个字串的所有分词,不能处理歧义
    • 精确模式:MP算法其用于识别新词的HMM模型和Viterbi算法。
    • 搜索引擎模式提供了精确模式的再分词,将长词再次拆分为短词。
      机器学习面试整理_第124张图片

回到顶部

模型训练算法

最大熵

机器学习面试整理_第125张图片
- 训练:利用拉格朗日乘子法将最大熵模型由一个带约束的最优化问题转化为一个与之等价的无约束的最优化问题,它是一个min max问题。利用对偶问题的等价性,将原始问题转换为一个max min问题。

回到顶部

GIS算法

-
回到顶部

IIS

机器学习面试整理_第126张图片
机器学习面试整理_第127张图片
回到顶部

雅可比矩阵

机器学习面试整理_第128张图片
回到顶部

海森Hessian矩阵

机器学习面试整理_第129张图片
机器学习面试整理_第130张图片
回到顶部

马尔可夫收敛

- 定理告诉我们:只要符合状态总数有限、转移概率恒定以及状态转换自由这三个条件,系统就将达到均衡。

机器学习面试整理_第131张图片

回到顶部

蒙特卡罗方法

  • MCMC方法是用来在概率空间,通过随机采样估算兴趣参数的后验分布。
  • 当所求解问题是某种随机事件出现的概率,或者是某个随机变量的期望值时,通过某种“实验”的方法,以这种事件出现的频率估计这一随机事件的概率,或者得到这个随机变量的某些数字特征,并将其作为问题的解。
  • 工作过程
  • 蒙特卡罗方法的解题过程可以归结为三个主要步骤:构造或描述概率过程;实现从已知概率分布抽样;建立各种估计量。

回到顶部

SGD -> SGDM -> NAG ->AdaGrad -> AdaDelta -> Adam -> Nadam

机器学习面试整理_第132张图片
机器学习面试整理_第133张图片
机器学习面试整理_第134张图片
机器学习面试整理_第135张图片
机器学习面试整理_第136张图片
机器学习面试整理_第137张图片
机器学习面试整理_第138张图片
机器学习面试整理_第139张图片
回到顶部

训练算法:em算法。

机器学习面试整理_第140张图片
回到顶部

极大似然估计用一句话概括就是:知道结果,反推条件θ。

回到顶部

EM算法:

  • 从不完全数据或有数据丢失的数据集(存在隐含变量)中求解概率模型参数的最大似然估计方法。EM的过程就是初始化一套值,然后迭代计算,根据结果再调整值,再迭代,最后收敛。 这犹如在x-y坐标系中找一个曲线的极值,然而曲线函数不能直接求导,因此什么梯度下降方法就不适用了。但固定一个变量后,另外一个可以通过求导得到,因此可以使用坐标上升法,一次固定一个变量,对另外的求极值,最后逐步逼近极值。Jensen不等式(比如:SMO算法、K-Means聚类算法原理)
    机器学习面试整理_第141张图片
    机器学习面试整理_第142张图片
    回到顶部

你可能感兴趣的:(nlp)