热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

机器学习教程之半监督学习基于图正则项的半监督极限学习机

半监督学习是指在模型训练阶段同时利用有标签数据和无标签数据。我之前介绍过的半监督学习方法包括基于分歧的半监督学习方法机器学

半监督学习是指在模型训练阶段同时利用有标签数据和无标签数据。我之前介绍过的半监督学习方法包括

  1. 基于分歧的半监督学习方法
    机器学习教程 之 半监督学习 Tri-training方法 (论文、数据集、代码)
    机器学习教程 之 半监督学习 Co-training 协同训练 (论文、算法、数据集、代码)
    机器学习教程 之 半监督学习 Coreg 协同回归算法 (论文、算法、数据集、代码)
  2. 基于图的半监督学习方法
    DeepLearning | 图注意力网络Graph Attention Network(GAT)论文、模型、代码解析
    DeepLearning | 图卷积神经网络(GCN)解析(论文、算法、代码)
    DeepLearning | 图卷积网络基于拓扑结构的分类(T-GCN)
    机器学习教程 之 半监督学习 基于图正则项的半监督极限学习机

今天介绍的半监督极限学习机也是一种基于图的半监督学习方法,论文:
Semi-supervised and unsupervised extreme learning machines
不同于以上三种,这里的图指的是图正则项而不是图卷积。在实际运用中,作者发现很多该模型的很好的性质,比如可以运用于我们熟悉的归纳式学习,求解十分迅速并且是最优解析解等,也可以很容易的从分类任务拓展到回归任务。因此,在这里作一个详细的介绍。

对于模型的复现,作者参考了众多论文,给该模型做了一个非常强大的实现,下载连接放在文末的公众号里。同时,值得一提的是,极限学习与之前介绍的宽度学习是非常相似的,之前写过相关博客,可以参考

DeepLearning | Broad Learning System 宽度学习系统 : 高效增量式浅层神经网络



目录


  • 一、极限学习机
  • 二、图正则项
  • 三、半监督极限学习机
  • 四、实验结果
  • 五、更多资源下载


一、极限学习机

对于有监督的学习任务,一个包含 N N N个样本的训练集表示为 { X , Y } = { x i , y i } i = 1 N \{\bm{X},\bm{Y}\} = \{\bm{x}_{i},\bm{y}_{i}\}^{N}_{i=1} {
X,Y}={
xi​,yi​}i=1N​。 这里, x i \bm{x}_{i} xi​是一个一维向量表示样本, y i \bm{y}_{i} yi​是一个一维的01向量,其中表示 x i \bm{x}_{i} xi​类别的那个维度为1,其余的为0,即独热编码后的标签。极限学习机(ELM)想要基于该训练机学习一个从 x \bm{x} x到 y \bm{y} y的映射函数

通常ELM的训练分为两个阶段。

第一个阶段是通过随机映射来产生指定数量的特征,映射可以是任意的非线性连续函数,比如Sigmoid和Gaussian函数
1)Sigmoid函数
g ( x , θ ) = 1 1 + e x p ( − ( a x + b ) ) g(\bm{x},\theta)= \frac{1}{1+exp(-(\bm{a}\bm{x}+b))} g(x,θ)=1+exp(−(ax+b))1​
2)Gaussian 函数
g ( x , θ ) = e x p ( − b ∣ ∣ x − a ∣ ∣ ) g(\bm{x},\theta)= exp(-b||\bm{x}-\bm{a}||) g(x,θ)=exp(−b∣∣x−a∣∣)
这里 θ = { a , b } \theta=\{\bm{a},b\} θ={
a,b} 是随机产生的映射参数, ∣ ∣ ⋅ ∣ ∣ ||·|| ∣∣⋅∣∣表示二范数。

随机产生各式的特征使得ELM和普通前向网络不同,只需要训练特征和输出之前的映射,大大减少了训练的时间和步骤。这里记 x i \bm{x}_{i} xi​随机产生的特征为 h ( x i ) \bm{h}(\bm{x}_{i}) h(xi​),特征维度是任意的指定值。

