1
2
3
4
5
6
7
8
9
10
11
12
2. Give all the nodes a “level” of 0. That’s how much juice is in each cup.
1
2
3
4
5
6
7
8
9
10
11
12
NODE
1
2
3
4
5
6
7
8
9
10
11
12
LEVEL
0
0
0
0
0
0
0
0
0
0
0
0
3. Give all the nodes a “damage” of 0. This is how many times the cup has spilled all its juice since the program began running
1
2
3
4
5
6
7
8
9
10
11
12
NODE | LEVEL | DAMAGE |
1 | 0 | 0 |
2 | 0 | 0 |
3 | 0 | 0 |
4 | 0 | 0 |
5 | 0 | 0 |
6 | 0 | 0 |
7 | 0 | 0 |
8 | 0 | 0 |
9 | 0 | 0 |
10 | 0 | 0 |
11 | 0 | 0 |
12 | 0 | 0 |
4. Give each node a random “size” of 10-20. This number represents the capacity when the cup spills over
NODE | SIZE | | LEVEL | DAMAG |
1 | 11 | | 0 | 0 |
2 | 13 | | 0 | 0 |
3 | 19 | | 0 | 0 |
4 | 20 | | 0 | 0 |
5 | 17 | | 0 | 0 |
6 | 13 | | 0 | 0 |
7 | 15 | | 0 | 0 |
8 | 15 | | 0 | 0 |
9 | 18 | | 0 | 0 |
10 | 12 | | 0 | 0 |
11 | 15 | | 0 | 0 |
12 | 10 | | 0 | 0 |
1
2
3
4
5
6
7
8
9
10
11
12
5. Give each node a random “endo” of 1, 2, or 3. This is how much juice the cup creates each cycle, an “endogenous rhythm”
NODE | SIZE | ENDO | LEVEL | DAMAG |
1 | 11 | 1 | 0 | 0 |
2 | 13 | 1 | 0 | 0 |
3 | 19 | 3 | 0 | 0 |
4 | 20 | 2 | 0 | 0 |
5 | 17 | 3 | 0 | 0 |
6 | 13 | 1 | 0 | 0 |
7 | 15 | 1 | 0 | 0 |
8 | 15 | 2 | 0 | 0 |
9 | 18 | 1 | 0 | 0 |
10 | 12 | 3 | 0 | 0 |
11 | 15 | 2 | 0 | 0 |
12 | 10 | 3 | 0 | 0 |
1
2
3
4
5
6
7
8
9
10
11
12
6. Let’s focus on nodes 2, 5, 8, and 11
NODE 2
Size 13
Endo 1
NODE 5
Size 17
Endo 3
NODE 11
Size 15
Endo 2
NODE 8
Size 15
Endo 2
7. Just to initialize a simple example, let’s give each node a random number of outgoing edges 1-3 and make sure each node has 1-3 incoming edges. Later we will build a way to specify edge creation parameters. Imagine these edges as trickles of juice that transfer to another cup some time after a cup spills.
NODE 2
Size 13
Endo 1
NODE 5
Size 17
Endo 3
NODE 11
Size 15
Endo 2
NODE 8
Size 15
Endo 2
B
A
G
F
C
D
E
8. Give each edge a random “weight” of 1, 2, or 3. This is how much juice it carries each time it trickles
NODE 2
Size 13
Endo 1
NODE 5
Size 17
Endo 3
NODE 11
Size 15
Endo 2
NODE 8
Size 15
Endo 2
B
A
G
F
C
D
E
EDGE | WEIGHT | |
A | 1 | |
B | 1 | |
C | 2 | |
D | 3 | |
E | 1 | |
F | 1 | |
G | 3 | |
9. Give each edge a random “length” of 1, 2, or 3; this is how many cycles it takes for a trickle of juice to travel down this edge and arrive at the receiving cup.
NODE 2
Size 13
Endo 1
NODE 5
Size 17
Endo 3
NODE 11
Size 15
Endo 2
NODE 8
Size 15
Endo 2
B
A
G
F
C
D
E
EDGE | WEIGHT | LENGTH |
A | 1 | 2 |
B | 1 | 1 |
C | 2 | 1 |
D | 3 | 2 |
E | 1 | 1 |
F | 1 | 3 |
G | 3 | 1 |
10. Now it’s time to start our program. Epistolution has three sorts of “periods:” “dream,” “wake” and “sleep.” Since there are no inputs or outputs right now this is called a “dream period.” A dream period is made up of many cycles.
NODE 2
Size 13
Endo 1
NODE 5
Size 17
Endo 3
NODE 11
Size 15
Endo 2
NODE 8
Size 15
Endo 2
B
A
G
F
C
D
E
Cycle Level
0
Cycle Level
0
Cycle Level
0
Cycle Level
0
11. First we add the “endo” to each node. The “level” goes up by the amount of the “endo” in each node.
NODE 2
Size 13
Endo 1
NODE 5
Size 17
Endo 3
NODE 11
Size 15
Endo 2
NODE 8
Size 15
Endo 2
B
A
G
F
C
D
E
Cycle Level
1 1
Cycle Level
1 3
Cycle Level
1 2
Cycle Level
1 2
12. Now we ask to see if any of the nodes have reached the level at which they spill, i.e. their “size.” None of them have, so we repeat another cycle.
NODE 2
Size 13
Endo 1
NODE 5
Size 17
Endo 3
NODE 11
Size 15
Endo 2
NODE 8
Size 15
Endo 2
B
A
G
F
C
D
E
Cycle Level
1 1
2 2
Cycle Level
1 3
2 6
Cycle Level
1 2
2 4
Cycle Level
1 2
2 4
13. We keep running the cycles until the “level” of a node equals or exceeds its “size.” As you can see from this chart, on the first five cycles nothing happens. After cycle 6, node 5 has filled. Now it’s time to spill a cup.
NODE 2
Size 13
Endo 1
NODE 5
Size 17
Endo 3
NODE 11
Size 15
Endo 2
NODE 8
Size 15
Endo 2
B
A
G
F
C
D
E
Cycle Level
1 1
2 2
3 3
4 4
5 5
6 6
Cycle Level
1 3
2 6
3 9
4 12
5 15
6 18
Cycle Level
1 2
2 4
3 6
4 8
5 10
6 12
Cycle Level
1 2
2 4�3 6
4 8
5 10
6 12
14. When node 5 spills, each of its outgoing edges takes a trickle of juice the size of the “weight” of the edge. Don’t worry that these weights do not equal the “size” of the node. The “level” of node 5 goes to 0, the “damage” goes to 1.
NODE 2
Size 13
Endo 1
Dam 0
NODE 5
Size 17
Endo 3
Dam 1
NODE 11
Size 15
Endo 2
Dam 0
NODE 8
Size 15
Endo 2
Dam 0
B
A
G
F
C
D
E
Cycle Level
6 6
Cycle Level
6 0
Cycle Level
6 12
Cycle Level
6 12
Edge Weight Length
A 1 2
B 1 1
C 2 1
D 3 2
E 1 1
F 1 3
G 3 1
15. Now the 3 edges coming out of node 5 are carrying a trickle of juice. Edge D is carrying a trickle of “weight” 3 that will take 2 cycles to arrive. Edge E is carrying a trickle of “weight” 1 that will take 1 cycle to arrive. Edge F is carrying a trickle of “weight” 1 that will take 3 cycles to arrive.
NODE 2
Size 13
Endo 1
Dam 0
NODE 5
Size 17
Endo 3
Dam 1
NODE 11
Size 15
Endo 2
Dam 0
NODE 8
Size 15
Endo 2
Dam 0
B
A
G
F
C
D
E
Cycle Level
6 6
Cycle Level
6 0
Cycle Level
6 12
Cycle Level
6 12
Trickles in Progress
Edge Weight Cycle
D 3 8
E 1 7
F 1 9
16. Now let’s watch what happens in cycle 7. First, we add the “endo” to each node as before. This does not trigger any spills, because each node “level” is still below its “size.”
NODE 2
Size 13
Endo 1
Dam 0
NODE 5
Size 17
Endo 3
Dam 1
NODE 11
Size 15
Endo 2
Dam 0
NODE 8
Size 15
Endo 2
Dam 0
B
A
G
F
C
D
E
Cycle Level
6 6
7 7
Cycle Level
6 0
7 3
Cycle Level
6 12
7 14
Cycle Level
6 12
7 14
Trickles in Progress
Edge Weight Cycle
D 3 8
E 1 7
F 1 9
17. Now let’s check to see if any of the trickles have arrived at a node. Edge E was carrying a trickle of “weight” 1 to node 11, and it only took 1 cycle to arrive, so on cycle 7, the “level” of node 11 will go up to 15, which happens to equal its “size.” This means that node 11 will spill on cycle 7
NODE 2
Size 13
Endo 1
Dam 0
NODE 5
Size 17
Endo 3
Dam 1
NODE 11
Size 15
Endo 2
Dam 0
NODE 8
Size 15
Endo 2
Dam 0
B
A
G
F
C
D
E
Cycle Level
6 6
7 7
Cycle Level
6 0
7 3
Cycle Level
6 12
7 14
Cycle Level
6 12
7 15
Trickles in Progress
Edge Weight Cycle
D 3 8
E 1 7
F 1 9
18. When node 11 spills on cycle 7, its “level” goes to 0 and its damage increases to 1. Edge A carries a trickle from node 11 to node 2 which will take 2 cycles to arrive. We have now completed cycle 7.
NODE 2
Size 13
Endo 1
Dam 0
NODE 5
Size 17
Endo 3
Dam 1
NODE 11
Size 15
Endo 2
Dam 1
NODE 8
Size 15
Endo 2
Dam 0
B
A
G
F
C
D
E
Cycle Level
6 6
7 7
Cycle Level
6 0
7 3
Cycle Level
6 12
7 14
Cycle Level
6 12
7 0
Trickles in Progress
Edge Weight Cycle
D 3 8
F 1 9
A 1 9
19. Cycle 8 begins with increasing the “levels” by the “endos.” When we do this we find that the “level” in node 8 has risen past its “size,” so it is ready to spill. We drop the “level” of node 8 to 0, and we increase the “damage” by 1.
NODE 2
Size 13
Endo 1
Dam 0
NODE 5
Size 17
Endo 3
Dam 1
NODE 11
Size 15
Endo 2
Dam 1
NODE 8
Size 15
Endo 2
Dam 0
B
A
G
F
C
D
E
Cycle Level
6 6
7 7
8 8
Cycle Level
6 0
7 3
8 6
Cycle Level
6 12
7 14
8 16
Cycle Level
6 12
7 0
8 2
Trickles in Progress
Edge Weight Cycle
D 3 8
F 1 9
A 1 9
20. The spill of node 8 gives edge G a trickle of “weight” 3 that will arrive at node 5 on cycle 9, because the “length” of edge G is 1 cycle.
NODE 2
Size 13
Endo 1
Dam 0
NODE 5
Size 17
Endo 3
Dam 1
NODE 11
Size 15
Endo 2
Dam 1
NODE 8
Size 15
Endo 2
Dam 1
B
A
G
F
C
D
E
Cycle Level
6 6
7 7
8 8
Cycle Level
6 0
7 3
8 6
Cycle Level
6 12
7 14
8 0
Cycle Level
6 12
7 0
8 2
Trickles in Progress
Edge Weight Cycle
D 3 8
F 1 9
A 1 9
G 3 9
21. Now we check the list of edges to see if any of the trickles arrive at their destinations on cycle 8, and we see that edge D carries a trickle that arrives at node 2. This increases the “level” of node 2 to 11.
NODE 2
Size 13
Endo 1
Dam 0
NODE 5
Size 17
Endo 3
Dam 1
NODE 11
Size 15
Endo 2
Dam 1
NODE 8
Size 15
Endo 2
Dam 1
B
A
G
F
C
D
E
Cycle Level
6 6
7 7
8 11
Cycle Level
6 0
7 3
8 6
Cycle Level
6 12
7 14
8 0
Cycle Level
6 12
7 0
8 2
Trickles in Progress
Edge Weight Cycle
D 3 8
F 1 9
A 1 9
G 3 9
22. Now we have done enough cycles to see what steps are in each dream period cycle. These are the steps:
23. Now we notice that one of these node properties, the “damage,” has done nothing so far but increment each time a node spills. What is this property for? Let’s run the program for 7 more cycles until we are at the end of cycle 15. At this point all the nodes have spilled twice except for node 2, which has only spilled once. So node 2 has the lowest “damage” score at 1. Now let’s do a new process. The previous process was called a “dream period.” This process is called “sleep.”
NODE 2
Size 13
Endo 1
Dam 1
NODE 5
Size 17
Endo 3
Dam 2
NODE 11
Size 15
Endo 2
Dam 2
NODE 8
Size 15
Endo 2
Dam 2
B
A
G
F
C
D
E
Cycle Level
15 9
Cycle Level
15 15
Cycle Level
15 2
Cycle Level
15 2
24. In sleep we sort the list of nodes by “damage” score and pick a few of the lowest scoring nodes to remake. Let’s make node 2 all over again.
The steps for making a node are a) give it a new random size from 10-20, b) give it a new random “endo” from 1-3, c) give it a new random set of 1-3 incoming edges with “weights” from 1-3 and “lengths” from 1-3, and d) give it a new random set of 1-3 outgoing edges with “weights” from 1-3 and “lengths” from 1-3. The sources and destinations of these new edges are all random.
NODE 2
Size 13
Endo 1
NODE 5
Size 17
Endo 3
NODE 11
Size 15
Endo 2
NODE 8
Size 15
Endo 2
B
A
G
F
C
D
E
NODE 2
Size 17
Endo 3
NODE 5
Size 17
Endo 3
NODE 11
Size 15
Endo 2
NODE 8
Size 15
Endo 2
Z
G
F
Y
E
X
Edge Weight Length
E 1 1
F 1 3
G 3 1
W 2 2
X 3 1
Y 1 2
Z 3 2
W
25. See below:
NODE 2
Size 17
Endo 3
NODE 5
Size 17
Endo 3
NODE 11
Size 15
Endo 2
NODE 8
Size 15
Endo 2
Z
G
F
Y
E
X
W
26. At the end of this sleep period, our graph looks like this:
27. We have now have run a “dream period” and we have run a “sleep period.” It’s time to add some inputs and outputs so we can run a “wake period.” Remember that at the beginning we made this a 12 node graph? Here is our graph at this point, after the first sleep period.
1
2
3
4
5
6
7
8
10
11
12
9
28. Now we are going to complete the graph by making each empty node a real node.
The steps for making a node are a) give it a new random size from 10-20, b) give it a new random “endo” from 1-3, c) give it a new random set of 1-3 incoming edges with random “weights” from 1-3 and random “lengths” from 1-3, and d) give it a new set of 1-3 outgoing edges with random “weights” from 1-3 and random “lengths” from 1-3.
The number of new edges, and the properties and sources and destinations of these new edges are all supposed to be random:
29. The graph now looks something like this:
1
2
3
4
5
6
7
8
10
11
12
9
30. Now we are going to make nodes 10 and 3 “input nodes,” because they are connected to inputs. Lets represent the inputs like this, as a boolean value of T or F. The input default position is F, but if it is triggered, it becomes T. Now, during the next wake period cycle, we will add a step to check the inputs for T values. If we find a T in the inputs, we increase the “level” in the corresponding input node by 10. Sometimes that will be enough to make that node spill.
1
2
3
4
5
6
7
8
10
11
12
9
F
F
IN
IN
31. Now let’s make nodes 4 and 9 output nodes. Just like the input nodes, they are each connected to an output that is represented by a boolean value T or F. The default position of an output is F. An output node is different from a regular node in only one way; when it spills, it flips the output to T for one cycle. On the next cycle after that, the output returns to F.
2
3
4
5
7
8
10
9
F
F
F
F
11
12
1
IN
OUT
OUT
IN
32. Now let’s go over the steps of a wake period cycle. Remember the steps of a dream period cycle were:
Now we add:
33. Now that we have all the nodes made and the inputs and outputs connects to the ring graph, let’s use this program to learn something.
The purpose of epistolution is to synchronize oscillators with a subjective environment, or “umwelt”. So let’s embody this graph as a single cell in the very simple environment of a small box. The cell below has two kicking cilia, two for node 4 and two for node 9. At this point, we will need to pick out a virtual world in which to embody our program
Possible virtual environments
matplot (simplest)
alien-project.org
Unity 3D (maybe overpowered)
Reactorlab.net
Insightmaker.com
NetLogo
Unreal Engine (def overkill?)
9
9
4
4
34. These cilia kick if the output switches to T, moving itself. Let’s say the the only physics we need here are just a steady momentum from kicking, and some slight gravity. If the output from node 9 fires, the cell moves to the right.
9
9
4
4
9
9
4
4
35. If the cell hits the wall of its environment with the pink sensor, it triggers an input T at input node 3, and if it makes contact with the purple sensor, it triggers an input T at node 10.
9
9
4
4
9
9
4
4
Input node 3 fires with impact at pink sensor
36. This example has now shown how to embody the 12-node graph in a virtual body in a virtual umwelt. I call this graph-cell a “stynker” for “sync” and “think” together.
We can now imagine that we have let the program run for a while in wake period moving around and impacting the sensors while the nodes accumulate damage scores, then the body freezes while it runs for a while in dream period with no inputs or outputs, then it sleeps for a sleep cycle. As it does this, it should begin to demonstrate rhythmic anticipation, which constitutes a causal knowledge of this virtual world where it lives.
At this point, though, we have not provided any test for its awareness of its surroundings. We need a test to demonstrate that this matrix of oscillators can hold useful biological knowledge. To do this we must develop a system to train the cell. To do this, we will simulate early evolution in the Two Tank Test.
37. The graph, the artificial body, and the virtual umwelt we just built were so incredibly simple they will almost certainly not look very smart no matter how long we run them. In order to show any real intelligence, we will have to make this data structure much, much larger.
If your intuition is still failing you at this point, don’t feel bad; epistolution makes very little sense from the bottom up. It’s only really visible from the top down. But this program must be built step by step, from simple to complex. So let’s specify the types of changes we will need to scale this up.
A human body has at a minimum 80 billion oscillators, maybe 10 billion inputs and 4 billion outputs, and runs for about 3 years in a very specific real-world human umwelt before it can carry on any sort of conversation. This is the level of complexity at which something that resembles human intelligence would emerge. But since we now have the steps established, we can build up towards that complexity step by step by scaling up this program
38. We will need a dashboard in our program that will allow us to manually tweak many of the basic parameters of the graph.
39. We will need a dashboard in our program to control number of cycles (mentioned in slide 38.i.)
In the wake period when the stynkers are moving around and sensing the virtual world, the whole cycle of updates to the graph needs to run in sync with the updates to the virtual world, so that “game time” remains constant for the stynker. In other words, its movements need to stay in sync with the differences it is expecting in its virtual world, so it can begin to anticipate those differences. This may limit the number of nodes per stynker, but I’m not sure.
I think we want longer wake periods than dream periods, but I could be wrong. Maybe 10k wake cycles to 5k dream cycles, then a sleep? We may want to tweak this to mix the cycles in a different way, like wake-dream-sleep, or wake-sleep-dream-sleep. The sleep cycle only needs to run once before commencing the next wake or dream period because it instantly repairs all the damage scores. .
40. A note on nomenclature:
A cell-graph refers to the underlying matrix of oscillators and their exact config
An umwelt is the virtual world seen from the point of view of the cell-graph
An epistevolver is the entire virtual organism, including its umwelt. All epistevolvers remake disused nodes and/or reinforce used nodes during sleep
There are two types of epistevolvers:
A stynker is an epistevolver that has been randomly made, then trained on its environment through epistolution only
A stryver is an epistevolver that has been trained on its umwelt through epistolution, but also naturally selected through evolution
A blindvarier is not an epistevolver; it remakes random nodes during sleep
There are two types of blindvariers:
A neophyte is a blindvarier that has been randomly made
A widget is a blindvarier that has been naturally selected through evolution
41. Now we will need to configure the virtual world in which we will put the stynkers. Tests of intelligence currently test goal-seeking behavior, but general intelligence is more than goal-seeking; it is the development of new goals in response to changes in the umwelt. So these five tests will try to separate these two things clearly and develop their implications step by step. The first Two Tank Test, “SW,” will only demonstrate that:
Theorem A: knowledge about an umwelt can be stored in the configuration of a network of oscillators
Theorem B: the epistolution formula (if used, reinforce; else if disused, mutate) provides a more effective way to gain that knowledge than random mutations
(Note: Confirming theorems does not prove that they are true, just that they are possible. Ideas cannot be proved right, only refuted. Our current paradigm of biology is already refuted; this research is guessing at a better one.)
42. This is the architecture of the Two Tank Tests: lets say each cell has 2000 nodes with like 10-30 edges each, and four kicking output cilia and four “touch” input sensors. It also has eight “sight” input sensors. The sight sensors trigger when they hit something without stopping momentum, so the cell can “see.” It is important to understand that the graph is simply mapped to the inputs and outputs of this object, not embedded in it.
43. There are four cells, two in each tank. The physics of the tank include contact and momentum but no gravity.
44. Let’s make each tank into a very simple maze.
WIN
LOSE
WIN
LOSE
45. Now we will create some logic for the first test. This test is called “Stryvers v. Widgets”. Each tank has a win gate and a lose gate. The cell which hits the win gate clones, the other dies. The cell which hits the lose gate dies, the other clones. Right now both tanks cells are stynkers. When stynkers are naturally selected like this it adds upward causation and makes them into “stryvers” (epistevolvers that also evolve).
WIN
LOSE
WIN
LOSE
46. To set up this game first we will need to play with the parameters of vector magnitude, number of nodes, size of nodes, size of endos, number of edges per node, weight and length of edges until the cell behavior is making an interesting pattern that looks “teachable.” Then we need to play with number of cycles of wake and dream before each sleep, and number of nodes remade at sleep, and number of cycles total for the game. Whatever these parameters end up being they are then applied equally to both tanks.
WIN
LOSE
WIN
LOSE
47. Here is how the game works. The cells can bounce off the walls. The two cells are independent; they ignore one another. If one wins, its clone is born in the middle of the tank, replacing the other one. If one loses, it vanishes and the other one’s clone is born in the middle. So we need a logic to clone cells and a logic to destroy them. When a cell is cloned, its two daughter cells begin to diverge in their configurations as they play the game. We also need to turn on logic to see the path they take (thanks H!)
WIN
LOSE
WIN
LOSE
48. So far the two tanks have been the same. Now we will change the left tank. In the left tank, during each sleep cycle, instead of picking unused nodes for remaking, random nodes are picked. This makes the lefthand cells into “blindvariers” instead of stynkers, and now because of the game logic they will be naturally selected and will evolve into widgets. The left tank now demonstrates upward causation only.
WIN
LOSE
WIN
LOSE
49. Now we run this game many times, and keep track of win and lose rates. If win/lose rates consistently improve over time in either tank we have confirmed Theorem A. If the stryver tank improves and also outperforms the widget tank we have also confirmed Theorem B, but if we don’t that’s ok (I don’t know whether epistolution speeds up evolution in static umwelts or not.)
Widget Tank
>upward causation only
>blindvarying; sleep remakes random nodes
>winners and nonlosers clone
Stryver Tank
>upward and downward causation
>epistevolving; sleep remakes disused nodes
>winners and nonlosers clone
WIN
LOSE
WIN
LOSE
50. That was the end of the “Stryvers vs. Widgets (SW)” Test, but this is where it really begins to get interesting. Now that we have trained a lineage of widgets and stryvers, let’s test their coping mechanisms with changes in the umwelt. For this we will need to be able to save the configs of the SW-trained cells for reusing in some new tests.
Widget Tank
>upward causation only
>blindvarying; sleep remakes random nodes
>winners and nonlosers clone
Stryver Tank
>upward and downward causation
>epistevolving; sleep remakes disused nodes
>winners and nonlosers clone
WIN
LOSE
WIN
LOSE
51. The next test is for persistence of the learned behaviors given internal stochasticity. This is called the “Persistence (PS)” Test. For this test we simply halt the natural selection in both tanks and continue to measure the win/lose ratios for many periods. In both tanks, there is no cloning. In both tanks wake, dream and sleep cycles continue as before.
Widget Tank
>upward causation only
>blindvarying; sleep remakes random nodes
>no further cloning
Stryver Tank
>upward and downward causation
>epistevolving; sleep remakes disused nodes
>no further cloning
WIN
LOSE
WIN
LOSE
52. The PS Test should confirm a new theorem.
Theorem C: knowledge gained through epistolution and evolution together can be maintained or enhanced by internal random variation (as long as it follows the epistolution formula), while knowledge gained through evolution alone is degraded by internal random variation
A few other versions of this PS test would be interesting to run. What if we put the stryver config in both tanks but did blindvarying on the left tank and epistolution on the right tank? What if we put widget config in both tanks and did the same?
53. The next test is called the “Real Life (RL)” Test. It tests the learning abilities of a stryver vs. a widget without evolution, in other words, learning to cope within one generation with a novel umwelt. For this test we will start with the evolved cells that we trained during the SW test. Now we add a major umwelt change and compare win/lose ratios. The maze is altered.
Widgets
>trained by x generations of Stv.Bv test
>no longer being naturally selected
>blindvarying; sleep remakes random nodes
>novel umwelt has a new obstacle
Stryvers
>trained by x generations of Stv.Bv test
>no longer being naturally selected
>epistevolving; sleep remakes disused nodes
>novel umwelt has a new obstacle
WIN
LOSE
WIN
LOSE
54. This RL test is the most realistic of all the possible epistolution tests. This gives a direct picture of how an upward-caused life form would cope with changes in its umwelt compared to how an epistevolved life form would cope with those changes. We can imagine a large variety of this RL type of test. I would expect the widgets to lose function and the stryvers to gain or maintain function in this test.
Widgets
>trained by x generations of SW test
>no longer being naturally selected
>blindvarying: random nodes remade on every sleep cycle
>novel umwelt has a new obstacle
Stryvers
>trained by x generations of SW test
>no longer being naturally selected
>epistevolving; disused nodes remade on every sleep cycle
>novel umwelt has a new obstacle
WIN
LOSE
WIN
LOSE
55. The RL Test should confirm a new theorem.
Theorem D: knowledge gained through epistolution and evolution together can better cope with novel umwelts, while knowledge gained through evolution alone loses function in novel unwelts.
To test this thoroughly we should run this on widget configs with and without sleep cycles as well as stryver configs with and without sleep cycles, and on both configs with sleep cycles picking random nodes vs. picking disused nodes.
(Thought experiment: If we manage to confirm this theorem, it is worth asking the question…why? What does the stryver know about its umwelt that allows it to cope with changes? What else could this be but general intelligence? If it passes the RL test, can’t we say that in some sense it knows what a wall is, and what a win gate is? I argue that this shows semantic knowledge.)
56. The next test is called the “Digital Amputation (DA)” Test. In this test we take the SvB trained cells and, instead of changing the umwelt, we change the nodes themselves by “amputating” 10% of the internal (not input or output) nodes and all the in and out edges attached to them. Then on each sleep cycle 1 random node is added until the original number is regained. Compare win/lose ratios. The original maze is restored for this test.
Widgets
>trained by x generations of SW test
>no longer being naturally selected
>blindvarying; sleep remakes random nodes
>10% of nodes removed
>1 node added on each sleep cycle until original number regained
Stryvers
>trained by x generations of SW test
>no longer being naturally selected
>epistevolving; sleep remakes disused nodes
>10% of nodes removed
>1 node added on each sleep cycle until original number regained
WIN
LOSE
WIN
LOSE
57. The DA Test is meant to compare the ability of an upward-caused life form vs. an epistevolved life form to regrow parts of its anatomy and regain function when they are removed or damaged. I expect the stryvers to outperform the widgets in regaining function.
Widgets
>trained by x generations of SW test
>no longer being naturally selected
>blindvarying; sleep remakes random nodes
>10% of nodes removed
>1 node added on each sleep cycle until original number regained
Stryvers
>trained by x generations of SW test
>no longer being naturally selected
>epistevolving; sleep remakes disused nodes
>10% of nodes removed
>1 node added on each sleep cycle until original number regained
WIN
LOSE
WIN
LOSE
58. The DA Test should confirm a fifth theorem.
Theorem E: knowledge gained through epistolution and evolution together can regenerate spontaneously, while knowledge gained through evolution alone loses function after amputation.
To test this thoroughly we should also run this on widget configs with and without sleep cycles as well as stryver configs with and without sleep cycles, and on both configs with sleep cycles picking random nodes vs. picking disused nodes.
59. The next test is called the “Pure Epistolution (PE)” Test. Now that we have played a bit with epistevolvers and compared their performance with blindvariers, it is time to get back to basics and look directly at epistolution without mixing it with upward causation at all. This test has no win or lose, and only two cells.
Neophyte
>not trained at all, just randomly built
Stynker
>not trained at all, just randomly built
60. The PE test just looks directly for rhythmic anticipatory behavior without an obvious goal. This is pure creativity with no evolved purpose to it. To test for this, we have to introduce a rhythmic change to the umwelt and let the cells just play with it for a long time. We will put a moving wall in the tank that slides up and down in rhythm.
Neophyte
>not trained at all, just randomly built
>blindvarying; sleep remakes random nodes
Stynker
>not trained at all, just randomly built
>epistevolving; sleep remakes disused nodes
61. The only difference in these two tanks is that the neophyte on the left remakes random nodes but the stynker on the right follows epistolution and remakes the unused nodes. I expect the right-hand stynker to exhibit more purposeful and rhythmically synchronous behavior. Thats pure epistolution.
Neophyte
>not trained at all, just randomly built
>blindvarying; sleep remakes random nodes
Stynker
>not trained at all, just randomly built
>epistevolving; sleep remakes disused nodes
62. The PE Test should confirm a sixth theorem:
Theorem F: epistolution causes a rhythmic anticipation of the changes in the umwelt, and this is the independent mechanism of biological self-organization.
By “independent” here I mean independent of evolution. It should be unnecessary to recapitulate evolution to induce general intelligence; all that is required in principle is a large enough set of oscillators and the right connections to an umwelt. This test shows that goal-oriented behavior and epistolution (self-organization) are separable.
Since all organisms in nature are self-organized, this test suggests that all the units of Darwinian selection in nature have been epistevolvers, and that they all have possessed general intelligence.
63. One last thought.
If epistevolvers can pass all these tests, it means that they are both information storage units and knowledge creators. Since these digital epistevolvers can be copied exactly and transmitted, they are, like genes and symbols, templates. Previously, all creative enterprises used templates but were not templates themselves, so their additive properties are not the same as templates. The combination of these properties has never before been united in the history of the earth. That means that a further dimension of knowledge has been embodied by epistevolvers. In other words, the quantum leap of information transmission from templated genes into templated symbols that was accomplished with the printing press, has potentially been accomplished again, in a sense, by templating the template creators. If this epistolution test works, knowledge creators can be templated. That is potentially a big deal.
64. The End.
So, if we follow all the above instructions, we have built simulations of and tests for epistolution. This means we will be able to test the best explanation for life that has been invented yet. If it works, we will change the world for the better in a major way! Hopefully, by the time we get to this stage in the slides we will also have developed an open-source platform for everyone to share in this fascinating experimental journey into the logic of life!