Sztuczna inteligencja/SI Moduł 9 - Wnioskowanie indukcyjne

Z Studia Informatyczne
< Sztuczna inteligencja
Wersja z dnia 10:22, 25 sie 2006 autorstwa Jarabas (dyskusja | edycje) (or -> lor, and -> land)
Przejdź do nawigacjiPrzejdź do wyszukiwania


Wnioskowanie indukcyjne

W rozdziale tym wyjaśnimy co rozumiemy pod pojęciem wnioskowania indukcyjnego i sformalizujemy je matematycznie. Następnie przedstawimy zasadę uczenia z nauczycielem i podamy kilka przykładów.

Obiekty i atrybuty

Załóżmy, że zajmujemy się zbiorem obiektów i interesuje nas zauważenie pewnych prawidłowości w tym zbiorze, opisywanych za pomocą funkcji .

Zbiór jest zbiorem elementów związanych ze światem rzeczywistym, np. samochodów, roślin, firm, klientów banku itp. Elementy te są często charakteryzowane za pomocą pewnej liczby mierzalnych cech, zwanych atrybutami. Na przykład w przypadku klientów banku atrybutami mogą być np. numer PESEL, adres zamieszkania, stan cywilny, wysokość miesięcznych dochodów itp. Z kolei w przypadku samochodu może być to marka, typ silnika, rodzaj nadwozia, rodzaj skrzyni biegów, typowe zużycie paliwa itp.

Atrybuty charakteryzują elementy ze zbioru i możemy je traktować jako funkcje postaci , gdzie jest dziedziną wartości atrybutu. Ponieważ każdy element zbioru może być charakteryzowany przez więcej niż jeden atrybut, przyjmiemy, że atrybuty są numerowane kolejnymi liczbami począwszy od jedności. Tak więc każdy obiekt jest opisany za pomocą wektora wartości atrybutów . .

W niektórych przypadkach identyfikacja obiektu przez zbiór wartości atrybutów jest jednoznaczna (w praktyce numer PESEL wystarcza do identyfikacji obywatela Polski). Wtedy możliwe jest z technicznego punktu widzenia utożsamienie zbioru ze zbiorem , gdzie oznaczają zbiory wartości kolejnych atrybutów.

Są jednak przypadki, gdy nie można mówić o jednoznaczności opisu obiektu za pomocą wartości atrybutów. Prostym przykładem może być baza danych osobowych, w której notuje się imiona, nazwiska i daty urodzenia, bez numeru PESEL, NIP, ani żadnego dokumentu tożsamości unikalnym numerze. Wówczas należy się liczyć z sytuacją, gdy wiele różnych osób będzie scharakteryzowanych za pomocą takiego samego zestawu danych.

Zadanie wnioskowania indukcyjnego

Przyjmijmy, że istnieje pewna nieznana funkcja oraz zbiór funkcji , zwanych atrybutami, których zbiory wartości są oznaczane przez . Oznaczmy . Załóżmy także, że dysponujemy pewną liczbą obserwacji w postaci par gdzie oraz .

W dalszym ciągu tekstu będziemy zakładać dla większej przejrzystości że zbiór atrybutów wystarcza do jednoznacznej identyfikacji obiektów, a odstępstwa od tego założenia będziemy traktować jako swoisty wyjątek. Przyjmując wspomniane założenie, można uprościć rozważania i przyjąć, że interesuje nas funkcja , która jest zdefiniowana następująco .

Wnioskowanie indukcyjne polega na wyznaczeniu funkcji w taki sposób, aby jak najlepiej przybliżała ona funkcję . Innymi słowy, wnioskowanie indukcyjne to aproksymacja funkcji funkcją .

W zależności od dziedziny i przeciwdziedziny aproksymowanej funkcji , mówi się o różnych odmianach zadania wnioskowania indukcyjnego. Wymienimy tu dwie podstawowe odmiany.

Jeśli jest zbiorem skończonym (nierzadko zakłada się po prostu, że ), to elementy tego zbioru są często interpretowane jako etykiety klas i taką odmianę wnioskowania indukcyjnego nazywa się często uczeniem się klasyfikacji. Funkcja bywa nazywana pojęciem docelowym, zaś funkcja - hipotezą.

Z kolei jeśli oraz mówi się często o zadaniu regresji. Niekiedy zadanie regresji utożsamia się po prostu z zadaniem aproksymacji.

