120 likes | 130 Views
A neural network library with GUI and console interfaces for various Physics applications. Emphasizes ease-of-use, platform independence, and multiple learning algorithms. Save/load networks in XML or binary format effortlessly.
E N D
A general neural network tool for Physics Why neural networks? Neural Networks library structure GUI and console interfaces Examples Conclusions Emiliano Barbuto Cristiano Bozza Miriam Giorgini LNGS May 2003
Why neural networks? Neural networks allow a systematic phenomenological approach to classification problems Continuous quantities can be seen as a continuum of classes Little knowledge (or no knowledge at all) of the inner structure of the system under study is needed Several aspects can be taken into account automatically (the network learns on behalf of its user) ...however... if a neural network’s user is more clever than the network itself... the results are better!
Why neural networks? MultiLayer Perceptron: several layers of “neurons”, each one with its transfer function Each neuron’s output is: Oi = Ti(Wi• Ai) T transfer function W weights A inputs 3-layer perceptrons are the most commonly used neural networks
Why neural networks? Neural networks in Physics for... Momentum measurement Particle identification E.M. shower reconstruction and energy measurement Event classification More......... Other people have already been working with Neural Networks...
Neural Networks library structure A general neural network tool has been developed Design goals: Full generality Ease of use (includes platform and language independence) Modularity Ability to run in unassisted mode (server mode)
Neural Networks library structure Choice: develop a .NET / Mono library The library has been tested and debugged both under Windows and Linux Several neuron types and learning algorithms are implemented Users can extend the library even without recompiling (user extension classes are dynamically acknowledged) The library can be used by any user program, even in server (unassisted) mode
Constructor TransferFunction DerivativeOfTransferFunction Constructor Evaluate Train Weights Neural Networks library structure Class hierarchy NeuronDescriptor BiasNeuronDescriptor ExpNeuronDescriptor GaussianNeuronDescriptor HardLimNeuronDescriptor LinearNeuronDescriptor LogisticNeuronDescriptor SigmoidNeuronDescriptor TrainingHistoryEntry TrainingSet MLPerceptron MLPerceptronWithBackPropagation MLPerceptronWithLangevinTraining MLPerceptronWithManhattanTraining MLPerceptronWithStabilizedBPTraining
Neural Networks library structure Neural network persistence: how to save / load a trained network? Two formats are natively supported by our neural network library (i.e. you don’t need to write I/O code): XML and binary XML is lengthy but easy to understand for humans Binary format is smaller
Create the network with a few clear and easy operations Easily monitor training and testing GUI and console interfaces InteractiveNeuralDesigner: a GUI tool to work with neural networks
Create the network with a simple ASCII description file NeuralNetworks.MLPerceptronWithManhattanTraining 0.8 0.999 0 Input 110 1 NeuralNetworks.SigmoidNeuronDescriptor 50 1 NeuralNetworks.BiasNeuronDescriptor 1 2 NeuralNetworks.LinearNeuronDescriptor 1 C:\>TextNeuralDesigner usage: 1) TextNeuralDesigner loadtrain <input network> <input training data> <output network> <output training history> <epochs> <subset> 2) TextNeuralDesigner createtrain <input network description> <input training data> <output network> <output training history> <epochs> <subset> 3) TextNeuralDesigner loadtest <input network> <input data> <output data> Train and use the network by a single command line Train and use the network by a single command line from Linux too: GUI and console interfaces TextNeuralDesigner: a command-line tool to work with neural networks
Momentum measurement through Multiple Coulomb Scattering e - separation p e Examples We are already using and optimizing some networks to perform Physics tasks
Conclusions A multipurpose neural network tool has been developed Library and application programs are separated Language and platform independent (Windows, Linux, FreeBSD) Easy to build and optimize networks Results are coming soon!