《老饼讲解神经网络》https://ml.bbbdata.com/teach#117
目录
一、下降路径的影响
二、对步长设置的影响
(一) 解决不同变量需要不同步长
(二) 不同问题需要不同步长
本文讲述不归一化对梯度下降法的影响,实际也就是逻辑回归需要归一化的原因。因为逻辑回归在求解过程中,使用的是梯度下降之类的算法。
以下讨论以下面的梯度下降问题为基础:
求一组 , 令 最小,其中的范围为[-10000,10000],而 的范围为[-1,1]。
一、下降路径的影响
不做归一化的情况下,调整1单位时,对 的影响范围为10000,而 调整1单位只会影响1,即y对w1的调整非常敏感,因此,会极偏向调整w1,而忽略w2。
因此在调整同等步长的情况下,w1对w2的影响会更明显。
整个过程会成为:先调整w1,直到w1几乎不可调,再调整w2。只要迭代足够多次,这倒也没有问题。但明显的,w1,w2逐个调整比起w1,w2一起调整需要更多步数。
二、对步长设置的影响 (一) 解决不同变量需要不同步长
在梯度下降算法中,我们需要设置每次调整的步长,而不同变量需要不同步长。
对于w1,由于它的取值范围很多,微小的影响也对y影响很大,因此,我们可能设为0.00001,小步小步地调。
对于w2,我们只需设0.001可能就够了,
对于不同变量,我们需要调不同的步长,如果我们设为0.000001,则在调w2时明显过小,而设为0.001对调整w1又过大。这就麻烦了。
将所有变量的数据范围归一化到[0,1],对所有变量步长就统一。
(二) 不同问题需要不同步长
另一方面,假设所有变量范围都一致,都是[-10000,10000],那么我们设为0.000001,但对另一个问题,所有变量为[-1,1],那我们设为0.001,则不同问题,我们还需要设置不同步长。
而不管原始数据范围是多少,我们统一将数据归一化为[0,1]后,我们都设为0.001就可以了,不需要针对不同问题设置不同步长。
另一方面,假设所有变量范围都一致,都是[-10000,10000],那么我们设为0.000001,但对另一个问题,所有变量为[-1,1],那我们设为0.001,则不同问题,我们还需要设置不同步长。
而不管原始数据范围是多少,我们统一将数据归一化为[0,1]后,我们都设为0.001就可以了,不需要针对不同问题设置不同步长。
总而言之,将数据范围统一在[0,1],对我们讨论、研究、处理问题,都有好处,不必不同问题作不同讨论。
相关文章
《逻辑回归过拟合分析与解决方案》
《sklearn:一个简单的逻辑回归例子》
《sklearn提取逻辑回归模型系数》
《逻辑回归建模完整流程》



