我需要在大量图像和相关标题上训练一个系统,以确定哪些(图像、标题)对是正确的,哪些不是。我没有任何带标签的配对,但我可以假设正确的配对比不正确的配对要多。此外,图像和标题具有相当相似但不完全相似的小子集。
目前的想法
我目前的想法是构建一种 GAN 架构,其中我有一个生成器和一个鉴别器,除了生成器只是从现有的图像和字幕语料库中采样以生成错误对,而鉴别器负责确定哪些对是正确与否。
images, captions = [], []
bpg = bad_pair_generator(images, captions)
clfr = classifier()
for epoch in range(epochs):
good_pairs, bad_pairs = zip(images, captions), bpg.generate(N)
X, y = good_pairs + bad_pairs, [1]*len(good_pairs) + [0]*len(bad_pairs)
clfr.train(X, y)
trickiness = [yi == yi_pred for yi, yi_pred in zip(y, clfr.predict(X))]
bpg.fit(bad_pairs, trickiness[-len(bad_pairs):])
在此之后,我希望分类器受到足够的压力,以学习一个好的模型来判断配对是否好。
问题
- 有更好的研究方法吗?
- 如果不是,这种方法看起来是否合理且相当安全?
- 我可以使用哪种模型将图像与文本进行比较?显然 CNN/RNN 对图像/文本有好处,但是如何将它们结合起来呢?