# The problem Part 1 of the tutorial "neural-networks". Canonical: https://learn.welldun.ai/neural-networks/01-the-problem/ Five handwritten a's. Why comparing pictures fails, why writing rules fails, and what a network does instead of both. --- How does a computer know these are all the same letter? ## Idea 1 — compare pictures Save one picture of the letter *a*. When a new drawing comes in, check whether it matches. Now look at the five above. None of them match each other. One is bigger. One leans. One is drawn with a thicker pen. A picture only ever matches itself. ## Idea 2 — write rules So write a rule instead. Something like: a round shape with a line down the right side. Then someone draws an *a* where the round part does not close. Your rule says no. But it is still an *a*. So you add another rule. Then another. It never ends. Here is the real trouble. You can spot an *a* in a split second. But you cannot say how you did it. And you cannot write down a rule you cannot explain. ## How does a neural network solve this instead? This is not really about the letter *a*. Plenty of problems work the same way. Telling a cat from a dog. Spotting a face in a photo. Naming a song from two seconds of it. You know the answer the moment you see it, and you still cannot write the rule. That is where a neural network comes in. It is not a brain, and it is not magic. It is a big pile of numbers, plus a fixed set of steps that push your drawing through those numbers to reach an answer. At the start the numbers are random, so the answers are nonsense. Each time it answers, you tell it how wrong it was. It nudges its numbers a little, in the direction that would have been less wrong. Then it tries again. Do that a few thousand times and the numbers settle into something that works. Nobody wrote them down. The network found them by being wrong, over and over. ## What does a neural network need to learn from? You are going to build one. A real one, a piece at a time. But it needs something to learn from: a pile of examples, each one labelled with the right answer. That pile is called a **dataset**, and you are going to make your own. You will invent a few characters that do not exist, and draw each one several times. Those drawings become the examples. And because you made the characters up, nothing out there has ever seen them. No existing program can help you. Everything this network learns will have come from you.