Przejdź do treści
Cyfrowa Pracownia
Materiały dla ucznia

Dane uczące i błędy modelu

AI Klasy VII i VIII Za darmo, bez logowania

Uczeń pokazuje na własnym modelu, że jakość i skład danych uczących decydują o tym, gdzie model się myli.

Czego się nauczysz

Wpływ danych uczących na model

Wiesz, że model uczy się tylko z przykładów, które mu pokażesz, i potrafisz wskazać, czego w tych przykładach zabrakło.

Wykrywanie i opisanie błędu modelu

Umiesz znaleźć przypadek, w którym model się myli, i napisać jednym zdaniem, skąd ten błąd się wziął.

Program, który rozpoznaje obrazy, nie dostaje od nikogo definicji w stylu „kółko to zamknięta krzywa”. Dostaje przykłady i sam wyłapuje z nich wzorce. Z tego materiału dowiesz się, skąd biorą się pomyłki takiego programu i dlaczego prawie każdą da się wytłumaczyć tym, czego zabrakło w przykładach, a nie tym, że coś się zepsuło.

Skąd model w ogóle cokolwiek wie

Model to program, który sam ustala reguły na podstawie pokazanych mu przykładów. Ty nie piszesz mu instrukcji. Ty dostarczasz materiał: zestaw zdjęć podpisanych nazwą tego, co na nich jest. Ten materiał nazywa się danymi uczącymi, a nazwa, którą rozpoznaje model, nazywa się klasą. Pojedyncze zdjęcie z kamery to klatka, czyli jeden przykład.

Gdy naciskasz przycisk trenowania, model przegląda wszystkie klatki i szuka tego, co odróżnia jedną klasę od drugiej. Nie rozumie przy tym, czym jest kartka, dłoń czy długopis. Szuka wyłącznie różnic w obrazie. Jeśli w klatkach klasy „kółko” zawsze było jasne tło, a w klatkach klasy „krzyżyk” zawsze ciemne, model najprawdopodobniej nauczy się jasności tła, bo to najprostsza różnica, jaką znalazł.

Stąd bierze się najważniejsza zasada tej lekcji: model nie ma żadnej wiedzy o świecie poza tym, co mu pokazałeś. Wszystko, czego w przykładach nie było, dla niego nie istnieje. Około 30 klatek na klasę wystarczy, żeby model zaczął działać na lekcji, ale liczba to nie wszystko. Trzydzieści klatek zrobionych w jednej pozycji jest dla modelu wciąż tylko jednym przypadkiem.

Spróbuj sam

Otwórz teachablemachine.withgoogle.com, wybierz projekt obrazu i zrób model z dwiema klasami: kartka z kółkiem i kartka z krzyżykiem. Nagraj po około 30 klatek, cały czas w tym samym miejscu. Wytrenuj model i sprawdź, że działa. Potem przesuń się z kartką w inne miejsce w pokoju. Jeśli model nagle zaczyna się mylić, właśnie zobaczyłeś, że nauczył się czegoś innego, niż myślałeś.

Ty widzisz przedmiot, model widzi obraz

Kiedy patrzysz na kartkę z kółkiem, Twój mózg automatycznie odfiltrowuje stół, ścianę, cień i Twoją rękę. Model tego nie robi. Dla niego cała klatka jest jedną całością i wszystko, co się na niej znalazło, jest równie ważnym tropem. Tło, oświetlenie, odległość od kamery, kolor Twojego rękawa, wszystko to trafiło do danych uczących razem z przedmiotem.

Dlatego model potrafi działać znakomicie w sali, w której go zbudowałeś, i przestać działać w innej sali. Nic się w nim nie zmieniło. Zmienił się obraz, a model nigdy nie widział takiego obrazu. To samo dzieje się w drugą stronę: model, który widział przedmiot tylko z bliska, gubi się, gdy odsuniesz go na pół metra, bo przedmiot zajmuje wtedy zupełnie inną część kadru.

Wniosek praktyczny jest prosty. Jeśli chcesz, żeby model rozpoznawał przedmiot, a nie miejsce, musisz pokazać mu ten przedmiot w wielu miejscach. Różnorodność przykładów jest ważniejsza niż ich liczba. Dziesięć klatek z pięciu różnych teł uczy model więcej niż sto klatek z jednego tła.

Spróbuj sam

