Zbiory i relacje: klocki, z których składają się definicje w AI
Zbiory, podzbiory, działania, iloczyn kartezjański, relacje, równoważność i porządki — z diagramami Venna, macierzą relacji i tym, do czego to wszystko służy w sztucznej inteligencji.
Seria Podstawy AI Część 5 z 52
- Mapa sztucznej inteligencji: co jest czym i jak to do siebie pasuje
- Krótka historia sztucznej inteligencji: od Turinga do modeli językowych
- Dane, model, trening, inferencja: podstawowe pojęcia na jednym przykładzie
- Jak czytać zapis matematyczny: symbole, indeksy, sumy i kwantyfikatory
- Zbiory i relacje: klocki, z których składają się definicje w AI
- Funkcje i odwzorowania: dlaczego każdy model AI jest funkcją
- Logika i dowody: reguły, według których rozumuje AI
- Grafy i drzewa: struktura, na której opierają się przeszukiwanie i sieci neuronowe
- Algebra liniowa dla uczenia maszynowego: wektory, macierze i dlaczego AI głównie mnoży
- Pochodne, gradient i reguła łańcuchowa: jak model ustala, w którą stronę się uczyć
- Spadek gradientu: jak uczy się model
- Czym jest prawdopodobieństwo: od rzutu kostką do aksjomatów Kołmogorowa
- Prawdopodobieństwo warunkowe i twierdzenie Bayesa: jak zmienić ocenę, gdy dowiesz się czegoś nowego
- Zmienna losowa i dystrybuanta: jedna funkcja, która mówi o rozkładzie wszystko
- Funkcja gęstości i funkcja prawdopodobieństwa: dlaczego zmienna ciągła ma w punkcie prawdopodobieństwo zero
- Wartość oczekiwana, wariancja i kowariancja: gdzie leży rozkład, jak jest szeroki i co z czym się wiąże
- Przegląd rozkładów prawdopodobieństwa: Bernoulliego, dwumianowy, Poissona, jednostajny, normalny i wykładniczy
- Prawo wielkich liczb i centralne twierdzenie graniczne: dlaczego średnie zachowują się tak przewidywalnie
- Statystyka i estymacja parametrów: największa wiarygodność, MAP i przedziały ufności
- Teoria informacji: entropia, entropia krzyżowa i dywergencja KL — skąd się biorą funkcje straty
- Przeszukiwanie przestrzeni stanów: BFS, DFS, UCS i A* z animacjami
- Gry i przeciwnik: minimax, przycinanie alfa-beta i Monte Carlo tree search
- Spełnianie ograniczeń: backtracking, propagacja ograniczeń i AC-3 na sudoku i mapie czeskich krajów
- Logika i systemy z bazą wiedzy: wnioskowanie w przód i wstecz, rezolucja i systemy ekspertowe
- Planowanie: STRIPS, świat klocków, heurystyki z relaksacji i planowanie w agentach AI
- Przeszukiwanie lokalne i symulowane wyżarzanie: komiwojażer przez czeskie miasta wojewódzkie
- Algorytmy genetyczne: populacja, krzyżowanie, mutacja i selekcja na plecaku na wycieczkę
- Strategie ewolucyjne i programowanie genetyczne: od reguły jednej piątej do prawa Keplera
- Optymalizacja kolonią mrówek: jak ślad feromonowy znajduje krótką drogę
- Optymalizacja rojem cząstek: bezwładność, własne doświadczenie i doświadczenie roju
- Neuroewolucja: ewolucja wag i kształtu sieci neuronowych oraz algorytm NEAT
- Zbiory rozmyte i funkcje przynależności: jak zapisać „trochę ciepło”
- Logika rozmyta a prawdopodobieństwo: dlaczego „trochę ciepło” nie znaczy „prawdopodobnie ciepło”
- Logika rozmyta: t-normy, implikacje i reguły JEŻELI–TO
- Sterowanie rozmyte: Mamdani i Sugeno od wentylatora po wahadło na wózku
- Klasteryzacja rozmyta: algorytm fuzzy c-means i punkty między skupieniami
- Systemy neuro-rozmyte (ANFIS): reguły rozmyte, które uczą się z danych
- Łańcuchy Markowa: macierz przejścia, rozkład stacjonarny i PageRank
- Ukryte modele Markowa: algorytm Viterbiego i nieuczciwe kasyno
- Sieci bayesowskie: dlaczego trawa jest mokra i co z tego wynika dla zraszacza
- Filtr Kalmana: jak z niedokładnych pomiarów oszacować, gdzie jest samochód i jak szybko jedzie
- Rodzaje uczenia maszynowego: nadzorowane, nienadzorowane, półnadzorowane i inne
- Prompty, kontekst i RAG: jak dać modelowi właściwe informacje
- Wariacyjne autoenkodery (VAE): nowe obrazki z ciągłej przestrzeni latentnej
- Generatywne sieci przeciwstawne (GAN): fałszerz kontra detektyw
- Modele dyfuzyjne: jak z czystego szumu powstaje obraz
- Procesy decyzyjne Markowa: stany, akcje, nagrody i równania Bellmana
- Q-learning i DQN: uczenie się wartości akcji od tabeli po sieć neuronową
- Policy gradient i PPO: uczenie się bezpośrednio polityki
- Jak działa agent AI: model językowy w pętli z narzędziami
- Programowanie z agentami AI: zadanie, testy i kontrola
- Ocena i bezpieczeństwo systemów AI: jak mierzyć i jak pilnować
Pełny program serii Gotowe: 52 z 83 tematów
- Czym jest zbiór, podzbiór i iloczyn kartezjański — i dlaczego liczba podzbiorów rośnie wykładniczo.
- Czym jest relacja, jakie ma własności i jak ją narysować jako macierz i jako graf.
- Dlaczego klasyfikacja to podział na klasy równoważności, a model to funkcja — szczególna relacja.
Warto wiedzieć wcześniej: Jak czytać zapis matematyczny: symbole, indeksy, sumy i kwantyfikatory
Zbiory i relacje to klocki, z których składa się prawie każda definicja w AI. Przestrzeń stanów to zbiór stanów, przejścia między nimi to relacje, dane treningowe to zbiór par, a klasyfikacja dzieli dane wejściowe na klasy. Kto rozumie te dwa pojęcia, czyta definicje w kolejnych częściach jak zwykły tekst.
Zapis symboli (∈, ⊆, ∪, ×) omówiliśmy w poprzedniej części. Tutaj zejdziemy pod powierzchnię: co dokładnie znaczą, jakie mają własności i do czego przydają się w sztucznej inteligencji.
1. Czym jest zbiór
Definicja — zbiór i element
Zbiór to kolekcja wzajemnie różnych obiektów. Te obiekty nazywamy elementami zbioru.
Zapis x ∈ A oznacza „x jest elementem zbioru A”, zapis x ∉ A „x nie jest elementem A”.
Zbiór to worek, do którego coś wkładasz. Interesuje nas tylko to, co jest w worku — nie to, w jakiej kolejności to tam włożyłeś, ani ile razy. Dwie kulki tego samego koloru to dla zbioru jeden kolor.
Zbiór zapisujemy albo przez wyliczenie elementów w nawiasach klamrowych — A = {1, 2, 3} lub {↑, →, ↓, ←} — albo przez własność, którą elementy spełniają: {x ∈ ℕ : x jest parzyste}. Dla A = {1, 2, 3} zachodzi 2 ∈ A i 5 ∉ A. Zapis przez własność pozwala opisać także nieskończone zbiory i w AI używa się go prawie zawsze: „zbiór wszystkich stanów, z których da się dojść do celu”.
Definicja — równość zbiorów
Zbiory A i B są równe, A = B, gdy mają dokładnie te same elementy: ∀x : (x ∈ A ⇔ x ∈ B).
Dwa worki są takie same, gdy jest w nich to samo. Dlatego {1, 2, 2} = {2, 1} = {1, 2}: ani kolejność, ani powtórzenia nie mają znaczenia.
Definicja — moc i zbiór pusty
Moc (liczność) |A| zbioru skończonego A to liczba jego elementów.
Zbiór pusty ∅ to zbiór, który nie ma żadnego elementu; |∅| = 0.
Moc to odpowiedź na pytanie „ile jest w worku”: |{1, 2, 3}| = 3. Zbiór pusty to pusty worek — nadal jest to zbiór, tylko nic w nim nie ma.
2. Podzbiory i zbiór potęgowy
Z jednego zbioru możemy wybierać mniejsze. Potrzebujemy do tego trzech pojęć, które kolejno na sobie bazują: podzbioru, podzbioru właściwego i zbioru potęgowego.
Definicja — podzbiór
Zbiór A jest podzbiorem zbioru B, piszemy A ⊆ B, gdy każdy element A jest też elementem B: ∀x : x ∈ A ⇒ x ∈ B.
Podzbiór to wybór z worka: bierzesz niektóre rzeczy z B i wkładasz je do mniejszego worka A. Niczego, czego nie ma w B, nie wolno ci dodać do A. Tak więc {1, 3} ⊆ {1, 2, 3}, ale {1, 4} ⊄ {1, 2, 3}, bo 4 nie ma w pierwotnym zbiorze. Każdy zbiór jest podzbiorem samego siebie, a zbiór pusty jest podzbiorem każdego zbioru.
Definicja — podzbiór właściwy
A jest podzbiorem właściwym B, piszemy A ⊂ B, gdy A ⊆ B i jednocześnie A ≠ B.
Podzbiór właściwy to wybór, w którym przynajmniej czegoś brakuje. {1, 3} ⊂ {1, 2, 3}, ale {1, 2, 3} nie jest podzbiorem właściwym samego siebie — wziąłeś absolutnie wszystko.
Definicja — zbiór potęgowy
Zbiór potęgowy 𝒫(A) to zbiór, którego elementami są wszystkie podzbiory A: 𝒫(A) = {S : S ⊆ A}.
Twierdzenie. Dla zbioru skończonego A zachodzi |𝒫(A)| = 2|A|.
Zbiór potęgowy to lista wszystkich wyborów, jakie można zrobić z worka — łącznie z pustym wyborem i wyborem wszystkiego. Dlaczego jest ich 2n: przy każdym elemencie decydujesz, czy włożysz go do wyboru, czy nie. To dwie możliwości dla każdego elementu, dla trzech elementów 2 · 2 · 2 = 8, dla dziesięciu elementów już 1024.
Dla A = {a, b, c} mamy 𝒫(A) = {∅, {a}, {b}, {c}, {a, b}, {a, c}, {b, c}, {a, b, c}} — razem 8 podzbiorów. Ten wykładniczy wzrost spotkasz w AI na każdym kroku. Model, który ma wybrać, których z 50 cech użyje, ma do wyboru 250 — ponad biliard możliwości. Dlatego selekcji cech nie robi się przez sprawdzanie wszystkich kombinacji.
3. Działania na zbiorach
Definicja — suma, iloczyn, różnica, dopełnienie
A ∪ B = {x : x ∈ A ∨ x ∈ B} — suma,
A ∩ B = {x : x ∈ A ∧ x ∈ B} — iloczyn (część wspólna),
A ∖ B = {x : x ∈ A ∧ x ∉ B} — różnica,
Ac = U ∖ A — dopełnienie względem przestrzeni U („wszechświata”).
Prawa De Morgana: (A ∪ B)c = Ac ∩ Bc oraz (A ∩ B)c = Ac ∪ Bc.
Suma to „albo, albo, albo jedno i drugie”, iloczyn „jedno i drugie naraz”, różnica „to, ale nie tamto”, a dopełnienie „wszystko inne”. Prawo De Morgana mówi, że „nie jest prawdą, że pada deszcz lub śnieg” to to samo co „nie pada deszcz i nie pada śnieg”.
W praktyce AI z iloczynami zbiorów liczy się na przykład przy ocenie modelu. Jeśli P to zbiór e-maili, które model oznaczył jako spam, a S zbiór e-maili, które naprawdę są spamem, to precyzja (precision) wynosi |P ∩ S| / |P| — ile z oznaczonych było naprawdę spamem — a czułość (recall) |P ∩ S| / |S| — ile spamu model wyłapał.
4. Iloczyn kartezjański i n-tki
Definicja — para uporządkowana i iloczyn kartezjański
Para uporządkowana (a, b) różni się od zbioru {a, b} tym, że kolejność ma znaczenie: (a, b) = (c, d) ⇔ a = c ∧ b = d.
Iloczyn kartezjański A × B = {(a, b) : a ∈ A, b ∈ B}. Dla zbiorów skończonych |A × B| = |A| · |B|.
Ogólnie A1 × … × An to zbiór n-tek; An = A × … × A (n razy).
Iloczyn kartezjański to tabela wszystkich kombinacji. Trzy koszulki i dwie pary spodni dają 3 · 2 = 6 strojów. Współrzędne punktu na płaszczyźnie to pary z ℝ × ℝ = ℝ2.
Iloczyn kartezjański jest w AI wszędzie. Dane treningowe w uczeniu nadzorowanym to podzbiór X × Y — pary (wejście, poprawna odpowiedź). Zdjęcie 28 × 28 pikseli to punkt w ℝ784. A w problemie przeszukiwania funkcja przejścia jest zdefiniowana na S × A — na parach (stan, akcja).
5. Relacje
Definicja — relacja
Relacja binarna między zbiorami A i B to dowolny podzbiór R ⊆ A × B. Zamiast (a, b) ∈ R pisze się a R b i czyta „a jest w relacji z b”.
Jeśli A = B, mówimy o relacji w zbiorze A.
Relacja to lista par, które „do siebie pasują”. Kto jest czyim rodzicem, które miasto ma bezpośrednie połączenie z którym, który stan prowadzi do którego. Nic więcej — tylko lista par.
Relację w małym zbiorze możemy narysować na dwa sposoby. Weźmy relację „a dzieli b” (b jest wielokrotnością a) w zbiorze {1, …, 6}. Jako macierz: w wierszu a i kolumnie b jest kropka, gdy a dzieli b. I jako graf skierowany: strzałka z a do b.
macierz: wiersz a, kolumna b
graf: strzałka a → b (bez pętli a → a)
Relacja ma 14 par. W AI spotkasz obie postaci: macierz relacji to to, na czym liczy komputer (macierz sąsiedztwa grafu, macierz podobieństwa), graf to to, co narysuje człowiek. Przejścia między stanami w przeszukiwaniu to relacja w zbiorze stanów, a graf k najbliższych sąsiadów z propagacji etykiet to relacja „jest wśród najbliższych”.
6. Własności relacji
Definicja — własności relacji w zbiorze
Relacja R w zbiorze A jest
- zwrotna, gdy ∀a ∈ A : a R a,
- symetryczna, gdy ∀a, b : a R b ⇒ b R a,
- antysymetryczna, gdy ∀a, b : (a R b ∧ b R a) ⇒ a = b,
- przechodnia, gdy ∀a, b, c : (a R b ∧ b R c) ⇒ a R c.
Zwrotna: każdy jest w relacji sam ze sobą. Symetryczna: działa w obie strony. Antysymetryczna: w obie strony tylko wtedy, gdy chodzi o to samo. Przechodnia: jeśli prowadzi droga z a do b i z b do c, to prowadzi też bezpośrednio z a do c.
Dla relacji w zbiorze {1, …, 6} wygląda to tak — a z kombinacji własności poznasz, o jaki rodzaj relacji chodzi:
| Relacja | Zwrotna | Symetryczna | Antysymetryczna | Przechodnia |
|---|---|---|---|---|
| a ≤ b | tak | nie | tak | tak |
| a dzieli b | tak | nie | tak | tak |
| ta sama reszta z dzielenia przez 3 | tak | tak | nie | tak |
| |a − b| = 1 („sąsiedzi”) | nie | tak | nie | nie |
7. Równoważność i podział na klasy
Definicja — równoważność i podział
Relacja, która jest zwrotna, symetryczna i przechodnia, to relacja równoważności. Klasa równoważności elementu a to [a] = {x ∈ A : x R a}.
Podział (partycja) zbioru A to rodzina niepustych, parami rozłącznych podzbiorów, których suma jest równa A.
Twierdzenie. Klasy każdej relacji równoważności tworzą podział A — i odwrotnie, każdy podział wyznacza równoważność „należy do tej samej części”.
Równoważność to „jest pod jakimś względem taki sam jak” — ten sam kolor, ta sama reszta, ta sama klasa. Taka relacja zawsze dzieli zbiór na przegródki, które na siebie nie zachodzą i razem pokrywają wszystko. Każdy element jest dokładnie w jednej przegródce.
Dokładnie to robi klasyfikacja: dzieli zbiór wszystkich możliwych danych wejściowych na klasy — spam i nie-spam, pies, kot i papuga. A klasteryzacja szuka podziału danych, choć nikt jej nie powiedział, jakie są klasy. Wynik k-means z części o rodzajach uczenia to podział punktów na trzy klasy.
8. Porządki
Definicja — porządek częściowy i liniowy
Relacja, która jest zwrotna, antysymetryczna i przechodnia, to porządek częściowy.
Jeśli dodatkowo każda para elementów jest porównywalna (∀a, b : a R b ∨ b R a), jest to porządek liniowy (całkowity).
Porządek mówi, co jest „przed” czym. Przy liczbach według wielkości można porównać cokolwiek z czymkolwiek. Przy porządku częściowym nie zawsze: 4 i 6 nie dzielą się nawzajem, więc według podzielności nie wiemy, która jest „mniejsza”.
Porządek częściowy rysuje się diagramem Hassego: mniejsze elementy na dole, większe na górze, a linia tylko między bezpośrednimi sąsiadami — reszta wynika z przechodniości. Oto dzielniki liczby 12 uporządkowane według podzielności:
Z diagramu widać, że 1 dzieli wszystko, a 12 jest podzielne przez wszystko — ale ani 4 i 6, ani 2 i 3 nie da się porównać. W AI porządki pojawiają się wszędzie tam, gdzie coś się sortuje lub planuje: kolejność wyników wyszukiwania, priorytety na brzegu (frontier) algorytmu A* czy zależności między krokami planu („najpierw otwórz drzwi, potem przez nie przejdź”). Graf zależności modułów w programie tej serii jest zresztą również porządkiem częściowym.
9. Funkcja jako szczególna relacja
Definicja — funkcja
Funkcja z A do B to relacja f ⊆ A × B, w której każdy element a ∈ A ma dokładnie jeden element b ∈ B taki, że (a, b) ∈ f. Oznacza się go f(a).
Funkcja to relacja, która na każde pytanie odpowiada dokładnie jedną odpowiedzią. „Jest rodzicem” nie jest funkcją — człowiek może mieć kilkoro dzieci. „Ma matkę” jest funkcją — każdy ma dokładnie jedną.
Tak koło się zamyka: model w uczeniu maszynowym to funkcja f : X → Y, czyli szczególna relacja między wejściami a wyjściami. Funkcjom i ich własnościom poświęcona jest kolejna część programu.
10. Podsumowanie
- Zbiór to kolekcja elementów bez kolejności i bez powtórzeń; zbiór n-elementowy ma 2n podzbiorów.
- Suma, iloczyn, różnica i dopełnienie to „lub”, „i”, „ale nie” i „wszystko inne”; na iloczynach zbiorów opierają się precyzja i czułość modelu.
- Iloczyn kartezjański tworzy pary — z nich składają się dane (wejście, odpowiedź) i przejścia (stan, akcja).
- Relacja to zbiór par. Równoważność dzieli zbiór na klasy (klasyfikacja, klasteryzacja), porządek określa, co jest przed czym.
- Funkcja to relacja z dokładnie jedną odpowiedzią — a model to funkcja.
Masz inne zdanie? Napisz na support@coden-app.com.