Manager: Joshua Wong, Daniel Levi-Minzi, and Zooey Nguyen
Learning Objectives: Programming (Python), Neural Networks
Electrons are all over the place, and they’re complicated! If only we could somehow model their wavefunctions… but with so many in a given molecule, that’s practically impossible! I wonder, is there an easier way to model a complicated wavefunction…?
Yes! We can use machine learning to do this. But let’s not jump right into the more complicated molecules. We ought to start with something simpler, something we can solve analytically. How about the ground state of an electron in one dimension? Sounds simple enough.
Given some potential function, we can use the time-independent Schrödinger’s equation to solve for the wavefunction of this sort of electron. To get a neural network to do the same thing, we can slice up the potential function and take it as a distribution–each data point will contain two values: the x-position and the corresponding potential value. By feeding this information into a neural network (which we will build in Python), we can train the network to guess the ground state wavefunction, given any potential function V(x). The network has never heard of Schrödinger’s equation, but by training it with thousands of potential functions, it can reach astoundingly high accuracy.
Eventually, this sort of network can be applied to more complicated systems, which may be at different energy levels, exist in three dimensions, contain multiple electrons, etc.
This project is structured into different groups: those with programming/machine learning experience will be in the ‘advanced’ group, and those with little or no programming/machine learning will be in the ‘beginner’ group. Members in either group will learn useful programming skills, both generally and pertaining to machine learning.