zoukankan      html  css  js  c++  java
  • 少量数据文本分类避免过拟合的方法

    转载:https://www.cnblogs.com/jiangxinyang/p/10219709.html

    1 概述

      虽说现在深度学习在文本分类上取得了很大的进步,但是很多时候在工业界没有与之匹配的数据量,在少量数据的情况下,使用深度学习很容易出现过拟合,而此时使用传统的TF-IDF加机器学习又无法取得良好的效果。针对这种情况,我们来看看在使用深度学习时有哪些方法也尽量地避免过拟合。

    2 过拟合的处理方法

    1)L1和L2正则化

      对模型中的权重系数加上L1或L2正则处理,将无关的权重系数惩罚到一个很小的值,甚至为0。

    2)Dropout 正则化

      Dropout正则化一般使用在全连接层中。 

    3)提早停止

      当发现在继续迭代时,验证集上的损失开始上升时,即使此时训练集上的损失在下降,也应该停止迭代。

    4)数据增强

      在图像中我们知道可以通过对图片进行翻转,裁剪,缩放,调整对比度等来进行数据增强,那么在文本中又该如何增强数据呢?

      a)同义词替换

      在有些论文中提出了同义词替换,但在使用word2vec词嵌入时,同义词之间的向量是非常相似的,也就是说你输入到模型中的数据实际上没有什么变化,此时的效果并不会很好。

      b)反向翻译

      利用机器翻译的技术将原始的句子翻译成一种目标语言,然后又将这种目标语言重新翻译回来,例如英文文本分类时,先将英文翻译成西班牙语,然后又反向翻译为英文,利用这种方法可以得到两个不同的句子。有时候能取得不错的效果。

      c)文档裁剪

      如果此时是长文本分类时,有时候一篇长文本中的主要思想会重复好几次,此时我们只要把这含有中心思想的几处给裁剪出来,就可以将一个长文本裁剪成多个文本。

      d)生成对抗网络

      生成对抗网络已经被用在图像中的数据增强中,也可以尝试用在文本中。

    5)迁移学习

      a)预训练词向量

      例如常用的word2vec,glove等

      b)句子向量

      直接将文档用句子向量表示,例如facebook和谷歌的句编码器,或者skip-thought等。

      c)预训练的语言模型

      例如ULMFiT,BERT等。

      d)多任务学习

      可以构建多个任务协同学习

    6)特征工程

      人工从文本中抽取特征工程,然后利用较小的模型来建模。

  • 相关阅读:
    Android 一个app启动另一个app
    Android 电池电量进度条,上下滚动图片的进度条(battery)
    Android 返回键双击退出程序
    Failed to load or instantiate
    GNUstep 快捷键编译
    Android 文件夹命名规范 国际化资源
    mac 安装protobuf,并编译为java,c++,python
    Android 贝塞尔曲线 折线图
    android 制作自定义标题栏
    Gson
  • 原文地址:https://www.cnblogs.com/Lee-yl/p/11275334.html
Copyright © 2011-2022 走看看