Python 试图理解神经网络

Python 试图理解神经网络,python,neural-network,deep-learning,Python,Neural Network,Deep Learning,我是一名新的编码人员,在指导下我开始使用Python,因为它对初学者很好,而且非常通用。我一直在网上观看一些关于如何用Python创建神经网络的教程,但我只是被困在这个示例中 我看过并编写了一些教程,其中学习率和错误阈值是常数变量。例如,学习率=0.1,错误阈值=0.1,但是在这个特定示例中,我看不到恒定的学习率和错误阈值变量 有人能解释为什么不使用学习率和错误阈值吗?学习率:该代码不使用学习率,或者更确切地说,它使用的学习率为1。第48、49行只需添加调整(梯度)值,不带任何比率。这是一个不常

我是一名新的编码人员,在指导下我开始使用Python,因为它对初学者很好,而且非常通用。我一直在网上观看一些关于如何用Python创建神经网络的教程,但我只是被困在这个示例中

我看过并编写了一些教程,其中学习率和错误阈值是常数变量。例如,学习率=0.1,错误阈值=0.1,但是在这个特定示例中,我看不到恒定的学习率和错误阈值变量


有人能解释为什么不使用学习率和错误阈值吗?

学习率:该代码不使用学习率,或者更确切地说,它使用的学习率为
1
。第48、49行只需添加调整(梯度)值,不带任何比率。这是一个不常见的选择,有时在实践中也能起作用,尽管一般不建议这样做。从技术上讲,这是梯度下降的最简单版本,对简单梯度下降有许多详细说明,其中大部分涉及学习率。由于此评论回答了您提出的问题,我将不作进一步阐述,但您应该知道,构建优化器是一个很大的研究领域,有很多方法可以更精细或更复杂地实现这一点(希望获得更好的性能)


错误阈值:当达到错误阈值时,该算法不会停止优化,而是在固定的迭代次数(60000)后停止。这是一个常见的选择,特别是当使用随机梯度下降(同样,另一个大主题)时。不过,这里的基本选择是有效的:不是在达到性能阈值(错误阈值)之前进行优化,而是在达到计算预算(60000次迭代)之前进行优化

谢谢你的快速回复。假设我想更改代码,使其具有学习速率和错误阈值。我应该寻找什么?对于学习率,将第48行更改为
self.layer1.synaptic\u weights+=self.learning\u rate*layer1\u adjustment
。第49行也一样。你必须定义自学率。对于错误阈值,将第29行中的
For
循环更改为
while
循环,以检查是否满足阈值;我将把细节留给你去实现。谢谢你的提示。从你提到的小技巧来看,这似乎很容易。我问我应该寻找什么,因为从你最初的答案来看,你似乎需要修改大量的代码。学习速度非常好,但是我在while循环中遇到了一些问题。我已经删除了迭代,因为它将在错误阈值小于0.2时停止。while循环看起来像这样“while True:err=0 if err<0.2:break”代码一直执行到第1阶段,它将停止@麝鼠