Игорь Волков – Hardware and software of the brain (страница 14)
Volume 6, No. 28, 2019–2020
https://quod.lib.umich.edu/e/ergo/12405314.0006.028?view=text;rgn=main
Self-programming
This chapter was inspired by the discovery that the desire to change some rule is also an insight driven by inborn programs or consciously so programmable. Talks about metaprogramming. Our computers are universal programmable devices. They are made to perform algorithms. What is about creating new programs? Universality means that it should be possible as well. Just install software which can do it. A program that writes other programs. Why not? There is a domain called Problem Solving in Artificial Intelligence. Nevertheless, you will need to formulate a task and maybe add necessary knowledge. Humans do everything completely autonomously and that's enigma.
Paradox of self-programming
It is closely linked to the problem of human consciousness. How can it happen? The procedure may wreck some important code and the whole system will hang. Also if installation is lengthy, the computer will be half-workable. How can it proceed? Really, all these are technical problems which are solvable. In the brain, consciousness is rather well localized so we have a separate block which works with the rest of the brain. The problem of self-linkage may be removed. Let's consider how this advanced function works in computers and live humans.
Automatic problem solving in Artificial Intelligence
While the output of this meta-level is still algorithmic, it uses rule-based programming. Each rule links 3 elements: necessary preconditions, some action, and consequences of this action. The conditions of the task are used as preconditions for the first rule while its consequences will be preconditions for the second one. The Problem Solver will scan the knowledge base until the consequences of the last rule fit the goal of the task. The procedure is also known as traversing the solutions' tree. Sometimes a task has several different solutions. The full scan will discover them all. Then, you can choose the best one according to some criteria.
If the output of the Problem Solver is also rule-based, everything becomes even simpler. Algorithms are difficult to modify. Suppose you need to insert just one command in the middle. The whole of the second half needs to be shifted and this is the simplest situation yet. Rule-based programs are incremental. You just add a rule to the base and that's all. Such programs even may modify itself on the fly. Of course, some precautions are necessary, but that's usual technical details.
Human programming
Before discussing self-programming in living systems, it is necessary to understand common programming. For example, when one human teaches somebody else. The previous analysis remains valid. Humans can perform algorithms (although not very long), but the rule-based paradigm is the main one. Rules are supported on hardware level by associative memory. As a result, many tasks which are implemented programmatically in computers are hard-wired in the structure of neural nets in the brain.
The other difference is that our nervous system has an ultimate goal. It maintains the existence of the whole organism (including its own). We can't just switch it off and put on the table. The brain is always in operation and software which you additionally install should be compatible.
Any analogy between humans and computers imply goal-oriented behavior. In addition, humans generate processes of a principally different type. The human brain as a computational system is a Finite State Automaton. It changes states because that helps to maintain its existence. If it is too hot, move to the shadow. If you stood long in the same pose, definite muscles get tired and need to change it. Short-term goals spontaneously emerge time by time and are quickly achieved.
Such changes are prompted by insights – sudden bright ideas. In the aforementioned cases, the cause of the insight is obvious. In Pavlov's school this is called a situational reflex. There are more complicated variants. In those cases you react to a slowly worsening situation, but humans seek for improvements as well. Time by time, you are quite well off, but suddenly get an idea to do something that will make your life even better.
Human self-programming
Adaptation is a vital feature for any autonomous control system. No programmer can foresee absolutely everything. In real-world conditions, it is essential to invent solutions in real time. The simplest variants of adaptation may be found even without nervous system.
The simplest neural nets implement it via synaptic plasticity. On the behavioral level, physiology knows it as the instrumental reflex. In this experimental model, animals get some stimulus (such as a flashing lamp) and must perform a definite action so as to get a reward. The brain uses the simplest method of trials-errors to find the solution. Success evokes positive emotions which release definite substances in some structures of the limbic system. They work as modulators and enhance useful associations. Also, the opposite is possible. Failure suppresses the used association so such ideas will not pop up the next time. It is necessary to note that this mechanism operates on the subconscious level. Accordingly, we have a practical recommendation.
If you want to learn a new skill, you will need operational conditions where you can freely make errors. The more practice – the better until you feel confidence and don't suppress emotions. They help to remember lucky discoveries.
Apparently, the straightforward trials-errors method is very inefficient. In addition, humans use the aforementioned problem solving. Associative memory of the neocortex is perfectly suitable for this procedure. A bulk of work is performed on the hardware level in the parallel mode. Neural nets even make it possible to enhance the search of solutions. Common computers traverse the tree in one direction (from the conditions to the goal or vice versa). Human brain can activate images on both sides and they will instantly find the path to each other.
Such mechanisms are used much more often than we imagine. Even if the activity, be it at work or at home, is routine, we usually learn only a general scheme. Details are decided in real time according to circumstances. Also, repeating actions have small variations. This is behavioral noise generated on purpose. When such a mutation is useful, the brain will remember it and employ the next time completely subconsciously. Similar methods may be used to enhance the basic trial-error approach. Instead of completely random generation, you can guide the process by some heuristics or other knowledge. Indeed, problem solving based on neural nets uses the same gear.
The same principle post factum. You may evaluate the results using emotions or rational reasoning. You can analyze the reasons and make decisions on how to do it the next time.
The abundance of opportunities creates another problem. The absence of learning means no progress. Excessive learning will take too much time. Also it may become counterproductive. Suppose after long training you have achieved the best level possible, but behavioral mutations continue. What's going on? They destroy your skills.
Programming of insight-based computing
An insight is a sudden idea which pops up in an appropriate place at an appropriate time. Mechanisms are unclear, but there are no miracles. All events are embedded in cause-consequence relations. The cause will be a stimulus, that idea – a reaction, and again we have rule-based programming. Only constituent parts are unusual.
Why "spontaneous" insights are so appropriate. Because they react to a situation, operational environment. As to the time moment, this is usually not difficult. It is the time when the previous action was completed, when you got into this environment, and so on. A separate case is a reaction to a slowly changing parameter. "Slowly" may be minutes or even years. Such devices are usually implemented via a threshold function. To output a sharp and definite image, positive feedback (contrasting) is needed.
Also, a reaction in the rule may be not what you watch at the output. Suppose you need to solve a complicated task. Try to invent a device which consists of several parts. Need to find how to assemble them together. Day after day, in background mode, you try different combinations. As soon as your brain gets free from other activity, you switch on this thinking. From physiological point, this is activating certain brain structures like activating muscles when you start running in response to a signal.
What is about programming? In the last example, you need to remember details of the components. Especially that side where they join each other. The whole process runs in subconsciousness. If you have no necessary information, the solution will never be found and you won't have clues why.
Insights may be emotional. Instead of some sensory or motor image, the output is some brain state such as distribution of attention. To get such insights when appropriate, you need to learn them preliminarily.