Wyróżnienie zadań regresji i klasyfikacji ma jeszcze jeden powód, związany z rodzajami modeli wykorzystywanych w tych podejściach. W przypadku realizacji zadań klasyfikacji funkcja jest typowo złożonym wyrażeniem logicznym, dla wygody przetwarzania przedstawianym jako drzewo decyzyjne lub zbiór reguł decyzyjnych. Z kolei w zadaniach regresji funkcja jest zazwyczaj wyrażeniem arytmetycznym, nierzadko o złożonej postaci.

Wnioskowanie indukcyjne jako zadanie przeszukiwania

Oznaczmy przez zbiór wszystkich funkcji postaci , tj. zbiór funkcji przyjmujących argumenty ze zbioru i zwracających wartości ze zbioru . Aproksymowana funkcja jest oczywiście elementem zbioru .

Załóżmy, że w zbiorze da się „pomierzyć odległość” między dwiema dowolnymi funkcjami, a zatem istnieje funkcja , która jest metryką w zbiorze . Z punktu widzenia zadania aproksymacji możemy powiedzieć, że dla dowolnych funkcji odległość jest błędem aproksymacji funkcji za pomocą funkcji .

Przykład 1

Niech będzie zbiorem funkcji postaci (a zatem , ). Załóżmy też, że metryka w zbiorze będzie miała postać

(metrykę tę będziemy nazywać błędem kwadratowym).

Załóżmy, że aproksymowaną funkcją jest , natomiast funkcje aproksymujące należą do zbioru funkcji opisanych wzorem , gdzie są parametrami. Zadanie aproksymacji polega na znalezieniu takich wartości parametrów, dla których błąd kwadratowy jest minimalny. Można się przekonać wykonując proste obliczenia numeryczne, że z pewnym przybliżeniem ma to miejsce dla wartości parametrów równych a zatem funkcja aproksymująca jest dana wzorem . Wykresy funkcji aproksymowanej (czerwony) i aproksymującej (niebieski) są umieszczone poniżej.

SI M9 wykres 1.png

Zauważmy także, że przyjęta w przykładzie klasa funkcji nie zawiera funkcji , a zatem funkcja nie da się aproksymować z zerowym błędem - jest nienauczalna.

Przykład 2

Niech będzie zbiorem funkcji postaci (a zatem , ). Załóżmy też, że metryka w zbiorze będzie miała postać

Zauważmy, że argumentem funkcji jest wektor czterobitowy.

Załóżmy, że aproksymowaną funkcją jest , natomiast funkcje aproksymujące należą do zbioru funkcji opisanych wzorem , gdzie są numerami bitów wektora . Zadanie aproksymacji polega na znalezieniu takich wartości , dla których błąd jest minimalny. Można się przekonać, że ma to miejsce dla , a zatem funkcja aproksymująca jest dana wzorem . Zauważmy także, że przyjęta w przykładzie klasa funkcji zawiera funkcję , a zatem funkcja da się aproksymować z zerowym błędem - jest nauczalna.

W indukcyjnym uczeniu zakłada się, że dysponujemy możliwością wygenerowania pewnej liczby funkcji aproksymujących. Oznaczmy zbiór wszystkich funkcji aproksymujących przez . Naturalnie, każda funkcja należąca do jest funkcją ze zbioru , a zatem . Zadanie aproksymacji polega więc na wyznaczeniu takiej funkcji , że wartość błędu aproksymacji jest jak najmniejsza. Zadanie to jest realizowane przez przeszukiwanie zbioru , a szczegóły techniczne sposobu realizacji tego zadania są omówione w wykładach poświęconych uczeniu się klasyfikacji, regresji nieliniowej i perceptronowi wielowarstwowemu.

Rzecz jasna, że jeśli , to istnieje dokładne rozwiązanie zadania aproksymacji (tzn. takie, dla którego ). Mówimy wówczas, że funkcja jest nauczalna w klasie funkcji . W przeciwnym przypadku, tzn. jeśli , należy liczyć się z niezerowym błędem aproksymacji, zaś jest nienauczalna.

Stopnie swobody modelu