ELM的第二个阶段是线性求解特征和输出直接的映射,目标函数记为
m i n C 2 ∑ i = 1 N ∣ ∣ y i − h ( x i ) β ∣ ∣ + 1 2 ∣ ∣ β ∣ ∣ min \frac{C}{2}\sum^{N}_{i=1}||\bm{y}_{i}-\bm{h}(\bm{x}_{i})\beta|| + \frac{1}{2}||\beta|| min2C​i=1∑N​∣∣yi​−h(xi​)β∣∣+21​∣∣β∣∣
这里的 β \beta β是我们需要求解的模型参数,损失的第一项表示模型的预测损失, C C C是预测损失的罚系数,第二项表示的是对模型参数的二范数正则。
该损失函数的矩阵形式为
m i n L E L M = C 2 ∣ ∣ Y − H β ∣ ∣ + 1 2 ∣ ∣ β ∣ ∣ min L_{ELM} =\frac{C}{2}||\bm{Y}-\bm{H}\beta|| + \frac{1}{2}||\beta|| minLELM​=2C​∣∣Y−Hβ∣∣+21​∣∣β∣∣
其中 H = [ h ( x 1 ) , . . . , h ( x N ) ] \bm{H}=[\bm{h}(\bm{x}_{1}),...,\bm{h}(\bm{x}_{N})] H=[h(x1​),...,h(xN​)]是所有样本的特征。

ELM的解
当 H \bm{H} H的行大于列时,模型是过定义的,解为:
β ∗ = ( H T H + I C ) − 1 H T Y \beta^{*} = (\bm{H}^{T}\bm{H}+\frac{I}{C})^{-1}\bm{H}^{T}\bm{Y} β∗=(HTH+CI​)−1HTY

这里 I \bm{I} I是单位阵。
但当 H \bm{H} H的列大于行时,模型是欠定义的,解为:
β ∗ = H T ( H H T + I C ) − 1 Y \beta^{*} = \bm{H}^{T}(\bm{H}\bm{H}^{T}+\frac{\bm{I}}{C})^{-1}\bm{Y} β∗=HT(HHT+CI​)−1Y

以上就是对ELM的介绍和求解,ELM的性能影响比较大的是随机特征的产生,这里操作空间比较大,不同方式产生的特征和特征的数量都会很大程度上影响模型性能。

二、图正则项

半监督学习的建立往往基于两个假设
1)有标签数据 X l \bm{X}_{l} Xl​和无标签数据 X u \bm{X_{u}} Xu​服从同一分布 P P P
2)如果两个样本点 x 1 \bm{x}_{1} x1​和 x 2 \bm{x}_{2} x2​是相似的,那么它们的条件概率 P ( y 1 ∣ x 1 ) P(\bm{y}_{1}|\bm{x}_{1}) P(y1​∣x1​)和 P ( y 2 ∣ x 2 ) P(\bm{y}_{2}|\bm{x}_{2}) P(y2​∣x2​)也应该是相似的。

该思想被图正则项定义为损失函数如下
L m = 1 2 ∑ i , j w i j ∣ ∣ P ( y ∣ x i ) − P ( y ∣ x j ) ∣ ∣ L_{m}=\frac{1}{2}\sum_{i,j}w_{ij}||P(\bm{y}|\bm{x}_{i})-P(\bm{y}|\bm{x}_{j})|| Lm​=21​i,j∑​wij​∣∣P(y∣xi​)−P(y∣xj​)∣∣

这里 w i j w_{ij} wij​是 x i \bm{x}_{i} xi​和 x j \bm{x}_{j} xj​的相似度。

值得一提的是相似度矩阵 W = [ w i j ] \bm{W}=[w_{ij}] W=[wij​]往往是稀疏的。因为我们仅仅当 x i \bm{x}_{i} xi​和 x j \bm{x}_{j} xj​很接近的时候,才将 w i j w_{ij} wij​设置为一个非零值,比如, x i \bm{x}_{i} xi​需要是 x j \bm{x}_{j} xj​的 k k k近邻。 w i j w_{ij} wij​的值通常根据高斯指数函数计算 e x p ( − ∣ ∣ x i − x j ∣ ∣ / 2 σ ) exp(-||\bm{x}_{i}-\bm{x}_{j}||/2\sigma) exp(−∣∣xi​−xj​∣∣/2σ),或者直接简单设置为1.

直观的,当 x \bm{x} x的变化很小时,正则项 L m L_{m} Lm​惩罚了条件概率 P ( y ∣ x ) P(\bm{y}|\bm{x}) P(y∣x)大的变化。由于真实的条件概率难以计算,该正则项可以被估计为
L ^ m = 1 2 ∑ i , j w i j ∣ ∣ y ^ i − y ^ j ∣ ∣ \hat{L}_{m}=\frac{1}{2}\sum_{i,j}w_{ij}||\hat{\bm{y}}_{i}-\hat{\bm{y}}_{j}|| L^m​=21​i,j∑​wij​∣∣y^​i​−y^​j​∣∣

