Anderson, J. R. (1990). Introduction. In The Adaptive Character of Thought (pp. 1–40). Lawrence Erlbaum Associates.

Summary

Anderson gives an overview of different ways different people have used “levels”:

  • Marr (implementation, algorithm/representation, computation)
  • Chomsky (competence, performance)
    • not really levels of analysis, but the notion of competence allows for the same types of analyses as those you get from working at the computational level
  • Pylyshyn (biological, symbolic, semantic)
    • symbolic level breaks down into “functional” (e.g., machine code) and “algorithm” (e.g., generic computer program) sub-levels
  • McClelland & Rumelhart (PDP level)
    • basic idea is that emergent properties of their functional architecture are approximated by rules at the algorithm level
    • example of assembly vs PASCAL code, and that assembly can (in general) only be approximated by PASCAL programs (there is some subset of assembly that is exactly the same as a PASCAL program, but probably most code that is written in assembly is not directly translatable)
  • Newell (knowledge level and principle of rationality)
    • “knowledge and goals imply behavior” (p. 15)
    • problems at the knowledge level of computational constraints, e.g. knowing the rules of chess in theory implies you can play a perfect game, but in practice does not becauase it is computationally intractable

Then Anderson proposes his four levels, which are basically the same as Marr’s except that Marr’s algorithm/representation level is split apart:

  1. Rational
  2. Algorithm
  3. Implementation
  4. Biological

Finally, Anderson discusses approaching the study of cognition from the rational/computational level, using an approach based on the “principle of rationality”:

  1. Specify the goals of the system
  2. Specify a model of the environment
  3. Specify computational limitations/constraints
  4. Find the function that optimizes 1-3

Anderson also makes the distinction between rational (as in logically correct) and rational (as in adaptive, or locally optimal).

Methods

n/a

Algorithm

n/a

Takeaways

The biggest takeaway is the “principle of rationality” and Anderson’s approach to rational analysis, which is to specify the constraints on the system and then determine what would be optimal under those constraints.

This is, I think, more difficult than Anderson gives credit for. He does acknowledge “if we have to know computational cost to know what is rational, we may have to specify the mechanisms of cognition in advance of rational analysis” though he claims you can usually get by with weak assumptions. I agree in some cases that you can get by with weak assumptions, but maybe not in the general case.