In the contemporary world the ‘souls’ and ‘minds’ of intelligent machines are the so-called software agents. This is because software agents are those parts of the systems which decide which, if any, action to be taken under given circumstances. A software agent is a complex software entity that is capable of acting with a certain degree of autonomy in order to accomplish tasks.
Software agents are of course not developed by the computers themselves, but are a product of decades of engineering and data scientist activity. Since the 1960s scientists devised thousands of ways for pattern recognition and learning theory which brought about a revolution just recently.
Machine learning means the capability of computers to progressively improve performance without being explicitly programmed to do so. Part of the machine learning domain is reinforcement learning, which is the area concerned with how software agents ought to take actions in an environment so as to maximize some notion of cumulative reward. More specifically a technique, called Q-learning is about learning polices / rulesets, which tell a software agent what action to take under what circumstances.
In contemporary self-propelled and partly self-reliant machines the entire process from sensors to motors involves a single layered or recurrent neural network without modularization. It employs unsupervised learning, without requiring sample data. This all-inclusive machine learning mode is called “end-to-end process“.
All decision making of the software agents are based on a version of the Markov Decision Process (MDP), which is a mathematical model of the optimal decision-making. The model calculates with known knowns, and as such it has a shortcoming to calculate the probability of each event only as a factor of dependence on the state attained in the previous event. The time as such is usually viewed as discrete time, where each variable of interest is measured once at each time period (as opposed to the notion of continous time humans sense). So, all the operations of a software agent depends on the sensed data quantity and quality and the set cycle intervals.
In practice software agents are autonomous and independent of other software or even hardware . They are not executed or runned beforehand for a task, but activate themselves, they could reside in wait status on a host, perceiving context, they may get to run status on a host upon starting conditions, they do not require interaction of user, and they could invoke other tasks including outside communication.
- Its persistence is ensured by the fact that its code is not executed on demand but runs continuously and decides for itself when it should perform some activity.
- Its soul-like autonomy is rested on the capabilities of task selection, prioritization, goal-directed behavior and decision-making without human intervention.
- Its ability to become swarm intelligence is based on the ability to engage other components through some sort of communication and coordination, they may collaborate on a task.
- Its reactivity is a core function backed by capabilites to perceive the context in which it operates and reacting to it appropriately.
For these reasons the artificial intelligence treats software agents as being equal to humans – because of both being intelligent agents, autonomous entities which both observe through sensors and both act upon an environment using actuators and both direct its activity towards achieving goals.
The newest species of software agents are the mobile agents, whinch are a composition of computer software and data which are able to migrate (move) from one computer to another autonomously and continue its execution on the destination computer.
There is no need for great imagination to understand the implications of their spread, and this is why one should seek safe and low-autonomy systems to rely on.