Now we get to the good stuff- Machine Learning
In Semester 2 we covered Machine Learning in depth.
Here is my reflections on what we learnt.
Baseline
Before the course I had limited skills in Machine Learning (M/L). I had heard the terms but did not know what they meant. I did not know how to get started, let along try. i did not know which tools to use, the available datasets, let alone build anything using M/L
Journey
During the semester I did the following:
Modelled datasets for use in M/L
Completed the Google Intro course in M/L
Participated in Guest Lecturers on M/L topics where we explored the underlying mathematics
Used a Collab Notebook to interrogate a dataset for fairness and bias https://colab.research.google.com/drive/1yHK1juAupoaLYfS05HzGs4tVNnPGC0Zw?usp=sharing
Experimented with PyTorch
Researched GPT-3 for the final homework
Used TeachaleMachines pre-built ImageRecognition algorithms to train our CPS to recognise devices https://drive.google.com/file/d/1R8syoBrj6DjfXKuCcpFfmte3ju_Pb8ge/view? usp=sharing
Learnings
Confidence: as I am now familiar with the terminology and overall process I realise that M/L is not significantly different from traditional programming.
Understand M/L pipelines
Define the Problem: what are we attempting to use M/L for
Prepare Data: collect, classify, cleanse and create features
Check results: train the model and check to see if the results match expectations
Optimise and retrain: Consider accuracy, false positive and negatives. Adjust precision and recall if required. Consider the amount of epochs used for training and issues with over-fitting.
Present Results: ensure transparency of process
Familiarity with M/L tools: The notebook therefore allowed me to learn the syntax and flow of the code required to setup models and train them, as well as impact the performance of the models when adjusting either the data or the input parameters.
Experience interrogating datasets
Build systems with M/L
My key change in my thinking is the realisation there are tools that allow for easy experimentation with the technology. I will seek these out and use them in future. One of the skills I am interested in learning is deep neural networks and how, through adjusting the various inputs, the result can be changed. The colab notebook, with its pre-built models and code libraries, made this experimentation easier, especially in filtering data. Working through the notebook and visualising the data through the tool allowed for a way of testing hypotheses into the source of data skew and bias in the datasets. While I had studied different notions of fairness, and how to interrogate the various trade-offs through the construction and running of the algorithms, the ability to run experiments to explore aspects of bias gave me insight into the challenge of weighing these different definitions. Another reminder of the benefit of applying knowledge in practice and not just in theory.