1. 概述
神经网络对抗是指通过已有的神经网络模型或技术来发现训练过程中的不足,进而保障新的模型训练能够弥补所发现的不足,该技术在深度学习发展到一定阶段之后得到了越来越多的应用,主要用于训练数据的生成和选择,有时又称强化学习等。典型的,AlphaGo系列算法用于围棋对弈模型训练、确定性神经网络连子棋的模型训练等都在使用。
2. 神经网络对抗的优点
使用神经网络对抗进行模型训练具有若干优点:
(1)减少人工干预
在模型训练过程中,经常需要人工干预,例如:发现训练出的模型的缺陷、生成或选择新的训练数据、补充或剔除部分训练数据等,以便进一步训练和完善模型。此类人工干预工作难度很大,耗时耗力,还不一定能够很好地完成,但是,这些工作可以由神经网络对抗技术来完成,而且神经网络对抗可以做得更好。
(2)完善模型
出于训练数据本身的不全面、数据含有噪声等因素,训练出的模型在某些场景可能工作不稳定,也可能训练出残缺的模型,这类问题都需要补充新的数据进行再训练,然而新数据的选择是个复杂且庞大的问题,有时候甚至没有工作方向,因而,模型完善变得非常困难。引入神经网络对抗技术可以有效地削弱这类问题的难度,能在极大程度上发现模型的残缺和不稳定的地方,并针对性生成训练数据,以便模型再训练时得到补充和完善。
(3)加快训练
通常的模型训练使用的数据是人工随机选择的,也是盲目选择的,这些数据通常会存在很大的相关性,数据有效率较低,这导致一个简单的功能或模型需要千万级以上的训练数据,不仅占用大量的存储和计算资源、消耗大量的训练时间,而且数据本身的筛选、模型优化和再训练等都会导致重复的资源和时间消耗,最终只能通过大量的硬件集群、增量式模型发布、长周期模型升级等方式来规避问题。
神经网络对抗技术可以产生或筛选高质量的数据用于模型训练,进而减少训练所用的数据和时间,也同时减少对应的硬件存储和计算资源等。在使用高质量数据进行训练时,训练数据需求量甚至减少到原先的万分之一都有可能,尤其到模型优化后期,高质量数据的增加量越来越少,反之,使用低质量数据的话,越到后期则数据增加量越大。打个比方,使用高质量数据进行训练,覆盖完整模型的90%可能需要1万条数据,将覆盖率提升到91%可能需要额外增加100条数据,再将覆盖率提升到92%可能还需要额外再增加70条数据;而使用低质量数据进行训练的话,覆盖完整模型的90%可能需要1亿条数据,将覆盖率提升到91%可能需要额外增加5000万条数据,再将覆盖率提升到92%可能还需要额外再增加1.2亿条数据,毕竟低质量的数据越往后则有效率会越低。
3. 特性分析
通过前面的介绍不难发现,神经网络对抗技术实际上是发现当前数据和模型的不足,并针对性的加以完善。即,先要有,然后对其进行优化,而且,神经网络对抗技术能加速模型在这个不足方向上的优化,但是,若数据或模型本身就没有包含某个部分的信息,则无法通过神经网络对抗技术来无中生有的进行扩展和完善。
4. 总结
使用神经网络对抗技术有可能会导致模型陷入局部最优。尤其是在特征空间非常大的时候,此时可能会包括若干特征区域,而神经网络对抗技术只能让模型在已包含的区域中更准确,却无法让模型包含其它暂未涵盖的区域。e.g 在确定性神经网络连子棋模型训练过程中,15x15棋盘上的三连子只使用了十几条数据就训练出了局部最优的的模型,若使用低质量数据,可能要若干万条训练数据才能达到相似的程度;而15x15棋盘上的四连子也很快就进入了局部最优,虽然比三连子多用了几百条数据;五连子至十五连子尚未进入局部最优,很可能是因为特征空间没有足够大。