NLP迁移学习——迁移学习的概念与方法

文章目录NLP中的词向量NLP中的语言建模
什么是迁移学习 1.迁移学习的概念
前百度首席科学家、斯坦福教授吴恩达在2016年的NIPS会议上讲到:
未来,真正的人工智能会落在 (无监督学习)和 (强化学习)上,但很明显,目前这两个领域的水平与有监督的深度学习还无法相比,而迁移学习正是一切还没成熟前的一个折中处理方法 。事实上,迁移学习会是继监督学习之后,机器学习在产业界取得成功的下一个关键驱动力 。
迁移学习的研究来源于一个观测:人类可以将以前学到的知识应用于解决新的问题,从而提高解决问题的效率或取得更好的效果 。因此迁移学习被赋予这样一个任务:从以前的任务当中去学习知识或经验,并应用于新的任务当中 。换句话说,迁移学习的目的是从一个或源任务( tasks)中抽取知识、经验,然后应用于 一个有相关性的目标领域( )中去 。
2.迁移学习的优点
总而言之,迁移学习是一种知识(权重)共享技术,它减少了构建深度学习模型所需的训练数据、计算能力和工程人才的数量 。
Ps. 结合CV中的迁移学习,即在大型通用域数据集上()进行预训练(pre-)得到数据集中表 征所有图片的初、中、高级特征,微调(fine-)就是在小型特定域数据集上(如某家淘宝网店自己的商 品图片数据集)对预训练模型进行再训练,组合出更高级、更抽象的特征,从而达到任务定制的效果 。
NLP中的词向量
1.什么是词向量、词嵌入
在NLP里,最细粒度的表示就是词语,词语可以组成句子,句子再构成段落、篇章和文档 。但是计算机并不认识这些词语,所以我们需要对以词汇为代表的自然语言进行数学上的表征 。简单来说,我们需要将词汇转化为计算机可识别的数值形式(词向量),这种转化和表征方式目前主要有两种,一种是传统机器学习中的one-hot编码方式,另一种则是基于神经网络的词嵌入技术 。词嵌入是一种将各个单词在预定的向量空间中表示为实值向量的一类技术 。每个单词被映射成一个向量(初始随机化),并且这个向量可以通过神经网络的方式来学习更新 。
2.词嵌入与one-hot编码的区别3.如何进行词嵌入
那如何才能将词汇表表征成特征向量形式呢?这需要通过神经网络进行训练,训练得到的网络权重形成的向量就是我们最终需要的词向量 。就是最典型的词嵌入技术 。作为现代NLP的核心思想和技术之一,有着非常广泛的影响 。通常有两种模型,一种是根据上下文来预测中间词的连续词袋模型CBOW(下左图),另一种是根据中间词来预测上下文的skip-gram模型(下右图) 。
1)CBOW模型
CBOW模型的应用场景是要根据上下文预测中间词,所以输入便是上下文词,当然原始的单词是无法作为输入的,这里的输入仍然是每个词汇的one-hot向量,输出Y为给定词汇表中每个单词作为目标词的概率 。可见CBOW模型结构是一种普通的神经网络结构 。主要包括输入层、中间隐藏层和最后的输出层 。我们以输入输出样本((w),w)为例对CBOW模型的三个网络层进行简单说明,其中(w)由前后各c个词构成 。
CBOW目标函数:
2)skip-gram模型
skip-gram模型的应用场景是要根据中间词预测上下文词,所以输入X是任意单词,输出Y为给定词汇表中每个词作为上下文词的概率 。
skip-gram目标函数:
长期以来,词向量一直是自然语言处理的核心表征技术 。预训练的词向量给NLP带来了很大的提高 。2013年谷歌提出的凭借其效率和易用性在硬件加速慢很多且深度学习模型还没有得到广泛支持的时代得到采用 。通过和Glove等算法对大量未标记数据进行预处理的词嵌入被用于初始化神经网络的第一层,其它层随后在特定任务的数据上进行训练 。在大多数训练数据有限的任务中,这种方法帮助提高了2到3个百分点 。