Projects #1 and #2 for ECE 566: Introduction to Machine Learning
Project #1 involves an introduction to building an example of Fisher's linear discriminant to separate two classes (handwritten 0s and handwritten 1s), and then one example of building a rudimentary Neural Network to discriminate between two other classes (handwritten 5s and handwritten 6s), which could not be so easily separated using such a more basic linear discriminant. The rudimentary Neural Network primarily involved coding back-propagation and gradient descent algorithms and served as an excellent hands-on introduction to Neural Networks and Machine Learning.
Project #2 concerned working with a Convoluted Neural Network using the TensorFlow-Keras API to differentiate between handwritten digits from 0-9 while including considerable noise. Using the optimizer SGD and the Early Stopping option to prevent reduntantly long runtimes, the Convoluted Neural Network I constructed was able to reach a Testing Accuracy of above 90%, though further optimization is possible.