【长期更新】日常学习中遇到的知识点


日积月累,知识积累!!!ƪ(˘⌣˘)ʃ
这里是我正在总结的面试中可能遇到的手撕机器学习算法代码示例,以及作为Nlper不得不掌握的相关的Bert做四类下游任务的实战!!仓库地址在此: Machine_learning_code_interviews

1. 深究交叉熵损失(Cross-entropy)和平方损失(MSE)的区别

参考:CE与MSE
总结来说:
1.交叉熵loss的权重更新快,其梯度和绝对误差成正比;
2.MSE是非凸优化问题,而CE是凸优化问题。
因此在分类问题用cross- entropy,回归问题用mean square error。

2. 强化学习中的熵正则化

参考:熵正则化

3. GAT图注意力网络—ICLR2018

参考:GAT-图注意力网络GAT论文

  • related work

    • GCN的局限性:
      • 无法处理动态图的问题,即训练阶段和测试阶段需要处理的graph不同。
      • 存在处理有向图的瓶颈,不容易实现分配不同的权重给neighbor
      • 对于一个图结构训练好的模型,不能运用于其他图结构(自称半监督学习)
  • contribution

    • 引入了masked self=attentional layer 改进图卷积的缺点
    • 对于不同的neighbor分配不同的权重,不需要矩阵运算
  • 对待图结构的数据有两种,谱方法和非谱方法(基于空间)

4. 知识图谱知识表示方法汇总

  • 知识图谱嵌入(KGE)
  • 知识图谱嵌入的Translate模型汇总(TransE,TransH,TransR,TransD)
      通常来说,我们使用三元组(head, relation, tail)来表示知识,这里的头尾是实体,使用one-hot这种非分布式编码的方式 1.无法拓展到更大规模的知识,2.也不利于进行各种实体与关系之间的推理。
      受到了word2vec的启发,它是一种神经概率的语言模型,是通过神经网络进行训练,其中有CBOWSkip-gram模型,基于 Hierarchical Softmax 或 Negative Sampling 来近似计算,目的是提高训练速度并改善词向量的质量。
  • TransE:基于实体和关系的分布式向量表示,利用了词向量的平移不变现象,如C(king)−C(queen)≈C(man)−C(woman),这也是源自于word2vec中发现的现象,说明了词向量可以获取词之间的某种隐含关系。学习的目标是:d(h+r, t)即不断调整头实体向量与关系向量和与尾实体尽可能接近,这里的距离定义使用L1或L2范数;负采样的margin-loss训练方法,L(y, y’) = max(0, margin - y + y’) (y是正样本分数,y‘是负样本得分 y=||h+r-t||);
    • 缺点:该模型只能处理一对一的关系,不适合一对多/多对一关系,例如:(Oriental Pearl TV Tower, location, Shanghai)和(Zheng Kai, location, Shanghai)。经过训练,“Oriental Pearl TV Tower”实体向量将非常接近“Zheng Kai”实体向量。但实际上它们没有这样的相似性。
  • TransH:目标是处理一对多/ 多对一 /多对多关系,并且不增加模式的复杂性和训练难度,基本思想:将关系解释为超平面上的转换操作。每个关系有两个向量,超平面的范数向量Wr和超平面上的平移向量(dr)。损失函数和训练方法与TransE相同。
    在这里插入图片描述
      和TransE模型的代码几乎相同。唯一的区别是计算投影向量的步骤。在这一步之前,我们应该将w_r标准化为长度1。
    在这里插入图片描述

5. 预训练模型与知识图谱相结合

参考论文

6. BERT相关知识以及它为什么能解决一词多义问题

首先来说Bert模型由 1.输入层(Embedding);2. 编码层(Tansformer encoder);3. 输出层三部分组成。
(1) Embedding
  输入有三种特征的emb(Token+Segment+Position)相加,如下图所示:
在这里插入图片描述
其中的Token Emb是词向量的嵌入表达;目前针对中文来说只支持字级别的嵌入;Segment Emb是指词的句子级别嵌入,针对双任务输入任务标记不同的句子;Position Emb指的词的位置特征,这里是动态可训练的(相比transformer中的位置编码)
(2) Encoder
  使用的是具有强大特征提取能力的Transformer中encoder部分结构,同时具有RNN提取长距离依赖关系的能力和CNN并行计算的能力,这两种能力主要是得益于Transformer-encoder中的self-attention结构,其具体结构包括了多头自注意力+缩放点积+残差连接和LN+前馈层+求和层归一化,——为什么transformer 使用 layer normalization,而不是其他的归一化方法?
