一些在文本数据量不够大的时候可用的一些实用方法.doc
《一些在文本数据量不够大的时候可用的一些实用方法.doc》由会员分享,可在线阅读,更多相关《一些在文本数据量不够大的时候可用的一些实用方法.doc(8页珍藏版)》请在三一文库上搜索。
1、一些在文本数据量不够大的时候可用的一些实用方法深度学习往往需要大量数据,不然就会出现过度拟合,本文作者提出了一些在文本数据量不够大的时候可用的一些实用方法,从而赋予小数据集以价值。作为数据科学家,为你的问题选择正确的建模方法和算法应该是你最重要的技能之一。几个月前,我致力于解决一个文本分类问题,关键在于判断哪些新闻文章与我的客户相关。我只有一个几千条带标注的新闻数据集,所以我从简单的经典机器学习建模方法开始着手解决这个问题,例如用TF-IDF来做Logistic回归分类。一般说来,这些模型适用于长文档(如新闻、博客文章等)的文本分类,然而在我这个任务上的执行效果却不尽如人意,仅仅略好于随机分类
2、。在研究了一番模型错在哪里之后,我发现词袋模型(bag of words)这种表示方法对于这个任务是不够的,我需要一个能深入理解文档语义的模型。深度学习模型在需要深入理解文本语义的复杂任务上已经表现出了非常好的效果,例如机器翻译,自动问答,文本摘要,自然语言推理等。这看起来对我的任务而言是一个很完美的方法,但是为了训练深度学习模型通常需要数十万甚至数百万个被标记的数据,而我只有一个很小的数据集。怎么办呢?通常,我们需要大量数据来训练深度学习模型目的在于避免过拟合。深度神经网络具有非常非常多的参数,因此如果没有用足够的数据去训练它们,它们往往会记住整个训练集,这就会导致训练的效果很好,但在测试集
3、上的效果就很差了。为了避免因缺乏大量数据而导致的这种情况,我们需要使用一些特殊的技巧!一击必杀的技巧!在这篇文章中,我将展示一些由我自己开发或是我在文章、博客、论坛、Kaggle和其他一些地方发现的方法,看看它们是如何在没有大数据的情况下让深度学习更好地完成我的任务的。其中许多方法都基于计算机视觉中广泛使用的最佳实践。一个小小的免责声明:我并不是一个深度学习方面的专家,这个项目也只是最初几个我用深度学习完成的大项目之一。这篇文章的所有内容都是对我个人经验的总结,有可能我的方法并不适用你的问题。正则化正则化方法以不同的形式呈现在机器学习模型中,它可以被用来避免过拟合。这些方法的理论性很强,对于大
4、多数问题来说是一种普遍通用的方式。L1和L2正则化这些方法可能是最古老的,并且在许多机器学习模型中已经使用多年。使用这种方法时,我们将权重的大小添加到我们试图最小化的模型损失函数中。这样,模型将尽量使权重变小,同时那些对模型影响不明显的权重值将被减小到零。通过这种方式,我们可以使用更少数量的权重来记住训练集。更多细节:https:/towardsdatascience/only-numpy-implementing-different-combination-of-l1-norm-l2-norm-l1-regularization-and-14b01a9773bDropoutDropout是另
5、一种较新的正则化方法。它具体的做法是在训练期间,神经网络中的每个节点(神经元)按照P的概率被丢弃(即权重被设置为零)。这样,网络就不会依赖于特定的神经元和他们之间的相互作用,而必须在不同的部分学习每一种模式。这就使得模型专注于学习那些更易于适用到新数据的重要模式。Early stoppingEarly stopping是一种简单的正则化方法,只需监控验证集性能,如果你发现验证集性能不再提高,就停止训练。这种方法在没有大数据的情况下非常重要,因为模型在5-10次甚至更少次数的迭代之后,通常就开始出现过拟合了。减少参数的数量如果你没有大型数据集,那你就应该谨慎设计网络中的层数和每层的神经元数量。
6、此外,向卷积层这样的特殊层比全连接层具有更少的参数,所以如果可能的话,使用它们会非常有用。数据增强数据增强是一种通过更改训练数据而不改变数据标签的方式来创建更多训练数据的方法。 在计算机视觉中,许多图像变换的方法被用于数据集大小进行扩增,例如翻转、裁剪、缩放、旋转等。这些变换对于图像类型的数据很有用,但不适用于文本,譬如翻转出像“狗爱我”这样无意义的句子,用它来训练模型的话将不会有什么效果。以下是一些针对文本的数据的增强方法:同义词替换在这种方法中,我们随机的选一些词并用它们的同义词来替换这些词,例如,我们将句子“我非常喜欢这部电影”改为“我非常喜欢这个影片”,这样句子仍具有相同的含义,很有可
7、能具有相同的标签。但这种方法对我的任务来说没什么用,因为同义词具有非常相似的词向量,因此模型会将这两个句子当作相同的句子,而在实际上并没有对数据集进行扩充。回译在这个方法中,我们用机器翻译把一段英语翻译成另一种语言,然后再翻译回英语。这个方法已经成功的被用在Kaggle恶意评论分类竞赛中。例如,如果我们把“I like this movie very much”翻译成俄语,就会得到“ ”,当我们再译回英语就会得到“I really like this movie”。回译的方法不仅有类似同义词替换的能力,它还具有在保持原意的前提下增加或移除单词并重新组织句子的能力。文档裁剪新闻文章通常很长,在查
8、看数据时,我发现对于分类来说并不需要整篇文章。 而且,我发现文章的主要想法通常会重复出现。这让我想到将文章裁剪为几个子文章来实现数据增强,这样我将获得更多的数据。开始的时候我尝试从文档中抽取几个句子并创建10个新文档。这些新创建的文档句子间没有逻辑关系,所以用它们训练得到的分类器性能很差。第二次,我尝试将每篇文章分成若干段,每段由文章中五个连续的句子组成。这个方法就运行得非常好,让分类器的性能提升很大。生成对抗网络GAN是深度学习领域中最令人兴奋的最新进展之一,它们通常用来生成新的图像。下面这篇博客解释了如何使用GAN进行图像数据的数据增强,但它的一些方法或许也可以适用于文本数据。博客链接:h
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 一些 文本 数据量 不够 时候 可用 实用 方法
链接地址:https://www.31doc.com/p-3362022.html