Zrób test tła. Wytrenuj model na dwóch przedmiotach leżących na tej samej ławce. Potem, nie zmieniając nic w modelu, połóż oba przedmioty na kartce wyraźnie ciemniejszej albo jaśniejszej od ławki i pokaż je kamerze. Zapisz, przy którym przedmiocie model się pomylił. To Twój pierwszy udokumentowany błąd danych uczących.

Procent pewności to nie to samo co prawda

Przy każdej odpowiedzi model pokazuje liczbę, na przykład 94 procent. Wielu ludzi czyta to jako „model jest prawie pewien, że ma rację”. To nieporozumienie. Ta liczba mówi tylko, jak bardzo obraz pasuje do jednej klasy w porównaniu z pozostałymi klasami, które model zna. Nie ma w niej żadnej informacji o tym, czy odpowiedź jest zgodna z rzeczywistością.

Jeżeli model zna tylko dwie klasy, kółko i krzyżyk, to pokazanie mu kubka i tak zakończy się jedną z tych dwóch odpowiedzi, często z wysokim procentem. Model nie ma opcji „nie wiem”, chyba że sam mu ją dasz. Robi się to przez dodanie trzeciej klasy, na przykład o nazwie „nic”, do której nagrywasz puste tło i przypadkowe przedmioty. Taka klasa nazywa się klasą odrzucenia i w prawdziwych systemach jest równie ważna jak te właściwe.

Dlatego oceniając model, nie patrz na procent. Patrz na to, czy odpowiedź zgadza się z tym, co faktycznie trzymasz przed kamerą. Wysoka pewność przy błędnej odpowiedzi to nie awaria, tylko normalne zachowanie modelu, który dostał obraz spoza swoich danych.

Spróbuj sam

Wytrenuj model na dwóch klasach, a potem pokaż mu przedmiot, którego nigdy nie widział, na przykład piórnik. Zapisz, którą klasę wybrał i z jaką pewnością. Następnie dodaj trzecią klasę „nic” z około 30 klatkami pustego tła i różnych przypadkowych rzeczy, wytrenuj model ponownie i powtórz ten sam test. Porównaj obie odpowiedzi.

Jak znaleźć przyczynę błędu: jedna zmiana, jedna próba

Kiedy model się myli, kuszące jest poprawianie wszystkiego naraz: dogranie klatek, zmiana oświetlenia, przesunięcie kamery i nowy trening w jednym ruchu. Problem w tym, że jeśli po takiej serii model zacznie działać, nie będziesz wiedzieć, co pomogło, więc nie powtórzysz tego przy następnym błędzie.

Skuteczna metoda jest odwrotna i nazywa się jedna zmiana, jedna próba. Ustalasz warunki, w których model działa poprawnie. Potem zmieniasz dokładnie jedną rzecz i sprawdzasz wynik. Potem wracasz do punktu wyjścia i zmieniasz następną rzecz. Cztery rzeczy warto sprawdzić zawsze: odległość od kamery, tło, oświetlenie i kolor albo rozmiar przedmiotu.

Każdy wynik zapisuj, zanim cokolwiek poprawisz. Zapis ma trzy części: co pokazałeś, co odpowiedział model, czego Twoim zdaniem zabrakło w danych. Trzecia część jest najważniejsza i ma zaczynać się od słów „w danych zabrakło”, bo to zmusza do wskazania konkretnego brakującego przypadku. Zdanie „model jest głupi” nie jest opisem przyczyny i nie prowadzi do żadnej naprawy.

Spróbuj sam

Zrób tabelę z czterema wierszami: odległość, tło, oświetlenie, kolor. Dla każdego wiersza zmień tylko tę jedną rzecz i wpisz, czy model odpowiedział dobrze czy źle. Na końcu zaznacz wiersz, w którym pomyłka była największa. To jest przypadek, od którego zaczniesz naprawę.

Naprawa polega na uzupełnieniu danych, nie na zmianie programu

Skoro błąd bierze się z dziury w danych uczących, to naprawa polega na zasypaniu właśnie tej dziury. Nie zmieniasz kodu, nie szukasz lepszego narzędzia, nie naciskasz trenowania kilka razy z rzędu na tych samych klatkach. Dogrywasz przykłady dokładnie z tego przypadku, który sprawiał kłopot, i trenujesz model jeszcze raz.