Funkcje należące do klasy są zazwyczaj reprezentowane w sposób wygodny do ich dalszego przetwarzania. Często przyjmuje się taki model funkcji aproksymującej, że jest ona dana wyrażeniem przyjmującym pewną liczbę parametrów (por. przykład 1), a zadanie aproksymacji sprowadza się do dobrania takich wartości tych parametrów, które prowadzą do minimalnego błędu aproksymacji. O parametrach tych mówi się, że są stopniami swobody modelu. W przypadku modeli nie opisywanych zbiorem parametrów, liczba stopni swobody jest pojęciem znacznie trudniejszym do wyłożenia (można ją np. wiązać z ilością danych potrzebnych do jednoznacznego określenia modelu), zdajmy się więc na intuicję i przyjmijmy, że liczba stopni swobody to miernik „komplikacji” modelu.

Zazwyczaj jest tak, że im większa liczba stopni swobody modelu, tym więcej funkcji można wyrazić za jego pomocą, a zatem tym liczniejsza jest rodzina funkcji . Jest to z jednej strony zjawisko pozytywne, bo pozwala liczyć na to, że aproksymowana funkcja będzie zawarta w rodzinie , albo przynajmniej w rodzinie istnieje funkcja dająca mały błąd aproksymacji. Z drugiej jednak strony, im większa rodzina , tym trudniejsze w realizacji jest zadanie przeszukiwania. Jak się przekonamy niżej, jest jeszcze jeden mankament wynikający z dużej liczby swobody, mianowicie zjawisko przeuczenia (lub inaczej nadmiernego dopasowania).

Możliwości pomiaru błędu aproksymacji

Pomiar błędu aproksymacji (tj. obliczenie wartości metryki dla dwóch funkcji z ) wymaga pełnej znajomości obu rozważanych funkcji, tzn. możliwości obliczenia wartości każdej funkcji dla każdego argumentu. Jak założono wcześniej, nie jest to możliwe w przypadku funkcji aproksymowanej - dla niej dysponujemy tylko zbiorem obserwacji. Tak więc w czasie realizacji wnioskowania indukcyjnego jako zadania przeszukiwania musimy się posługiwać przybliżoną wartością błędu aproksymacji, tzw. próbkowym błędem aproksymacji, lub po prostu błędem próbkowym.

Przykłady błędu próbkowego

W zbiorze funkcji postaci zakładaliśmy, że metryka była określona jako

Jeśli dysponujemy tylko zbiorem wartości funkcji w punktach należących do zbioru , wówczas błąd próbkowy zdefiniujemy jako

gdzie jest liczebnością zbioru . Błąd próbkowy opisany powyżej nosi nazwę błędu średniokwadratowego.

W zbiorze funkcji postaci zakładaliśmy, że metryka była określona jako

Jeśli dysponujemy tylko zbiorem wartości funkcji w punktach należących do zbioru , wówczas błąd próbkowy zdefiniujemy jako

Zauważmy, że w tym przypadku błąd próbkowy nie będzie nigdy mniejszy niż rzeczywisty błąd aproksymacji.

Fakt posługiwania się wartością przybliżoną jest źródłem poważnych kłopotów, gdyż minimalizacja błędu próbkowego niekoniecznie musi iść w parze z minimalizacją „prawdziwego” błędu aproksymacji. W szczególnie „złośliwych” przypadkach może się zdarzyć, że błąd aproksymacji wzrasta wraz ze zmniejszającym się błędem próbkowym. Typowym przykładem takiego przypadku jest zbyt duża liczba stopni swobody modelu, a co za tym idzie zbyt szeroka klasa funkcji w porównaniu z zawartością całego zbioru . Mówi się wtedy, że zaszło nadmierne dopasowanie funkcji aproksymującej do danych albo przeuczenie modelu.

Przykład 3

Załóżmy ponownie, że jest zbiorem funkcji postaci i że posługujemy się błędem kwadratowym i średniokwadratowym. Będziemy ponownie aproksymować funkcję , tym razem jednak, w celu uzyskania większej dokładności, aproksymująca funkcja będzie postaci

jest więc opisana za pomocą jedenastu parametrów. Można się przekonać wykonując proste obliczenia numeryczne, że można uzyskać aproksymator o nieco mniejszym niż w przykładzie 1 błędzie kwadratowym przyjmując wartości parametrów: (jednak nie jest to raczej aproksymator o optymalnych wartościach parametrów). Wykres funkcji aproksymowanej (linia czerwona) i aproksymującej (linia niebieska) jest podany na poniższym rysunku

