零样本学习项目:零样本分类器通过图卷积网络实现
项目介绍
本项目zero-shot-gcn由JudyYe维护,基于Graph Convolutional Network (GCN)实现了零样本分类任务。它借鉴了论文《Zero-shot Recognition via Semantic Embeddings and Knowledge Graphs》中的方法,在TensorFlow框架下进行开发。
在图像识别领域,零样本学习(Zero-shot Learning)是指模型能够对未见过的数据类别做出正确的预测。这通常依赖于已知类别的属性来推断未知类别。该库主要分为两个部分:
- CNN: 输入图像并输出其深度特征。
- GCN: 输入所有对象类别的词嵌入,输出每个物体类别的视觉分类器。
快速启动
为了运行这个项目,您需要准备一个Python环境,具体要求如下:
- Python版本:3.6
- TensorFlow版本:>= 1.2.0 (注:不同版本可能会影响ZSAR性能)
安装依赖
pip install tensorflow # 对于CPU
pip install tensorflow-gpu # 对于GPU
pip install networkx
数据集准备
从Google Drive下载UCF101数据集的预处理文件,并将其解压缩到指定目录。
启动脚本
python train_two_stream_gcn.py
这条命令将自动训练两流GCN模型在UCF101数据集上。
应用案例和最佳实践
实验结果示例
- 测试设置:零样本设置和广义零样本设置。
- 比较指标:Top-K准确率,其中k = {1, 2, 5, 10, 20}。
以下是在ImageNet子集上的表现(以百分比表示):
| 方法 | Top 1 | Top 2 | Top 5 | Top 10 | |---------------|---------|---------|---------|--------| | 2-hops SYNC | 10.5 | 21.0 | 34.7 | 40.1 | | 3-hops SYNC | 2.9 | 4.3 | 9.7 | 14.2 | | All SYNC | 1.4 | 1.9 | 4.5 | 7.1 |
以上结果显示了Sync GCN(我们的方法)在不同的Hop数设置下的表现。
最佳实践
我们建议使用两流架构并结合知识图谱信息来进行零样本动作识别的任务,特别关注动态场景中物体之间的关系。
典型生态项目
除了zero-shot-gcn之外,还有其他一些相关项目值得关注,例如junyuGao/Zero-Shot-Action-Recognition-with-Two-Stream-GCN,该项目也探索了利用双流图卷积神经网络和知识图谱进行零样本动作识别的研究方向,但侧重于视频分析领域。
这些互补性的项目可以提供更全面的理解,关于如何利用图卷积网络进行零样本学习的不同应用场景和技术细节。
此文档基于上述提供的项目信息总结而成,适用于希望了解或部署零样本分类器的开发者们参考。如需更深入的信息,请访问项目主页和相关研究论文。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考