Clair de Lune

Given that my work on A.I. has started to intersect quite a bit with my work in the arts, I thought I’d share a piece I just finished, “Clair de Lune”. It’s based upon the piece by the same name by Gabriel Fauré, though I’ve completely reimagined the piece, placing it in a truly modern context, complete with synthesizers and electronic drums, though I actually played the drum part on an electronic kit. The result is a cinematic sounding piece, which is typical of my music, but this is a really strange final product, that I’m proud to say, doesn’t sound much like anything else I’m familiar with.

La clair de lune –

La clair de lune,
Sur la mer,
Est la langue de mon mère.

A Second Thought on Computation, and Time

In the note below, I discussed what I believe to be a rather shocking observation, that the interjection of previously unknown information could literally change the path of time itself, for the simple reason that, without the unknown information, the states where that information is known are inaccessible. In short, if something was impossible to know ex ante, but was then spontaneously discovered, that shock of information could fundamentally change the path of literally everything through time.

I’ve been doing some follow up work on stable systems, which lives at the intersection of my work on A.I. and physics, and I’ve realized that information shocks are actually a common phenomenon that are already studied, but they’re not described as such.

In my model of physics, there’s no real difference between momentum and information: additional momentum carries with it information that could change a system, and information is, in its most elemental form, momentum. This is a theoretical and mathematical device that has elegant consequences, that, for example, allows you to think about the interjection of additional momentum into a system as new information for the system.

Typically, exogenous momentum temporarily disrupts a system at equilibrium, but then that system returns to an equilibrium that is probably more or less the same as its initial state. We can formalize this with information theory using a “within delta” concept, but the idea is, typically, with a complex system, exogenous momentum is simply dissipated, making disruptions temporary. So, for example, if I dip my finger in a cup of coffee, it generates ripples, but eventually, the liquid will settle to a state that is more or less the same as it was before I disturbed it. The photoelectric effect would be another example of this, except in that case, exogenous momentum fundamentally changes the system, since the momentum shows up, breaks the electron free, leaving the material in a state that was probably inaccessible beforehand. But this result is arguably destructive, since it’s not that different from hitting a piece of glass with a bat.

The truly impressive feat would be to add momentum to a system in equilibrium that leaves it in a higher energy equilibrium, without that energy dissipating. Interestingly, pregnancy seems to be an example of this, since exogenous information is interjected into a human being, producing something new, and stable, with more energy than beforehand. Eventually, the child is born, resulting in a net system of three people with its own set of properties and states, that were certainly inaccessible prior to the pregnancy.

In this view, life is a stable, self-sustaining computational engine that grows in capacity (i.e., the prevalence of life expands) and complexity (i.e., animals have become more intelligent), over time. So if the emergence of life was deliberate, its purpose seems geared towards accomplishing what is basically impossible for human beings to do, because of our clumsy command over thermodynamics. Specifically, systems produced by human beings end up being overpowered by entropy, whereas life seems to swing the other way, locally dominating entropy, expanding in scope and complexity over time.

A Thought on Computation, and Time

I generally think of time as discrete, since as a practical matter, any clock we use to measure time will have some click rate, which will serve as the ultimate limit on our ability to subdivide any internal of time.

This means that from any given moment in time, we can count, and enumerate, all possible future states of the Universe that are, e.g., 10 clicks out from the present. Of course, as a practical matter, we can’t actually do this, but we can do something close to it at a macroscopic level.

For example, for a game like chess, we can certainly enumerate all possible future states of the game that are 10 moves out from a given state. Obviously, reality is much more complex than a game of chess, but if you quantize time, then you can at least conceive of a model of time where all possible states exist along a graph that commences from a node representing the present, and extends some fixed number of clicks into the future, where each node in the graph represents some future state of the Universe. One node would be connected to another node in this graph if the second node might follow the first node immediately in time, in some path through time. So e.g., when you wake up on a given day, it might or might not rain at 1:30 PM, and those two distinct nodes (i.e., “rain”, or “no rain”) of the Universe would be connected to the first node of “waking up”.

