Learn how AI actually works.

iiNNoo is a free set of hands-on, interactive lessons that teach how neural networks learn. Every node shows its value and every connection shows its weight, so you can follow each number through the network and see the math, all of it elementary. No experience required.

Unit 01 · 30 lessons

Forward Propagation

Forward propagation is how a neural network makes a prediction, passing the input values forward through its nodes until they become output values. These lessons show how a neural network makes a prediction. You'll learn about weights, bias, activation functions and hidden layers.

Open the Forward Propagation lessons

Section 1 · 10 lessons

Inputs, Weights & Outputs

An input value travels along a connection and is multiplied by the connection's weight, and the answer becomes the output value.

  1. Observe

    The Zoo Visitors Predictor 01

    This network predicts how many people visit a zoo based on the amount of sunshine. The input value is the hours of sunshine. The output value is the number of visitors. Step through the calculation for the first input. Observe how the weight affects the visitors, then repeat with the other input values.

    Open lesson
  2. Predict

    The Cricket Chirp Predictor

    This network predicts how fast crickets chirp based on the temperature. The input value is the temperature. The output value is the chirps per minute. Crickets chirp about 6 times a minute for each degree, so the connection weight is 6. Before each output value is calculated, predict what it will be. Type your answer when asked.

    Open lesson
  3. Edit

    The Zoo Visitors Predictor 02

    This network predicts how many people visit a zoo based on the amount of sunshine. The input value is the hours of sunshine. The output value is the number of visitors. Right now, this network thinks each hour of sunshine brings 200 visitors. Edit the connection's weight so that each hour of sunshine brings 240 visitors.

    Open lesson
  4. Edit

    The Phone Battery Predictor

    This network predicts phone battery usage when playing a video. The input value is the video length in hours. The output value is the percent of battery used. Edit the connection's weight so that the output values match the target outputs. When the numbers are close, the double lines will turn green. Test with all 4 inputs.

    Open lesson
  5. Observe

    The Mountain Climb Calculator

    This network predicts how the temperature changes as you climb a mountain. The input value is the kilometers climbed. The output value is the change in degrees. The air gets 6 degrees colder for every kilometer, so the weight is negative. Observe how a negative weight makes the output values negative.

    Open lesson
  6. Edit

    The Rainy Picnic Predictor

    This network predicts how many picnics in a park pack up when it rains. The input value is the hours of rain. The output value is the change in picnics. Right now, this network thinks each hour of rain sends 2 picnics home. Edit the weight so that each hour of rain sends 3 picnics home.

    Open lesson
  7. Edit

    The Snow Day Predictor

    This network predicts how a school's attendance changes on a snowy day. The input value is the snow in cm. The output value is the change in students. Edit the connection's weight so that the output values match the target outputs. Hint: the more snow, the more students stay home. Test with all 4 inputs.

    Open lesson
  8. Edit

    The Butterfly Count Predictor

    This network predicts the butterflies in a garden based on the number of flower beds and bushes. The input values are the flower beds and the bushes. The output value is the butterflies. Try to make each bush count twice as much as each flower bed. Edit the second weight to make this happen. Confirm your solution works for all inputs.

    Open lesson
  9. Edit

    The Tomato Harvest Predictor

    This network predicts a garden's tomato harvest. The input values are the daily hours of sun and liters of water. The output value is the kilograms picked. Edit both connection weights so the output values match the target outputs. Hint: both weights are between 0 and 1.

    Open lesson
  10. Edit

    The Smoothie Stand Predictor

    This network predicts a stand's sales based on the temperature. The input value is the temperature. The output values are the smoothies and popsicles sold. Edit both connection weights so that the output values match the target values. It takes 2 steps to calculate both outputs. Confirm your solution works for all inputs.

    Open lesson

Section 2 · 5 lessons

Bias

Each node after the first adds its own bias to the value that arrives, shifting the output value up or down.

  1. Observe

    The Bus Fare Calculator 01

    This network predicts the bus fare based on the number of miles traveled. The input value is the number of miles. The output value is the bus fare. It costs $2.00 to board the bus and $0.75 for each mile traveled. Observe how the bias adds the cost of boarding to every fare, then repeat with the other input values.

    Open lesson
  2. Predict

    The Duck Pond Predictor

    This network predicts the ducks at a pond based on the bags of bread thrown in. The input value is the number of bags of bread. The output value is the ducks. About 4 ducks live there, so the bias is 4. Each bag brings 5 more, so the weight is 5. Before each output value is calculated, predict what it will be. Type your answer when asked.

    Open lesson
  3. Edit

    The Bus Fare Calculator 02

    This network predicts the bus fare. The input value is the number of miles. The output value is the bus fare. It costs $1.50 to board the bus and $1.00 for each mile traveled. Edit the weight and the output node's bias so that the output values match the target values.

    Open lesson
  4. Edit

    The Umbrella Sales Predictor

    This network predicts how many umbrellas a shop sells when it's raining. The input value is the rain in mm. The output value is the umbrellas sold. Your task is to set the weight and bias so its output values match the target values. It may help to zoom out (-) to see all input / output pairs. Confirm your solution works for all inputs.

    Open lesson
  5. Edit

    The Ant Farm Predictor

    This network predicts the ant population of an ant farm after a month. The input value is the grams of food. The output value is the ant population. The farm starts with about 30 ants, and each gram of food adds about 4 more. Edit the weight and the bias so that the output values match the target values.

    Open lesson

