Comment author:jacobt
15 January 2012 01:48:07AM
*
8 points
[-]

Hello. I'm a 19-year-old student at Stanford University majoring in Computer Science. I'm especially interested in artificial intelligence. I've been reading lesswrong for a couple months and I love it! There are lots of great articles and discussions about a lot of the things I think about a lot and things that I hadn't thought about but proceeded to think about after reading them.

I've considered myself a rationalist for as long as I can remember. I've always loved thinking about philosophy, reading philosophy articles, and discussing philosophy with other people. When I started reading lesswrong I realized that it aligned well with my approach to philosophy, probably because of my interest in AI. In the course of searching for a universal epistemology I discovered Solomonoff induction, which is an idea that I've been obsessed with for a couple years. I even wrote a paper about it. I've been trying to apply this concept to epistemology and cognitive science.

My current project is to make a practical framework for resource-bounded Solomonoff induction (Solomonoff induction where the programs are penalized for taking up too much time). Since resource-bounded induction is NP-complete, it can be verified in polynomial time. So I decided to create a framework for verifying generative models. Say we have a bunch of sample pieces of data, which are all generated by the same distribution. The distribution can be modeled as a program that randomly generates a sample (a generative model). The model can be scored by Bayes factor: P(model) * P(sample[0]|model) * P(sample[1]|model) * ... In practice it's easier to take the log of this quantity, so we have the total amount of information contained in the model + the amount of information the model needs to replicate the data. It's possible to prove lower bounds on P(sample[i]|model) by showing what random decisions the model can make in order to produce sample[i]. I've partially developed a proof framework that can be used to prove lower bounds on these probabilities. The model is also penalized for taking up too much time, so that it's actually practical to evaluate models. I've started implementing this system in Python.

Part of the reason why I created an account is because there are some deep philosophical issues that algorithmic generative models raise. Through studying these generative models scored by Bayes factor, I've come up with the generative explanation hypothesis (which I'll call the GEH): explanatory models are generative, and generative models are explanatory. A good generative model for English text will need to explain things like abstract ideas, just as a good explanatory model for English text does. The GEH asserts that any complete explanation of English text can be translated into a procedure for generating English text, and vice versa. If true, the GEH implies that explanatory ideas should be converted into generative models, both to make the models better and to understand the idea formally.

There are a few flaws I see so far with the GEH. The Bayes factor counts all information as equal, when some information is more important than other information, and a generative model that gets the important information (such as, say, an explanation for the way the objects in an image are arranged) right should be preferred to one that gets low-level information a little better (such as by slightly improving the noise prediction algorithm). Also if the model is penalized for taking too much time, it might use more time to optimize unimportant information. This seems to be a way that algorithmic generative models scored by Bayes factor are worse than human explanatory models.

Regardless of the GEH I think generative models will be very useful in AI. They can be used to imitate things (such as in the Turing test). They also can be used for biased search: if a program has a relatively high probability of generating the correct answer when given a problem, and this has been verified for previous problems, it is likely to also be good for future problems. The generative model scoring system can even be applied to induction methods: good induction methods have a high probability of generating good models on past problems, and will likely do well on future problems. We can prove that X induction method, when given problem P, has at least probability Q of generating (already known) model M with score S. So a system of generative models can be the basis of a self-improving AI.

In summary I'm interested in algorithmic generative models both from a practical perspective of creating good scoring methods for them, and from a philosophical perspective to see to what extent they can be used to model abstract ideas. There are a lot of aspects of the system I haven't fully explained but I'd like to elaborate if people are interested. Hopefully I'll be discussing these ideas as well as lots of others here!

## Comments (1430)

Best*8 points [-]Hello. I'm a 19-year-old student at Stanford University majoring in Computer Science. I'm especially interested in artificial intelligence. I've been reading lesswrong for a couple months and I love it! There are lots of great articles and discussions about a lot of the things I think about a lot and things that I hadn't thought about but proceeded to think about after reading them.

I've considered myself a rationalist for as long as I can remember. I've always loved thinking about philosophy, reading philosophy articles, and discussing philosophy with other people. When I started reading lesswrong I realized that it aligned well with my approach to philosophy, probably because of my interest in AI. In the course of searching for a universal epistemology I discovered Solomonoff induction, which is an idea that I've been obsessed with for a couple years. I even wrote a paper about it. I've been trying to apply this concept to epistemology and cognitive science.

My current project is to make a practical framework for resource-bounded Solomonoff induction (Solomonoff induction where the programs are penalized for taking up too much time). Since resource-bounded induction is NP-complete, it can be verified in polynomial time. So I decided to create a framework for verifying generative models. Say we have a bunch of sample pieces of data, which are all generated by the same distribution. The distribution can be modeled as a program that randomly generates a sample (a generative model). The model can be scored by Bayes factor: P(model) * P(sample[0]|model) * P(sample[1]|model) * ... In practice it's easier to take the log of this quantity, so we have the total amount of information contained in the model + the amount of information the model needs to replicate the data. It's possible to prove lower bounds on P(sample[i]|model) by showing what random decisions the model can make in order to produce sample[i]. I've partially developed a proof framework that can be used to prove lower bounds on these probabilities. The model is also penalized for taking up too much time, so that it's actually practical to evaluate models. I've started implementing this system in Python.

Part of the reason why I created an account is because there are some deep philosophical issues that algorithmic generative models raise. Through studying these generative models scored by Bayes factor, I've come up with the generative explanation hypothesis (which I'll call the GEH): explanatory models are generative, and generative models are explanatory. A good generative model for English text will need to explain things like abstract ideas, just as a good explanatory model for English text does. The GEH asserts that any complete explanation of English text can be translated into a procedure for generating English text, and vice versa. If true, the GEH implies that explanatory ideas should be converted into generative models, both to make the models better and to understand the idea formally.

There are a few flaws I see so far with the GEH. The Bayes factor counts all information as equal, when some information is more important than other information, and a generative model that gets the important information (such as, say, an explanation for the way the objects in an image are arranged) right should be preferred to one that gets low-level information a little better (such as by slightly improving the noise prediction algorithm). Also if the model is penalized for taking too much time, it might use more time to optimize unimportant information. This seems to be a way that algorithmic generative models scored by Bayes factor are worse than human explanatory models.

Regardless of the GEH I think generative models will be very useful in AI. They can be used to imitate things (such as in the Turing test). They also can be used for biased search: if a program has a relatively high probability of generating the correct answer when given a problem, and this has been verified for previous problems, it is likely to also be good for future problems. The generative model scoring system can even be applied to induction methods: good induction methods have a high probability of generating good models on past problems, and will likely do well on future problems. We can prove that X induction method, when given problem P, has at least probability Q of generating (already known) model M with score S. So a system of generative models can be the basis of a self-improving AI.

In summary I'm interested in algorithmic generative models both from a practical perspective of creating good scoring methods for them, and from a philosophical perspective to see to what extent they can be used to model abstract ideas. There are a lot of aspects of the system I haven't fully explained but I'd like to elaborate if people are interested. Hopefully I'll be discussing these ideas as well as lots of others here!