Kluczowe słowo to „dokładnie”. Jeśli model mylił się na ciemnym tle, nowe klatki muszą być nagrane na ciemnym tle. Dogranie kolejnych stu klatek na jasnym tle nie zmieni niczego, bo takich przykładów model miał już dosyć. To częsty i kosztowny błąd: więcej danych tego samego rodzaju nie daje nowej umiejętności.

Po ponownym wytrenowaniu przetestuj dokładnie tę samą sytuację co wcześniej, nie podobną. Jeśli sprawdzisz coś innego, nie dowiesz się, czy poprawa zadziałała. Ten cykl, czyli znajdź błąd, opisz brak w danych, uzupełnij brak, przetestuj ten sam przypadek, jest tym samym cyklem, którego używają ludzie budujący systemy rozpoznawania obrazu zawodowo. Różnica leży w skali danych, nie w sposobie myślenia.

Spróbuj sam

Wybierz jeden błąd ze swojej tabeli i dograj około 15 klatek pochodzących właśnie z tego warunku, który go wywoływał. Wytrenuj model ponownie. Powtórz ten sam test i zapisz jednym zdaniem, czy model odpowiada już poprawnie. Jeśli nadal się myli, dograj kolejne 15 klatek zamiast zmieniać cokolwiek innego.

Słowniczek

model
Program, który sam ustalił reguły rozpoznawania na podstawie pokazanych mu przykładów, zamiast dostać je od człowieka.
dane uczące
Zestaw przykładów podpisanych nazwami klas, z którego model się uczy.
klasa
Nazwa jednej rzeczy, którą model ma rozpoznawać, na przykład „kółko” albo „dłoń otwarta”.
klatka
Pojedynczy obraz z kamery, czyli jeden przykład dodany do klasy.
trenowanie
Moment, w którym model przegląda wszystkie klatki i ustala, co odróżnia klasy od siebie.
pewność
Procent pokazywany przy odpowiedzi, mówiący o dopasowaniu obrazu do klasy, a nie o poprawności odpowiedzi.
klasa odrzucenia
Dodatkowa klasa, zwykle nazywana „nic”, dzięki której model może nie przypisywać obrazu na siłę do pozostałych klas.

Częste pomyłki

Sprawdź, czy rozumiesz

  1. Model rozpoznaje Twoje dwa przedmioty bezbłędnie na szkolnej ławce i myli się na parapecie w Twoim pokoju. Czego zabrakło w danych uczących i jak to sprawdzisz w jednej próbie?
  2. Model ma dwie klasy i pokazujesz mu przedmiot, którego nie zna. Dlaczego nie odpowie „nie wiem” i co trzeba zrobić, żeby taka odpowiedź w ogóle była możliwa?
  3. Twój kolega mówi, że jego model jest lepszy, bo ma 500 klatek zamiast 30. Jakie jedno pytanie o te klatki pozwoli Ci ocenić, czy faktycznie jest lepszy?

Wyzwanie dla chętnych

Ponad program

Zbuduj model, który rozpoznaje dwa przedmioty w trzech różnych miejscach w domu, na przykład na biurku, na podłodze i na parapecie. Tym razem zaplanuj nagrania z góry: zanim nagrasz pierwszą klatkę, wypisz na kartce, ile klatek każdej klasy nagrasz w każdym miejscu, tak żeby obie klasy miały podobną liczbę klatek z każdego miejsca. Na koniec dodaj klasę „nic” z pustym tłem z tych samych trzech miejsc.

Jak sprawdzisz, że Ci wyszło: Poproś kogoś z domu, żeby wybrał miejsce i przedmiot spoza Twojej listy i pokazał je kamerze. Jeśli model poprawnie rozpoznaje Twoje przedmioty w nowym miejscu w dwóch z trzech prób, a na obcy przedmiot odpowiada „nic”, plan zadziałał. Jeśli nie, zapisz, w którym warunku się pomylił: to Twój następny przypadek do dogrania.

Zadanie do domu na trzy poziomy

Wybierz jeden poziom. Możesz zacząć od łatwego i wrócić po trudniejszy.

Poziom: Łatwe

Wytrenuj model z dwiema klasami po około 30 klatek na przedmiotach, które masz pod ręką, i znajdź jedną sytuację, w której się myli. Zapisz ją w trzech polach: co pokazałem, co odpowiedział model, czego zabrakło w danych.

Poziom: Średnie

