W swojej zasadniczej pracy z 1987 roku Dana Angluin przedstawia algorytm wielomianowy do nauki DFA na podstawie zapytań członkowskich i teorii (kontrprzykłady do proponowanego DFA).
Pokazuje, że jeśli próbujesz nauczyć się minimalnego DFA ze stanami , a twój największy przykład ma długość , to musisz wykonać kwerendy członkostwa i co najwyżej kwerendy teoretyczne.m O ( m n 2 ) n - 1
Czy nastąpiła znacząca poprawa liczby zapytań potrzebnych do nauki regularnego zestawu?
Referencje i powiązane pytania
Dana Angluin (1987) „Uczenie się regularnych zbiorów na podstawie zapytań i kontrprzykładów”, Infortmation and Computation 75: 87-106
Dolne granice uczenia się w zapytaniu o członkostwo i modelu kontrprzykładowym
algorithms
learning-theory
machine-learning
Artem Kaznatcheev
źródło
źródło
Odpowiedzi:
W swojej odpowiedzi na cstheory.SE Lev Reyzin skierował mnie do tezy Roberta Schapire'a, która poprawia powiązanie z zapytaniami o członkostwo w rozdziale 5.4.5. Liczba zapytań kontrprzykładowych pozostaje niezmieniona. Algorytm wykorzystywany przez Schapire różni się tym, co robi po zapytaniu kontrprzykładowym.O(n2+nlogm)
Szkic ulepszenia
Na najwyższym poziomie, Schapire zmusza z algorytmu Angluina do spełnienia dodatkowego warunku, że dla zamkniętego i każdego jeśli to . To gwarantuje, że , a także sprawia, że konsystencja własność algorytmu Angluin za trywialne do spełnienia. Aby to zapewnić, musi inaczej traktować wyniki kontrprzykładu.( S , E , T ) s 1 , s 2 ∈ S s 1 ≠ s 2 r o w ( s 1 ) ≠ r o w ( s 2 ) | S | ≤ n(S,E,T) (S,E,T) s1,s2∈S s1≠s2 row(s1)≠row(s2) |S|≤n
Biorąc kontrprzykład , Angluin prostu dodaje i wszystkie jej prefiksy do . Schapire robi coś bardziej subtelnego zamiast przez dodanie jednego elementu na . To nowe sprawi, że nie będą zamknięte w sensie Angluina, a aktualizacja umożliwiająca zamknięcie z wprowadzeniem co najmniej jednego nowego ciągu do przy jednoczesnym zachowaniu odrębności wszystkich wierszy. Warunkiem na jest:z S e E e ( S , E , T ) S ez z S e E e (S,E,T) S e
Gdzie jest funkcją wyjściową, jest stanem początkowym, a regułą aktualizacji prawdziwego „nieznanego” DFA. W otherwords, musi służyć jako świadka do odróżnienia przyszłość od .q 0 δ e s s ′ ao q0 δ mi s s′za
Aby to z , wykonujemy wyszukiwanie binarne, aby znaleźć podłańcuch taki, że itak, że zachowanie naszej domyślnej maszyny różni się w zależności od jednego znaku wejściowego. Bardziej szczegółowo, pozwalamy być ciągiem odpowiadającym stanowi osiągniętemu w naszej domniemanej maszynie, wykonując . Używamy wyszukiwania binarnego ( stąd pochodzi ), aby znaleźć taki, że . Innymi słowy,z r i z = p i r i 0 ≤ | p i | = i < | z | s i p i log m k o ( δ ( q 0 , s k r k ) ) ≠ o ( δ ( q 0 , s k + 1 r k + 1 ) r kmi z rja z= pjarja 0 ≤ |pja| =i< |z| sja pja logm k o ( δ( q0, skrk) ) ≠ o ( δ( q0, sk + 1rk + 1) eE.rk + 1 rozróżnia dwa stany przypuszczał, że nasze maszyny znajdzie równoważne i tym samym spełnia warunek na , więc możemy go dodać do .mi mi
źródło
Nie wiem, czy moja odpowiedź jest nadal aktualna. Niedawno została opisana implementacja nowego algorytmu o nazwie Observation Pack lub w niektórych okolicznościach Drzewo Dyskryminacji autorstwa Falk Howar. Algorytm ten jest podobny do L *, ale używa Rivest-Shapire lub innej metody (patrz Steffen i Isberner) do obsługi przeciwnego przykładu rozkładu; i wykorzystuje strukturę danych, drzewo rozróżniania (drzewo binarne), aby skutecznie „przesiać”, a mianowicie wstawienie przejścia A (gdzie A jest każdym symbolem alfabetu) nowego stanu, dopóki nie zostanie zamknięta . Ten algorytm występuje w dwóch wersjach: OneGlobally i OneLocally w zależności od tego, czy przyrostek oparty na rozkładzie jest dodawany do każdego składnika, czy nie (stosunek za algorytmem polega na tym, że wszystkie przedrostki w składniku są równoważne krótkiemu przedrostkowi i reprezentują ten sam stan w celu zgodnie z znalezionymi przyrostkami w tej chwili. Później z nowym kontrprzykładem znaleziono nowy sufiks, który rozróżnia co najmniej 2 prefiksy tego samego komponentu. Powoduje to podział tego komponentu na dwa komponenty. W OneLocally jest znacznie mniej zapytań członkowskich, ale liczba równoważnych zapytań może drastycznie wzrosnąć przy dużym docelowym DFA. Zamiast tego OneGlobally ma liczbę zapytań członkowskich zawsze niższych niż L * (ale większych niż OneLocally) i podobną liczbę zapytań równoważności niż L * Później z nowym kontrprzykładem znaleziono nowy sufiks, który rozróżnia co najmniej 2 prefiksy tego samego komponentu. To powoduje podział tego komponentu na dwa komponenty). W OneLocally jest znacznie mniej zapytań członkowskich, ale liczba równoważnych zapytań może drastycznie wzrosnąć przy dużym docelowym DFA. Zamiast tego OneGlobally ma liczbę zapytań członkowskich zawsze niższych niż L * (ale większych niż OneLocally) i podobną liczbę zapytań równoważności niż L * Później z nowym kontrprzykładem znaleziono nowy sufiks, który rozróżnia co najmniej 2 prefiksy tego samego komponentu. To powoduje podział tego komponentu na dwa komponenty). W OneLocally jest znacznie mniej zapytań członkowskich, ale liczba równoważnych zapytań może drastycznie wzrosnąć przy dużym docelowym DFA. Zamiast tego OneGlobally ma liczbę zapytań członkowskich zawsze niższych niż L * (ale większych niż OneLocally) i podobną liczbę zapytań równoważności niż L *
Wiem, że istnieje również inny algorytm: algorytm TTT, który jest również lepszy niż pakiet obserwacyjny, ale nie znam go dobrze. Algorytm TTT powinien być najnowocześniejszy
źródło