其中, y ^ \hat{\bm{y}} y^​ 是对 x \bm{x} x的预测值。

上式的矩阵形式可以写为
L ^ m = T r ( Y ^ T L Y ^ ) \hat{L}_{m}=Tr(\hat{\bm{Y}}^{T}\bm{L}\hat{\bm{Y}}) L^m​=Tr(Y^TLY^)

其中 T r ( ⋅ ) Tr(·) Tr(⋅)表示矩阵的迹, L = D − W \bm{L}=\bm{D}-\bm{W} L=D−W 被称为拉普拉斯图矩阵, D \bm{D} D是对角矩阵,对角元素为 D i i = ∑ j = 1 l + u w i j D_{ii}=\sum^{l+u}_{j=1}w_{ij} Dii​=∑j=1l+u​wij​。通常, L \bm{L} L会被规范化为 L = D − 1 / 2 L D − 1 / 2 \bm{L}=D^{-1/2}\bm{L}D^{-1/2} L=D−1/2LD−1/2。

以上就是对图正则项的介绍,我们可以看到,定义的 L ^ m \hat{L}_{m} L^m​是同时适用于有标签或者无标签数据的,因此,它可以很方便的被应用半监督学习。

三、半监督极限学习机

这里我们记有标签数据集为 { X l , Y l } = { x i , y i } i = 1 l \{\bm{X}_{l},\bm{Y}_{l}\} = \{\bm{x}_{i},\bm{y}_{i}\}^{l}_{i=1} {
Xl​,Yl​}={
xi​,yi​}i=1l​,无标签数据集记为 { X u , Y u } = { x i , y i } i = 1 u \{\bm{X}_{u},\bm{Y}_{u}\} = \{\bm{x}_{i},\bm{y}_{i}\}^{u}_{i=1} {
Xu​,Yu​}={
xi​,yi​}i=1u​,其中 l l l和 u u u是样本数量。

半监督极限学习机(SSELM)的目标函数为:
m i n L E L M = 1 2 ∣ ∣ C 1 2 ( Y − H β ) ∣ ∣ + 1 2 ∣ ∣ β ∣ ∣ + λ 2 T r ( β T H T L H β ) min L_{ELM} =\frac{1}{2}||\bm{C}^{\frac{1}{2}}(\bm{Y}-\bm{H}\beta)|| + \frac{1}{2}||\beta|| + \frac{\lambda}{2}Tr(\beta^{T}\bm{H}^{T}\bm{L}\bm{H}\beta) minLELM​=21​∣∣C21​(Y−Hβ)∣∣+21​∣∣β∣∣+2λ​Tr(βTHTLHβ)

上式中 Y ~ ∈ R ( l + u ) × n 0 \tilde{\bm{Y}} \in \mathbb{R}^{(l+u)\times n_{0}} Y~∈R(l+u)×n0​,它的前 l l l行等于 Y l Y_{l} Yl​, 后 u u u行等于0。 C \bm{C} C是一个 ( l + u ) × ( l + u ) (l+u)\times(l+u) (l+u)×(l+u)的对角矩阵,它的前 l l l个对角元素为 C 0 / N t i C_{0}/N_{ti} C0​/Nti​, 后 u u u个对角元素为0. C 0 C_{0} C0​是任意给定值, N t i N_{ti} Nti​是第 i i i个类别中样本的数量,这意味着SSELM是损失敏感的。

同样的,对于SSELM的求解,我们有
当有标签样本数量比特征数量多时
β ∗ = ( I + H T C H + λ H T L H ) − 1 H T C Y ~ \beta^{*} = (\bm{I}+\bm{H}^{T}\bm{C}\bm{H}+\lambda\bm{H}^{T}\bm{L}\bm{H})^{-1}\bm{H}^{T}\bm{C}\tilde{\bm{Y}} β∗=(I+HTCH+λHTLH)−1HTCY~

当有标签样本数量比特征数量少时
β ∗ = H T ( I + C H H T + λ L H H T ) − 1 C Y ~ \beta^{*} = \bm{H}^{T}(\bm{I}+\bm{C}\bm{H}\bm{H}^{T}+\lambda\bm{L}\bm{H}\bm{H}^{T})^{-1}\bm{C}\tilde{\bm{Y}} β∗=HT(I+CHHT+λLHHT)−1CY~

以上就是SSELM的模型及求解,总而言之,相比于普通的ELM,SSELM引入了损失敏感和图正则项来进行提升,其中正则项的引入允许模型使用无标签样本,从而进行半监督的学习。SSELM的算法可以总结如下:

