Introductory Data and Neural Network Concepts

To begin at this level you should have:

  1. Familiarity with Python 3 for general purpose programming. See the Python section for more.
  2. Working knowledge of traditional ML (when to use what)
  3. Jupyter notebook skills. Chapter 1 Python Data Science Handbook
  4. Get a good grasp of Python for data-related tasks:
    1. How to read data (matplotlib, Pillow/PIL, opencv-python)
    2. How to manipulate data (numpy, pandas, scikit-learn)
    3. How to plot data (matplotlib, seaborn)
    4. Traditional ML (scikit-learn)

Concepts and Resources

Dealing with Image Data

  • Read through this excellent first taste of Image Classification from this Stanford CS231n course Ref

Traditional ML for Image Analysis

Read through this article on Histogram of Oriented Gradients, an older technique, not often used anymore, but still a quick and easy way to detect objects.

astronaut with hog

Neural Networks

Read through this excellent explanation of a single-layer neural network. This information will lay the foundation for these sets of challenges and help you get started from the ground-up, quickly with key concepts and Python code snippets.

You should now understand the single-layer network, a perceptron, that uses a threshold activation function to perform binary classification:

perceptron schematic

Attributed to Sebastian Raschka

  • IMPORTANT: The perceptron is not capable of performing well on non-linearly separable inputs.

A multi-layer network, such as the mutli-layer perceptron (MLP), can address the problem of non-linearly separable data. An MLP, a fully-connected set of perceptrons organized into layers, can also have arbitrary activation functions making it more verstatile for classification and regression problems. These sorts of networks are also known as dense neural networks and the layers as fully-connected.

multi-layer network

Read this article for additional information.

In addition, here is an excellent, free introductory e-Book on Deep Learning.

Tools

  1. Git and GitHub for version control.

Additional Resources

Scikit-Learn

Excellent 3-hr scikit-learn tutorials from PyCon 2015:

  • Watch this scikit-learn tutorial by Jake VanderPlas (Part 1) and the next tutorial by Olivier Grisel (Part 2).

Learn about ML and Python scikit-learn in this video series