Epistolution III: A Possible Test for Oscillatory Self-Organization

Charlie Munford
14 min readAug 15, 2022

Abstract: “Epistolution” is an explanation of life wherein self-organization consists in the sensitivity of critical oscillators to the ambient conditions of the umwelt (unique interaction with the environment) of the cell. In this view, genetic material is not a code that enforces its own algorithm of self-expression, but rather a simple list of templates allowing the cell to build essential proteins when the cell decides to do so. The logic of which genes to express and when comes instead from the umwelt, and by extension, from the larger state of the universe. This explains how living systems such as human holobionts can be functional units despite being composed in part from many microbiotic cells with divergent evolutionary histories. This paper proposes an empirical test of this theory by describing a software program that could possibly establish that matrices of oscillators could store knowledge, solve problems, recover function when damaged, and flexibly adapt to changing conditions in much the same way that biological systems can. Perhaps due to insufficient skill or perhaps due to unknown variables, our team has yet to achieve successful results with this program. Some possible reasons for this failure are explored.

The concept of epistolution, and what it explains

The first two epistolution papers tried to establish a series of ideas showing that life must be organized according to a simple formula that distinguishes between use and disuse in critical oscillations. To summarize, the argument goes as follows:

· Natural selection does not require, and it has not been proven, that any genome contains an instructional algorithm for gene expression. This is not the only way self-organization could have emerged. It is also possible that a genome simply contains a list of templates for building proteins, and the instructions for which proteins to build and when to build them comes from the umwelt, the unique set of interactions with the particular environment of the cell. Self-organization is presupposed in, not explained by, our current theories of life.

· Since phenotypic plasticity in response to the environment is often partially heritable, it must also be adaptive. If it were not, it would be spoiling whatever adaptive capacity the genome is responsible for. Therefore, through plasticity the cell must be sensing its umwelt and responding more or less appropriately in deciding how to express its genes. Of course part of this plasticity is what we call learning. It would be quite perverse to insist that learning is not adaptive.

· This requires a formula to carry the stimuli of the umwelt down to the genome. This formula is likely to be universal to all living cells since any DNA can be universally interpreted by any cell. Organisms nest into functional holobionts, swarms, and ecosystems that involve many separate genetic lineages in functional units. The only way gene expression could be reliably functional is if it were ultimately driven by the stable, predictable external world rather than stochastic local states of the cell.

· This self-organizing formula driven by external conditions is what we call general intelligence. It is a prerequisite for natural selection, but its evolution into more complex life has been a consequence of natural selection.

· This formula must distinguish between use and disuse. This is evident from the ubiquitous theme of all physiologies that execute habit-forming, learning, and strengthening in response to use, and atrophy and forgetting in response to disuse. What else could the formula be but “if used: reinforce: else if disused: mutate blindly?”

· The only mechanism universal enough to carry out this formula in all the forms of life on earth is the oscillator. An oscillator is a chemical reaction that repeats either in response to a cue in the umwelt, or in response to another oscillator. If so, then a living being can be conceived of as a set of nested oscillators that respond sensitively to their umwelts. This may possibly provide an answer to the mystery of intelligence and of self-organization.

· In order to adjust oscillations, complex animals must undergo comprehensive periods of damage and repair where oscillations are filtered; the used are reinforced while the disused are mutated blindly. This may explain sleep; it’s for comprehensive repair.

· I further guess that the establishment of the biological Self that is to be organized occurs through dreaming. Dreaming must be a form of internal epistolution where the information coming from the umwelt is largely silenced, and use and disuse comes from internal interactions. Waking epistevolves life with respect to the umwelt, while dreaming epistevolves life with respect to the genome and the Self. This may be how multicellular Selves achieve disparate yet coordinated development into many cell types despite possessing a common genome.

How (perhaps) to test this idea empirically

A test separating the influence of the umwelt from upward genetic causation in living biological organisms is impossible; every cell on earth results from a combination of both. But if we postulate that all organisms are self-organized by networks of critical oscillators, this idea might be possible to test using software modeling matrices of oscillators placed in virtual worlds and subjected to problem-solving challenges.

