S4VM解析
S4VM解析
1、S3VM
传统半监督支持向量机通过探索未标记数据来规范。调整决策边界,寻找最有的大间隔、低密度的超平面,比如S3VMs、TSVM等半监督SVM算法,如图所示,S3VM试图找到一个超平面,将有标记样本能够正确划分,且穿过特征空间中密度最低的区域;右图即是S3VM寻找的理想超平面。
S3VM的目标函数如下, 其中损失函数是hinge loss,限制条件是保证未标注样本的分布于标注样本分布一致。
因为给定少量的有标注点和大量无标注的点,可能存在不止一个间隔较大的低密度分界线,如果只考虑一个,可能会造成较大的损失。
2、S4VM:
不同于S3VM,S4VM关注多个可能存在的低密度分界,使用多个超平面,是一种集成学习方法。
起目标函数如上:其中正则项用来保证不同超平面之间具有一定的差异性,如果两个超平面差异性越大,则预测相同的数目越小,则函数值越小,M为惩罚系数,M越大,则要求超平面的差异性越大。
3、实现方式
因为S4VM的目标函数是非凸的,因此可能存在多个局部最优解,如果使用梯度下降求解,则容易求解出局部最优解而非全局最优,基于词,论文提出两种求解全局最优的实现方式。
1、全局模拟退火算法
模拟退火算法的主要思想是,在求解过程中,每次随机出一个新的x_new ,计算f(x_new)是否优于f(x),如果f(x_new)优于f(x),则接受x_new, 否则将以一定概率接受当前解,此概率设置为与全局变量T(温度)有关,温度越高,则概率越大,在迭代过程中,温度逐渐下降,接受的概率也逐渐降低。在求解全局最小值的时候,接受的概率p=exp(-dE / T),其中dE = f(x_new) - f(x)。
使用全局模拟退火算法求解S4VM的伪代码如下:
首先是随机出T个超平面,即给出T个超平面对未标注样本的预测值,在Localsearch中,根据预测值,即可以使用传统SVM学习到每个超平面的参数,对于每个超平面,在固定参数下,调整每个未标注样本的标签,使得目标函数最终收敛,则一次Localsearch完成,其他部分与模拟退火算法一致。
2、使用采样方式
随机选择出N个超平面,其中N > T
对于每个超平面,使用S3VM进行求解,得到N个S3VM超平面,每个超平面对未标记样本具有预测值,然后对所有样本进行聚类,聚类数目为T,在每个簇中,选择使得目标函数最小的一个超平面,这样会最终选出T个超平面。
S4VM解析的更多相关文章
- 【原】Android热更新开源项目Tinker源码解析系列之三:so热更新
本系列将从以下三个方面对Tinker进行源码解析: Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Android热更新开源项目Tinker源码解析系列之二:资源文件热更新 A ...
- .NET Core中的认证管理解析
.NET Core中的认证管理解析 0x00 问题来源 在新建.NET Core的Web项目时选择“使用个人用户账户”就可以创建一个带有用户和权限管理的项目,已经准备好了用户注册.登录等很多页面,也可 ...
- Html Agility Pack 解析Html
Hello 好久不见 哈哈,今天给大家分享一个解析Html的类库 Html Agility Pack.这个适用于想获取某网页里面的部分内容.今天就拿我的Csdn的博客列表来举例. 打开页面 用Fir ...
- 【原】Android热更新开源项目Tinker源码解析系列之一:Dex热更新
[原]Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Tinker是微信的第一个开源项目,主要用于安卓应用bug的热修复和功能的迭代. Tinker github地址:http ...
- 【原】Android热更新开源项目Tinker源码解析系列之二:资源文件热更新
上一篇文章介绍了Dex文件的热更新流程,本文将会分析Tinker中对资源文件的热更新流程. 同Dex,资源文件的热更新同样包括三个部分:资源补丁生成,资源补丁合成及资源补丁加载. 本系列将从以下三个方 ...
- 多线程爬坑之路-Thread和Runable源码解析之基本方法的运用实例
前面的文章:多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类) 多线程爬坑之路-Thread和Runable源码解析 前面 ...
- Asp.Net WebApi核心对象解析(下篇)
在接着写Asp.Net WebApi核心对象解析(下篇)之前,还是一如既往的扯扯淡,元旦刚过,整个人还是处于晕的状态,一大早就来处理系统BUG,简直是坑爹(好在没让我元旦赶过来该BUG),队友挖的坑, ...
- 【知识必备】内存泄漏全解析,从此拒绝ANR,让OOM远离你的身边,跟内存泄漏say byebye
一.写在前面 对于C++来说,内存泄漏就是new出来的对象没有delete,俗称野指针:而对于java来说,就是new出来的Object放在Heap上无法被GC回收:而这里就把我之前的一篇内存泄漏的总 ...
- SQL Server 数据加密功能解析
SQL Server 数据加密功能解析 转载自: 腾云阁 https://www.qcloud.com/community/article/194 数据加密是数据库被破解.物理介质被盗.备份被窃取的最 ...
随机推荐
- SQL-W3School-高级:SQL LIKE 操作符
ylbtech-SQL-W3School-高级:SQL LIKE 操作符 1.返回顶部 1. LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式. LIKE 操作符 LIKE 操作符用于在 ...
- C之指针的加法
#include<stdio.h> #include<stdlib.h> main() { //char arr [] = {'H','e','l','l','o'}; int ...
- 阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_10-webpack研究-安装nodejs
1.3.2.1 安装Node.js webpack基于node.js运行,首先需要安装node.js. node -v:验证是否安装成功了.
- sparkStream---1
1.本地scala版 import org.apache.spark._ import org.apache.spark.streaming._ import org.apache.spark.str ...
- 自然语言处理(NLP)之个人小结
一 概述 1.1 自然语言处理四大任务 序列标注 分词 词性标注 命名实体识别 分类任务 文本分类 情感分析 判断句子关系 问答系统 对话系统 阅读理解 生成任务 机器翻译 自动文摘 图像描述生成 1 ...
- json转换成dart类 JSON to Dart
json_to_dart的使用 如果我们得到一个特别复杂的JSON,有时候会无从下手开始写Model,这时候就可以使用一些辅助工具.我认为json_to_dart是比较好用的一个.它可以直接把json ...
- Linear regression with one variable - Cost function intuition I
摘要: 本文是吴恩达 (Andrew Ng)老师<机器学习>课程,第二章<单变量线性回归>中第8课时<代价函数的直观认识 - 1>的视频原文字幕.为本人在视频学习过 ...
- 【DSP开发】硬件信号量在多核处理器核间通信中的应用
硬件信号量在多核处理器核间通信中的应用 刘德保1,汪安民1,韩道文2 1.同方电子科技有限公司研究所,九江 332009:2.解放军电子工程学院 摘要: 在多核处理器的软件设计中,核间通信机制是关键所 ...
- 【DSP开发】DSP COFF 与 ELF文件
本文介绍了C6000最新的v7.2或者之后的编译器如何支持ELF(EABI)和COFF-ABI格式,首先由ARM引入嵌入式(Embedded) EABI的介绍,之后比较了COFF-ABI和EABI的区 ...
- Android netty客户端入门
新建项目,加入netty库 implementation 'io.netty:netty-all:4.1.36.Final'