如何应对深度学习中的过拟合
这是一个老生常谈的问题了,也是随着机器学习、深度学习的发展,被人诟病最多的一个问题。其实机器学习AI的发展也是不断地与过拟合问题解决过程中不断地发展开来。
BigQuant说一说AI量化投资当中一些过拟合的问题吧。
1、引入另类数据
另类的数据、舆情数据、新闻NLP数据、分析师一致性预期、遥感数据、卫星数据、电商数据、ESG数据等海外已经大量使用,一定程度上就是在解决过拟合的问题,因为单凭既有数据做研究,很容易陷入过拟合的可能。
2、引入生成数据
同时,也可以用Gan打出一张”无中生有“,模拟生成金融时间序列,成为“平行世界”,在“平行世界”中进行策略回测,检验投资策略过拟合概率。
在这块部分,华泰证券金融工程座过研究,比如做双均线择时参数选择,历史上(7、28)这组参数比(5、20)好,但如何证明(7、28)是真的好,而不是过拟合?可以用GAN生成1000组假的沪深300数据,相当于1000个平行宇宙,把这两组参数放在1000个平行宇宙里面做测试,发现85%的场景之下都是(7、28)更好一点,所以大概率可以证明最优参数不是过拟合。
同时UCL的Koshiyama等人 2019年做了一个研究,他们用GAN生成假数据,用假数据训练一堆机器学习模型,再对这些模型做集成。发现用假模型集成得到的模型,表现会比在真数据训练得到的模型要更好。因为用真数据训练的模型就好比温室里的花朵,只见过单一的真实数据,但是假模型见过大量GAN生成的假数据,见过千山万水,表现大概率比真模型更好。
3、滚动训练
金融市场上还有一个方式就是使用滚动训练,让模型不断地学习、适应市场。市场风格不断变化,去年白酒,今年上半年锂电池、新能源、有色、基建、环保,风格不断变动,模型也需要不断地更新,可以使用滚动训练这种方式,减少过拟合。
比如BigQuant的Deep Alpha-DNN基准模型从2010年初到2017年底开始测试,并从2018初到2021年8月测试,并预测未来5日收益率,回测结果显示为年华收益27.37%,而滚动训练采用训练三年测一年的方式进行,8年近40倍收益,年化收益能达65.19%。
4、简化网络
还有一种避免过拟合的方式就是尽量减少网络的容量,不要让模型过于复杂,如100万条数据使用500万的参数就很容易陷入过拟合。
同时基本参数也尽量不做调整,比如batchsize、学习率这些常用的,可以借用在互联网领域已经训练出来的通用参数,然后其他的超参我们可以利用机器学习自动地搜索它在整个参数空间里面的分布,尽可能选择在平原地带的参数分布情形。
5、dropout
还有具体技术,比如全连接深度神经网络里面有一个dropout的的参数其实就是为了来缓解过拟合的,就是随机的在反向传播的过程中丢弃神经元让模型更好地泛化,训练过程中可以观察模型算法训练集损失函数的变动情况,以及验证集损失函数变动的情况,及时地发现模型在什么时候已经过拟合,提前终止也是我们常用的一个技巧。
综上,我们可以从数据、参数、算法这几个角度来尽量减少过拟合。