预训练是什么?预训练和直接训练的区别?
一个劲说预训练模型,所以说到底什么是预训练模型?本文就以最简单的视角切入,以一个例子让你明白预训练到底是什么?它和我们平时最常说的直接训练的区别又是什么?个人理解假设有一个任务:现在有个紧急比赛,需要让我们的小baby在一个月内学会跑步!直接训练方式:我之前什么都没教过他,直接让他学会怎么跑步。那他还要自己摸索怎么爬,怎么站立?这两步学会了才能学跑步。这是我们正常的学习思维。但是他本身就是一个小b
一个劲说预训练模型,所以说到底什么是预训练模型?真让人头大!
本文就以最简单的视角切入,以一个例子让你明白预训练到底是什么?它和我们平时最常说的直接训练的区别又是什么?
个人理解
假设有一个任务:现在有个紧急比赛,需要让我们的小baby在一个月内学会跑步!
直接训练方式:
我之前什么都没教过他,直接让他学会怎么跑步。那他还要自己摸索怎么爬,怎么站立?这两步学会了才能学跑步。这是我们正常的学习思维。但是他本身就是一个小baby,让它自己摸索爬和站立的过程是非常长的。等他学完这两步比赛都结束了!
我们知道训练一个神经网络要学习的东西其实就是一个合适的参数。那直接训练方式表现在模型参数上,就是我随机初始化所有的模型参数,然后模型从0开始学习针对当前这个任务的合适参数。
预训练方式:
在任务出现之前,我就已经先教会他怎么爬、怎么站立了。现在比赛来了,我只需让它在之前的基础上随便学学都能很快学会。而且耗时要大大缩短!
预训练方式表现在模型参数上,就是我之前已经拿一个合适的任务(这个任务可能是和很多任务有共同之处的任务)提前训练好了所有的模型参数(预训练)。我们不需要再从0开始训练所有参数了,但是针对我们目前这个任务,有些参数可能不合适,我们只需要在当前参数的基础上稍加修改(微调)就可以得到比较好的效果,这样学习时间必然会大大减小。而且,由于预训练过程和我们当前的任务不是同时进行的,所以可以提前花很长时间把几千亿乃至万万亿参数(现在应该还没)提前预训练好,以求和更多的具体任务都有重合,从而只需要我们微调就可以在各项任务达到不错的效果。
预训练就像“我们读了新华字典、牛津字典后,再让我们解释一个某个字”一样神奇~
更多推荐
所有评论(0)