`
carus
  • 浏览: 29461 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

(五)训练Part 2

 
阅读更多

将样本数据成功转化为向量表示之后,计算机才算开始真正意义上的“学习”过程。

  再重复一次,所谓样本,也叫训练数据,是由人工进行分类处理过的文档集合,计算机认为这些数据的分类是绝对正确的,可以信赖的(但某些方法也有针对训练数据可能有错误而应对的措施)。接下来的一步便是由计算机来观察这些训练数据的特点,来猜测一个可能的分类规则(这个分类规则也可以叫做分类器,在机器学习的理论著作中也叫做一个“假设”,因为毕竟是对真实分类规则的一个猜测),一旦这个分类满足一些条件,我们就认为这个分类规则大致正确并且足够好了,便成为训练阶段的最终产品——分类器!再遇到新的,计算机没有见过的文档时,便使用这个分类器来判断新文档的类别。

  举一个现实中的例子,人们评价一辆车是否是“好车”的时候,可以看作一个分类问题。我们也可以把一辆车的所有特征提取出来转化为向量形式。在这个问题中词典向量可以为:

   D=(价格,最高时速,外观得分,性价比,稀有程度)

  则一辆保时捷的向量表示就可以写成

   vp=(200万,320,9.5,3,9)

  而一辆丰田花冠则可以写成

   vt=(15万,220,6.0,8,3)

  找不同的人来评价哪辆车算好车,很可能会得出不同的结论。务实的人认为性价比才是评判的指标,他会认为丰田花冠是好车而保时捷不是;喜欢奢华的有钱人可能以稀有程度来评判,得出相反的结论;喜欢综合考量的人很可能把各项指标都加权考虑之后才下结论。

  可见,对同一个分类问题,用同样的表示形式(同样的文档模型),但因为关注数据不同方面的特性而可能得到不同的结论。这种对文档数据不同方面侧重的不同导致了原理和实现方式都不尽相同的多种方法,每种方法也都对文本分类这个问题本身作了一些有利于自身的假设和简化,这些假设又接下来影响着依据这些方法而得到的分类器最终的表现,可谓环环相连,丝丝入扣,冥冥之中自有天意呀(这都什么词儿……)。

  比较常见,家喻户晓,常年被评为国家免检产品(?!)的分类算法有一大堆,什么决策树,Rocchio,朴素贝叶斯,神经网络,支持向量机,线性最小**平方拟合,kNN,遗传算法,最大熵,Generalized Instance Set等等等等(这张单子还可以继续列下去)。在这里只挑几个最具代表性的算法侃一侃。

  Rocchio算法

  Rocchio算法应该算是人们思考文本分类问题时最先能想到,也最符合直觉的解决方法。基本的思路是把一个类别里的样本文档各项取个平均值(例如把所有“体育”类文档中词汇“篮球”出现的次数取个平均值,再把“裁判”取个平均值,依次做下去),可以得到一个新的向量,形象的称之为“质心”,质心就成了这个类别最具代表性的向量表示。再有新文档需要判断的时候,比较新文档和质心有多么相像(八股点说,判断他们之间的距离)就可以确定新文档属不属于这个类。稍微改进一点的Rocchio算法不尽考虑属于这个类别的文档(称为正样本),也考虑不属于这个类别的文档数据(称为负样本),计算出来的质心尽量靠近正样本同时尽量远离负样本。Rocchio算法做了两个很致命的假设,使得它的性能出奇的差。一是它认为一个类别的文档仅仅聚集在一个质心的周围,实际情况往往不是如此(这样的数据称为线性不可分的);二是它假设训练数据是绝对正确的,因为它没有任何定量衡量样本是否含有噪声的机制,因而也就对错误数据毫无抵抗力。

  不过Rocchio产生的分类器很直观,很容易被人类理解,算法也简单,还是有一定的利用价值的(做汉奸状),常常被用来做科研中比较不同算法优劣的基线系统(Base Line)。

  朴素贝叶斯算法(Naive Bayes)

  贝叶斯算法关注的是文档属于某类别概率。文档属于某个类别的概率等于文档中每个词属于该类别的概率的综合表达式。而每个词属于该类别的概率又在一定程度上可以用这个词在该类别训练文档中出现的次数(词频信息)来粗略估计,因而使得整个计算过程成为可行的。使用朴素贝叶斯算法时,在训练阶段的主要任务就是估计这些值。

  朴素贝叶斯算法的公式只有一个

  其中P(d| Ci)=P(w1|Ci) P(w2|Ci) …P(wi|Ci) P(w1|Ci) …P(wm|Ci) (式1)

  P(wi|Ci)就代表词汇wi属于类别Ci的概率。

  这其中就蕴含着朴素贝叶斯算法最大的两个缺陷。

  首先,P(d| Ci)之所以能展开成(式1)的连乘积形式,就是假设一篇文章中的各个词之间是彼此独立的,其中一个词的出现丝毫不受另一个词的影响(回忆一下概率论中变量彼此独立的概念就可以知道),但这显然不对,即使不是语言学专家的我们也知道,词语之间有明显的所谓“共现”关系,在不同主题的文章中,可能共现的次数或频率有变化,但彼此间绝对谈不上独立。

  其二,使用某个词在某个类别训练文档中出现的次数来估计P(wi|Ci)时,只在训练样本数量非常多的情况下才比较准确(考虑扔硬币的问题,得通过大量观察才能基本得出正反面出现的概率都是二分之一的结论,观察次数太少时很可能得到错误的答案),而需要大量样本的要求不仅给前期人工分类的工作带来更高要求(从而成本上升),在后期由计算机处理的时候也对存储和计算资源提出了更高的要求。

  kNN算法则又有所不同,在kNN算法看来,训练样本就代表了类别的准确信息(因此此算法产生的分类器也叫做“基于实例”的分类器),而不管样本是使用什么特征表示的。其基本思想是在给定新文档后,计算新文档特征向量和训练文档集中各个文档的向量的相似度,得到K篇与该新文档距离最近最相似的文档,根据这K篇文档所属的类别判定新文档所属的类别(注意这也意味着kNN算法根本没有真正意义上的“训练”阶段)。这种判断方法很好的克服了Rocchio算法中无法处理线性不可分问题的缺陷,也很适用于分类标准随时会产生变化的需求(只要删除旧训练文档,添加新训练文档,就改变了分类的准则)。

  kNN唯一的也可以说最致命的缺点就是判断一篇新文档的类别时,需要把它与现存的所有训练文档全都比较一遍,这个计算代价并不是每个系统都能够承受的(比如我将要构建的一个文本分类系统,上万个类,每个类即便只有20个训练样本,为了判断一个新文档的类别,也要做20万次的向量比较!)。一些基于kNN的改良方法比如Generalized Instance Set就在试图解决这个问题。

  下一节继续讲和训练阶段有关的话题,包括概述已知性能最好的SVM算法。明儿见!(北京人儿,呵呵)

 

分享到:
评论

相关推荐

    14G的中文预训练数据part3

    这个数据集分为多个部分,这里是第三部分,暗示可能还有其他部分如“part1”和“part2”,这些组合起来可能构成了一个完整的、大规模的中文语料库。 BERT,全称为Bidirectional Encoder Representations from ...

    中文维基glove词向量(已训练)-part2

    中文维基glove词向量(已训练)-part2中文维基glove词向量(已训练)-part2

    SPC教育训练part1.pptx

    SPC教育训练part1.pptx

    级联训练车牌-part2

    Adaboost训练车牌定位.zip-part2 使用Adaboost训练车牌定位介绍了《使用Adaboost训练车牌定位》的前两个 步骤: 1.准备训练样本图片,包括正例及反例样本 2.生成样本描述文件 3.训练样本 4.目标识别

    英文BERT论文预训练数据part2

    标题 "英文BERT论文预训练数据part2" 描述中提到的内容是关于BERT模型的预训练数据集的一部分。BERT,全称为Bidirectional Encoder Representations from Transformers,是由Google在2018年提出的革命性自然语言处理...

    14G的中文预训练数据part2

    标题中的“14G的中文预训练数据part2”指的是一个大型的中文文本数据集,其大小为14GB,这是专门为BERT模型的预训练准备的一部分。BERT,全称为Bidirectional Encoder Representations from Transformers,是由...

    FaceVid2Vid预训练模型-PARTB

    该模型文件是 FaceVid2Vid模型的预训练好的模型 * 论文地址:One-Shot Free-View Neural Talking-Head Synthesis for Video Conferencing * 代码地址:...

    英文BERT论文预训练数据part1

    标题 "英文BERT论文预训练数据part1" 指的是一个与BERT模型相关的研究资料集,它是BERT模型在英文环境下的预训练数据的第一部分。BERT,全称为Bidirectional Encoder Representations from Transformers,是由Google...

    北大青鸟5.0 2期 职业导向训练(COT).part2.rar

    北大青鸟5.0 2期 职业导向训练(COT).part2.rar 4个分卷之二

    EAST 自然场景下的文字识别算法 预训练文件 part2

    EAST: An Efficient and Accurate Scene Text Detector 自然场景下的文字识别算法 预训练文件 part2

    机器学习训练样本part1

    机器学习训练样本part1, fcis_coco-0000.params.00000001

    rq-vae 预训练模型 ffhq数据集 part2

    【 rq-vae 预训练模型与ffhq数据集 Part2 】 在深入探讨rq-vae预训练模型和ffhq数据集之前,我们先要理解什么是预训练模型和数据集。预训练模型是在大规模数据上预先训练的机器学习模型,其目的是通过在大量数据上...

    coco训练集5k.part

    coco训练集5k.part(2014),包含coco训练集的图片路径(相对路径)如果发生找不到图片的情况,可修改为绝对路径

    14G的中文预训练数据part1

    标题中的“14G的中文预训练数据part1”指的是一个大型的中文文本数据集,其大小为14GB,这是专门为BERT模型的预训练准备的一部分。预训练是深度学习中一个关键步骤,特别是对于像BERT这样的语言模型,它通过在大量无...

    pets3 考点详解与强化训练 听力部分A1 part2

    pets3 考点详解与强化训练 听力部分A1 part2 提高应试听力

    人脸识别训练集-part-1

    "part1"可能表明这是一个分批发布的大型数据集的一部分,后续可能还有其他部分(如part2、part3等)。 训练过程通常涉及使用卷积神经网络(CNNs),这是一种特别适合处理图像数据的网络结构。CNN通过多层过滤器来...

    中文维基glove词向量(已训练)-part1

    中文维基glove词向量(已训练)-part1,中文维基glove词向量(已训练)-part1

    全国大学生电子设计竞赛训练教程 .part2

    全国大学生电子设计竞赛训练教程 作者王彦 陈文光 朱卫华 编者黄智伟.part2

    自然场景下的文字识别算法 预训练文件 part2

    8. **部分2的含义**:在预训练文件的“part2”可能意味着这是一个连续的模型训练过程的第二阶段,或者是针对特定任务的进一步优化版本,比如增加了更多类型的字体或场景的数据,或者优化了模型的结构以提高特定指标...

    SCUT_HEAD_Part_A.zip

    SCUT_HEAD_Part_A数据集的教室环境和丰富的标注信息,使得训练出的模型更能应对这些挑战。此外,通过对模型进行微调或融合其他算法,可以进一步提高检测效果。 总结起来,SCUT_HEAD_Part_A.zip是一个针对人头检测的...

Global site tag (gtag.js) - Google Analytics