Last week I had a conversation with Oleg Volkov about the QSMM project, which is a framework for development of intelligent state models. Here’s my conversation with Oleg.
Rich: What does QSMM do? What are “non-deterministic intelligent state models”?
Oleg: QSMM is a framework for development of intelligent systems. Yes, that sounds somewhat pretentiously, but I really consider the framework will help people, who are interested in the area of artificial intelligence, to solve tasks for which they did not have an instrument before.
One can hardly predict how the field of information technology will be developing during next decades. An accepted viewpoint is that cloud and parallel computations will play more and more important parts in the field. I have a suggestion that a new kind of computer programs will also be developing: programs that could adapt their own behavior to solve raised problems more efficiently. That is, after a time, there will come an era of non-deterministic intelligent computer programs, which behavior was only partially specified by a developer.
I think of computer programs, as they are means to put part of one’s soul into an inanimate object–the computer. That process can be understood as transferring a state model from human mind to the computer (and it is applicable not only to a computer program, but to any creative work). At present, computers are typically performing operations in a deterministic way–exactly as a developer programmed them. QSMM is an aid to put a state model into the computer in such a way that the state model will behave non-deterministically and intelligently.
Rich: How did you become interested in this field? What problem were you trying to solve with this software?
Oleg: When I was younger, there became popular the concept of artificial neural nets. That concept was interesting for me as well as for many other people. Soon I made a conclusion for myself that proposed methods of building the nets, training them, and obtaining results of their operation often require considerable amount of computations, somehow resemble numerical alchemy and attempts to do magic using computers.
I wondered if there could be algorithms for training and using neural nets, which efficiently perform on a single-core low speed CPU, and which give results that can be easily interpreted. After several years of thinking and experimenting, I have developed such an algorithm, which provides moderate efficiency of solving certain sort of tasks, and published it as QSMM project.
In contrast to many existing types of artificial neural nets, a kind of neural net used in QSMM produces discrete, not analog output. This makes possible to associate blocks of code, which perform application-specific actions, with every distinct output signal of the net. The process of choosing output signals by the net is controlled by changing numeric quantity called spur or incentive. That is, the net operates as an optimization engine that produces a discrete output based on the discrete input and current value of spur the engine is normally trying to maximize.
Rich: What is the audience for this software? That is, who would use software like this?
Oleg: Primary audience for QSMM are scientists, who work in the field of artificial intelligence, and non-scientists, who are interested in that field and wishing to create something intelligent, but do not know what to start with. I believe that acquaintance with QSMM of the latter group of people will give them an incentive in the right direction.
Rich: What do you have planned for the next version of this software?
Oleg: The next version of QSMM will probably be a bug fix release. Future versions will be based on feedback I will receive from package users. At present, I have no specific plans what to include in future versions of the package. There are several possible directions of improving the package, and I am going to understand from the feedback whether those improvements are worth of implementing.
Rich: How can I (or anyone) get involved in your project?
Oleg: Improving QSMM is not a routine task, and it requires understanding of how QSMM operates. People who came to that understanding would possibly make substantial improvements to algorithms used in the framework. Developing the package alone for several years has a reverse side that sometimes I cannot see obvious things that might be done to improve it.
I will be very glad to receive feedback on the project. At first, I expect to obtain a lot of bug reports and complaints that something does not work as expected. The feedback generally should be posted to a mailing list for QSMM users. Information on the real examples of using the framework is especially important for me. If you permit that, then good examples of using the framework could be included in its future distributions.
The general rule for QSMM: if you have ideas how to improve the package, then write that to the mailing list, and it will be seen what to do next.