问题
在将图像输入到深度学习网络之前,一般先对图像进行预处理,即图像归一化,为什么需要这么做呢?
问题背景
在面试的时候,面试官先问的问题是“机器学习中为什么要做特征归一化”,我的回答是“特征归一化可以消除特征之间量纲不同的影响,不然分析出来的结果显然会倾向于数值差别比较大的特征,另外从梯度下降的角度理解,数据归一化后,最优解的寻优过程明显会变得平缓,更容易正确的收敛到最优解”。接着面试官又问“图像的像素值都是在0到255之间,并不存在量纲的差别,那为什么还需要做归一化呢?”是啊,为什么还要呢,被问住了……
拓展
既然是从机器学习特征归一化引出的图像的归一化问题,那么我们先讨论下“为什么要对数值型特征做归一化?”吧。
很多资料例如《百面机器学习》都是从梯度下降的角度来分析这个问题的,讨论地还不错的一篇是这个知乎的回答,已经写得比较清晰了,所以这里就不再整理了,直接点开链接看。
不过这个回答里面未归一化时的损失函数等高线图中椭圆的方向应该是横向的而不是纵向的,因为