四、实验结果

这里摆一些论文里的实验结果

数据集

训练时间比较

准确率


五、更多资源下载

有问题可以私信博主,点赞关注的一般都会回复,一起努力,谢谢支持。
微信搜索“老和山算法指南”获取下载链接与技术交流群


推荐阅读
  • LeetCode 实战:寻找三数之和为零的组合
    给定一个包含 n 个整数的数组,判断该数组中是否存在三个元素 a、b、c,使得 a + b + c = 0。找出所有满足条件且不重复的三元组。 ... [详细]
  • 计算机学报精选论文概览(2020-2022)
    本文汇总了2020年至2022年间《计算机学报》上发表的若干重要论文,旨在为即将投稿的研究者提供参考。 ... [详细]
  • 在机器学习领域,深入探讨了概率论与数理统计的基础知识,特别是这些理论在数据挖掘中的应用。文章重点分析了偏差(Bias)与方差(Variance)之间的平衡问题,强调了方差反映了不同训练模型之间的差异,例如在K折交叉验证中,不同模型之间的性能差异显著。此外,还讨论了如何通过优化模型选择和参数调整来有效控制这一平衡,以提高模型的泛化能力。 ... [详细]
  • 深入浅出:Hadoop架构详解
    Hadoop作为大数据处理的核心技术,包含了一系列组件如HDFS(分布式文件系统)、YARN(资源管理框架)和MapReduce(并行计算模型)。本文将通过实例解析Hadoop的工作原理及其优势。 ... [详细]
  • 构建高性能Feed流系统的设计指南
    随着移动互联网的发展,Feed流系统成为了众多社交应用的核心组成部分。本文将深入探讨如何设计一个高效、稳定的Feed流系统,涵盖从基础架构到高级特性的各个方面。 ... [详细]
  • 使用R语言进行Foodmart数据的关联规则分析与可视化
    本文探讨了如何利用R语言中的arules和arulesViz包对Foodmart数据集进行关联规则的挖掘与可视化。文章首先介绍了数据集的基本情况,然后逐步展示了如何进行数据预处理、规则挖掘及结果的图形化呈现。 ... [详细]
  • 来自FallDream的博客,未经允许,请勿转载,谢谢。一天一套noi简直了.昨天勉强做完了noi2011今天教练又丢出来一套noi ... [详细]
  • 视觉Transformer综述
    本文综述了视觉Transformer在计算机视觉领域的应用,从原始Transformer出发,详细介绍了其在图像分类、目标检测和图像分割等任务中的最新进展。文章不仅涵盖了基础的Transformer架构,还深入探讨了各类增强版Transformer模型的设计思路和技术细节。 ... [详细]
  • 本打算教一步步实现koa-router,因为要解释的太多了,所以先简化成mini版本,从实现部分功能到阅读源码,希望能让你好理解一些。希望你之前有读过koa源码,没有的话,给你链接 ... [详细]
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
  • 使用Pandas DataFrame探索十大城市房价与薪资对比
    在本篇文章中,我们将通过Pandas库中的DataFrame工具,深入了解中国十大城市的房价与薪资水平,探讨哪些城市的生活成本更为合理。这是学习Python数据分析系列的第82篇原创文章,预计阅读时间约为6分钟。 ... [详细]
  • Java中字符串截取方法详解
    本文详细介绍了Java中常用的字符串截取方法及其应用场景,帮助开发者更好地理解和使用这些方法。 ... [详细]
  • 本文详细探讨了Spring框架中遇到的NoSuchBeanDefinitionException异常,具体涉及com.thinkplatform.dao.UserLogDao Bean未定义的问题,并提供了相应的解决方案。 ... [详细]
  • Spring Boot与Graylog集成实现微服务日志聚合与分析
    本文介绍了如何在Graylog中配置输入源,并详细说明了Spring Boot项目中集成Graylog的日志聚合和分析方法,包括logback.xml的多环境配置。 ... [详细]
  • 深入解析国内AEB应用:摄像头和毫米波雷达融合技术的现状与前景
    本文作者程建伟,武汉极目智能技术有限公司CEO,入选武汉市“光谷3551人才计划”。文章详细探讨了国内自动紧急制动(AEB)系统中摄像头与毫米波雷达融合技术的现状及未来前景。通过分析当前技术的应用情况、存在的挑战以及潜在的解决方案,作者指出,随着传感器技术的不断进步和算法优化,AEB系统的性能将大幅提升,为交通安全带来显著改善。 ... [详细]
author-avatar
dsvsV
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有