So in short, you wake up, and there’s either rain, or there isn’t.

Because a board game like chess is literally part of the Universe, objectively distinct arrangements of the board represent objectively distinct arrangements of the Universe. This might seem trivial, and obvious, but it has a shocking and bizarre consequence, which motivated me to take the time to actually write this note:

In particular, the game of chess is always computable, so long as the game is finite. This means that the path through time from the present state of the game, to the end state of the game, is computable, since we can write a program that represents the positions of the pieces on the board, and proceeds in one-to-one correspondence with the paths of those pieces. Put in less technical terms, we can write a program that models any finite game of chess.

But now imagine a sequence that is not computable, and consider, for example, the answer to a question that is known to be non-computable. If an oracle shows up, and writes down the question, and then writes down the answer to that question, then the path through time that represents that sequence of events is non-computable, and therefore, there is no program that can run in one-to-one correspondence with that sequence of events. Stated differently, you cannot ask a UTM the answer to the question, and get the answer to the question, since it is by definition non-computable.

A corollary of this is, if we imagine the state of the world when the question is posed as a node in time, then without the oracle, the future state where the question is answered is not accessible from the present node. In practical terms, no one can answer the question, since it’s non-computable. In theoretical terms, there is no path from the present node to the future node where the answer to the question is stated.

Bizarrely, this means that if there are people that can solve non-computable problems, they will literally alter the set of future possibilities of the entire Universe, simply by answering these questions correctly. This must be the case, since without people that can answer non-computable questions, those future states of the Universe where those questions are answered are simply inaccessible. In simpler terms, we can’t get to the point where we know the answer to a non-computable question, without a person capable of answering the question. This means, that in a world where there are no such people, those futures are simply impossible to reach from the present.

So, in the most real, physical sense, people that can solve non-computable problems, are a bridge to otherwise impossible futures.

Merry Christmas

Though I’m not affiliated with any official organized religion, I do have my personal beliefs, and in particular, I think, like many scientists, that the fact that the Universe is generally not chaotic, is the best evidence for God. And in particular, the fact that life itself is so complex, yet highly organized, is in my opinion, compelling evidence for the existence of God.

In simple terms, if we assume that the laws of physics are computable, then the probability of life spontaneously appearing as it is, as a consequence of those laws, is so low, that it is simply not a credible theory. For those that are interested, look up the work of Ray Solomonoff on algorithmic probability, for a better understanding of why this is the case.

This leaves us with the possibility that the Universe is not computable, which is possible, or that at least life itself has a Creator, that, like us, is capable of spontaneous changes in behavior that have no proximate cause in this life, but are instead the consequence of will power, which I believe to be the capacity to spontaneously change the momentum of a system. Gravity does precisely this, in that it accelerates without any proximate cause, in that there is no observable third system that causes two nearby masses to accelerate. But in contrast to life, gravity is apparently sterile, in that its behavior can be explained with a simple equation. Obviously, the behavior of human beings is far more complex than the behavior of two nearby masses, though both exhibit spontaneous changes in momentum.

If there is anything that stands out about the Earth, and life generally, in the context of the Universe as a whole, it is its complexity, in the mathematical sense, in that the Earth is remarkably complex, and requires far more information to describe accurately than the other planets in our solar system. In particular, a single human body is an unfathomably complex system. In contrast, the rest of the matter in our universe is, as far as well can tell, inanimate rock, gas, ice, and plasma. This is not to suggest that life doesn’t exist elsewhere in the Universe, but rather, that we haven’t found it yet, so even assuming it does exist, it is obviously quite rare.

The corollary, is that if we have a Creator, then our Creator is obviously concerned with information, since that is the defining characteristic of the Earth, that distinguishes it from the known Universe, in that it contains incomparably more information than the rest of the Universe, by virtue of the living systems that inhabit this planet.

My personal view is that this is in fact the case, and that the Earth is an extraordinary computational engine, and that life is the fundamental component by which it operates, deliberately, by design, with all living creatures inadvertently contributing to its machinations.

