Pages

Sunday, November 22, 2015

Neural Networks in Computer Science



Machine learning is a sub-field of Computer Science that mainly deals with computational learning and pattern recognition in computers. It is essentially a way of teaching computers how to do different things, and they learn how to do these tasks on their own. This is either done through genetic programming, which is where the software is able to go back and edit its own code to improve itself, or via a neural network, which is the focus of this blog post.

As the name implies, a neural network is somewhat similar to a brain. It is a type of software that is able to learn on its own and improve itself. For example, say you have an AI that’s job is to get through a maze. If the AI operates using a neural network, it would have no idea how to solve the maze at first. Gradually, it would slowly learn how to get closer and closer to the end of the maze, and after a lot of trial and error it would be able to solve the maze every time.

Neural networks are becoming more and more common in computer science today, and there are increasingly more areas they can be applied. If you’ve ever used sites like Amazon or Netflix, the movies/items that are recommended to you are a result of a neural network knowing what you’ve been looking at and learning what your interests are. In order to learn how to drive like humans, the Google self-driving car had to slowly learn over time to drive using its neural network. 

Not only does Google use neural networks in their self-driving cars and their search engine, they have also started to use it in images. Google has created a program called “DeepDream” that is capable of recognizing patterns and features in images using a process called algorithmic pareidolia. For example, if you show it an image of a golden retriever, it will analyze the image and be able to tell there’s a dog in the picture. This is an innovative development in computer science, as it is the first AI of its kind that can do something like this.

An unintended but very interesting side effect of this is the interesting images DeepDream is able to produce. Because the software in DeepDream looks for patterns and images in absolutely everything, it will sometimes see patterns and images that aren’t actually present in the image given to it. This has led to the creation of very hallucinogenic images created by DeepDream that can be found online, and there are even websites that allow you to upload pictures to process through DeepDream to create these kinds of psychedelic pictures.

A picture I took camping up north, before and after being put through DeepDream (Click to enlarge).


Another interesting application of neural networks is in gaming. In April 2013, Tom Murphy wrote the paper “The First Level of Super Mario Bros. is Easy with Lexicographic Orderings and Time Travel . . . after that it gets a little tricky”. In it, he details a piece of software he wrote that is able to learn how to play NES video games on its own through trial and error. It works very well playing games like Super Mario Bros., but when he tried to get it to play Pac-Man and Tetris it was not able to play it correctly. YouTube user SethBling created his own version of a similar technology, but instead of being taught how to play the game it uses an evolutionary algorithm, which allows it to “evolve” much in the way biological species do over time and slowly become better at playing the game on its own without human supervision.



This kind of technology, like many things in Computer Science, is still in its infancy. As technology in Computer Science advances, we see computers doing things previously thought only humans could do. The use of neural networks is continuing to be applied to more and more aspects of our lives, and the continued development of this will only serve to benefit us all in the future.

-Erik B.

Sources:

Murphy, Tom, VII Ph.D. "The First Level of Super Mario Bros. Is Easy with Lexicographic Orderings and Time Travel . . . after That It Gets a Little Tricky." Carnegie Mellon University (2012): n. pag. Web. 22 Nov. 2015.  

SethBling. "MarI/O - Machine Learning for Video Games." YouTube. YouTube, 13 June 2015. Web. 22 Nov. 2015.  

No comments:

Post a Comment