blob: 8ed276050a7e48dd8760ed376f18d187c21c7574 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
function net = rbfsetfw(net, scale)
%RBFSETFW Set basis function widths of RBF.
%
% Description
% NET = RBFSETFW(NET, SCALE) sets the widths of the basis functions of
% the RBF network NET. If Gaussian basis functions are used, then the
% variances are set to the largest squared distance between centres if
% SCALE is non-positive and SCALE times the mean distance of each
% centre to its nearest neighbour if SCALE is positive. Non-Gaussian
% basis functions do not have a width.
%
% See also
% RBFTRAIN, RBFSETBF, GMMEM
%
% Copyright (c) Ian T Nabney (1996-2001)
% Set the variances to be the largest squared distance between centres
if strcmp(net.actfn, 'gaussian')
cdist = dist2(net.c, net.c);
if scale > 0.0
% Set variance of basis to be scale times average
% distance to nearest neighbour
cdist = cdist + realmax*eye(net.nhidden);
widths = scale*mean(min(cdist));
else
widths = max(max(cdist));
end
net.wi = widths * ones(size(net.wi));
end
|