Robin Upton's Research- Inter-Process Communication with Bayesian Prior Distributions   2004-01-26



The ‘snap fit’ technology model of specifying each component separately was not intended to be extended for tasks with a fuzzy


Nowadays, computers do many such tasks, such as recognition of voices, images or text which – even in principle – will never be 100% correct.




One day I used a stylus to write into a browser on a mobile phone. This was interpreted as, a bizarre mistake whichthat a human would be unlikely to make. This inspired me to devised a better model for inter-process communication.



The Cause of The Problem – ‘Fuzzy’ Tasks


The traditional model of computer software operation is that each element should be a closed unit and work perfectly, independently of any others. According to this system, a handwriting recognition module doesn’t need to know where the data is going – it interprets my scrawl as best it can and passes on its ‘best guess’ to the operating system, which then passes it on to the browser.


The problem is that tasks such as handwriting recognition are inherently ‘fuzzy’, so we cannot – even in principle – expect recognition to be 100% satisfactory. Such units no longer fit the description of the model above. In such cases, allowing richer communication between processes has the potential to increase their accuracy.



Probability Distributions


Operating systems could broaden the interface between applications if applications output not just one set of ‘most likely’ data, but a whole list of possibilities together with their probabilities – i.e. a probability distribution. Combined with an application’s Bayesian prior distribution about which input was most likely, this could give a more informed overall guess of the communication made.


In the below example, the handwriting recognition system came up with only 4 possibilities, with probabilities from 0.75-0.05. The browser meanwhile uses a very simple system to decide how likely web addresses are – it looks at the first three letters. We assume that half of all web addresses begin ‘www’.


Handwriting Recognition





































(anything else)



(anything else)



(anything else)



The output and input data is combined by multiplication, and the product defines how likely the communication was. Simple though it is, the example illustrates how the browser’s knowledge of the nature of web-addresses overcomes the misdiagnosis of the handwriting system. One could easily imagine more complicated and accurate systems for deducing how likely a URL is, based on other parts of the address, on lists of popular sites or even on a specific user’s browsing patterns, meaning that accuracy could increase over time, as it does with speech recognition systems that are ‘trained’.



Potential Complications


An important observation is that applications are not required to communicate via probability distributions. A ‘best guess’ delivered to the operating system can be interpreted as a trivial probability distribution in which this is the only possibility. Similarly, applications with no prior distribution could be given a non-informative prior, meaning that as far as they’re concerned, all input data is equally likely. This too would default to the deterministic behaviour of choosing the most likely option.


In certain cases it is non-trivial to define a probability distribution over the possible outcomes (scanning a page of text, for example, there may be very many possibilities). However, the system is not an ‘all or nothing’ one – in such a case, it would be better to list even the 10 most likely possibilities than just 1 – which is the case in the deterministic system. For some fuzzy applications this would require extra computation, but others calculate these distributions internally as part of the process of deducing their ‘best guess’ solution.


Deducing prior distributions seems likely to be a much more challenging task, since applications generally don’t need this data at the moment, as they get data either from a keyboard or from other applications. However, it seems eminently possible for certain applications at least.


In theory, there is no reason why the probabilistic maximisation need be carried out between only two different applications. For example, a user could tell his computer to read a certain image file to him. This would involve passing data from a voice recognition module to an image recognition module and out to a speech synthesiser. Likelihood analysis over the entire process would be more powerful than over the separate stages (as well as more closely mimicingmimicking the action of a neural net).


A multistep optimisation would however raise complications of its own (as it would if any of these operations had side effects, such as changing the file system) and with the current state of technology such a demanding application of computers seems unlikely in the near future.





A probabilistic model for inter-process communication is a powerful generalization of the existing deterministic one. If informative priors can be developed then it could well deliver significant improvements in accuracy over the deterministic model, which amounts to throwing away data.


Mediating a probabilistic inter-process communication would require a computing overhead, albeit one of limited complexity. Compared to the increasingly difficult tasks at which computers are working, it is becoming increasingly insignificant. As fuzzy tasks such as voice recognition become more and more important, its importance will quite soon justify its implementation costs. I suggest that by 2020, all mainstream operating systems will be Bayesians.