few_shot_learning icon indicating copy to clipboard operation
few_shot_learning copied to clipboard

代码跑出来的结果在验证集上效果不佳

Open TestNLP opened this issue 5 years ago • 34 comments

train: step: 19989, loss: 3.3705480745993555e-05, acc: 1.0, recall: 1.0, precision: 1.0, f_beta: 1.0 train: step: 19990, loss: 5.1190944816426054e-08, acc: 1.0, recall: 1.0, precision: 1.0, f_beta: 1.0 train: step: 19991, loss: 2.1878699953958858e-06, acc: 1.0, recall: 1.0, precision: 1.0, f_beta: 1.0 train: step: 19992, loss: 1.8138068824669062e-08, acc: 1.0, recall: 1.0, precision: 1.0, f_beta: 1.0 train: step: 19993, loss: 7.410821581288474e-06, acc: 1.0, recall: 1.0, precision: 1.0, f_beta: 1.0 train: step: 19994, loss: 7.393873924579908e-13, acc: 1.0, recall: 1.0, precision: 1.0, f_beta: 1.0 train: step: 19995, loss: 1.5176468878053129e-05, acc: 1.0, recall: 1.0, precision: 1.0, f_beta: 1.0 train: step: 19996, loss: 1.1588879715418443e-05, acc: 1.0, recall: 1.0, precision: 1.0, f_beta: 1.0 train: step: 19997, loss: 0.0002529413904994726, acc: 1.0, recall: 1.0, precision: 1.0, f_beta: 1.0 train: step: 19998, loss: 1.4453978458561778e-08, acc: 1.0, recall: 1.0, precision: 1.0, f_beta: 1.0 train: step: 19999, loss: 0.00034734702785499394, acc: 1.0, recall: 1.0, precision: 1.0, f_beta: 1.0

eval: loss: 0.3333154817422231, acc: 0.36703703703703705, recall: 0.3891975308641975, precision: 0.5166666666666667, f_beta: 0.360141017982034

在验证集上效果不好啊,没有体现出有什么优势,除此之外,请问一下,这个小样本文本分类算法怎样在线上预测一个样本?

TestNLP avatar Sep 01 '19 09:09 TestNLP

因为提供的这份数据集不合理,所以效果不好,few shot的本质上应该是在类别较多的情况下,此时类别之间存在相关性,而且每个类别下的数据量比较少时,例如每个类别只有十几条数据时,利用few shot learning能取得比直接用softmax分类更好的效果,这里因为无法提供公司内部的数据,因此找一个新闻分类的数据来测试代码。我也在寻找具有代表性的数据,你可以先去试下fewrel数据集。

jiangxinyang227 avatar Sep 09 '19 08:09 jiangxinyang227

@jiangxinyang227 ,能加个微信聊聊嘛,我最近也在研究这小样本,18392408198,同微信号

TestNLP avatar Sep 09 '19 08:09 TestNLP

@jiangxinyang227 同问如何预测一个样本,预测时可以不传支撑集吗?

beybin avatar Sep 10 '19 15:09 beybin

请问news_data在哪里?

ZihaoTan avatar Sep 17 '19 02:09 ZihaoTan

@jiangxinyang227 同问如何预测一个样本,预测时可以不传支撑集吗?

我觉得是这样的,如果在训练集上是10way-5shot,由于模型结构限制,在测试集上构造support set,也只能是10way-5shot这种形式,那么最后上线的时候,也只能预测10个类别,我做过测试,5way的性能比10way好很多,如果小样本的类别个数有50个,后续性能会下降很多

TestNLP avatar Sep 17 '19 05:09 TestNLP

@TestNLP @beybin 我们想做的东西好像是一样,就是通过小样本学习后,能够丢一张图片预测是哪一类,可以交流一下吗,QQ1804270596

lzcchl avatar Sep 18 '19 02:09 lzcchl

@jiangxinyang227 同问如何预测一个样本,预测时可以不传支撑集吗?

