I learned about radial basis neural networks which utilize an activation function, and since the activation function are mostly Gaussian I wanted to see if they could be applied to the simulation of cross section data. (Resonance structures in most cross sections are modeled with the Briet-Wigner formula, which is essentially a modified Gaussian). I asked to do it in place of my homework, but wasn't allowed.
Neural Network Cross Sections
Cross section data from
http://www.nndc.bnl.gov/sigma/index.jsp, U238 total. Can download a text file, and than just import it in. First column is energy (eV), second is cross section (b).
load('CrossSectionData.mat');
Creating the network
net = newrb(data(:,1),data(:,2));
net.view
NEWRB, neurons = 0, MSE = 0
 |
| Sorry this is transparent |
Looking at the performance
loglog(data(:,1),data(:,2));
hold all;
loglog(data(:,1),sim(net,data(:,1)));
hold off;
legend('ENDF','Neural Network');
title('(n,total) of U^{238}');
xlabel('Energy (eV)');
ylabel('Cross Section (b)');
 |
| ENDF data not visible because the neural network lies over top |
Looking at the error
figure;
loglog(data(:,1),abs(data(:,2)-sim(net,data(:,1))));
title('Error of Simulated Network');
xlabel('Energy (eV)');
ylabel('abs(\sigma_{NNDC} - \sigma_{net}');
sum(abs(data(:,2)-sim(net,data(:,1))))
ans =
0
 |
| Zero error, so plot is empty on a log scale (can't take logarithm of zero) |
There are games that could be played. The number of neurons could be reduced, and the activation functions could be changed to resemble more of the form of the Briet-Wigner.
No comments:
Post a Comment