【论文阅读】Semi-Supervised Learning with Ladder Networks

本文介绍了Semi-Supervised Learning with Ladder Networks的论文,该研究结合监督和无监督学习,通过反向传播同时优化两种损失函数,避免了预训练的需求。论文提出了一种扩展的梯形网络模型,用于半监督分类任务。损失函数包括有监督的交叉熵损失和无监督的去噪自编码器损失,其中后者衡量了不同层间去噪与原始数据的差异。实验在MNIST数据集上进行,尽管处理的是‘排列不变MNIST’,即无位置信息的手写数字,增加了任务难度。

论文地址: Semi-Supervised Learning with Ladder Networks
会议: NIPS 2015
任务: 半监督分类

1. 摘要

我们将监督学习与深度神经网络中的无监督学习相结合。所提出的模型经过训练,可以通过反向传播同时最小化监督和非监督成本函数的总和,从而避免了分层预训练的需要。我们的工作建立在 Valpola 提出的梯形网络之上,我们通过将模型与监督相结合来扩展该梯形网络。

2. 算法描述

本文主要是在前任的深度半监督模型上,添加了一些适配以完成半监督任务。阅读这篇论文需要一些前置知识,貌似是有两个版本,一个是会议的(NIPS),内容精炼,不太容易读懂;还有一个版本,是arxiv的,较为详细。

在这里插入图片描述
在这里插入图片描述
结合这两张图,大致的计算流程算是比较清晰了。

这里主要是讨论一下算法中对于损失的计算。

输入数据
有标签数据:
{ x ( n ) , t ( n ) ∣ 1 ≤ n ≤ N } \{\mathbf{x}(n), t(n) \mid 1 \leq n \leq N\} { x(n),t(n)1nN}
其中,对于任意样本 x ( i ) \mathbf{x}(i) x(i)的标签为 t ( i ) t(i) t(i) 1 ≤ i ≤ N 1 \leq i \leq N 1iN
无标签数据:
{ x ( n ) ∣ 1 ≤ n ≤ N } \{\mathbf{x}(n) \mid 1 \leq n \leq N\} { x(n)1nN}

C = C c + C d (1) C=C_{\mathrm{c}}+C_{\mathrm{d}}\tag{1}

### 关于《Semi-Supervised Classification with Graph Convolutional Networks》的中文翻译 以下是《Semi-Supervised Classification with Graph Convolutional Networks》文章的核心内容及其翻译: #### 图卷积网络简介 该研究提出了一种基于图结构数据的半监督分类方法,利用图卷积神经网络(Graph Convolutional Network, GCN)来处理带有图结构的数据集。这种方法通过谱图理论中的局部一阶近似技术,能够有效地对图中的节点特征以及其邻域关系进行编码[^1]。 #### 半监督学习背景 在许多实际场景中,获取标签的成本较高,因此仅有一部分数据被标注,而大部分数据未被标记。这种情况下,半监督学习成为一种重要的解决方案。本文提出的模型能够在少量标注样本的基础上,充分利用大量无标签数据的信息来进行预测和分类任务[^2]。 #### 方法核心 作者引入了一个简单的两层图卷积网络架构,其中每一层都由一个线性变换矩阵乘法操作组成,并结合激活函数以增加非线性特性。具体来说,输入为节点特征向量 X 和描述节点间连接关系的邻接矩阵 A,在经过多轮传播更新之后得到最终表示 H^(L),再通过 softmax 函数转化为概率分布形式完成分类工作[^3]。 #### 实验验证 为了证明所提方案的有效性和优越性能,实验选取了多个标准基准测试集合进行了对比分析。结果显示相比于其他传统算法或者复杂深度学习框架而言,本方法不仅计算效率更高而且取得了更好的效果表现。 --- ```python import numpy as np from tensorflow.keras.layers import Dense from tensorflow.keras.models import Model def gcn_layer(A_hat, input_dim, output_dim): """ 定义单层GCN 参数: A_hat (numpy.ndarray): 预处理后的邻接矩阵 input_dim (int): 输入维度大小 output_dim (int): 输出维度大小 返回: function: GCN 层定义 """ W = np.random.randn(input_dim, output_dim) * 0.01 # 初始化权重参数 b = np.zeros((output_dim,)) def layer(X): return np.dot(np.dot(A_hat, X), W) + b return layer # 构建简单模型实例化过程省略... ``` 上述代码片段展示了如何构建基本版本的一层GCN实现方式之一。 --- #### 总结 通过对图结构特性的深入挖掘,《Semi-Supervised Classification with Graph Convolutional Networks》成功设计出了适用于大规模稀疏图上的高效半监督分类器——即著名的GCNs家族成员之一。它凭借简洁优雅的设计思路赢得了广泛认可并推动了后续一系列改进型变体的发展方向。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

来日可期1314

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值