Patent CA-2970249-A1 (CA)
Title: Software engineering method and system for enabling neuroplasticity, self-adaptive and progressive machine learning, in artificial intelligence
Inventor: BAEK OCK KEE
IPC: G06N20/00
Filed: 2017-06-12
Abstract: The primary goal of this present invention is to realize the concept of neuroplasticity in the artificial intelligence by enabling a computer software to self-adapt to new discoveries of unanticipated or unpredictable events (learning through study) and to self-adjust its behaviour based on the outcomes of earlier event processing for self-adaptive and progressive machine learning (learning from experience). This present invention introduces a novel software engineering approach, method, model, architecture and system based on a Dynamic Multidimensional Array and associated programming model, method and system to allow a computer software to self-adjust its behaviour with reflection of new discoveries and based on the outcomes of earlier processing of events. The decision making trees and associated branch instructions in the traditional software programs are replaced with indexed direct retrievals of a set of actions to be performed for processing of events from the Dynamic Multidimensional Array. The Dynamic Multidimensional Array enables software programmes to make decisions autonomously for handling business events, scientific triggers or environmental phenomena, without requiring any changes to the software programmes after deployment as they autonomously adapt to new discoveries and earlier outcomes. This novel software engineering approach, method, model, architecture and system is used to enable self-adaptive and progressive machine learning through realization of neuroplasticity in artificial intelligence. This present invention obviates the need for the complex, error-prone and time-consuming branch instructions that have been extensively used in the traditional software programmes and have been attributed negatively to software safety, resilience, performance and scalability.   The Information Technology has advanced significantly especially in the last two decades of the 20th century. However, the fundamental principle, model and architecture of the computers remained exactly the same: a calculator or "number cruncher" based on the Von Neumann architecture. The computer software which is the brain of computers remained the same as well from the perspective of the fundamental principle, model and architecture. All the business scenarios and associated processes need to be analyzed in advance and predetermined for a series of calculation instructions. In this Information Age, we need a learning machine that can discover unknown circumstances and self-adapt to them and continuously rebuild its knowledge base with reflection of earlier outcomes, or "experiences" like human brains rewire themselves with reflection of new information and experiences, i.e., neuroplasticity. This topic of self-adaptive and self-managed systems has been widely studied over the past five decades in a wide variety of application areas. The common goal of these studies is to enable the software capabilities for autonomously adapting to various events and circumstances by automatically adjusting the behaviours of software accordingly with the unanticipated and unpredictable situations. The most critical issues in designing a self-adaptive system are that majority of adaptations cannot be determined or predicted in advance and, consequently, that the requirements cannot be completely specified due to high degree of uncertainties. With the shared common goals and objectives, several nonprofit organizations and academic and industrial consortia have been established globally to address these issues and challenges through an international collaboration.  Among others, the "European Alliance for Innovation" has publicly solicited papers or proposals on Self-Adaptive Systems (SAS). In addition to academia and research communities around the world, several consortia such as Software Engineering for Self-Adaptive Systems (self-adaptive.org) and Software Engineering for Adaptive and Self-Managing Systems (SEAMS) are calling for participation in self-adaptive, self-managing, self-healing, self-optimizing, self-configuring, and self-organizing systems. A preliminary search of prior art has yielded numerous academic and industrial articles and papers related to self-adaptive systems or software, autonomous systems, dynamic systems, cognitive systems, artificial intelligence, machine learning, deep learning, etc. However, those articles and papers mainly discuss the issues and challenges associated with realizing the concept of the self-adaptive systems. There are some papers that propose models or methods related to self-adaptation of computer software. For example, the method for Self-Adaptive System (SAS) and the model called the Policy-based Self-Adaptive Model (PobSAM) discuss different approaches for developing and specifying self-adaptive systems by employing policies to govern and adapt the system behaviour. However, the adaptation logic as well as configurations are fixed within the software programs and do not change dynamically after deployment of the software. In addition, quite a few prior art related to the Supporting Vector Machine (SVM) are discovered through a preliminary search of prior art. They use the Supporting Vector Machine (SVM) for Big Data analytics based on linear supervised learning by managing key words, phrases and information units in a common "vector".  These technologies, therefore, are unrelated to this present invention at all. In summary, the methods and systems described in those prior art do not provide the software capabilities for systematically adapting to unforeseen situations. The following two fundamental issues and challenges are yet to be resolved because: (1) Various events and their associated states are defined at a low-level of abstraction, and the algorithms for adaptation and transition of states are hard-coded inside the software programs; and (2) Steady-state logics and configurations are fixed in the initial implementation of software and cannot change dynamically during execution. The primary goal of this present invention is to address the fundamental issues and challenges mentioned above, in a completely different approach which is inspired by neuroplasticity of human brain. This present invention introduces a multidimensional array to dynamically manage the event-state associations and correlations. It also introduces a method and system for autonomously adapting to various events and circumstances by adjusting the internal behaviours of software accordingly with the unanticipated and unpredictable situations. More importantly, software autonomously adapts to various events and circumstances without requiring any changes to the program logic after development and deployment of the software.