Error Correction of Error Correction:

If I were asked to explain cybernetics, the first thing that would come to my mind would be – error correction. The example that is often used to explain cybernetics is that of the steersman. You have a steersman on a boat moving from point A to point B. Ideally, the boat should move from point A to B in a straight line. However, the wind can change the direction of the boat, and the steersman has to adjust accordingly to stay on course. This negative feedback loop requires a target such that the difference from the target is compensated. In technical terms, there is a comparator (something that can measure) that checks on a periodic or continuous basis what the difference is, and provides this information to make adjustments accordingly. Let’s call this framework as first order cybernetics. In this framework, we need a closed loop so that we have feedback. This allows for information to be fed back so that we can compare it against a goal and make adjustments accordingly. This approach was made famous by one of the main pioneers of Cybernetics, Norbert Wiener. He used this for guided missile technology where the missile could change its course as needed similar to the steersman on the boat. First order cybernetics obviously is quite useful. But it is based on the assumption that there is a target that we can all agree upon. This also assumes that the comparator is able to work effectively and efficiently.

With this background, I would now like to look at second order cybernetics. One of the main pioneers of second order cybernetics was Heinz von Foerster. He wanted to go beyond the idea of just error correction. He wanted to look at error correction of error correction. As I noted earlier, the error correction mechanism assumes that the target is clear and available, and also that the comparator and the correcting mechanism are working appropriately. Von Foerster challenged the notion of an objective reality and introduced the notion of the observer being part of what is observed. The general tendency is to keep the observer out of what is being observed with the underlying belief that the observation is readily available for all those who are interested. Von Foerster pushed back on this idea and said that the observer is included in the observation. One of my favorite aphorisms from von Foerster is – only when you realize you are blind, can you see. We all have cognitive blind spots. Realizing this and being aware of it allows us to improve how we look at things. There is a circularity that we have to respect and understand better here. What we see impacts what we understand, and what we understand impacts what we see. It is an ongoing self-correcting cycle. If the first order error correction is a correcting to a specific problem, then second order error correcting is the error correction of the error correction.

There is a great example that von Foerster gives that might explain this idea better. He talked about the Turing’s test. Turing’s test or the Imitation Game as originally called by the great Alan Turing is a test given to an “intelligent machine” to see if its intelligence is comparable or indistinguishable from that of a human. Von Foerster turned this on its head by bringing up the second order implications. He noted:

The way I see it, the potential intelligence of a machine is not being tested. In actual fact, the scholars are testing themselves (when they give the Turing test). Yes, they are testing themselves to determine whether or not they can tell a human being from a machine. And if they don’t manage to do this, they will have failed. The way I see it, the examiners are examining themselves, not the entity that is meekly sitting behind the curtain and providing answers for their questions. As I said, “Tests test tests.”

One of the main implications from this is that the observer is responsible for their own construction of what they are observing. We are all informationally closed entities that construct our version of a stable paradigm that we call a reality (not THE reality). And we are responsible for our construction, and we are ethically bound to allow others to construct their versions. We come to an eigenvalue for this “reality” when we continue to interact with each other. The more we stay away from each other in our own echo chambers, the harder it becomes to reconcile the different realities. The term “informationally closed” means that information does not enter us from the outside. We generate meaning based on how we are being perturbed based on the affordances of the environment we are interacting with. The main criticism to this approach is that it leads to relativism, the notion that every viewpoint matters. I reject this notion and affirmatively state that we should support pluralism. By saying that we do not have access to an objective reality, I am saying that we need epistemic humility. We need to realize that we do not have the Truth; that there is no Truth out there. As the wonderful Systems Thinker, Charles West Churchman said, “The systems approach begins when first you see the world through the eyes of another.” We should be beware of those that claim that they have access to the Truth.

When we understand the second order implications, we realize that although the map is not the territory, the map is all we have. Thus, we have to keep working on getting better at making maps. We have to work on error correction of our error corrections. I will finish with some wise words from von Foerster:

The consciousness of consciousness is self-consciousness. The understanding of understanding is self-understanding. And the organization of organization is self-organization. I propose that whenever this self crops up we emphasize this moment of circularity. The result is this: The self does not appear as something static or firm but instead becomes fluid and is constantly being produced. It starts moving. I would plead that we also maintain the dynamics of this word when we speak of self-organization. The way I see it, the self changes every moment, each and every second.

Please maintain social distance, wear masks and take vaccination, if able. Stay safe and always keep on learning… In case you missed it, my last post was The Open Concept of Systems:

