Wednesday, 24 August 2011

The cognitive agent's insomnia

Here you are: you got in the scope of attention of your favorite cognitive environment. And – to make things clear – it is an artificial one. What can you deduce with a certain probability? The interoperability problem that had been limiting proliferation of ubiquitous computing and advent of the Internet of Things has been somehow solved. What a good news! Thanks to that, sensors and actuators started talking together and became more valuable to your living. Here is a key point: some applications enabled by the networked devices got a tremendous impact, since they solved real problems for the people.

That's what knowledge is for, oh yes, for solving problems and... for putting other people in trouble. But this is not the case of your cognitive environment, that – if it claims to be at your service – it really is. Inside of it, there is a model of the user expectations, that it uses to predict your needs before you make them explicit. But you are so unpredictable and no one - especially an engineer - will ever be able to program such a model out of you! Let us suppose that among your qualities you have patience too. The cognitive environment is able to learn from past interactions, especially from those that weren't so successful for both of you. Interestingly, it will also consider the possibility that things went wrong just because you were unlucky. But at some point, it will have enough confidence to formulate a reasonable hypothesis. It will update its model and try to validate the new hypothesis in the next interactions.

The capabilities of a cognitive agent should only be defined by the statistics that it collects, as it has to be more conservative when data is scarce and to go in the details – even those that seemed insignificant at design phase – when urged to do so. It follows that an interactive environment should never be lazy: when there is no one with who to interact, it should reconsider its internal structure, generate new assumptions and test them using simulated inputs and if it goes to sleep, it does that to dream.