神经网络变得轻松(第六部分):神经网络学习率实验·进阶篇
「固定权重矩阵后重跑训练」
第一个实验里神经网络权重是随机初始化的,三个 EA 起点各不相同,随机性会干扰对比。这次直接把上一轮学习率 0.01 的 EA 权重矩阵导出来,灌进全部三个 EA,再接着训 30 个迭代,把随机因素压掉。 复跑结果和之前对得上:三个 EA 的平均误差都在 0.42 附近,最低学习率 0.001 的那个依旧误差最小,领先幅度还是 0.0018。所谓学习率递减策略,实测对误差的边际影响基本为 0。 漏分形比例也复现了老结论——学习因子 0.001 的 EA 在前 10 个迭代里漏掉接近 100%,等于根本认不出分形;另外两个 EA 漏报率 97.6%,学习率递减同样没带来改变。 唯一有趋势的是 0.001 学习率 EA 的“命中”百分比在持续往上走,而且递减学习率对它这个指标毫无干扰。外汇与贵金属模型训练属高风险实验,过拟合与样本外失效概率偏高,MT5 上复现前建议先锁定品种与周期。
用 0.5 补偿样本偏斜后分形捕获率回升
前两个实验跑下来,我发现一个怪现象:神经网络训练时“不存在分形”的概率一直在 60%–70% 晃,很少跌破 50%;而买、卖分形各自只有约 20%–30% 的出现机会。根子在于图表里分形烛条远比趋势内烛条少,样本天然不均,网络被带偏,几乎 100% 的分形都被漏掉,只抓到极少数。 直接在训练标签上动手:参考值里缺分形的位置,不再标 1,而是标 0.5,人为补一点权重。改动很小,但方向对了。 拿 0.01 学习率、沿用之前实验的权重矩阵跑 EA,5 次训练迭代后稳定误差约 0.34。分形遗漏率从接近满额降到 51%,命中率爬到 9.88%。图表上 EA 信号是成簇出现的,指向某些特定区域——说明这套补偿思路值得继续拆。外汇与贵金属市场高杠杆、高波动,任何信号都只是概率倾向,实盘前请用 MT5 策略测试器复跑确认。 下面三行就是补偿逻辑的核心:把 buy、sell 原始值入列,若两者皆非则压入 0.5 而非 0,让网络在“无分形”样本上少用力。
TempData.Add((class="type">class="kw">double)buy); TempData.Add((class="type">class="kw">double)sell); TempData.Add((class="type">class="kw">double)((!buy && !sell) ? class="num">0.5 : class="num">0));
◍ 学习率没有标准答案
三个实验里,前两个都指向同一个事实:神经网络学习率直接决定训练结果走向,但至今没有一套明确规则能告诉你该取多少。 这种不确定性意味着,开 MT5 跑自己的训练任务时,只能靠反复试错去锁定合适区间,照搬别人的参数大概率水土不服。 第三个实验给出了另一层提示:用非标准思路处理问题有时能改善结果,不过每一种另类方案都必须用实验数据确认,不能凭直觉上生产。
「顺着四篇进阶读下去」
想真正把 MQL5 里的神经网络跑通,光看一篇不够。官方那组《神经网络变得轻松》从第二部分起就拆开了训练与测试流程,第三部分讲卷积网络,第四部分讲循环网络,第五部分直接上 OpenCL 做多线程计算。 这五篇是连续体:第二部分教你喂数据、算误差、反向调权;第三部分用卷积抓局部特征,适合处理 K 线图像化后的形态;第四部分用循环结构记时间序列依赖,对择时更有用;第五部分把重计算丢给 GPU,MT5 里开 OpenCL 后回测速度可能提升数倍。 打开 MT5 终端,在 MetaEditor 里搜系列标题就能按序读源码。外汇和贵金属杠杆高、滑点随机,实盘前务必用历史数据多周期验证,神经网络过拟合概率不低。
别急着下结论
这套基于分形特征的分类神经网络 EA 一共给了四个可跑的 mq5:Fractal_OCL1 到 3 分别把学习率钉在 0.1、0.01、0.001,Fractal_OCL_step 则从 0.01 起每 10 次迭代降 10 倍,输出层都是 3 个神经元,靠 NeuroNet.mqh 与 NeuroNet.cl 在 OpenCL 侧跑矩阵。 作者在讨论区点过一处关键细节:训练时把“无分形”参考值设为 0.5 而非 1,是因为该类样本远多于出现分形,人为压低权重让三类事件的最大概率大致拉平——这属于针对样本失衡的权宜调参,不是通用法则。 数据归一化当时没做,作者只说“稍后讨论”,所以你直接挂上 RSI/CCI/ATR 原始值进网,前几版结果大概率受量纲支配。外汇与贵金属杠杆高、滑点跳空频繁,这类实验性 EA 只该在策略测试器里用小资金模拟验证,别拿实盘当训练场。 真要复现,先开 MT5 把 ZIP 里 1582.99 KB 的源码拖进对应目录,重点比一步降率和阶梯降率在两个学习率上的回测曲线差异,再决定调参方向。