Co sieć „widzi": reprezentacje w kolejnych warstwach

🎯 Po co Ci to?

Zostało jedno pytanie, i to najciekawsze: co właściwie siedzi w warstwach ukrytych? Wiemy już, że są tam liczby, i wiemy, jak się je liczy — ale czy da się powiedzieć, co one znaczą? Odpowiedź jest jednym z najpiękniejszych wyników tej dziedziny: sieć sama, bez żadnej podpowiedzi, buduje hierarchię pojęć — od krawędzi do twarzy, od liter do znaczeń. Ta jednostka wyjaśnia, dlaczego to właśnie tutaj kryje się rewolucja uczenia głębokiego, i uczciwie pokazuje, gdzie ten piękny obraz się rozmywa.

✅ Czego się nauczysz

Po tej lekcji potrafisz:

  • wyjaśnić, co znaczy „reprezentacja" w kolejnej warstwie sieci;
  • opisać hierarchię cech od krawędzi do obiektu i uzasadnić, dlaczego powstaje;
  • porównać cechy wymyślone przez człowieka z cechami wyuczonymi przez sieć;
  • wyjaśnić, dlaczego uczenie reprezentacji jest istotą uczenia głębokiego;
  • wskazać granice interpretowania pojedynczych neuronów.

🔁 Przypomnij sobie

Z Jednostki 9.2: inżynieria cech — żmudne, ręczne wymyślanie przez człowieka, które własności danych podać modelowi. Z Jednostki 10.2: warstwy ukryte to te, których wartości nie są ani danymi, ani odpowiedzią, i nikt z góry nie ustala, co mają znaczyć. Właśnie do tego „nikt nie ustala" teraz wracamy.

📘 Wyjaśnienie

Co siedzi w warstwie ukrytej

Weźmy sieć z Jednostki 10.3. Po pierwszej warstwie ukrytej mamy 16 liczb. Nie są to piksele — piksele zostały z tyłu. Nie są też odpowiedzią — odpowiedź jest z przodu. Są czymś pośrednim: opisem tego samego obrazka w innym języku, złożonym z 16 wielkości, których nazw nikt nie podał.

Takiemu opisowi mówimy reprezentacja (albo, gdy podkreślamy jego wektorową naturę, osadzenie — ang. embedding). Sieć, warstwa po warstwie, przekłada dane z jednego opisu na inny: z 784 jasności na 16 czegoś, potem na kolejne 16, a na końcu na 10 pewności. Uczenie polega w dużej mierze na tym, żeby te pośrednie opisy były użyteczne — żeby na ich podstawie łatwiej było odpowiedzieć na pytanie niż na podstawie surowych pikseli.

📐 DEFINICJA — reprezentacja (osadzenie): wektor liczb, którym sieć opisuje dane wewnątrz siebie, na wyjściu warstwy ukrytej.

Po ludzku: to samo zdjęcie zapisane w innym języku — takim, w którym sieci łatwiej odpowiedzieć na pytanie. Czym to NIE jest: to nie skrót ani kompresja pliku; reprezentacja nie służy do odtworzenia oryginału, tylko do rozstrzygnięcia konkretnego zadania. Ta sama fotografia w sieci rozpoznającej twarze i w sieci wykrywającej rasę psa dostanie zupełnie różne reprezentacje.

Hierarchia: od krawędzi do obiektu

Najbardziej niezwykłe jest to, że reprezentacje kolejnych warstw układają się w porządek od prostego do złożonego — i że nikt tego porządku nie zaprogramował. Gdy zbadamy, na co reagują neurony sieci rozpoznającej obrazy (bada się to, szukając obrazków, które maksymalnie pobudzają dany neuron), widać taki układ:

 warstwa 1   →   warstwa 2   →   warstwa 3   →   warstwa 4
 ─────────       ─────────       ─────────       ─────────
 krawędzie       narożniki       części          całe
 i plamy         i łuki          obiektów        obiekty
 barwne          proste          (oko, koło,     (twarz, kot,
                 kształty        opona)          samochód)

 „gdzie jasne    „gdzie kąt      „gdzie coś      „co to jest"
  spotyka         i krzywizna"    znanego"
  ciemne"

