Introduction​
Mechanical engineering has traditionally been at the cutting edge of employing computer-based methods in order to create better designs in a shorter amount of time. Today, software tools support all aspects of engineering work from design (Computer Aided Design - CAD) and analysis (Computer Aided Engineering - CAE) to production (Computer Aided Manufacturing - CAM). Sophisticated data management systems (Product Lifecycle Management - PLM) are used in order to provide a common digital thread across all disciplines and teams that contribute to the development of a product. However, many engineering processes still require a lot of time consuming routine work and are plagued with manual handoffs and data silos.
In recent years a lot of hype has been building around novel machine learning methods that are often referred to as artificial intelligence (AI). Dubbed as the "new electricity", these methods promise to remove manual human work to the extent that McKinsey estimated that up to 375 million people need to change occupational categories by 2030. In the same timeframe AI-powered tools are estimated to deliver an additional worldwide economic output of around $13 trillion. Naturally, the question arises how engineers can leverage this technology to build better products faster.
What is Artificial Intelligence anyway?​
The definition of the term "artificial intelligence" is surprisingly vague. Most non-scientific people would probably describe the technology as the simulation of human intelligence by computer software. Computer science textbooks would in contrast typically frame AI as the study of intelligent agents that can perceive their environment, take actions and learn from them. These goals can be achieved with several different algorithmical approaches. However, when somebody talks about AI in 2020, the term usually refers to a very specific set of methods from the realm of machine learning (ML): Deep Learning (DL). The core idea of deep learning is to connect a lot (!) of simple differentiable parameterized units that are organized in layers. The resulting network is subsequently trained with a gradient descent-like optimization algorithm. Due to the history of the field and because the resulting structures can very loosely resemble the human visual cortex these units are often called neurons and the networks are called neural networks.
Since 2012, the progress in this research area has been remarkable. Today, deep learning has enabled rapid advances in many applications of computer vision and natural language processing. In this context, the algorithms are not only able to detect certain patterns in complex data (e.g. a traffic sign), but can also accurately reproduce these patterns to create translations or so called [https://en.wikipedia.org/wiki/Deepfake](deep fakes).
Because the field advances so quickly and has so many applications, there are quite some misleading myths (e.g. deep learning always needs lots of data) around the technology. Sorting through all of them would probably require an entire series of articles. However, we need some guideline to understand what kind of engineering tasks might be suitable for deep learning algorithms. For this purpose I still like (despite all its shortcomings) the definition by Andrew Ng:
If a typical person can do a mental task with less than one second of thought, we can probably automate it using AI either now or in the near future. Andrew Ng
This definition most importantly tells us what the technology can't do: It can't reason over complex problems that require a great deal of contextual knowledge and a good understanding of causality. It also can't come up with novel ideas. In other words: It is really bad at the capabilities that most people would list as a prerequisite for being a great engineer. Instead, machine learning and more specifically deep learning has to be regarded as a data-driven automation tool for small manual routine tasks.
Towards an Augmented Intelligence for Engineers​
The ability of automating tasks that only take several seconds or at most several minutes for humans to complete seems to be not very useful at first sight. However, especially in engineering there are many tasks that are essentially a large chain of such small sub-tasks. Monitoring an engineering process or assessing the results of a simulation or an experiment often involves checking hundreds of data points. Especially when more advanced optimization and measurement techniques are employed these tasks can become very time consuming. Here, ML-based solutions can quickly filter out relevant cases thus saving hours of manual work. Also, many geometry processing tasks such as modeling for simulation constitute a large sequence of small manual routine tasks.
The goal for AI systems in engineering is therefore not to replace human engineers. Rather, such systems will augment human capabilities by freeing engineers of manual routine work. A more fitting term for these kinds of software would thus be "Augmented Intelligence" rather than "Artificial Intelligence". The following challenges have to be met in this context:
- ML-based solutions are not 100% accurate. Depending on the use case an automation solution has to reach 75% to 99.9% accuracy in order to be useful. Efficient mechanisms to recognize and correct the mistakes of the ML-based solution are key for a succesful AI-system.
- Many AI systems need at least some annotated data for optimal performance. Currently, these kinds of low-level engineering decisions are not tracked and saved in typical PLM or SDM systems.
- AI systems have to be adapted to specific use cases by training on historic process data. While the underlying ML-algorithms are becoming increasingly easy to use, a basic understanding of data science is required in order to build robust systems. Every engineering team in the world needs to acquire these skills or has to create dedicated roles that maintain the AI-systems for the team.
The key to overcoming these challenges is a seamless interaction between engineers and the ML algorithms. In many scenarios this in particular means to provide graphical user interfaces that are optimized for a specific task.
AI-powered Engineering Apps​
The concept of a software that serves only one specific use case but does this in a simple and efficient way is one of the most successful ideas of the last decade: "There's an app for that" is not merely a trademarked advertising slogan from Apple, but more so a slogan of a whole generation. In engineering, the idea to make complex automated processes available under easy-to-use interfaces has also been around for a while. Starting with workflow management tools, these kinds of low-code platforms evolved into authoring tools for application specific, web-based engineering apps. However, most engineering software today still runs on older monolithic software cores that are difficult to interface with. CAD/CAE as well as PLM and SDM platform have just recently begun to incorporate API-first philosophies and microservice architectures.
On the one hand, this environment currently poses a challenge for creating AI-powered engineering apps. On the other hand, machine learning with its superior automation potential and its need for process-specific interaction can greatly accelerate the transition towards an API-based engineering software landscape. It is difficult to predict how fast the traditionally slow-paced engineering software world will transform. However, the availability of suitable components for graphical user interfaces as well as flexible data backend APIs will be key for many applications of AI-assisted engineering.
A Prototype is not enough​
At the core, AI-assisted engineering means data-driven process automation. This implies that new ML technologies can enhance existing processes and software systems. While it is definitely good to start with incremental changes instead of turning all existing processes upside down, true augmented intelligence systems for engineers will require (and enable!) a paradigm change in engineering education, engineering IT systems and product development processes. In our blog, we will regularly discuss all things "AI-assisted engineering" from use case to algorithms and implementations. We will specifically highlight how to move from prototypical AI-applications into value-generating productivity tools for engineers.