在前面课程当中,我们用一个特别小的自定义数据集,把整个项目的流程走通了。因为数据集特别小,所以模型过拟合了,最终演示的预测效果并不好。但是没关系,接下来,就要换一个真实的数据集,不但不会过拟合,而且需要多个GPU并行训练,才能达到一个基本可用的状态。

数据集介绍

这份数据集,是在 github 上面找的,然后稍微加工了一下。机器翻译的数据集,还是挺多的,比如说著名的 WMT 系列(https://statmt.org/),大家也可以去参考,只是样本量会大很多,需要有自己的机器,训练的时长基本要以天为单位,才能跑出一个相对靠谱的效果。

我们课上用的这个数据集,训练样本是6800条,测试样本是680条,内容是政治、经济、军事相关的新闻稿,格式跟前面我们手动创建的数据集一样。

内容不可见,请联系管理员开通权限。

代码示例

1、导入数据集,并修改配置项

内容不可见,请联系管理员开通权限。

2、Label Smoothing

在论文的5.4节提到,Label Smoothing(标签平滑)的处理,标签平滑其实是一种正则化策略。

论文地址:https://arxiv.org/pdf/1906.02629.pdf

我们训练一个分类模型时,通常会使用独热编码的标签作为目标值,其中一个类别的标签为1,其他类别的标签为0。然而,这种目标值的表示方式存在一个问题,即它对模型的预测非常自信,认为预测结果是绝对准确的。

为了缓解这个问题,可以引入标签平滑(Label Smoothing)的技术。标签平滑通过将目标值中的 1-α 分配给正确的类别,并将剩余的置信度分配给其他类别,从而降低了模型对预测的过度自信程度,提高模型的泛化能力。

内容不可见,请联系管理员开通权限。

好的,这节课主要讲解了数据集的替换,和 Label Smoothing 的设置。下节课,我们要一起学习的内容是动态调整学习率的方法。

本文链接:http://www.ichenhua.cn/edu/note/674

版权声明:本文为「陈华编程」原创课程讲义,请给与知识创作者起码的尊重,未经许可不得传播或转售!