Dlaczego tak? Bo każda warstwa może korzystać wyłącznie z tego, co dostała od poprzedniej. Pierwsza widzi piksele, więc najbardziej użyteczne, co może wykryć, to lokalne różnice jasności — czyli krawędzie. Druga nie widzi już pikseli, tylko informację o krawędziach, więc jej naturalnym „następnym krokiem" jest wykrywanie układów krawędzi: narożników, łuków. Trzecia składa łuki w części obiektów. I tak dalej. Hierarchia nie jest odgórnym pomysłem projektanta — jest konsekwencją tego, że warstwy są ułożone jedna za drugą.

To zjawisko ma ładny odpowiednik w biologii. Hubel i Wiesel w badaniach kory wzrokowej kota (praca, za którą dostali Nagrodę Nobla w 1981 roku) odkryli komórki reagujące na krawędzie o określonym nachyleniu, a wyżej w hierarchii — na bardziej złożone kształty. Zbieżność jest uderzająca, choć trzeba ją czytać ostrożnie: sieci nie zbudowano na podstawie tych odkryć, a mimo to wyszło podobnie. Prawdopodobnie dlatego, że jest to po prostu dobry sposób przetwarzania obrazu — dochodzi się do niego niezależnie, ewolucyjnie i obliczeniowo.

Rewolucja: koniec ręcznego wymyślania cech

Teraz staje się jasne, dlaczego uczenie głębokie zmieniło całą dziedzinę. Przypomnij sobie z Jednostki 9.2, jak wyglądało rozpoznawanie obrazów przed 2012 rokiem: człowiek wymyślał cechy. Zespoły badaczy publikowały prace o coraz sprytniejszych sposobach opisania obrazka liczbami — histogramy gradientów, deskryptory punktów charakterystycznych, filtry tekstur. Cechy trzeba było wymyślić, zaprogramować, przetestować, poprawić. Praca na lata, osobno dla każdego zadania, i za każdym razem wąskim gardłem był pomysł człowieka.

Sieć głęboka odwraca ten porządek: dostaje surowe piksele i sama znajduje cechy użyteczne dla zadania. Nikt nie mówi jej „szukaj krawędzi" — ona dochodzi do krawędzi, bo to się opłaca. Nikt nie mówi „oczy są ważne dla twarzy" — wychodzi jej to z danych. Dlatego uczenie głębokie nazywa się czasem, i to celniej niż „głębokim", uczeniem reprezentacji: model uczy się nie tylko odpowiedzi, ale przede wszystkim własnego języka opisu danych.

Konsekwencja jest rozległa: skoro cechy wymyśla model, to ten sam schemat da się przenieść na inne dane. Ta sama idea działa na obrazach (Dział 12), na słowach (Jednostka 14.3, gdzie osadzenia okażą się mieć wręcz zaskakującą strukturę geometryczną) i na dźwięku. To dlatego jedna rodzina metod zdominowała tak różne dziedziny.

Reprezentacja jako miejsce w przestrzeni

Jest jeszcze jeden sposób patrzenia na reprezentacje, który później bardzo się przyda. Jeśli reprezentacja to 16 liczb, to jest ona punktem w przestrzeni 16-wymiarowej. Nie da się jej narysować, ale można o niej myśleć jak o współrzędnych: każdy obrazek dostaje swoje miejsce.

I dzieje się rzecz kluczowa: dobrze wytrenowana sieć umieszcza podobne przypadki blisko siebie. Wszystkie siódemki lądują w jednym rejonie, wszystkie zera w innym; niestarannie napisana siódemka trafia gdzieś na pogranicze z jedynkami. Ostatnia warstwa ma potem łatwe zadanie: skoro klasy zajmują osobne obszary, wystarczy je rozdzielić — a to potrafi już nawet pojedynczy neuron (Jednostka 10.1). Można więc powiedzieć, że warstwy ukryte robią całą trudną pracę: przekładają dane na taki układ współrzędnych, w którym problem staje się prosty.

Uczciwie o granicach: neurony rzadko znaczą jedną rzecz

Obraz z ładnej hierarchii wyżej jest prawdziwy, ale wygładzony, i trzeba to powiedzieć wprost.

