什么是co-training

  首先先认识下什么是co-training:

  在计算机视觉中,我们都知道训练一个分类器的时候,我们需要两类样本,分别是正样本和负样本。监督训练又可以成为off-line training,就是提前准备好已经标注过样本,然后对分类器进行训练,最后将训练好的分类器对需要进行分类的东西进行分类。而另一个是online training. 刚开始的时候我们用一些标注过的样本对分类器进行初始化训练。这样分类器就有一定的效果,然后在这之后对未标注的样本进行分类,之后利用相关的方法识别出正样本和负样本,然后再过程中不断改进分类器,从这个过程中不断提高分类器的分类效果。

  co-training最早是有Blum he Mitchell在1998年提出的Combining labeled and unlabeled data with co-training

  早期主要用于1:Web-page classification (Page text\ Hyperlink text))

            2:bilmetric recognition systems(appearance and voice)

  在物体检测中,co-training主要应用于监控中车辆检测和移动物体的识别。

  Co-training是目前很流行的一种半指导机器学习的方法,它的基本思想是:构造两个不同的分类器,利用小规模的标注语料,对大规模的未标注语料进行标注的方法.Co-training方法最大的优点是不用人工干涉,能够从未标注的语料中自动学习到知识。Co-training方法,是有指导和无指导机器学习两者的一个折中办法,它的原则是:在不牺牲性能的前提下,尽量多的使用未带标数据,它从一个小规模的带标的语料库开始,同时使用大规模的未带标语料来进行学习。Co-training算法应用于属性存在天然可分割性的数据集,即数据集的某些属性能够在某种角度上描绘数据的某种特征,而这些属性不是唯一的,有许多不同的属性能够将同样的特征从不同的角度描绘出来,这样的数据属性集就具有天然可分割性,忽视了数据集特性的可分割性.Co-training算法则利用两个不同学习器在数据集的/分割的特性集上独立学习,并结合两个学习器的学习结果作出最后学习结论,这样来达到降低错误率的目的.

  Co-training的描述如下:

  1. 从两个view是看一个分类问题;
  2. 根据不同的角度分别建立一个模型,在标注集下训练每个模型;
  3. 标注未标注的句子,然后找出每个模型都比较高自信度标注的句子;
  4. 以不同的方式挑出这些高自信度的句子;
  5. 把这些句子加入到训练集中,迭代这个过程,直到未标注数据耗尽;
时间: 2024-11-09 08:56:05

什么是co-training的相关文章

Android官方开发文档Training系列课程中文版:手势处理之滚动动画及Scroller

原文地址:http://android.xsoftlab.net/training/gestures/scroll.html 在Android中,滑动经常由ScrollView类来实现.任何超出容器边界的布局都应该将自己内嵌在ScrollView中,以便提供可滚动的视图效果.自定义滚动只有在特定的场景下才会被用到.这节课将会描述这样一种场景:使用scroller显示一种可滚动的效果. 你可以使用Scroller或者OverScroller来收集一些滑动动画所需要的数据.这两个类很相似,但是Ove

2017 UESTC Training for Data Structures

2017 UESTC Training for Data Structures A    水,找区间极差,RMQ怼上去. #include<bits/stdc++.h> using namespace std; #pragma comment(linker, "/STACK:102400000,102400000") #define rep(i,a,b) for (int i=a;i<=b;i++) #define per(i,b,a) for (int i=b;i&

WeChall_Training: Programming 1 (Training, Coding)

When you visit this link you receive a message.Submit the same message back to http://www.wechall.net/challenge/training/programming1/index.php?answer=the_messageYour timelimit is 1.337 seconds 解题: 先在浏览器获取自己的cookie,再用python写了个自动提交的程序,header加上自己的cooki

Training的第二十天

今天接着做前天的活,就是实现把下载下来的jpg格式的图片设置为桌面的功能.要实现这个功能的关键点一个是要调用API(SystemParametersInfo)更换桌面:二是要把下载下来的JPG格式的图片转换成Bmp格式的图片才能够应用为桌面. 由于对API没什么概念,所以我从网上查了下资料并从网上copy了有关该API变成C#的代码和把jpg格式的图片转换成bmp格式图片的代码.接着看懂了里面的代码便自己修改了一下.接下来的是完善这个程序和把它加入到windows自动启动的任务中. 对于程序的完

2014 Multi-University Training Contest 6 Apple Tree(数学题)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4925 Apple Tree Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 176    Accepted Submission(s): 120 Problem Description I've bought an orchard an

hdu 4925 Apple Tree--2014 Multi-University Training Contest 6

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4925 Apple Tree Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 188    Accepted Submission(s): 129 Problem Description I've bought an orchard an

xtu DP Training C.炮兵阵地

炮兵阵地 Time Limit: 2000ms Memory Limit: 65536KB This problem will be judged on PKU. Original ID: 118564-bit integer IO format: %lld      Java class name: Main 司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队.一个N*M的地图由N行M列组成,地图的每一格可能是山地(用"H" 表示),也可能是平原(用"P"表

2014 Super Training #1 F Passage 概率DP

原题: HDU 3366   http://acm.hdu.edu.cn/showproblem.php?pid=3366 本来用贪心去做,怎么都WA,后来看网上原来是一个DP题. 首先按P/Q来做排序,即P越大,Q越小就越好,这样可以确保先选最优的路走. dp[i][j]表示已经到了第i条路(说明前i-1条都没成功的情况),还剩j块钱时能够走出去的概率. 则方程: dp[i][j] = way[i].P + way[i].Q*(dp[i+1][j-1]) + way[i].D*(dp[i+1]

2014 UESTC Training for Data Structures H - Cookies Test

H - Cookies Test Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit Status As chief programmer at a cookie production plant you have many responsibilities, one of them being that the cookies produced and packag

2014 UESTC Training for Data Structures K - 方师傅与栈

K - 方师傅与栈 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit Status 方师傅有一个1?N的排列,排列的顺序是固定的,他想要把这个排列重新排列成他喜欢的顺序. 于是他买了一个栈,他会按顺序将排列扔进栈内,在某些时刻将栈顶元素取出,这样出栈后的排列就可以重新排序啦. 例如,原序列是1,2,他先将1入栈,再将2入栈,然后将2出栈,最后将1出栈,那么新序列就变