Soft Computing

older version here

Soft is the candy that the candyman sells, soft are the rasgullas drenched in sauce, soft is the heart which you always wished your teacher had, soft is the feel of your crush, many things in the world are soft, some of them intentionally omitted here. However, here the focus would be on the most unexpected application of softness; that is softness in computing. Neither does it mean manufacturing soft processors which can be taken out and played with, nor does it mean publishing soft books which ease your fingers all day and night; although soft computing experts would have enjoyed those definitions better. It does mean having a soft-hearted teacher, who would accept any answer to any question - vague or concrete, correct or nearly correct, solved using correct or nearly correct procedure, solved using a procedure which does or does not make any sense, question itself being well-defined or poorly defined. So imagine working in an exciting domain where you could be asked for anything, you can reply anything, understand anything, anything may make sense or be completely non-sense - that is soft computing. The small but unfortunate catch here is that the sense or no-sense liberty is usually given only to the machines. So as a human you are expected to make sense while engineering machines, which while operating may mess it up, hopefully after the project has somehow been delivered. An irony is that even though soft computing refers to a soft hearted teacher, as a disciple it may be taught by some of the most hard task masters.

So the machines can be asked anything senseful or senseless, while they would do their best to make sense. Try asking how likely is it that your crush comes to you (be prepared to give details about both, as many as available), or how likely are you to pass that awful subject, or whether you have any of the deadliest of the diseases, or who the person in that strange video is, or what all props are there in the entire video, or what the people are doing, or how to continuously control your AC or washing machine, or how to drive from one place to the other, or how to make a masterpiece, or how to best save your money, etc. And certainly the obvious inputs and the logic behind the question may be known precisely, vaguely, or not at all known; depending upon which the system may give a great or a rather ridiculous answer. You may have written funny answers in examinations in reply to questions you didn't know, but were creative enough to draw your own interpretations; these systems can be funny too.

If he can play basketball, even I can, I am clearly faster than him; if she can't clear the interview, I certainly can't, I don't even have that X-factor; people from my region generally score high in exams, my chances are bright; if the shop is in this area, it has to be awesome. So many times we may have not tried anything, nor we may have any idea how it may be, or any knowledge how things work or don't work; we may still predict the outcomes simply by looking at the people who have tried it. If you are a keen observer, you may in fact be right; else everyone knows how to defend ones wrong decision by playing a blame game, stating it as an exceptional, stating the facts that were presented were wrong, or you were misunderstood and you actually stated the right prediction. Similarly with the machines which would typically be neural networks; simply give them all the examples that you have and see the response. If the data you give is good with facts well-identified and relevant, the machine might do an awesome job, else it's just a dumb machine. The good thing is of course that you can make the machine solve for anything silly or wise, the bad thing is that you will have to record examples which depending upon the problem can be simple, impossible, or mischievous. The good thing is that the machine can give a good shot even when given a few examples, the bad thing is unless the examples have something relevant in them, the machine makes rather silly decisions which if taken seriously can have funny consequences.

When winters come, I get cold; I perform well in all subjects taught by this teacher; if I exercise, I don't fall ill; every time I write with this lucky pen, my exams go well; if she accepts my friend request, she likes me; if my best friend wishes me good luck, I perform well in the game. There are too many rules in life. Logical or baseless, routine or superstition, suggestive or mandatory, they all help us in some way or the other; after all there is no proof that superstitions do not work. People invent rules, pass them down to others, take them from others, retain some and throw off some. The problem is naturally having too many rules. For any situation multiple rules may be applicable, which may support each other or contradict each other; each rule may be applicable, somewhat applicable or not applicable (say winters came with barely any drop in the temperature); the rules may have different importance depending upon the situation or the inventor. A fuzzy inference system caters to all these issues and assesses a situation to give some output. The rules need to be fed into the system. These may be based on the human designer's knowledge or learnt by the system itself. The resultant rules may be meaningful or baseless; depending upon whether the human designer or the learning system was wise or felt prey to superstitions on seeing some consistently strange examples.