Po pierwsze, pojedynczy neuron zwykle nie odpowiada jednemu czytelnemu pojęciu. Częściej reaguje na dziwną mieszankę rzeczy — na przykład na „koci pysk oraz przednie części samochodów", bez sensownego wspólnego mianownika. Zjawisko to nazywa się wieloznacznością neuronów i wynika z tego, że sieć musi zmieścić więcej pojęć niż ma neuronów, więc koduje je rozproszonymi wzorcami pobudzeń, a nie pojedynczymi jednostkami. Znaczenie leży w układzie wielu neuronów, nie w jednym.

Po drugie, hierarchię „krawędzie → części → obiekty" widać wyraźnie w sieciach konwolucyjnych przetwarzających obrazy (Dział 12) i to na nich zrobiono najsłynniejsze wizualizacje. W innych architekturach i innych dziedzinach bywa mniej czytelnie.

Po trzecie, wszystkie te opisy są rekonstrukcjami po fakcie. Nie odczytujemy z sieci etykiet „tu jest detektor krawędzi" — my ich szukamy, podając modelowi obrazki i patrząc, co go pobudza. To działalność bliższa neurobiologii eksperymentalnej niż czytaniu kodu, i tworzy osobną dziedzinę: interpretowalność modeli. Jej stawka jest wysoka i nie tylko naukowa — bez niej nie da się rzetelnie odpowiedzieć na pytanie, dlaczego model odmówił komuś kredytu (Jednostki 12.4 i 20.3).

💭 Pomyśl: Mamy sieć nauczoną rozpoznawać 1000 rodzajów obiektów na zdjęciach. Chcemy teraz zbudować model rozpoznający 12 gatunków ptaków, ale mamy tylko 500 zdjęć. Dlaczego zamiast uczyć nową sieć od zera, opłaca się wziąć tę pierwszą, wyrzucić jej ostatnią warstwę i douczyć tylko nową warstwę wyjściową?

Sprawdź odpowiedź

Bo warstwy ukryte pierwszej sieci już zawierają użyteczne reprezentacje wizualne: detektory krawędzi, kształtów, tekstur, części obiektów. Te rzeczy są potrzebne do rozpoznawania czegokolwiek na zdjęciach, w tym ptaków — więc byłoby marnotrawstwem uczyć ich od nowa. Tym bardziej, że z 500 zdjęć nie da się ich sensownie nauczyć: sieć o milionach parametrów przy tak małym zbiorze po prostu się przeuczy (Jednostka 9.3).

Wykorzystujemy więc gotowe reprezentacje jako „język opisu obrazu" i uczymy tylko końcowego rozstrzygnięcia: jak z tego opisu wyczytać gatunek ptaka. To garść parametrów zamiast milionów, więc 500 zdjęć może wystarczyć. Ta technika nazywa się uczeniem transferowym i jest dziś domyślnym sposobem pracy przy skromnych zbiorach danych; dodajmy, że jest też jednym z głównych powodów, dla których duże modele wytrenowane raz przez wielkie firmy stały się tak wpływowe — wracamy do tego w Działach 17 i 20.

⚠️ Uwaga, pułapka

Największa pułapka tej jednostki to nadmierne uczłowieczanie reprezentacji. Gdy czytasz, że „sieć wykryła oko", łatwo pomyśleć, że sieć rozumie, czym jest oko: że służy do patrzenia, że zwierzęta je mają, że można je zamknąć. Nic z tego. Neuron reaguje na pewien statystyczny wzorzec w pikselach, który dla nas wygląda jak oko — i który w tych danych okazał się przydatny do zgadywania etykiety. Model nie ma pojęcia „oko", ma korelację.

Ta różnica nie jest akademicka: to dlatego modele dają się nabrać na obrazy zmienione w sposób niewidoczny dla człowieka (przykłady adwersaryjne, Jednostka 12.5) i dlatego rozpoznają krowę na łące, a nie rozpoznają jej na plaży (tło było częścią wzorca). Pytanie, czy między „bardzo dobrą korelacją" a „rozumieniem" jest różnica jakościowa, czy tylko stopnia, jest jednym z najpoważniejszych w tej książce — i wraca w Dziale 19.

