<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Grad School: Build a Neural Network Framework from Scratch</title><id>https://indicogni.com/build-your-own/neural-network/</id><link href="https://indicogni.com/build-your-own/neural-network/"/><link rel="self" href="https://indicogni.com/build-your-own/neural-network/feed.xml"/><updated>2026-09-30T00:00:00Z</updated><author><name>RD</name></author>
  <entry><title>01 A function with knobs</title><id>https://indicogni.com/build-your-own/neural-network/lessons/01-machine-learning-fitting-a-line/</id><link href="https://indicogni.com/build-your-own/neural-network/lessons/01-machine-learning-fitting-a-line/"/><updated>2026-09-30T00:00:00Z</updated><summary>Machine learning starts with a function that has knobs. Fit a line to taxi fares by eye with two sliders, then write predict_line in plain Python.</summary></entry>
  <entry><title>02 How wrong is wrong?</title><id>https://indicogni.com/build-your-own/neural-network/lessons/02-mean-squared-error/</id><link href="https://indicogni.com/build-your-own/neural-network/lessons/02-mean-squared-error/"/><updated>2026-09-30T00:00:00Z</updated><summary>Why a loss squares its errors: signed errors cancel. Write mean squared error, mean absolute error and a grid search over lines in plain Python.</summary></entry>
  <entry><title>03 Downhill in the dark</title><id>https://indicogni.com/build-your-own/neural-network/lessons/03-gradient-descent/</id><link href="https://indicogni.com/build-your-own/neural-network/lessons/03-gradient-descent/"/><updated>2026-09-30T00:00:00Z</updated><summary>Gradient descent from scratch: measure a slope by nudging, step downhill, and see why too big a learning rate never arrives. Plain Python.</summary></entry>
  <entry><title>04 The simplest decision</title><id>https://indicogni.com/build-your-own/neural-network/lessons/04-perceptron-sigmoid-neuron/</id><link href="https://indicogni.com/build-your-own/neural-network/lessons/04-perceptron-sigmoid-neuron/"/><updated>2026-09-30T00:00:00Z</updated><summary>A step function can&#x27;t be trained: its slope is zero. Build a sigmoid neuron in Python, train it on AND and OR, and watch it fail on XOR.</summary></entry>
  <entry><title>05 Bending space</title><id>https://indicogni.com/build-your-own/neural-network/lessons/05-nonlinearity-xor/</id><link href="https://indicogni.com/build-your-own/neural-network/lessons/05-nonlinearity-xor/"/><updated>2026-09-30T00:00:00Z</updated><summary>Two linear layers collapse into one. See why, add a ReLU kink, and compute XOR with a two-layer network written in plain Python.</summary></entry>
  <entry><title>06 The bill for nudging</title><id>https://indicogni.com/build-your-own/neural-network/lessons/06-finite-differences-cost/</id><link href="https://indicogni.com/build-your-own/neural-network/lessons/06-finite-differences-cost/"/><updated>2026-09-30T00:00:00Z</updated><summary>Finite differences cost one forward pass per parameter. Count the calls, plot the bill, and see why 10,000 knobs need backpropagation.</summary></entry>
  <entry><title>07 A number that remembers</title><id>https://indicogni.com/build-your-own/neural-network/lessons/07-computation-graph-value/</id><link href="https://indicogni.com/build-your-own/neural-network/lessons/07-computation-graph-value/"/><updated>2026-09-30T00:00:00Z</updated><summary>Build a micrograd-style Value class in Python that records its parents and its operation, and draw the computation graph it makes.</summary></entry>
  <entry><title>08 Who owes the gradient?</title><id>https://indicogni.com/build-your-own/neural-network/lessons/08-backpropagation-chain-rule/</id><link href="https://indicogni.com/build-your-own/neural-network/lessons/08-backpropagation-chain-rule/"/><updated>2026-09-30T00:00:00Z</updated><summary>Backpropagation is the chain rule: local slopes multiply. Work a small graph backward by hand, then give + and * their backward in Python.</summary></entry>
  <entry><title>09 Many paths, one sum</title><id>https://indicogni.com/build-your-own/neural-network/lessons/09-gradient-accumulation/</id><link href="https://indicogni.com/build-your-own/neural-network/lessons/09-gradient-accumulation/"/><updated>2026-09-30T00:00:00Z</updated><summary>A value used twice gets gradient from both paths. See how = instead of += silently breaks backprop, and fix it with gradient accumulation.</summary></entry>
  <entry><title>10 The order of blame</title><id>https://indicogni.com/build-your-own/neural-network/lessons/10-topological-sort-backprop/</id><link href="https://indicogni.com/build-your-own/neural-network/lessons/10-topological-sort-backprop/"/><updated>2026-09-30T00:00:00Z</updated><summary>Backprop must visit the graph in topological order. Watch breadth-first get it wrong, then write an iterative topological sort and backward().</summary></entry>
  <entry><title>11 Trust, but verify</title><id>https://indicogni.com/build-your-own/neural-network/lessons/11-gradient-checking/</id><link href="https://indicogni.com/build-your-own/neural-network/lessons/11-gradient-checking/"/><updated>2026-09-30T00:00:00Z</updated><summary>Gradient checking with central differences and relative error: measure five derivatives, catch a planted wrong formula, and write gradcheck.</summary></entry>
  <entry><title>12 A network that trains itself</title><id>https://indicogni.com/build-your-own/neural-network/lessons/12-neural-network-from-scratch/</id><link href="https://indicogni.com/build-your-own/neural-network/lessons/12-neural-network-from-scratch/"/><updated>2026-09-30T00:00:00Z</updated><summary>Build a neural network from scratch: Neuron, Layer and MLP on your own autograd engine, trained on XOR and two-moons in your browser.</summary></entry>
</feed>
