Commits

Zoltán Szabó committed 9038f26

Exponential family related functions: grouped to directory 'exp_family'.

Comments (0)

Files changed (8)

code/estimators/utilities/expF_F.m

-function [F] = expF_F(distr,np) 
-%function [F] = expF_F(distr,np) 
-%Computes the log-normalizer (F) at a given natural parameter value (np) for the input exponential family. See also 'expF_MLE.m'.
-%
-%INPUT:
-%   distr: 'normal'.
-%   np   : natural parameters.
-%          distr = 'normal': np.t1 = C^{-1}*m, np.t2 = 1/2*C^{-1}, where m is the mean, C is the covariance matrix.
-
-%Copyright (C) 2012-2014 Zoltan Szabo ("http://www.gatsby.ucl.ac.uk/~szabo/", "zoltan (dot) szabo (at) gatsby (dot) ucl (dot) ac (dot) uk")
-%
-%This file is part of the ITE (Information Theoretical Estimators) toolbox.
-%
-%ITE is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
-%the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-%
-%This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
-%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-%
-%You should have received a copy of the GNU General Public License along with ITE. If not, see <http://www.gnu.org/licenses/>.
-
-switch distr
-    case 'normal' %Ref: Frank Nielsen, Vincent Garcia. Statistical exponential families: A digest with flash cards. "http://arxiv.org/abs/0911.4863"
-        d = length(np.t1);
-        F = trace(inv(np.t2) * np.t1 * np.t1.') /4 - log(det(np.t2)) / 2 + d * log(pi) / 2;
-    otherwise
-       error('Distribution=?');   
-end

code/estimators/utilities/expF_MLE.m

-function [np] = expF_MLE(Y,distr)
-%function [np] = expF_MLE(Y,distr)
-%Maximum likelihood estimation with the given exponential family on data Y. See also 'expF_F.m'.
-%
-%INPUT:
-%   distr: 'normal'.
-%   Y    : data, Y(:,t) is the t^{th} sample.
-%OUTPUT:
-%   np: estimated natural parameters.
-%       distr = 'normal': np.t1 = C^{-1}*m, np.t2 = 1/2*C^{-1}, where m is the mean, C is the covariance matrix.
-
-%Copyright (C) 2012-2014 Zoltan Szabo ("http://www.gatsby.ucl.ac.uk/~szabo/", "zoltan (dot) szabo (at) gatsby (dot) ucl (dot) ac (dot) uk")
-%
-%This file is part of the ITE (Information Theoretical Estimators) toolbox.
-%
-%ITE is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
-%the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-%
-%This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
-%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-%
-%You should have received a copy of the GNU General Public License along with ITE. If not, see <http://www.gnu.org/licenses/>.
-
-switch distr
-    case 'normal'
-        m = mean(Y,2);
-        C = cov(Y.');
-        invC = inv(C);
-        np.t1 = invC * m;
-        np.t2 = invC / 2;
-    otherwise
-       error('Distribution=?');                 
-end

code/estimators/utilities/expF_np1_np2_add.m

-function [np] = expF_np1_np2_add(np1,np2)
-%function [np] = expF_np1_np2_add(np1,np2)
-%Sum (np) of natural parameter np1 and np2. (np1, np2: structures with the same fields; example: np1.t1, np1.t2, np2.t1, np2.t2).
-
-%Copyright (C) 2012-2014 Zoltan Szabo ("http://www.gatsby.ucl.ac.uk/~szabo/", "zoltan (dot) szabo (at) gatsby (dot) ucl (dot) ac (dot) uk")
-%
-%This file is part of the ITE (Information Theoretical Estimators) toolbox.
-%
-%ITE is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
-%the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-%
-%This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
-%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-%
-%You should have received a copy of the GNU General Public License along with ITE. If not, see <http://www.gnu.org/licenses/>.
-
-np = np1;
-F1 = fieldnames(np1);
-for n = 1 : length(F1)
-    aF = F1{n}; %field-name of F1 = field-name of F2 ('=' <== assumption) 
-    np.(aF) = np.(aF) + np2.(aF); 
-end

code/estimators/utilities/expF_np_mult.m

-function [np] = expF_np_mult(np,a)
-%function [np] = expF_np_mult(np,a)
-%Multiplies each natural parameter in structure 'np' by the scalar 'a'.
-
-%Copyright (C) 2012-2014 Zoltan Szabo ("http://www.gatsby.ucl.ac.uk/~szabo/", "zoltan (dot) szabo (at) gatsby (dot) ucl (dot) ac (dot) uk")
-%
-%This file is part of the ITE (Information Theoretical Estimators) toolbox.
-%
-%ITE is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
-%the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-%
-%This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
-%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-%
-%You should have received a copy of the GNU General Public License along with ITE. If not, see <http://www.gnu.org/licenses/>.
-
-F = fieldnames(np);
-for nF = 1 : length(F)
-    aF = F{nF};
-    np.(aF)  = np.(aF) * a;
-end

code/estimators/utilities/exp_family/expF_F.m

+function [F] = expF_F(distr,np) 
+%function [F] = expF_F(distr,np) 
+%Computes the log-normalizer (F) at a given natural parameter value (np) for the input exponential family. See also 'expF_MLE.m'.
+%
+%INPUT:
+%   distr: 'normal'.
+%   np   : natural parameters.
+%          distr = 'normal': np.t1 = C^{-1}*m, np.t2 = 1/2*C^{-1}, where m is the mean, C is the covariance matrix.
+
+%Copyright (C) 2012-2014 Zoltan Szabo ("http://www.gatsby.ucl.ac.uk/~szabo/", "zoltan (dot) szabo (at) gatsby (dot) ucl (dot) ac (dot) uk")
+%
+%This file is part of the ITE (Information Theoretical Estimators) toolbox.
+%
+%ITE is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
+%the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+%
+%This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+%
+%You should have received a copy of the GNU General Public License along with ITE. If not, see <http://www.gnu.org/licenses/>.
+
+switch distr
+    case 'normal' %Ref: Frank Nielsen, Vincent Garcia. Statistical exponential families: A digest with flash cards. "http://arxiv.org/abs/0911.4863"
+        d = length(np.t1);
+        F = trace(inv(np.t2) * np.t1 * np.t1.') /4 - log(det(np.t2)) / 2 + d * log(pi) / 2;
+    otherwise
+       error('Distribution=?');   
+end

code/estimators/utilities/exp_family/expF_MLE.m

+function [np] = expF_MLE(Y,distr)
+%function [np] = expF_MLE(Y,distr)
+%Maximum likelihood estimation with the given exponential family on data Y. See also 'expF_F.m'.
+%
+%INPUT:
+%   distr: 'normal'.
+%   Y    : data, Y(:,t) is the t^{th} sample.
+%OUTPUT:
+%   np: estimated natural parameters.
+%       distr = 'normal': np.t1 = C^{-1}*m, np.t2 = 1/2*C^{-1}, where m is the mean, C is the covariance matrix.
+
+%Copyright (C) 2012-2014 Zoltan Szabo ("http://www.gatsby.ucl.ac.uk/~szabo/", "zoltan (dot) szabo (at) gatsby (dot) ucl (dot) ac (dot) uk")
+%
+%This file is part of the ITE (Information Theoretical Estimators) toolbox.
+%
+%ITE is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
+%the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+%
+%This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+%
+%You should have received a copy of the GNU General Public License along with ITE. If not, see <http://www.gnu.org/licenses/>.
+
+switch distr
+    case 'normal'
+        m = mean(Y,2);
+        C = cov(Y.');
+        invC = inv(C);
+        np.t1 = invC * m;
+        np.t2 = invC / 2;
+    otherwise
+       error('Distribution=?');                 
+end

code/estimators/utilities/exp_family/expF_np1_np2_add.m

+function [np] = expF_np1_np2_add(np1,np2)
+%function [np] = expF_np1_np2_add(np1,np2)
+%Sum (np) of natural parameter np1 and np2. (np1, np2: structures with the same fields; example: np1.t1, np1.t2, np2.t1, np2.t2).
+
+%Copyright (C) 2012-2014 Zoltan Szabo ("http://www.gatsby.ucl.ac.uk/~szabo/", "zoltan (dot) szabo (at) gatsby (dot) ucl (dot) ac (dot) uk")
+%
+%This file is part of the ITE (Information Theoretical Estimators) toolbox.
+%
+%ITE is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
+%the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+%
+%This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+%
+%You should have received a copy of the GNU General Public License along with ITE. If not, see <http://www.gnu.org/licenses/>.
+
+np = np1;
+F1 = fieldnames(np1);
+for n = 1 : length(F1)
+    aF = F1{n}; %field-name of F1 = field-name of F2 ('=' <== assumption) 
+    np.(aF) = np.(aF) + np2.(aF); 
+end

code/estimators/utilities/exp_family/expF_np_mult.m

+function [np] = expF_np_mult(np,a)
+%function [np] = expF_np_mult(np,a)
+%Multiplies each natural parameter in structure 'np' by the scalar 'a'.
+
+%Copyright (C) 2012-2014 Zoltan Szabo ("http://www.gatsby.ucl.ac.uk/~szabo/", "zoltan (dot) szabo (at) gatsby (dot) ucl (dot) ac (dot) uk")
+%
+%This file is part of the ITE (Information Theoretical Estimators) toolbox.
+%
+%ITE is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
+%the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
+%
+%This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+%
+%You should have received a copy of the GNU General Public License along with ITE. If not, see <http://www.gnu.org/licenses/>.
+
+F = fieldnames(np);
+for nF = 1 : length(F)
+    aF = F{nF};
+    np.(aF)  = np.(aF) * a;
+end
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.