🌍 Powiązania

Ta jednostka jest zawiasem między częściami. Hierarchia cech dostanie konkretną, policzalną postać w sieciach konwolucyjnych (Dział 12, zwłaszcza 12.4). Idea reprezentacji jako punktu w przestrzeni wróci przy słowach: w Jednostce 14.3 zobaczysz, że osadzenia słów mają strukturę, w której da się wykonywać działania na znaczeniach. Uczenie reprezentacji jest też odpowiedzią na pytanie, czemu przełom 2012 roku (Dział 13) był przełomem. A pytanie „czy to już rozumienie" prowadzi wprost do Działu 19.

📐 Definicje tej lekcji

  • Reprezentacja (osadzenie, embedding) — wektor liczb, którym sieć opisuje dane w warstwie ukrytej.
  • Hierarchia cech — układ reprezentacji od prostych (krawędzie) do złożonych (obiekty) w kolejnych warstwach.
  • Uczenie reprezentacji — uczenie modelu własnego języka opisu danych, a nie tylko odpowiedzi.
  • Uczenie transferowe — wykorzystanie reprezentacji z modelu nauczonego na jednym zadaniu do innego zadania.
  • Wieloznaczność neuronów — reagowanie jednego neuronu na kilka niepowiązanych pojęć.
  • Interpretowalność — dziedzina zajmująca się odczytywaniem, co i jak model zakodował w środku.

📌 Najważniejsze w pigułce

  • Warstwa ukryta zawiera reprezentację — opis danych w języku, którego nikt sieci nie podał.
  • Reprezentacje układają się w hierarchię (krawędzie → kształty → części → obiekty), i to jako konsekwencja układu warstw, nie zamysłu projektanta.
  • Przed 2012 rokiem cechy wymyślał człowiek; sieć głęboka znajduje je sama z surowych danych. To jest właściwa treść rewolucji uczenia głębokiego.
  • Reprezentacja to punkt w przestrzeni wielowymiarowej; sieć uczy się układać podobne przypadki blisko siebie, żeby ostatnia warstwa miała łatwe zadanie.
  • Gotowe reprezentacje da się przenosić na nowe zadania (uczenie transferowe) — ratunek przy małych zbiorach danych.
  • Pojedynczy neuron rzadko znaczy jedną rzecz; znaczenie jest rozproszone między wiele neuronów.
  • „Sieć wykryła oko" znaczy „reaguje na wzorzec pikseli", a nie „rozumie, czym jest oko".

🎒 Zadania

Zadanie 10.4.1. Wyjaśnij, dlaczego pierwsza warstwa ukryta sieci przetwarzającej obrazy wykrywa krawędzie, a nie na przykład całe twarze. Odwołaj się do tego, jakie informacje ma dostępne każda warstwa.

Pokaż rozwiązanie

Bo pierwsza warstwa ukryta widzi wyłącznie surowe piksele — pojedyncze wartości jasności, bez żadnej informacji o wyższym poziomie. Neuron tej warstwy liczy sumę ważoną jasności; najbardziej użyteczne, co można wyrazić taką sumą, to lokalne kontrasty: „w tym miejscu jasne piksele stykają się z ciemnymi", czyli krawędź (wystarczy dodatnia waga po jednej stronie i ujemna po drugiej — porównaj rolę znaku wagi z Jednostki 10.1).

Wykrycie twarzy wymaga informacji o wzajemnym układzie wielu elementów — dwoje oczu obok siebie, nos poniżej, całość w owalu. Tej informacji w pojedynczych pikselach nie ma; trzeba ją zbudować stopniowo, warstwa po warstwie, bo każda warstwa może operować tylko na tym, co dostała od poprzedniej. Dlatego twarze pojawiają się w warstwach głębokich, a krawędzie w pierwszej — i dlatego hierarchia jest właściwie nieunikniona.

Zadanie 10.4.2. Porównaj dwa podejścia do rozpoznawania gatunków drzew ze zdjęć liści: (a) człowiek mierzy 12 cech (długość, szerokość, liczba klap, kształt brzegu…) i podaje je modelowi; (b) sieć głęboka dostaje surowe zdjęcia. Wskaż po dwie zalety każdego podejścia i rozstrzygnij, kiedy wybrałbyś pierwsze.

