我在MATLAB上编程并且想要使用带有实值输入的RBM,比如灰度图像,所以我试着按照Hinton在this article中所说的那样。
图像在[0,255]中具有整数值,并存储在矩阵D中,即[numImages x numPixel]。所以我开始预处理数据:
缩放整个数据集,使所有值都在[0,1]中,带
D = D / 255;
使所有图像的每个像素均值为零,因此我从矩阵的每一列中减去其平均值
imgMean = mean(D); % row vector
D = D - repmat(imgMean, rows, 1);
将整个数据集除以其标准偏差,以便每个像素都有单位方差,
D = D / std(D(:));
但是当我尝试绘制图像时,结果显然非常暗,因为许多值变为负值并被剪切为零。
这样可以,还是我在预处理方面犯了错误?