Section 3 · 5 lessons

Activation Functions

Once the bias is added, an activation function keeps a positive value just as it is and turns a negative value into zero.

  1. Observe

    The Ice Cream Sales Predictor

    This network predicts ice cream sales based on the temperature outside. The input value is the temperature. The output value is the ice creams sold. None are sold below 60 degrees. Its activation function sets any negative value to zero after the bias is added. Observe how the activation function works as you step through the inputs.

    Open lesson
  2. Predict

    The Hot Chocolate Predictor

    This network predicts how many hot chocolates a stand sells. The input value is the temperature. The output value is the cups sold. It sells about 10 cups at zero degrees, so the bias is 10, and 2 fewer each degree warmer. Predict each output value. Remember, the activation function holds anything below zero at zero.

    Open lesson
  3. Edit

    The Frost Warning Detector

    This network warns gardeners about frost. The input value is the temperature. The output value is the warning level, which grows below 4 degrees. Edit the weight and bias so the output values match the target values. The activation function holds anything below zero at zero.

    Open lesson
  4. Edit

    The Elevator Alarm

    This network sounds an elevator's alarm. The input values are the adults and the children who get on. An adult weighs about 75 kg and a child weighs about 25 kg, so those are the weights. Above 1,200 kg, the alarm gets louder with each kg. Edit the bias so the alarm stays silent until then. The activation function holds anything below zero at zero.

    Open lesson
  5. Edit

    The Cat and Dog Sorter

    This network tells cats from dogs. The input values are ear pointiness and size, from 0 to 5. The weights are set so that pointy ears push toward cat, and size toward dog. Set both biases so each animal's own output value is 1 and the other 0. The activation function holds anything below zero at zero. This one is tricky.

    Open lesson

Section 4 · 5 lessons

Hidden Layers

A hidden layer is a column of middle nodes between the input values and the output values. A neural network can have zero, one or more hidden layers.

  1. Observe

    The Harvest Predictor

    This network predicts a vegetable garden's harvest. The input value is the hours of sunshine. The output value is the kilograms picked. The input value reaches 2 middle nodes, and both middle nodes reach the output value. Observe how the values pass through the middle layer (also known as a hidden layer).

    Open lesson
  2. Predict

    The Summer Party Predictor

    At a summer party, the input value is the number of families and the output value is the cups of lemonade drunk. An average family is 2 adults and 1.5 kids. An adult drinks 1 cup of lemonade. A kid drinks about 2 cups. In the first round, predict each middle node value, then the output value.

    Open lesson
  3. Predict

    The Talent Show Predictor

    This network predicts the audience at a school talent show. The input values are the number of acts and posters put up. Each input value reaches both middle nodes, and both middle nodes reach the output value. In the first round, predict each middle node value, then the output value. Enter your answer when asked.

    Open lesson
  4. Predict

    The School Fair Predictor

    At a school fair, the input value is the number of families and the output values are the cakes sold and the games played. An average family is 2 adults and 1 kid. An adult buys 1 cake and plays half a game. A kid buys 2 cakes and plays 3 games. In the first round, predict each middle node value, then each output value.

    Open lesson
  5. Predict

    The Chicken to Cake Predictor

    On a farm, the amount of chicken feed determines the amount of cake to be baked. The input value is the bags of feed and the output value is the cakes baked in a week. A bag feeds about 2 hens. A hen lays about 5 eggs a week, and a cake takes 2 eggs. In the first round, predict each middle node, layer by layer, then the output value.

    Open lesson

Section 5 · 5 lessons

Weights, Bias & Activation

Every node does three jobs in order: multiply by the weight, add the bias, then apply the activation function.

  1. Observe

    The Big Cat Sorter

    This network sorts big cats by their mane, stripes and speed, each scored from 0 to 3. In the target outputs, 1 indicates which cat species is chosen while 0 indicates which cat species are not chosen. Observe how each output value is worked out. The activation function holds anything below zero at zero.

    Open lesson
  2. Observe

    The Screen Time Predictor

    At home, chores done and pages read determine the amount of screen time earned. The input values are the chores and pages. The output value is the minutes. Each chore earns 10 minutes and each page 2 minutes. The bias takes away 30 minutes owed. Observe how it works. The activation function means you can't go below zero.

    Open lesson
  3. Predict

    The Birthday Book Predictor

    On your birthday, you get money that you can use to buy books. The input value is the dollars and the output value is the books. You owe your friend $10, so the middle node's bias is -10. Each book costs $5. Predict the middle node, then the output value, in the first two rounds. The activation function holds anything below zero at zero.

    Open lesson
  4. Edit

    The Bathtub Predictor

    The amount of time the faucet runs determines how full the tub is. The input value is the minutes and the output value is the liters. The faucet adds 10 liters a minute, but the tub holds only 100. The top middle node counts the water and the bottom one the overflow. The biases are already set. Edit the weights to match the target values.

    Open lesson
  5. Edit

    The Hallway Light Switch

    This network turns a hallway light on when exactly one of two switches is up. Edit the weights and biases so that the output values match the target values. Hint: one middle node can count the switches, and the other can notice when both are up. Click on a connection to see its weight. This one is tricky.

    Open lesson

Ready to learn how AI learns?

Start Learning How AI Learns