MLP 神经网络类 - MetaTrader 5 库
CNetMLP 提供多层感知器 (MLP)。
该类的特点是输入向量和网络结构概念是分离的,即输入向量和网络结构描述彼此不相关。
输入向量的大小可以是合理范围内的任何值。 输入数据应标准化,即数据应在 范围 -1 .. 1 或 0 .. 1。根据所使用数据的类型,对网络应用各种激活函数:双曲正切应用于 -1..1 数据范围,而 sigmoid 应用于 0..1 数据范围。
该网络采用逐层结构,信号直接传输。网络结构由一维数组描述,其中数组元素的值决定相应层中神经元的数量。层和神经元的数量不受限制。该网络可以由单个神经元组成。
每个神经元都有多个输入(由其在网络中的位置定义)和一个输出。如果你需要网络给出 N 个响应,那么最后一层应该包含 N 个神经元。学习算法是iRprop。输入和输出训练数据逐个向量位于一维数组中。学习过程受到学习时期数或允许误差的限制。
网络的创建被声明为类参数构造函数。
CNetMLP *net=新的CNetMLP(
层数、网络结构数组、输入向量大小、激活函数类型:0- 乙状结肠,1- 双曲正切)。
通过调用Learn方法提供网络教学(教学模式个数、输入数据数组、输出数据数组、学习周期数、允许学习误差)。教学结果可以通过班级变量来检查:mse – 学习错误和epoch – 已完成的学习周期数。
计算方法(输入向量数组,网络响应数组)用于获取网络响应。
Save(使用 FILE_WRITE 和 FILE_BIN 标志打开文件句柄)和 Load(使用 FILE_READ 和 FILE_BIN 标志打开文件句柄)方法是 用于将网络保存到文件并分别从文件加载网络。仅将学习误差和权重数组保存到文件中。在使用 Load 方法(句柄)之前,必须验证创建和下载的网络的合规性。
所附样本中显示了该类的使用。班级和样本文件必须放在一个文件夹中。
附件下载
📎 class_netmlp.mqh (12.74 KB)
📎 testmlps.mq5 (4.67 KB)
Source: MQL5 #596
💡 精彩内容推荐
✍️ 楼主最新发布
- •
- •
- •
- •
- •
- •
🔗 您可能感兴趣
- •
- •
- •
- •
- •
- •
