WA7. Reflection on Artificial Neural Networks¶
Statement¶
For Unit 7, you will report the results from neural network training you completed in Unit 6.
Write a short paper explaining the process of developing the network provided including:
- Details on how many iterations of network designs were evaluated.
- What results were obtained?
- What alternatives were tested to determine the best approach for training a network that would yield accurate results in the minimum of training steps?
Written Assignment should be 2-3 pages, not including title or reference pages. Please make sure your assignment is double-spaced using Times New Roman, 12-point font, and 1” margins.
Papers will be assessed using the following criteria:
- Includes details on how many iterations of network designs were evaluated
- Clearly describes the results obtained
- Describes the alternatives tested for determining the best approach
- There was a final paragraph dedicated to a clear and summative conclusion
- Paper is 2-3 pages in length, not including the title and reference pages
- Paper professionally written without spelling or grammar errors
Solution¶
In developing the neural network, the data scientist usually tries multiple iterations, each iteration contains ETL(extract, transform, load), training, and quality assurance (testing) on the model. After each iteration, the error and accuracy rates are recorded and compared with the previous iteration(s). The iteration with the lowest error rate and the highest accuracy rate is selected as the final model.
I tried 2 iterations; with same ETL, training, and testing; however, different configurations were used in each iteration.
The ETL is done according to the assignment instructions were data is stored in binary format, then loaded into the program, and part of the data is used for training and the other part is used for testing.
The first iteration included the following configs:
- Total number of layers: 3.
- Input units: 7.
- Output units: 7.
- Internal Layers: 1.
- Number of units in the internal layer: 5.
- Learning rate: 0.3.
- Momentum: 0.8.
- Learning steps: 5000.
- Weight range: [-1,1].
The second iteration included the following configs:
- Total number of layers: 4.
- Input units: 7.
- Output units: 7.
- Internal Layers: 2.
- Number of units in the internal layer: 10.
- Learning rate: 0.3.
- Momentum: 0.9.
- Training steps: 10000.
- Weight range: [-1,1].
The second iteration is the final model, thus I will only discuss the second iteration in the following sections.
The final model resulted in 0.03920230575815366 error rate which is below the threshold of 0.05.
The results were affected by the factors above as:
- The number number of units (neurons) in the internal layer(s) is an important factor, as more units in the internal layer will result in a more accurate model.
- Other factors such as learning rate, momentum, weight range, and training steps are also important, but they are not as important as the number of units in the internal layer.
There may be different alternatives the one can try to increase positive results and determine the best approach; such as:
- Automating the creation of more models and then determine the best model; this includes creating an array of configs and then loop over them to create multiple models, then compare the results (similar to my manual iterations above).
- Using a different algorithm for training the neural network; such as backpropagation, gradient descent, etc. In our case, this includes digging inside the low-levels of the simulator, which can also be added to the automation process above.
- Invest more in setting a bigger dataset, which improves both the process of training and testing the model.
To conclude, the assignment was a good practice for developing neural networks; it showed the importance of removing assumptions and try with the default or near default configurations first to draw a quick picture of the result, then iterate over and over tuning the factors discussed above till you reach the desired accuracy and error rates.
References¶
- UoPeople (2023). CS4407 Unit 6: Artificial Neural Networks – Part 1.