Pokaż rozwiązanie

Zalety (a) — ręcznych cech: potrzeba znacznie mniej danych (12 cech to mały model, wystarczy kilkaset przykładów zamiast dziesiątek tysięcy zdjęć) oraz pełna wyjaśnialność (widać wprost, że rozstrzygnął kształt brzegu; da się to pokazać botanikowi i sprawdzić). Dodatkowo wiedza eksperta jest wbudowana w model, więc nie musi być odkrywana od nowa.

Zalety (b) — surowych zdjęć: sieć znajduje cechy, których człowiek nie wymyślił (subtelne układy nerwacji, tekstura powierzchni, wzór unerwienia przy nasadzie) oraz nie trzeba nic mierzyć ręcznie, co przy tysiącach zdjęć jest różnicą między projektem możliwym i niemożliwym.

Podejście (a) wybrałbym, gdy: mam mało danych (kilkaset okazów), gdy muszę uzasadnić rozstrzygnięcie (ekspertyza, publikacja naukowa, dokumentacja urzędowa), gdy pomiary i tak są wykonywane w ramach istniejącej procedury zielnikowej, albo gdy model ma działać na prostym sprzęcie w terenie. To ta sama reguła co w Jednostce 9.5: nie „co jest nowocześniejsze", ale „ile mam danych i czy muszę wytłumaczyć decyzję".

Zadanie 10.4.3. Sieć wytrenowana na zdjęciach krów na zielonych pastwiskach rozpoznaje krowy bardzo dobrze, ale zdjęcie krowy na plaży klasyfikuje jako „pies". (a) Wyjaśnij, co prawdopodobnie znalazło się w reprezentacjach tej sieci. (b) Powiąż to z pojęciem z Jednostki 9.2. (c) Zaproponuj dwa sposoby naprawy.

Pokaż rozwiązanie

(a) Sieć niemal na pewno nauczyła się, że zielone tło jest cechą krowy — bo w jej danych treningowych korelacja między krową i pastwiskiem była niemal doskonała, a tło zajmuje większość pikseli, więc jest sygnałem tanim i skutecznym. Model nie „oszukuje": robi dokładnie to, o co go poprosiliśmy, czyli szuka wzorca najlepiej przewidującego etykietę w podanych danych. Tylko że ten wzorzec nie jest krową.

(b) To niereprezentatywność zbioru treningowego (Jednostka 9.2): dane nie odzwierciedlały pełnej zmienności sytuacji, w których model ma działać. Zjawisko ma też własną nazwę — uczenie się skrótu (ang. shortcut learning): model chwyta najłatwiejszą dostępną korelację zamiast właściwej cechy.

(c) Dwie naprawy. Pierwsza, najważniejsza: poszerzyć dane — dołożyć krowy na plaży, w oborze, w śniegu, na drodze, żeby tło przestało być użytecznym sygnałem. Druga: augmentacja danych, czyli sztuczne przekształcanie zdjęć (zmiana barw, wycinanie fragmentów, podmiana tła), która zmusza sieć do szukania cech niezależnych od otoczenia. Warto też sprawdzić model testem na tłach nietypowych, zanim uzna się go za gotowy — bo globalna trafność tego problemu nie pokaże (Jednostka 9.4).

🔍 Sprawdź, czy umiesz

  • [ ] Wyjaśnić, czym jest reprezentacja w warstwie ukrytej i czym nie jest.
  • [ ] Opisać hierarchię cech i uzasadnić, dlaczego powstaje sama.
  • [ ] Porównać cechy wymyślone przez człowieka z wyuczonymi przez sieć.
  • [ ] Wyjaśnić, dlaczego uczenie głębokie nazywa się uczeniem reprezentacji.
  • [ ] Wyjaśnić na przykładzie, na czym polega uczenie transferowe.
  • [ ] Wskazać trzy powody, dla których nie należy czytać pojedynczego neuronu jako pojęcia.

Ucz się tej jednostki z asystentem