My goal here is to build a Neural Machine Translation program from scratch, entirely in Rust.
For now, I'm starting with a simpler problem: building a feedforward neural network and training it to classify digits from the MNIST dataset. I got annoyed of manually computing derivatives so I first wrote a simple automatic-differentiation module called drift
.
This is mostly a learning exercise where I hope to improve my Rust skills and internalise fundamental machine learning concepts.
- I'm implementing a feedforward network based on the seminal paper Rumelhart, David E., Geoffrey E. Hinton, and Ronald J. Williams. "Learning representations by back-propagating errors." You can find a pdf here.
- For some background on Neural Machine Translation, see the Wikipedia article.
- I will likely implement a simplified version of the Google translation system, which is described in this pre-print.