我是编码的新手,我已经被引导开始使用Python,因为它对初学者有好处而且非常通用。我一直在网上看一些关于如何使用Python创建神经网络的教程,但是我只是在这个例子中陷入困境。
我已经看过并制定出了具有学习率和误差阈值的教程,这些都是常量变量。例如,学习速率= 0.1且误差阈值= 0.1,但是在该特定示例中,没有我可以看到的恒定学习速率和误差阈值变量。
有人可以解释为什么学习率和错误阈值没有被使用吗?
答案 0 :(得分:1)
学习率:该代码不使用学习率,或者使用学习率1
。第48,49行只是添加调整(梯度)值而没有任何速率。这是一个不寻常的选择,并且有时在实践中工作,但通常不建议。从技术上讲,这是最简单的梯度下降版本,并且有许多简单的梯度下降的详细说明,其中大多数涉及学习率。我不会进一步阐述,因为这个评论回答了你所问的问题,但是你应该知道构建一个优化器是一个大研究领域,有很多方法可以更精细地做到这一点。或更复杂(希望有更好的表现)。
错误阈值:当达到错误阈值时,此算法不会停止优化,而是在经过固定次数的迭代(60,000)后停止。这是一种常见的选择,特别是在使用随机梯度下降(再次,另一个大话题)时。这里的基本选择是有效的:在达到性能阈值(错误阈值)之前不进行优化,优化直到达到计算预算(60,000次迭代)。