如何在基础模型(神经网络)上实现元学习

问题描述 投票:0回答:1

我有一个复杂的数据,其中只有两个特征和大约 18211 个标签(多标签回归问题)。这两个特征是分类数据,feature1有6个类别(A,B,C,D,E,F),feature2有144个类别。以此为基础,预测出18211个标签。最棘手的部分是训练数据仅包含 4 个特征类别(A、B、C、D)和少数其他两个类别示例(E、F)。而测试数据仅包含两个类别(E 和F)。所有这些类别的 feature1 都是相互关联的。基本上,我必须对几乎看不见的类别进行预测。

功能1 功能2 标签1 ---- 标签-18211
A xxx 0.321 ---- -0.787
B yyy -1.942 ---- 0.862

后来,我使用一个热编码对特征进行编码,并将数据拆分为训练数据和验证数据。


数据配置:

训练数据: 特点:(429、152) 标签: (429, 18211)

验证数据: 特点:(185、152) 标签: (185, 18211)

这里的一种方法可以是“元学习”,我可以将feature1类别(A,B,C,D,E,F)作为元学习器的“任务”。我尝试在张量流中使用MAML算法实现代码,但多次失败。请帮助使用 tensorflow 编写此代码。

tensorflow deep-learning multilabel-classification meta-learning
1个回答
0
投票

要应用与模型无关的元学习 (MAML) 算法,您应该首先将数据划分为两个不同的集合:支持集和查询集。

元训练阶段

在元训练阶段,您的模型将接受从训练数据集中的支持集中提取的各种任务的训练。随后,使用训练数据中的查询集评估和验证模型的性能。

元测试阶段

在元测试阶段,使用从测试数据集导出的支持集进一步微调预训练模型。模型性能的最终评估是使用测试数据集中的查询集进行的。

要实现该算法,您可以参考以下链接的代码: https://github.com/hereismari/tensorflow-maml/blob/master/maml.ipynb

但是,我个人认为使用 ML/DL 算法可能很难解决你的问题,因为标签数据的维度明显大于你的特征。因此,减小标签尺寸可能会更好。

© www.soinside.com 2019 - 2024. All rights reserved.