为什么要归一化?
见《视觉机器学习》的P159,为了提高训练过程的收敛程度
http://www.cad.zju.edu.cn/home/dengcai/Data/FaceData.htmlWe recomend to pre-process the data using either of the following two methods:Nomalize each vector to unit
%===========================================
[nSmp,nFea] = size(fea);
for i = 1:nSmp
fea(i,:) = fea(i,:) ./ max(1e-12,norm(fea(i,:)));
end
%===========================================
Scale the features (pixel values) to [0,1]
%===========================================
maxValue = max(max(fea));
fea = fea/maxValue;
%===========================================
灰度图的像素范围是0到255,以后不能用除以256了,除以255
(1)就采用Deng Cai网上公布的数据
20Newsgroup做SRDA的实验,
50%训练时的错误率
没有归一化: 18.1270±0.5453(alpha=1), 18.1312±0.5397(alpha=0.1);
normalize each data vector to unit :11.4483±0.2372(alpha=0.1);
5%训练时的错误率
没有归一化: 36.5823±0.8035(alpha=1), 36.3308±0.8237(alpha=0.1)
normalize each data vector to unit : 27.4496±0.7606(alpha=0.1)
归一化比没有归一化分别好了7%,9% 归一化成2范数为1,每个样本都除以各自的2范数,可能破坏不同样本的同一特征的相对大小,
那么这种归一化作用何在?假如样本归一化后SRDA公式(16)最优alpha是1,则不归一化(如果每个样本2范数在100左右),此时最优alpha应该在10000 (2)我的电脑目录:\蔡登代码\Spectral Regression\kernel\test_USPS(toronto)\Data,,如果USPS不进行预处理,效果非常的差
(3)
除以256和每个样本都除以各自的2范数,20121003mingming gong做实验时发现这个问题,我利用我的程序重新做了测试,在Extended Yale B 10train分别除以256和每个样本都除以各自的2范数,准确率44.45 和53.43,差异非常大,每个样本都除以各自的2范数,
这种归一化作用何在? 在Extended Yale B 上有光照变化非常大,这种有去除光照影响的变化,但这种对左侧光和右侧光没办法处理,真正做人脸识别去除光照影响,肯定有更好的方法,都处理各自的2范数,应该太simple了。
见电脑目录:\other\matlab 2007a\work\DSPP(671MB)\Extended Yale B\Baseline的TestBaseline_NormalizeToUnit和TestBaseline_NormalizeUse256
(4)histogram equilibrium,论文Maximum margin criterion with tensor representation实验全用了;Unsupervised Discriminant Projection (PAMI 2007)第一节没用,其他两节用了。Regularized Correntropy for Robust Feature Selection的3.2节用了,3.1节没用。作用是什么?20130127 Prof. Ran He讲对去除光照有好处,但对于像墨镜和围巾这样的,没作用。matlab函数:
histeq。
就用下面的matlab代码: Imag = imread('AR001-1.tif');J = histeq(Imag);J就代表经过直方图均衡化后的图,然后对J进行操作。Libing讲histeq不影响人脸像素的非负性,就相当于一个预处理步骤而已,后面可以接归一化到二范数是1也可以不接。未必加histeq一定效果好,有时反而会起负作用。这得到Libing 和Ran He的共同确认。
http://zhidao.baidu.com/question/37620215.html
histeq的作用是把“图像”的直方图均衡化。
简单的说,有些图像有太多的亮点或者有太多的暗点。histeq通过一个算法,把亮度重新分配,让人看得舒服自然。比如说原来的点都集中在暗处,1-25之间,histeq就可以把25亮度的点“拉”到255处,24“拉”到240处..最后图像的细节都回呈现在你面前。