self-trainning, co-trainning
self-trainning, co-trainning
- 为什么要使用半监督学习算法
- self-trainning
- 算法流程
- 建议
- 缺点
- co-trainning
- 区别
- 原则
- 应用
- 优点
- 总结
- co-trainning 改进
为什么要使用半监督学习算法
一般而言,当训练数据量过少时,监督学习得到的模型效果不能满足需求。
- 样本的分布不能真正代表真实数据的分布特征
- 数据量过少不能满足训练学习的要求
导致训练数据得到的模型会出现不能正确找到真实数据的分类边界问题,因此用半监督学习来增强效。
- 利用现有数据模拟出真实数据在特征空间的分布特点
- 在此基础上确定分类边界,即确定P(X) 和P(Y|X)
self-trainning,co-trainning 都是半监督分类算法。
self-trainning
self-trainning的假设是利用现有训练数据得到的模型,对无标签数据进行预测,置信度高的数据更可能被正确赋予了标签,所以可以用于加入训练集。
算法流程
- 利用现有训练数据训练模型,预测无标签数据
- 将置信度比较高的一部分无标签数据和它们被模型赋予标签一起加入训练集
- 如果满足训练集和模型符合要求,则输出当前的训练集和模型, 否则, 回到1
这是一个迭代和开放的过程,3里的要求是操作者自身的主观意愿,型的选取也是无限制的(SVM,RM,LR等等都可以)
建议
- 选取样本的时候不但要考虑置信度,还要考虑置信度的差值,只有样本在某一类别的置信度明显高于其他所有类别的置信度时,才能选取到训练集中去。
- 迭代的过程中需要不断增强对新样本选取的要求。
缺点
容易出现“走偏”
co-trainning
针对self-trainning缺陷,不再是自己学习,而且互相学习。在每次迭代中都得到两个模型,而且各自有独立的训练集。算法过程与self-trainning相似。
区别
有两个训练集(基于原始训练集而来,随机划分得到的,互补),每次迭代各自训练出一个模型,并将置信度高的样本加入到对方的训练集中。注意,是加入到对方的训练集,不是自己的。下次迭代依然是基于各自的训练集再训练得到模型。
原则
在不牺牲性能的前提下,尽量多的使用未带标数据,它从一个小规模的带标的语料库开始,同时使用大规模的未带标语料来进行学习。
应用
Co-training算法应用于属性存在天然可分割性的数据集,即数据集的某些属性能够在某种角度上描绘数据的某种特征,而这些属性不是唯一的,有许多不同的属性能够将同样的特征从不同的角度描绘出来,这样的数据属性集就具有天然可分割性,忽视了数据集特性的可分割性.Co-training算法则利用两个不同学习器在数据集的/分割的特性集上独立学习,并结合两个学习器的学习结果作出最后学习结论,这样来达到降低错误率的目的.
优点
- 不用人工干涉,能够从未标注的语料中自动学习到知识。
- 两个模型起到了相互校正的效果,一定程度上防止了半监督的“走偏”,但是有前提条件。训练模型所用的特征集合需要时不同的特征集合
模型的选取同样无所谓,甚至在两个训练集上可以选取不同的算法来训练模型。
总结
大部分情况下验证集数据的选取其实都是来源于最初的有标签的数据,所以训练集的问题,验证集一般同样存在,比如,量过少(缺乏代表性,具有偶然性),分布不均衡。这样的话,使用验证集来评价半监督学习的结果本身是存在问题的。当然,如果你的验证集建立的很完善,那就完全是可以的。
co-trainning 改进
不给未标记的样本分配标记,而是给未标记的样本分配概率标签,这些标签可以通过在每个视图中运行EM(期望和最大化)从一个迭代更改到另一个迭代。这种被称为Co-EM的算法在许多问题上都优于协同训练,但是需要每个视图的分类器来生成类概率。通过概率方法重新构建支持向量机。支持向量机的CO-EM版本。
将协同训练样式算法从分类问题扩展到回归问题。提出了一种名为CoREG的算法,它使用了两个k近邻(kNN)回归函数。在学习过程中,每个回归子都为另一个标记了未标记的数据。为了选择合适的未标记示例进行标记,CoREG通过参考未标记示例的标记对标记示例的影响来估计标记置信度。最后的预测是通过对两个回归函数生成的回归估计进行平均得出的。
self-trainning, co-trainning相关推荐
- [人工智能-深度学习-46]:FineTuning(微调)、Transfer Trainning(迁移学习)的理论基础与深度解析
作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...
- Augustus指南(Trainning部分)
目录 Augustus指南 官方 Tutorial Index Input: Trainning: Prediction Output: 可能用到的其他软件 Trainning Augustus 1. ...
- model trainning 模型训练
学习笔记 模型的理解,构建.神经网络的训练 使用封闭方程来求解,获得模型在当前训练集上最优的参数==>在训练集上使得损失函数达到最小值时模型的参数 使用迭代优化的方法,梯度下降(GD),在训练集 ...
- on device trainning
1. On-Device Training with TensorFlow Litehttps://tensorflow.google.cn/lite/examples/on_device_train ...
- EMC trainning杂谈
EMC: 中国了解EMC从认证入手.买到欧盟要强制符合EMC标准,上升到法律标准.中国有3C 标准,但在很多行业不是强制性的 .大学很少搞EMC,以前. EMC产生的原因?产生问题,所以要解决问题,所 ...
- trainning 2017-11-21
- Trainning 1 DAY
You are given a sequence of integers of length nn and integer number kk . You should print any integ ...
- ruby trainning - decryption
2019独角兽企业重金招聘Python工程师标准>>> #author linxu #decrypt the message of cipher.txt module RubyTra ...
- ssis trainning
1. 防止包打开后hang住,可以使用delay validation=false. 2.2008R2 configuration 起作用的优先级? 一是des ign time. 二是运行的时候指定 ...
- android trainning(4)
一.使用剪贴板在activity间传递信息 public class MainActivity extends Activity {EditText text;@Overrideprotected v ...
最新文章
- Ubuntu安装Anaconda
- 代码逻辑是分方法写好 还是在一个方法写好_这一团糟的代码,真的是我写的吗?...
- linux网卡驱动 pdf,Linux下网卡驱动程序.pdf
- altium designer 自动扇出功能
- Javascript中Base64编码解码的使用实例
- Hive 内置函数权威指南,操作大全
- 实现后台高级查询(基础版)
- Oracle_PL/SQL(3) 游标
- 26. Postpone variable definitions as long as possible
- php浮点数用法,php中让人头疼的浮点数运算分析
- 王校长一分钟能吃多少热狗?| 小游戏 1
- 二、图的遍历——深度优先遍历
- Dialog System, QA问答系统
- android10全面屏手势 操作图,丨系统设计丨ZUI 10加入更多全面屏手势
- 关于小程序区服登录账号换模拟器登录的操作
- AWS之Glue使用方法
- 战争雷霆服务器无响应,战争雷霆:2021年夏活马拉松活动简易攻略(空战篇)
- layer.msg不同弹出框样式
- 数字后端基本概念介绍——Macro
- liigo:2010年底平板电脑(MID)横向参数对比,附需求分析
热门文章
- win10 linux装软件有哪些,win10若何装linux,win10安装linux双系统的详细教程,微商必备软件有哪些...
- AOSP6.0.1 launcher3入门篇-解析DeviceProject.java及相关文件
- MobileNet V2简单总结
- C++OpenCV:三角形插值、线面的交点
- num_workers设置
- 1 MLP-Mixer: An all-MLP Architecture for Vision
- Array,List,数据类型,caseclss模式匹配
- 一道题:给定一整数序列A1,A2,...,An(可能有负数),求A1到An的一个自序列,使得Ai到Aj的和最大。例如:整数序列-2,11,-4,13,-5,2,-5,-3,12,-9的最大子序列为21
- 解决:Access denied for user ‘root‘@‘localhost‘ (using password: YES)
- dedeCMS初始化数据体验包的安装与清除?