深度学习模型介绍
由clearyf创建,最终由clearyf 被浏览 517 用户
导语
BigQuant平台不仅支持传统机器学习模型,同时还对深度学习模型模块进行了封装,方便用户直接使用策略生成器开发策略,降低策略开发难度。本文对BigQuant平台上策略生成器已经支持的深度学习模块进行简单介绍。
深度学习模型通过功能层进行积木式拼接,典型的模型构架如下: 通常模型由输入层、中间层和输出层组成。中间层包括卷积层、池化层、噪声层、循环层和激活层等。输出层通常是一个全连接层(Dense层),通过控制维度来实现分类/回归任务,例如一个二分类任务,通常可以设置Dense层输出为2维,分别表征两个类别的概率;对于一个回归预测问题,可以设置Dense层输出为1维,即预测值。
模块分类
BigQuant策略研究平台支持的深度学习模块分为如下几类(这里仅列举部分模块):
**包装器 :**双向RNN包装器
卷积层 :
Conv1D层:一维卷积层
Conv2D层:二维卷积层
Conv2DTranspose层:二维反卷积层
Conv3D层:三维卷积层
Cropping1D层:一维时间裁剪
Cropping2D层:二维裁剪
Cropping3D层:三维裁剪
Upsampling1D层:时间轴上将每个时间步重复size[0]次
Upsampling2D层:将数据的行和列重复分别size[0]、size[1]次
Upsampling3D层:将数据的三个维度上分别重复size[0]、size[1]和size[2]次
ZeroPadding1D层:1维数据输入的首末填充0
ZeroPadding2D层:2维数据输入的边界填充0,以控制卷积后的特征图大小
ZeroPadding2D层:3维数据输入的边界填充0,以控制卷积后的特征图大小
噪声层 :
AlphaDropout层:保持输入均值和方差不变的Dropout,能够保持数据的自规范性。
GaussianDropout层:给输入施加一个均值为1,标准差为sqrt(rate/(1-rate))的层。正则化作用的层,只在训练时有效。
GaussianNoise层:为数据施加均值为0,标准差为stddev的高斯噪声,通常用来克服过拟合。
嵌入层 :
Embedding层:将正整数转化为具有固定大小的向量
循环层 :
GRU层:门限循环单元
LSTM层:长短记忆模型
SimpleRNN层:全连接RNN层
池化层 :
AveragePooling1D层:对一维数据平均池化
AveragePooling2D层:对二维数据平均池化
AveragePooling3D层:对三维数据平均池化
MaxPooling1D层:对一维数据最大值池化
MaxPooling2D层:对二维数据最大值池化
MaxPooling3D层:对三维数据最大值池化
常用层:
输入层:张量数据输入
激活层:对一个层的输出施加激活函数
全连接层:全连接层
Dropout层:对数据施加Dropout
Flatten层:多维输入一维化
Reshape层:数据维度转换,数据总量不变
模型 :
构建(深度学习):模型初始化
训练(深度学习):训练模型
预测(深度学习):模型预测
深度学习模型构建步骤
1、通过模块堆叠将输入层,中间层和输出层连接,然后通过模型构建模块进行初始化。 2、通过训练(深度学习)模块,在模型和输入训练集数据的基础上进行模型训练。 3、通过预测(深度学习)模块,在输入的测试集数据上进行预测。
层数加深可能遇到的问题
通常深度学习模型随着层数的加深会遇到"表示瓶颈"、"梯度消失"和"过拟合"
- 表示瓶颈:每个层构建于上个层的信息之上,如果中间某层太小,则模型会受制于该层的信息塞入量。通过残差连接技术可以将上游数据重新注入下游,可以部分解决问题。
- 梯度消失:网络模型随着深度增加,残差梯度减小导致训练效果变差。一方面可以改造模型,例如LSTM引入平行的信息携带轨道有助于跨越任意深度的层传播梯度。另一方面可以通过批标准化BactcNormalization层适应性地将数据标准化,有利于梯度传播,该技术广泛用于高级卷积神经网络,例如ResNet50,Inception V3和Xception,此模块通常在卷积层和Dense层后使用。最新的改进包括批再标准化、自标准化神经网络等。
- 过拟合,通常数据集较小时,可能由于模型参数过多导致在训练集数据上拟合较好而在验证集上表现不佳。例如用一个10次多项式在具有线性关系的3个数据训练集上拟合,必然导致很多高次项的参数很小,将这个带有很多高次项的多项式在测试集上预测会产生很大偏差。通过Dropout技术,适当屏蔽参数,并通过正则化对过小的参数的进行惩罚等技术可以有效降低过拟合。
对于不同的问题,通常根据情况选取不同的深度学习网络:
处理与文本或时间序列等于时间顺序相关的问题时,循环网络比全连接层更适合。在文字语言处理方面双向LSTM和堆叠RNN模型都有较好的应用,例如谷歌翻译采用了堆叠RNN。但在小型问题上,一维卷积神经网络可以替代RNN并且速度更快。 词嵌入模型(Embedding)成为近年来文本向量表示的通用技术。 此外,生成对抗网络GAN在图像和语音合成方面也有长足进步,例如谷歌DeepMind提出的WaveNet深度生成网络,利用扩展卷积网络可以逼真地再现人的声音和乐器声音。
最后,大家可以参考BigQuant平台算法策略案例初步熟悉平台上各类算法的可视化流程。
小结: 本文对深度学习模型进行简单介绍,帮助大家初步了解深度学习模型的层以及模型构建流程,后续会讲解一些案例来帮助大家更好地理解深度学习模型的开发流程。