Answers:
在梯度下降算法中,该算法通过找到可以找到最佳解的方向来进行。最佳方向原来是渐变。但是,由于我们仅对方向感兴趣,而不必对沿该方向移动的距离感兴趣,因此通常对梯度的大小不感兴趣。因此,归一化梯度足以满足我们的目的,因此决定我们要沿计算方向移动多远。但是,如果您使用非归一化的梯度下降,那么在任何点上,您在最佳方向上移动的距离都取决于梯度的大小(本质上是由目标函数的表面决定的,即陡峭表面上的点将具有高幅度,而相当平坦的表面上的一点将具有低幅度)。
从上面的内容,您可能已经意识到梯度的归一化是您获得的附加控制能力(是否有用取决于您的特定应用程序)。我上面所说的意思是:
1]如果要确保算法在每次迭代中都以固定步长移动,则可能要使用具有固定归一化梯度下降。
2]如果要确保算法按照您精确指定的步长移动,那么再次可能需要对归入步长使用归一化梯度下降和特定函数。η
3]如果要让梯度的大小决定步长,则将使用非归一化的梯度下降。还有其他几种变体,例如您可以让渐变的大小决定步长,但可以设置一个上限,依此类推。
现在,步长显然会影响收敛速度和稳定性。以上哪种步长效果最好,完全取决于您的应用程序(即目标函数)。在某些情况下,可以分析收敛速度,稳定性和步长之间的关系。然后,这种关系可能会提示您要进行归一化还是非归一化梯度下降。
总而言之,归一化和非归一化梯度下降之间没有区别(就算法背后的理论而言)。但是,它对收敛速度和稳定性有实际影响。一个选择另一个是完全基于手头的应用/目标。