您好、欢迎来到现金彩票网!
当前位置:红彩会 > 分类器 >

全文解析!如何使用TF-Hub构建一个简单的文本分类器

发布时间:2019-04-30 10:37 来源:未知 编辑:admin

  导语:TF-Hub是一个可以共享机器学习专业知识的平台,里面包含在可重用资源中打包的机器学习专业知识,特别是在预先训练的模块中的技能。接下来,本文将介绍该如何使用“TF-Hub”构建一个简单的文本分类器。本教程主要从两个部分展开:使用TF-Hub训练文本分类器和迁移学习的分析。

  我们将使用一个TF-Hub文本嵌入模块来训练一个简单的情绪分类器,并具有合理的基线精确度。然后,我们将分析预测结果以确保我们的模型是合理的,并提出改进以提高准确度。

  在本节中,我们将使用各种TF-Hub模块来比较它们对估计精确度的影响,并论证迁移学习的优点和缺点。

  我们将尝试解决从群众Mass等获得的大型电影评论数据集(Large Movie Review Dataset)v1.0任务。该数据集由IMDB电影评论组成,并被根据积极性从1到10进行标注。我们的任务是将这些评论标注为负面或正面。

  TF-Hub提供了一个特征列,它在给定的文本特征上应用了一个模块,并进一步传递了模块的输出。在本教程中,我们将使用nnlm-en-dim128模块。为了达成本教程的目的,几个最重要的事实是:

  •该模块可以处理任何输入(例如,nnlm-en-dim128会将没有出现在词汇表中的单词散列到~20.000桶内)。

  对于分类,我们可以使用DNN分类器(请注意,在本教程的最后有关于不同建模函数的进一步附注)。

  情绪回归:我们使用分类器将每个样本分配到极性类中。但实际上,我们还有另一个分类特征——情绪。在这里,类实际上表示一种规模,基础值(正/负)可以很好地映射到一个连续的范围内。我们可以通过计算回归(DNN Regressor)而非分类(DNN Classifier)来利用这一特性。

  更大的模块:为了达到本教程的目的,我们使用了一个小模块来限制内存的使用。有些模块拥有更大的词汇量和更大的嵌入空间,可以提供更多的精准点。

  参数调整:我们可以通过调整学习速率或步骤数等元参数来提高精确度,尤其当我们使用不同模块时。如果要得到合理的结果,那么验证集是非常重要的,因为它很容易建立一个学习预测训练数据的模型,而不需要很好地泛化到测试集。

  更复杂的模型:我们使用了一个模块,通过嵌入每个单词,将它们与平均值相结合来计算句子嵌入。我们还可以使用序列模块(如通用句子编码器模块)来更好地捕捉句子的性质。或两个或多个TF-Hub模块的组合。

  正则化:为了防止过度拟合,我们可以尝试使用执行某种正则化的优化器,例如Proximal Adagrad Optimizer。

  迁移学习可以节省训练资源并实现良好的模型泛化,即使在小数据集上进行训练时也是如此。在这一部分中,我们将通过使用两种不同的TF-Hub模块进行训练来证明这一点。

  •random-nnlm-en-dim128– 与nnlm-en-dim128具有相同词汇表和网络的文本嵌入模块,但权重只是随机初始化,从未在真实数据上进行过训练。

  我们已经可以看到一些模式,但我们应当首先建立测试集的基线精确度——仅通过输出最具代表性的类的标签即可实现下限。

  •或许,令人惊讶的是,模型仍可以在固定的、随机嵌入上进行学习。原因是,即使字典中的每个单词都被映射到随机向量上,估计器也可以单纯地使用其完全联通的层来分离空间。

  •允许使用随机嵌入对模块进行训练可以提高训练和测试的精确度,因为它们只是对分类器进行训练。

  •使用预先训练的嵌入对模块进行训练也会提高二者的精确度。但是,需要注意训练集上的过度拟合。即使进行了正则化,训练预先训练好的模块也是危险的,因为嵌入权重不再代表基于不同数据训练的语言模型,而是收敛到新数据集的理想表示。

http://m3-ctech.com/fenleiqi/153.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有