Book Project
How to Train Your Robot is a book-in-progress about applied robotics, machine learning, and software engineering.
- Chapter 1: Can't AI Already Do That?
- Chapter 2: Keeping Time with Python
- Chapter 3: Getting Processes to Talk to Each Other
- Chapter 4: Making Animations with Matplotlib
- Chapter 5: Simulating the Physical World
- Chapter 6: Making Your Python Code Run Faster
- [In progress] Chapter 7: Would You Like to Play a Game?
- [In progress] Chapter 8: Deconstructing Sound
- Chapter 9: Ziptie: Learning Useful Features
- [In progress] Chapter 10: Reconstructing Sound
- Chapter 11: Naive Cartographer: A Markov Decision Process Learner
- [In progress] Chapter 12: Myrtle: A Benchmarking Framework for Reinforcement Learning
- [In progress] Chapter 13: A Dead Simple Message Queue
Career
- Build a strong data science team
- Build a strong distributed data science team
- Choose your professional path
- Data science archetypes
- Decide and commit
- Get to know your new company
- How to choose a project
- How to choose your tools
- How to get a job you like
- How to get hired as a data scientist
- How to solve a hard problem
- Imposter syndrome
- Oversimplify your communication
- Up-level your resume
- What to do when a leader does something wrong
Code
- cottonwood, a teaching-focused neural network framework
- dsmq, a dead simple message queue
- myrtle, a workbench for real-time reinforcement learning
- pacemaker, a steady time keeper for wall-clock sensitive functions
- sqlogging, a SQLite-backed logging package that mimics Python's logging package
Courses
- Setting up Python on MacOS
- Setting up Python on Windows
- Intro to Python: Time tools A Python course for the absolute beginner. Zero prior knowledge assumed. Learn Python basics while building projects like a clock, a timer, and a stopwatch.
- Decision Trees Code up a decision tree in python from scratch. Dynamically construct URL queries for live transit data API. Build the model into a command line application.
- Time-series Prediction Build a command line weather prediction tool from a century of data. Perform data-driven deseasonalization to remove annual weather patterns. Use autocorrelation to extract predicted temperatures.
- Polynomial Regression Code up a robust optimizer from scratch in python. Fit high-order polynomials to real data on dog breeds. Implement Monte Carlo cross-validation to select the best model.
- k-nearest neighbors Code up the k-nearest neighbors algorithm in Python. Use k-NN for categorization, regression, and interpolation on several data sets.
- Neural Network Visualization Create a custom neural network visualization in python. Learn Matplotlib tricks for making professional plots.
- Build a Neural Network Framework Code up a fully connected deep neural network from scratch in Python. Extend it into a framework through object-oriented design.
- Advanced Neural Network Methods Add regularization, dropout, computation graphs and optimizer options to the framework we built in Course 312. Run it on images from Mars.
- Neural Network Optimization Build an autoencoder to extract basis elements of images of the Martian surface. Optimize compression performance by tuning hyperparameters.
- One Dimensional Convolutional Neural Networks Build a classification model for detecting unhealthy rhythms in electrocardiography data. Electrocardiogram case study
- Two Dimensional Convolutional Neural Networks Build image classification models for benchmark data sets. MNIST digits case study CIFAR-10 images case study
Data munging
- Database I: Create your first database in SQLite
- Database II: Navigating the awkwardness of databases
- Database III: Converting a csv to a database
- How to slice and index pandas DataFrames
- How to use datetime
- Make your code run faster
- Make your own personal Python toolbox
- Play and record sounds
- Reading and writing data files
- Turn images to videos and back
- Use Multiprocessing
Data science
- How data science works
- Data science for beginners
- There is more to data science than machine learning
- What is data
- How to get good quality data
- What questions can machine learning answer
Machine Learning
- 1D convolution
- 2D convolution
- Approaching human intelligence through robotics
- Autocorrelation
- Bayesian inference
- Choosing a model I: Choosing between models
- Choosing a model II: Separating signal from noise
- Choosing a model III: Choosing a loss function
- Choosing a model IV: Splitting the data
- Choosing a model V: Navigating assumptions
- Decision trees
- Optimization I: Methods
- Optimization II: A central tendency model
- Optimization III: A linear model
- Optimization IV: A complex models
- Optimization V: How backpropagation works
- Support vector machines
Matplotlib
- I. Quick start guide
- II. Three important ideas
- Colors and colormaps
- Layout, background, and multiple plots
- Lines and curves
- Manual animations
- Patches
- Scatterplots and points
- Text, axis labels, and annotation
- Ticks, tick labels, and grids
Neural Networks
- Fully connected NNs
- Convolutional NNs
- Convolutional NNs, in depth
- Recurrent NNs and LSTM
- Transformers
- Regularizations
- What NNs can learn
- Softmax
- Batch normalization
Python
- Data types
- dsmq—a dead simple message queue
- Make your code run faster
- Multiprocessing for Parallelization
- Multiprocessing for Real-Time Applications
- Threading
Research
- Evolutionary Powell's method for hyperparameter tuning
- k-nearest neighbors adaptive feature weighting
- k-nearest neightbors data reduction
- k-sparse neural network layer
- Naive Cartographer , a Markov Decision Process learner
- oknn, an online variant of kNN
- Pathfinder, a many-to-many shortest path algorithm
- Sharpened Cosine Similarity, an alternative to convolution for learning 2D features in neural networks
- Ziptie, an unsupervised feature creation algorithm
Resources
- Calculus
- C++
- Git
- Linear Algebra
- Machine learning
- Mental Focus
- NumPy
- Python
- SQL
- Statistics
- uv cheatsheet
Signal Processing
- 1D convolution
- 2D convolution
- Exponential smoothing
- How to convert RGB color images to grayscale
- How to normalize a signal by mean and variance
- How to normalize a signal by its minimum and maximum
- How to turn a picture into numbers
- Rate of change
Everything Else
- A love letter to Empirical Design in Reinforcement Learning
- Handling stochastic non-integer delay in reinforcement learning
- Setting up an ssh server Notes from my home hackery.
- Customizing syntax highlighting in vim on markdown files
- Data Revolution Podcast
- Machine Learning Street Talk ML from nuts and bolts