我觉得是这样的,如果在训练集上是10way-5shot,由于模型结构限制,在测试集上构造support set,也只能是10way-5shot这种形式,那么最后上线的时候,也只能预测10个类别,我做过测试,5way的性能比10way好很多,如果小样本的类别个数有50个,后续性能会下降很多

是的,类别越多,性能肯定是会下降的,此外support set的数量增大的话,性能应该是会有提升的。对于像关系网络这种通过一个神经网络来计算query和各类别之间的关系分数的确实会在预测的时候限制类别数量,但是像原型网络这种直接通过欧式距离来计算的,是不受类别数量控制的。

jiangxinyang227 avatar Sep 18 '19 04:09 jiangxinyang227

请问news_data在哪里?

这份数据是我自己构造的,并不适用few shot learning,已经被我删了,后续有时间添加新的数据

jiangxinyang227 avatar Sep 18 '19 04:09 jiangxinyang227

@jiangxinyang227 ,能加个微信聊聊嘛,我最近也在研究这小样本,18392408198,同微信号

我研究的不多,我加你了

jiangxinyang227 avatar Sep 18 '19 04:09 jiangxinyang227

@jiangxinyang227 同问如何预测一个样本,预测时可以不传支撑集吗?

不可以的,few shot learning本质上属于learning to learn,因此它学到的其实是一个KNN模型,而KNN模型在做分类的时候是依赖一份固定的训练数据来计算预测样本和这份数据之间的距离的,而在预测时的support set其实就是这样一份固定的训练数据。

jiangxinyang227 avatar Sep 18 '19 04:09 jiangxinyang227

你好,可以发一下训练集吗?或者加一下微信聊聊,18002594663

hongshengxin avatar Sep 20 '19 08:09 hongshengxin

你好,可以发一下训练集吗?或者加一下微信聊聊,18002594663

刚提供了一份亚马逊评论的数据,你可以试下,网络参数还需要调

jiangxinyang227 avatar Sep 20 '19 10:09 jiangxinyang227

这份亚马逊的数据所有的标签都是1-5,按照few-shot的理论,分类的标签应该是不一样的吧?

hongshengxin avatar Sep 24 '19 12:09 hongshengxin

你好,可以发一下训练集吗?或者加一下微信聊聊,18002594663

刚提供了一份亚马逊评论的数据,你可以试下,网络参数还需要调

如果我的训练集不同class的标签是不一样,并且在线预测的时候也是不同的类别,这个能用吗

hongshengxin avatar Sep 25 '19 03:09 hongshengxin

这份亚马逊的数据所有的标签都是1-5,按照few-shot的理论,分类的标签应该是不一样的吧?

你说的有道理,本来我是考虑到虽然都是1-5的情感评论,但是是来自不同产品的,因此从文本内容上了来说还是不一样的,所以想说用其他产品的评论通过few shot learning能不能泛化到之前没看到过的产品的评论上,这个few shot learning的数据集很难找到合适的,fewrel是一个,但是是关系分类的,想找一个文本分类的数据集来测试。

jiangxinyang227 avatar Sep 25 '19 03:09 jiangxinyang227

你好,可以发一下训练集吗?或者加一下微信聊聊,18002594663

刚提供了一份亚马逊评论的数据,你可以试下,网络参数还需要调

如果我的训练集不同class的标签是不一样,并且在线预测的时候也是不同的类别,这个能用吗

没太理解你的意思,什么较不同class的标签是不一样,每个class下又有很多类别吗

jiangxinyang227 avatar Sep 25 '19 03:09 jiangxinyang227

这份亚马逊的数据所有的标签都是1-5,按照few-shot的理论,分类的标签应该是不一样的吧?

你说的有道理,本来我是考虑到虽然都是1-5的情感评论,但是是来自不同产品的,因此从文本内容上了来说还是不一样的,所以想说用其他产品的评论通过few shot learning能不能泛化到之前没看到过的产品的评论上,这个few shot learning的数据集很难找到合适的,fewrel是一个,但是是关系分类的,想找一个文本分类的数据集来测试。