4 thoughts on “Error Correction of Error Correction:

  1. Great post! But the map is not all we have: we also have a (moral) compass, frameworks from the past that have proved useful in dealing with complex issues….


  2. As tests test tests, so codes code codes. Hmmm. I’m making this up, as I’m going along. Feel free to correct any mistakes.

    I’ve been talking Monday with a good friend of mine, also a physicist. He had been asked – in the late ’70’s – to support making an computer application (“code”) to schedule (“coding”) for students in classes in rooms at a school. Many constraints: timeslots, rooms, teachers, and amongst it, the higher classes with individual students having options for lessons. They couldn’t figure out a “best way”. It took at least a week to come up with a schedule. He looked at the situation and concluded: a schedule constraints the constraints, so the schedule is the constraint. Just make a schedule using some heuristics (“cutting some corners”, he called it) and that’s it. Apply and adapt if necessary. Within a day, one now could make a viable schedule using this software. The software became a great success and is still being used. (Unfortunately, the software house went bankrupt, and he was never paid). Constraints constrain constraints.

    When code codes code, codes codes “them-selves”. A coding code cannot code itself directly, as coding requires “decoding” and decoding “destroys” the code. Like an answer “destroys” the question. It can be called “annihilation”. However, a code could code for a(nother) code*, which code* could code for “it self”, that is, the code.

    In codes, errors don’t exist. These codes are not “wrong”, they just don’t work. I like to call them “mistakes”. They’re not “wrong”, they don’t “fit” or they just don’t work. Any code will ignore these “non-coding” statements. Detecting and correcting (or coding for learning) implies a(nother) code – called code* – to detect “error”, as within a code there can be no errors.

    So In becoming self-coding codes codes (code and code*) “comes into being”. So I could say, that every being codes “self-correcting codes”. Every organism organises it-self organically while being undistinguished from its error-correcting coding code*.

    Using Murphy’s law – anything that can go wrong (= making errors), will go wrong – I would suggest that if a code could code for a (another) code* coding again for the code, it will (after some time) do so. A code coding a(nother) code* to correct errors in its coding — and vice versa – could work.

    Making “errors” – I’ll call them “mistakes” *) – constrains the coding codes. Like the school schedule, it doesn’t have to be perfect (“optimal”, “efficient”, “the best”, … these are human codes for behaviour), as long as they work. Just work with it and working will work. Work works. (In Dutch and German, reality is called “werkelijkheid” (Wirklichkeit) or “what works”) So in becoming self-coding codes a “system of codes” “comes into being”. Like RNA and proteins invoking each other. And from there on to all organically organising organisms. Codes of behaviour.

    So I could say, that every (living) being codes “it self” through living. This is equivalent to – what I’ve been saying a long time – that every organism organises it-self organically. Life doesn’t distinguish between good and bad, right or wrong (error), as “errors” or mistakes . Only our “codes of conduct do”. (Long shot: here we’re having the story of Adam and Eve in paradise with the Tree of Knowledge: good code / bad code).

    The process of organizing I can call “coding”. The whole of the coding system I’ll call “system”. (And, I may have mentioned this before: with “organism” one uses a Greek word coding for “work” or “erg”. One also uses it in “en-ergy” or “at-work”.) One (being, organism, system, … ) codes both ones “community” – code of behaviour – and one-self. Work works work.

    In order “to work”, self-coding codes have to become what we’re calling error-correcting codes. As one learns from making and correcting (= coding) ones codes, codes or better code-decode “systems” will become self-correcting codes. (I’ve always liked writing: … codecodecodecode… code codeco decode code code codeco … )

    Another approach: self-correcting code require processes to produce it-self and will (or “must”) code for (another) code* producing its code. One coding system produces another coding system* producing (the) one coding system producing (the) other … Infinite regress, so a paradox. Both these kind of coding systems code each-other as “self-correcting codes” AND produce a “metacoding code”.

    In working like this, codes code self-constrained “selves” or coding systems. They construct and constrain each other. Constraints constrain constraints.

    For example: … RNA codes for producing proteins. These proteins produce proteins coding for producing RNA AND for RNA error correcting proteins. … These protein/RNA coding systems will also produce a constraint (or better, “constrain themselves”) with a “cell” boundary to contain itself. Once code produces (I do have to point out that the letters c o d e are reproduced in produce) code*s, codes will constrain each other, producing constraints.
    Constraints constrain constraints, like code codes codes.

    I suddenly remember an interesting explanation for the double helix – enabling error correction – and DNA coming into being as a kind of back-up code for RNA to check against. If the RNA had made a “mistake” or – more plausible – protein production was overtaken by a rogue code (virus): producing errors – the code could be checked against a “copy”. The other way around: viral RNA “drives” learning to code for (more) error-correcting codes, as “errors” are codes that don’t seem to contribute to error-correction. Mistakes mistaken for mistakes.

    “Means becoming an end” is one of the often ignored rules of Darwinian evolution theory (= code) on biology. For instance, hairs (means) may insulate a body, protect against cold or predators (end), feather-like hears will do a better job (and impress the girls), and – in the end – feathers (end) may become wings (means) to fly. Off course these shifts started out as “mistakes” – ‘no, boy, these wings are not for flying, they’re to keep you warm’ and then “unnoticed” (with predators) and noticed (with others)’. Coats coding code. (Or models modelling models…)

    ( I’ve always mend “meaning” is not the end of communicating using language (= code). The end of language was sharing priorities, coordinating actions, warning. It’s again the means (meaning) becoming an end. Not trying to code/decode meaning in communications would improve communicating). Think about Watzlawick’s axioms on pragmatics of human communication.

    Now – I cannot find the quote, perhaps you know where -, Shannon has proven that, given enough time, any code will become an error-correcting coding or “system”. He just didn’t notice (or I didn’t) that any coding system codes for another coding system. Perhaps this is because he didn’t include meaning in communication theory. He was only interested in the means and not the ends.

    (So, given enough time – will 5 billion years suffice? – any ergodic system will produce a living ergodic system. Based on statistical mechanics and the Fokker-Planck equation).

    Error correcting coding systems all use the same: “trick”: they’re applying the same (inherent) structures over and over again. These structures are like patterns (usually visualized as matrices), which, when transposed, produce the same pattern. Any error in the transposition, will show up as “defect”. To be corrected. (See: Zhengbing Hu et al.: I-Ching, dyadic groups of binary numbers and the genologic coding in living bodies).

    I’ll come back to this later.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s