Files
matlab/RBM/UFLDL/rica/l2rowscaledg.m
T
jens 7b34529b24 imported RBM
git-svn-id: http://moon:8086/svn/matlab/trunk@91 801c6759-fa7c-4059-a304-17956f83a07c
2016-07-12 11:24:12 +00:00

19 lines
452 B
Matlab

function [grad] = l2rowscaledg(x,y,outderv, alpha)
normeps = 1e-5;
if (~exist('outderv','var')||isempty(outderv))
error('Requires outderv of previous layer to compute gradient!');
end
epssumsq = sum(x.^2,2) + normeps;
l2rows = sqrt(epssumsq)*alpha;
if (~exist('y','var')||isempty(y))
y = bsxfunwrap(@rdivide,x,l2rows);
end
grad = bsxfunwrap(@rdivide, outderv, l2rows) - ...
bsxfunwrap(@times, y, sum(outderv.*x, 2) ./ epssumsq);