Znajdź trzy sytuacje, w których model się myli, zmieniając po jednej rzeczy naraz: odległość, tło, oświetlenie. Wybierz jedną z nich, dograj około 15 klatek dokładnie z tego warunku, wytrenuj model ponownie i sprawdź ten sam przypadek. Zapisz jednym zdaniem, czy poprawa zadziałała.

Poziom: Trudne

Zrób wszystko z wersji średniej, a potem dodaj klasę „nic” z około 30 klatkami pustego tła i przypadkowych rzeczy. Pokaż modelowi trzy przedmioty, których nie zna, raz przed dodaniem tej klasy i raz po nim. Zapisz w tabeli, jak zmieniły się odpowiedzi i procenty pewności, i napisz dwa zdania o tym, po co w praktyce potrzebna jest klasa odrzucenia.

Samoocena

Zaznacz, co już potrafisz. To tylko dla Ciebie, nikt tego nie ocenia. Zaznaczenia zostają w tej przeglądarce.

Zadania do zrobienia

Zbudujesz dziś własny model rozpoznający dwa przedmioty i sam znajdziesz miejsca, w których on się myli. Znaleziony błąd i jego przyczyna to Twój wynik z tej lekcji.

  1. Zadanie 1

    Zapisz, jakie dwie klasy wybrała Twoja para i ile klatek nagraliście do każdej z nich.

    Wskazówka: Klasa to nazwa tego, co model ma rozpoznać, na przykład „kółko” i „krzyżyk”. Celuj w około 30 klatek na klasę.

  2. Zadanie 2

    Znajdź trzy sytuacje, w których model odpowiada źle. Wpisz je do tabeli: co pokazałeś, co odpowiedział model, czego Twoim zdaniem zabrakło w danych.

    Wskazówka: Zmieniaj po jednej rzeczy naraz: najpierw odległość, potem tło, potem oświetlenie.

  3. Zadanie 3

    Wybierz jeden z trzech błędów i dograj do modelu około 15 nowych klatek, które ten błąd naprawiają. Zapisz, co dokładnie nagrałeś.

    Wskazówka: Jeśli błąd dotyczył ciemnego tła, nagraj nowe klatki właśnie na ciemnym tle, nie na jasnym.

  4. Zadanie 4

    Sprawdź ten sam przypadek jeszcze raz i zapisz, czy model już odpowiada poprawnie, czy nadal się myli.

    Wskazówka: Testuj dokładnie tę samą sytuację co wcześniej, inaczej nie wiesz, czy poprawa zadziałała.

  5. Zadanie 5

    Dokończ zdanie: model pomylił się, ponieważ w danych uczących zabrakło...

    Wskazówka: Napisz o przykładach, których nie było, a nie o tym, że program jest słaby.

Materiał do powtórki

Skąd model wie cokolwiek

  • Model nie czyta instrukcji, uczy się z przykładów
  • Przykłady to dane uczące
  • Brak przykładu oznacza brak umiejętności

Klasy i klatki

  • Klasa to nazwa tego, co rozpoznajemy
  • Klatka to jeden przykład dla modelu
  • Około 30 klatek na klasę wystarczy na lekcję

Co widzi model, a co Ty

  • Ty widzisz kartkę, model widzi piksele
  • Tło też trafia do danych
  • Model może rozpoznawać tło zamiast przedmiotu

Pewność modelu to nie prawda

  • Model podaje procent pewności
  • Wysoki procent bywa przy błędnej odpowiedzi
  • Sprawdzaj wynik, nie ufaj liczbie

Jak szukać błędu

  • Zmieniaj jedną rzecz naraz
  • Odległość, tło, światło, kolor
  • Zapisz każdy błąd zanim coś poprawisz

Naprawa przez dane

  • Dograj przykłady dokładnie z brakującego przypadku
  • Wytrenuj model ponownie
  • Przetestuj tę samą sytuację co wcześniej

Dlaczego to ważne poza salą

  • Systemy AI podejmują decyzje o ludziach
  • Wąskie dane krzywdzą grupy spoza danych
  • Pytanie o dane jest zawsze zasadne

Zapamiętaj z tej lekcji

  • Model zna tylko swoje dane uczące
  • Dziura w danych to błąd w działaniu
  • Błąd opisuje się zdaniem „zabrakło przykładów z...”

Sprawdź się w quizie

Pytania z wyjaśnieniami, na poziomie podstawowym i rozszerzonym. Wynik nigdzie się nie zapisuje, możesz robić go dowolnie wiele razy.