Could a network of oscillators show any of the properties of general intelligence? Could it persist despite internal stochasticity? Could it adapt to new conditions without natural selection? Could it learn or remember anything? Could it recover function when damaged? In our lab at TalkingOctopus [1], we designed a Python program based on this approach, and posted the open-source code to GitHub [2]. We built a matrix of oscillators connected as a network, put them into a virtual body, then allowed this cognitive Self inputs and outputs into a virtual world following a set of published steps [3] (See References below).

In each cell-graph of our program, we created a matrix of nodes, each of which were assigned a random number of outgoing unidirectional edges connecting to other nodes. The destination nodes were randomly selected from the overall list of nodes, with the only rule being that a node could not connect to itself. Each node had several properties: a “level” which was the current amount of charge contained by the node at any point in time, an “endo” which was the amount by which the node’s charge increased endogenously on each update cycle, and a “size” which was the limit beyond which the node would fire, thereby emptying its level back to zero. The level of a node could not decrease below zero. The edges had two properties: a “weight” which was the amount of charge the edge would transport to another node, and a “length” which was the number of update cycles it would require to deposit each charge in the recipient node. The weight property of the edges could either be positive or slightly negative, since neurons can excite or inhibit one another. The endo property of each node meant that each node would fire itself on a regular schedule even if there were no incoming charges from the connected edges. This means that each node was an oscillator with its own endogenous rhythm, but its rhythm could be accelerated or slowed by the behavior of the connected nodes throughout the network. This arrangement guaranteed that any node firing could possibly have an eventual effect, either quickening or slowing, on the rhythms of all the other nodes.

This data structure was then used as the “nervous system” of a rendering of a very simple artificial body. Some nodes were assigned the status of “input nodes.” These nodes were connected in the same manner as other nodes, but also took input from a Boolean value that was assigned a location on the artificial body or in its vicinity as a sensor. When the sensor was contacted by the wall of the maze in the virtual environment, it changed from False to True, and sent a charge of a predetermined amount to the input node. These Boolean values were a way of giving external stimuli to the cell-graph from interaction with a virtual umwelt. Other nodes were assigned the status of “output nodes.” These nodes were likewise connected to other nodes, but also to a Boolean value assigned a location on the artificial body as a “cilia.” This Boolean would then convert to True and activate a directional vector that moved the cell body in its environment. When an output node fired, it sent charges along the outgoing edges as well as activating the cilia. This arrangement was a way of allowing the internal firing of the cell-graph to cause motor action. Notably, the input nodes had both endos and incoming edges, meaning that they could fire without external stimulation as well as with it. This meant that the cell-graph could both sense contact points with its umwelt and also could create the same reaction without external stimulus. In other words, it could produce a form of quasi-hallucination or “dreaming.”

This was the basic design of the cell-graphs in our virtual world. The initial settings of the graphs including sizes and endos of the nodes, along with the origins, destinations, lengths, and weights of the edges were randomly selected according to the ranges listed below (Fig.2). All blind selections of integers used to assign values to these parameters were pseudo-random choices provided by the randint function in Python 3.10.

The next step was to design the three phases of activity: dream, wake, and sleep. A “cycle” was considered the software operation that updated the entire program rendering by one step, including for example advancing all the charges by one along the length of their edges, adding the endo of each node to its level, and firing the nodes that were full, as well as changing the location of the virtual body in the umwelt by the degree of relative motion specified by the size and direction of the output vectors adjusted by a friction coefficient. The wake periods were configured as sets of cycles in which the cell-graph moved and the inputs and outputs were active along with the internal dynamics of the cell-graph. The dream periods were sets of cycles in which the cell-graph was immobile and the inputs and outputs were suspended, although the internal dynamics of the graph were still live, producing quasi-hallucinations.

So how does this mechanism described above test the epistolution formula? In order to model epistolution, the matrix must be updated periodically by reinforcing used nodes and blindly mutating used nodes. To model this, each node was also assigned a property called “damage,” a score which increased by one each time the node fired during a wake or dream period. These wake and dream periods were many cycles long, however the sleep periods were only one cycle in length. During each sleep period, a certain number of nodes were selected to be remade blindly from scratch. This sleep period was designed to mimic either a) blind variation, random mutation where random nodes were remade, or b) epistolution, where the nodes with the lowest damage score (disused nodes) were remade.

