Sieci neuronowe od podstaw do nowoczesnej AI · Backpropagation — jak sieć się uczy
Backprop Ninja: ręczny backward przez cross-entropy, linear, tanh i batch-norm
Backpropagation — jak sieć się uczy
Wprowadzenie
Karpathy w "makemore part 4" pokazuje, że framework jak PyTorch oddziela cię od tego, co naprawdę robi backward — i że dopóki nie wyprowadzisz gradientów ręcznie przez cross-entropy z fused softmax, warstwę liniową, tanh oraz batch-norm, nie masz prawa nazywać siebie inżynierem deep learningu. Ta lekcja przechodzi przez dokładnie te cztery operacje: dlaczego dL/dlogits = (p - y_true) / N jest tak elegancki tylko dlatego że softmax i CE łączą się analitycznie; jak warstwa liniowa Y = X·W + b daje trzy gradienty (dW = X^T · dY, db = sum(dY, axis=0), dX = dY · W^T) i czemu kształty muszą się zgadzać; czemu tanh'(x) = 1 - tanh(x)^2 pozwala liczyć backward bez ponownego dotykania wejścia; oraz jak batch-norm — z jego μ, σ, x_hat i affine γ, β — ma pięć ścieżek gradientu, które Karpathy wyprowadza linijka po linijce. Po drodze pokazujemy gradcheck numeryczny (pochodna centralna ze step h≈1e-4), typowe błędy (zapominanie /N, in-place ops łamiące autograd) oraz fakt, że gdy raz wyprowadzisz to ręcznie, bug w treningu rozpoznasz po kształcie tensora a nie po stack trace.