Continual Learning on the Edge with TensorFlow Lite
  Deploying sophisticated deep learning models on embedded devices with the
purpose of solving real-world problems is a struggle using today's technology.
Privacy and data limitations, network connection issues, and the need for fast
model adaptation are some of the challenges that constitute today's approaches
unfit for many applications on the edge and make real-time on-device training a
necessity. Google is currently working on tackling these challenges by
embedding an experimental transfer learning API to their TensorFlow Lite,
machine learning library. In this paper, we show that although transfer
learning is a good first step for on-device model training, it suffers from
catastrophic forgetting when faced with more realistic scenarios. We present
this issue by testing a simple transfer learning model on the CORe50 benchmark
as well as by demonstrating its limitations directly on an Android application
we developed. In addition, we expand the TensorFlow Lite library to include
continual learning capabilities, by integrating a simple replay approach into
the head of the current transfer learning model. We test our continual learning
model on the CORe50 benchmark to show that it tackles catastrophic forgetting,
and we demonstrate its ability to continually learn, even under non-ideal
conditions, using the application we developed. Finally, we open-source the
code of our Android application to enable developers to integrate continual
learning to their own smartphone applications, as well as to facilitate further
development of continual learning functionality into the TensorFlow Lite
environment.