These two alternative sleep behaviors in the cell-graphs constitute the crucial test of the theory above. If life is self-organized according to the epistolution formula (if used: reinforce; else if disused: mutate blindly), it should be possible to render problem-solving behavior in these graphs by selecting disused rather than random nodes for mutation. I coined names for these two alternatives: cell-graphs that remake disused nodes during sleep are epistevolvers, and those that remake randomly selected nodes are blindvariers.

In order to demonstrate self-organization, it was necessary to train these cell-graphs on some functional task within their umwelt. Neither cell-graph type contained any genetic material per se, but the configuration of the graph itself could be considered a set of inherited traits. This suggested a further set of alternatives. Cell-graphs could be given a goal function (a desired state to achieve) within the umwelt, and naturally selected for success or failure in achieving this goal. A newly created graph should have different functional properties from a graph selected based on performance to a goal standard. I coined four more terms to describe this difference. A stryver is an epistevolver that has been naturally selected over many generations for a goal function, while a stynker is an epistevolver that has been randomly created. A widget is a blindvarier that has likewise been naturally selected for a goal function, while a neophyte is a blindvarier that has been randomly created. This new terminology hopefully allows for discussion of the characteristics of these data structures without too much confusion about how they came about.

Experiments

These methods set the stage for the five types of experiment we intended to conduct. These experiments were called the Two Tank Tests, because each involved a set of cell-graphs in virtual maze so simple it looks a two-dimensional tank, and each experiment contrasts two styles of cell-graph behavior. The first experiment, called the SW (“stryvers vs. widgets”) test, intended to establish whether or not a cell-graph of oscillators could hold any functional knowledge at all, and whether epistolution aided or hindered that evolutionary learning process.

Test 1. For this test, the program was set up so that two stynkers were blindly created at the center point of the tank at the beginning of each game. The program was set to remake disused nodes. As the sleep cycles remade nodes on each bout of sleep, the behavior of the two stynkers diverged. If one of them contacted the “win” zone at the upper lefthand side of the maze, the game was restarted, and this time all the settings (connections, weights, lengths, locations of charges) of the winning stynker were used for both new stynkers. If one of the stynkers contacted the “lose” zone at the lower righthand side of the maze, the game was restarted and all the settings of the non-losing stynker were used for both new stynkers. This was a form of natural selection among stynkers for solving the problem of the maze. By naturally selecting stynkers in this manner, in theory we can turn the stynkers into stryvers. A stryver is an epistevolver that has been naturally selected to solve a particular type of problem. In theory, all organisms are stryvers.

The maze is designed such that given completely random movements, a stynker should be equally likely to arrive in the winning zone as to arrive in the losing zone. The measurement of whether the test is working to select the stynkers, and turn them into stryvers, is the win/lose ratio. If the test is repeated many hundreds or thousands of times and the win/lose ratio can be shown to consistently diverge from 1 (showing significantly more wins than losses,) then it demonstrates the accumulation of a form of knowledge in a matrix of oscillators. This is admittedly not a very impressive form of knowledge, but it is a simple proof of concept.

The second part of the SW test is to run the same procedure, with all the parameters exactly the same (except for the random selection of integers in the making and sleep cycle of the stynkers) changing only the selection of nodes to remake during sleep. In this second version, nodes are selected randomly rather than according to disuse. This means that instead of epistevolvers, these cell-graphs were blindvariers. By selecting blindvariers for performance on the maze, in theory we should produce widgets. The question being asked in this test is whether a cell-graph can hold knowledge of how to solve a maze at all, and if so, whether an epistevolver evolves more quickly into a stryver than a blindvarier evolves into a widget with equal “skill” at solving the maze.

Test 2. The second experiment was the PS (“persistence”) test, designed to determine how knowledge gained through natural selection in stryvers or widgets could persist given internal stochasticity. The PS test begins with a stryver selected from the end of the last game of the SW test, and simply runs it in the same game over and over without any selection. The stryver does sleep, and it does epistevolve, but it is never selected again. Each time it wins or loses it starts the game again. The outcome of this part of the test is measured by the win/lose rate of the stryver, and whether it improves or degrades from the win/lose rate it had achieved over the course of the SW test. If it maintained or improved its knowledge base, that is a significant finding.

