Phase 1: Problem assessment – Determine the problem’s characteristics.
What is an intelligent system?
The process of building Intelligent knowledge-based system has been called knowledge engineering since the 80s. It usually contains six phases: 1. Problem assessment; 2. Data and knowledge acquisition; 3. Development of a prototype system; 4. Development of a complete system; 5. Evaluation and revision of the system; 6. Integration and maintenance of the system .
With the fast development of advanced machine learning, data mining and computer vision technologies, this process still works. But, personally speaking, knowledge engineering is still more art than engineering, and a real developing process of an intelligent system is never as neat and clean as these phases.
Besides, these phases are regularly overlapping considerably. The process itself is also highly iterative and at any time team members, project managers and clients may engage in any development activities out of the initial plans.
Moreover, you may read about the cross-industry standard process for data mining, known as CRISP-DM , which is an open standard process model that describes common approaches used by data mining experts. It is one of the most widely-used analytics models. In 2015, IBM released a new methodology called Analytics Solutions Unified Method for Data Mining/Predictive Analytics (also known as ASUM-DM) which refines and extends CRISP-DM .
Nowadays, big techs like Google, Amazon and Microsoft are all offering their own Machine Learning & Artificial Intelligence platforms, it is much easier for companies and individuals to build intelligent applications with machine learning and data science software. Their products are similar to each other and have been serving various businesses with subtle differences.
OK, let’s review the six phases of building an intelligent system with details:
- Problem assessment:
- Determine the problem’s characteristics.
- Identify the main participants in the project.
- Specify the project’s objectives.
- Determine the resource needed for building the system.
- Data and knowledge acquisition.
- Collect and analyze data and knowledge.
- Make key concepts of the system design more explicit.
- Development of a prototype system:
- Choose a tool for building an intelligent system.
- Transform data and represent knowledge.
- Design and implement a prototype system.
- Test the prototype with test cases.
- Development of a complete system:
- Prepare a detailed design for a full-scale system.
- Collect additional data and knowledge.
- Develop the user interface.
- Improve the complete system.
- Evaluation and revision of the system:
- Evaluate the system against the performance criteria.
- Revise the system as necessary.
- Integration and maintenance of the system:
- Make arrangements for technology transfer.
- Establish an effective maintenance program.
From the view of project management, I think this process covered the most general requirements for system development. But as a data science practitioner and machine learning engineer, I want to address the importance of the first phases: Problem assessment (aka problem formulation in machine learning term) based on my academic and industry experiences.
Kick-start the Project by Problem Assessment
A good and right beginning always assures success!
During the problem assessment phase, we need to clarify the following four parts:
- determine the problem’s characteristics.
- identify the project’s participants.
- specify the project’s objectives and.
- determine the resources needed for building the system.
The most import step is to characterise the problem, we will need to
- Determine the problem type
- Identify the input and output variables and their interactions
- Design the form and content of the solution.
OK, Let us review the most typical problems often addressed by AI and Machine learning communities, which are:
- Diagnosis: Inferring malfunctions of an object from its behaviour and recommending solutions.
- Selection: Ranking or Recommending the best option from a list of possible alternatives.
- Prediction: Predicting the future behaviour of an object from its behaviour in the past.
- Classification: Assigning an object to one of the defined classes.
- Clustering: Dividing a heterogeneous group of objects into homogeneous subgroups.
- Optimisation: Improving the quality of solutions until an optimal one is found.
- Control: Governing the behaviour of an object to meet specified requirements in real-time.
- … and more …
The problem type and the input/output variables influence our choice of tools for building an intelligent system. However, in real-world, one system usually has to solve multiple problems at the same time, so it is essential to clarify them at an early stage and find or prepare solutions for them.
If there is no existing machine learning method for some challenges, prepare backup plans for them, for example, a human intelligent system, which can be more accurate than you think.
BrainStorm on Self-Driving Car ?!
Suppose, for example, we are planning to develop an intelligent system for a self-driving car. In the problem assessment phasis, assume we have all the resource we need, let’s determine the problem’s characteristics. The problems of this project are clearly related to
- diagnosis: monitoring the digital/mechanical systems of the car, safe to drive or not.
- prediction: the car movements and the surrounding objects’ movements to the car.
- classification: detect and classify the objects surrounding the car, i.e., footpath, fence, buildings, trees, poles, traffic lights, pedestrians, buses, trucks, …
- optimization: which route the car should take based on the traffic flow, change lane or not, speed up or slow down …
- control: the wheel, gas, brake, signals, headlight, running straight ?! …
- … more and more (i.e. a kangaroo jumps right in the front of the car) bazinga 🙂
Domain knowledge in such problems can often be represented by experienced drivers, electronic and mechanical engineers of the car, GIS experts, map developers, local traffic rules, police officers, data scientists, programmers, and more.
The input for the system will be like 3D point cloud data from LiDAR, the video feeds from cameras and thousands of sensors in the car. The output will be the control signal of the car. Moreover, the backup plan for testing is that there will always be a driver sit inside the car who can take over the control when the intelligent-system fails. You see how complex this can be. Let’s stop.
Of course, the choice of a building tool also depends on the form and content
of the solution. For example, sub-systems or models that are built for diagnostic tasks usually need explanation facilities – the means that enable them to justify their solutions. Such facilities are an essential component of an expert system.
On the other hand, advanced Computer Vision techniques, like a deep ConvNet model, might be a good choice for object detection and classification where the results are often more important than understanding the system’s reasoning process.
By the way, you can learn more about deep learning for the self-driving car at MIT’s DeepTraffic Website. Have fun and enjoy the simulation!
In most cases, we will not be facing such complex challenges like building an AI for a self-driving car, but the process for building an intelligent system is the same. I summarized all the key points of this blog in one figure, so feel free to download it and edit it for your own interests.
Download the Keynote: How to build an Intelligent System.
 Negnevitsky Michael, Artificial Intelligence: A Guide to Intelligent Systems, 2nd edition, Pearson Education (2005).
 Shearer C., The CRISP-DM model: the new blueprint for data mining, J Data Warehousing (2000); 5:13—22.
 Analytics Solutions Unified Method – Implementations with Agile principles, Published by IBM, 1 March 2016, Retrieved October 5, 2018.