Attachment 'sheet11.m'
Download 1 function sheet11
2 clf;
3
4 % Configuration
5 iters = 200;
6 sigmas = [ ... ];
7 eta = 0.1;
8 centers = 20;
9
10 % Generate data
11 [X,Y] = gen_data(100);
12
13 % Compute RBF network for different sigmas
14 for s = 1:length(sigmas)
15
16 % Init network
17 C = init_rbfnet(sigmas(s), centers);
18
19 % Train network in chunks of 10
20 err = zeros(1, iters);
21 for i = 1:iters
22 idx = randperm(length(X));
23 idx = idx(1:10);
24
25 C = update_rbfnet(C, X(idx), Y(idx), eta);
26 P = apply_rbfnet(C, X);
27
28 % Determine error
29 err(i) = mean((Y - P).^2);
30 end
31
32 % Make nice plots
33 subplot(2,3,s); hold on;
34 plot(X,Y,'.'); plot(X,P,'r-');
35 subplot(2,3,s+3);
36 plot(err);
37 end
38
39
40 % Init RBF network
41 % Input:
42 % m Number of RBF centers
43 % w Kernel width (sigma)
44 % Output:
45 % C Struct with alphas, mus and sigma
46 %
47 function C = init_rbfnet(w, m)
48 C.sigma = ...
49 C.alphas = ...
50 C.mus = ...
51
52 % Apply RBF network
53 % Input:
54 % C Struct with alphas, mus and sigma
55 % X Testing data (1 x n)
56 % Output:
57 % Y Predictions (1 x n)
58 %
59 function Y = apply_rbfnet(C, X)
60 ...
61
62 % Update RBF network
63 % Input:
64 % C: Struct with alphas, mus and sigma
65 % X: Training data (1 x n)
66 % Y: Training labels (1 x n)
67 % eta: Learning rate
68 % Output:
69 % C: Struct with updated alphas, mus and sigma
70 function C = update_rbfnet(C, X, Y, eta)
71 ...
72
73
74 % Generate data
75 % Input:
76 % n Number of data points
77 % Output:
78 % X Data points (1 x n)
79 % Y Labels (1 x n)
80 function [X,Y] = gen_data(n)
81 ...
Attached Files
To refer to attachments on a page, use attachment:filename, as shown below in the list of files. Do NOT use the URL of the [get] link, since this is subject to change and can break easily.You are not allowed to attach a file to this page.