Transfer Learning Approach to Train Models in Computer Vision Task

By Juan Widyaya

Elevator Pitch

When training a ConvNet model, we may train it using an end-to-end or transfer learning approach. The former means the model’s weights are initialized from scratch. The latter means the model uses pre-trained weights. Transfer learning approach may boost the model’s performance.

Description

What is Computer Vision?

In this session I will explain about the transfer learning approach to train models in computer vision tasks. Before we get to the main point of this session, I will briefly explain about computer vision, what is the goal of computer vision tasks, how to build computer vision models. I will focus on convolutional neural networks to build a deep learning model for computer vision.

Deep learning, end-to-end learning & transfer learning

In this section I will build common ground on how to train a deep learning model of convolutional neural networks. There are two different approach to train a deep learning model (or ConvNet model):

  1. End-to-end learning:
    • What does end-to-end learning mean?
    • What is the challenge for end-to-end learning?
  2. Transfer learning:
    • What does transfer learning mean?
    • How does transfer learning work?

Then, how do we choose, end-to-end learning or transfer learning?

How do we do it on python?

There are several deep learning frameworks, like Keras, Tensorflow, Pytorch, Fastai, Caffe, MxNet, Theano, DL4J, etc. In this talk session I will choose the Keras framework. At this section I will explain several things like:

  1. Briefly explain about Keras framework
  2. Deep learning pipeline model in Keras
  3. Code exposition:
    • How to build a deep learning model with end-to-end learning approach
    • How to build a deep learning model with transfer learning approach
    • How to fine-tune layers of deep learning from a transfer learning approach perspective.

Notes

From the perspective of technical requirements to conduct this experiment, I use Google Colaboratory. All the packages are already handled by Google Colaboratory, so we can use the Keras environment and GPU without any dependencies issue. The dataset that I use is from Kaggle.com. I may not be the best person to speak about deep learning and transfer learning, I am still a beginner myself, but I hope I can share what I know to the python community and others may gain the knowledge.