Marvin Minsky of MIT developed these six levels of thought. When a machine has reached all six, according to Minsky, it is completely intelligent. We currently have machines that have reached the first three.
1. Innate reactions
These are reflexes and automatic reactions. They are immediate responses to opportunities or dangers from within the world around us.
Any program or machine that responds to a user or other stimuli in any way exhibits this level of thought. A calculator would do this—it knows how to respond when numbers or operations are pressed, and its actions are based solely on what it already knows.
2. Learned reactions
These are reflexes you have to learn. They are still non-deliberative, automatic reactions to opportunities or dangers in the surrounding world or in yourself. However, you must teach yourself to react this way.
This happens when a program responds in a certain way based on input received from its surroundings or from a user. It doesn’t know beforehand what to do; it learns from outside data. When you tell a popup blocker to accept windows from a certain site, it changes its actions accordingly and “learns” the correct response.
3. Deliberative thinking
In short, this is the act of reasoning. It includes prediction, explanation, planning, diagnosis, and generalization.
A program that does this can forecast what will happen based on what has happened. Computer opponents in games do this—most chess programs look a certain number of moves ahead, reviewing the potential for each of the various moves and choosing their best option.
4. Reflective thinking
This level manages and handles deliberative processes. It organizes thoughts and attributes them to wherever they came from.
This would allow a program to be deliberative, in a more intelligent way, as it is able to sort its “thought” patterns and to figure out how they relate to each other.
5. Self-reflective thinking
This would provide you with knowledge of yourself. You would know your own limitations and abilities and could act accordingly.
Once a program knows what it can and cannot do, it can act within those constraints. If, however, the program is not aware of what is beyond its bounds, the programmer has to be very careful to make sure that impossible tasks are not attempted.
This is where you are concerned with the relationship with yourself and others around you. This allows you to practice self-appraisal, deciding where you should improve.
Once a machine, run by AI, can compare itself with its environment, it will know how it needs to improve itself without a human telling it.
See also: Turing Test, What is AI?