(3) Output
Bert预训练的时候使用了两大任务联合训练,根据任务不同其输出也是不同,两大任务是掩码语言模型(MLM)任务和句子连贯性判定(NSP)
MLM:随机将15%的词mask,通过其他词来预测被遮盖的词,通过迭代训练学习到上下文特征、语法结构、句法特征等,保证了特征提取的全面性。其中,15%mask的词当中,80%情况下试直接使用 mask替换这个词,10%的情况是随机选取任意词替换,剩余10%保持不变。这么做的主要原因是在后续的微调任务中是不会出现mask标识的,可以削弱之后微调输入与预训练输入不匹配的现象,另一个好处是预测词汇的时候模型并不知道对应位置的词汇是否为正确的词汇(10%概率),这也就迫使模型更多依赖上下文信息来预测词汇,并且赋予了模型一定纠错能力。
NSP
输入句子A和句子B,判断句子B是否是句子A的下一句,通过迭代训练,可以学习到句子间的关系,这对于文本匹配类任务显得尤为重要。

综上所述:Bert的特点有:(1)真正的双向表示;(2)动态表征,动态调整词向量解决了word2vec无法表示一词多义的问题;(3)并行运算的能力;(4)易于迁移学习,直接利用预训练好的bert作为当前任务的词嵌入层后续针对性的构建自己的模型即可。

更多内容参考源自:万字长文带你纵览 BERT 家族

为什么Bert能区分一词多义?

7. 贝叶斯决策理论

首先这里先谈一谈对先验概率后验概率的理解,
先验概率是 以全事件为背景下,A事件发生的概率,P(A|Ω)
后验概率是 以新事件B为背景下,A事件发生的概率, P(A|B)
全事件一般是统计获得的,所以称为先验概率,没有实验前的概率
新事件一般是实验,如试验B,此时的事件背景从全事件变成了B,该事件B可能对A的概率有影响,那么需要对A现在的概率进行一个修正,从P(A|Ω)变成 P(A|B),所以称 P(A|B)为后验概率,也就是试验(事件B发生)后的概率(以上参考自知乎老哥)

机器学习中的MLE、MAP、贝叶斯估计
先导知识:假设空间(Hypothesis Space)
机器学习中包含有线性回归、支持向量机、决策树、GBDT等等,当我们选择一个模型后,就相当于我们选择了一个假设空间,然后我们通常会在这个空间下选择优化算法去求解最好的解。
第一种策略 : MLE(最大似然估计):一般的学习过程分成了“学习过程”和“预测过程”,从已知的训练数据中选出最优的答案,就可以回答问题给出解答。
第二种策略 : MAP(最大后验估计):与第一种策略的区别在于我们会接受一定的建议(先验知识),然后结合第一种策略完成最终的答案预测。
然后大家可能会有疑惑如何将建议个之前的策略结合在一起的这个时候我们需要引出一个著名的定理贝叶斯定理。贝叶斯定理的原理就是在先验机率的基础上,纳入新事件的资讯来更新先验机率,这样算出来的机率便叫做后验机率(posteriorprobability)。
P(A|B) = P(A)*P(B|A)/P(B)
第三种策略:Bayesian(贝叶斯模型)
1.每一个模型定义了一个假设空间,一般假设空间都包含无穷的可行解;
2.MLE不考虑先验(prior),MAP和贝叶斯估计则考虑先验(prior);
3.MLE、MAP是选择相对最好的一个模型(point estimation), 贝叶斯方法则是通过观测数据来估计后验分布(posterior distribution),并通过后验分布做群体决策,所以后者的目标并不是在去选择某一个最好的模型;
4.当样本个数无穷多的时候,MAP理论上会逼近MLE;
5.贝叶斯估计复杂度大,通常用MCMC等近似算法来近似

常用的朴素贝叶斯分类算法:
首先我们有一个类别集合C和一个特征集合I,然后我们需要为每个样本构造一个f的分类器。
在这里插入图片描述
即求出我们最终的P(类别|特征)即可,任务完成,这就是贝叶斯分类的核心算法。但这种情况下可能存在某些概率值为0,毕竟实际情况下由于数据的稀疏性同时满足很多特征的条件难以保证。
因此朴素贝叶斯加了一个条件,是各特征之间相互独立,因此朴素一次的来源就是加了条件独立性假设,同样这也会牺牲一定的分类准确度。但这样该等式就可以转换为:
P(特征|类别) = P(特征1|类别)* P(特征2|类别)* P(特征3|类别)…
P(特征) = P(特征1)*P(特征2)*P(特征3)…

中心极限定理 (Central limit theorem,CLT )是 概率论 中的一组定理。 中心极限定理说明,在适当的条件下,大量相互独立 随机变量 的均值经适当标准化后依分布收敛于标准正态分布,即大量随机变量近似服从正态分布。 因此数据量够大的情况下,我们可以近似将频率约等于概率。

朴素贝叶斯分类优缺点:
优点
(1)算法逻辑简单,易于实现
(2)分类过程中时空开销小
缺点
理论上,朴素贝叶斯模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为朴素贝叶斯模型假设属性之间相互独立,这个假设在实际应用中往往是不成立的,在属性个数比较多或者属性之间相关性较大时,分类效果不好。

