/neural-network-intro

A practical introduction to artificial neural networks.

Primary LanguageJupyter NotebookMIT LicenseMIT

Practical Introduction to Artificial Neural Networks

This repository contains a practical introduction to artificial neural networks by way of Jupyter notebooks and the Python programming language.

This mini-course was prepared by Igor Barros Barbosa and Aleksander Rognhaugen.

Structure

The mini-course is split up into the following components:

  1. Getting started with NumPy [optional]
  2. Regression
    1. Linear regression
    2. Multivariate linear regression
  3. Multilayer perceptron
  4. Convolutional neural networks
  5. Generative adversarial networks

The zeroth component refers to an optional getting started guide for those of you not too familiar with NumPy arrays, e.g. vectors, matrices. We strongly recommend that you scan through it and use it as a reference for whenever you need it in any of the other Jupyter notebooks.

All of the notebooks use the high-level artificial neural network package Keras for creating and training machine learning models. The notebooks assume you are using TensorFlow.

Running Jupyter

To run the Jupyter notebooks on your local machine you will have to (i) clone the repository and (ii) start Jupyter via the terminal using the following command:

jupyter notebook

When Jupyter is running, you can point your web browser at http://localhost:8888 to start using the notebook. The start screen displays all available Jupyter notebooks in the current directory. You may have to change directory to find the notebook you want to read.

Press Shift-Enter to run the currently selected cell.

Python Packages

The notebooks assume you have the following Python packages installed

Library Function
Jupyter Installs all necessary components of the Jupyter system
NumPy Adds support for multi-dimensional arrays along with algorithms to operate on them
Pillow A PIL (Python Imaging Library) fork
matplotlib A 2D plotting package
Pandas A data analysis package
tqdm A package for easily displaying progress meters
TensorFlow A numerical computing library using data flow graphs
Keras A high-level artificial neural network package

For those of you with pip see requirements.txt.