Artificial Intelligence For Developers (In Easy Steps) |
Author: Richard Urwin Easy Step books are colorful and easy to read and they do attempt to break topics down into easy steps. How sucessful they are at breaking a topic down depends very much on the topic and on the face of it you might expect AI to be one of the ones that was difficult. And indeed if you want the topic to be the full theory complete with the mathematics involved then simplifying it would be a tough assignment. You need a good grounding in mathematics to understand AI - but not to implement examples of it in action. This book is a throwback, in a good way, to the days when books were published with listings of complete programs to implement something or other. It uses Python as its main language and to get very much from it you need to be a reasonable Python programmer. You can't get much from this book if you are struggling to understand both the Python and the AI. After explaining some basics, the book gets started proper with creating a chatbot. Now this isn't a chatbot like ChatGPT. This is a re-implementation of ELIZA, the very first chatbot, and it doesn't work in the same way at all. It uses a simple template scheme to essentially turn the clients' statements back at them. If the client says "I am in a hurry" the chatbot changes it into "how do you feel about being in a hurry". It's old and doesn't lead anywhere. It's a part of AI history and if it illustrates anything it is how easy humans are to dupe. Next we have an expert system. This is a rule engine that takes if/then rules and some input data and matches the inputs to the if part of the rules and outputs the then part as a conclusion. This was a very popular approach to AI back in the day and it produced many a company promising that AI would take over from doctors, lawyers and other experts. Of course, it was another flop that lead nowhere. But the history is interesting. The next chapter introduces a model world that is used in many of the following chapters as the basis for an example. The flatworld is basically a simulation of a small ecosystem with plants, herbivores and predictors. It is used in the next chapter to illustrate the idea of fuzzy logic - again another historical technique that has had some limited success. Next we have subsumption and then the genetic algorithm, both of historical interest, but the genetic algorithm may yet have the last laugh. If there is one of the older AI algorithms that might have life in it yet it is probably the genetic algorithm, which provides a novel way to solve optimization problems.
Chapter 8 starts on the material most relvant to today's AI, neural networks. It starts off with the basic idea of the perceptron, a single neuron, and then builds a simple one-layer network. Chapters 9 and 10 are potentially the most relevant to modern AI. Chapter 9 claims to be on pretrained networks, yet it starts off by training a network on the original MINST digit set. Again this is of historical interest and it gives you some idea of how to go about it and how to then make use of the network to implement a calculator that can add numbers written on a piece of paper. However, modern networks are many many times larger than this network and in practice you are unlikely to afford the computer time required to train them. What is slightly more possible is using one of them as a pretrained network to implement something, which isn't what this chapter is about. Chapter 10 is about generative AI but not about adversarial networks or about transformers or attention. Instead we have a classical LSTM recursive network trained to generate names. LSTM recursive networks are interesting, but almost completely ignored today because attention solves the problem better. The final chapter is on low code which is taken to mean using Jupyter notebook to implement some statistical techniques such as regression - I'm not sure why. You might think that because I keep referring to the techniques implemented in this book as classical or historical that I wouldn't recommend this book. This isn't the case, but I recommend it only to readers who want to get their hands on some programs that do things of interest. They may not do them using cutting edge AI techniques, but doing that is difficult and potentially expensive. Here we have an exercise in how much AI you can get on the cheap and while the answer is "not so much" it is still fun and educational to try. To keep up with our coverage of books for programmers, follow @bookwatchiprog on Twitter or subscribe to I Programmer's Books RSS feed for each day's new addition to Book Watch and for new reviews.
|
|||
Last Updated ( Wednesday, 27 November 2024 ) |