This is part of a series covering my current research agenda. Refer to the linked post for additional context.
Let's revisit our initial problem. We're given the lowest-level representation of a well-abstracting universe, and we want to transform it into its minimal representation / the corresponding well-structured world-model. The tools introduced in Part 1 are insufficient for that: there are two more problems left. This part focuses on one of them.
Key example: Imagine looking at a glider in Conway's Game of Life. At the first time-step, it may occupy the coordinates . As time goes on, it would gradually migrate, diagonally moving in the bottom-right direction at the speed of one cell per three time-steps.
If we take the individual cells to be the random variables to abstract over, in what sense is the glider an abstraction over them? It's a "virtual object", drifting across them.
But if it's not an abstraction over the cells, then over... what? There aren't really any other elements in the picture! Maybe it's an abstraction over sets of cells, with cells being "subvariables" over which the glider is synergistic? But how exactly do we define those sets?
(Perhaps it's a synergistic variable over the whole grid/world? I've tried that. That approach was instructive, but it got very clunky very fast.)
Once you start looking for it, you start spotting problems of this sort all over the place.
The program example actually hints at what the issue is. The function is very, very agnostic regarding its lower-level implementation. There's an infinite number of programs that implement it: a two-bit adder can be implemented as a bunch of NAND gates, or XOR gates, or Lisp functions, or as transistors implementing NAND gates, or as an analog computer made up of water streams, or as a set of star systems exchanging asteroids, or as the simulation of a vast civilization tasked with summing the bits...
Same with the abstractions in general. The higher level of abstraction is largely agnostic regarding the nature of the lower level implementing it. As long as the lower level passes some minimal threshold of expressivity, it can implement a dynamic with ~any emergent behavior. Meaning, in a vacuum, there's ~zero mutual information between the higher level and the laws of the lower level.
An "animal" could be represented using a wide variety of "programs" of different compositions; same with "a human mind"; same with "a market". Once we lock down a specific "abstraction operator" – the map from the lower to the higher level – the lower level is fixed, and the higher level is a valid natural latent over it. But if we go top-down, holding the higher-level abstract structure fixed but not receiving any information about the lower level, the lower-level's structure (not just values) isn't fixed; it's only constrained to the infinite number of structures over which the higher level would be a valid natural latent.
Symmetrically, if we go bottom-up, there's not any sense in which a specific set of labeled lower-level variables necessarily has the same relationship with any given higher-level variable; or that any given higher-level variable survives a resampling. Depending on the nature of the resampling (random like in "god's-eye view", or deterministic like in Conway's, or stochastic-but-not-independent like in head movements), the structures may drift, switch representations, or change outright. So what we need is to... somehow... learn new abstractions from one sample?
Summing up: Usually, when we're facing a structure-learning problem, we assume that the structure is fixed and we get many samples for it. Here, the structure itself gets resampled. (See also: the bit in 1.3 regarding how we'll need to figure out how to deal with things that "look like" probabilistic structures from one angle, and like random variables from a different one.)
Let's suppose we do have that hypercomputer after all.
The anthropic prior is a very specific entity. It defines a highly opinionated distribution over Tegmark IV/the set of all possible mathematical structures. (This, incidentally, lets us get out of various no-free-lunch theorems. We're not looking at a uniform distribution over all mathematically possible worlds, nor demand perfect performance in all of them. We want good-enough performance on the anthropic prior.)
So suppose we compute that prior, and then refactor it into the joint probability distribution over the set of all possible abstractions.
That is: Suppose we've gained the ability to learn, by looking at a specific type of variable, what other abstractions are typically present in a universe containing this type of variable. Each corresponding joint sample would be weighed by the anthropic prior, meaning the abstractions' sheer agnosticism regarding lower levels would be ameliorated by us defining a probability distribution over them. Some examples:
Et cetera. By conditioning on "this is a sample from the anthropic prior"/"we are in a universe that is overall well-abstracting", we can derive posterior distributions over probabilistic structures, rather than just the values of fixed variables in fixed structures.
Incidentally, this can be viewed as a generalization of the general abstraction machinery, rather than some new addendum. When we condition on "we're looking at a dog", we don't actually deterministically deduce that it has a head, four legs, a heart, and a tail. We merely update our distribution over lower-level structures/features to strongly expect this set of features. We also place a nontrivial amount on "three legs, one tail", yet assign epsilon probability to "no head" (assuming alive dog) or "twenty heads". (This is the promised better way to handle the nitpick in 1.5.)
But there's also a bunch of other, softer inferences we make. For example, if we're searching for a specific type of virus that tends to infect dogs, our probability distribution over the locations of this virus' instances would shift towards the volume the dog's body occupies. We'd also infer some distribution over the number of "dog cell" abstractions present at the lower level, and the atomic contents of the volume in question, et cetera. Those are all, again, best modeled as inferences about structures, not values (or, well, as about structure-valued variables).
In terms of "upwards" inferences, we'd expect the "dog concept" abstraction (not only this-dog) to be present in that world, and e. g. allocate nontrivial amount of probability mass to "Earth-like biosphere and evolutionary history".
In terms of "sideways" inferences (abstractions at the "same level" as the dog), we'd expect more dogs or the dog's owner to be nearby (though, hmm, this might actually route through conditioning on the higher-level "dog concept" variable, which both creates new variables and synergistically creates mutual information between them and the dog).
So, summarizing: In practical cases, it's impossible to deterministically deduce / uniquely constrain the structures you're trying to learn. However, due to the fact that the "well-abstractibility prior" is a very specific entity, it's possible to define posterior probability distributions over those structures.
Let's take a look at the current problem from a different angle. Consider the following:
Each of those examples involves different representations of what's ultimately the same thing, but transformed in a way such that the similarity is very non-trivial to spot.
What this immediately reminds me of, with all the photo examples, are CNNs.
CNNs' architecture has translation symmetry built-in: their learned features are hooked up to machinery that moves them all across the image, ensuring that their functionality is invariant under changes in the specific position of the features in the image. What we want is a generalization of this trick: a broad "suite of symmetries" which we "attach" to the inputs of our learned abstraction-recognition functions, to ensure they don't get confused by the abstract equivalent of shifting a dog in a picture slightly to the left.
I. e., we want to give our abstraction operators "truesight": empower them to zero-shot the recognition of already-known abstractions under changes in representation.
In the general case, that's impossible. After all, there's a function for mapping anything to anything else, more or less. No free lunch.
But we're not working with the general case: we're working with the samples from the anthropic prior. For any given set of abstractions that we're already seeing, there's a very specific posterior distribution over what abstractions we should expect to discover next. Which corresponds to a probability distribution over what "lens" we should try putting onto our feature-detectors to spot the familiar abstractions in new data.
In other words: we have a probability distribution over sequences of transformations of the data we should attempt to try, and we keep sampling from it until we spot a familiar abstraction; until we find a way of looking at the data under which it resolves into a known, simple pattern. (Where "simplicity" is defined relative to our learned library of abstractions.)
Which is to say, we engage in qualitative research. We switch between various representations until finding one in which the compression task looks trivial to us.
I think this problem/process is, indeed, literally the underlying "type signature" of a large fraction of human science and research efforts.
Some other examples of when it happens:
What I'm particularly interested in for the purposes of the bounties: