Software Engineering Challenges of Deep Learning
arXiv:1810.12034 · doi:10.1109/SEAA.2018.00018
Abstract
Surprisingly promising results have been achieved by deep learning (DL) systems in recent years. Many of these achievements have been reached in academic settings, or by large technology companies with highly skilled research groups and advanced supporting infrastructure. For companies without large research groups or advanced infrastructure, building high-quality production-ready systems with DL components has proven challenging. There is a clear lack of well-functioning tools and best practices for building DL systems. It is the goal of this research to identify what the main challenges are, by applying an interpretive research approach in close collaboration with companies of varying size and type. A set of seven projects have been selected to describe the potential with this new technology and to identify associated main challenges. A set of 12 main challenges has been identified and categorized into the three areas of development, production, and organizational challenges. Furthermore, a mapping between the challenges and the projects is defined, together with selected motivating descriptions of how and why the challenges apply to specific projects. Compared to other areas such as software engineering or database technologies, it is clear that DL is still rather immature and in need of further work to facilitate development of high-quality systems. The challenges identified in this paper can be used to guide future research by the software engineering and DL communities. Together, we could enable a large number of companies to start taking advantage of the high potential of the DL technology.
44th Euromicro Conference on Software Engineering and Advanced Applications, IEEE, 2018
References in corpus (5)
Cited by in corpus (27)
- How AI Developers Overcome Communication Challenges in a Multidisciplinary Team: A Case Study
- Adoption and Effects of Software Engineering Best Practices in Machine Learning
- Software Engineering for AI-Based Systems: A Survey
- Testing and verification of neural-network-based safety-critical control software: A systematic literature review
- Characterizing Technical Debt and Antipatterns in AI-Based Systems: A Systematic Mapping Study
- Software engineering for artificial intelligence and machine learning software: A systematic literature review
- On the Replicability and Reproducibility of Deep Learning in Software Engineering
- DeepFD: Automated Fault Diagnosis and Localization for Deep Learning Programs
- Data Smells in Public Datasets
- Socio-Technical Anti-Patterns in Building ML-Enabled Software: Insights from Leaders on the Forefront
- AI Lifecycle Models Need To Be Revised. An Exploratory Study in Fintech
- Synergy between Machine/Deep Learning and Software Engineering: How Far Are We?
- Engineering AI Systems: A Research Agenda
- Making sense of AI systems development
- Analysis of hidden feedback loops in continuous machine learning systems
- Towards Artefact-based Requirements Engineering for Data-Centric Systems
- Teaching Requirements Engineering for AI: A Goal-Oriented Approach in Software Engineering Courses
- Engineering Reliable Deep Learning Systems
- Challenges in Migrating Imperative Deep Learning Programs to Graph Execution: An Empirical Study
- Preliminary Systematic Literature Review of Machine Learning System Development Process
- Beyond Accuracy: An Empirical Study on Unit Testing in Open-source Deep Learning Projects
- Teaching Software Engineering for AI-Enabled Systems
- Automatically Debugging AutoML Pipelines using Maro: ML Automated Remediation Oracle (Extended Version)
- Towards Tool-Support for Interactive-Machine Learning Applications in the Android Ecosystem
- Systematic Mapping Study on the Machine Learning Lifecycle
- Software Logging for Machine Learning
- Distributed Ensembles of Reinforcement Learning Agents for Electricity Control