annotate arrows/stats/aica.m @ 61:eff6bddf82e3 tip

Finally implemented perceptual brightness thing.
author samer
date Sun, 11 Oct 2015 10:20:42 +0100
parents beb8a3f4a345
children
rev   line source
samer@0 1 % aica - ICA
samer@0 2 %
samer@0 3 % aica ::
samer@0 4 % model(real) ~'probability model for components',
samer@0 5 % [[N,N]] ~'initial weight matrix',
samer@0 6 % options {
samer@0 7 % rate :: nonneg/1e-4 ~'adaptation rate';
samer@0 8 % }
samer@0 9 % -> arrow({[[N]]},{[[N]]},aica_state).
samer@0 10
samer@0 11 function o=aica(model,W0,varargin)
samer@37 12 opts=options('rate',1e-4,varargin{:});
samer@0 13 score=scorefn(model);
samer@0 14
samer@0 15 rate=opts.rate;
samer@0 16 o=loop(@update,@(s)W0);
samer@0 17
samer@0 18 function [y,W]=update(x,W)
samer@0 19 % y=W'*x; W=W+rate*(W-(W*y)*score(y)');
samer@0 20 y=W*x; W=W+rate*(W-(score(y)/size(y,2))*(y'*W));
samer@0 21 end
samer@0 22 end