Semi-Supervised Dimensionality Reduction
今天阅读了一篇关于半监督降维的论文,做个总结。这篇论文的全名叫《Semi-Supervised Dimensionality Reduction》(2006),是南大周志华老师的大作。
本文提出了一种新的半监督降维算法,并与其他几种半监督降维算法进行了比较。
传 统的机器学习方法通过大量带标注训练样本学习得到模型参数,并根据模型对新样本进行预测。一方面,手工标注样本的标号既费时又费力,而我们当今身处信息爆 炸的时代,这更为人工标注数据增加了难度;另一方面,获取大量未标注数据相对容易得多。如果只依赖于少量标注数据进行学习,那么势必会造成过拟合 (overfitting,即在训练数据集上预测能力很好,但在测试集上预测效果很差的现象),特别是在属性维远远高于样本维的时候。解决过拟合的一个方 法就是增加训练样本,但是限于人力物力无法大量获得标注样本,然而有学者研究发现,无标注数据中蕴含大量有用的信息,利用这些信息可以大幅度改善学习机的 性能。因此,人们自然想到了结合少量标注数据(先验知识)和大量未标注数据来学习提高学习机泛化能力(generalization ablity)的方法,这种方法就是半监督学习(Semi-Supervised Learning,SSL)。
机器学习的三个大方向是:分类、回归、聚类,照此划分方式,我们可以将半监督学习分为:
半监督分类
半监督回归
半监督聚类
目前,半监督回归和半监督聚类这两个方向还比较新,可以出很多的论文
常见的先验知识主要有两种。第一种是标号信息,这类先验信息用在分类方面比较多,如Cai deng的SDA,Zhou deng yong的Label Propagation等;
第 二种是成对约束(pairwise constraint),这类信息主要用于聚类,约束有两种,一个是正约束(must-link),正约束指定两个sample必须属于同一类;另一个是 负约束(cannot-link),与正约束相反。这两种信息都可以结合进半监督降维中。不过约束形式的先验知识更普遍,应用更广。主要原因有2个:1是 成对约束比标号信息更容易获得,人工标注需要相关领域的专家知识,而分辨两个样本是否属于同一类则轻松的多,甚至普通人就能做到;2是从标号信息可以推出 约束信息,反之则不然,因此可以说约束比标号更普遍、通用
下面进入正文,介绍一下这篇论文的基本思想
该算法的目标函数是:
\begin{align}
J(w) = &\frac{1}{2n^2}\sum_{i,j}({w}^T{x}_i-{w}^T{x}_j)^2\\
&+\frac{\alpha}{2n_C} \sum_{({x}_i,{x}_j)\in C}({w}^T{x}_i - {w}^T{x}_j)^2\\
&-\frac{\beta}{2n_M}\sum_{({x}_i,{x}_j)\in M}({w}^T{x}_i - {w}^T{x}_j)^2
\end{align}
其
中,$w$是投影向量,$n_C$是cannot-link的数量,$n_M$是must-link的数量,$x_i$表示第i个样本,是个列向量。其实
这个目标函数的含义很直观,第一项$\frac{1}{2n^2}\sum_{i,j}({w}^T{x}_i-{w}^T{x}_j)^2$是所有点之
间距离的平均值,比如有n个点,那么就有$\frac{n(n-1)}{2}$个这样的点对。第二项是cannot-link集合的点之间的平均距离。第
三项同理,是must-link集合点之间的平均距离。注意的是,通常cannot-link点对之间的距离比其他项要大得多,因此我们需要调节这三项之
间的比例,使得目标函数不会失衡,这体现在后两项的参数数$\alpha$,$\beta$上,一般$\beta$大于1,$\alpha$要小一点。对
于这个函数,我们希望投影后的空间中,cannot-link的点对距离尽可能地大,must-link的点对距离尽可能地小,因此这个函数越大越好。
定义了目标函数我们就可以开始求解它了,我们可以将目标函数进一步写成如下更简练的形式:
\( J(w) = \frac{1}{2} \sum_{i,j}({w}^T{x}_i - {w}^T{x}_j)^2S_{ij}\)
这样,我们就可以用一个图来对这个函数进行建模了。其中$S_{ij}$是图的相似度,其定义如下:
\(S_{ij} = \begin{cases}
\frac{1}{n^2}+\frac{\alpha}{n_C}\qquad&\mbox{if$(x_i,x_j)\in C$}\\
\frac{1}{n^2}-\frac{\beta}{n_M}\qquad&\mbox{if$(x_i,x_j)\in M$}\\
\frac{1}{n^2}\qquad&\mbox{otherwise}
\end{cases}\)
接下来的计算需要用到一些谱图理论的知识,如果不懂可以参考原论文,我们可以将上面的目标函数化简为:
\( J(w) = {w}^T{X}{L}{X}^T{w} \)
其中$L=D-S$是图的Laplacian矩阵,$D$是对角矩阵,其中$D_{ii} = \sum_j W_{ij}$
我们可以加入约束保证得到一个单位向量$w^Tw=1$
我们的目标是最大化这个函数,最大化这个函数等价于寻找矩阵$XLX^T$的最大特征值。
因
此,只要对矩阵$XLX^T$进行特征值分解,求得的前$d$个最大特征值对应的特征向量$w_i$组成投影矩阵,对原始数据进行投影,之后在降维后的子
空间进行分类或者聚类就可以了。由于结合了约束信息,所以聚类的结果比无监督的结果会好很多。随着约束数量的提高,结果会越来越好。
评价:
SSDR结合了成对约束信息,并在低维空间中保持了这些信息,同时为所有未标注点分配了相同的权重,从而也使得全局结构也在低维流形空间中得到了保留。但缺点是只考虑了低维流形的全局结构而忽略了其局部结构,而实际上这两者缺一不可。因此改进可以从这方面着手。
Semi-Supervised Dimensionality Reduction的更多相关文章
- 壁虎书8 Dimensionality Reduction
many Machine Learning problems involve thousands or even millions of features for each training inst ...
- 斯坦福机器学习视频笔记 Week8 无监督学习:聚类与数据降维 Clusting & Dimensionality Reduction
监督学习算法需要标记的样本(x,y),但是无监督学习算法只需要input(x). 您将了解聚类 - 用于市场分割,文本摘要,以及许多其他应用程序. Principal Components Analy ...
- Stanford机器学习笔记-10. 降维(Dimensionality Reduction)
10. Dimensionality Reduction Content 10. Dimensionality Reduction 10.1 Motivation 10.1.1 Motivation ...
- 可视化MNIST之降维探索Visualizing MNIST: An Exploration of Dimensionality Reduction
At some fundamental level, no one understands machine learning. It isn’t a matter of things being to ...
- 多因子降维法(MDR,multifactor dimensionality reduction)
多因子降维法(MDR,Multifactor Dimensionality Reduction ) MDR是近年统计学中发展起来的一种新的分析方法.其中,“因子” 即交互作用研究中的变量,“维” 是指 ...
- [Scikit-learn] 4.4 Dimensionality reduction - PCA
2.5. Decomposing signals in components (matrix factorization problems) 2.5.1. Principal component an ...
- 海量数据挖掘MMDS week4: 推荐系统之数据降维Dimensionality Reduction
http://blog.csdn.net/pipisorry/article/details/49231919 海量数据挖掘Mining Massive Datasets(MMDs) -Jure Le ...
- 第八章——降维(Dimensionality Reduction)
机器学习问题可能包含成百上千的特征.特征数量过多,不仅使得训练很耗时,而且难以找到解决方案.这一问题被称为维数灾难(curse of dimensionality).为简化问题,加速训练,就需要降维了 ...
- [UFLDL] Dimensionality Reduction
博客内容取材于:http://www.cnblogs.com/tornadomeet/archive/2012/06/24/2560261.html Deep learning:三十五(用NN实现数据 ...
- 单细胞数据高级分析之初步降维和聚类 | Dimensionality reduction | Clustering
个人的一些碎碎念: 聚类,直觉就能想到kmeans聚类,另外还有一个hierarchical clustering,但是单细胞里面都用得不多,为什么?印象中只有一个scoring model是用kme ...
随机推荐
- CSS代码优化(转载)
要点1:css代码优化作用与意义 1.减少占用网页字节.在同等条件下缩短浏览器下载css代码时间,相当于加快网页打开速度:2.便于维护.简化和标准化css代码让css代码减少,便于日后维护:3.让自己 ...
- Node.js学习笔记(一) --- HTTP 模块、URL 模块、supervisor 工具
一.Node.js创建第一个应用 如果我们使用 PHP 来编写后端的代码时,需要 Apache 或者 Nginx 的 HTTP 服务器, 来处理客户端的请求相应.不过对 Node.js 来说,概念完全 ...
- efcore 配置链接sqlserver
本文将在asp.net core api 项目中使用efcore corefirst模式 简单配置链接sqlserver数据库,以及简单的数据库迁移操作 一 新建项目 1. 首先我们先用vs2017 ...
- Spring cloud ReadTimeout 问题解决
今天使用Spring cloud @FeignClient 调用远程服务的时候,出现readTimeout问题,通过找资料解决方式如下 在Spring.properties 配置文件中添加如下属性解决 ...
- Python中元组和列表
一.list列表的操作包括以下函数: 列表操作包括以下函数: 1.cmp(list1,list2) :比较两个列表的元素 2.len(list) :列表元素个数 3.max(list) :返回列表元素 ...
- 重构指南 - 分解复杂判断(Remove Arrowhead Antipattern)
当代码中有多层嵌套时,会降低代码的可读性,对于以后的修改也增加难度,所以我们需要分解复杂的判断并尽快返回. 重构前代码 public class Security { public ISecurity ...
- 小白学flask之静态文件
引入css的方式有两种 1 那在flask中,如何处理静态文件? 做法很简单,只要在你的包或模块旁边创建一个名为 static 的文件夹就行了. flask的静态文件是位于应用的 /static 中的
- 鼠标事件-拖拽(不能拖出窗口的div)
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...
- MySQL数据库(4)----生成统计信息
MySQL最有用的一项功能就是,能够对大量原始数据进行归纳统计. 1.在一组值里把各个唯一的值找出来,这是一项典型的统计工作,可以使用DISTINCT 关键字清楚查询结果里重复出现的行.例如,下面的查 ...
- C语言输入语句scanf与fgets linux下
1.测试使用scanf的一个例子: #include "stdio.h" #include "string.h" int main() { char name[ ...