Algorytmy uczenia symbolicznego
Algorytmy uczenia maszynowego możemy podzielić na 2 kategorie: algorytmy aproksymacji funkcji oraz uczenia symbolicznego. Te drugie polegają na uczeniu się pojęć za pomocą konstrukcji wyrażeń symbolicznych (np. drzewo decyzyjne) opisującego klasę obiektów. Najczęściej tego typu algorytmu działają w reprezentacjach równoważnych rachunkowi predykatów. Dużą zaletą takich algorytmów jest względna intuicyjność zarówno w
odniesieniu do reprezentacji, jak i otrzymanego
rezultatu.
Algorytmy te mają na celu zbudowanie jawnej reprezentacji wiedzy z konkretnych pojęć, za pomocą analizy ich przykładów i kontrprzykładów.
Tworzone reprezentacje mają postać m.in.:
Znaleźć algorytm decyzyjny, który będzie nam dobrze rozdzielać przypadki.
Bierzemy kilka sklasyfikowanych dobrze przypadków, dzielimy je na zbiory, a następnie na kilku (nie wszystkich) działamy wybranym algorytmem uczącym się. Następnie sprawdzamy, czy dobrze sklasyfikowałby te zbiory, na których nie działaliśmy.
Oznaczmy przez C skończony zbiór kategorii pojęć pewnej klasy pojęć zdefiniowanej na dziedzinie.
Pojęcie oznaczamy przez c∈C. Jest ono funkcją c:X→C (X to jakiś przykład). Dla pojęć pojedynczych przyjmuje się C={0,1}, dla pojęć wielokrotnych liczność zbioru C będzie większa od 2 (|C|>2).
H oznacza przestrzeń możliwych hipotez - zawiera ona wszystkie hipotezy, jakie może skonstruować uczeń. h∈H oznacza pojedynczą hipotezę: h: X→C. Należy zwrócić uwagę, że aby dokładnie nauczyć się każdego pojęcia musi być spełniony warunek C⊆H - wówczas jest pewność, że przestrzeń hipotez zawiera hipotezę identyczną z pojęciem docelowym. Nie zawsze jednak ten warunek jest spełniony w praktyce i wówczas nie można mieć pewności, że pojęcie docelowe zostanie nauczone dokładnie.
Algorytm ten ma na celu przekształcenie konkretnej hipotezy tak, aby zawęzić ilość przykładów reprezentowanych przez nią. Najbardziej specyficzna hipoteza to taka, która nie pokrywa żadnego z dostarczonych przykładów.
Mamy dwa zbiory przykładów:
G - zbiór złożony z przykładów najbardziej ogólnego pojęcia w przestrzeni konceptualnej.
P - zbiór pozytywnych przykładów tej hipotezy (na początku pusty)
Oprócz tego na wejściu mamy zbiór przykładów już sklasyfikowanych na pozytywne i negatywne.
Jeśli przykład jest negatywny (nie należy do pojęcia, którego chcemy się nauczyć):
Jeśli przykład jest pozytywny (należy do pojęcia, którego chcemy się nauczyć):
Dla każdego przykładu e:
G={<?, szybki, 3,?>, <duży, ?, 4, ?>}
P = {}
samochód(mały, szybki, 3, metal) - przykład sklasyfikowany jako pozytywny
samochód(duży, szybki, 3, metal) - przykład sklasyfikowany jako negatywny
Algorytm ten ma na celu przekształcenie hipotezy tak, aby poszerzyć ilość przykładów przez nią pokrywanych. Najbardziej ogólna hipoteza to taka, która pokrywa wszystkie przykłady.
Mamy dwa zbiory przykładów:
S - zbiór złożony z pierwszego pozytywnego przykładu
N - zbiór złożony z przykładów negatywnych poprzedzających pierwszy pozytywny przykład
Oprócz tego na wejściu mamy zbiór przykładów już sklasyfikowanych na pozytywne i negatywne.
Jeśli przykład jest pozytywny (należy do pojęcia, którego chcemy się nauczyć):
Jeśli przykład jest negatywny (nie należy do pojęcia, którego chcemy się nauczyć):
Dla każdego przykładu e:
S={< Ø,Ø,Ø,...,Ø >}
samochód(duży, szybki, 3, plastik) - przykład negatywny
samochód(mały, wolny, 5, plastik) - przykład negatywny
N={<mały, wolny, 5, plastik>, <duży, szybki, 3, plastik>}
samochód(mały, szybki, 3, metal) - pierwszy przykład pozytywny
S={<mały, szybki, 3, metal>}
samochód(mały, szybki, 5, metal) - przykład pozytywny
Algorytm eliminacji kandydatów może nam posłużyć do znajdowania hipotez. Realizuje on proces uczenia się naszego systemu. Tworzy on przestrzeń wersji, która jednoznacznie mówi, czy pojęcie docelowe może być reprezentowane przez przestrzeń hipotez. Dzięki niej możemy wykryć, czy nie podaliśmy złego zbioru przykładów treningowych lub czy nasz zbiór przykładów jest niewystarczający do identyfikacji pojęcia docelowego.
Mamy dwa zbiory przykładów:
G - zbiór złożony z najbardziej ogólnego pojęcia w przestrzeni konceptualnej
S - zbiór złożony z pierwszego pozytywnego przykładu
Na początku algorytmu inicjujemy te dwa zbiory następująco:
G = {< ?,?,?,...,? >} - najbardziej ogólna hipoteza
S = {< Ø,Ø,Ø,...,Ø >} - najbardziej specyficzna hipoteza
Znalezione zbiory S i G określają przestrzeń wersji (przestrzenią wersji nazywamy podzbiór wszystkich hipotez zgodnych (spójnych) ze zbiorem przykładów uczących) znalezioną przez algorytm: G stanowi granicę ogólną, a S granicę specyficzną. Każda hipoteza ze znalezionej przestrzeni wersji jest bardziej szczegółowa niż pewna hipoteza z G i jest bardziej ogólna niż pewna hipoteza z S.
Jeśli przykład jest pozytywny:
Jeśli przykład jest negatywny:
Dla każdego przykładu e:
| L.p. | Rozmiar | Kolor | Kształt | Typ przykładu |
|---|---|---|---|---|
| 1 | duży | czerwony | koło | pozytywny |
| 2 | mały | czerwony | kwadrat | negatywny |
| 3 | mały | czerwony | koło | pozytywny |
| 4 | duży | niebieski | koło | negatywny |
przedmiot(duży, czerwony, koło) - pozytywny
przedmiot(mały, czerwony, kwadrat) - negatywny
przedmiot(mały, czerwony, koło) - pozytywny
przedmiot(duży, niebieski, koło) - negatywny
Zbiory S i G mają postać:
S = { < ?, czerwony, koło> }
G = { < ?, czerwony, koło> }
Są zbieżne do jednej hipotezy < ?, czerwony, koło >, która jest znalezionym rozwiązaniem.
Jeśli uzyskano pustą przestrzeń wersji, to pojęcie docelowe nie może być reprezentowane przez przestrzeń hipotez lub zbiór zawiera niepoprawne przykłady. Jeśli natomiast algorytm uzyska przestrzeń wersji zawierającą więcej niż jedną hipotezę, zbiór jest niewystarczający do identyfikacji pojęcia docelowego. Nawet jeśli proces uczenia się nie zbiegł do jednej hipotezy, uzyskana przestrzeń wersji, o ile nie jest pusta, jest użyteczna
Wady algorytmu: