Skip to content

Commit 0c47d6c

Browse files
committed
update gpml to 4.1
1 parent 0cdad56 commit 0c47d6c

File tree

199 files changed

+8850
-4451
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

199 files changed

+8850
-4451
lines changed

modules/gaussianProcess/gpTests.m

+56
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
% GP Tests
2+
3+
p = paramsGP(35);
4+
5+
%% Split Data
6+
sRange = 1:1500;
7+
sRangeEnd = 1+sRange(end);
8+
train = genome(sRange,:);
9+
test = genome(sRangeEnd:end,:);
10+
11+
trainX = result(sRange,1);
12+
testX = result(sRangeEnd:end,1);
13+
14+
trainY = result(sRange,2);
15+
testY = result(sRangeEnd:end,2);
16+
17+
%% Train Models
18+
gpX = trainGP(train,trainX,p); % Create Model
19+
gpY = trainGP(train,trainY,p); % Create Model
20+
21+
%% Test Models
22+
predX = predictGP(gpX,test);
23+
errorX = predX(:,1)-testX;
24+
percErrorX = errorX./testX;
25+
mseX = mean(errorX.^2);
26+
27+
predY = predictGP(gpY,test);
28+
errorY = predY(:,1)-testY;
29+
percErrorY = errorY./testY;
30+
mseY = mean(errorY.^2);
31+
32+
%% Show Results
33+
hf = figure(1); clf; hf.Name = 'Percentage Error';
34+
subplot(2,1,1); hist(percErrorX); title('X Coordinate, % Error')
35+
subplot(2,1,2); hist(percErrorY); title('Y Coordinate, % Error')
36+
37+
hf = figure(2); clf; hf.Name = 'Absolute Error';
38+
subplot(2,1,1); hist(errorX); title('X Coordinate, Absolute Error')
39+
subplot(2,1,2); hist(errorY); title('Y Coordinate, Absolute Error')
40+
41+
42+
hf = figure(3); clf; hf.Name = 'Predicted and True Position';
43+
background = imread('maze600.pbm'); colormap(gray);
44+
imagesc(background);hold on;
45+
46+
scatter(testX,testY); scatter(predX(:,1),predY(:,1));
47+
hl = legend('True End Point','Predicted End Point');
48+
hl.FontSize = 18;
49+
title('Predicted and True Position','FontSize',20);
50+
xticklabels('');yticklabels('');
51+
52+
53+
54+
55+
56+
+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
startup
+3-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
GAUSSIAN PROCESS REGRESSION AND CLASSIFICATION Toolbox version 3.6
1+
GAUSSIAN PROCESS REGRESSION AND CLASSIFICATION Toolbox version 4.1
22
for GNU Octave 3.2.x and Matlab 7.x
33

44
The code is released under the FreeBSD License.
55

6-
Copyright (c) 2005-2015 Carl Edward Rasmussen & Hannes Nickisch. All rights reserved.
6+
Copyright (c) 2005-2017 Carl Edward Rasmussen & Hannes Nickisch. All rights reserved.
77

88
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
99

@@ -15,5 +15,4 @@ THIS SOFTWARE IS PROVIDED BY CARL EDWARD RASMUSSEN & HANNES NICKISCH ``AS IS'' A
1515

1616
The views and conclusions contained in the software and documentation are those of the authors and should not be interpreted as representing official policies, either expressed or implied, of Carl Edward Rasmussen & Hannes Nickisch.
1717

18-
The code and associated documentation is available from
19-
http://gaussianprocess.org/gpml/code.
18+
The code and associated documentation is available from http://gaussianprocess.org/gpml/code.

modules/gaussianProcess/gpml/README

+87-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
GAUSSIAN PROCESS REGRESSION AND CLASSIFICATION Toolbox version 3.6
1+
GAUSSIAN PROCESS REGRESSION AND CLASSIFICATION Toolbox version 4.1
22
for GNU Octave 3.2.x and Matlab 7.x
33

4-
Copyright (c) by Carl Edward Rasmussen and Hannes Nickisch, 2015-07-07.
4+
Copyright (c) by Carl Edward Rasmussen and Hannes Nickisch, 2017-10-19.
55

66

77

@@ -32,9 +32,11 @@ f) the paper by Naish-Guzman and Holden: "The Generalized FITC Approximation",
3232
g) the paper by Duvenaud, Nickisch and Rasmussen: "Additive Gaussian Processes",
3333
NIPS, 2011, in
3434
h) the paper by Wilson and Adams: "Gaussian Process Kernels for Pattern
35-
Discovery and Extrapolation", ICML, 2013, and in
36-
i) the paper Snelson, Rasmussen and Ghahramani: "Warped Gaussian Processes",
37-
NIPS, 2003.
35+
Discovery and Extrapolation", ICML, 2013, in
36+
i) the paper by Snelson, Rasmussen and Ghahramani: "Warped Gaussian Processes",
37+
NIPS, 2003, and in
38+
j) the paper by Wilson and Nickisch: "Kernel interpolation for scalable
39+
structured Gaussian processes (KISS-GP)", ICLM, 2015.
3840

