#!/usr/bin/env python # coding: utf-8 # # Learning to "do" machine learning # # This project is composed of a series of short, hands-on tutorials designed to provide some insight into the multi-faceted nature of machine learning tasks. These days, it is very easy for almost anyone to fire up a standard library, pass some vector data to a pre-trained model, and have that pre-fab system carry out some predictions or quantization. In many cases, however, the existing models and algorithms may not suit the data/task at hand, at which point it becomes necessary to *make your own tools*. This requires a more intimate understanding of what is going on "behind the scenes" when standard libraries are being run. # # This series of tutorials is designed to impart the key underlying ideas, design principles, and technical procedures involved in developing a "learning machine." We prioritize hands-on examples, with inline blocks of Python code available throughout, for users to read, modify, and execute themselves. We have also endeavoured to make lucid the correspondence between concepts illustrated using mathematical formulae, and the concrete objects that appear in the code. # # __Author and maintainer:__
# Matthew J. Holland (Osaka University, Institute for Datability Science) # # # # ## Viewing the tutorial # # # #### Getting your hardware/software set up # - Working on your own machine (old) # - Using cloud-based solutions # # #### Getting data ready # - Description of data sources # - MNIST handwritten digits (JPN) # - CIFAR-10 tiny images (JPN) # - Miscellaneous benchmark data sets (JPN) # - vim-2: visual stimulus and BOLD response (JPN) # # #### Fundamentals of implementing learning algorithms # - Framework for prototyping (JPN) # - Classifier models (JPN) # - Practice with first-order algorithms (JPN) # - Learning algorithms for sparse regression (JPN) # # #### Applied topics # - Encoder learning # - Building features using a Gabor filter bank (JPN) # - Finishing the encoder (JPN) # - Re-constructing the experiments of Johnson and Zhang # - Using deep learning API to expedite implementation (JPN) # - SVRG and numerical tests (JPN) # # # All the main contents of this tutorial make use of data; some of it is simulated, and some of it is real. The real-world data must be acquired from the original sources. These are described and linked to in the description of data sources part of the tutorial, so please read this before starting. # # # ## Downloading tutorial materials # # If you have `git`, then the recommended procedure is to run: # # ``` # git clone https://github.com/feedbackward/learnml.git # ``` # # For those with some aversion towards git (for whatever reason), there are compressed archives available for direct download from this GitHub page as well. # ___