I’ve been thinking about how to get machine learning systems to formulate plans based on a goal for quite some time. Mostly it’s been focused on having a system predicting future events and somehow using it to evaluate the future based on actions taken. This appears to be the approach of AlphaGo and many similar AI systems designed to beat games, but it’s not very suited in real word situations where there isn’t a fixed set of actions that can be evaluated.
So I’ve been thinking about ways to get around this and tonight I had an epiphany: Formulating a plan of action and predicting future events is the exact same problem, the only difference is what part of the timeseries that is masked off during training.
Let me explain my thought here. When predicting future events you have a series of events, you mask off future events and ask the system to predict these based on the previous events. Nothing new here. But if you simply shift this masking to the middle of the time series your now asking the system to predict what connects the past events to the future events. If you train a system this way you’re training it to come up with a plan of action to get to a result. After training you can specify the future point you want and give it the current point and it will try to predict how to link those two points.
The application for this would be when you have a desired end state but you don't know how to get there. As a simple example, consider a platform game where you should collect coins. You know that the end state of the game is a level without any of the coins, so you can give that state as the future point and the system should try to connect the past (or rather current) points to the specified future point. If the system has learnt to generalize well you should not have to specify everything about the end state. For a more real world example, the system could be applied to for example engineer components or even entire products based on some requirements (end states) of that product. You might specify that you want an airplane with a certain speed, load capacity and fuel efficiency and the system designs the plane for you. Granted, the later example is a bit extreme, but given the right training data and setting (some sort of CAD software) the principle is the same.
Maybe this is obvious to everyone and I’ve just missed this, but onto my question: Where can I find more information about this kind of predictor? I’ve tried searching around but I just don’t know what terms to search for. I just end up with a bunch of time-series analysis or monte carlo tree-search algorithms. If anyone could point me in the correct direction here I would be very grateful :)
Also, if anyone has a better suggestion for the title I would also be very grateful for that.