Fundamental Artificial Neural Network Using UML And Python

| | 0 Comment| 3:56 am|

ANN With UML And Python

Please feel free to click the link shown above to download the PDF file that contains a UML Class diagram and the Python Program.

  1. I have created a Fundamental Neural Network Implementation for the MNIST [Modified National Institute of Standards and Technology] Classification.
  2. My fundamental ANN (Artificial Neural Network) is a 3-layer network with Input, Hidden, and Output nodes.
  3. My fundamental ANN allows for the visualization of “Training loss”.
  4. My fundamental ANN uses the “Confusion matrix”, which is basically a Table used in classification problems to assess where errors in the model were made.
  5. My fundamental ANN performs relevant tests for accuracy calculation.
  6. The ANN has feed-forward and backward propagation (with errors being fed back to the previous layers so that the predicted output can be as close as possible to what the actual data looks like).
  7. The Mathematics involved is elegant and simple with the Sigmoid function being used as the Activation function.
  8. Appropriate weights can be chosen to make sure that each layer passes on the necessary output to the subsequent layer, considering that all the nodes are involved.
  9. Matrix Multiplication is used for the 3-Layered ANN.
  10. A UML Class diagram can help in generating the Python code (forward engineering technique) and the Python program (module) can be converted to a UML Class diagram (reverse engineering technique) to maintain a round-trip engineering integrity between the design and code.
  • Feel free to use the Python file in your local desktop and keep everything inside your Python project folder (images, MNIST data, and the like) and when you execute the Python program, you can see the relevant outputs (first training sample of a handwritten image, training loss progression across epochs, and the confusion matrix which shows predicted values compared to actual data).

Anyone who is willing to collaborate with me and/or provide inputs/guidance is welcome to contact me!