3941
There are 7 code subdirectories: cov, doc, inf, lik, mean, prior and util.
4042

@@ -138,16 +140,95 @@ Thanks to Giampiero Salvi for posting the workaround.
138140
3) CURRENT VERSION
139141
==================
140142

141-
The current version of the programs is 3.6. Previous versions of the code are
143+
The current version of the programs is 4.1. Previous versions of the code are
142144
available at http://www.gaussianprocess.org/gpml/code/oldcode.html.
143145

144146

145147

146148
4) DIFFERENCES TO PREVIOUS VERSIONS
147149
===================================
148150

151+
NEW in version 4.1, 2017-10-19
152+
------------------------------
153+
154+
Logdet-estimation functionality for grid-based approximate covariances
155+
- Lanczos subspace estimation
156+
- Chebyshef polynomial expansion
157+
158+
More generic infEP functionality
159+
- dense computations and sparse approximations using the same code
160+
- covering KL inference as a special cas of EP
161+
162+
New infKL function contributed by Emtiyaz Khan and Wu Lin
163+
- Conjugate-Computation Variational Inference algorithm
164+
- much more scalable than previous versions
165+
166+
Time-series covariance functions on the positive real line
167+
- covW (i-times integrated) Wiener process covariance
168+
- covOU (i-times integrated) Ornstein-Uhlenbeck process covariance (contributed by Juan Pablo Carbajal)
169+
- covULL underdamped linear Langevin process covariance (contributed by Robert MacKay)
170+
- covFBM Fractional Brownian motion covariance
171+
172+
New covariance functions
173+
- covWarp implements k(w(x),w(z)) where w is a "warping" function
174+
- covMatern has been extended to also accept non-integer distance parameters
175+
176+
NEW in version 4.0, 2016-10-19
177+
------------------------------
178+
A major code restructuring effort did take place in the current release unifying
179+
certain inference functions and allowing more flexibility in covariance function
180+
composition. We also redesigned the whole derivative computation pipeline to
181+
strongly improve the overall runtime. We finally include grid-based covariance
182+
approximations natively.
183+
184+
More generic sparse approximation using Power EP
185+
- unified treatment of FITC approximation, variational approaches VFE and hybrids
186+
- inducing input optimisation for all (compositions of) covariance functions dropping the previous limitation to a few standard examples
187+
- infFITC is now covered by the more generic infGaussLik function
188+
189+
Approximate covariance object unifying sparse approximations, grid-based approximations and exact covariance computations
190+
- implementation in cov/apx, cov/apxGrid, cov/apxSparse
191+
- generic infGaussLik unifies infExact, infFITC and infGrid
192+
- generic infLaplace unifies infLaplace, infFITC_Laplace and infGrid_Laplace
193+
- generic infVB
194+
- enables efficient grid-based algebra for off-grid inputs, see reference j) above
195+
196+
Hiearchical structure of covariance functions
197+
- clear hierachical compositional implementation
198+
- no more code duplication as present in covSEiso and covSEard pairs
199+
- two mother covariance functions
200+
covDot for dot-product-based covariances and
201+
covMaha for Mahalanobis-distance-based covariances
202+
- a variety of modifiers: eye, iso, ard, proj, fact, vlen
203+
- more flexibility as more variants are available and possible
204+
- all covariance functions offer derivatives w.r.t. inputs
205+
206+
Faster derivative computations for mean and cov functions
207+
- switched from partial derivatives to directional derivatives
208+
- simpler and more concise interface of mean and cov functions
209+
- much faster marginal likelihood derivative computations
210+
- simpler and more compact code
211+
212+
New mean functions
213+
- new mean/meanWSPC (Weighted Sum of Projected Cosines or Random Kitchen Sink features) following a suggestion by William Herlands
214+
- new mean/meanWarp for constructing a new mean from an existing one by means of a warping function adapted from William Herlands
215+
216+
New optimizer
217+
- added a new minimize_minfunc, contributed by Truong X. Nghiem
218+
219+
New prior
220+
- added prior{Equal|Same}Multi forcing a group of hyperparameters to the same value
221+
222+
New GLM link function
223+
- added the twice logistic link function util/glm_invlink_logistic2
224+
225+
Smaller fixes
226+
- two-fold speedup of util/elsympol used by covADD by Truong X. Nghiem
227+
- bugfix in util/logphi as reported by John Darby
228+
149229
NEW in version 3.6, 2015-07-07
150230
------------------------------
231+
- bugfix in likGaussWarp as reported by Obaid Malik
151232
- added a new inference function infGrid_Laplace allowing to use non-Gaussian likelihoods for large grids
152233
- fixed a bug due to Octave evaluating norm([]) to a tiny nonzero value, modified all lik/lik*.m functions reported by Philipp Richter
153234
- small bugfixes in covGrid and infGrid

0 commit comments

Comments
 (0)