The hierarchical structure means you don&#x27;t hop randomly. You recognize simple and vague approximate models first then bias your search towards the more complex rules that are under you best top level approximations in the hierarchy.<p>It&#x27;s like a probabilistic binary search in the model taxonomy.<p>One thing that makes me hopeful that the learning process is possible is that the non-terminal grammar rules are generic and can always become anything. You don&#x27;t tend to get stuck in local maxima even if you only search a small part of the program space when any node can always be swapped for a node of any another category.<p>My problem right now is that my MCMH doesn&#x27;t mix well. Even though I tried to shorten the jumps between models of different complexity for a particular thing, once the vague model traces are well fitted to the training examples, there is too deep a score chasm to jump to the next level of complexity.<p>My simulations seem to get stuck in simpler modelisations of things. I want simpler models to recursively open the door to learning and recognizing slightly more complex models just under them in the hierarchy but this doesn&#x27;t seem to be happening. The hierarchy is not really even forming properly.<p>I might be missing something stupid. I don&#x27;t consider myself an expert in these things. I just dabble for fun. It&#x27;s one of the reason I&#x27;m discussing it here. Maybe someone more knowledgeable will make me have an aha! moment.<p>There is still a bunch of things I could try but like I said, it&#x27;s long and grueling debugging work.