文章 "神经网络变得轻松(第七部分):自适应优化方法" - 页 2

 

TempData.Add((double)((buy || sell) ?0 : 1));//Undefine

Undefine 不能像前面的代码那样写 0.5 而不是 0 以减少未定义的次数吗?

 

迪米特里,干得好,干得漂亮!你为这幅作品付出了巨大的努力。

感谢您的分享。

有一点小意见:

我试过脚本,反向传播是在前馈之前执行的。

我的建议是先执行前馈,然后再反向传播正确的结果。

如果在了解网络的想法后再反向传播正确的结果,可能会减少分形丢失的情况。


还有、

这样做

TempData.Add((double)((!buy && !sell) ? 0.5 : 0));

因此,我们应该避免这样做。

在网络学习方面

我们可以从亚当优化器和0.001的学习率开始,在历时中不断重复。

为了找到更好的学习率,我们可以使用 LR 范围测试 (LRRT)


比方说,如果默认值不起作用,找到好的学习率的最佳方法就是 学习率范围测试

  1. 从很小的学习率(例如1e-7 开始

  2. 在每个训练批次中,逐渐以指数方式 提高学习率。

  3. 记录每一步的训练损失。

  4. 绘制损失与学习率的对比图。

  5. 观察曲线图。损失会下降,然后趋于平稳,然后突然上升。(上升后的下一个学习率即为最佳学习率)

我们 需要损失持续减少的最快学习速度。

再次感谢