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

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

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


 

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



   2个回答 
9

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

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

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

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

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


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

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

6

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

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


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

limoran   2018-03-02 10:51



  相关讨论

coordinate descent是什么意思?

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

二维平面上有一些点,找一个点使之到所有点的距离平方和最小?

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

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

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

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

牛顿法到底是一阶优化算法还是二阶优化算法?

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

Newton–Raphson和牛顿法区别?

  随便看看

python里怎么表示科学计数法?

AB实验的哈希分桶技术是什么意思?

两个凸函数相加,还是凸函数吗?

特征归一化对K Means有影响吗?

关于方差膨胀因子(VIF)的问题