I, for one, like my programs to be predictable. I don't want them learning my behaviors without my control or supervision, since they could learn wrong behaviors.
One simple solution to this problem is in reversible computing, not unrelated to the "backtracking" feature you mentionned: never learn any behaviour that isn't reversible, and have the learning be reversible itself. Hence, you can undo any change that was brought by the program learning something, and you can undo this learning and prevent it from happening again. This adds the "control and supervision" you need before you may accept learning. On the other hand, special care should be taken to avoid the user committing a change that means more than he thinks, or otherwise being confused by reversible changes that would nonetheless corrupt results of computations in a subtle way. In other words, learned behaviour should never alter misleadingly the perception by the user of the underlying documents being manipulated.
Learning and reversibility
Date: 2003-11-12 05:49 am (UTC)One simple solution to this problem is in reversible computing, not unrelated to the "backtracking" feature you mentionned: never learn any behaviour that isn't reversible, and have the learning be reversible itself. Hence, you can undo any change that was brought by the program learning something, and you can undo this learning and prevent it from happening again. This adds the "control and supervision" you need before you may accept learning. On the other hand, special care should be taken to avoid the user committing a change that means more than he thinks, or otherwise being confused by reversible changes that would nonetheless corrupt results of computations in a subtle way. In other words, learned behaviour should never alter misleadingly the perception by the user of the underlying documents being manipulated.