8. LR原理与推导

  1. LR的假设:
    (1) 第一假设:数据符合伯努利分布
    在这里插入图片描述
    (2) 第二假设:样本概率函数为Sigmoid

  2. LR原理:
    线性回归与逻辑函数的结合组成逻辑回归模型方程
    在这里插入图片描述

  3. 因此也可以根绝确定了一个决策函数:
    一个机器学习的模型,实际上是把决策函数限定在某一组条件下,这组限定条件就决定了模型的假设空间。当然,我们还希望这组限定条件简单而合理。而逻辑回归模型所做的假设是:
    在这里插入图片描述
    正例的决策函数为:
    在这里插入图片描述
    选择0.5作为阈值是一般的做法,阈值的选择可以根据不同的情况,如果对正例的判别准确性要求高,可以选择阈值大一些,对正例的召回要求高,则可以选择阈值小一些。

  4. LR训练的损失函数:y是标签,p是预测的概率分数
    最大化似然度:L(θ) = π p^y * (1-p)^(1-y)
    取对数可得对数似然度:l(θ) = ∑ ylog( p)+(1-y)log(1-p)
    然后取整个数据集上的平均log损失:-1/N * l(θ)
    即在逻辑回归模型中,我们最大化似然函数和最小化log损失函数实际上是等价的
    然后采用梯度下降算法对LR进行训练:
    在这里插入图片描述

  5. LR特征工程
    LR适合的是离散特征,不适合特征空间较大的情况。LR的可解释性较好。

9. 提升树GBDT

10. 如何防止过拟合

定义:为了得到一致假设而使假设变得过度复杂称为过拟合,**过拟合表现为训练好的模型在训练集上效果很好,但是在测试集上效果差。**也就是说模型的泛化能力弱。

  1. 数据集扩增(Data Augmentation):
    往往目前以数据驱动的模型,更多的数据往往胜过了一个更好的模型;比如在物体分类问题上,数据扩增已经成为了一项特殊并有效的技术。物体在图像中国的位置、姿态、尺度,整体图片敏感度等都不会影响分类的结果,所以我们可以通过图像的平移、翻转、缩放、切割等手段将数据成倍的扩充。或者是在语音识别领域。加入噪声也被看做成一种数据扩增的方法。

  2. 改进模型:过拟合问题通常由两个原因造成的,数据太少和模型太复杂。数据扩增是增加数据量,下面介绍下使用合适的复杂模型来防止过拟合问题。
    2.1 Early Stoping
    训练过程中记录到目前为止最好的验证正确率,当连续n次validation acc没有达到最佳的情况时停止。
    2.2 正则化 Regularization
    手推公式带你轻松理解L1/L2正则化
    损失函数分为经验风险损失函数和结构风险损失函数,结构风险损失函数就是经验损失函数+表示模型复杂度的正则化,正则项通常选择L1和L2正则化。结构风险损失函数能够有效地防止过拟合。L1与L2正则是通过在损失函数中增加一项对网络参数的约束,使得参数渐渐变小,模型趋于简单,以防止过拟合。
    L1 惩罚项的目的是使权重绝对值最小化。公式如下:
    在这里插入图片描述
    θ这里代表的网络中的参数,超参数λ是人为设定。

    L2 惩罚项的目的是使权重的平方最小化。公式如下:
    在这里插入图片描述
    总述:如果数据过于复杂以至于无法准确地建模,那么L2是更好的选择,因为它能够学习数据中呈现的内在模式。而当数据足够简单,可以精确建模的话,L1更合适。对于我遇到的大多数计算机视觉问题,L2正则化几乎总是可以给出更好的结果。然而L1不容易受到离群值的影响。所以正确的正则化选项取决于我们想要解决的问题。
    从数学的角度上来理解,对于我们的求导及梯度更新的过程中,加入对网络参数的正则项,L1是会使得网络参数产生为0的权值,即能够剔除某些特征,产生稀疏效果;L2是会在θ前边加一个系数,使得网络参数快速减小,但是难以收敛到0,所以产生的是平滑的效果。

    2.3 Dropout
    有点类似于集成学习的感觉(集成学习将多个模型集成在一起,降低单个模型的过拟合风险)。每一批数据由于随机性剔除部分神经元,使得网络具有一定的稀疏度,从而减轻了不同特征之间的协同效应,同时整个网络也是部分参数被更新了,减弱消除了神经元间的联合适应性,增强神经网络的泛化能力和鲁棒性
    2.4 多任务学习和BN等
    深度学习中两种多任务学习模式:隐层参数的硬共享和软共享

11. Transformer中的位置编码

这里也是偶尔看到苏剑林大神写的一篇博文,系统地分析了目前的绝对位置编码和相对位置编码;可以参考以下两篇
1.让研究人员绞尽脑汁的Transformer位置编码
2.旋转式的位置编码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郝同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值