MQL5算法交易的神经网络-007长短期记忆网络
定义属性
构建LSTM的四个门控单元:m_cForgetGate、m_cInputGate、m_cNewContent、m_cOutputGate,分别负责遗忘门、输入门、新内容和输出门的计算。
m_cMemorys和m_cHiddenStates,存储LSTM单元的记忆状态和隐藏状态。
m_cInputs,输入数据的缓冲区。
m_cForgetGateOuts、m_cInputGateOuts、m_cNewContentOuts、m_cOutputGateOuts,保存各个门控单元的输出结果。
m_cInputGradient,存储输入梯度,用于反向传播。
m_iDepth,网络的深度,表示层数。
初始化
创建CLayerDescription 指针temp
利用temp初始化 ForgetGate
利用temp初始化 InputGate
利用temp初始化 OutputGate
利用temp初始化 NewContent
初始化 InputGradient 缓冲区
初始化 Memory 缓冲区
初始化 HiddenStates 缓冲区
前向传播
设置四个门的缓冲区SetOutputs
创建内存和隐藏状态的缓冲区
创建源数据缓冲区
依次对遗忘门、输入门、输出门、新内容等对象进行前向传播。
获取遗忘门、输入门、输出门、新内容的输出缓冲区并开始计算。
将隐藏状态缓冲区 hidden
赋值给当前层的输出缓冲区 m_cOutputs
。
将遗忘门、输入门、输出门、新内容的输出缓冲区插入相应的缓冲区数组。