本文是对于medium上Boris博主的一篇文章的学习笔记,这篇文章中利用了生成对抗性网络(GAN)预测股票价格的变动,其中长短期记忆网络LSTM是生成器,卷积神经网络CNN是鉴别器,使用贝叶斯优化(以及高斯过程)和深度强化学习(DRL)优化模型中超参数。此外,文章中非常完整地实现了从特征抽取、模型建立、参数优化、实现预测的过程,其中运用了多种机器学习方法,比如BERT进行文本情绪分析、傅里叶变换提取总体趋势、autoencoder识别高级特征、XGboost实现特征重要性排序等。本文学习的思路是:GAN算法概览 – 项目思路 – 项目详解。拟在学习完成后,在BigQuant平台上尝试实现GAN算法预测股价走势。
1 GAN算法概览
GAN(Generative Adversarial Networks)生成式对抗网络,顾名思义,是通过对抗的方式学习数据分布的生成式模型。所谓对抗,指的是生成网络和判别网络的互相对抗。生成网络尽可能生成逼真的样本,判别网络尽可能去分析该样本是真实的还是生成的。GAN的目的是通过这种对抗博弈得到效果良好的生成式网络,从而应用于图像生成、语音生成、视频生成等,如近期很火的“AI换头”就可能运用了GAN生成可接受的“另一副面孔”。GAN的具体示意如下:
Z Z Z为隐变量,是随机噪声通常服从高斯分布。 Z Z Z通过生成器generator生成 X f a k e X_fake Xfake,判别器discriminator分辨输入的数据是生成样本 X f a k e X_{fake} Xfake还是真实样本 X r e a l X_{real} X