前一部分的求解用Hinton的CD算法即可,后一部分的求解即在前一部分的前提下,加入:
%%加入Sparse penalty
R.delta=mean(mean(h0,1)-R.sparseP).*mean(h0.*(1-h0),1);
R.deltaW=(v0‘*repmat(R.delta,minibatch_sz,1))./minibatch_sz;
%dW=dW+R.sparseLumda.*;
R.vbias = R.vbias + actual_lrate * (vbias_grad_old‘ - weight_decay * R.vbias);
R.hbias = R.hbias + actual_lrate * (hbias_grad_old‘ - weight_decay * R.hbias-R.sparseLumda.*R.delta‘);
R.W = R.W + actual_lrate * (W_grad_old - weight_decay * R.W-R.sparseLumda.*R.deltaW);
其中R.sparseP是期望的稀疏度即公式中的p,R.sparseLumda对应公式中λ。把公式中E[hj|v]理解为p(hj|v)即可,对应代码中h0。代码中R.delta实际求解的是稀疏化目标式
对hbias的偏导数,R.deltaW是该目标式对R.W的偏导数。
根据《Sparse deep belief net model for visual area V2》实现Sparse GRBM,布布扣,bubuko.com
时间: 2024-11-20 07:25:43