让学习器不依赖外界交互、自动地利用未标记样本来提升学习性能
未标记样本虽未直接包含标记信息,但若它们与有标记样本是从同样的数据源独立同分布采样而来,则它们所包含的关于数据分布的信息对建立模型将大有裨益

半监督学习可进一步划分为纯(pure)半监督学习和直推学习 (transductive learning),前者假定训练数据中的未标记样本并非待预测的数据,而后者则假定学习过程中所考虑的未标记样本恰是待预测数据,学习的目的就是在这些未标记样本上获得最优泛化性能。
换言之,纯半监督学习是基于"开放世界"假设,希望学得模型能适用于训练过程中未观察到的数据;而直推学习是基于"封闭世界"假设,仅试图对学习过程中观察到的未标记数据进行预测。

直接基于生成式模型的方法,假设所有数据(无论是否有标记)都是同一个潜在的模型“生成”的。这个假设使得我们能通过潜在模型的参数将未标记数据与学习目标联系起来,而未标记数据的标记则可看作作模型的缺失参数,通常可基于EM算法进行极大似然估计求解。此类方法的区别主要在于生成式模型的假设,不同的模型假设将产生不同的方法。


→ 方法简单,易于实现,在有标记数据极少的情形下往往比其他方法性能更好
但是,模型假设必须准确,否则利用未标记数据反而会降低泛化性能(现实任务中往往很难做到)
支持向量机在半监督学习上的推广
试图找到能将两类有标记样本分开,且穿过数据低密度区域的划分超平面
低密度分隔low-density separation

→ TSVM(Transductive Support Vector Machine)
也是针对二分类的学习方法,试图考虑对未标记样本进行各种可能的标记指派,即尝试将每个未标记样本分别作为正例或反例,然后在所有这些结果中,寻求一个在所有样本上间隔最大化的划分超平面。一旦划分超平面得以确定,未标记样本的最终标记指派就是其预测结果。

↑ 尝试未标记样本的各种标记指派是一个穷举过程,仅当未标记样本很少时才有可能直接求解,在一般情形下必须考虑更高效的优化策略
→采用局部搜索来迭代地寻找式(13.9)的近似解


→ 类别不平衡问题如何解决?
将优化目标中的Cu项拆分为Cu+、Cu-两项,分别对应基于伪标记而当作正、反例使用的未标记样本,并在初始化时令
,其中u+、u-为基于伪标记而当作正、反例使用的未标记样本数

TSVM算法中的搜寻标记指派可能出错的每一对未标记样本并调整,涉及巨大计算开销,故半监督SVM研究的一个重点是如何设计出高效的优化求解策略,发展出基于图核函数梯度下降的LDS、基于标记均值估计的meanS3VM等方法。
给定一个数据集,可映射为一个图,数据集中每个样本对应于图中的一个结点,若两样本之间的相似度很高,则对应结点之间存在一条边,边的“强度”正比于样本之间的相似度,可将有标记样本对应的结点想象为染过色,未标记样本对应的结点未染色,于是,半监督学习就对应于颜色在图上扩散或传播的过程。
一个图对应一个矩阵,则可基于矩阵运算来进行半监督学习算法的推导与分析
→针对二分类问题的标记传播label propagation:

(详情可见《机器学习》p302)
→适用于多分类问题的标记传播:


→概念上相当清晰,且易于通过对所涉矩阵运算的分析探索法性质
缺陷:存储开销大(样本数O(m),则算法中涉及的矩阵规模O(m²)),很难直接处理大规模数据;构图过程仅能考虑训练样本集,难以判知新样本在图中的位置(接收到新样本时,①加入原数据集对图进行重构并重新进行标记传播②引入额外的预测机制,如把Dl和已经标记传播得到标记的Du合并为训练集,另外训练一个学习器如SVM来对新样本进行预测)
生成式方法、半监督SVM、图半监督学习:基于单学习器利用未标记数据
基于分歧的方法:使用多学习器 →集成学习和半监督学习联系起来
多视图数据:一个数据对象同时拥有多个属性集,每个属性集构成一个视图 (<x1,x2>,y)这样的数据就是多视图数据
不同视图具有相容性compatibility:包含的关于输出空间y的信息是一致的,不同视图信息则有互补性,给学习期的构建带来很多便利
→协同训练co-training:
假设数据拥有两个充分(每个视图都包含足以产生最优学习器的信息)且条件独立(在给定类别标记条件下两个视图独立)视图,在每个视图上基于有标记样本分别训练出一个分类器,然后互相提供伪标记样本,不断迭代,直到两个分类器都不再发生变化或达到预先设定的迭代轮数为止。

