在“确定性神经网络”的算法研发过程中,最多时使用到了百亿组数据进行训练,一次训练数月都没能结束,但在算法研发完成并在“神经网络连子棋”的模型训练和使用对比之后,我们发现,数千组数据就能训练出比之前更好的模型,即训练数据的质量远比数量来得重要。
在神经网络研发初期,我们按照惯例(训练神经网络时需要大量数据的惯例),一边设计推导算法,一边准备训练用数据。为了准备更加充分的数据,我们选择了连子棋这一款游戏,并且额外写了个程序自动生成对弈数据用于训练网络。同时,为了得到更全面的数据(以免遗漏重要数据导致网络训练不出好的模型),我们尝试了通过遍历的方式来生成完全的对弈数据。
在生成数据的过程中,我们先后尝试了15x15棋盘至6x6棋盘上的五连子(五子棋)和六连子对弈、5x5棋盘上的五连子和三连子、4x4棋盘上的三连子和3x3棋盘上的三连子对弈,其中仅有3x3和4x4棋盘上的对弈获得了完全遍历的数据,其余均没能获得全面的数据,但即便如此,在每种棋盘上的遍历也花费了至少一个月、最多六个月的时间,生成的数据至少以G计(大多时候以T计),其中,一条对弈数据的大小在几十字节到几百字节之间,依据棋盘大小而有较大的变动。注:3x3和4x4棋盘上生成的数据较少,不在上述描述之列。
以上的数据为“确定性神经网络”的研发和“神经网络连子棋”模型的训练测试提供了较大的帮助。在“神经网络连子棋”应用上线推广以来,通过用户挑战和AI自我对弈也提供了一批批的有效数据,截至目前为止,积累了4809条有效对弈数据。
通过使用新产生的数据对已研发完成的“确定性神经网络”进行重新训练,我们发现以前用的数百亿条数据能产生的贡献微乎其微。譬如:我们先使用4809条新数据进行训练,之后在此模型上使用6x6棋盘上的对弈数据(花费了676个小时生成的两千六百多万条数据)进行训练,仅仅贡献了0.4%的模型增量。另外,在此之前,仅有两三千条数据的时候,经过重新训练已经发现并剔除了不会为模型带来增量的一批批数据(例如:7x7棋盘上生成的数据)。
截至目前为止,我们使用4809条六连子对弈数据训练出了10层网络,使用11022条五连子对弈数据训练出了11层网络,这两种网络模型分别应用于神经网络连子棋挑战赛和五子棋等级考试版本中,模型文件可通过以下几种途径下载获得:官网下载(www.gnxxkj.com),github下载(https://github.com/wangdechang119),gitlab下载(https://gitlab.com/wangdechang119),gitee下载(https://gitee.com/wangdechang119),欢迎大家下载并对比评估。
结论:
经历从研发、测试、上线、重训练的整个迭代之后,我们发现,大批量、更全面的数据在神经网络的研发过程中能起到更好的促进作用,然而,当神经网络算法研发完成之后,高质量的数据对网络模型的训练将产生更高的价值,这种质量带来的价值远非数量所能弥补的。即,神经网络算法研发时使用大量、全面的数据,数据质量无所谓;算法完成后的模型训练过程中,使用极少量的高质量数据,既能减少训练用的时间和硬件资源需求,又不会降低模型质量。
在神经网络研发中,初期大量数据的使用并未带来最佳效果。但在算法完成后,少量高质量数据的训练却能显著提升模型性能。以4809条六连子对弈数据训练出的10层网络和11022条五连子数据训练的11层网络为例,表明模型训练中数据质量的重要性远超数量。这一发现减少了训练时间和资源需求,同时保持了模型质量。
1026

被折叠的 条评论
为什么被折叠?



