I was thinking of simple test which could demonstrate that technology is capable of true learning. I'm trying to keep it as simple as possible...
Image a wheeled robot with one input, a bumper sensor that returns true or false if the front of the robot is pressing against something.
This robot can take two actions. It can roll forward, it can roll backward.
We place this robot in a box (say a 6 foot square box)
That's the environment and scenario. So the question is what "algorithm"/process do we put in place.
I run into a problem at this point as I realized that this had not specified any "goal" for the robot. Am I putting the horse before the cart asking this question at this point? (I don't know)
I think that every action we take (conscious or unconscious) is driven by some motivating factor. At it's most basic this motivation would be to stay alive, this would account for our involuntary actions.
If this is the case then the robot also will need to have some motivation, otherwise we place it in the box and it does nothing.
I got over this hump by assigning an ambiguous goal for the robot. It wants/needs to cover 100 feet of ground.
Keep in mind, even though there is a goal. The process that I am designing is not designed to achieve the goal. The process is designed to allow the robot to "learn" what it can do.
To me this sounds as a natural place to separate "mind states" (I'm not sure of the terminology). One piece of the mind is going to track the goals. Another piece of the mind is going to track what it "knows". I think the second part is what I am focused on at the moment.
What does the robot "know", I think this is where the predictive model comes into play. Knowing something means that when you receive a certain input and you take a set of actions...you can predict what the next set of inputs will be.
Currently the robot is unable to predicate any input / actions. I ran into a problem here as the technical side of me wanted to describe how the robot should capture this input = action = input relationship. I set this aside for the moment though.
The robot would survey it's input, see that it's bumper is not true and would then decied to take one of it's actions. (I equate this to what a baby does, hands waving, feet wiggling and so on)
Let's assume the robot rolls forward, (it could have choose to roll backward). This is where a sense of time needed to come into play. The robot is going to roll forward for a small time segment (maybe a few milliseconds) at which point it's going to review it's inputs.
So let's say it rolled forward 2 inches, at this point it needs to make that input = action = input relationship.
It will continue this cycle until it hits a wall. At this point, it now gets conflicting relationships. How does it resolve this conflict? And this is where I get stuck...