I should address a point that wasn’t addressed in the post, and which may otherwise be a point of confusion going forward: the quality of an explanation can be high according to my criteria even if it isn’t empirically correct. That is, there are some explanations of behaviour which may be falsifiable: if I am observing a robot, I could explain its behaviour in terms of an algorithm, and one way to “test” that explanation would be to discover the algorithm which the robot is in fact running. However, no matter the result of this test, the judged quality of the explanation is not affected. Indeed, there are two possible outcomes: either the actual algorithm provides a better explanation overall, or our explanatory algorithm could be a simpler algorithm with the same effects, and hence be a better explanation than the true one, since using this simpler algorithm is a more efficient way to predict the robot’s behaviour than simulating the robot’s actual algorithm.
This might seem counterintuitive at first, but it’s really just Occam’s razor in action. Functionally speaking, the explanations I’m talking about in this post aren’t intended to be recovering the specific algorithm the robot is running (just as we don’t need the specifics of its hardware or operating system); I am only concerned with accounting for the robot’s behaviour.
A note on judging explanations
I should address a point that wasn’t addressed in the post, and which may otherwise be a point of confusion going forward: the quality of an explanation can be high according to my criteria even if it isn’t empirically correct. That is, there are some explanations of behaviour which may be falsifiable: if I am observing a robot, I could explain its behaviour in terms of an algorithm, and one way to “test” that explanation would be to discover the algorithm which the robot is in fact running. However, no matter the result of this test, the judged quality of the explanation is not affected. Indeed, there are two possible outcomes: either the actual algorithm provides a better explanation overall, or our explanatory algorithm could be a simpler algorithm with the same effects, and hence be a better explanation than the true one, since using this simpler algorithm is a more efficient way to predict the robot’s behaviour than simulating the robot’s actual algorithm.
This might seem counterintuitive at first, but it’s really just Occam’s razor in action. Functionally speaking, the explanations I’m talking about in this post aren’t intended to be recovering the specific algorithm the robot is running (just as we don’t need the specifics of its hardware or operating system); I am only concerned with accounting for the robot’s behaviour.