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
|