经典机器学习系列(十三)【结构化学习】(二)

简介: 经典机器学习系列(十三)【结构化学习】(二)

此时问题又转变成了

image.png

 上述问题就跟SVM一样,转换成了一个凸二次规划问题。

  现在的问题就是约束(constraints)太多了,在这么多约束的情况下如何来做呢?


Cutting Plane Algorithm


  虽然参数空间中有很多约束(constraints),但是大部分的约束对我们找的结果是没有影响的。(Red line是我们需要的两个constraint,而例如绿色的constraint即使忽略,也不会对结果产生影响)。

  如果我们能够找到只与结果有关的约束项(work set),我们的求解就会比较容易。约束条件可以改为对于任意的 n nny ∈ A n 有:

image.png

现在的问题就是我们如何来找到这样一个working setA n \mathbb{A}^{n}An? 我们可以通过迭代的方法来做。

  1. 为每一个样本初始化一个空的working setA n \mathbb{A}^{n}An
  2. 我们只需要考虑working set里面的y yy,求解上述约束最优化二次问次,能够求解出一个新的w ww
  3. 依据w ww,重新找一个working set成员,这样working set就不一样了。(每次找没有满足约束最严重的那一个约束,将其添加到working set中,如何来找到最严重的这一项呢?不满足约束的条件可表示为:w ′ ⋅ ( ϕ ( x , y ^ ) − ϕ ( x , y ) ) < Δ ( y ^ , y ) − ε ′ w^{\prime} \cdot(\phi(x, \hat{y})-\phi(x, y))<\Delta(\hat{y}, y)-\varepsilon^{\prime}w(ϕ(x,y^)ϕ(x,y))<Δ(y^,y)ε,因此当Δ ( y ^ , y ) − ε ′ − w ′ ⋅ ( ϕ ( x , y ^ ) − ϕ ( x , y ) ) \Delta(\hat{y}, y)-\varepsilon^{\prime}-w^{\prime} \cdot(\phi(x, \hat{y})-\phi(x, y))Δ(y^,y)εw(ϕ(x,y^)ϕ(x,y))值最大的时候就是最难搞的那个约束,也就是求解哪个y yy对应的约束,找到y yy就找到了对应的约束。对于y yy来说,ε ′ \varepsilon^{\prime}εw ′ ⋅ ϕ ( x , y ^ ) w^{\prime} \cdot \phi(x, \hat{y})wϕ(x,y^)是不变项,因此我们需要求解的y yyarg ⁡ max ⁡ y [ Δ ( y ^ , y ) + w ⋅ ϕ ( x , y ) ] \arg \max _{y}[\Delta(\hat{y}, y)+w \cdot \phi(x, y)]argmaxy[Δ(y^,y)+wϕ(x,y)]
  4. 再得到一个w ww,再重新找到一个新的working set,不断地循环。

  

上述算法用于分类问题也是一样,甚至用DNN去替代上述抽取特征的步骤也同样是可以的。


Sequence Labeling Problem


  Sequence Labeling Problem说的是我们需要找一个函数f ff,它的输入是一个Sequence,输出也是一个Sequence


Hidden Markov Model (HMM)


  隐马尔可夫模型(Hidden Markov Model,HMM)大体上可以分为两步:1. 基于语法生成一个合法的词性序列(generate a POS sequence based on the grammar);2. 在第一步生成的词性序列的基础上,基于字典生成一个句子序列(gengerate a sentence based on the POS sequence;based on a dictionary)。

  1. 语法可以假设成一个Markov Chain,那语法长什么样子呢?假设我们现在要产生一句话,那句首的第一个词汇有0.5的概率是一个冠词,0.4的概率是一个专有名词,0.1的概率是一个动词这样。第二个动词就在第一个词汇之上再产生下一个词的概率:

  基于第一步,我们可以计算出一个词性序列的概率。

  1. 基于这个词性序列,我们可以计算出在第一步生成的合法词性序列的条件下生成对应句子的概率:


image.png

 接下来我们就需要从训练数据中去获取这些概率值,最简单的方法就是直接统计。

  假设我们现在要做一个词性标注的问题,就是给定句子序列x ,找词性序列y y 其实是隐变量,如何把y 找到呢?最有可能的y yy就是给定x ,能够使得P ( y ∣ x ) 最大的那个y ,就是最有可能的词性序列y


image.png

可以发现我们需要遍历所有的 y 才能求解上述问题。如果序列长度为 L ,词性序列为 ∣ S ∣ 的话,我们会有 ∣ S ∣ 种可能,如何来做呢?

Viterbi algorithm

  Viterbi algorithm 算法求解上述问题算法复杂度仅有image.png

HMM - Summary

  HMM也是structured learning的一种方法,structured learning的方法需要解决三个问题,HMM是如何解决的呢?


image.png

HMM的方法也存在一些缺点:


  1. 计算转移概率和输出概率是分开计算的,认为其是相互独立的。然而序列标注问题不仅和单个词相关,而且和观察序列的长度,单词的上下文,等等相关。因此x xxy yy会条件独立吗?
  2. 目标函数和预测目标函数不匹配问题,HMM学到的是状态和观察序列的联合分布P ( Y , X ),而预测问题中,我们需要的是条件概率P ( Y ∣ X )

Conditional Random Field (CRF)


  条件随机场对隐马尔可夫模型进行了改进。CRF同样要描述p ( x , y )假设概率P ( x , y ) 正比于一个函数。

image.png

Z ( x ) 是一个简化,因为分母的值只与x 有关。


CRF的训练准则是找到满足的权值向能够在最大化目标函数。能够最大化我们所观察到的同时,最小化我们没有观察到的。如给定训练数据image.png其中image.png

image.png

CRF - Summary

image.png

Structured Perceptron/SVM


20200516172551721.png

HMM比较。CRF没有HMM那样严格的独立性假设条件,因而可以容纳任意的上下文信息。CRF模型解决了标注偏置问题,去除了HMM中两个不合理的假设,当然,模型相应得也变复杂了。因此训练代价大、复杂度高。


参考


【1】https://www.youtube.com/watch?v=5OYu0vxXEv8&list=PLJV_el3uVTsNHQKxv49vpq7NSn-zim18V

【2】https://www.bilibili.com/video/BV1Rt41197Dj?p=3

相关文章
|
1月前
|
机器学习/深度学习 算法
【机器学习】迅速了解什么是集成学习
【机器学习】迅速了解什么是集成学习
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
【机器学习】机器学习、深度学习、强化学习和迁移学习简介、相互对比、区别与联系。
机器学习、深度学习、强化学习和迁移学习都是人工智能领域的子领域,它们之间有一定的联系和区别。下面分别对这四个概念进行解析,并给出相互对比、区别与联系以及应用场景案例分析。
92 1
|
3月前
|
机器学习/深度学习 开发者 Python
Python 与 R 在机器学习入门中的学习曲线差异
【8月更文第6天】在机器学习领域,Python 和 R 是两种非常流行的编程语言。Python 以其简洁的语法和广泛的社区支持著称,而 R 则以其强大的统计功能和数据分析能力受到青睐。本文将探讨这两种语言在机器学习入门阶段的学习曲线差异,并通过构建一个简单的线性回归模型来比较它们的体验。
67 7
|
3月前
|
机器学习/深度学习 运维 算法
【阿里天池-医学影像报告异常检测】3 机器学习模型训练及集成学习Baseline开源
本文介绍了一个基于XGBoost、LightGBM和逻辑回归的集成学习模型,用于医学影像报告异常检测任务,并公开了达到0.83+准确率的基线代码。
71 9
|
3月前
|
机器学习/深度学习
【机器学习】模型融合Ensemble和集成学习Stacking的实现
文章介绍了使用mlxtend和lightgbm库中的分类器,如EnsembleVoteClassifier和StackingClassifier,以及sklearn库中的SVC、KNeighborsClassifier等进行模型集成的方法。
57 1
|
3月前
|
机器学习/深度学习 人工智能 算法
AI人工智能(ArtificialIntelligence,AI)、 机器学习(MachineLearning,ML)、 深度学习(DeepLearning,DL) 学习路径及推荐书籍
AI人工智能(ArtificialIntelligence,AI)、 机器学习(MachineLearning,ML)、 深度学习(DeepLearning,DL) 学习路径及推荐书籍
132 0
|
4月前
|
机器学习/深度学习 算法 前端开发
集成学习(Ensemble Learning)是一种机器学习技术,它通过将多个学习器(或称为“基学习器”、“弱学习器”)的预测结果结合起来,以提高整体预测性能。
集成学习(Ensemble Learning)是一种机器学习技术,它通过将多个学习器(或称为“基学习器”、“弱学习器”)的预测结果结合起来,以提高整体预测性能。
|
4月前
|
机器学习/深度学习 人工智能 缓存
人工智能平台PAI使用问题之如何配置学习任务
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
5月前
|
机器学习/深度学习 算法 前端开发
机器学习中的集成学习(二)
**集成学习概述** 集成学习通过结合多个弱学习器创建强学习器,如Bagging(Bootstrap Aggregating)和Boosting。Bagging通过随机采样产生训练集,训练多个弱模型,然后平均(回归)或投票(分类)得出结果,减少方差和过拟合。Boosting则是迭代过程,每个弱学习器专注于难分类样本,逐步调整样本权重,形成加权平均的强学习器。典型算法有AdaBoost、GBDT、XGBoost等。两者区别在于,Bagging模型并行训练且独立,而Boosting模型间有依赖,重视错误分类。
|
5月前
|
机器学习/深度学习 人工智能 自然语言处理
机器学习中的集成学习(一)
集成学习是一种将多个弱学习器组合成强学习器的方法,通过投票法、平均法或加权平均等策略减少错误率。它分为弱分类器集成、模型融合和混合专家模型三个研究领域。简单集成技术包括投票法(用于分类,少数服从多数)、平均法(回归问题,预测值取平均)和加权平均法(调整模型权重以优化结果)。在实际应用中,集成学习如Bagging和Boosting是与深度学习并驾齐驱的重要算法,常用于数据竞赛和工业标准。

热门文章

最新文章

下一篇
无影云桌面