Introduction to Deep Learning


  • Machine learning is the process where computers learn to recognise patterns of data.
  • Deep learning is a subset of machine learning, which is a subset of artificial intelligence.
  • Convolutional neural networks are well suited for image classification.
  • To use Deep Learning effectively we follow a workflow of: defining the problem, identifying inputs and outputs, preparing data, choosing the type of network, training the model, tuning hyperparameters, and measuring performance before we can classify data.

Introduction to Image Data


  • Image datasets can be found online or created uniquely for your research question.
  • Images consist of pixels arranged in a particular order.
  • Image data is usually preprocessed before use in a CNN for efficiency, consistency, and robustness.
  • Input data generally consists of three sets: a training set used to fit model parameters; a validation set used to evaluate the model fit on training data; a test set used to evaluate the final model performance.

Build a Convolutional Neural Network


  • Artificial neural networks (ANN) are a machine learning technique based on a model inspired by groups of neurons in the brain.
  • Convolution neural networks (CNN) are a type of ANN designed for image classification and object detection.
  • The number of filters corresponds to the number of distinct features the layer is learning to recognise whereas the kernel size determines the level of features being captured.
  • A CNN can consist of many types of layers including convolutional, pooling, flatten, and dense (fully connected) layers
  • Convolutional layers are responsible for learning features from the input data.
  • Pooling layers are often used to reduce the spatial dimensions of the data.
  • The flatten layer is used to convert the multi-dimensional output of the convolutional and pooling layers into a flat vector.
  • Dense layers are responsible for combining features learned by the previous layers to perform the final classification.

Compile and Train (Fit) a Convolutional Neural Network


  • Use Model.compile() to compile a CNN.
  • The choice of optimizer often depends on experimentation and empirical evaluation.
  • The choice of loss function will depend on your data and aim.
  • Use Model.fit() to make a train (fit) a CNN.
  • Training/validation loss and accuracy can be used to evaluate a model during training.
  • Dropout is one way regularization technique to prevent overfitting.

Evaluate a Convolutional Neural Network and Make Predictions (Classifications)


  • Model accuracy must be measured on a test dataset with images your model has not seen before.
  • Use Model.predict() to make a prediction with your model.
  • There are many hyperparameters to choose from to improve model performance.
  • Fitting separate models with different hyperparameters and comparing their performance is a common and good practice in deep learning.

Share a Convolutional Neural Network and Next Steps


  • To use Deep Learning effectively, go through a workflow of: defining the problem, identifying inputs and outputs, preparing data, choosing the type of network, choosing a loss function, training the model, tuning hyperparameters, and measuring performance.
  • Use Model.save() and share your model with others.
  • Keras is a Deep Learning library that is easier to use than many of the alternatives such as TensorFlow and PyTorch.
  • Graphical Processing Units are useful, though not essential, for deep learning tasks.
  • CNNs work well for a variety of tasks, especially those involving grid-like data with spatial relationships, but not for time series or variable sized input data.