The start up didn't succeed, but I learned about the markets and about Artificial Intelligence. What I knew of before joining the startup there are three levels of Artificial Intelligence:
- neural networks
- fuzzy logic
- genetic algorithms
Neural networks want to artificially organize in hardware or in software simulated neurons. These neurons receive some determined input that could be the value of a sensor or a calculated value. These neurons calculate their inputs and feed those calculated values to the next level of neurons. The idea is that all the values are processed and converted into a value that can be used to decide some action.
Fuzzy logic is interesting that several input values are used to modify an output value. I think of it as the arm of the human body reaching to grasp an object. The human brain adjust the shoulder a little, the elbow a little, the wrist and fingers a little, while the eye supplies feedback about where the hand is located in relation to the object attempting to be grasped. The eye is one input to the brain and the brain adjust several output values (one input and multiple outputs, the opposite of what I described above) to pick up an item.
One classic problem for fuzzy logic is feeding a fuzzy logic system the temperature, if it's sunny or cloudy, the humidity, if it's windy, and attempts to determine if someone would play under those conditions. It's an interesting system.
The third field of artificial intelligence I knew of is genetic algorithms. I think of genetic algorithms in this way. If you have an equation with N variables (many), a brute force of this problem space is very expensive. Genetic algorithms attempts to find a near optimal solution in a short amount of time. A genetic algorithm randomly generates values for each of the variables, then slices and dices these values to find an individual that works well in the equation.
A genetic algorithm relies on an object function. This object function accepts an individual in the genetic population. Each individual has all the random values for testing in the object function. There are several genetic algorithm frameworks. The time setting up one of these systems is spent in the object function. If you can design and test an appropriate object function for your problem, the genetic algorithm is very powerful.
A genetic algorithm works if you have an equation. What if you don't have an equation? There is a sub-field of genetic algorithms called genetic programming. That's for next time.
No comments:
Post a Comment