我还有个疑问,咱们讨论下,按照meta-learning的思想,应该是首先有一批很多类别的trainset,去建立不同的task训练一下,然后用训练出的参数去初始化few-shot的训练的参数才行,如果按照你写的,我有一个小的训练集,是跟其他训练集准备好一块去kway-kshot吗?

hongshengxin avatar Sep 25 '19 03:09 hongshengxin

这份亚马逊的数据所有的标签都是1-5,按照few-shot的理论,分类的标签应该是不一样的吧?

你说的有道理,本来我是考虑到虽然都是1-5的情感评论,但是是来自不同产品的,因此从文本内容上了来说还是不一样的,所以想说用其他产品的评论通过few shot learning能不能泛化到之前没看到过的产品的评论上,这个few shot learning的数据集很难找到合适的,fewrel是一个,但是是关系分类的,想找一个文本分类的数据集来测试。

我觉得模型这块好像是没问题,缺少了一步去训练训练集的优化。你觉得呢?

hongshengxin avatar Sep 25 '19 03:09 hongshengxin

我加你微信聊吧,我对这个也比较感兴趣,不过也是刚接触。

jiangxinyang227 avatar Sep 25 '19 03:09 jiangxinyang227

拉个群吧,我也想挺感兴趣的

enningxie avatar Sep 25 '19 03:09 enningxie

这份亚马逊的数据所有的标签都是1-5,按照few-shot的理论,分类的标签应该是不一样的吧?

你说的有道理,本来我是考虑到虽然都是1-5的情感评论,但是是来自不同产品的,因此从文本内容上了来说还是不一样的,所以想说用其他产品的评论通过few shot learning能不能泛化到之前没看到过的产品的评论上,这个few shot learning的数据集很难找到合适的,fewrel是一个,但是是关系分类的,想找一个文本分类的数据集来测试。

我还有个疑问,咱们讨论下,按照meta-learning的思想,应该是首先有一批很多类别的trainset,去建立不同的task训练一下,然后用训练出的参数去初始化few-shot的训练的参数才行,如果按照你写的,我有一个小的训练集,是跟其他训练集准备好一块去kway-kshot吗?

你说的这个问题应该属于

15268589332,拉一下,谢谢

好的啊

jiangxinyang227 avatar Sep 25 '19 03:09 jiangxinyang227

最近也在学习小样本学习的内容,想和大神们学习学习,方便添加一个微信吗,18200266721,谢谢

wangfeng0621 avatar Nov 11 '19 10:11 wangfeng0621

你好,我最近在研究小样本学习在文本分类中的应用,想和您讨论下,可以加下微信吗,13663612660,非常感谢

cgr506527043 avatar Nov 18 '19 12:11 cgr506527043

@TestNLP @jiangxinyang227 麻烦问一下整个代码的python和tensorflow的版本都有什么要求?

acupofhotwater avatar Nov 19 '19 07:11 acupofhotwater

最近也在学习小样本学习的内容,想和大神们学习学习,方便添加一个微信吗,18200266721,谢谢

我加你

jiangxinyang227 avatar Nov 19 '19 07:11 jiangxinyang227

你好,我最近在研究小样本学习在文本分类中的应用,想和您讨论下,可以加下微信吗,13663612660,非常感谢

好的

jiangxinyang227 avatar Nov 19 '19 07:11 jiangxinyang227

@TestNLP @jiangxinyang227 麻烦问一下整个代码的python和tensorflow的版本都有什么要求?

python == 3.6 tensorflow == 1.12.0

jiangxinyang227 avatar Nov 19 '19 07:11 jiangxinyang227

最近也在问题,求加微信,qiang1033020837,谢谢

1033020837 avatar Feb 02 '20 13:02 1033020837

您好,我最近也在学习小样本学习方面的内容,想向大神们请教请教,请问可以加一个微信吗,微信号是lxsrtygh

patrolli avatar Feb 24 '20 12:02 patrolli

@jiangxinyang227 您好 最近也在研究小样本学习,求加微信,housaia, 谢谢

yangyyyy avatar Apr 02 '20 02:04 yangyyyy