Integration of Convolutional Neural Networks in Mobile Applications
  When building Deep Learning (DL) models, data scientists and software
engineers manage the trade-off between their accuracy, or any other suitable
success criteria, and their complexity. In an environment with high
computational power, a common practice is making the models go deeper by
designing more sophisticated architectures. However, in the context of mobile
devices, which possess less computational power, keeping complexity under
control is a must. In this paper, we study the performance of a system that
integrates a DL model as a trade-off between the accuracy and the complexity.
At the same time, we relate the complexity to the efficiency of the system.
With this, we present a practical study that aims to explore the challenges met
when optimizing the performance of DL models becomes a requirement. Concretely,
we aim to identify: (i) the most concerning challenges when deploying DL-based
software in mobile applications; and (ii) the path for optimizing the
performance trade-off. We obtain results that verify many of the identified
challenges in the related work such as the availability of frameworks and the
software-data dependency. We provide a documentation of our experience when
facing the identified challenges together with the discussion of possible
solutions to them. Additionally, we implement a solution to the sustainability
of the DL models when deployed in order to reduce the severity of other
identified challenges. Moreover, we relate the performance trade-off to a new
defined challenge featuring the impact of the complexity in the obtained
accuracy. Finally, we discuss and motivate future work that aims to provide
solutions to the more open challenges found.
