Skip to content

Implement the multiple layer neural network simulator using C#.

License

Notifications You must be signed in to change notification settings

simonyang0608/MultiLayer-Perceptron

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Multiple-Layer Perceptron

Using C# to implement multiple layer perceptron simulator. Learning algorithm for more details can refer to this Wikipedia page.

The dataset consists of multi-dimensional input sample set and ground truth set, The sample set will be given to training function to predict the ground truth set.

The purpose of program is training to tune a number of groups of shifting biases and synaptic(scaling) weights, and display the results in the graphical interface.

FeedForward Pass

擷取

BackPropagation Pass

擷取

Setup & Run Code

Getting Started

  • Clone this repo to your local
git clone https://github.com/simonhandsome/MultiLayer-Perceptron
cd MultiLayer-Perceptron

擷取

  1. Input random sample set
  2. Adjustable parameters
  3. Start training button
  4. Epochs
  5. Training loss(curve) visualization
  6. Learned hyperline visualization
  7. Weights and biases distribution

Demo

20230210_214135

Conclusion

Large size sample set will tend to converge faster than the small size, with the same settings of hidden layer and learning rate.

  • Small size sample set

20230211_114623

  • Large size sample set

20230211_115916

Different size (below 100) of hidden layer with suitable learning rate will tend to get good result of convergence (no matter the size of sample set).

  • Small size (below 20) hidden layer with the learning rate ranging from 0.08~0.007 will tend to get good result.

20230210_220908

  • Large size (from 20 to 100) hidden layer with the learning rate ranging from 0.03~0.006 will tend to get good result.

20230210_224842

Larger size hidden layer (over 100) is not recommended since the simple linear regression and prediction task no need to use such complicated network, it may lead to over-fitting, results in low converge speed.

Contributing

Please feel free to use it if you are interested in fixing issues and contributing directly to the code base.

License

Multilayer-Perceptron is released under the MIT license. See the LICENSE file for details.

Releases

No releases published

Packages

No packages published

Languages