聚类任务中获得的监督信息有两种类型:①必连约束②勿连约束
→约束k均值算法Constrained k-means:
利用第一类监督信息,k均值算法的扩展


→约束种子k均值算法Constrained Seed k-means:
利用第二类监督信息,少量有标记样本作为种子,初始化k均值算法的k个聚类中心,并且在聚类簇迭代更新过程中不改变种子样本的簇隶属关系


《机器学习主要类型》系列文章往期回顾:
机器学习主要类型(一):监督学习
机器学习主要类型(二):无监督学习
参考书目:
周志华.《机器学习》
邱锡鹏.《神经网络与深度学习》
我已经从我的命令行中获得了一切,所以我可以运行rubymyfile并且它可以正常工作。但是当我尝试从sublime中运行它时,我得到了undefinedmethod`require_relative'formain:Object有人知道我的sublime设置中缺少什么吗?我正在使用OSX并安装了rvm。 最佳答案 或者,您可以只使用“require”,它应该可以正常工作。我认为“require_relative”仅适用于ruby1.9+ 关于ruby-主要:Objectwhenrun
我可以得到Infinity和NaNn=9.0/0#=>Infinityn.class#=>Floatm=0/0.0#=>NaNm.class#=>Float但是当我想直接访问Infinity或NaN时:Infinity#=>uninitializedconstantInfinity(NameError)NaN#=>uninitializedconstantNaN(NameError)什么是Infinity和NaN?它们是对象、关键字还是其他东西? 最佳答案 您看到打印为Infinity和NaN的只是Float类的两个特殊实例的字符串
我不确定传递给方法的对象的类型是否正确。我可能会将一个字符串传递给一个只能处理整数的函数。某种运行时保证怎么样?我看不到比以下更好的选择:defsomeFixNumMangler(input)raise"wrongtype:integerrequired"unlessinput.class==FixNumother_stuffend有更好的选择吗? 最佳答案 使用Kernel#Integer在使用之前转换输入的方法。当无法以任何合理的方式将输入转换为整数时,它将引发ArgumentError。defmy_method(number)
有时我需要处理键/值数据。我不喜欢使用数组,因为它们在大小上没有限制(很容易不小心添加超过2个项目,而且您最终需要稍后验证大小)。此外,0和1的索引变成了魔数(MagicNumber),并且在传达含义方面做得很差(“当我说0时,我的意思是head...”)。散列也不合适,因为可能会不小心添加额外的条目。我写了下面的类来解决这个问题:classPairattr_accessor:head,:taildefinitialize(h,t)@head,@tail=h,tendend它工作得很好并且解决了问题,但我很想知道:Ruby标准库是否已经带有这样一个类? 最佳
我正在尝试解析一个CSV文件并使用SQL命令自动为其创建一个表。CSV中的第一行给出了列标题。但我需要推断每个列的类型。Ruby中是否有任何函数可以找到每个字段中内容的类型。例如,CSV行:"12012","Test","1233.22","12:21:22","10/10/2009"应该产生像这样的类型['integer','string','float','time','date']谢谢! 最佳答案 require'time'defto_something(str)if(num=Integer(str)rescueFloat(s
这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub
我正在玩HTML5视频并且在ERB中有以下片段:mp4视频从在我的开发环境中运行的服务器很好地流式传输到chrome。然而firefox显示带有海报图像的视频播放器,但带有一个大X。问题似乎是mongrel不确定ogv扩展的mime类型,并且只返回text/plain,如curl所示:$curl-Ihttp://0.0.0.0:3000/pr6.ogvHTTP/1.1200OKConnection:closeDate:Mon,19Apr201012:33:50GMTLast-Modified:Sun,18Apr201012:46:07GMTContent-Type:text/plain
目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称
最近在学习CAN,记录一下,也供大家参考交流。推荐几个我觉得很好的CAN学习,本文也是在看了他们的好文之后做的笔记首先是瑞萨的CAN入门,真的通透;秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4CAN!原文链接:https://blog.csdn.net/XiaoXiaoPengBo/article/details/116206252CAN详解(小白教程)原文链接:https://blog.csdn.net/xwwwj/article/details/105372234一篇易懂的CAN通讯协议指南1一篇易懂的CAN通讯协议指南1-知乎(zhihu.com)视频推荐CAN总线个人知识总
深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal