Learn to Throw, Throw to Learn: A Machine Learning Journey
An AI-generated student holding a ball while blindfolded.Copyright Produced by the activity author prompting clipdrop.co using the StableDiffusion XL 0.9 model, at https://clipdrop.co/stable-diffusion Prompt: African American female high school student standing up in a classroom holding a small white ping pong ball in her hand, blindfolded, smiling. Computer generated style, high detail, stylish conservative clothing.
Students embark on an interactive journey through the Engineering Design Process (EDP) to develop, test, and refine a system aimed at enhancing the accuracy of a ball thrown or flicked toward a small target. This hands-on activity serves as an analogy to the process of training machine learning systems, providing students with a tangible understanding of how these systems utilize data and feedback mechanisms to improve performance. Students are also taken from a type of learning they are more familiar with, including visual feedback for the learner, toward an increasingly more abstract method of learning that only involves numeric inputs and outputs.
Computer scientists training machine learning models usually begin with clear, human-legible objectives that must be translated into quantifiable inputs and outputs. The students' journey through this activity also parallels the journey of many machine learning models from initial training on clear, understandable data to eventual operation in a more abstract space. Employing elements of the Engineering Design Process in this activity also provides students with many examples of both iterative learning and iterative design. The concepts of repetition, small adjustments after feedback, and refinement mirror similar processes in machine learning systems, which train and test with large amounts of data in order to improve.
After this activity, students should be able to:
- Create a system for learning a simple physical skill.
- Use reasoning to train a system that only utilizes numeric inputs and outputs.
- Use abstraction to remove the performance of a physical task from inputs and outputs to that task.