In particular, I believe art is a means by which extraordinarily complex information can be stored, conveyed, and operated on, in a manner that does not require the physical violence typically associated with the machinations of nature, and that perhaps humanity’s ability to create, store, and manipulate art explains our apparent privileged status in this world.

In short, we can do the same work, presumably even more, without the attendant suffering, and so, we are more highly valued by our Creator.



Merry Christmas,


An Endless Knot – 3rd Movement

And then suddenly, you’ll appear,
In a white gown,
Walking nearer to me,
As church bells ring clear –

And the Sun,
Making its way through your eyelashes,
As it ends in mine.

And it’s colored,
Blue by the shimmering water droplets,
In your tear-filled eyes.

The sequins on your dress repeating;

The beads that line your veil retreating.

Church bells echo, beams careening –

From the Sun,
Making its way to the Earth again,
Through a pale blue sky.

And it’s colored,
By all of the lifetimes and memories,
Of your hand in mine.

The sights and sounds of Love repeating (Hurra!).

The echoes of Our Song repeating (Hurra!).

An Endless Knot,
Endlessly repeating.

Abstraction Categorization

I introduced an abstraction algorithm a while back that can take a dataset, and generate a representative abstraction of the dataset using a nearest neighbor technique. We can take this process a step further, to generate a set of representations for a given dataset. Specifically, if any of the elements are not within delta of the abstraction, then we gather those elements up into a new dataset. We then generate a new abstraction for that leftover set. We repeat this process until every element of the original dataset is within delta of an abstraction.

The number of abstractions needed to do this can serve as a measure of the complexity of the dataset, since the more abstractions you need, the more unique elements there are.

It’s similar to the idea of a basis in linear algebra –

A minimum set of representative elements that allow me to express the fundamental elements of a dataset.

We could also calculate the value of delta by iterating through different values, repeating this process, and selecting the value that causes the entropy of the categorization structure to change the most, treating each element associated with a given abstraction as a category.

Below is some updated code, implementing the algorithm described above:

You can place this code in a loop through values of delta to use this approach to generate an independent value of delta, though this will be more time consuming than the approach I’ve used, which is to use my categorization algorithm to generate delta, and then apply the abstraction algorithm.

I’m still tweaking this, as it’s still a bit inefficient – the better way to do it is to store each abstraction, count the number of matches generated by that abstraction.

Then, sort the abstractions in order of the number of matches.

Then, start with the abstraction that generated the greatest number of matches, and take all of the elements in that category as fixed in that category.

Then, check the category with the second greatest number of matches, and take the intersection of the top category. Any elements not in that intersection go in the second category.

Continue this until all elements are in some category.

The end result is the same, but this is more efficient, since you don’t repeatedly call the categorization algorithm, and instead, you run an intersection test until all elements have been assigned to a category. The intersection operation can be implemented efficiently in this case by using the integer indices for the elements in the dataset, rather than the actual vectors. That is, rather than test for the intersection over a set of vectors, test for the intersection over a set of integer indices that correspond to where the vectors are in the dataset.



An Endless Knot – 2nd Movement

In a previous article, I introduced an analytical framework for thinking about art, using a song I wrote, “An Endless Knot“, as the case study. I’m working on a follow up article that formalizes all of these ideas into a mathematical model that can be applied directly to AI, but in the interim, I also wrote a second movement to the song, which I really like, that continues to develop the elements introduced in the first movement.

You’re the best thing I know of.

The best thing that I’ll ever find,

Is your hand in mine,

Or your face in mind.


Darling, you’re the best thing I know of, Hanne –

The best thing that I’ll ever find,

Is your hand in mine,

Or your face in mind.


Darling, you’re the best thing that I know of.

The best thing that I’ll ever find.


Our lives are intertwined,

In an endless knot in time.


Darling, you’re the best thing that I know of.

The best thing that I’ll ever find.


Our lives are intertwined,

In an endless knot in time.


Darling, you’re the best thing I know of.