There are always too many choices in life, which further give rise to more and more choices. It is not uncommon spending in hours thinking about the choices in life, until you get bored, somebody interrupts or a pending download completes. What is the perfect weekend, what to eat, how to spend your salary, how to walk around to visit the campus, in which order to invite your friends for a party, in which order to collect them for the party, how to make an awesome dish - these are all very serious problems in life. Take the example of planning an awesome trip with friends. The common goal is to make every penny worth it. So not only is each and every decision important, the overall travel plan is of value. Putting in some crazy ideas might just extend the trip costing more than someone's budget, and if you leave out some overly-hyped adventure, maybe you could fit in many great things to do at reasonable prices. World is a big place, there is too much to do, there are lame to crazy fantasies to be completed, for every desire there are too many choices to pick from, and obviously the time and budget are limited. Do not be fooled by the travel operators who make a plan for you based on what they think you might want, simply let an intelligent system running an algorithm like evolutionary algorithm make all your decisions. Of course you need to feed in the pool of options, constraints and preferences which play a big role in designing the perfect trip. A plan all your friends combined may take years to formulate, what a non-intelligent computer program might take months to formulate, these systems may have the perfect trip for you in seconds.

Solving a problem in a family is an interesting task. You take someone's suggestion, who broadcasts it to everyone else in the family, some of whom further make a series of phone calls and there are multiple families solving the problem, and so on. So even if the question was how difficult is a particular exam, there is an entire extended friend-family network onto the job. There are extensive discussions made, phone calls exchanged, questions asked and answered, senseful and senseless comments made, etc. Towards the end a decision may be made. If the people in the network with positive (even if marginal) contribution are high, a good decision may be expected. Similarly an ensemble of intelligent systems may be better than the single counterpart. Problem solving in a college environment is even more interesting. If you have a crush on a Bihari, ask that person; if on a Punjabi, ask him; if on an ultra modern one, ask that guy; and for general suggestions there are always a pool of people. So it is first about selecting the expert, and then taking expert guidance. Alternatively, many other times, one person is responsible for family background checking of your prospective crush, some other is responsible for finding out likes and dislikes, someone else checks out for general behaviour in the home place, and someone else matches the zodiac - they all collectively decide what is the scope and extent of a relationship. And a more common case is a senior passing his work to a junior who splits it into segments and makes his juniors do the work, who may in turn transfer to some other people. As long as everyone does almost the complete work, the problem gets solved, with someone responsible for connecting the solutions. Even intelligent systems divide the work into a modular architecture for an enhanced performance.

Remember there is an intelligent system which deals with choices (evolutionary algorithms). So having too many possible neural networks to solve a problem, too many fuzzy systems to solve a problem, too many modular architectures possible, and too many ensembles possible is not a problem - let an evolutionary algorithm deal with it to make evolutionary neural networks and evolutionary fuzzy systems. So if you are not sure that your intelligent system learnt well, you are not confident about the rules someone plugged in, you doubt if you designed the best possible architecture of your system, you believe your system may have been lazy, or you believe your system may have had bad influence, or you believe you do not have the energy to design a system of choice; in all these cases you can simply recruit an evolutionary algorithm who would be happy to solve the problem for you, in consultation with the base systems. Both working hand-in-hand may best serve you, with some strings attached of course. Or you can say that the fuzzy systems represent the problem well and the neural networks learn well without prior knowledge, so a cool trick would be to make a neural network learn a fuzzy system resulting in an adaptive neuro fuzzy inference system. You could further recruit an evolutionary algorithm to design the complete neuro fuzzy system.

Myself on:

And also on:

Contact

Dr. Rahul Kala
Assistant Professor,
IIIT Allahabad,

Phone: +91 532 299 2117
Mobile: +91 7054 292 063
E-mail: rkala@iiita.ac.in, rkala001@gmail.com