我想实现高斯 RBM。为此,我想使数据的均值和单位方差为零。我的数据是 MNIST 数据集。数据集已从以下链接获取并遵循。
访问http://www.cs.toronto.edu/~hinton/code/makebatches.m
所以我以下面的方式实现。但是我的数据变成了 NAN。在将数据除以标准偏差后它变成了 NAN。
for epoch = epoch:maxepoch,
fprintf(1,'epoch %d \r',epoch);
errsum=0;
for batch = 1:numbatches,
fprintf(1,'epoch %d batch %d \r',epoch,batch);
%开始积极阶段
data = batchdata(:,:,batch);
% 零均值和单位方差
data_mean = mean(data,1);
data=bsxfun(@minus,data,data_mean);
data_std = std(data1,[],1);
data=bsxfun(@rdivide,data,data_std);
我用一小部分示例进行了尝试。效果很好。成为 NAN 的原因是什么。
如何摆脱这一点并使高斯输入具有零均值和单位方差。