We all know that technology is increasing in complexity at an exponential rate, but can computers do everything that the human brain can do? Tasks like being able to recognize the difference between our friends faces or being able to distinguish a cat from a dog are trivial for us, but for a computer it becomes a much more complex problem. Computers are good with clear data as input, like numbers and button presses. But when we give a computer an image or sound, they have a hard time processing that data. So maybe if we told a computer to work like a brain it could solve some of these problems. Turns out, that idea is a good one and it's called a neural network.
A neural network is a program design that is roughly modeled off of how the biological human brain works. For the most part our brains are filled with neurons, and the connections between these neurons are called synapses. When we, as humans, learn something we strengthen the synapses between specific neurons that makes us remember that certain thing. for example when I ask you, “what is three times seven”, you already know that the answer is 21, but how did you know that? Did you go through the process of adding three to itself, seven times in a row? Or did you just remember it? Of course, you just remembered it. But the process of how you did remember it is what we’re interested in. in this case you took the input (3*7), and that set a signal off in your brain to transfer across its neurons to get you to the result of 21. We remember this so easily because the synapses that get us to that result are strong. But maybe when I ask you, “what is the capital of New York?” It might take you a minute to get to the result of Albany. This is because the synapses that it took you to get there are relatively weaker than the things that we have to remember every day.
To model this in a program however is relatively simple. In a high level view, neurons are just represented with nodes and the synapses are the weighted edges that connect these nodes. Now the difficult part about these neural networks is that we physically need to teach these machines what is a correct and incorrect output to a given set of input. So pretty much we let the computer guess until it gets it right. And when it does get it right, we tell it to make the path of edges that it took to get there to have more weight. So the next time that we give it the same input it will have a better idea of which direction to go as it transfers through its nodes. This is just the very simple and high level view of what a neural network actually is, but if you’re interested in learning how to actually implement one for yourself, neural networking a relatively high studied field so it shouldn’t take more than a search.
So the question is, why do we even need these neural networks in the first place? Our brains do a much better job at this process and it isn’t so tedious to teach us as it is to teach a computer. As we become more and more integrated with out technologies such as our phones, we expect these computers to start acting with human like responses. Just think of voice recognition when we talk to Siri, or facial recognition to recognize our friends on Facebook. These tasks are innate for humans to do, but when it comes to computers it is very complex. Neural networks are providing a viable solution to these problems because as we continue to teach these computers more and more they will be able to do human like recognition just as easily as we do. Another key advantage that neural networks have over humans is that we have terrible memory and can only handle a limited amount of input. While on the other hand computers can handle a virtually unlimited amount of input. Say that we have a problem that has one or two variables that could effect a result. As humans we can do this fairly easily, but when it comes to having hundreds or even thousands of different variables that could effect a result, humans are rendered useless. These no way that we would be able to process that much data. And more importantly now that we’re in the “big data” era, we have more data that we even know what to do with. With neural networks we would be able to through as much data as we wanted at a neural network to get a reliable result.
Neural networks are already in practice much more than we think. Like I said above, voice and face recognition are things that use neural networks to handle these types of problems. One cool implementation of a neural network was created by a young woman named Brittany Wenger, a 18-year-old in high school. In a Ted Talk, she describes her story of how she decided that she wanted to make a neural network as a tool for doctors to use in hospitals to accurately diagnose breast cancer. Fine needle aspiration tests are a simple, easy and cheep way for doctors to test for breast cancer, but they are highly inconclusive. So Wenger thought that using these tests as input for her network would be a good idea. After much time and refactoring she finally came to a robust implementation and found that her network was 99 percent accurate for diagnosing breast cancer from these tests. But to make her neural network even “smarter” she needed more data. So she reached out to a hospital in Philadelphia for more data and found that her network diagnosed all of their test correctly.
These neural networks are just beginning to show the true potential of AI. The ability for computers to recognize will soon out preform human capabilities. The next question is just to ask, “how willing are you to trust a computer brain?"