After writing a myriad of articles on places to visit, sporting events, exercising and recently a book review, this article deals with what I do for a living – my PhD. While thinking of a PhD usually conjures up images of nerdy people working on concepts beyond a normal person’s level of caring or understanding, it… um… isn’t really like that. Particularly when the topic in question happens to be neural networks – one of the hottest topics in the world right now. If that term is unfamiliar to you, here are some that may be more familiar – machine learning and artificial intelligence. Well, now that I have got your attention (see what I did there, wink wink), let me give a gentle introduction to my PhD area – neural networks.
Think of a baby trying to learn a new concept, such as the alphabet. What would you, as a parent, do? One way would be to sit with the child, point to an ‘A’ and say “That’s an A. It makes the aaa sound, such as apple.” And then you point to a ‘B’, or maybe to another ‘A’, and go on. When you feel your kid knows enough, you write a letter, let’s say ‘A’ again, only this time you don’t tell the baby what it is. Instead, you ask the child to guess what it is. In other words, first you train the kid, then you test him.
Now imagine a machine trying to actually be intelligent and learn things. This is different from how computer programs behave. Programs generally check for conditions and execute instructions accordingly, such as if 2 slanted lines meet and there is a horizontal line in between, that forms an ‘A’. This means that if you show the program a somewhat badly written or distorted ‘A’, the program malfunctions. But the human baby, because he has ‘brains’, can maybe still tell a bad ‘A’. But a machine doesn’t have brains, unfortunately.
Except… we can make it develop brains. Not through programs, but similar to a way a human being learns. Training it with data. Letting it form its own conclusions inside its ‘brain’, just like a baby configures its neural pathways to recognize an ‘A’. In other words, we let the computer configure its own neural network. This is simply a network of nodes with edges connecting them, sort of like a graph. These edges have associated numerical values which get configured according to what the machine is learning. And this is the magic of neural networks, by building a network of appropriate size and complexity, we can make computers become really smart. Smarter than humans on some occasions it seems!
At this point you might be wondering “Ok great, but when do I know that I have the appropriate size and complexity?” The next post will talk about that.