A few days back Mihai commented an interest in the Artificial Intelligence work that I’ve undertaken in the past. I figure that a short run-down of the kinds of problems I’ve tackled might be interesting.
Since 2004 I have run my own A.I. research consultancy – I’m blogging about the experience of becoming a freelance programmer and researcher at the moment (part 2, part 3, several more to come).
Currently I’m working with PANalytical in the UK R&D lab (under Professor. Paul Fewster) to apply evolutionary search algorithms and statistical analysis to multi-dimensional search problems along with an old colleague from MASA (John Anderson).
We’re looking at improving their highly-regarded Epitaxy and Reflectivity X-Ray analysis tools so that they can solve more complex problems more quickly and reliably.
Techniques include evolutionary algorithms, pattern matching, statistical signal processing and a lot of lateral thinking. I won’t say any more as the details are confidential and my work is on-going.
I enjoyed some ad-hoc work at Ambiental previously on their flood-modelling software. The interesting side of things is thinking about what you can when you can accurately model floods – can you predict the best place for flood defences? Can you apply the same techniques to crowds or gas dispersal (e.g. bombs)?
During 2003 and 2004 I worked at Algorithmix on Natural Language Processing problems under Nick Jakobi (now at Google). Up until Corpora acquired Algorithmix I worked on cutting-edge approaches to sentiment analysis and for new-news ‘burst’ reporting.
During that time I also did my own work looking at the use of Bayesian Algorithms (which were becoming rather hot for personal spam filtering) for network-based spam filtering. I worked on the assumption that ISPs saw lots of the same spam so training a filter would be much more efficient at the ISP than on the end-user’s machine.
Algorithmix was spun out of the French MASA Group where I was Senior Programmer for 5 years. I worked on the logistics optimisation side of the business (competing with iLog) into what is now the Blue Kaizen division.
The general work was to use evolutionary search algorithms on heavily-constrained logistics problems to e.g.
- Route postmen efficiently in vans to collect mail
- Route petrol tankers to deliver fuel to many cities on complex road networks with varying traffic levels
- Route waste-collection trucks which handle different types of waste to the appropriate management facility whilst respecting French hours-worked rules and road systems.
These problems were reasonably representative of the hardest logistics problems that high-end desktop computers could solve at the time, given the constraints of the problems.
I’ve always had an interest in electronic circuit design and in my early days at MASA I did some of my own research into floor planning, routing and device placement. Each of these are hard problems which will only get harder as e.g. our CPUs become more complex.
Another area of research at MASA was in the world of financial trading. I was involved in a long project on straight-forward stock market prediction (and no, it wasn’t successful and don’t get me started).
Later, separate from MASA, I was involved in a short piece of work looking at baskets of tradable financial instruments for statistical arbitrage which was fun.
Is AI alive and well? Yes, of course it is. It isn’t necessarily GOFAI and robots don’t clean our houses but there’s a heck of a lot that AI offers us.
One of the big reasons that I like AI is that it can be used to relieve humans of a lot of the tedium of analysing large amounts of data:
- Spam classifiers will have to get more-AI-ish to deal with the visual and language elements that spammers keep bringing to the party
- Logistics optimisation will get more complex as we have more constraints, more things to do and less time for planning
- Circuit designs continue to follow Moore’s law and get more complex at a frightening rate.
- As physics analysis machines become more complex the wealth of data becomes un-navigable unless you have the appropriate analysis tools.
What to get involved? If you don’t have a background in the area then find a subject that interests you, do some reading and choose a flexible dynamic language so that you can iterate quickly (I favour Python for all my AI work with number crunching in C++).
[I shall quickly plug our ShowMeDo's Python tutorial videos, there is nothing directly for A.I. in the list but there are videos for programming, physics, graphics and useful utilities that are associated with the domain.]
Search Amazon for terms like ‘artificial intelligence’, ‘evolutionary algorithms’ and ‘natural language processing’. I like ‘New ideas in Optimisation‘ by Corne, Dorigo and Glover (click the link and click the author’s names to see the AI books they published themselves).
You’ll find plenty of resources on the web and feel free to leave a comment if you’d like a bit of guidance on how to get started.