赞
踩
随着深度学习的发展,递归神经网络(RNN和LSTM)和卷积神经网络(CNN)等神经网络结构已经完成了自然语言处理(NLP)的大部分任务,它在文本分类、语言建模、机器翻译等性能上都有了很大的提高。
然而,与计算机视觉(Computer Vision)中的深度学习性能相比,自然语言处理的深度学习模型的性能就差强人意了。
原因之一在于缺少大型带标记的文本数据集。目前,大多数带标记的文本数据集对于自然语言处理的深度学习模型来说都不够“大”,不足以训练深度神经网络,因为深度神经网络的参数量很大,如果在小数据集上训练这样的网络会导致过拟合。
除此之外,自然语言处理落后于计算机视觉发展的另一个重要原因是它缺乏迁移学习(transfer learning)。要知道,迁移学习在计算机视觉深度学习中发挥了重要作用。借助Imagenet等大型标记数据集的强可用性,基于CNN的深度模型训练成为可能——目前,这些大型标记数据集已经被广泛用作于计算机视觉任务的预训练模型了。
而在自然语言处理的深度学习上,直到2018年谷歌提出Transformer模型,NLP深度学习才算有了新的飞跃。
本文将通过实际演示来解释如何调整BERT来进行文本分类(Text Classification),包括以下几个部分:
迁移学习是一种将深度学习模型在大数据集里训练,然后在另一个数据集上执行类似任务的技术。我们称这种深度学习模型为预训练模型(Pre-trained Models)。
预训练模型最著名的例子是在ImageNet数据集里训练的计算机视觉(Computer Vision)深度学习模型。解决问题的最好方式是使用一个预先训练好的模型,而不是从头开始构建一个模型。拿日常工作和生活举例,想必大家为了顺利甚至完美地提案,一定会提前不断地进行准备和模拟吧?迁移学习是一个道理。
随着近年来自然语言处理的发展,迁移学习成为了一种可行的选择。
NLP中的大部分任务,如文本分类、语言建模、机器翻译等,都是序列建模任务(Sequence Modeling tasks)。这种传统的机器学习模型和神经网络无法捕捉文本中出现的顺序信息(sequential information)。因此,人们开始使用递归神经网络(RNN和LSTM),这些结构可以建模文本中出现的顺序信息。
然而,递归神经网络也有局限,其中的主要问题是RNNs不能并行化(parallelized),它们一次只能接受一个输入。对于文本序列,RNN或LSTM每次输入只能接受一次切分(Token),即逐个地传递序列。如果在一个大数据集里训练这样一个模型会花费很多时间。
水涨船高的时间成本使在NLP里使用迁移学习的呼声不断,终于,在2018年,谷歌在《Attention is All You Need》一文中介绍了Transformer模型,这个模型成为了NLP深度学习的里程碑。
很快,基于Transformer的NLP任务模型又多又快地发展起来。
使用Transformer的模型有很多优点,其中最重要的以下两点——
BERT和GPT-2是当下最流行的基于Transformer的模型,
而在本文中,我们将重点关注BERT并学习如何使用预先训练好的BERT模型来执行文本分类。
BERT(Bidirectional Encoder Representations from Transformers)是一个具有大量参数的大型神经网络架构,其参数量可以从1亿到3亿多个。所以,在一个小数据集上从零开始训练BERT模型会导致过拟合。
所以训练BERT模型需要从大型数据集开始,然后使用相对小的数据集上进行再训练模型,这个过程被称为模型微调(Model Fine-Tuning)。
模型微调的几种方法:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。