Using AI Techniques in the Real World


Often people will ask me how to get involved in AI, or what the hell AI is all about. There's really no magic way of getting into AI, and no clear way of defining it. AI is different from other areas of computer science in that there isn't any clear set of technologies which you need to learn. Instead, I'd recommend first getting your career started in mainstream computer science. When you have one or two projects under your belt, begin to think about-and "not think" about-how you could make the project more intelligent. Don't just think about what the #@$!% project manager could have done that was more intelligent-think about how the software itself could have been made more intelligent. If you meditate on it, you should be able to come up with lots of good ideas. The next step should be to figure out what technologies could have been used to make the project more intelligent-and hence more successful. The first thing you should consider is whether you need any further technologies at all-or whether the technologies you are already using would be sufficient to do the job.

Then you need to begin "stalking" (remember Carlos Castaneda and Taisha Abelar?!) a position which allows you to build the intelligent system you have visualized. You may want to submit a proposal to management at your current job with your ideas. Simultaneously, however, you should definitely look into new opportunities as well, since there is no way of predicting how management will react. AI projects always involve a substantial amount of change for the organization, generally even more than IT projects in general. Management may tend to resist change, but if so, you will generally be able to find a different organization which will be open to change. If you feel the time is right for a new idea, if you meditate on it you will find a way to make it happen.

This site provides a number of ideas about specific technology areas you can use to make your software more intelligent. We've looked at rule based systems, neural networks, and genetic algorithms, among others. These specific technologies, and companies that produce these technologies, are definitely a good place to start when building an AI system. However, I need to be honest here: a lot of the time when companies are building real AI systems, they will look at off-the-shelf technologies, but in the end they will decide to build most of their AI system in-house. Why? AI is still a fairly small industry, and so far no clear standards have emerged in the sense that they have in programming, databases, Web design, etc. This may change in the future but at present it's a fairly accurate view of the world. So if you use an off-the-shelf product in AI, there is no guarantee that the product or the company will be around a couple of years down the road. However, if you apply the techniques used in the product in building your own in-house system, you get the best of both worlds: advanced AI technologies with an ability to support it arbitrarily far into the future.

Remember that AI is the "crown chakra" of the IT industry-there is no substitute for getting the lower chakras working properly as well. A successful project in AI will need to include all the "usual suspects" of any successful IT project-good designers, good programmers, good DBAs, good network administrators, good systems people, and so on. AI works best when it works on top of a well designed basic IT system. It's often a warning sign that an AI project is headed for trouble if there is some grand vision for some great AI idea, but no clear plan in place for building the more mainstream IT aspects of the system. AI works by adding intelligent value to good technologies. It doesn't work well when it is placed in a "black box" by itself.

One of the biggest reasons for AI project failure is using technologies that are not appropriate. Sometimes you will have people on a project who have a vested interest in a particular technology, either because it's their "pet technology" or they are consultants working for a vendor which produces said technology. In either case, this can be a recipe for disaster if there is no unbiased mechanism for determining the best way to solve particular problems. What can happen is that people use an advanced AI technology to solve a problem which could much more easily be solved using conventional programming technologies. It isn't good if you spend months of expensive AI developer time building an AI solution which could just as easily be implemented with 50 lines of Java or C++ (and probably produce a much faster running solution). When AI technology is appropriate, it's appropriate. When it's not, it can be really bad news. Your primary goal should be trying to solve a problem in the best possible way for your client. AI should be part of your "bag of tricks", but should never be used if it isn't in the best interests of your client.

You also need to look carefully at how AI will impact the organization you are using it for. Will there be certain individuals who benefit from the success of the project? Will be there others who do not benefit? Who has more political power at the moment? As mentioned earlier, AI projects tend to cause big change in organizations. Sometimes they are tough to get approved because they may be good for the organization as a whole, but not necessarily good for the individuals who make decisions. Try to find out how to make the AI system a win for those individuals as well. Of course, in some organizations there will just be more resistance to change than in other organizations. In general, you want to aim your ideas at the more flexible organizations.

The bottom line is that building a successful AI project is much more about a particular state of mind than it is about particular technologies. Approach a project with that state of mind, and it will be a success, regardless of how much AI is used.

Next edition, we will look at AI markup techniques.



Home: Ramalila.NET



All copyrights are maintained by respective contributors and may not be reused without permission. Graphics and scripts may not be directly linked to. Site assets copyright © 2000 RamaLila.com and respective authors.
By using this site, you agree to relinquish all liabilities and claims financial or otherwise against RamaLila and its contributors. Visit this site at your own risk.