Key Points

Introduction to Deep Learning


  • Deep learning uses neural networks to learn patterns directly from data.
  • Convolutional neural networks (CNNs) are commonly used for image classification.
  • Training a model involves compiling it, fitting it to data, and making predictions.
  • Model performance may be imperfect at first and can be improved with further training and tuning.

Introduction to Image Data


  • Images consist of pixels arranged in a particular order.
  • Image datasets can be organised into folders where each folder represents a class.
  • image_dataset_from_directory() lets us load images without writing custom data preparation code.
  • Images are loaded in batches and represented as numerical arrays.
  • Training, validation, and test sets are used to build and evaluate models.

Build a Convolutional Neural Network


  • Convolutional neural networks (CNNs) are designed for working with image data.
  • CNNs are built by stacking layers, where each layer transforms the data and passes it to the next layer.
  • Convolutional layers look for simple patterns in images (e.g. edges and textures).
  • Pooling layers reduce the size of the data, helping the model focus on important features.
  • The Flatten layer converts image data into a format suitable for classification.
  • Dense layers are used to produce the final prediction.

Compile and Train (Fit) a Convolutional Neural Network


  • Use Model.compile() to set how a model will learn.
  • The optimizer controls how the model updates its weights.
  • The loss function measures how wrong the model’s predictions are.
  • Metrics such as accuracy tell us how well the model is performing.
  • Use Model.fit() to train the model on data.
  • Training and validation loss and accuracy help us monitor learning.
  • Overfitting occurs when a model performs well on training data but less well on new data.

Evaluate a Convolutional Neural Network and Make Predictions (Classifications)


  • Use Model.predict() to make predictions with a trained model.
  • Model outputs represent confidence values for each class.
  • Use argmax to convert model outputs into predicted class labels.
  • Accuracy measures how often predictions are correct.
  • Confusion matrices help identify which classes are predicted correctly and where errors occur.

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.