为什么SGD需要对特征先做归一化缩放处理?

  统计/机器学习 最优化 监督式学习    浏览次数:4557        分享
1

为什么SGD需要对特征先做归一化缩放处理?这是有什么因为所以,科学道理吗?


 

风云使者   2018-02-25 13:57



   2个回答 
8

吴恩达课程里的这一张图其实就是最好的答案了

最简单的情况,假设只有两个变量,然后它们的大小范围相差很多,那么损失函数可能就是如左图那样,是长椭圆形的等高线。

椭圆型的等高线下,sgd收敛路径很曲折,就是说收敛速度慢。

如果把变量进行标准化或者缩放处理,那么损失函数的等高线就会接近于一个正圆。

此时sgd的收敛路径就“坦荡荡”了,少走了弯路,自然收敛得顺畅。


SofaSofa数据科学社区DS面试题库 DS面经

曾经是科比   2018-03-11 11:46

5

归一化后有什么好处呢?原因在于神经网络学习过程本质就是为了学习数据分布,一旦训练数据与测试数据的分布不同,那么网络的泛化能力也大大降低;另外一方面,一旦每批训练数据的分布各不相同(batch梯度下降),那么网络就要在每次迭代都去学习适应不同的分布,这样将会大大降低网络的训练速度,这也正是为什么我们需要对数据都要做一个归一化预处理。

如果题主是问,如何证明归一化加速了训练,这个可以看看相关的论文。


SofaSofa数据科学社区DS面试题库 DS面经

limoran   2018-03-02 10:51



  相关主题

coordinate descent是什么意思?   3回答

神经网络里的batch size和sgd里的batch size是一回事嘛?   1回答

混合整数规划的混合是什么意思?   2回答

python里用来做数值优化的库?   2回答

线性回归有精确的解析解为什么还要用梯度下降得到数值解?   4回答

优化算法中的“带冲量”是什么意思?   1回答

随机梯度下降(sgd)的收敛问题   4回答

Newton–Raphson和牛顿法区别?   1回答

随机平均梯度法(Stochasitc Average Gradient)和随机梯度下降(SGD)有什么区别   3回答

学习率不当会导致sgd不收敛吗?   5回答

Adam优化算法   1回答

用SGD时陷入局部最优解的解决方法   3回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!