SI M9 wykres 2.png

Jednak jeśli wyznaczamy parametry aproksymatora poprzez minimalizację próbkowego błędu średniokwadratowego, to może to doprowadzić do postaci funkcji mającej niewiele wspólnego funkcją . Jeśli aproksymator rozważany w tym przykładzie będzie wynikiem minimalizacji błędu średniokwadratowego, a zbiór trenujący ma postać


0 0.25
0.06 0.19
0.12 0.14
0.21 0.08
0.25 0.06
0.32 0.03
0.37 0.02
0.5 0
0.62 0.01
0.75 0.06
0.79 0.08
0.88 0.14
0.94 0.19
1 0.25

to parametry, dla których można doprowadzić do zerowego błędu aproksymacji są następujące: a wykresy funkcji aproksymowanej (linia czerwona) i aproksymującej (linia niebieska) wyglądają jak poniżej.

SI M9 wykres 3.png

Jak do tego doszło? Odpowiedź jest prosta - parametry aproksymatora zostały wyznaczone tak, aby wykres funkcji przechodził jak najbliżej punktów zawartych w zbiorze trenującym. Określanie parametrów poprzez minimalizację błędu średniokwadratowego na zbiorze trenującym jest więc „ślepe” na punkt zawarte poza tym zbiorem, a wynik jest tym bardziej odmienny od możliwego do uzyskania przez minimalizację błędu kwadratowego, im więcej jest stopni swobody (w naszym przypadku parametrów) określających funkcję aproksymującą.

Zasada brzytwy Ockhama

Modelowanie jest procesem towarzyszącym nie tylko sztucznej inteligencji, matematyce, fizyce, chemii itp., ale również m.in. filozofii, teologii. Na gruncie tych ostatnich nauk została sformułowana słynna zasada, która mówi że „nie należy mnożyć bytów ponad potrzebę”, tzn. należy starać się tłumaczyć zjawiska w najprostszy możliwy sposób. Zasadę tę sformułował Ockham, od którego nazwiska pochodzi nazwa „brzytwy Ockhama”, którą „wycina się” zbędne byty (por. np. http://pl.wikipedia.org/wiki/Brzytwa_Ockhama).

Na gruncie sztucznej inteligencji, a w szczególności metod aproksymacji, dąży się zgodnie z zasadą brzytwy Ockhama do modeli o możliwie najmniejszej liczbie stopni swobody. Dzięki temu zmniejsza się niebezpieczeństwo przeuczenia modelu.

Zbiory trenujące i testowe

Zapobieganie nadmiernemu dopasowaniu jest przypuszczalnie najbardziej wyzywającym zadaniem uczenia z nauczycielem. Częściowe rozwiązanie tego problemu przynosi metoda polegająca na podzieleniu obserwacji, którymi się dysponuje w czasie uczenia, na dwa rozłączne podzbiory.

Pierwszy z nich, zwany zbiorem uczącym, jest wykorzystywany do szacowania próbkowego błędu aproksymacji w procesie poszukiwania funkcji aproksymującej minimalizującej ten błąd. Gdy już zostanie ona wyznaczona, przystępuje się do obliczenia próbkowego błędu aproksymacji na drugim zbiorze, zwanym zbiorem testowym.

Porównanie wartości obu błędów dostarcza pewnej informacji o tym, na ile realną groźbę stanowi nadmierne dopasowanie. Jeśli wartości obu błędów są porównywalne (zazwyczaj, choć nie zawsze, błąd na zbiorze uczącym będzie mniejszy), to niebezpieczeństwo nadmiernego dopasowania jest niewielkie. Natomiast duża różnica między oboma wartościami błędu próbkowego stanowi sygnał ostrzegawczy przed ryzykiem nadmiernego dopasowania.

Gdy zostanie powzięte podejrzenie o przeuczeniu modelu, trzeba próbować temu zaradzić. Jednym ze sposobów nich jest wykonanie ponownego podziału zbioru obserwacji na zbiór trenujący i testowy, i ponowne wykonanie modelu. Innym sposobem jest umiejętne zmniejszenie liczby stopni swobody wykorzystywanego modelu (a tym samym, zastąpienie zbioru funkcji aproksymujących zbiorem ) i powtórzenie procesu modelowania.