The second part of the PS test was to begin the same game with a widget that had been selected at the end of the SW test. Likewise, the widget does sleep and it does blindvary, but is never selected again as it plays the game over and over. It simply starts each new game with the same configurations over and over again. The outcome of this part of the test is also measured by the win/loss ratio. The widget should not maintain its function, but rather degrade, since its nodes are randomly selected to be remade during sleep. I can think of no reason why the knowledge embodied in this widget should persist given this internal stochasticity, but I conjecture that the stryver will perform more robustly.

This test should in theory show that epistolution is a different and more robust way to gain and embody knowledge. Knowledge gained from natural selection alone should be more fragile, when random parts of the graph are disrupted, function should quickly decline. In principle no amount of epistolution, on the other hand, should diminish the knowledge embodied in the stryver. Forgetting in a stryver such as ourselves should aid function, not destroy it.

Test 3. The RL (“real life”) test was designed to test if stryvers or widgets could better cope with a novel umwelt. The test begins in the same fashion as the PS test, but instead of allowing the stryver to continue to epistevolve as the game repeats, it begins each game with the same stryver or widget that was drawn from the end of the SW test. This RL test simply measures the performance of the stryver vs. the performance of the widget when a significant aspect of the environment changes, for example the configuration of the maze. This game could be repeated over and over with the same initial stryver or the same initial widget, but varying the maze, or the friction coefficient, or some other salient feature of the problem to be solved.

The RL test is “realistic” because a large part of the problem of general intelligence consists in how organisms can cope so readily with radical changes in our umwelts. As Michael Levin once suggested in one of his lectures, a cell can deal with say, a nutrient gradient challenge in many ways. It can evolve to move along the gradient, or it can evolve to use another energy source, or it can evolve to harvest the energy source more efficiently, and so on. Life is not constrained to solving a problem in a particular way, and organisms often use their creativity to. Change strategies. William James once defined intelligence as pursuing “fixed ends by varying means.” A human, evolved to solve the problem of small group hunter-gatherer life on the African savanna, can nevertheless become a deep-sea explorer, a miner, an astronaut, etc. Many other species also have impressive behavioral plasticity. This is the feature of epistolution, if results confirm it, that most clearly distinguishes the upward causation form of knowledge, which is narrow intelligence shaped to solve a particular challenge, from downward-caused general intelligence.

Test 4. The DA (“digital amputation”) test was meant to determine if stryvers or widgets could regenerate function when some nodes were amputated. In this test, a percentage of the nodes were removed after training a stryver for many generations. Then the stryvers performance was measured, and measured again as naïve nodes were added back in through subsequent cycles of regeneration until the original number of nodes was re-attained.

Test 5. The PE (“pure epistolution”) test just looked for rhythmic anticipation in stynkers as compared with neophytes, to try to experimentally isolate what properties epistolution was providing that blindvarying was not. A stynker was subjected to a varying environment and its behavior measured against the behavior of a blindvarier. The expectation was that a stynker could absorb and adapt to some of the variation in the environment in a way that the blindvarier could not.

Specific Results

A Python program has just been completed by TalkingOctopus and can be found at the GitHub link below. We invite collaborators to download this program and attempt to generate compelling new results that may give insight into the problem of general intelligence.

We have not reached a conclusion yet.

References.

1. Munford, C.S. TalkingOctopus. 2021; Available from: https://www.talkingoctopus.com/.

2. Lopez, H.a.M., C.S. Stynker. 2022; Available from: https://github.com/hec10r/stynker.

3. Munford, C.S. Epistolution from the Bottom Up. 2022; Available from: https://docs.google.com/presentation/d/1lPT1K4brKuESgpu0VtIEh7FJjsbhTLckmLQHVyb0cuc/edit#slide=id.g12ddad3940e_0_1790.

--

--

Charlie Munford

Charlie Munford is a writer based in New Orleans who explores the meaning of living systems and the boundaries of our ecological knowledge.