Radial Basis Function Neural Network - the Algorithm
Step 0: read file of feature vector and label (target) data {(x(q), t(q)): q = 1,...,Q}
Step 1: draw random weights {wmj: m=1,...,M, j=1,...,J} between 0.0 and 0.5
set step sizes η = 0.5,, set stopping criterion ε = 0.000001
select M centers in feature space so Gaussians cover it
for m = 1 to M do
compute σm = 1/(2M)1/N
Step 2: compute {ym: m=1,...,M} as given above in Equation (1) //One-time computation
Step 3: compute {zj: j=1,...,J} from Equation (3)
Step 4: compute E from above from Equation (2) and put Enew = E
Step 5: for m = 1 to M do //Adjust all weights by steepest descent
for j = 1 to J do
wmj = wmj - η(2/MQ)Σq=1,Q (zj(q) - tj(q))ym(q)
{if one of every 10th iteration (if adjusting biases)
bj = bj - α(2/Q)Σq=1,Q (zj(q) - tj(q)) }
Step 6: put E = Enew
compute Enew from Equation (2) above with new weights
if Enew < E then η = 1.2η
else η = 0.9η
Step 7: if Enew > ε
compute {zj: j=1,...,J} from Equation (3)
goto Step 5
else stop