The Basics of Machine Learning

Today, my brother-in-law asked me about machine learning and where it’s going. I’ve been really interested in the field lately, so I wrote a message to illustrate some of the basics. I decided I would post it on here for anyone else who might be interested in learning a bit more. Let me know your thoughts, questions, and any points I might have gone wrong too!

I’m actually getting into machine learning now as the next step in my career since I think it’ll be among the top 3 next big things (3D printing and Virtual Reality being others).

Machine learning specifically differs from artificial intelligence in a fundamental way. Artificial intelligence you build search algorithms the enumerate all possibilities as each step, then choose the option that is the best. So, for chess, for example, it looks at every single move it can possibly make for every one of its chess pieces. Then, for every move it makes, it enumerates every one of the moves its opponent can make. Then, off of each opponents move, every move it can make. This creates a “tree” of possible moves, then it repeats till a set of moves ends the game either in its defeat or its opponents. From there, it chooses the path in the tree that provides for the fastest path to victory, or the move that has the most possible victories in it’s branches.

Still with me? 🙂

Machine learning is different than this. Since the nature of certain games such as the chinese game “Go” has so many possibilities, it becomes impossible to enumerate every possibility. It also is difficult to use this with things like call routing in a call center, or reading emails and parsing language. Machine learning is a program that literally learns based on input. For the game “Go” the basically has it read in a whole bunch of games of go and with that input, and with the goal of performing “winning” moves, it learns. This process is really unpredictable and reading the data is really difficult. However, just recently, Google’s Deepmind did just this and then beat the world champion: https://en.wikipedia.org/wiki/AlphaGo

Right now, the main struggles with machine learning are twofold. Processing power, since the more complex a task, the more data you have to enter into it, and the more storage and processing power it needs to parse the inputs. The second is that these machines that learn respond unpredictably since they have to create their own paths to success. For example, Microsoft created a Twitter account attached to it’s machine learning algorithm for the expressed intent of gaining followers by inputting previous tweets. It became a xenophobic white supremacist and Microsoft has to take it down right away (http://uk.businessinsider.com/microsoft-deletes-racist-genocidal-tweets-from-ai-chatbot-tay-2016-3).

A little more technical information. Right now, the bigger companies provide the ability to input data you want the machine to learn from. So for me, I rent processing space and the use of Google, Microsoft, or IBMs machine learning “brain” and then I train it to do whatever I want. Some companies are using this right now for routing support emails to the right departments with a lot of success by inputting all the previous support emails they received, as well as tagging those with where those emails are supposed to go.

So this technology will improve as people get better at “training” the algorithms, the companies hosting these machine learning brains improve their algorithms to learn more from smaller amounts of inputs, and the amount of processing power becomes more available, cheaper, and faster. A leap forward in Quantum Computing, for example, would have HUGE benefits to machine learning for the increases it would provide in memory space and processing power.

Leave a Reply