138 40 31MB
Polish Pages 894
Paweł Cichosz
Systemy uczące się ucz¹ce siê
Opiniodawca prof. dr hab. Andrzej Szałas
Redaktor Zofia Dackiewicz Okładkę i strony tytułowe projektował Paweł G. Rubaszewski Korekta Lech Oleksiak, Gabriela
Szpunar
Skład i łamanie Paweł Cichosz
Podręcznik akademicki dotowany przez Ministerstwo Edukacji Narodowej
© Copyright by Wydawnictwa Naukowo-Techniczne Warszawa 2000 Ali Rights Reserved Printed in Poland Utwór w całości ani we fragmentach nie może być powielany ani rozpowszechniany za pomocą urządzeń elektronicznych, mechanicznych, kopiujących, nagrywających i innych, w tym również nie może być umieszczany ani rozpowszechniany w postaci cyfrowej zarówno w Internecie, jak i w sieciach lokalnych, bez pisemnej zgody posiadacza praw autorskich. Adres poczty elektronicznej: [email protected] Strona WWW: www.wnt.com.pl
ISBN 83-204-2544-1
Spis treści Przedmowa
17
Podziękowania
25
Wykaz ważniejszych oznaczeń
27
1 Uczenie się w ujęciu algorytmicznym 1.1 Znaczenie uczenia się 1.1.1 Definicja uczenia się 1.1.2 Programy uczące się 1.1.3 Przykłady maszynowego uczenia się 1.1.4 Motywacja do uczenia się 1.2 Rodzaje uczenia się 1.2.1 Taksonomia maszynowego uczenia się 1.2.2 Główne działy maszynowego uczenia się 1.3 Nauka o uczeniu się 1.3.1 Trzy nurty 1.3.2 Dziedziny pokrewne 1.4 Uczenie się w sztucznej inteligencji 1.4.1 Słaba i silna sztuczna inteligencja 1.4.2 Główne działy sztucznej inteligencji 1.4.3 Uczenie się wiedzy do wnioskowania 1.4.4 Uczenie się heurystyk 1.5 Uczenie się jako wnioskowanie 1.5.1 Typy wnioskowania 1.5.2 Transmutacje wiedzy 1.5.3 Uczenie się jako przeszukiwanie 1.6 Zastosowania systemów uczących się 1.7 Perspektywa filozoficzna 1.8 Podsumowanie 1.9 Uwagi historyczne i bibliograficzne 1.10 Ćwiczenia 2 Uczenie się indukcyjne 2.1 Wnioskowanie indukcyjne 2.2 Główne rodzaje indukcyjnego uczenia się 2.2.1 Uczenie się pojęć 2.2.2 Tworzenie pojęć 2.2.3 Uczenie się aproksymacji funkcji
. . . .
31 32 33 35 37 39 41 41 45 45 45 46 49 49 50 52 52 53 53 54 55 55 58 63 64 68 70 71 71 74 85 87
6
SPIS TREŚCI 2.2.4 Tryby uczenia się 2.2.5 Obciążenie indukcyjne 2.2.6 Inne odmiany indukcyjnego uczenia się Algorytmiczna teoria indukcji 2.3.1 Szacowanie błędów hipotez 2.3.2 Model PAC 2.3.3 PAC-nauczalność 2.3.4 Wymagania dotyczące liczby przykładów 2.3.5 Wymiar Vapnika-Chervonenkisa 2.3.6 Brzytwa Ockhama 2.3.7 Model ograniczania liczby pomyłek Uczenie się przestrzeni wersji 2.4.1 Częściowy porządek hipotez 2.4.2 Reprezentacja hipotez przez kompleksy 2.4.3 Reprezentacja przestrzeni wersji 2.4.4 Algorytm eliminacji kandydatów 2.4.5 Stosowanie przestrzeni wersji 2.4.6 Dobór przykładów trenujących 2.4.7 Obciążenie algorytmu CAE Zagadnienia praktyczne Zagadnienia implementacyjne 2.6.1 Reprezentacja informacji o atrybutach 2.6.2 Reprezentacja przykładów Podsumowanie Uwagi historyczne i bibliograficzne Ćwiczenia
90 92 93 94 94 98 99 102 109 113 115 117 118 118 120 122 125 127 128 128 130 130 131 131 132 135
Indukcja drzew decyzyjnych 3.1 Drzewa decyzyjne jako hipotezy 3.1.1 Struktura drzewa 3.1.2 Notacja dla drzew decyzyjnych 3.1.3 Zalety i ograniczenia drzew decyzyjnych 3.2 Zstępujące konstruowanie drzewa 3.2.1 Kryterium stopu i ustalenie etykiety 3.2.2 Rodzaje testów 3.2.3 Kryterium wyboru testu 3.2.4 Kandydujące testy 3.3 Przycinanie drzewa 3.3.1 Schemat przycinania 3.3.2 Kryteria przycinania 3.3.3 Liście probabilistyczne 3.4 Złożoność obliczeniowa 3.5 Zagadnienia praktyczne 3.5.1 Duże zbiory przykładów 3.5.2 Atrybuty o wielu wartościach 3.5.3 Brakujące wartości atrybutów
138 139 139 141 144 146 147 150 152 162 168 169 170 172 174 175 175 176 177
2.3
2.4
2.5 2.6
2.7 2.8 2.9 3
SPIS TREŚCI
3.6
3.7 3.8 3.9
3.5.4 Inkrementacyjne konstruowanie drzewa Zagadnienia implementacyjne 3.6.1 Reprezentacja drzewa 3.6.2 Rekurencja 3.6.3 Przekazywanie argumentów 3.6.4 Ocena testów nierównościowych Podsumowanie Uwagi historyczne i bibliograficzne Ćwiczenia
4 Indukcja reguł 4.1 Zbiory reguł jako hipotezy 4.1.1 Logiczne podstawy reprezentacji regułowej 4.1.2 Reprezentacja warunków 4.1.3 Zbiory reguł 4.1.4 Złożoność hipotez 4.2 Sekwencyjne pokrywanie 4.3 Algorytm AQ 4.3.1 Strategia przeszukiwania 4.3.2 Specjalizacja gwiazdy 4.3.3 Ocena kompleksów 4.3.4 Wybór ziaren 4.3.5 Wybór kategorii 4.4 Algorytm CN2 4.4.1 Strategia przeszukiwania 4.4.2 Ocena kompleksów 4.4.3 Wybór kategorii 4.5 Przycinanie zbiorów reguł 4.5.1 Schemat przycinania 4.5.2 Kryteria przycinania 4.6 Złożoność obliczeniowa 4.7 Zagadnienia praktyczne 4.7.1 Niepoprawne dane trenujące 4.7.2 Efektywna specjalizacja 4.7.3 Atrybuty porządkowe i ciągłe 4.7.4 Brakujące wartości atrybutów 4.7.5 Inkrementacyjna indukcja reguł 4.8 Zagadnienia implementacyjne 4.8.1 Reprezentacja kompleksów 4.8.2 Reprezentacja zbiorów kompleksów 4.9 Podsumowanie 4.10 Uwagi historyczne i bibliograficzne 4.11 Ćwiczenia
7 183 185 185 186 186 187 188 189 191 194 195 195 197 202 210 212 214 215 217 219 222 223 228 228 230 234 239 . . . 240 241 241 242 243 244 246 249 251 252 252 254 255 257 258
8
SPIS TREŚCI
5
Metody probabilistyczne 5.1 Prawdopodobieństwo w sztucznej inteligencji 5.2 Twierdzenie Bayesa 5.3 Klasyfikacja bayesowska 5.3.1 Wybór hipotezy 5.3.2 Prawdopodobieństwo danych 5.3.3 Optymalny klasyfikator bayesowski 5.3.4 Klasyfikacja bayesowska w praktyce 5.3.5 Naiwny klasyfikator bayesowski 5.4 Sieci bayesowskie 5.4.1 Terminologia 5.4.2 Struktura i semantyka sieci 5.4.3 Wnioskowanie w sieciach bayesowskich 5.4.4 Indukcja sieci bayesowskich 5.5 Zasada minimalnej długości kodu 5.5.1 Prawdopodobieństwo a długość kodu 5.5.2 Indukcja jako kompresja danych 5.5.3 Kodowanie 5.5.4 Kodowanie danych 5.5.5 Stosowanie zasady minimalnej długości kodu 5.6 Zagadnienia praktyczne 5.6.1 Prawdopodobieństwa a priori 5.6.2 Atrybuty ciągłe 5.7 Zagadnienia implementacyjne 5.8 Podsumowanie 5.9 Uwagi historyczne i bibliograficzne 5.10 Ćwiczenia
263 264 265 267 267 268 271 274 275 283 284 284 290 291 294 295 297 298 301 302 304 304 306 309 309 311 313
6
Grupowanie pojęciowe 6.1 Grupowanie jako wiedza 6.1.1 Grupowanie według podobieństwa 6.1.2 Od grupowania do pojęć 6.2 Grupowanie za pomocą pokryć 6.2.1 Kompleksy jako reprezentacja grupowania 6.2.2 Wyznaczanie kompleksów opisujących kategorie 6.2.3 Ocena jakości grupowania 6.2.4 Liczba kategorii 6.2.5 Klasyfikowanie przykładów 6.3 Grupowanie probabilistyczne 6.3.1 Grupowanie pojęciowe jako przeszukiwanie 6.3.2 Funkcja oceny grupowania 6.3.3 Reprezentacja grupowania 6.3.4 Operatory 6.3.5 Strategia sterowania 6.3.6 Klasyfikowanie przykładów 6.4 Grupowanie z atrybutami ciągłymi
316 317 317 320 320 321 323 331 331 332 334 335 335 339 345 348 353 357
SPIS TREŚCI
6.4.1 Algorytm CLUSTER/2 i atrybuty ciągłe 6.4.2 Algorytm COBWEB i atrybuty ciągłe 6.4.3 Grupowanie wyłącznie z atrybutami ciągłymi 6.5 Grupowanie jako kompresja danych 6.5.1 Kodowanie hipotez 6.5.2 Kodowanie danych 6.6 Zagadnienia praktyczne 6.6.1 Grupowanie w uczeniu się z nadzorem 6.6.2 Duże zbiory danych 6.7 Zagadnienia implementacyjne 6.8 Podsumowanie 6.9 Uwagi historyczne i bibliograficzne 6.10 Ćwiczenia 7 Przekształcanie atrybutów 7.1 Przestrzeń atrybutów a przestrzeń hipotez 7.1.1 Informacyjna zawartość atrybutów 7.1.2 Rola atrybutów w grupowaniu 7.1.3 Atrybuty a reprezentacja 7.1.4 Rodzaje przekształceń 7.2 Dyskretyzacja atrybutów ciągłych 7.2.1 Dyskretyzacja a agregacja atrybutów porządkowych 7.2.2 Korzyści z dyskretyzacji 7.2.3 Rodzaje dyskretyzacji 7.2.4 Przedziały i wartości progowe 7.2.5 Prymitywne metody dyskretyzacji 7.2.6 Dyskretyzacja zstępująca 7.2.7 Dyskretyzacja wstępująca 7.2.8 Dyskretyzacja jako kompresja danych 7.2.9 Dyskretyzacja bez nadzoru 7.2.10 Agregacja atrybutów porządkowych 7.3 Konstruktywna indukcja 7.3.1 Rodzaje konstruktywnej indukcji 7.3.2 Konstruktywna indukcja na podstawie danych 7.3.3 Konstruktywna indukcja na podstawie hipotez 7.4 Zagadnienia praktyczne 7.4.1 Celowość dyskretyzacji 7.4.2 Wybór metody dyskretyzacji 7.4.3 Liczba przedziałów dyskretyzacji 7.4.4 Atrybuty o nieznanej przeciwdziedzinie 7.4.5 Stosowanie konstruktywnej indukcji 7.5 Zagadnienia implementacyjne 7.5.1 Implementacja dyskretyzacji zstępującej 7.5.2 Implementacja dyskretyzacji wstępującej 7.6 Podsumowanie 7.7 Uwagi historyczne i bibliograficzne
9 358 359 361 365 366 366 367 367 368 369 370 371 373 377 378 378 378 379 381 383 384 385 385 387 389 392 397 403 405 406 407 408 409 415 420 420 420 421 421 422 423 423 424 425 427
10
SPIS TREŚCI 7.8
8
Ćwiczenia
Uczenie się aproksymacji funkcji 8.1 Zadanie aproksymacji 8.1.1 Cechy przykładów 8.1.2 Aproksymowane odwzorowanie 8.1.3 Ocena hipotez 8.1.4 Tryby i szybkość uczenia się 8.1.5 Informacja trenująca 8.2 Rodzaje aproksymatorów 8.3 Metody parametryczne 8.3.1 Obliczanie wartości funkcji 8.3.2 Aktualizacja wartości funkcji 8.3.3 Aproksymator liniowy 8.3.4 Aproksymatory nieliniowe 8.3.5 Metody wykładniczo-gradientowe 8.3.6 Regresja 8.3.7 Atrybuty dyskretne 8.4 Rozszerzona reprezentacja 8.4.1 Rozszerzanie opisu przykładów 8.4.2 Reprezentacja randomizowana 8.4.3 Rozproszone przybliżone kodowanie 8.5 Metody pamięciowe 8.5.1 Pamięć i jej stosowanie 8.5.2 Najbliższy sąsiad 8.5.3 Lokalne średnie ważone 8.5.4 Lokalna regresja 8.6 Metody symboliczne 8.6.1 Hipotezy modelowania 8.6.2 Drzewa modelowania 8.7 Zagadnienia praktyczne 8.7.1 Dobór rozmiaru kroku 8.7.2 CMAC i nieograniczone przeciwdziedziny cech 8.7.3 Mieszane przestrzenie atrybutów 8.7.4 Ograniczona pamięć w metodach pamięciowych 8.8 Zagadnienia implementacyjne 8.8.1 Wagi w rozproszonych przybliżonych tablicach 8.8.2 Zapamiętywanie przykładów 8.9 Podsumowanie 8.10 Uwagi historyczne i bibliograficzne 8.11 Ćwiczenia
429
'
432 433 433 434 435 435 437 437 438 438 439 441 446 446 447 447 448 448 450 453 469 469 471 473 474 475 475 477 479 480 481 481 483 484 484 485 487 488 490
SPIS TREŚCI
11
9 Indukcyjne programowanie logiczne 9.1 Reprezentacja wiedzy w rachunku predykatów 9.2 Uczenie się pojęć w rachunku predykatów 9.3 Sekwencyjne pokrywanie dla predykatów 9.3.1 Podstawowy schemat 9.3.2 Generowanie koniunkcji 9.3.3 Lokalne zbiory trenujące 9.3.4 Kryterium stopu 9.3.5 Wybór literałów 9.4 Odwracanie dedukcji 9.4.1 Wnioskowanie za pomocą zasady rezolucji 9.4.2 Odwrócona rezolucja 9.4.3 Uczenie się za pomocą odwróconej rezolucji 9.5 Zagadnienia praktyczne 9.5.1 Unikanie nadmiernego dopasowania 9.5.2 Niepoprawne dane trenujące 9.5.3 Pojęcia zdaniowe 9.6 Zagadnienia implementacyjne 9.6.1 Reprezentacja klauzul 9.6.2 Reprezentacja literałów 9.7 Podsumowanie 9.8 Uwagi historyczne i bibliograficzne 9.9 Ćwiczenia
493 494 495 512 513 514 516 520 521 529 529 530 533 535 535 538 539 539 540 540 541 542 543
10 Dokonywanie odkryć 10.1 Wiedza a dane 10.1.1 Zależności w danych jako wiedza 10.1.2 Zależności w relacyjnych bazach danych 10.1.3 Uczenie się jako odkrywanie wiedzy 10.2 Stosowanie algorytmów uczenia się 10.2.1 Duże zbiory danych 10.2.2 Liczne atrybuty 10.2.3 Liczne kategorie 10.2.4 Nierównomierny rozkład kategorii 10.2.5 Inkrementacyjna aktualizacja 10.2.6 Niekompletne dane 10.2.7 Niepoprawne dane 10.2.8 Metauczenie się 10.3 Odkrywanie asocjacji 10.3.1 Reguły asocjacyjne 10.3.2 Tablice kontyngencji 10.3.3 Wzorce w tablicach kontyngencji 10.3.4 Od wzorców do reguł asocjacyjnych 10.3.5 Poszukiwanie wzorców 10.3.6 Reguły asocjacyjne dla wielu atrybutów 10.4 Odkrywanie równań
546 547 547 548 549 550 551 555 556 557 558 558 559 560 568 569 571 573 577 578 578 584
12
SPIS TREŚCI
10.5 10.6 10.7 10.8 10.9
10.4.1 Terminologia i notacja dla równań 10.4.2 Równania z dwiema zmiennymi 10.4.3 Równania z wieloma zmiennymi Zagadnienia praktyczne Zagadnienia implementacyjne 10.6.1 Struktury danych dla dużych zbiorów trenujących Podsumowanie Uwagi historyczne i bibliograficzne Ćwiczenia
11 Uczenie się przez wyjaśnianie 11.1 Wiedza wrodzona w uczeniu się 11.1.1 Wykorzystanie wiedzy wrodzonej w indukcji 11.1.2 Uczenie się jako kompilacja wiedzy wrodzonej 11.1.3 Obciążenie w uczeniu się przez wyjaśnianie 11.2 Generalizacja na podstawie wyjaśnień 11.2.1 Sformułowanie zadania 11.2.2 Algorytm EBG 11.3 Usprawnianie rozwiązywania problemów 11.3.1 Rozwiązywanie problemów w sztucznej inteligencji 11.3.2 Rozwiązywanie problemów a planowanie 11.3.3 Uczenie się rozwiązywania problemów 11.4 Łączenie wyjaśniania i indukcji 11.4.1 Integracja indukcji i dedukcji 11.4.2 Dedukcyjna specjalizacja 11.5 Zagadnienia praktyczne 11.5.1 Niedoskonała teoria 11.5.2 Niepoprawne przykłady 11.5.3 Przykłady negatywne 11.6 Zagadnienia implementacyjne 11.7 Podsumowanie 11.8 Uwagi historyczne i bibliograficzne 11.9 Ćwiczenia 12 Uczenie się automatów 12.1 Automat jako model języka i środowiska 12.1.1 Automaty skończone 12.1.2 Perspektywa lingwistyczna 12.1.3 Perspektywa identyfikacji 12.1.4 Zadanie uczenia się automatów 12.2 Uczenie się na podstawie zapytań 12.2.1 Zapytania i odpowiedzi 12.2.2 AlgorytmL* 12.2.3 Osłabianie informacji trenującej 12.3 Uczenie się na podstawie eksperymentów 12.3.1 Algorytmy sekwencji sprowadzających
585 586 599 604 604 605 610 611 615 619 620 620 623 625 625 626 630 640 640 642 642 644 645 646 649 650 651 652 . 653 653 655 656 658 659 661 662 663 667 672 672 673 682 683 684
SPIS TREŚCI 12.3.2 Algorytm równoważności testów 12.4 Zagadnienia praktyczne 12.4.1 Niedeterminizm automatu docelowego 12.4.2 Usprawnianie testowania równoważności 12.5 Zagadnienia implementacyjne 12.5.1 Reprezentacja tablicy obserwacji 12.5.2 Reprezentacja zbiorów testów 12.6 Podsumowanie 12.7 Uwagi historyczne i bibliograficzne 12.8 Ćwiczenia 13 Uczenie się ze wzmocnieniem 13.1 Zadanie uczenia się ze wzmocnieniem 13.1.1 Uczenie się z wartościującym sprzężeniem zwrotnym 13.1.2 Scenariusz 13.1.3 Środowisko 13.1.4 Zadanie ucznia 13.1.5 Zadania epizodyczne 13.1.6 Tryby uczenia się 13.1.7 Specyfika uczenia się ze wzmocnieniem 13.2 Procesy decyzyjne Markowa 13.2.1 Własność Markowa 13.2.2 Strategie i funkcje wartości 13.2.3 Optymalność strategii 13.2.4 Problemy Markowa a uczenie się ze wzmocnieniem 13.3 Programowanie dynamiczne 13.3.1 Równania Bellmana 13.3.2 Wartościowanie strategii 13.3.3 Wyznaczanie strategii optymalnej 13.3.4 Programowanie dynamiczne a uczenie się 13.4 Uczenie się funkcji wartości 13.4.1 AlgorytmTD 13.4.2 Zbieżność 13.5 Uczenie się strategii 13.5.1 Algorytm AHC 13.5.2 Algorytm Q-learning 13.5.3 Algorytm Sarsa 13.6 Wybór akcji 13.6.1 Strategie probabilistyczne 13.6.2 Strategie licznikowe 13.7 Reprezentacja funkcji 13.8 Przyspieszanie uczenia się: TD(A > 0) 13.8.1 Ślady aktywności 13.8.2 Dochody TD(A) 13.8.3 Uczenie się strategii 13.8.4 Rola i dobór A
13 690 703 703 704 705 705 706 . 706 708 710 712 713 713 715 716 717 719 722 724 726 727 730 734 739 740 740 744 747 751 753 754 756 757 757 760 763 764 766 767 767 769 769 773 774 775
14
SPIS TREŚCI 13.9 Uczenie się rozwiązywania problemów 13.9.1 Problem jako środowisko 13.9.2 Rozwiązanie jako strategia 13.9.3 Funkcja wartości jako heurystyka 13.10 Zagadnienia praktyczne 13.10.1 Ukryty stan 13.10.2 Aktywna percepcja 13.10.3 Uczenie się i planowanie 13.10.4 Hierarchiczne uczenie się 13.10.5 Wiedza wrodzona 13.11 Zagadnienia implementacyjne 13.11.1 Efektywne ślady aktywności 13.11.2 Eliminacja śladów aktywności 13.12 Podsumowanie 13.13 Uwagi historyczne i bibliograficzne 13.14 Ćwiczenia
14 Zakończenie 14.1 Od algorytmów do systemów 14.1.1 Etapy konstruowania systemu 14.2 Lista nieobecności 14.2.1 Sieci neuronowe 14.2.2 Algorytmy ewolucyjne 14.2.3 Zagadnienia szczegółowe 14.3 Kierunki badań 14.3.1 Wyzwania teoretyczne 14.3.2 Wyzwania koncepcyjne 14.3.3 Wyzwania praktyczne 14.4 Słowo końcowe 14.5 Podsumowanie 14.6 Uwagi historyczne i bibliograficzne 14.7 Ćwiczenia A Rozwiązania i wskazówki do ćwiczeń A.l Rozdziali A.2 Rozdział 2 A.3 Rozdział 3 A.4 Rozdział4 A.5 Rozdział 5 A.6 Rozdziało A.7 Rozdział 7 A.8 Rozdział 8 A.9 Rozdział 9 A.10 Rozdział 10 A.ll Rozdział 11 A.12 Rozdział 12
776 776 777 778 778 780 781 781 782 782 783 783 784 785 787 790
'
793 794 794 798 798 799 800 802 803 804 804 805 806 806 807 809 809 809 812 815 818 822 827 831 835 839 841 844
SPIS TREŚCI A.13 Rozdział 13 A.14 Rozdział 14
15 847 851
B Podstawy teorii prawdopodobieństwa B.l Zdarzenia B.2 Aksjomaty prawdopodobieństwa B.3 Prawdopodobieństwo warunkowe B.4 Zmienne losowe B.4.1 Zmienne losowe dyskretne B.4.2 Zmienne losowe ciągłe B.5 Ważniejsze rozkłady prawdopodobieństwa
852 852 852 852 853 854 855 856
C Podstawy logiki predykatów C l Składnia języka predykatów C2 Semantyka języka predykatów C 3 Wnioskowanie w rachunku predykatów C 4 Rachunek predykatów w uczeniu się
857 857 858 860 861
D Internetowa strona książki
862
Literatura
863
Skorowidz
881
Dla A.(Q)
Przedmowa Fve got a linie blach book with mypoems inl Gdy praca owa ukazała się własnym moim nakładem, wybiegłem co rychlej na ulicę, tego pewien, iż lud mię zaraz na barkach swych uniesie, kwiatami uwieńczy i złotem obsypie, aliści nawet cybernardyn kulawy mnie nie pochwalił1.
Pomysł napisania tej książki pojawił się jesienią 1995 r., kiedy prowadziłem po raz pierwszy przedmiot Uczenie się maszyn dla studentów Wydziału Elektroniki i Technik Informacyjnych Politechniki Warszawskiej i pracowałem nad przygoto waniem dość szczegółowych notatek. Wówczas udało się to tylko częściowo — przygotowałem notatki jedynie do tych partii wykładanego materiału, w których czułem się niezbyt pewnie, a te najlepiej sobie znane omawiałem bez specjalnego przygotowania. Następnie od początku 1996 aż do połowy 1997 r. byłem zbyt po chłonięty swoją rozprawą doktorską, aby do sprawy wracać. Powrót ten nastąpił dopiero jesienią 1997 r., kiedy czas oczekiwania na recenzje tej rozprawy umila łem sobie przygotowywaniem, tym razem w sposób bardziej kompletny i syste matyczny, notatek do nieco zmodernizowanej wersji mojego wykładu. Wówczas notatki te, liczące niewiele ponad sto stron, udostępniłem studentom i nienajgor sze przyjęcie, z jakim się spotkały, spowodowało, że pomysł napisania książki o maszynowym uczeniu się pojawił się ponownie tuż po obronie rozprawy. Tak jak za pierwszym razem, tak i wówczas było oczywiste, że jest to pomysł szalony. Nie uważałem, aby moja wiedza, doświadczenie i umiejętność pisania były wy starczające do takiego przedsięwzięcia. Jeszcze mniej optymistycznie oceniałem własne zasoby energii, pracowitość i konieczną w tego rodzaju projektach bezin teresowność. Ale byłem tuż po kilkuletniej intensywnej pracy nad doktoratem oraz kilkumiesięcznym okresie rozprężenia między jej ukończeniem a obroną i musia łem sobie odpowiedzieć na pytanie, co robić dalej. Okazało się bardzo szybko, że ten szalony pomysł pisania książki jest na tyle kuszący, że nie potrafię się mu oprzeć. Stanowił on bowiem prawdziwe wyzwanie, które nie daje spokoju dopóty, dopóki nie stawi się mu czoła. Miałem szereg powodów, by wątpić, czy potrafię tę książkę dobrze napisać. I właśnie dlatego, a nie mimo to, musiałem spróbować. ]
Nobody home (Pink Floyd: The Wall). Bajka o trzech maszynach opowiadających króla Genialona.
2
18
PRZEDMOWA
Czytelnik otrzymuje obecnie efekt mojego kilkunastomiesięcznego zmagania się z tym wyzwaniem, do którego trzeba doliczyć także kilkunastomiesięczny etap prac redakcyjnych i przygotowywania tekstu do druku.
Cel książki Książka ma służyć jako podręcznik akademicki, dotyczący systemów uczących się. Jest to szczególnie intensywnie rozwijająca się dziedzina badań w ramach sztucznej inteligencji, która w ostatnich latach budzi w wielu krajach rosnące za interesowanie na uczelniach i w instytutach naukowych oraz coraz częściej znaj duje znaczące zastosowania praktyczne. Jej przedmiotem są metody konstruowa nia programów komputerowych, charakteryzujących się zdolnością do uczenia się, czyli — mówiąc najogólniej — do poprawy jakości wykonywania swoich zadań na podstawie doświadczeń z przeszłości. Dziedzinę tę będziemy nazywać ucze niem się maszyn lub maszynowym uczeniem się, chociaż są to bardzo niezręcznie brzmiące w języku polskim odpowiedniki jej angielskiej nazwy machinę learning. Celem książki jest prezentacja najważniejszych rodzajów maszynowego ucze nia się i odpowiadających im algorytmów uczenia się, opracowanych w większości w ciągu ostatnich 20 lat. W polskiej literaturze nie ma dotychczas pozycji, któ ra prezentowałaby wyniki badań nad systemami uczącymi się w sposób wszech stronny, systematyczny i nowoczesny. Nieliczne dostępne publikacje, poruszające zagadnienia maszynowego uczenia się, mają ograniczony zakres, uwzględniający tylko niektóre szczególne rodzaje i algorytmy uczenia się, a jedynym naprawdę dobrze reprezentowanym w nich typem systemów uczących się są sztuczne sieci neuronowe. Tę dotkliwą lukę ma wypełnić przedstawiana czytelnikowi książka.
Tematyka książki Próby konstruowania programów uczących się nie są motywowane chęcią elimi nacji wysiłku projektantów oprogramowania i programistów. Nie są one w żadnej mierze alternatywą dla tradycyjnej inżynierii oprogramowania. Motywacja do ich podejmowania nie wynika ze złożoności procesu tworzenia oprogramowania, któ rej opanowaniu służą nowoczesne metody analizy i projektowania, lecz ze złożo ności niektórych rodzajów zadań stawianych programom komputerowym, utrud niającej lub uniemożliwiającej sformułowanie poprawnych i pełnych algorytmów ich rozwiązywania. Program uczący się można sobie wyobrażać jako program wy korzystujący szablonowy, wymagający konkretyzacji algorytm wykonywania za dania, w którym pewne „puste miejsca" należy wypełnić nieznanymi z góry para metrami. Wówczas uczenie się polega na przekształceniu tego algorytmu w algo rytm konkretny spełniający wymagania konstruktora przez dobranie na podstawie
PRZEDMOWA
19
historycznych doświadczeń odpowiednich parametrów szablonu. Owe uzyskiwane w wyniku uczenia się parametry są nazywane, zależnie od rodzaju zadań, wiedzą lub umiejętnością. Algorytmy pozyskiwania lub doskonalenia wiedzy bądź umie jętności nazywa się algorytmami uczenia się. W literaturze systemów uczących się znanych jest bardzo wiele algorytmów uczenia się. Można je dzielić na grupy ze względu na różne kryteria, takie jak me toda reprezentacji wiedzy (umiejętności), rodzaj zadań, do wykonywania których ta wiedza (umiejętność) jest używana, sposób pozyskiwania doświadczeń stano wiących podstawę uczenia się (informacji trenującej). W książce będą omówio ne najbardziej reprezentatywne i skuteczne w praktyce algorytmy poszczególnych grup. Świadomie będą przy tym niemal całkowicie pominięte sieci neuronowe, które oczywiście są systemami uczącymi się szczególnego typu, lecz doczekały się już wielu znakomitych książek wydanych w języku polskim.
Przeznaczenie książki Książka, jako podręcznik akademicki, jest przeznaczona przede wszystkim dla stu dentów wyższych uczelni, studiujących na kierunkach informatycznych lub po krewnych. Będzie ona również pomocna dla nauczycieli akademickich zaintereso wanych prowadzeniem przedmiotów dotyczących systemów uczących się, którzy oprócz tekstu umożliwiającego opracowanie wykładu znajdą propozycje ćwiczeń i projektów. Dzięki wszechstronnemu i nowoczesnemu potraktowaniu dziedziny maszynowego uczenia się książka może się też stać pożytecznym źródłem infor macji dla naukowców, porządkującym najważniejsze wyniki badań w tej dziedzi nie i wskazującym podstawowe pozycje literatury. Dla doktorantów planujących własne badania dotyczące maszynowego uczenia się zapoznanie się z treścią książ ki będzie dobrym punktem wyjścia, dającym orientację w obecnym stanie wiedzy i ułatwiającym identyfikację obiecujących kierunków badawczych. Powinna ona także zaspokoić po części potrzeby praktyków zainteresowanych zastosowaniami systemów uczących się, zwłaszcza do odkrywania zależności w bazach danych, pozyskiwania wiedzy dla systemów eksperckich i automatycznego sterowania. U czytelników książki będzie zakładana znajomość podstaw informatyki i ele mentarna umiejętność programowania w dowolnym języku programowania. W lekturze niektórych fragmentów książki będzie pomocna znajomość podstaw rachunku prawdopodobieństwa i logiki formalnej, gdziekolwiek jednak wykorzy stywany aparat matematyczny wykracza poza materiał szkoły średniej, będzie on zwięźle opisany w dodatkach. Nieliczne trudniejsze pod względem matematycz nym rozważania czytelnicy niezainteresowani teoretycznymi podstawami syste mów uczących się mogą pominąć bez szkody dla zrozumienia istoty omawianych w niej algorytmów.
20
PRZEDMOWA
Ćwiczenia i projekty Ćwiczenia zamieszczane na końcu każdego rozdziału mają pomóc czytelnikowi w weryfikacji i ugruntowaniu zrozumienia omawianych w rozdziale zagadnień, zwrócić jego uwagę na niektóre szczegółowe problemy, które nie zostały dokład nie przedstawione w głównym tekście rozdziału, a niekiedy zasugerować pewne możliwe rozszerzenia algorytmów. W książce występują ćwiczenia trzech typów: tradycyjne: rozwiązywane za pomocą długopisu i kartki papieru, laboratoryjne: rozwiązywane przy komputerze z wykorzystaniem oprogramo wania towarzyszącego książce, dostępnego w Internecie, projektowe: rozwiązywane przez samodzielne zaprojektowanie, napisanie i uru chomienie programów. Wśród ćwiczeń tradycyjnych znajdują się m.in. pytania dotyczące pewnych elementów teorii lub właściwości algorytmów, polecenia prześledzenia działania algorytmów dla podanych danych wejściowych oraz ogólne sugestie pewnych mo dyfikacji algorytmów z prośbą o ich sprecyzowanie i przedyskutowanie. Szkicowe rozwiązania lub wskazówki do większości ćwiczeń tego typu są podane w dodatku do książki. Ćwiczenia laboratoryjne polegają na przeprowadzeniu eksperymentów, wy korzystujących zamieszczone na internetowej stronie książki implementacje oma wianych w niej algorytmów oraz na dokonaniu pewnych niewielkich zmian w tych programach. Ćwiczenia projektowe dotyczą implementacji pewnych wariantów algorytmów omawianych w książce i ewentualnie wykorzystania ich w konkretnych prostych zastosowaniach.
Oprogramowanie Książce towarzyszy zbiór programów, implementujących niektóre spośród oma wianych w niej algorytmów uczenia się. Sposób implementacji możliwie wier nie odzwierciedla opis algorytmów zamieszczony w tekście. Programy w postaci źródłowej w języku Common Lisp, którego komercyjne i darmowe interpretery są dostępne dla wszystkich częściej spotykanych typów komputerów i systemów operacyjnych (w tym dla najbardziej popularnych komputerów PC z systemami DOS/Windows i Linux), dostępne na internetowej stronie książki pod adresem h t t p : / / t i c h y . i s e .pw. edu . p l / S U / s u . h t m l . Dostępny jest tam także niekomercyjny intepreter języka Common Lisp w wersjach dla najbardziej popu larnych platform (MS DOS, MS Windows, Linux). Wybór najszerzej używanego dialektu języka Lisp, normowanego standardem ANSI, jako języka programowa nia, w którym zostały zaimplementowane algorytmy z książki, jest uzasadniony:
PRZEDMOWA
21
• jego dużymi walorami dydaktycznymi, w tym możliwością dokładnego śle dzenia wykonywania programów i łatwością ich modyfikacji ad hoc, • dostępnością mechanizmów wspomagających przetwarzanie symboliczne, le żące u podstaw większości implementowanych algorytmów, co pozwala uwol nić programy od nużących technicznych szczegółów i skoncentrować uwagę na algorytmach, kodowanych na poziomie abstrakcji zbliżonym do poziomu abstrakcji ich opisu w książce, • dążeniem do zapewnienia dużej przenośności kodu dostarczanego czytelni kom, umożliwiającej korzystanie z niego na różnych komputerach z różnymi systemami operacyjnymi. Chociaż znajomość języka Common Lisp (lub innego dialektu języka Lisp) niewątpliwie ułatwia korzystanie z programów, nie jest w żadnej mierze koniecz na. Udostępnianym programom towarzyszą szczegółowe instrukcje umożliwiające posługiwanie się nimi bez żadnej uprzedniej znajomości języka Lisp. Na interne towej stronie książki można znaleźć także krótki przewodnik po języku Common Lisp, umożliwiający zrozumienie kodu źródłowego i wykonywanie w nim pro stych modyfikacji. Odwołując się w treści niektórych ćwiczeń do zamieszczonych na internetowej stronie książki programów, a także przykładowych zbiorów danych dla tych pro gramów, które także można tam znaleźć, będziemy krótko pisać o udostępnionych programach i udostępnionych zbiorach danych.
Dydaktyczne wykorzystanie książki Jak wspomniano wcześniej, książka może być wykorzystana do celów dydaktycz nych — jako podstawowy tekst do kursu systemów uczących się lub jako uzu pełniający tekst do kursów na temat sztucznej inteligencji, systemów eksperckich, metod reprezentacji wiedzy itp. Według oceny autora zawartość książki może po służyć do opracowania przynajmniej 30-45 godzin wykładu (zależnie od pozio mu szczegółowości oraz przygotowania i zainteresowań słuchaczy). Zamieszczo ne w książce ćwiczenia tradycyjne są proponowane jako przykładowe zadania do mowe lub egzaminacyjne. Towarzyszące książce oprogramowanie i zamieszczo ne ćwiczenia laboratoryjne mogą posłużyć do zorganizowania 10-20 godzin za jęć przy komputerach w ramach laboratorium systemów uczących się. Ćwiczenia projektowe należy potraktować wtedy jako sugestie tematów semestralnych pro jektów wykonywanych indywidualnie lub w niewielkich zespołach. Niektóre trud niejsze ćwiczenia projektowe, odpowiednio rozwinięte, można także potraktować jako sugestie tematów prac dyplomowych na poziomie wyższych studiów zawo dowych lub, zwłaszcza po uwzględnieniu sugerowanych w książce modyfikacji i usprawnień omawianych w niej algorytmów, magisterskich.
22
PRZEDMOWA
Przegląd rozdziałów Na książkę składa się 14 rozdziałów i 4 dodatki. Rozdział 1 przybliża czytelnikom algorytmiczne rozumienie procesu uczenia się. Rozdział 2 definiuje zadanie indukcyjnego uczenia się (w kilku podstawowych odmianach) i wprowadza jego podstawy teoretyczne. Rozdział 3 jest poświęcony jednemu z głównych podejść do indukcyjnego ucze nia się pojęć na podstawie przykładów, w którym hipotezy są reprezentowane za pomocą drzew decyzyjnych. Rozdział 4 jest poświęcony drugiemu głównemu podejściu do uczenia się pojęć na podstawie przykładów — indukcji zbiorów reguł. Rozdział 5 podaje najważniejsze metody uczenia się oparte na wynikach teo rii prawdopodobieństwa, a zwłaszcza na twierdzeniu Bayesa, odgrywającym wciąż rosnącą rolę w sztucznej inteligencji. Rozdział 6 dotyczy algorytmów tworzenia pojęć, czyli indukcyjnego uczenia się bez nadzoru. Rozdział 7 omawia bardzo ważne w praktyce, a rzadko systematycznie prezento wane problemy przekształcania zbioru atrybutów opisujących przykłady w ce lu umożliwienia bądź ułatwienia stosowania algorytmów indukcyjnego ucze nia się. Rozdział 8 jest poświęcony algorytmom uczenia się aproksymacji funkcji — od wzorowań ze zbioru przykładów na zbiór liczb rzeczywistych. Rozdział 9 wprowadza istotne rozszerzenie do paradygmatu indukcyjnego ucze nia się omawianego w poprzednich rozdziałach, polegające na wykorzystaniu predykatów do reprezentowania pojęć, a do reprezentowania hipotez formuł rachunku predykatów pierwszego rzędu. Rozdział 10 zamyka część książki poświęconą metodom indukcyjnego uczenia się omówieniem jego najważniejszego praktycznego zastosowania, jakim jest obecnie odkrywanie zależności w danych, na ogół przechowywanych w ba zach danych. Rozdział 11 odchodzi od paradygmatu indukcyjnego uczenia się i zwraca uwagę na pomijaną w poprzednich rozdziałach wiedzę wrodzoną ucznia — wiedzę, w jaką system uczący się może być wyposażony przez jego konstruktora i która może być wykorzystana do odpowiedniego uogólnienia informacji trenującej za pomocą metod uczenia się przez wyjaśnianie. Rozdział 12 jest poświęcony uczeniu się zupełnie innego rodzaju wiedzy niż bę dąca przedmiotem zainteresowania w poprzednich rozdziałach wiedza mająca charakter odwzorowania określonego na obiektach pewnej dziedziny. W tym rozdziale jest ona reprezentowana przez maszyny abstrakcyjne, nazywane au tomatami skończonymi.
PRZEDMOWA
23
Rozdział 13 przynosi kolejną zmianę rozważanego paradygmatu uczenia się. O ile poprzednie rozdziały były poświęcone w większości uczeniu się z nadzorem i niekiedy uczeniu się bez nadzoru, o tyle ten dotyczy uczenia się ze wzmoc nieniem, w którym uczeń otrzymuje wartościującą informację trenującą i na podstawie tej informacji oraz interakcji ze środowiskiem ma nauczyć się se kwencyjnego podejmowania decyzji, czyli pewnej umiejętności. Rozdział 14 zamykający główną część książki jest próbą podsumowania zawar tych w niej treści oraz wskazania aktualnych problemów w dziedzinie syste mów uczących się, którymi zajmują się naukowcy i praktycy. Dodatek A zawiera szkicowe rozwiązania lub wskazówki do większości ćwiczeń tradycyjnych. Dodatek B streszcza podstawowe wiadomości z zakresu teorii prawdopodobień stwa, które mogą ułatwić lekturę kilku bardziej teoretycznych fragmentów książki. Dodatek C stanowi krótkie wprowadzenie do rachunku predykatów pierwsze go rzędu, zawierające wiadomości wykorzystywane w niektórych rozdziałach książki. Dodatek D zawiera zwięzły opis zawartości internetowej strony książki.
Źródło cytatów Koniec niniejszej przedmowy wydaje się najlepszym miejscem, aby wyjaśnić po chodzenie otwierających każdy rozdział cytatów literackich. Ich celem jest — cza sem zabawne, a nawet nieco przewrotne — komentowanie zawartości następują cych po nich stron, lecz przede wszystkim nadanie nieco suchej książce akademic kiej charakteru bardziej osobistego. W związku z tym zaczerpnąłem je z utworów dwóch bardzo różnych autorów, których twórczość znam i cenię. Pierwszy z każ dej pary cytatów pochodzi z tekstów artysty rockowego Rogera Watersa, wielolet niego członka grupy Pink Floyd. Cytaty umieszczone na drugim miejscu wybrałem z opowiadań Stanisława Lema zamieszczonych w tomie Cyberiada. Nie zawsze udało mi się dobrać fragmenty wyraźnie nawiązujące do tematyki rozdziału, lecz pomysł cytowania w każdym przypadku tych samych dwóch autorów był dla mnie — przez moje upodobanie do systematyczności — zbyt kuszący, aby się tym za nadto przejmować. Dla każdego cytatu z Watersa podaję tytuł utworu oraz płyty, na której został opublikowany. Dla cytatów z Lema podaję tytuły odpowiednich opowiadań.
Podziękowania Heyyou, wouldyou help me to carry the stone?3 — Przyszedłem podziękować ci za piękny podarek, szkoda tylko, że podczas mego snu umknął zostawiając otwarte drzwi, jakby się pałiłof
Chociaż na zasadniczy kształt książki nikt poza mną nie miał większego wpływu, wiele osób przyczyniło się do jej powstania i poprawienia niektórych jej manka mentów. W pierwszej kolejności chcę podziękować swojemu szefowi, Profesorowi Janowi Mulawce, za zachętę do podjęcia pracy nad przeobrażeniem zbioru moich notatek w książkę. Z bardzo życzliwym przyjęciem spotkałem się, kiedy z tym pomysłem zwróciłem się do Pani Redaktor Elżbiety Beuermann z Wydawnictw Naukowo-Technicznych, której zachęta towarzyszyła mi przez cały czas pracy, dyscyplinując mnie do nieprzekraczania ustalonych terminów i ograniczeń roz miaru tekstu. Ani bez początkowej zachęty Profesora Mulawki, ani bez życzli wości Pani Redaktor, nie poważyłbym się na przedsięwzięcie, którego ta książka jest rezultatem. Ważne było także towarzyszące ich wsparciu moralnemu wspar cie finansowe pochodzące od Dziekana Wydziału Elektroniki i Technik Informa cyjnych, które otrzymałem w ramach grantu dziekańskiego i za które wyrażam podziękowanie. Praca nad książką przebiegała zbyt intensywnie, abym mógł znaleźć czas na szerokie konsultowanie moich koncepcji przed ich przelaniem na papier. Pierw szym czytelnikiem roboczych wersji tekstu był Krzysiek Skowroński, za którego dużą wnikliwość i umiarkowany krytycyzm jestem wdzięczny. Szczególnie cen na była jego pomoc w uzupełnieniu danych bibliograficznych oraz sprawdzeniu poprawności przykładów i rozwiązaniu niektórych ćwiczeń, choć nie zdejmuje to ze mnie pełnej i wyłącznej odpowiedzialności za wszystkie błędy, jakie mimo to pozostały. Kompletny, choć jeszcze bardzo surowy manuskrypt, zechciał prze czytać Profesor Ryszard Michalski. Żałuję, że nie wszystkie z jego uwag byłem w stanie uwzględnić ze względu na przyjęty w książce poziom szczegółowości. Dziękuję opiniodawcy książki Profesorowi Andrzejowi Szałasowi za wnikliwą lekturę, wytknięcie błędów i sugestie ulepszeń — z większością z nich zgodzi łem się, a z tych z kolei większość wprowadziłem, w takim stopniu, w jakim czas 2 4
Hey you (Pink Floyd: The Wali). Wielkie łanie.
26
PODZIĘKOWANIA
na to pozwalał. Jestem też wdzięczny redaktorowi merytorycznemu książki, Pa ni Zofii Dackiewicz, za trud włożony w zapewnienie poprawności językowej oraz uporządkowanie terminologii i stylu, a także za wyrozumiałość w przypadkach, w których postanowiłem pozostać przy swojej wersji, wskutek czego sam ponoszę odpowiedzialność za występujące w książce niekonsekwencje w tym zakresie. O ile rękopis książki był dostępny dla bardzo wąskiego kręgu czytelników, o tyle stanowiące dla niej materiał wyjściowy notatki do wykładu były czytane przez nieco szersze grono słuchaczy. Dzięki nim zdobyłem doświadczenie dydak tyczne w zakresie systemów uczących się, które pomogło mi w prowadzeniu wy wodu oraz doborze przykładów i ćwiczeń. Zapewne książka nie jest tak przystęp na, jak można by sobie tego życzyć, lecz dzięki moim studentom jest napisana mniej mętnie, niż byłaby, gdybym był pozbawiony pochodzącego od nich sprzę żenia zwrotnego, zwłaszcza w postaci pytań i dyskusji podczas wykładów. Swoim rodzicom dziękuję za to, że regularnie pytając o postępy w mojej pra cy nie pozwalali mi jej zbytnio zaniedbać, a Asi (mojemu Qlinkowi) za radość i nadzieję, jaką dało mi jej pojawienie się w moim życiu.
Warszawa, w czerwcu 2000 r.
Paweł Cichosz
Wykaz ważniejszych oznaczeń -r — operator różnicy symetrycznej zbiorów -< — relacja większej szczegółowości hipotez y — relacja mniejszej szczegółowości hipotez O — relacja pokrywania przykładów ? — selektor uniwersalny 0 — selektor pusty (?) — kompleks uniwersalny (0) — kompleks pusty A"=i Pi — koniunkcjap! A p2 A • - * A pn V"=i Pi — alternatywa pi V p2 V • • • V pn f|"=1 Bi — iloczyn zbiorów Bx n B2 n • • • n Bn UiLi Bi — suma zbiorów £?i U B2 U • • • U Bn A — przestrzeń atrybutów Ai — przeciwdziedzina atrybutu ai a% — atrybut o numerze i argmax y F(y) — (dowolna) wartość y maksymalizująca F(y) argmin^ F(y) — (dowolna) wartość y minimalizująca F(y) Arg maxy F(y) — zbiór wszystkich wartości y maksymalizujących F(y) Argmax^ F(y) — zbiór pierwszych m wartości y w kolejności według rosnących war tości F(y) — wartość bezwzględna b \b\ — liczba elementów zbioru B \B\ — klasa pojęć C — współczynnik dyskontowania 7 — etykieta kategorii liścia 1 drzewa decyzyjnego di dr — etykieta kategorii reguły r — funkcja przejść automatu; funkcja przejść procesu decyzyjnego Markowa 5 J* — łańcuchowa funkcja przejść automatu — wiarygodność reguły asocjacyjnej r na zbiorze przykładów P fr(P) $ — przestrzeń cech — cecha o numerze i 4>i U — ogólne ograniczenie przestrzeni wersji VSe)jP H,P — przestrzeń hipotez e — zbiór przedziałów dyskretyzacji II k — kompleks — kompleks reguły r kr — maksymalnie szczegółowy kompleks pokrywający przykład x *^x K — koniunkcja literałów L — zbiór literałów
28 ŁK LJ lx .z X
WYKAZ WAŻNIEJSZYCH OZNACZEŃ
— — — —
zbiór literałów występujących w koniunkcji K zbiór liści drzewa decyzyjnego T liść drzewa decyzyjnego T odpowiadający przykładowi x pusty napis (ciąg akcji) dla automatu; współczynnik świeżości w metodach TD(A) max y F(y) — maksymalna wartość F(y) dla różnych y maKJ^i, V2,. . . , Vk } — maksymalna liczba spośród v\, v2,..., Vk min y F(y) — minimalna wartość F(y) dla różnych y m i n j f i , ^ , . . . ,Vk} — minimalna liczba spośród v\, v2, - - . , ^ Np*0,3 — tablica kontyngencji dla atrybutów ai i aj na podstawie zbioru przykła dów P Nj — zbiór węzłów drzewa decyzyjnego T Nj,x — zbiór węzłów drzewa decyzyjnego T odpowiadających przykładowi x UJ — funkcja wyjść automatu u* — łańcuchowa funkcja wyjść automatu Pcd — podzbiór zbioru przykładów P należących do kategorii d pojęcia c Pd — podzbiór zbioru przykładów P należących do kategorii d ustalonego pojęcia docelowego phd — podzbiór zbioru przykładów P należących do kategorii d hipotezy h Pai — podzbiór zbioru przykładów P, dla których wartość atrybutu a należy do przedziału / Pav — podzbiór zbioru przykładów F, dla których atrybut a ma wartość v Pa — podzbiór zbioru krotek P pokrywanych przez klauzulę a Pk — podzbiór zbioru przykładów P pokrywanych przez kompleks k Ą\i — podzbiór zbioru przykładów P odpowiadający liściowi n drzewa decyzyj nego T Ą\n — podzbiór zbioru przykładów P odpowiadający węzłowi n drzewa decyzyj nego T Ptr — podzbiór zbioru przykładów P, dla których test t daje wynik r PxV {o) — prawdopodobieństwo przejścia procesu decyzyjnego Markowa ze stanu x do stanu y po wykonaniu akcji a pr — kompleks warunkujący reguły asocjacyjnej r ii — strategia Qn — funkcja wartości akcji względem strategii ix qr — kompleks warunkowany reguły asocjacyjnej r 5R — zbiór liczb rzeczywistych M — zbiór reguł %c — podzbiór zbioru reguł IR złożony z reguł pokrywających przykład x Rd — podzbiór zbioru reguł E złożony z reguł dla kategorii d pokrywających przy kład x Rt — zbiór wyników (przeciwdziedzina) testu t R{x, a) — wartość oczekiwana nagrody dla procesu decyzyjnego Markowa po wyko naniu akcji a w stanie x r — reguła Q — relacja docelowa; funkcja wzmocnienia procesu decyzyjnego Markowa pi — relacja pomocnicza
WYKAZ WAŻNIEJSZYCH OZNACZEŃ
S S^P Si s^ Sr(.P) sy T (T) A
— — — — — — — —
{T)CK
—
(T){
—
Ty>x
—
P'^
—
tn 0[ #2 d wT Ui Va Vs V* VC(H) VS| P
— — — — — — — — — — —
(X)A
—
29
zbiór wszystkich kompleksów atomowych szczegółowe ograniczenie przestrzeni wersji V S ^ P zbiór numerów następników węzła ai w sieci bayesowskiej selektor występujący w kompleksie k na pozycji i wsparcie reguły asocjacyjnej r na zbiorze przykładów P selektor o zbiorze wartości dozwolonych V drzewo decyzyjne zbiór trenujący do tworzenia pojęć zawierający opisy przykładów za pomocą atrybutów z przestrzeni A zbiór trenujący do uczenia się pojęcia docelowego c zawierający opisy przy kładów za pomocą atrybutów z przestrzeni A zbiór trenujący do uczenia się aproksymacji funkcji docelowej / zawierający opisy przykładów za pomocą atrybutów z przestrzeni A zbiór trenujący do odkrywania równania dla zmiennej zależnej y i niezależ nej x zbiór trenujący do odkrywania równania dla zmiennej zależnej y i zbioru zmiennych niezależnych Vx test w węźle n drzewa decyzyjnego lewy koniec przedziału dyskretyzacji I prawy koniec przedziału dyskretyzacji I funkcja oceny jakości (testów, kompleksów, literałów itd.) macierz transponowana dla macierzy w zbiór numerów bezpośrednich poprzedników węzła a* w sieci bayesowskiej zbiór wszystkich zmiennych wolnych występujących w formule a zbiór wartości dozwolonych selektora s funkcja wartości względem strategii TT wymiar Vapnika-Chervonenkisa dla przestrzeni hipotez M przestrzeń wersji pojęcia c ze względu na przestrzeń hipotez M i zbiór przy kładów P wektor wartości atrybutów z przestrzeni A dla przykładu x
Rozdział 1
Uczenie się w ujęciu algorytmicznym Welcome my son, welcome to the machinę1 Zbieram skarby wiedzy, gdyż takie jest moje zamiłowanie Życiowe, płynące z wyższego wykształcenia i praktycznego wglądu w istotę rzeczy ( . . . J2.
Celem rozdziału jest łagodne wprowadzenie czytelnika w krąg problemów, któ rym jest poświęcona ta książka. Dzięki temu dość ogólnemu i odwołującemu się głównie do intuicji rozdziałowi mamy nadzieję w rozdziałach kolejnych przecho dzić do konkretów szybko i sprawnie. Wyjaśnimy tu, co będziemy rozumieć przez uczenie się i system uczący się oraz dlaczego takie systemy są godne naszego zainteresowania. Zobaczymy, jak na podstawie kilku kryteriów można wyróżnić wiele rodzajów uczenia się, którym odpowiadają właściwe dla nich algorytmy. Naszkicowany tu zostanie także obraz maszynowego uczenia się jako dyscypliny naukowej, z właściwym jej podziałem zainteresowań między uprawiającymi ją na ukowcami. Pozwoli to ogólnie zapoznać czytelnika z zakresem książki, która jest w zamierzeniu wszechstronnym i systematycznym podręcznikiem tej dyscypliny. Zostaną wskazane także jej powiązania z wybranymi dyscyplinami pokrewnymi, które będą dawać o sobie znać w kolejnych rozdziałach. Przedstawimy rolę ba dań nad uczeniem się w ramach szerszej dziedziny sztucznej inteligencji, zapo znając przy okazji czytelnika z podziałem na słabą i silną sztuczną inteligencję oraz związanymi z tym dylematami. Przygotowaniem do kolejnych rozdziałów, poświęconych różnym rodzajom uczenia się i algorytmom służącym do ich auto matyzacji, będzie zarys inferencyjnej teorii uczenia się, która traktuje ten proces jako wynik jednego lub wielu łącznie stosowanych mechanizmów wnioskowania. Zakończymy zwięzłym i z konieczności niesłychanie uproszczonym przeglądem bezpośrednio lub pośrednio związanych z uczeniem się problemów filozoficznych, jakie poruszała myśl zachodnia w ciągu ostatnich 2500 lat.
1
Welcome to the machinę (Pink Floyd: Wish You Werę Herę). Wyprawa szósta, czyli jak Trurl i Klapaucjusz demona drugiego rodzaju stworzyli, aby zbójcę Gębona pokonać. 1
32
ROZDZIAŁ 1. UCZENIE SIĘ W UJĘCIU ALGORYTMICZNYM
1.1 Znaczenie uczenia się Czytelnik tej książki musiał się wiele nauczyć, żeby móc przystąpić do jej czy tania. Ucząc się zdobywamy wiedzę, taką jak znajomość liter alfabetu, ortografii i gramatyki języka oraz znaczenia słów i zdań, znajomość notacji matematycznej i sposobu posługiwania się nią oraz podstawowych pojęć informatyki, aby wymie nić tylko to, co z lekturą książki wiąże się najbardziej bezpośrednio. Ucząc się zdobywamy także umiejętności, takie jak umiejętność mówienia, czytania, umie jętność programowania, a także umiejętność chodzenia, jeżdżenia na rowerze, kie rowania samochodem i pływania. Uczymy się rozpoznawać twarze znanych sobie osób, wiek ludzi na podstawie ich wyglądu, ich nastrój na podstawie wyrazu twa rzy i gestykulacji. Uczymy się korzystając z pomocy nauczycieli i podręczników. Uogólniamy nasze obserwacje i odkrywamy zależności między nimi. Podejmu jemy próby i popełniamy błędy, korygowane przez krytycznych instruktorów lub przez nas samych, których ponownego popełnienia staramy się uniknąć. Nie ma żadnej przesady w kategorycznym stwierdzeniu, że całe nasze doświadczenie jest przetkane uczeniem się. Całokształt naszych cech psychicznych i intelektualnych oraz fizycznych sprawności jest wynikiem długotrwałego i nieustającego procesu uczenia się, a może raczej niezliczonej liczby przeplatających się procesów ucze nia się. Uczą się także niektóre zwierzęta. Nawet wyjątkowo mało lotny pies rozpo znaje właściciela i domowników, reaguje na swoje imię i wie, o jakiej porze dnia i w jakim miejscu może się spodziewać porcji pożywienia. Bardziej rozgarnię ci przedstawiciele gatunku naszych szczekających przyjaciół zaskakują nas cza sem przejawami wiedzy lub umiejętności znacznie bardziej skomplikowanych, a przy tym z pewnością nie wrodzonych, lecz nabytych. Właśnie na ich zdolno ści do uczenia się opiera się wykorzystywanie ich przez policję, straż graniczną czy niektóre inne służby. Szczury najwyraźniej uczą się unikać trutek rozkłada nych w piwnicach. Grupę szympansów udało się nawet nauczyć posługiwania się językiem migowym w celu porozumiewania się. Jak mają się te różne znane nam rodzaje uczenia się, występujące u ludzi i zwierząt, do tego, czego ma nauczyć czytelnika ta książka? Na to pytanie pró buje w gruncie rzeczy odpowiedzieć cały ten rozdział, ale odpowiedź zaczyna się właśnie tutaj. Otóż chcemy mówić o sztucznych systemach, a nazywając rzeczy po imieniu — o programach komputerowych, którym można przypisać pewną szczególną właściwość. Właściwość tę, przy wszystkich różnicach dzielących ją od właściwości naturalnych systemów biologicznych, najlepiej można opisać na zywając ją zdolnością do uczenia się. W kolejnych rozdziałach dowiemy się, jak pisać programy komputerowe mające tę właściwość. W tym rozdziale postaramy się lepiej zrozumieć istotę tej właściwości i uzasadnić celowość rozważania jej nie tylko w ujęciu biologicznym i psychologicznym, lecz także algorytmicznym.
1.1. ZNACZENIE UCZENIA SIĘ
1.1.1
33
Definicja uczenia się
Jak w tym bogactwie rodzajów uczenia się, którego przed chwilą zaledwie do tknęliśmy, znaleźć wspólne elementy? Innymi słowy, na czym polega zdolność do uczenia się, która jest udziałem niektórych systemów biologicznych i którą chcemy także przypisać tworzonym przez nas systemom sztucznym? Przy całej różnorodności rodzajów uczenia się, jakich doświadczamy sami i jakie obserwu jemy u innych ludzi lub zwierząt, najwyraźniej znamy pojęcie uczenia się, chociaż możemy mieć trudności z podaniem jego definicji. Inaczej mówiąc, potrafimy po wiedzieć, czy w poszczególnych przypadkach mamy do czynienia z uczeniem się, czy też nie, lecz podanie ogólnych reguł rozstrzygania tej kwestii może stanowić pewien kłopot. Spróbujemy mimo to wykonać kilka pierwszych kroków w kierun ku sformułowania takich reguł. Pierwszym elementem uproszczonej definicji uczenia się, którą będziemy się tu starali skonstruować, jest zmiana. Nie można powiedzieć, że uczy się czego kolwiek system, który pozostaje niezmienny w czasie. Nie każda jednak zmiana zachodząca w systemie ma charakter uczenia się — by użyć skrajnego kontrprzykładu, zmianą jest również zapominanie. Precyzując zatem rodzaj zmian, o jakie może chodzić, będziemy żądać, aby zmiany te były korzystne, czyli aby niosły poprawę. Nie chodzi tu rzecz jasna o poprawę z jakiegokolwiek aksjologicznego punktu widzenia, poprawę, dzięki której system staje się „moralnie lepszy", lecz o poprawę czysto instrumental ną — zwiększenie skuteczności, sprawności systemu w wypełnianiu jego funk cji. Uczącym się ludziom ich funkcje, oprócz czysto biologicznych uwarunko wań, wyznacza cywilizacja, społeczeństwo i wyznawany światopogląd, uczącym się zwierzętom zajmowana przez nie nisza ekologiczna lub wymagania tresera, a uczącym się programom komputerowym ich konstruktor i użytkownik. Może się zdarzyć, że następująca w systemie zmiana będzie korzystna ze względu na nie które jego funkcje, a niekorzystna ze względu na inne. Możemy przyjąć, że takie zmiany o mieszanych skutkach również zasługują na nazwanie uczeniem się, lecz odmówić takiej nazwy zmianom, których konsekwencje dla działania systemu są wyłącznie negatywne. Zakładamy przy tym, że dla każdego konkretnego systemu istnieje możliwość oceny jakości jego działania, umożliwiająca zauważenie zmian i odróżnienie zmian korzystnych od niekorzystnych, choć w praktyce czasem oce na taka musi mieć charakter dość arbitralny. Nie każdą jednak instrumentalnie korzystną zmianę jesteśmy skłonni nazwać uczeniem się. Zwierzę, które zaczyna być lepiej odżywiane, staje się bardziej sprawne, ale niczego się w ten sposób nie uczy. Niczego się nie uczy także pro gram komputerowy, w którym poprawiono implementację kilku funkcji lub który skompilowano lepiej optymalizującym kompilatorem, chociaż w obu przypadkach możemy w nim obserwować korzystną zmianę. Nie uznalibyśmy również za wy-
34
ROZDZIAŁ 1. UCZENIE SIĘ W UJĘCIU ALGORYTMICZNYM
nik uczenia się jakiejkolwiek niewrodzonej sprawności uzyskanej przez człowieka na skutek interwencji neurochirurgicznej lub zażycia specyfiku psychotropowego, bez względu na to, czy jest to obecnie możliwe. Powyższe kontrprzykłady mogą sugerować dalsze rozbudowanie naszej de finicji przez dodanie wymogu autonomiczności korzystnych zmian zachodzących w systemie: system, który się uczy, sam zmienia się na lepsze (a nie jest zmieniany przez kogoś lub coś na zewnątrz niego). Tu jednak wkraczamy na dość niepewny grunt subtelnych rozróżnień, gdyż chodzi mimo wszystko nie o zmianę samoistną czy losową, lecz o zmianę, która — chociaż autonomiczna — dokonuje się pod wpływem albo na podstawie pewnych czynników lub okoliczności zewnętrznych. Aby autonomiczna korzystna zmiana w systemie mogła być nazwana uczeniem się, będziemy dodatkowo wymagać, aby wpływające na nią czynniki zewnętrzne można było sensownie traktować jako doświadczenia zdobywane przez system. Warunek ten spełniają czynione przez system obserwacje lub otrzymywane in formacje związane z jego funkcjami, których poprawa sprawności wykonywania jest zewnętrznym znamieniem procesu uczenia się. Dla tresowanego zwierzęcia doświadczeniem takim będzie udane wykonanie żądania tresera, po którym nastę puje nagroda, bądź niepoprawne zachowanie, po którym następuje kara. W naturze dla zwierzęcia doświadczenie umożliwiające uczenie się pochodzi z prób stawia nia czoła wymogom środowiska, w którym żyje, takich jak poszukiwanie poży wienia czy ucieczka przed groźnym napastnikiem, lecz mogą one także pochodzić z obserwacji i naśladowania innych osobników tego samego gatunku. Dla ucznia w szkolnej ławce jest możliwa większa różnorodność form, w jakich zdobywa on swoje doświadczenia: obejmują one wykład nauczyciela, dostarczane przez nie go przykłady wykonywania określonych typów zadań, a także samodzielne próby rozwiązywania innych zadań tych typów, korygowane lub ocenianie przez nauczy ciela. Definicja uczenia się, do której doprowadziły powyższe rozważania, może być sformułowana następująco: • DEFINICJA 1.1. Uczeniem się systemu jest każda autonomiczna zmiana w sys temie zachodząca na podstawie doświadczeń, która prowadzi do poprawy ja kości jego działania. 0 System, w którym w pewnym okresie czasu zachodzą zmiany spełniające za warte w tej definicji warunki, będziemy nazywać uczniem. Definicji tej daleko oczywiście do precyzji. O ile warunek zmiany poddaje się jeszcze stosunkowo obiektywnym kryteriom weryfikacji, o tyle przy pozostałych wchodzimy w obszar rozstrzygnięć umownych i zależnych od punktu widzenia. Nic nie znaczy popra wa, jeśli nie określimy, jakich aspektów działania systemu ma ona dotyczyć, i nie podamy kryterium jakości, według którego chcemy ją mierzyć. Jeszcze gorzej jest
1.1. ZNACZENIE UCZENIA SIĘ
35
z oceną autonomicznosci zmian i całkiem źle z rozstrzyganiem, czy nastąpiły na podstawie doświadczeń. Te pożałowania godne problemy nie tyle jednak świad czą o mankamentach definicji, co raczej o naturalnej nieostrości naszego pojęcia uczenia się, którego sztuczne wyostrzanie na nic by się nie zdało. Zmniejszając nasze wymagania, potraktujmy ją w tej chwili tylko jako wstępną wskazówkę od noszącą się do tego, co należy do istoty uczenia się, którą najlepiej rozpatrywać w połączeniu z bardziej lub mniej konkretnymi przykładami różnych form, jakie może ten proces przyjmować. Kilka bardzo prostych przykładów uczenia się przez ludzi i zwierzęta podaliśmy wyżej. Kolejne przykłady, jakie się pojawią, będą do tyczyć już tego, co nas tu interesuje przede wszystkim, czyli uczenia się przez programy komputerowe. 1.1.2
Programy uczące się
Próby konstruowania programów uczących się nie są motywowane chęcią elimi nacji wysiłku projektantów oprogramowania i programistów. Nie są one w żadnej mierze alternatywą dla tradycyjnej inżynierii oprogramowania — tak zresztą jak zdolność uczenia się ludzi i zwierząt nie może zastąpić odpowiedniego wyposaże nia organizmów ukształtowanego na drodze ewolucji. Motywacja do podejmowa nia tych prób nie wynika ze złożoności procesu tworzenia oprogramowania, której opanowaniu służą nowoczesne metody analizy i projektowania, lecz ze złożoności niektórych rodzajów zadań stawianych programom komputerowym, utrudniającej lub uniemożliwiającej sformułowanie poprawnych i pełnych algorytmów ich roz wiązywania. Program uczący się można sobie wyobrażać jako program wykorzy stujący abstrakcyjny, w pewien sposób „parametryzowany" algorytm wykonywa nia zadania. Uczenie się polega wówczas na dobraniu na podstawie historycznych doświadczeń odpowiednich „parametrów", które ten algorytm abstrakcyjny prze kształcą w spełniający wymagania konstruktora algorytm konkretny. Symbolicznie ilustruje to rys. 1.1. Uzyskiwane w wyniku uczenia się „parametry" są nazywane, zależnie od ro dzaju zadań i przyjętego punktu widzenia, wiedzą lub umiejętnością. Ponieważ nie są one uczniowi w żaden sposób bezpośrednio podawane, lecz identyfikowane przez niego w wyniku autonomicznego procesu uczenia się, nazywa się je czę sto jego hipotezą, pochodzącą z pewnego zbioru określanego mianem przestrzeni hipotez, która zawiera wszystkie hipotezy, jakie uczeń może wykorzystywać do wykonywania swoich zadań. Taka terminologia podkreśla z jednej strony niepew ny status wiedzy lub umiejętności pozyskanych przez ucznia, które najczęściej nie mogą być uznane za niezawodne i mogą wymagać rewizji, z drugiej zaś strony jego rolę jako autonomicznego podmiotu, który samodzielnie je odkrywa. Różnica między wiedzą a umiejętnością jest zresztą dość płynna i ma charakter umowny. Raczej o umiejętności niż o wiedzy mówi się w przypadku zadań wyma-
36
ROZDZIAŁ 1. UCZENIE SIĘ W UJĘCIU ALGORYTMICZNYM
algorytm abstrakcyjny
algorytm konkretny
I
a
I
uczenie się
Rys. 1.1. Uczenie się jako konkretyzacja algorytmu gających wykonania przez program pewnej sekwencji operacji, która jest ustalana w wyniku uczenia się. Stanowi więc ona odpowiedź na pytanie, jak należy postę pować, aby osiągnąć pożądane cele. O wiedzy powiedzielibyśmy raczej wówczas, gdy chodzi o wybór jednego z wariantów pewnej pojedynczej decyzji, dotyczącej najczęściej interpretacji danych wejściowych systemu. Odpowiada ona na pyta nie, co wiadomo o obserwowanym obiekcie, na przykład jakiego jest rodzaju, czy jak jest powiązany z innymi obiektami. Często i wiedzę w takim węższym sensie, i umiejętność nazywa się łącznie wiedzą w szerszym sensie. Wówczas o wiedzy w węższym sensie można mówić jako o wiedzy deklaratywnej (opisującej pewne obiekty, sytuacje, związki), a o umiejętności jako o wiedzy proceduralnej (repre zentującej strategie osiągania pewnych celów). Algorytmy pozyskiwania lub do skonalenia wiedzy bądź umiejętności są nazywane algorytmami uczenia się. Zde cydowana większość tej książki jest poświęcona różnym algorytmom uczenia się zarówno wiedzy, jak i umiejętności3. Jeśli powyższy obraz uczenia się przez programy komputerowe zdaje się nie zbyt ściśle przystawać do przedstawionej wcześniej przybliżonej definicji uczenia się jako takiego, to jest to tylko pozorna rozbieżność. W trakcie uczenia się na stępuje bowiem zmiana przechowywanych i wykorzystywanych przez program „parametrów" algorytmu wykonywania zadania, czyli wiedzy lub umiejętności. Można się spodziewać, że jest to zmiana korzystna, zwłaszcza jeśli początkowe domyślne wartości tych „parametrów" nie były odpowiednio dobrane (gdyby bo wiem istniała możliwość takiego doboru, uczenie się byłoby zbędne). Jest ona autonomiczna, gdyż dokonuje jej sam program, a nie programista lub operator. 3
W części starszych źródeł poświęconych systemom uczącym się uczenie się umiejętności nie było wcale lub w tylko znikomym stopniu reprezentowane. W tej książce jesteśmy w stosunku do niego bardziej sprawiedliwi, lecz i tak jej większa część jest poświęcona pozyskiwaniu wiedzy de klaratywnej.
1.1. ZNACZENIE UCZENIA SIĘ
37
Następuje wreszcie na podstawie doświadczeń, które będziemy w tym przypadku określać także mianem informacji trenującej. Tak jak uczące się systemy biolo giczne, uczące się programy mogą posiadać wiedzę wrodzoną, wbudowaną przez konstruktora, która w trakcie uczenia się podlega uzupełnianiu, korygowaniu i do skonaleniu. 1.1.3
Przykłady maszynowego uczenia się
Aby nie zniechęcić czytelnika zanadto abstrakcyjnym charakterem powyższych wywodów, przedstawimy teraz kilka konkretnych przykładów uczenia się, z jakim możemy mieć do czynienia w przypadku programów komputerowych. Przykład 1.1 (Gra w grę planszową). Weźmy pod uwagę program służący do gry w grę planszową, taką jak warcaby, który początkowo gra formalnie poprawnie (zgodnie z regułami gry), lecz miernie. Wiedzą systemu może być wówczas funkcja oceniająca jakość różnych możliwych sytuacji na planszy ze względu na jego szan se wygranej. Zmiana tej funkcji może być przeprowadzana na podstawie wyników wcześniej rozegranych partii. Jeśli dzięki tej zmianie program potrafi lepiej oceniać użyteczność występujących w trakcie gry sytuacji, to potrafi również lepiej wybierać swoje ruchy i w efekcie poziom jego gry się podnosi. Zauważmy, że ten przykład de monstruje występującą w pewnych sytuacjach wymienność między wiedzą a umiejęt nością: wiedza reprezentowana w tym przypadku przez funkcję oceny sytuacji w grze przekłada się na umiejętność wyboru ruchów. Przykład 1.2 (Diagnostyka medyczna). Załóżmy, że oddział szpitalny, zajmują cy się określonym rodzajem schorzeń, zgromadził w bazie danych zapisy historii cho roby swoich dotychczasowych pacjentów. Mogłyby się tam znajdować wyniki prze prowadzanych dla poszczególnych pacjentów różnych testów diagnostycznych, ob serwowane symptomy, ustalenia z wywiadów przeprowadzonych przez lekarzy oraz informacja o rozpoznaniu, zastosowanej terapii i jej efektach. Dane tego rodzaju, jeśli obejmują dostatecznie wielu pacjentów oraz są dostatecznie kompletne i wiarygodne, mogą być cennym potencjalnym źródłem wiedzy wspomagającej lekarzy w diagno zowaniu i leczeniu nowych przypadków. Można przyjąć, że pozyskujący taką wiedzę program uczyłby się reguł sugerujących rozpoznanie choroby i terapię na podstawie symptomów i wyników testów. Wykorzystując takie reguły do wnioskowania program mógłby funkcjonować jako system doradczy, w żadnej oczywiście mierze nie zastę pujący kompetentnego lekarza, lecz przypuszczalnie pomocny w jego pracy. Przykład 1.3 (Wykrywanie nadużyć). Weźmy pod uwagę transakcje realizowa ne w punktach handlowych i usługowych przez posiadaczy kart płatniczych. Najczę ściej pracownik takiego punktu wykorzystuje w celu realizacji transakcji elektronicz ny terminal, który wczytuje dane karty z jej paska magnetycznego. Wówczas terminal może nawiązać połączenie z odpowiednim centrum rozliczeniowym w celu dokona nia autoryzacji. Obejmuje ona w najprostszym przypadku sprawdzenie, czy karta jest ważna, czy nie została przez jej posiadacza zastrzeżona oraz czy kwota transakcji nie spowoduje przekroczenia limitu, który może być dla karty ustalony przez jej wystaw-
38
ROZDZIAŁ 1. UCZENIE SIĘ W UJĘCIU ALGORYTMICZNYM
cę (lub dla kart debetowych stanu konta jej użytkownika). Transakcja może dojść do skutku, jeśli autoryzacja przebiegnie pomyślnie. Niestety, karty płatnicze cieszą się także zainteresowaniem amatorów cudzej własności. Mogą oni próbować przeprowa dzać transakcje na cudzy rachunek, korzystając ze skradzionej prawowitemu użyt kownikowi lub zgubionej przez niego karty, zanim zdąży on dokonać zastrzeżenia, lecz także wytwarzając fałszywą kartę lub posługując się numerem karty, który po znali w ten czy inny sposób. Jeśli autoryzacja takich transakcji przebiegnie pomyślnie, klient dowie się o wszystkim nawet dopiero kilka tygodni później, z miesięcznego wy ciągu przesłanego mu przez bank. Byłoby więc pożądane wykrywanie podejrzanych transakcji na etapie autoryzacji. Możemy sobie wyobrazić wykorzystanie w tym ce lu programu uczącego się, który na podstawie analizy historycznych danych dotyczą cych „dobrych" i „złych" transakcji określi pewne cechy pozwalające na maksymalnie wiarygodne ich odróżnianie. Swoją wiedzę na ten temat będzie oczywiście okresowo aktualizować uwzględniając nowe porcje danych. Taki adaptacyjny system wykrywa nia nadużyć miałby istotną przewagę nad systemami z ustalonymi, prostymi reguła mi alarmowania, opracowanymi przez specjalistów. Warto dodać, że w nieco innych odmianach problem wykrywania nadużyć występuje również w innych dziedzinach, na przykład w telefonii komórkowej, gdzie dotyczy rozmów na cudzy rachunek, czy w sieciach komputerowych, gdzie chodzi o podejrzaną aktywność hakerów. Przykład 1.4 (Klasyfikowanie dokumentów). Rozwój elektronicznych technik przechowywania i przysyłania informacji wywołał pilną potrzebę zautomatyzowa nych metod jej klasyfikowania i filtrowania. Użytkownicy rosnących lawinowo za sobów dostępnych w sieci Internet mogliby zaoszczędzić wiele czasu dysponując na rzędziami, które „czytałyby" i w inteligentny sposób selekcjonowałyby najbardziej interesujące z ich punktu widzenia strony WWW lub artykuły z grup dyskusyjnych. Pożyteczny mógłby być w szczególności program, który na podstawie próbki doku mentów uprzednio poklasyfikowanych przez użytkownika (na kategorie tematyczne lub na interesujące i nieinteresujące) uczyłby się odpowiednio klasyfikować nowe dokumenty. Pożądane mogłoby być także nieustanne doskonalenie wiedzy progra mu w trakcie jego używania, kiedy po przeczytaniu nowych dokumentów użytkownik weryfikowałby ich kategorię przewidzianą przez program. Przykład 1.5 (Kierowanie pojazdem). Raczej niechętnie oddalibyśmy swoje ży cie i zdrowie pod opiekę elektronicznych taksówkarzy, którzy woziliby nas po ru chliwych ulicach miast. Możemy jednak rozważać przynajmniej kilka sytuacji, kiedy komputery potrafiące w jakimś stopniu kierować pojazdami byłyby przydatne. Może to być zautomatyzowane parkowanie samochodów na parkingach, przewóz towarów i osób po prostych trasach na ograniczonym obszarze (np. wewnątrz zakładu produk cyjnego) lub wspomaganie i ewentualnie częściowe zastępowanie kierowcy-człowieka podczas jazdy na niektórych odcinkach trasy (np. na autostradach). Systemy tego typu mogłyby podejmować decyzje o prawidłowym stanie urządzeń sterowniczych pojazdu (np. dobierać kąt obrotu kierownicy) na podstawie obrazu sytuacji na drodze, otrzy mywanego z jednej lub kilku umieszczonych na pojeździe kamer i ewentualnie do datkowych specjalnych czujników. Jako źródło informacji trenującej umożliwiającej nauczenie się takiej umiejętności można by wykorzystać nauczyciela demonstrujące go prawidłowe kierowanie pojazdem w różnych warunkach.
1.1. ZNACZENIE UCZENIA SIĘ
39
Przykład 1.6 (Nawigacja w środowisku biurowym). Niektóre firmy i instytu cje zajmują duże, wielopiętrowe budynki z siecią korytarzy i licznymi pokojami na każdym piętrze. Ponieważ postęp technologii informatycznej nie wyeliminował ko nieczności intensywnego obiegu papieru w takich firmach i instytucjach (niektórzy twierdzą, że wręcz ten obieg zintensyfikował), powstaje konieczność przeznaczania części czasu niekiedy wysoko wykwalifikowanego personelu na przemierzanie kory tarzy z plikiem dokumentów w ręku lub zatrudnienia gońców. Za alternatywę można wówczas uznać gońców mechanicznych — ruchome roboty, sterowane programem umożliwiającym sprawne poruszanie się. Jedną z umiejętności, które musi taki pro gram posiąść, jest umiejętność nawigacji — omijania ludzi i przeszkód, przechodze nia przez drzwi, poruszania się prosto wzdłuż korytarza itp. Program taki miałby więc za zadanie odpowiednie sterowanie silniczków, za pomocą których robot się porusza, na podstawie informacji pochodzących z jego sensorów (np. ultradźwiękowych lub re agujących na podczerwień). Potrzeba uczenia się wynika w tym przypadku z trudności sformułowania gotowego, pełnego, konkretnego algorytmu dla tego problemu, trud ności dodatkowo powiększanych przez niepewność obserwacji pochodzących z sen sorów. Jedno z możliwych podejść do uczenia się mogłoby polegać na pozwoleniu robotowi na eksperymentowanie — próby poruszania się i popełnianie błędów, które powinny doprowadzić do znalezienia zadowalającej strategii sterowania. Konkretne problemy uczenia się, których dotyczą podane przykłady, są na ogół w swojej realnej postaci zbyt złożone, aby w takim jak ten podręczniku można by ło podać ich kompletne rozwiązania, gotowe do implementacji i wdrożenia. Dla niektórych nie są zresztą dotychczas znane rozwiązania całkowicie zadowalające. Jednak w książce będą omówione algorytmy oraz podane wskazówki dotyczące ich stosowania, których umiejętne i twórcze wykorzystanie pozwoli czytelnikowi projektować systemy uczące się dla takich i wielu innych praktycznie interesują cych problemów, poszerzać znajomość dziedziny przez samodzielne studiowanie literatury, a także trafnie rozpoznawać ograniczenia, na jakie mogą napotkać znane metody uczenia się w konfrontacji ze złożonością świata rzeczywistego. 1.1.4
Motywacja do uczenia się
Poza niewartymi wzmianki wyjątkami, nie mamy trudności z określeniem wła snej motywacji do uczenia się. Patrząc na to szerzej, nie uznalibyśmy raczej za nieracjonalne wyposażenie również niektórych innych biologicznych gatunków w zdolność do uczenia się, która zapewnia sprzyjającą przeżyciu i reprodukcyj nemu sukcesowi zdolność przystosowawczą, zmienność cech i zachowań szybką i zachodzącą na poziomie organizmów, zamiast zmienności powolnej na poziomie gatunków, możliwej do osiągnięcia w przypadku zaszycia tych cech i zachowań w genetycznym kodzie. Jak rzecz się ma z motywacją do zajmowania się — w pra cowniach naukowców, salach wykładowych, firmach informatycznych i tu w na szej książce — uczącymi się programami? Wydaje się, że w tym przypadku biolo giczna analogia jest zachowana w dużym stopniu. Tak jak programistce-ewolucji
40
ROZDZIAŁ 1. UCZENIE SIĘ W UJĘCIU ALGORYTMICZNYM
opłaca się „sparametryzować" organizmy niektórych gatunków zdobywaną przez nie w swym jednostkowym życiu wiedzą i umiejętnościami, tak twórcom oprogra mowania dla niektórych zastosowań opłaca się wykorzystać programy uczące się — zamiast angażować czas, wysiłek i koszty w opracowanie dla nich ustalonych algorytmów, które przecież i tak zawsze mogą się okazać przy próbie użycia nie pełne (nie spełniające wszystkich wymagań) lub niepoprawne (działające błędnie w niektórych sytuacjach). Rozwijając nieco powyższą myśl można wskazać następujące powody, dla któ rych badania nad systemami uczącymi się mają sens i są godne zainteresowania. • Dla naprawdę złożonych zadań trudno jest sformułować wprost ustalone, peł ne i poprawne algorytmy ich rozwiązywania. Dotyczy to zwłaszcza zastoso wań realnych, w których należy się liczyć z niedeterminizmem i zmiennością środowiska działania programu. Uzyskanie zadowalających algorytmów może być niemożliwe lub nieekonomiczne (wymagające zbyt wiele pracy lub zaso bów). Wiąże się to z tym, że z reguły złożone środowiska są trudne do opisu, często nie mają wystarczających modeli teoretycznych albo ich uzyskanie jest bardzo kosztowne. Jeśli nawet są one dostępne, to ze względu na ich uprosz czenia lub nieprzewidywalną zmienność środowiska opracowane na ich pod stawie algorytmy byłyby mało wiarygodne. • Inteligentne systemy informatyczne w wielu współczesnych zastosowaniach powinny być w maksymalnym stopniu autonomiczne, czyli zdolne do dzia łania bez (zbyt dużej) ingerencji człowieka. Dotyczy to w szczególności sys temów sterowania złożonymi procesami, działaniem robotów przemysłowych lub biurowych, bezzałogowych pojazdów itp. Wymagany stopień autonomii nie jest możliwy do uzyskania bez adaptacyjności, czyli zdolności do przysto sowywania się do zmieniających się środowisk i wymagań. Program uczący się może być użyty w środowisku, w którym zachodzą trudne do przewidzenia z góry zmiany, lub w wielu różnych środowiskach. • Zbiory dostępnych danych, pochodzących z pomiarów, obserwacji, dokumen tów itp., są często zbyt duże i skomplikowane, aby można było wyszukiwać w nich zależności i klasyfikować je w sposób niezautomatyzowany. Programy uczące się dają możliwość wiarygodnego wnioskowania na podstawie danych historycznych. Nowoczesna analiza danych stała się jednym z najważniejszych zastosowań maszynowego uczenia się. Pragnieniem autora jest, aby dalsza lektura przekonała czytelnika do jeszcze jednego, może najważniejszego powodu, dla którego coraz więcej osób zajmuje się maszynowym uczeniem się: jest to tematyka ciekawa, a bywa pasjonująca. Osią gnięto w niej dotychczas wystarczająco wiele, aby były możliwe udane realne za stosowania, a jednocześnie pozostało wystarczająco wiele otwartych problemów, aby wciąż mogły powstawać dobre rozprawy doktorskie i publikacje naukowe.
1.2. RODZAJE UCZENIA SIĘ
1.2
41
Rodzaje uczenia się
Z dotychczasowej dyskusji, mającej sprecyzować, co rozumiemy przez uczenie się sztucznych systemów, czytelnik z pewnością wyniósł słuszne wrażenie, że mo żemy mieć do czynienia z dość różnymi postaciami tego procesu. Jasno było to widoczne także z przedstawionych przykładów uczenia się. Spróbujmy obecnie wprowadzić nieco porządku w tę różnorodność, wskazując najbardziej racjonal ne kryteria klasyfikacji rodzajów uczenia się oraz wynikający z tych kryteriów podział dziedziny na bardziej szczegółowe obszary, częściowo odpowiadający po działowi tej książki na rozdziały.
1.2.1
Taksonomia maszynowego uczenia się
Rodzaje uczenia się, a właściwie raczej rodzaje systemów uczących się, można klasyfikować według szeregu kryteriów, uzyskując różne mniej i bardziej szcze gółowe podziały. Wśród tych kryteriów najbardziej podstawowe znaczenie mają następujące: • • • •
metoda reprezentacji wiedzy lub umiejętności, sposób używania wiedzy lub umiejętności, źródło i postać informacji trenującej, mechanizm nabywania i doskonalenia wiedzy lub umiejętności.
Każdemu z tych kryteriów poświęcamy krótką uwagę, zarysowującą wynikający z niego podział i zapowiadającą reprezentację odpowiadających mu poszczególnych rodzajów uczenia się w dalszych rozdziałach książki. Reprezentacja wiedzy. Opracowano różne metody wewnętrznej reprezentacji wiedzy lub umiejętności zdobywanej przez uczący się program. Określona dzie dzina zastosowania projektowanego systemu uczącego się na ogół zawęża reper tuar, z którego należy dokonać wyboru, do co najwyżej kilku możliwości, z któ rych każda ma własne zalety i ograniczenia. W tej książce nie będziemy poświęcać miejsca na systematyczną prezentację metod reprezentacji wiedzy, uznając za bar dziej właściwe wprowadzanie różnych metod w miarę potrzeby, przy omawianiu wykorzystujących je algorytmów. Wśród tych metod znajdą się drzewa decyzyj ne, reguły, formuły logiki predykatów, rozkłady prawdopodobieństw i automaty skończone. Często stosowane jest tradycyjne rozróżnienie symbolicznych i subsymbolicznych metod reprezentacji wiedzy. Do pierwszej kategorii należą metody wykorzystujące różnego rodzaju struktury, przechowujące informację o charakte rze symbolicznym, czyli zorganizowane w pewien sposób napisy, którym można przypisać interpretację. Tak reprezentowana wiedza może być na ogół dość ła two zapisana w czytelnej dla człowieka postaci i poddana jego inspekcji. Zarówno
42
ROZDZIAŁ 1. UCZENIE SIĘ W UJĘCIU ALGORYTMICZNYM
całość, jak i poszczególne fragmenty symbolicznie reprezentowanej wiedzy mają swoją interpretację w dziedzinie zadania ucznia. W przypadku metod subsymbolicznych mamy do czynienia z informacją, której poszczególne elementy nie mają, wzięte z osobna, sensownej interpretacji. Są to najczęściej zbiory liczb lub łańcu chów binarnych, które łącznie reprezentują pewną wiedzę, lecz wiedza ta nie może być bezpośrednio wyrażona w postaci zrozumiałej dla człowieka. Nieco metafo rycznie zostało to zilustrowane na rys. 1.2. Wiedza o zależności C od jednoczes nego wystąpienia A i B została zapisana symbolicznie w postaci napisu, którego elementy mają dobrze określone znaczenie (są to symbole A, B i C oraz funktory logiczne), oraz subsymbolicznie w postaci macierzy zer i jedynek, której każde mu elementowi nie da się przypisać żadnej sensownej (związanej z A, B lub C albo z operacją logiczną) interpretacji. Naszej ilustracji nie należy traktować zbyt dosłownie — z taką subsymboliczną reprezentacją wiedzy nie spotkamy się ra czej w praktyce — demonstruje ona jednak jej zasadnicze właściwości. W książce tej będziemy mieli do czynienia na ogół, chociaż nie wyłącznie, z reprezentacją symboliczną. a) reprezentacja symboliczna
AAB^C
b) reprezentacja subsymboliczną 1110111111111100000011111111111000001 1101011111111101111101111111110111110 1101011111111101111101111101110111111
-..11101..0111110101110101111101111111110111110 0111110101110100000011111111111000001
Rys. 1.2. Symboliczna i subsymboliczną reprezentacja wiedzy
Wykorzystywanie wiedzy. Nie zawsze przyjęta metoda reprezentacji wiedzy jednoznacznie wyznacza sposób jej wykorzystywania, chociaż oczywiście rzadko pozostawia do wyboru wiele możliwości w tym zakresie. Sposób używania wiedzy jest na ogół determinowany łącznie przez metodę reprezentacji wiedzy i cel, któ remu ta wiedza ma służyć, czyli stojące przed uczącym się jej systemem zadanie. Do najbardziej typowych zadań należą klasyfikacja, czyli ustalanie przynależności obiektów lub wzorców do kategorii, i aproksymacja, czyli odwzorowanie obiek tów lub wzorców na zbiór liczb rzeczywistych. W przypadku klasyfikacji będzie my mówić o uczeniu się pojęć, przez pojęcie rozumiejąc właśnie wiedzę o przy należności obiektów pewnej dziedziny do określonych kategorii. Więcej o tych dwóch często spotykanych sposobach używania wiedzy będziemy mieli do po wiedzenia już w następnym rozdziale książki. Zetkniemy się jednak także z innymi typami zadań, takimi jak rozwiązywanie problemów, sekwencyjne podejmowanie decyzji czy modelowanie środowiska. Może być też tak, że wykorzystanie uzy skanej w wyniku wiedzy polega po prostu na przedstawieniu jej użytkownikowi w czytelnej postaci i pozostawienie mu zrobienia z niej ewentualnego dalszego użytku.
43
1.2. RODZAJE UCZENIA SIĘ
Informacja trenująca. Kryterium źródła i postaci dostępnej informacji trenują cej prowadzi w najprostszym ujęciu do tradycyjnego podziału na uczenie się z nad zorem i uczenie się bez nadzoru, który zechcemy tu jednak nieco rozszerzyć przez dodanie rozróżnień bardziej precyzyjnych. Dla celów tej dyskusji wygodnie jest przyjąć, że system uczący się ma za zadanie obserwowanie pewnych wektorów informacji wejściowych i odpowiadanie na nie właściwymi wyjściami, a proces uczenia się polega na określeniu algorytmu generowania tych odpowiedzi. Infor macja trenująca instruuje w pewien sposób ucznia, bezpośrednio lub pośrednio, co do właściwego sposobu odpowiadania. Sytuację tę przedstawia rys. 1.34. informacja wejściowa
informacja wyjściowa Uczeń
informacja trenująca Nauczyciel/krytyk Rys. 1.3. Uczeń i źródło informacji trenującej
W przypadku uczenia się z nadzorem, w którym źródło informacji trenują cej przyjęto nazywać nauczycielem (stąd stosowany również termin „uczenie się z nauczycielem"), uczeń otrzymuje informację określającą w pewien sposób jego pożądane odpowiedzi dla pewnego zbioru wektorów wejściowych jako przykła dy zachowania, jakiego się od niego oczekuje. Przy uczeniu się bez nadzoru taka instruktażowa informacja trenująca w ogóle nie jest dostępna: podawane są jedy nie wektory wejściowe i uczeń ma się nauczyć właściwych odpowiedzi wyłącz nie obserwując ich sekwencje. Z takim rodzajem uczenia się mamy do czynienia przede wszystkim w przypadku grupowania lub innych przekształceń przestrzeni wejściowej, których zasada nie pochodzi od nauczyciela, lecz jest integralną czę ścią algorytmu uczenia się (mówi się czasem, że systemy uczące się bez nadzoru mają wbudowanego nauczyciela). Oprócz najlepiej znanego uczenia się z nadzo rem i uczenia się bez nadzoru, o których więcej powiemy w następnym rozdziale, będziemy mieć do czynienia także z rodzajami uczenia się, które ze względu na źródło i charakter informacji tenującej trudno zaklasyfikować do którejkolwiek z tych grup. Stosunkowo blisko uczenia się z nadzorem znajduje się uczenie się na podstawie zapytam wówczas informacja trenująca również pochodzi od na4
Schcmat ten sugeruje, że uczeniu się podlega pewna funkcja odwzorowująca wejścia na wyjścia. Tak jest istotnie w szeregu często stosowanych rodzajów uczenia się, lecz nie należy traktować tego jako obowiązującego kanonu. Przekonamy się, że w wielu przypadkach działanie systemów uczących się jest daleko bardziej złożone, niż sugerowałby ten wygodny schemat.
44
ROZDZIAŁ 1. UCZENIE SIĘ W UJĘCIU ALGORYTMICZNYM
uczyciela, lecz ma postać jedynie odpowiedzi na jawnie zadawane przez ucznia pytania. Nauczyciel nie może aktywnie dobierać przykładów, jest tylko wyrocz nią, do której uczeri może się zwracać. O uczeniu się przez eksperymentowanie mówimy wówczas, gdy uczeń gromadzi doświadczenia eksperymentując ze swo im środowiskiem. Może to polegać na wykonywaniu pewnych akcji (czy używa jąc poprzedniej terminologii, generowaniu pewnych wyjść) i obserwowaniu ich konsekwencji. Niekiedy ten rodzaj uczenia się traktuje się jako szczególny przy padek uczenia się bez nadzoru, lecz podejście takie rodzi ryzyko nieporozumień. Wreszcie wymieńmy uczenie się ze wzmocnieniem, które opiera się wprawdzie na eksperymentowaniu, lecz wykorzystuje dodatkowe źródło informacji trenującej, nazywane czasem krytykiem, dostarczające sygnałów oceniających jakość działa nia ucznia (są to liczbowe nagrody, nazywane także wzmocnieniami). Informacja trenująca ma w tym przypadku charakter nie instruktażowy (nie mówi uczniowi, co powinien robić), lecz wartościujący (mówi uczniowi, jak dobre lub złe jest jego dotychczasowe działanie). Celowo nie definiujemy bardziej precyzyjnie żadnego z wyróżnionych tu rodzajów uczenia się, gdyż różnice między nimi nie są do koń ca ostre i w niektórych skrajnych sytuacjach mogą polegać tylko na odmiennym punkcie widzenia. Najrozsądniej jest więc wstrzymać się z konkretyzowaniem za rysowanych grup do czasu omawiania należących do nich algorytmów — a ze tkniemy się w tej książce z reprezentantami każdej z nich.
Mechanizm nabywania wiedzy. Na podstawie otrzymanej informacji trenują cej system uczący się generuje nową lub doskonali wcześniej posiadaną wiedzę lub umiejętność, w pewien ustalony sposób reprezentowaną i przeznaczoną do wyko rzystania przy wykonywaniu określonego zadania. Mechanizm, zgodnie z którym dokonuje się nabywanie lub doskonalenie wiedzy, jest najczęściej wyznaczany jed noznacznie przez metodę reprezentacji wiedzy oraz postać informacji trenującej. Na ogół dostępnych jest wiele algorytmów uczenia się realizujących poszczegól ne mechanizmy nabywania wiedzy. Najbardziej popularny mechanizm uczenia się to indukcja, podejście do wnioskowania polegające na uogólnianiu jednostkowej informacji trenującej w celu uzyskania ogólnej wiedzy. Należałoby jednak raczej mówić o całej rodzinie mechanizmów indukcyjnych. O takich mechanizmach bę dzie mowa w następnym rozdziale, a o różnych realizujących je praktycznych al gorytmach w kilku kolejnych rozdziałach. Mechanizmy uczenia się nieindukcyjnego, z jakimi się zetkniemy, to przede wszystkim wyjaśnianie, w którym informa cja trenująca nie tyle jest uogólniana, co służy do konkretyzacji wiedzy wrodzonej ucznia, oraz stosowane przy uczeniu się ze wzmocnieniem przypisanie zasługi, po legające na określeniu wpływu poszczególnych akcji na otrzymane nagrody. Próbą jednolitego sformułowania różnych mechanizmów tworzenia wiedzy jest inferencyjna teoria uczenia się, której zarys będzie przedstawiony w tym rozdziale.
1.3. NAUKA O UCZENIU SIĘ
1.2.2
45
Główne działy maszynowego uczenia się
Przedstawione kryteria klasyfikacji rodzajów uczenia się są do pewnego stopnia ortogonalne, a więc można stosować je niezależnie, chociaż niekiedy decyzja do tycząca jednego z kryteriów ogranicza możliwe decyzje dla innego kryterium. Oznacza to, że wynikające z zastosowania każdego z nich podziały istniejących i możliwych systemów uczących się dają grupy różne, lecz częściowo pokrywa jące się. O ile żadne z tych kryteriów z osobna nie różnicuje rodzajów uczenia się w wystarczającym stopniu, o tyle łączne użycie wszystkich prowadziłoby do podziału zbyt drobnoziarnistego. Utrudnia to dokonanie systematycznej klasyfi kacji dziedziny maszynowego uczenia się na podstawie tych kryteriów. W istocie dziedzina ta nie rozwijała się w sposób systematyczny, a jej wtórna pełna systema tyzacja na obecnym etapie jej rozwoju nie wydaje się jeszcze możliwa. Najbardziej odpowiadający rzeczywistości wykaz głównych podejść do konstruowania syste mów uczących się można uzyskać, wybierając rodzaje uczenia się wyróżnione przez różne kryteria lub kryteria te łącząc. Powstającemu w ten sposób podziałowi daleko wprawdzie do systematyczności, lecz jest pragmatyczny, to znaczy dobrze odpowiada rzeczywistym podziałom zainteresowań naukowców i praktyków. Or ganizacja tej książki odpowiada właśnie takiemu podziałowi, przeprowadzanemu według różnych kryteriów, a większość jej rozdziałów odpowiada poszczególnym, wynikającym z niego rodzajom uczenia się, wśród których część jest wyróżniona przez wykorzystywaną reprezentację wiedzy, część przez mechanizm wnioskowa nia, a jeszcze inne przez postać wykorzystywanej informacji trenującej.
1.3 Nauka o uczeniu się Badania nad systemami uczącymi się, w miarę wzrostu ich tematycznego zakresu i zróżnicowania oraz popularności w środowisku akademickim, dały początek wą skiej, lecz prężnej dyscyplinie naukowej. Tę naukę o uczeniu się sztucznych syste mów nazywa się czasem maszynowym uczeniem się lub uczeniem się maszyn — terminów tych używaliśmy już kilkakrotnie wyżej. Najwygodniej jest traktować ją jako gałąź sztucznej inteligencji, tę zaś jako poddziedzinę informatyki, chociaż wraz z pogłębianiem się specjalizacji we współczesnej nauce wzrasta także zna czenie badań interdyscyplinarnych i coraz trudniej o prosty hierarchiczny podział. W istocie znaczny wkład do badań nad systemami uczącymi się wnoszą oprócz informatyków także min. matematycy, automatycy, psycholodzy i biolodzy. 1.3.1
Trzy nurty
Na najwyższym poziomie ogólności można wskazać trzy podstawowe nurty w pra cach naukowych w ramach maszynowego uczenia się, które można nazwać nurtem
46
ROZDZIAŁ 1. UCZENIE SIĘ W UJĘCIU ALGORYTMICZNYM
teoretycznym, biologicznym i systemowym. Nurt teoretyczny zajmuje się rozwija niem podstaw teoretycznych algorytmów uczenia się. Rozpatrywane w tych ba daniach problemy to m.in. ocena trudności różnych problemów uczenia się, sza cowanie czasu i ilości informacji trenującej wymaganej do uczenia się, określanie jakości wiedzy możliwej do nauczenia się, a także tworzenie jednolitego słownika teoretycznego do rozważania różnych mechanizmów uczenia się. Teoria maszy nowego uczenia się jest w tej książce reprezentowana w skromnym stopniu ze względu na matematyczną złożoność części rezultatów, która mogłaby ten pod ręcznik uczynić zanadto hermetycznym, oraz na jej dotychczas dość ograniczo ny wpływ na powstawanie praktycznych algorytmów uczenia się. Przedstawiono jednak wybrane wyniki o znaczeniu najbardziej podstawowym, które dają pewne wyobrażenie o charakterze teoretycznych prac nad systemami uczącymi się. Nurt biologiczny, który w tej książce nie znajduje w ogóle odzwierciedlenia, stawia sobie za cel konstruowanie obliczeniowych modeli procesów uczenia się występujących w naturalnych systemach biologicznych, u ludzi i zwierząt, na róż nych poziomach ich struktury (od komórki do centralnego układu nerwowego). Te prace wiążą się najbliżej z biologicznymi i psychologicznymi korzeniami uczenia się i nie są bezpośrednio interesujące dla informatyków. W zdecydowanej większości książka jest poświęcona wynikom nurtu systemo wego, wyraźnie dominującego w naszej dyscyplinie, który zajmuje się opracowy waniem algorytmów uczenia się oraz konstruowaniem, badaniem i stosowaniem wykorzystujących je systemów uczących się. W pewnym uproszczeniu można na wet patrzeć na ten podręcznik jako na usystematyzowany katalog podstawowych algorytmów uczenia się, wzbogacony o dyskusję niektórych praktycznych zagad nień związanych z ich implementacją i stosowaniem. Nie oznacza to, że wyniki pozostałych dwóch nurtów nie zasługują na szerszą prezentację i nie są godne za interesowania. Zagadnienia te pozostają jednak do zagospodarowania innym przy szłym publikacjom. 1.3.2
Dziedziny pokrewne
We współczesnej nauce nie ma oczywiście izolowanych obszarów badań, pomi jających swoje otoczenie i zamkniętych na jego wpływ. Poszczególne dyscypliny przenikają się wzajemnie i inspirują, a rosnąca część projektów badawczych ma charakter interdyscyplinarny. Nie inaczej jest z uczeniem się maszyn. O związkach badań nad systemami uczącymi się z resztą sztucznej inteligencji będzie mowa w kolejnym podrozdziale. Tymczasem rzetelność wymaga wymienienia przynaj mniej niektórych innych dziedzin, z którymi maszynowe uczenie się łączą wyraźne więzy pokrewieństwa, przejawiające się między innymi czerpaniem z ich dorobku użytecznych narzędzi teoretycznych lub obliczeniowych, o czym będziemy mieli okazję przekonać się w kolejnych rozdziałach.
1.3. NAUKA O UCZENIU SIĘ
47
Teoria prawdopodobieństwa. Teoria prawdopodobieństwa ma istotny wpływ zarówno na nurt teoretyczny uczenia się maszyn, jak i na nurt systemowy. W pierw szym przypadku jej wyniki współtworzą aparat matematyczny, używany do ana lizy algorytmów uczenia się. Dotyczy to przede wszystkim obliczeniowej teorii uczenia się, której podstawowe elementy będą streszczone w następnym rozdziale. W drugim przypadku stanowią one podstawę różnych mechanizmów wnioskowa nia probabilistycznego, cieszących się rosnącym zainteresowaniem i skutecznych w wielu zastosowaniach. Będziemy o nich mówić w rozdziale 5. Teoria informacji. Na badania w systemowym nurcie uczenia się maszyn, a do kładniej na projekt niektórych algorytmów uczenia się, wpłynęła teoria informacji. Niekiedy przy wyborze hipotez stosuje się teorioinformacyjne kryteria jakości. Na problem indukcyjnego uczenia się można też patrzeć jak na problem odpowied niego kodowania informacji trenującej. Zagadnienia z tym związane są poruszane między innymi w rozdziałach 3 i 5. Logika formalna. Logika formalna wpłynęła na badania nad systemami uczący mi się przede wszystkim jako podstawa wielu symbolicznych metod reprezentacji wiedzy, w szczególności wykorzystujących reguły. Jednak niektóre rodzaje ucze nia się są z nią związane bardziej bezpośrednio. Dotyczy to zwłaszcza omawiane go w rozdziale 9 indukcyjnego programowania logicznego, gdzie wiedza genero wana w wyniku uczenia się jest reprezentowana w postaci formuł logicznych, oraz omawianego w rozdziale 11 uczenia się przez wyjaśnianie, gdzie wykorzystuje się elementy logicznej dedukcji. Statystyka. Statystyka zajmuje się metodami analizy danych i wnioskowania na ich temat. Posługuje się w tym celu m.in. opisem ich rozkładu, wartościami średnich i odchyleń standardowych oraz aparatem teorii prawdopodobieństwa. Jej cel jest zbieżny z celem niemałej części algorytmów maszynowego uczenia się (co nawet skłania niektórych do traktowania tej dziedziny jako swoistej odmiany statystyki), lecz posługuje się innymi środkami. Rodzaje wiedzy, jakie mogą być pozyskiwane przez systemy uczące się, daleko wykraczają poza statystyczny opis danych stanowiących informację trenującą, a tym samym nieporównanie większe są możliwości wnioskowania na jej podstawie. Jednocześnie niektóre rodzaje sys temów uczących się wykorzystują narzędzia statystyczne do analizy danych trenu jących i wyciągania na ich podstawie wniosków przydatnych w procesie uczenia się. Dotyczy to zwłaszcza charakteryzowania błędów popełnianych przez ucznia i testów statystycznej wiarygodności hipotez, które mogą być używane do ich wy boru, a także do empirycznego oceniania jakości działania systemów uczących się. Z podejściem takim zetkniemy się w wielu rozdziałach tej książki, np. 3, 4, 5, 7.
48
ROZDZIAŁ 1. UCZENIE SIĘ W UJĘCIU ALGORYTMICZNYM
Teoria sterowania. Przedmiotem teorii sterowania są metody projektowania sys temów automatycznego sterowania dla różnych klas obiektów i procesów. Zada niem regulatora jest oddziaływanie na sterowany obiekt lub proces w sposób za pewniający osiągnięcie lub utrzymanie jego pożądanego stanu. Ponieważ sterowa nie polega z reguły na wykonywaniu przez regulator sekwencji operacji mających prowadzić do określonego celu, wiąże się ono najbliżej z uczeniem się umiejętno ści. Dokładniej, związek ten dotyczy przede wszystkim sterowania adaptacyjnego, w którym nie zakłada się znajomości modelu sterowanego obiektu i dopuszcza je go zmienność w czasie. W związku z tym można brać pod uwagę wykorzystanie odpowiednich rodzajów systemów uczących się jako regulatorów adaptacyjnych. Przepływ wyników między obydwiema dziedzinami może jednak przebiegać tak że w drugim kierunku — pewne wyniki teorii sterowania inspirują badania nad niektórymi rodzajami systemów uczących się. Te powiązania najwyraźniej są za znaczone w rozdziale 13 poświęconym uczeniu się ze wzmocnieniem. Psychologia. Fenomen uczenia się ludzi i wyżej rozwiniętych zwierząt jest oczy wiście istotnym zagadnieniem w psychologii. Rozwijane na jej gruncie koncepcje uczenia się wpływają nie tylko na biologiczny nurt maszynowego uczenia się, gdyż wśród praktycznych algorytmów uczenia się można wskazać takie, które nawią zują do inspiracji psychologicznych. Było tak w przypadku niektórych wczesnych symbolicznych indukcyjnych systemów uczących się, które jednak mają już tylko znaczenie historyczne. We współczesnym uczeniu się maszyn korzenie psycho logiczne ma przede wszystkim uczenie się ze wzmocnieniem. Wartościująca in formacja trenująca w postaci liczbowych nagród przypomina podejścia stosowane przez psychologów-eksperymentatorów w ich badaniach nad uczeniem się zwie rząt, a sam termin „wzmocnienie" pochodzi właśnie z literatury psychologicznej. Neurofizjologia. Inspiracje rodem z neurofizjologii, czyli nauki o systemie ner wowym ludzi i zwierząt, wpłynęły oczywiście na badania w ramach biologicznego nurtu uczenia się maszyn, lecz stały się także inspiracją dla nurtu systemowego, której wyraźne ślady możemy dostrzec w niektórych subsymbolicznych systemach uczących się5. Chodzi tu przede wszystkim o sieci neuronowe, o których zgodnie z wcześniejszą zapowiedzią nie będziemy w tej książce mówić. Przy okazji aprok symacji funkcji zetkniemy się jednak z systemem uczącym się wywodzącym się z bardzo silnej inspiracji neurofizjologicznej (i z tych względów niekiedy zalicza nym do grupy sieci neuronowych, mimo że nie występują w nim żadne jednostki przetwarzające analogiczne do „neuronów"). 5
Możemy więc powiedzieć, że poziom komórek nerwowych lub ich zespołówJakimi zajmuje się neurofizjologia, jest poziomem „subsymbolicznym" przetwarzania informacji przez układ nerwowy, podczas gdy przedmiotem zainteresowania psychologii jest „symboliczny" poziom myślenia.
1.4. UCZENIE SIĘ W SZTUCZNEJ INTELIGENCJI
1.4
49
Uczenie się w sztucznej inteligencji
Wspomnieliśmy już, że próbując umiejscowić dziedzinę maszynowego uczenia się na szerszym tle najrozsądniej jest potraktować ją jako bardziej szczegółowy obszar badań w ramach sztucznej inteligencji. Warto poświęcić podrozdział na przedys kutowanie roli, jaką uczenie się maszyn odgrywa w tej szerszej dyscyplinie, oraz zasygnalizowanie jego powiązań z niektórymi zagadnieniami z jej głównego nur tu. Jest to tym bardziej celowe, że wokół sztucznej inteligencji nagromadziło się w ciągu kilkudziesięciu lat jej rozwoju wiele nieporozumień. 1A l
Słaba i silna sztuczna inteligencja
Nigdy właściwie nie było i zapewne w najbliższej przyszłości także nie będzie powszechnej zgody co do tego, czym zajmuje się sztuczna inteligencja i jakie sta wia sobie cele. O ile wszyscy jej zwolennicy i przeciwnicy przystaliby zapewne na stwierdzenie, że dąży ona do konstruowania sztucznych systemów inteligentnych, o tyle można spotkać przynajmniej następujące cztery główne sposoby rozumienia tego, czym jest lub ma być system inteligentny: • • • •
system, który myśli jak człowiek, system, który myśli racjonalnie, system, który zachowuje się jak człowiek, system, który zachowuje się racjonalnie.
Ryzykując pewne uproszczenie można powiedzieć, że informatykom zajmują cym się sztuczną inteligencją bliższe są raczej sformułowania mówiące o zacho waniu i racjonalności, a psychologom i filozofom raczej te mówiące o myśleniu i naśladowaniu człowieka. Oczywiście każde z tych sformułowań samo w sobie może być przedmiotem dyskusji —jest w szczególności kwestią trudną do jedno znacznego określenia, jakie kryteria racjonalności można stosować wobec zacho wania się systemów, a tym bardziej co właściwie oznacza myślenie i jak można je stwierdzić. Nie jest także jasne, które aspekty zachowania się człowieka systemy sztuczne mogą i powinny naśladować. Dość często stanowiska wobec sztucznej inteligencji dzieli się jeszcze prościej na dwa tylko rodzaje, określane mianem silnej i słabej sztucznej inteligencji. Sil na sztuczna inteligencja stawia sobie cel ambitny i dalekosiężny doprowadzenia do powstania sztucznych systemów myślących, o poziomie intelektualnym zbli żonym do ludzkiego lub go przewyższającym. Możliwość porównywania zakłada oczywiście niejawnie jakieś pokrewieństwo charakteru procesów myślowych ta kich systemów ze sposobem myślenia ludzi, ale nie muszą być one zasadniczo tożsame. Słaba sztuczna inteligencja zajmuje się dość szerokim spektrum pro blemów szczegółowych o dobrze określonych celach i kryteriach ich osiągnięcia.
50
ROZDZIAŁ 1. UCZENIE SIĘ W UJĘCIU ALGORYTMICZNYM
Problemy te dotyczą wykonywania przez systemy informatyczne zadań, których złożoność powoduje, że wymagają one inteligencji, jeśli są wykonywane przez człowieka. Rozwiązania tych problemów mogą się okazać użyteczne w programie silnej sztucznej inteligencji, lecz motywacją do pracy nad nimi jest raczej ich bar dziej bezpośrednia użyteczność w różnych praktycznych zastosowaniach. Uprasz czając można powiedzieć, że słaba sztuczna inteligencja jest częściej przedmiotem zainteresowania na wydziałach informatycznych, a silna sztuczna inteligencja na wydziałach filozoficznych wyższych uczelni. Interesujący się słabą sztuczną inteli gencją profesjonalni informatycy zajmują przy tym wobec programu silnej sztucz nej inteligencji różne stanowiska, od braku zainteresowania przez sceptycyzm po entuzjazm. W tej książce nie chcemy bronić żadnego poglądu w bardzo zajmującym spo rze o to, czy cele silnej sztucznej inteligencji są osiągalne. Nie ulega natomiast wątpliwości, że udało się rozwiązać wiele problemów słabej sztucznej inteligen cji oraz że jest możliwy i prawdopodobny dalszy postęp w tej dziedzinie. Mó wiąc w tej książce o sztucznej inteligencji, będziemy mieć na myśli właśnie słabą sztuczną inteligencję, a maszynowe uczenie się traktować jako jeden z jej najważ niejszych i najbardziej obiecujących działów.
1.4.2
Główne działy sztucznej inteligencji
Już próby klasyfikowania i systematyzowania dziedziny uczenia się maszyn oka zały się dostatecznie kłopotliwe, aby teraz podejmować podobne starania wobec dyscypliny zdecydowanie szerszej i bardziej różnorodnej. Ułatwimy sobie zadanie wymieniając najważniejsze grupy zagadnień, które są przedmiotem prac w sztucz nej inteligencji. Wnioskowanie. Najwcześniej zapoczątkowanym i wciąż aktywnie rozwijanym nurtem sztucznej inteligencji są prace nad automatycznym wnioskowaniem. Opie rając się na osiągnięciach logiki formalnej, dążą one do uzyskania efektywnych algorytmów dedukcji. Oznacza to mechaniczne wyprowadzanie logicznych kon sekwencji bazy wiedzy za pomocą reguł wnioskowania. Wykorzystywano do tegu celu różne systemy formalne, takie jak rachunek zdań, rachunek predykatów pierwszego rzędu i logiki nieklasyczne. Metody automatycznego wnioskowania stanowią podstawę systemów eksperckich i systemów dowodzenia twierdzeń. Przeszukiwanie. Zagadnienia przeszukiwania dużych przestrzeni w efektywny sposób są przedmiotem zainteresowania sztucznej inteligencji ze względu na ich dwa główne zastosowania: rozwiązywanie problemów i gry planszowe. Przyjęty w tej dziedzinie paradygmat rozwiązywania problemów zakłada, że problem jest charakteryzowany przez przestrzeń możliwych stanów z wyróżnionymi stanami
1.4. UCZENIE SIĘ W SZTUCZNEJ INTELIGENCJI
51
końcowymi (docelowymi) odpowiadającymi akceptowalnym rozwiązaniom oraz przez zestaw operatorów, umożliwiający poruszanie się w tej przestrzeni. Znale zienie (najlepszego) rozwiązania sprowadza się do znalezienia (najlepszej według pewnego kryterium) sekwencji operatorów przeprowadzających stan początkowy problemu w jeden z jego stanów końcowych. Przeszukiwanie ma na celu znale zienie rozwiązania optymalnego przy możliwie małym zużyciu pamięci i czasu obliczeń. Z kolei w przypadku gier planszowych rozważa się wybór przez gracza ruchu maksymalizującego jego szanse na wygraną przy danej aktualnej sytuacji na planszy. Prowadzi to do przeszukiwania drzewa gry, powstającego przez rozważe nie sytuacji wynikających z możliwych do wykonania ruchów gracza, następnie dla każdej z tych sytuacji rozważenie konsekwencji możliwych ruchów przeciw nika itd. Zarówno w przypadku rozwiązywania problemów, jak i gier planszowych wyczerpujące przeszukiwanie (całej przestrzeni stanów albo pełnego drzewa gry) nie wchodzi w rachubę (z wyjątkiem problemów lub plansz o trywialnie małym rozmiarze). W związku z tym opracowuje się heurystyczne metody przeszukiwa nia, które na ogół nie dają gwarancji poprawy efektywności w przypadku pesymi stycznym, lecz wyraźnie poprawiają oczekiwaną efektywność w przypadku prze ciętnym. Opierają się one na wykorzystaniu funkcji heurystycznych, starannie za projektowanych przez konstruktora systemu, służących do liczbowego szacowania jakości stanów (ze względu na odległość do stanu końcowego) lub sytuacji wystę pujących w grze (ze względu na szanse zwycięstwa). Planowanie. Planowanie jest w pewnym stopniu wynikiem połączenia mecha nizmów automatycznego wnioskowania i rozwiązywania problemów. Od systemu planującego oczekuje się, w podstawowym przypadku, znalezienia planu rozwią zania problemu w sposób bardziej efektywny niż przez przeszukiwanie (nawet heurystyczne) przestrzeni stanów, dzięki dostarczonej mu wiedzy o efektach po szczególnych operatorów. Wiedza ta, wyrażana na ogół w pewnym logicznym for malizmie (np. podzbiorze języka predykatów), opisuje zmiany w stanie problemu, jakie powoduje zastosowanie każdego operatora. Umożliwia wnioskowanie na te mat stanów możliwych do osiągnięcia ze stanu początkowego za pomocą różnych sekwencji operatorów. Niekiedy eliminuje to całkowicie konieczność przeszuki wania, a w większości przypadków przynajmniej znacznie ogranicza jego zakres. O inteligentnych systemach planujących mówi się, że wnioskują o własnych ak cjach. Uczenie się. Uczenie się wymieniamy na końcu przez skromność, lecz jego rola w sztucznej inteligencji jest z pewnością niepoślednia. Każdy z rodzajów syste mów uczących się, jakie przedstawiliśmy wcześniej w tym rozdziale, można uznać za system inteligentny, a dokładniej za system zachowujący się racjonalnie (czyli
52
ROZDZIAŁ 1. UCZENIE SIĘ W UJĘCIU ALGORYTMICZNYM
inteligentny przynajmniej w sensie słabej sztucznej inteligencji). Trudno wskazać bardziej niewątpliwe atrybuty sztucznej czy naturalnej inteligencji niż zdolność do uczenia się i związaną z nią adaptacyjność i autonomiczność działania. Oprócz tej oczywistej obserwacji warto zwrócić uwagę na bezpośrednie powiązania ma szynowego uczenia się z innymi nurtami sztucznej inteligencji, w szczególności z automatycznym wnioskowaniem i przeszukiwaniem heurystycznym. 1.4.3
Uczenie się wiedzy do wnioskowania
Automatyczne wnioskowanie, niezależnie od aparatu formalnego, na którym się opiera, wymaga bazy wiedzy, z której w drodze dedukcji można uzyskać wiedzę wyprowadzoną. W najbardziej praktycznym zastosowaniu metod wnioskowania, jakim są systemy eksperckie, wiedza ta pochodzi najczęściej od ludzi-ekspertów. Nie zawsze jednak istnieją eksperci w interesującej nas dziedzinie, nie zawsze ich wiedza jest dostatecznie poprawna i pełna, nie zawsze wreszcie potrafią sformu łować ją w postaci umożliwiającej wprowadzenie jej do systemu wnioskującego. Z punktu widzenia konstruktora systemów eksperckich uczenie się maszyn jest naturalnym i bardzo obiecującym podejściem do akwizycji wiedzy, która zamiast wyłącznie od ekspertów może w całości lub w części pochodzić z procesu uczenia się, wykorzystującego jako informację trenującą przykłady, zapytania lub ekspe rymenty. Może to być nie tylko łatwiejszy (gdyż zautomatyzowany) sposób utwo rzenia bazy wiedzy, lecz także sposób bardziej wiarygodny i, co także nie jest bez znaczenia, umożliwiający jej ciągłą aktualizację przez działający system. Wiele algorytmów, które przedstawimy zwłaszcza w kilku początkowych rozdziałach tej książki, znakomicie się do tego celu nadaje. 1.4.4
Uczenie się heurystyk
„Inteligencja" metod przeszukiwania opracowanych w ramach sztucznej inteligen cji opiera się na wykorzystaniu przez nie funkcji heurystycznych do wyboru kie runku przeszukiwania. Nawet najlepsze z tych metod nie dadzą zadowalających rezultatów, jeśli zostaną wyposażone w źle zaprojektowane funkcje heurystycz ne. Tymczasem dla wielu godnych uwagi problemów opracowanie dostatecznie wiarygodnych funkcji heurystycznych jest zadaniem nietrywialnym, niekiedy wy magającym udziału ekspertów odpowiedniej dziedziny (tak jest chociażby w przy padku funkcji heurystycznych dla bardziej złożonych gier planszowych, takich jak szachy). Skoro jednak heurystyki reprezentują wiedzę, nie jest od rzeczy rozwa żyć możliwość nauczenia się ich na podstawie doświadczeń uzyskanych przy pró bach przeszukiwania (a więc podczas rozwiązywania problemu lub w trakcie gry). W rozdziałach 11 i 13 jest mowa o dwóch odmiennych, chociaż nie całkiem po zbawionych podobieństwa, podejściach do uczenia się heurystyk przeszukiwania.
1.5. UCZENIE SIĘ JAKO WNIOSKOWANIE
1.5
53
Uczenie się jako wnioskowanie
Jako przykład możliwego rozwinięcia przedstawionej dyskusji na temat maszyno wego uczenia się i jego rodzajów przedstawimy bardzo ogólny zarys inferencyjnej teorii uczenia się. Jej znaczenie polega przede wszystkim na wprowadzeniu jedno litego słownika, który, zapewne nie bez konieczności dalszego rozbudowania, mo że służyć do jednolitej prezentacji różnych form uczenia się w ramach wspólnej siatki pojęciowej i terminologicznej. Podejście to nie zostało, jak dotąd, powszech nie przyjęte i nie widać prób połączenia go z innymi teoriami uczenia się w celu wypracowania jednolitej teorii. Również jego wpływ na praktykę konstruowania systemów uczących się był dość ograniczony. Jego bardzo zwięzłe i fragmenta ryczne omówienie poniżej jest głównie usprawiedliwione dobrą korespondencją, jaka zachodzi między nim a nieformalnymi rozważaniami z wcześniejszych części tego rozdziału. Zgodnie z teorią inferencyjną uczenie się jest wynikiem łącznego zachodzenia dwóch procesów: wnioskowania, które prowadzi do generowania wiedzy, i za pamiętywania, dzięki któremu nowa wiedza zostaje zapisana w pamięci ucznia zgodnie z przyjętą metodą reprezentacji. Wnioskowanie jest przeprowadzane na podstawie wiedzy wrodzonej ucznia i informacji trenującej za pomocą operato rów nazywanych transmutacjami wiedzy. Była już mowa o tym, że wiedza ge nerowana przez ucznia jest nazywana, nie tylko na gruncie teorii inferencyjnej, hipotezą, wybraną z pewnej przestrzeni reprezentowalnych hipotez na podstawie wiedzy wrodzonej i informacji trenującej. Zależnie od mechanizmu wnioskowania prowadzącego do wyboru tej hipotezy, może ona być jednoznacznie wyznaczana przez wiedzę wrodzoną i informację trenującą bądź nie (wówczas wiedza wro dzona i informacja trenującą zawężają tylko zbiór hipotez, jakie uczeń może brać pod uwagę). W tym drugim przypadku o ostatecznym wyborze hipotezy decydują dodatkowe czynniki, związane ze stosowanym algorytmem uczenia się, które na zywa się obciążeniem algorytmu. Mamy wówczas do czynienia z wnioskowaniem obciążonym. 1.5.1
Typy wnioskowania
Dwa najważniejsze typy wnioskowania, które mogą być realizowane za pomocą różnych transmutacji, to według inferencyjnej teorii uczenia się wnioskowanie in dukcyjne i wnioskowanie dedukcyjne. Uwzględnionym w niej również trzecim ty pem wnioskowania, analogicznym, nie będziemy się zajmować. Do podstawowe go opisania wnioskowania dowolnego typu można wykorzystać ten sam, wspólny związek logicznej konsekwencji: P A W |= K9
(1.1)
54
ROZDZIAŁ 1. UCZENIE SIĘ W UJĘCIU ALGORYTMICZNYM
przy czym P oznacza zbiór przesłanek, W — wiedzę wrodzoną ucznia, K — zbiór konkluzji, a symbol |= jest oznaczeniem logicznej konsekwencji, której in terpretacja jest formalnie podana w dodatku C streszczającym podstawy logiki formalnej. To równanie mówi, że wiedza reprezentowana przez konkluzje K jest logiczną konsekwencją zbioru przesłanek P i wiedzy wrodzonej W. Innymi słowy, K wynika z P i l ł ^ w drodze logicznej dedukcji (oczywiście w poprawnym syste mie dedukcyjnym). Jeśli za zbiór przesłanek P podstawimy informację trenującą otrzymywaną przez ucznia, a zbiór konkluzji uznamy za generowaną przez nie go nową wiedzę, to nasze równanie opisuje uczenie się oparte na wnioskowaniu dedukcyjnym. Powiemy wówczas, że jest ono czytane „w przód". Możemy jed nak przeczytać je także „wstecz", traktując K jako informację trenującą, a P jako generowaną w procesie uczenia się wiedzę. Wówczas opisuje ono wnioskowanie indukcyjne. Właściwością dedukcji jest zachowanie prawdy (z prawdziwości P wynika prawdziwość K), a właściwością indukcji zachowanie fałszu (z fałszywości K wynika fałszywość P). Wnioskowanie indukcyjne jest w zasadzie zawsze obciążone — o wyborze hipotezy indukcyjnej decydują pewne właściwości algo rytmu uczenia się, gdyż wiedza wrodzona i informacja trenująca nie wyznaczają jej jednoznacznie.
1.5.2
Transmutacje wiedzy
Każdy typ wnioskowania może być realizowany przez szereg transmutacji wiedzy, których nie będziemy dokładnie omawiać. Są to różne rodzaje indukcyjnych lub dedukcyjnych przekształceń, jakie mogą być stosowane do wiedzy wrodzonej (lub także wcześniej uzyskanej w wyniku uczenia się) i informacji trenującej w celu generowania nowej wiedzy, która ma postać opisów odnoszących się do obiektów pewnej dziedziny. W inferencyjnej teorii uczenia się są one pogrupowane w pary transmutacji o działaniu w przybliżeniu odwrotnym. Najważniejsze z nich to: generalizacja/specjalizacja: transmutacje polegające na poszerzeniu albo zawę żeniu zbioru obiektów, do którego odnoszą się opisy, abstrakcja/konkretyzacja: transmutacje polegające na zmniejszeniu albo zwięk szeniu liczby szczegółów uwzględnianych w opisach, podobieństwo/kontrastowanie: transmutacje polegające na generowaniu wiedzy o pewnych zbiorach obiektów na podstawie ich podobieństwa albo różnic w stosunku do innych zbiorów obiektów, wyjaśnianie/predykcja: transmutacje polegające na znajdowaniu wiedzy wyja śniającej wiedzę posiadaną wcześniej albo na przewidywaniu na jej podstawie nowej wiedzy. Konkretnych przykładów transmutacji wiedzy dostarczą nam algorytmy in dukcyjnego uczenia się omawiane w kilku następnych rozdziałach.
1.6. ZASTOSOWANIA SYSTEMÓW UCZĄCYCH SIĘ
1.5.3
55
Uczenie się jako przeszukiwanie
Inferencyjna teoria uczenia się ukazująca proces pozyskiwania wiedzy jako wnio skowanie i zapamiętywanie stwarza dogodną perspektywę do analizowania róż nych rodzajów uczenia się i eksponowania zarówno ich cech wspólnych, jak i dzie lących je różnic, lecz jej faktyczną przydatność zweryfikują dopiero dalsze prace. W tej książce raczej nie będziemy się do niej odwoływać. Będziemy za to niekie dy posługiwać się odmienną perspektywą, chociaż nie wykluczającą tamtej, którą otrzymuje się traktując proces uczenia się jako przeszukiwanie przestrzeni hipo tez. Zgodnie z tym punktem widzenia uczeń wykorzystuje wiedzę wrodzoną oraz informację trenującą do kierowania procesem przeszukiwania, którego celem jest znalezienie najlepszej hipotezy według pewnych kryteriów jakości, zależnych od konkretnego rodzaju uczenia się, z jakim mamy do czynienia. Rola wiedzy wro dzonej i informacji trenującej polega na eliminowaniu niektórych i dopuszczaniu innych kierunków przeszukiwania, lecz wykorzystywane strategie przeszukiwania przestrzeni hipotez mogą być różne i stanowią charakterystyczne właściwości al gorytmów uczenia się. Jeśli przy danej wiedzy wrodzonej i informacji trenującej dla rozważanego problemu uczenia się istnieje więcej niż jedna dopuszczalna hi poteza, to oczywiście różne strategie przeszukiwania mogą dać w wyniku różne hipotezy. Mogą się one różnić nie tylko wynikiem, lecz także efektywnością je go uzyskania. Najczęściej algorytmy uczenia się przeszukują przestrzeń hipotez w ten sposób, aby zarazem dążyć do uzyskania hipotez najbardziej preferowanych ze względu na określone kryteria jakości oraz uzyskać zadowalającą hipotezę jak najszybciej. Traktowanie uczenia się jako przeszukiwania nie ma tak dalekosiężnych am bicji jak inferencyjna teoria uczenia się. Nie jest to teoria, lecz pewien sposób patrzenia na proces uczenia się, który jest jednak przydatny do porównywania róż nych algorytmów. W związku z tym przy omawianiu niektórych algorytmów w tej książce zwrócimy uwagę na wykorzystywane przez nie strategie przeszukiwania.
1.6
Zastosowania systemów uczących się
Informatyka jest nauką techniczną i żaden jej dział nie może pomijać pytania o możliwe zastosowania praktyczne badanych przez siebie technik. O ile stawianie tego pytania nie powinno być przedwczesne, wyprzedzające rozwiązanie zupełnie podstawowych problemów naukowych, o tyle w przypadku młodej jeszcze, lecz już nieco okrzepłej dyscypliny jest jak najbardziej na miejscu. Przy omawianiu w dalszej części książki różnych algorytmów uczenia się będziemy zawsze dys kutować zagadnienia związane z ich stosowaniem w praktyce. Obecnie poziom konkretności dyskusji o zastosowaniach poszczególnych rodzajów uczenia się mu siałby być nie mniej nikły niż całej zawartości tego wprowadzającego rozdziału.
56
ROZDZIAŁ 1. UCZENIE SIĘ W UJĘCIU ALGORYTMICZNYM
Zamiast tego wymieńmy więc raczej niektóre dziedziny, w których ewentualne zastosowania systemów uczących się mogłyby być szczególnie obiecujące, nie za stanawiając się ani nad właściwym rodzajem uczenia się, ani nad odpowiednimi algorytmami. Odkrycia w bazach danych. Tu obszarów zastosowań jest tyle, ile obszarów, w których występują duże bazy danych, zawierające dane systematycznie groma dzone lub tworzone w trakcie działania firmy lub instytucji będącej ich właści cielem. Może to być zakład przemysłowy, który dzięki odkryciom uzyska wiedzę umożliwiającą obniżenie kosztów i poprawę jakości. Może to być bank, który po zyskaną z danych wiedzę wykorzysta przy konstruowaniu oferty nowego rodzaju kredytu lub ocenianiu wiarygodności klientów. Uczelnia analizując dane histo ryczne dowie się, od jakich czynników zależą czas i wyniki studiowania. Agencja reklamowa ustali, od czego zależy zainteresowanie klientów promowanym pro duktem. Także dwa zastosowania już wcześniej podane jako przykłady, diagnosty ka medyczna i wykrywanie nadużyć, mają charakter odkrywania zależności w da nych. Również na inny przykład, adaptacyjne klasyfikowanie lub filtrowanie do kumentów, można patrzeć jak na szczególny rodzaj odkryć — w tym przypadku dotyczących bazy danych zawierającej informację tekstową, której wielkie zasoby są dostępne między innymi w Internecie. Pomysły innych konkretnych zastosowań można mnożyć do woli. Systemów odkrywania wiedzy w bazach danych skonstru owano już dość wiele i znaczna większość z nich ma charakter komercyjnych pro duktów, sprzedawanych za niebagatelne niekiedy sumy. Zainteresowanie tego typu systemami i ich wdrażaniem w różnych dziedzinach jest w Stanach Zjednoczonych bardzo duże przynajmniej od początku lat dziewięćdziesiątych, a obecnie pojawia się coraz wyraźniej także w Polsce. Oprogramowanie, o którym mowa, najczęściej umożliwia komunikację z relacyjną bazą danych i poszukiwanie w przechowywa nych w niej zbiorach rekordów zależności za pomocą różnych algorytmów, w tym także takich, które poznamy w kilku następnych rozdziałach. Wiedza wydobyta w ten sposób może być prezentowana w czytelnej dla człowieka postaci i wyko rzystywana do przeprowadzania wnioskowania. Inteligentne sterowanie. W uproszczeniu można powiedzieć, że przez sterowa nie automatycy rozumieją proces, w którym układ sterowania (regulator) oddzia łuje na sterowany obiekt w celu zapewnienia jego pożądanego stanu. Czasem roz różnia się tu dwa przypadki. W pierwszym chodzi o to, aby stan ten, zmieniając się w czasie, był możliwie blisko pewnej pożądanej trajektorii i należy eliminować lub minimalizować wszelkie od niej odchylenia. W drugim przypadku celem ste rowania jest maksymalizacja pewnej miary jakości działania sterowanego obiektu. W obu tych sytuacjach klasyczna teoria sterowania dostarcza znakomitych rozwią-
1.6. ZASTOSOWANIA SYSTEMÓW UCZĄCYCH SIĘ
57
zań, pod warunkiem jednak dostatecznie dobrej znajomości dziedziny problemu i dostępności wiarygodnego modelu matematycznego. Tam, gdzie takie modele nie są dostępne, otwiera się przestrzeń do stosowania różnych uczących się regu latorów. Mogą się one uczyć z nadzorem, na podstawie przykładów pożądanych sterowań w różnych stanach, lub ze wzmocnieniem, kiedy jakość strategii sterowa nia jest oceniana za pomocą liczbowych nagród. W problemach sterowania bardzo często znajdują zastosowania metody uczenia się aproksymacji funkcji, które mo gą być używane bądź bezpośrednio do uczenia się strategii sterowania, bądź do identyfikacji — uczenia się modelu zachowania sterowanego obiektu, który na stępnie jest używany do znalezienia strategii sterowania. Robotyka. Zdolność do uczenia się jest bez wątpienia jedną z pożądanych cech inteligentnych robotów, mających działać w złożonych środowiskach i charakte ryzować się dużym stopniem autonomii. Mogą to być roboty przemysłowe, wy konujące pewne szczególnie skomplikowane manipulacje na taśmie produkcyjnej, ruchome roboty przemierzające korytarze hal fabrycznych i biurowców czy ro boty eksploracyjne wysyłane na inne planety na pokładach sond kosmicznych. Już wcześniej jako przykład możliwego zastosowania maszynowego uczenia się poda liśmy problem nawigacji dla ruchomego robota. Inne problemy to np. rozpoznawa nie miejsc i osób, rozpoznawanie mowy, znajdowanie drogi, planowanie. Motywa cją do sięgnięcia po algorytmy uczenia się w celu uzyskania wiedzy lub umiejęt ności niezbędnej do rozwiązania tych i innych problemów jest przede wszystkim złożoność, niepewność i zmienność środowisk, w których mogą działać roboty. Inżynieria oprogramowania. Skoro prace nad systemami uczącymi się prowa dzą przede wszystkim informatycy, należałoby oczekiwać, że znajdą dla nich za stosowania również w głównym nurcie swojej dyscypliny, w tym w szczególności w inżynierii oprogramowania. Zastosowania takie są istotnie możliwe i chociaż na leżą obecnie jeszcze do rzadkości, być może w niedalekiej przyszłości bardziej się rozpowszechnią. Jedna z możliwości to konstruowanie inteligentnych interfejsów użytkownika adaptujących się do jego zwyczajów i upodobań. Często używając po wielekroć tego samego programu użytkownik powtarza niezliczoną liczbę razy te same serie poleceń (wybranych z menu lub zadanych kombinacją klawiszy). Przy najmniej części tych powtórzeń można uniknąć. Na podstawie historii interakcji użytkownika z programem mogłyby być dobierane domyślne wartości jego róż nych ustawień, upraszczane typowe, często wykonywane sekwencje operacji itp. Oparte na tej koncepcji podejście do konstruowania uczących się interfejsów użyt kownika jest nazywane programowaniem przez demonstrację. Innym obszarem zastosowań może być planowanie projektów informatycznych i zarządzanie nimi. Jednym z występujących tam problemów jest szacowanie czasochłonności róż-
58
ROZDZIAŁ 1. UCZENIE SIĘ W UJĘCIU ALGORYTMICZNYM
nych zadań i etapów projektu oraz zasobów wymaganych do ich realizacji. Jest to na ogół dość trudne i błędy popełniane przy tych szacunkach bywają zaskakująco duże. W praktyce doświadczone zespoły projektowe kierowane przez doświadczo nych kierowników projektów mylą się oczywiście rzadziej i w mniejszym stopniu niż zespoły i kierownicy bez dużego doświadczenia. Wydaje się, że pomysł au tomatyzacji wykorzystywania doświadczeń z przeszłości za pomocą algorytmów uczenia się nie jest więc pozbawiony sensu. Realizujący ten pomysł system kon struowałby odpowiednie oszacowania na podstawie pewnego zestawu cech opisu jących zadanie projektowe, wykorzystując wiedzę uzyskaną z przetworzenia do starczonych mu uprzednio przykładów trenujących, reprezentujących doświadcze nia z wcześniej realizowanych projektów. Jeszcze inna możliwość to zastosowanie systemów uczących się do diagnostyki błędów oprogramowania. Systemy takie uczyłyby się na podstawie wcześniej diagnozowanych przypadków kojarzyć ob serwowane przez użytkowników symptomy błędnego działania programu z przy puszczalną lokalizacją usterek i mogłyby być przydatnymi narzędziami wspoma gającymi pracę inżynierów zatrudnionych w działach wsparcia technicznego firm informatycznych.
1.7
Perspektywa filozoficzna
Problemy wiedzy i jej pozyskiwania oraz wnioskowania i jego prawomocności zajmowały myślicieli prawie od początku dziejów filozofii Zachodu. Autorowi tej książki brakuje kompetencji do przedstawienia pełnego, obiektywnego i wolnego od naiwnych uproszczeń przeglądu różnych ujęć tych problemów, jakie się w cią gu ostatnich 2500 lat pojawiły. Aby jednak zachęcić czytelnika zainteresowanego informatyką, sztuczną inteligencją i uczeniem się do sięgnięcia po teksty filozo ficzne i samodzielnego odnalezienia wspólnych wątków i obustronnych implika cji, są tu wskazane w chronologicznym z grubsza porządku niektóre tezy głoszone przez najbardziej znanych filozofów, mające bliski związek z zagadnieniami in teresującymi nas w tej książce. Zawartość tego podrozdziału musi być opatrzona bardzo wyraźnym zastrzeżeniem, że przyjęte na jej użytek uproszczenia przekra czają niekiedy granicę zupełnej trywializacji, a ujęcie problemów jest świadomie tylko hasłowe. Wskazywane tu analogie między zasadniczymi problemami filozo ficznymi a zagadnieniami związanymi z systemami uczącymi się są z pewnością bardzo spłycone i powinny być traktowane z przymrużeniem oka. Refleksja nad wiedzą, a więc także uczeniem się, po raz pierwszy wyraźnie zaznacza się u Sokratesa (469-399 p.n.e.). Zgodnie z jego teorią anamnezy ucze nie się jest naprawdę przypominaniem sobie wiedzy wrodzonej. Przypominanie to może oczywiście zachodzić pod wpływem bodźców zewnętrznych, dzięki pomo cy nauczyciela lub przez obserwację przykładów. Podstawowa rola wiedzy wro-
1.7. PERSPEKTYWA FILOZOFICZNA
59
dzonej zbliża to rozumienie uczenia się do uczenia się przez wyjaśnianie. Jednak metoda, jaką Sokrates posługiwał się definiując pojęcia, polegała na gromadzeniu przykładów tych pojęć i analizowaniu ich cech wspólnych. Podejście to ma więc cechy indukcyjnego uczenia się z nadzorem. Platon (427-347 p.n.e.) ustami Sokratesa jako bohatera swych dialogów, wy łożył teorię idei (form) jako bytów realnie istniejących, których cieniami są rzeczy postrzegalne zmysłowo i których odbiciami są nasze pojęcia. Pojęcia te, jak cały świat idei, istnieją odwiecznie — nie są tworzone, lecz co najwyżej odkrywane przez rozum. Takimi realnymi bytami są według tego stanowiska w szczególno ści powszechniki, czyli pojęcia ogólne. Może je odkryć rozum lub intuicja, lecz nie dane zmysłowe. Adaptując ten punkt widzenia do procesu uczenia się nale żałoby przyjąć, że informacja trenująca jest w nim bezużyteczna, gdyż nie może prowadzić do żadnej wiarygodnej wiedzy. Arystoteles (384-322 p.n.e.) odniósł się do pojęć w duchu bardziej empirycz nym. Według niego istnieją tylko rzeczy jednostkowe, a pojęcia ogólne powstają jako twory umysłu w drodze abstrakcji. Nie jest to jednak abstrakcja arbitralna, podstawą jest dla niej wspólna forma rzeczy obejmowanych przez tworzone poję cie. Arystotelesowi też można przypisać uznanie wnioskowania za jedyne źródło wiedzy, a także rozróżnienie wnioskowania dedukcyjnego i indukcyjnego. Jako narzędzie dla pierwszego rozwijał logikę sylogizmów. Jednak pierwsze przesłan ki łańcucha dedukcji same nie mogły z niej pochodzić i Arystoteles wywodził je właśnie z wnioskowania indukcyjnego, którego niezawodność jest odczuwana intuicyjnie. Nader dobrze odpowiada to przyjętemu zwłaszcza przez twórców sys temów eksperckich traktowaniu indukcyjnego uczenia się jako źródła wiedzy uży wanej następnie do automatycznego wnioskowania dedukcyjnego. Myśl Arystote lesa była w ogóle pierwszą systematyczną refleksją nad wnioskowaniem i przez wiele następnych stuleci nie wykroczono poza nią w żaden istotny sposób. Po znakomitym okresie filozofii ateńskiej ponowny rozkwit myśli przyniosło chrześcijańskie średniowiecze, które nie w całości było okresem ciemnoty i zabo bonu, z jakim jest wciąż niekiedy niesłusznie utożsamiane. Jego pierwszą wielką postacią był Aureliusz Augustyn (354-430), o którym upraszczając mówi się, że zaadoptował do doktryny chrześcijańskiej myśl Platona. Przyjmując jego naukę o ideach uznawał je za swego rodzaju „myśli Boga", wchodzące w skład Jego isto ty „szablony", według których ukształtował świat. Drogą do poznania tych idei jest przede wszystkim łaska iluminacji, dzięki której Bóg oświeca wybranych przez siebie. W doktrynie tej nie pozostaje zbyt wiele miejsca na uczenie się indukcyjne, natomiast akcentuje ona rolę wiedzy wrodzonej, według Augustyna zaszczepionej duszy ludzkiej przez Stwórcę i pewnej, w przeciwieństwie do mało wiarygodnych danych zmysłowych. Augustiańskie spojrzenie na uczenie się maszyn oznaczało by zatem ograniczenie go do przetwarzania wiedzy wrodzonej lub bezpośredniej implantacji wiedzy systemowi uczącemu się przez jego projektanta.
60
ROZDZIAŁ 1. UCZENIE SIĘ W UJĘCIU ALGORYTMICZNYM
W późniejszym okresie rozwoju filozofii chrześcijańskiej, która podniosła się po kilku wiekach intelektualnego upadku w początkach drugiego tysiąclecia, uwa gę wielu filozofów przyciągnął spór o uniwersalia, czyli o pochodzenie i naturę pojęć ogólnych (powszechników). Skrajne stanowiska w tym sporze zajmowali realiści, uznający je w duchu platońskim za realnie istniejące byty, i nominaliści, traktujący je wyłącznie jako elementy języka, znaki, którymi posługujemy się wy powiadając sądy. W dyskusji tej wziął udział jeden ze znakomitszych myślicieli tego okresu, Abelard (1079-1142), znany także z burzliwych dziejów swej miło ści do Heloizy, według którego uniwersalia nie istnieją realnie, ale mają podstawę we wspólnej formie rzeczy obejmowanych przez nie. Było to stanowisko kompro misowe, nie do przyjęcia jednak dla augustiańskich realistów; za sprawą jednego z nich losy Abelarda potoczyły się bardzo smutno. Właściwie sama natura po wszechników nie ma zasadniczego znaczenia z punktu widzenia maszynowego uczenia się, zasadniczą kwestią jest jednak możliwość ich poznania na podstawie tego, co można obserwować za pomocą zmysłów, czyli bytów jednostkowych. Sta nowisko realistyczne nie musi tego wykluczać, chociaż najczęściej jego wyznaw cy nie darzyli zmysłów i jednostkowych przedmiotów dużym zaufaniem. Zarówno nominalizm, jak i stanowisko Abelarda z istoty dopuszczają poznanie pojęć ogól nych na podstawie ich przykładów, zostawiając otwarte drzwi dla indukcyjnego uczenia się. Z kolei wielki twórca chrześcijańskiej myśli opartej na inspiracjach arystotelesowskich, Tomasz z Akwinu (1225-1274), rozróżniał uniwersalia antę rem (przed rzeczami, jako idee Boga, według których zostały stworzone rzeczy), in re (w rze czach, jako wspólna forma reprezentująca to, co w nich ogólne) i post rem (po rzeczach, jako abstrakcje tworzone przez rozum na podstawie zmysłowych obser wacji). To stanowisko łączy więc poglądy arystotelesowskie z mocno zakorzenioną w chrześcijaństwie nauką Augustyna, którą Akwinata nie tyle przekreślił, co włą czył do swej wielkiej syntezy. Ponieważ Doktor Anielski w ślad za Arystotelesem nie lekceważył empirycznych obserwacji, z pewnością zgodziłby się, że uczenie się na podstawie przykładów jest możliwe, chociaż może dotyczyć tylko niektó rych rodzajów wiedzy, gdyż są obszary, które pozostają dla niego niedostępne. Żaden chyba filozof tak bezpośrednio nie wpłynął na dziedzinę maszynowe go uczenia się jak inny średniowieczny myśliciel, William Ockham (1285-1349), który w sporze o uniwersalia zajmował stanowisko nominalistyczne. Nazwana je go imieniem zasada brzytwy Ockhama wzywa do niemnożenia przy tłumaczeniu świata bytów ponad potrzebę, czyli do wyboru najprostszych hipotez. Z zasadą tą, w różnych sformułowaniach, zetkniemy się w kilku rozdziałach tej książki, kiedy preferencje dla najprostszych hipotez będą stanowić istotne elementy opisywanych algorytmów uczenia się. Okres nowożytny zaznaczył się wzrostem zainteresowania zaniedbanymi w średniowieczu naukami przyrodniczymi, co, być może, nieco obniżyło poziom
1.7. PERSPEKTYWA FILOZOFICZNA
61
refleksji filozoficznej. Dla niektórych uczonych tego czasu była ona dodatkiem do ich działalności badawczej, nie ma więc nic dziwnego w tym, że koncentro wali się na kwestiach metodologicznych. Tak było z Francisem Baconem (1561— 1626), który zajął stanowisko zdecydowanie indukcjonistyczne. Uważał, że induk cja jako narzędzie nauk empirycznych jest źródłem wiedzy pewnej i pożytecznej, o ile oczywiście stosuje sieją w odpowiednio systematyczny, „naukowy" sposób. W tym celu Bacon zaproponował odpowiednie procedury, uwzględniające przy kłady pozytywne i negatywne. Proponowaną przez niego formę indukcji nazywa się indukcją eliminacyjną, gdyż analiza danych doświadczalnych prowadzi w niej do eliminacji niezgodnych z nimi hipotez aż do pozostania tylko jednej, która mo że być uznana za prawdziwą. Z algorytmem uczenia się, który postępuje w bardzo podobny sposób, zetkniemy się już w następnym rozdziale. Zagadnienia poznania i jego zmysłowych źródeł stanowiły główny przedmiot zainteresowań brytyjskiego empiryzmu, za którego sztandarowych przedstawicieli uchodzą John Locke (1632-1704), George Berkeley (1685-1753) i David Hume (1711-1777). W pracach tego ostatniego empiryzm uzyskał najbardziej dojrzałą postać. Zgodnie z tym kierunkiem myślenia idee proste powstają na podstawie wrażeń pochodzących ze zmysłów, a idee złożone są stworzonymi z nich kon strukcjami. O ile Locke, którego empiryzm jest uważany za jeszcze nie w pełni konsekwentny, dopuszczał również istnienie powstałych w drodze abstrakcji idei ogólnych, o tyle Berkeley i Hume wykluczali je, uznając, że idee muszą być jed nostkowe i konkretne tak samo, jak doświadczenia zmysłowe. Jedynym źródłem wiedzy według empirystów jest właśnie doświadczenie. Na jego podstawie można wydawać sądy o faktach, które mogą być prawdziwe lub fałszywe. Z konieczno ści prawdziwe są sądy o ideach, gdyż fałszywy sąd byłby sprzeczny i pozbawiony sensu. Interesujące jest także, że konsekwentny empiryzm w duchu Hume'a kryty kował zasadę przyczynowości jako nie mającą bezpośredniego oparcia w danych zmysłowych. Podważa to w konsekwencji prawomocność indukcji, chociaż prag matycznie nastawiony Hume akceptował posługiwanie się nią w praktyce. Podkre ślał tylko, że to, o czym wielokrotnie ponawiana obserwacja skłania nas myśleć jako o stałym i powszechnie obowiązującym prawie, wcale takim być nie musi. Stanowisko takie nie wyklucza zatem posługiwania się wnioskami indukcyjny mi, takimi jak wiedza pozyskiwana przez indukcyjne systemy uczące się, jeśli nie traktuje się ich jako pewnych i niepodważalnych. Obecne u Hume'a rozróżnienie z konieczności prawdziwych sądów o ide ach i sądów o obserwowanych faktach, których prawdziwość lub fałszywość jest przypadkowa, było punktem wyjścia do rozważań Immanuela Kanta (1724-1804). Pierwsze są nazywane analitycznymi, gdyż wyrażają tylko to, co w ideach już się kryje (z tego względu ich fałszywość byłaby równoznaczna wewnętrznej sprzecz ności), a drugie syntetycznymi, gdyż wnoszą nową, chociaż niepewną, wiedzę. Tak rozumiane sądy analityczne są sądami a priori, gdyż do ich wypowiedzenia nie
62
ROZDZIAŁ 1. UCZENIE SIĘ W UJĘCIU ALGORYTMICZNYM
są potrzebne dane empiryczne, sądy syntetyczne zaś są sądami a posteriori, gdyż opierają się na doświadczeniu. Kant uznał, że są również możliwe sądy synte tyczne a priori, czyli niezależne od doświadczenia, aczkolwiek wnoszące nową wiedzę. Ich przykłady można znaleźć przede wszystkim w matematyce. Aby wy tłumaczyć możliwość takich sądów oraz uwzględnić rolę zarówno zmysłów, jak i rozumu w poznaniu, Kant przyjął, że istnieją aprioryczne formy zmysłowości (czas, przestrzeń) i kategorie rozumu (m.in. substancja i przyczynowość), które kształtują poznanie i określają sposób odbierania przez nas wrażeń zmysłowych. Czyste wrażenia są więc przepuszczane przez filtr, który jest właściwością umysłu od nich niezależną. Właściwość ta jednocześnie umożliwia umysłowi wydawania sądów syntetycznych również niezależnie od doświadczenia. Z perspektywy in dukcyjnego uczenia się maszyn można na postulowane przez Kanta aprioryczne składniki umysłu patrzeć, mocno trywializując, jako na obciążenie, czyli czynnik determinujący wybór przez ucznia określonej (tej a nie innej) hipotezy na podsta wie dostępnych danych. Utrzymane w duchu empiryzmu i liberalizmu poglądy pozytywisty Johna Stu arta Milla (1806-1873) były oparte w większości na dorobku jego poprzedników, lecz warto o nim wspomnieć ze względu na uwagę, jaką poświęcił indukcji. Podał on cztery jej podstawowe kanony (konkretne mechanizmy wnioskowania induk cyjnego), znane jako indukcja zgodności, indukcja różnicy, indukcja reszt i induk cja zmian towarzyszących, rozwijając wcześniejsze opracowania Bacona. Chociaż były one raczej chybione z punktu widzenia interesującej Milla metodologii nauk przyrodniczych, są bardzo bliskie indukcyjnemu uczeniu się maszyn. Przedstawiciele tzw. drugiego pozytywizmu (empiriokrytycyzmu), zwłaszcza Richard Avenarius (1843-1996), głosili w ockhamowskim duchu zasadę ekonomii myślenia, wzywającą do konstrukcji pojęć i praw, które opisują świat w najprost szy sposób. Zasadę tę posunęli do twierdzenia, że główną funkcją naukowych teo rii jest ekonomiczne wyjaśnianie obserwacji, nie zaś — wówczas wciąż powszech nie przypisywane im — dążenie do prawdy. Jest bardzo interesujące, że takie samo w gruncie rzeczy spojrzenie na indukcję odnajdziemy również w niektórych popu larnych w ostatnich latach podejściach do uczenia się maszyn, zgodnie z którymi miarą jakości hipotez ucznia jest efektywność, z jaką pozwalają one zakodować dane trenujące. Pierwszy wybitny amerykański filozof, Charles Sanders Peirce (1839-1914), stworzył kierunek nazwany pragmatyzmem. Jego najbardziej dla nas interesującą cechą jest przyjęta w nim koncepcja znaczenia pojęć. Takie pragmatyczne znacze nie to wszystkie praktyczne konsekwencje tego pojęcia. Orędownik i popularyza tor myśli Peirce'a, William James (1842-1910), nieco ją zniekształcił i w efekcie stworzył własne wydanie pragmatyzmu, wskutek czego Peirce zaczął swoje sta nowisko określać dla odróżnienia mianem pragmatycyzmu. Otóż podejście, któ re Peirce zastosował do definiowania znaczenia, James rozciągnął także na defi-
1.8. PODSUMOWANIE
63
niowanie prawdy. Według jego pragmatycznej definicji prawdziwość sądu może być utożsamiona z jego praktyczną długoterminową użytecznością „w gotówce". Być może powierzchowna, lecz uderzająca jest zbieżność tego punktu widzenia z założeniami uczenia się ze wzmocnieniem, stawiającego przed uczniem zadanie maksymalizowania długoterminowych „dochodów", jakie stanowi wartościująca informacja trenująca. Nieprzypadkowo może ten paradygmat uczenia się jest naj bardziej popularny w pragmatycznej Ameryce. Rudolf Carnap (1891-1970), wywodzący się z działającego w latach między wojennych Koła Wiedeńskiego, prezentującego dość radykalne stanowisko nazy wane pozytywizmem logicznym, zajmował się zagadnieniami prawomocności in dukcji. Z czasem odstąpił on od wcześniejszego przekonania o jej niezawodno ści i dopuścił tylko prawdopodobne wnioski indukcyjne, szukając dla niego od powiedniego uzasadnienia na gruncie teorii prawdopodobieństwa. Wyróżnił przy tym prawdopodobieństwo logiczne jako stopień pewności hipotez ze względu na wspierające je przesłanki oraz prawdopodobieństwo statystyczne, oparte na obser wowaniu rozkładów częstości występowania pewnych zdarzeń lub faktów. W ma szynowym uczeniu się mamy do czynienia z obydwoma rodzajami prawdopodo bieństw, jak również z opartym na nich wnioskowaniem probabilistycznym. Pro babilistycznym uzasadnianiem prawomocności niektórych form indukcji zajmuje się obliczeniowa teoria uczenia się. Zauważmy na koniec, że w tym uproszczonym i niepełnym przeglądzie filozo ficznych aspektów uczenia się ograniczyliśmy się do zagadnień najbardziej bezpo średnio z nim związanych, dotyczących przede wszystkim źródeł i natury wiedzy oraz wnioskowania. Znacznie bogatsza jest filozoficzna dyskusja dotycząca pro blemów związanych z szeroko rozumianą sztuczną inteligencją, w której przewi jają się główne problemy filozofii współczesnej. Chodzi między innymi o różne wydania odwiecznego sporu materializmu z idealizmem, zwłaszcza w odniesie niu do pasjonującej kwestii „ciało-umysł". Te fascynujące problemy muszą jednak pozostać poza zasięgiem naszej krótkiej i powierzchownej dyskusji.
1.8
Podsumowanie
^ Uczenie się można w przybliżony sposób zdefiniować jako proces zmian auto nomicznie zachodzących w systemie na podstawie jego doświadczeń i prowa dzących do poprawy jakości jego działania. ^ Przedmiotem naszego zainteresowania w tej książce są uczące się programy komputerowe, o których można powiedzieć, że posługują się abstrakcyjnymi „parametryzowanymi" algorytmami, konkretyzowanymi w procesie uczenia się. W jego trakcie wartości ich „parametrów", nazywane wiedzą lub umie jętnością, są określane przez odpowiedni algorytm uczenia się.
64 ^
^
^
^
°H
9-»
ROZDZIAŁ 1. UCZENIE SIĘ W UJĘCIU ALGORYTMICZNYM
Rodzaje maszynowego uczenia się można klasyfikować ze względu na metodę reprezentacji wiedzy, sposób jej używania, źródło i postać informacji trenują cej oraz stosowany mechanizm wnioskowania. W uczeniu się maszyn jako dyscyplinie naukowej można wyróżnić nurty teo retyczny, biologiczny i systemowy. Będziemy się przede wszystkim zajmować tym ostatnim, w ramach którego prowadzi się prace nad konstruowaniem sys temów uczących się dla różnego rodzaju problemów uczenia się. Maszynowe uczenie się należy do najważniejszych działów sztucznej inteli gencji, dziedziny badań zmierzającej do wytworzenia programów komputero wych, którym można przypisać inteligentne działanie. Systemy uczące się ma ją także bezpośrednie odniesienie do dwóch innych głównych działów sztucz nej inteligencji: automatycznego wnioskowania i przeszukiwania heurystycz nego. Inferencyjna teoria uczenia się opisuje je jako proces wnioskowania, na podsta wie wiedzy wrodzonej i informacji trenującej, realizowany za pomocą różnych transmutacji wiedzy, w wyniku którego powstaje nowa wiedza, zapamiętywa na następnie przez system. Uczące się programy komputerowe mogą mieć wiele ważnych zastosowań praktycznych, zwłaszcza do odkrywania zależności w bazach danych, autpmatycznego sterowania, konstruowania autonomicznych robotów lub adapta cyjnych interfejsów użytkownika. Z uczeniem się związanych jest wiele ważkich problemów filozoficznych, któ re zajmowały myślicieli od Sokratesa, Platona i Arystotelesa przez Augustyna, Tomasza z Akwinu i Ockhama oraz Hume'a, Kanta i Milla po Carnapa.
1.9
Uwagi historyczne i bibliograficzne
Trudno precyzyjnie określić początek maszynowego uczenia się, lecz nie ulega wątpliwości jego obecność w ramach sztucznej inteligencji niemal od jej zarania, czyli przynajmniej od wczesnych lat pięćdziesiątych. U progu lat sześćdziesiątych Minsky [157], dokonując przeglądu stanu i perspektyw badań nad nią, wymienił już uczenie się wśród jej głównych nurtów. Najbardziej spektakularnym sukce sem badawczym maszynowego uczenia się, a zapewne także sztucznej inteligencji w ogóle, stał się w tym czasie opracowany przez Samuela [236] program uczący się gry w warcaby, który, doskonaląc swoją strategię na podstawie rozgrywanych partii, osiągnął poziom bardzo dobrego (chociaż jeszcze nie wybitnego) graczaczłowieka. Poza tym wybitnym osiągnięciem uczenie się w tym początkowym okresie było rozumiane jeszcze dość wąsko i często wiązane z sieciami neuro nowymi, których kariera się wówczas rozpoczynała obiecująco, zresztą między innymi za sprawą Minsky'ego [156]. Jej późniejsze załamanie się za sprawą gło-
1.9. UWAGI HISTORYCZNE I BIBLIOGRAFICZNE
65
śnej pracy [158] odsunęło w cień tematykę sieci neuronowych na blisko 20 lat, przejściowo osłabiając także zainteresowanie maszynowym uczeniem się w ogóle. Sieci neuronowe powróciły do łask w połowie lat osiemdziesiątych za sprawą algorytmu trenowania wielowarstwowych perceptronów, upowszechnionego przez Rumelharta, Hintona i Williamsa [227]. Jednak zainteresowanie innymi podejścia mi do uczenia się powróciło o z górą dekadę wcześniej. Lata siedemdziesiąte, a ze szczególną intesywnością ich druga połowa, były okresem opracowywania pierw szych symbolicznych algorytmów indukcyjnego uczenia się na podstawie przy kładów, z których niektóre przetrwały próbę czasu i zostaną przedstawione w tej książce. Pierwsze koncepcje, które wpłynęły na ich dalszy rozwój, pojawiły się już we wczesnych pracach Hunta, Marina i Stone'a [103], Szczególnie duży wpływ miał system uczący się Winstona [282]. Jednak początek symbolicznym systemom indukcyjnego uczenia się, jakie znamy dziś, dały prace Michalskiego, np. [145]. Wybrane wczesne indukcyjne systemy uczące się są omówione w przeglądowym artykule [70]. Lata osiemdziesiąte były czasem opracowywania nowych, ulepszonych algo rytmów, lecz także rozszerzania spektrum badanych rodzajów uczenia się — poza indukcyjnym uczeniem się na scenę wkroczyło między innymi uczenie się przez wyjaśnianie oraz uczenie się ze wzmocnieniem. W tym czasie również zainicjo wano rozwijaną do dziś obliczeniową teorię uczenia się. Dokładniej o historii tych badań opowiemy w odpowiednich rozdziałach. Okres ten, oprócz postępów ba dawczych w maszynowym uczeniu się, przyniósł mu także znaczący wzrost po pularności. Środowisko zajmujących się nim badaczy oraz liczba prowadzonych przez nich prac wzrosły na tyle, że rozpoczęto organizowanie poświęconych mu międzynarodowych konferencji oraz wydawanie czasopisma Machinę Learning. W latach dziewięćdziesiątych obserwujemy pod tym względem wzrost najbardziej dynamiczny — można więc mówić o prawdziwej eksplozji ilościowej, lecz także i jakościowej prowadzonych badań. Powiększaniu się środowiska naukowców zaj mujących się maszynowym uczeniem się towarzyszy ich rosnąca orientacja w ca łej tej dziedzinie, a nie tylko jej fragmencie, w którym są ulokowane ich własne badania, a także jej powiązań z innymi dziedzinami, od psychologii po statystykę i automatyczne sterowanie. Oprócz wynikających stąd postępów teorii, kolejnej generacji algorytmów i dalszego poszerzenia zakresu badanych rodzajów ucze nia się oraz tendencji do ich łączenia w bardziej niż dotychczas złożone systemy, miniona dekada zaznaczyła się jeszcze jednym bardzo istotnym zjawiskiem. Po raz pierwszy na szerszą skalę programy uczące się opuściły laboratoria wyższych uczelni oraz instytutów badawczych i trafiły do firm zajmujących się ich prawdzi wie praktycznymi wdrożeniami, zarabiających zresztą na tym prawdziwe pienią dze. W całej pełni zarysował się znacznie szerszy, niż wcześniej sądzono, aplika cyjny potencjał uczących się programów komputerowych oraz dojrzałość stojącej za nimi „technologii".
66
ROZDZIAŁ 1. UCZENIE SIĘ W UJĘCIU ALGORYTMICZNYM
Ze względu na ogólny i wprowadzający charakter tego rozdziału nie ma zbyt wielu pozycji literatury, które należałoby polecić jako lektury uzupełniające i po głębiające jego treść. Zbliżoną tematykę porusza przeglądowy artykuł Carbonella i Michalskiego [37], na którym niektóre fragmenty naszej dyskusji są luźno oparte, lecz naszkicowany tam obraz dziedziny uczenia się maszyn jest nie całkiem kom pletny, a z pewnością już nieco nieaktualny. Jednak książka, z której on pochodzi, stanowiąca pierwszy tom cyklu redagowanego przez Michalskiego i jego współ pracowników, jest wraz z jego kolejnymi tomami cennym źródłem wiadomości na temat wielu ważnych algorytmów uczenia się. W ostatnim tomie ukazał się arty kuł Michalskiego o inferencyjnej teorii uczenia się [149], o której w tym rozdziale wspominaliśmy. Mówiąc o książkach mamy dobrą okazję polecić konkurencję dla naszej książ ki — inne podręczniki dotyczące systemów uczących się. Chodzi przede wszyst kim o najbardziej wszechstronny i nowoczesny z dotychczas wydanych podręcz nik Mitchella [164], który jest podstawą wielu kursów maszynowego uczenia się na amerykańskich (i nie tylko) uniwersytetach. Nasza książka przyjmuje odmien ny sposób prezentacji i zakres materiału niż książka Mitchella, lecz przynajmniej do kilku rozdziałów można ją polecić jako materiał dodatkowy i zostanie to w od powiednich miejscach zaznaczone. Nieco bardziej elementarny charakter wydaje się mieć nowy podręcznik przygotowywany przez Nilssona [182], lecz on również prezentuje współczesny obraz dziedziny maszynowego uczenia się, czego oczy wiście nie da się powiedzieć o niekiedy bardzo dobrych, lecz częściowo zdezak tualizowanych książkach sprzed kilkunastu lat. Przykładem jest książka Weissa i Kulikowskiego [278], która stanowi bardzo pożyteczny tekst dotyczący niektó rych algorytmów uczenia się klasyfikacji, lecz prezentuje zdecydowanie niepełny obraz dziedziny uczenia się maszyn. Jako polską konkurencję dla niniejszej książki można wymienić dwie pozy cje: skromne objętościowo opracowanie Bolca i Zaremby [27] oraz podręcznik Mulawki [176]. Nie ujmując w niczym ich wartości, można powiedzieć z żalem, że nie jest to konkurencja groźna ze względu na ich odmienny zakres tematycz ny i charakter. Pierwsza z tych dwóch książek porusza tylko niektóre podejścia do maszynowego uczenia się i nie jest w związku z tym dostatecznie reprezen tatywna dla całego zróżnicowania tej dziedziny, a ich prezentacja w niej jest na ogół dość zwięzła. Oczywiście warto mimo to docenić, że w przypadku niektó rych z nich była do tej pory jedynym źródłem dostępnym w języku polskim. Druga książka dotyczy systemów eksperckich i o uczeniu się jest w niej mowa głównie w szczególnym kontekście, jako o godnym polecenia podejściu do automatyzacji akwizycji wiedzy dla takich systemów. Najlepszym źródłem informacji o aktualnym stanie badań nad uczeniem się maszyn są artykuły publikowane w poświęconych tej dziedzinie czasopismach na ukowych i w materiałach konferencji naukowych. Przede wszystkim należy wy-
1.9. UWAGI HISTORYCZNE I BIBLIOGRAFICZNE
67
mienić czasopismo Machinę Learning, a także niektóre pisma o szerszym zakresie tematycznym, na których łamach systemy uczące się zajmują znaczące miejsce: Artificial Intelligence, Journal ofArtificial Intelligence Research, IEEE Transactions of Pattern Analysis and Machinę Intelligence (PAMI) i IEEE Transactions on Systems, Man, and Cybernetics (SMC). Wśród konferencji największe znacze nie mają International Conference on Machinę Learning oraz European Conference on Machinę Learning, a także International Conference on Computational Learning Theory i główna konferencja poświęcona sztucznej inteligencji, Interna tional Joint Conference on Artificial Intelligence. Na internetowej stronie książki znajdują się adresy stron WWW poświęconych tym i innym czasopismom oraz konferencjom. Antologia [242] jest wyborem najbardziej znaczących artykułów naukowych poświęconych systemom uczącym się z okresu od zarania tej dziedzi ny do końca lat osiemdziesiątych. Lektura tekstów z tego zbioru może być uzupeł nieniem studiowania dowolnego podręcznika maszynowego uczenia się. Ze względu na rolę maszynowego uczenia się w sztucznej inteligencji można oczekiwać, że znajduje ono również istotne miejsce w książkach dotyczących tej szerszej dziedziny. Tak jest w istocie, chociaż jak zwykle najlepiej sięgać po nowe pozycje. Obecnie rolę standardowego podręcznika sztucznej inteligencji pełni im ponująca wszechstronnością i jednocześnie głębokością oraz przystępnością pre zentacji książka Russella i Norviga [232]. Będąc świetnym i dość zaawansowanym wprowadzeniem do sztucznej inteligencji, zawiera obszerne fragmenty poświęco ne uczeniu się. Autorzy, przedstawiając w tej pracy wiele algorytmów rozwiązu jących różne problemy związane z racjonalnym zachowaniem się, czynią ją kom pendium wiedzy o dotychczasowych osiągnięciach słabej sztucznej inteligencji, lecz nie podważają przez to śmiałych postulatów jej silnego nurtu, które są tam zresztą cytowane w ramach wprowadzającej dyskusji. Jest jednak zasadą, że o silnej sztucznej inteligencji piszą inni autorzy, w in ny sposób i w innych książkach. Mają one na ogół charakter nietechniczny, lecz nie ogranicza to ich wartości poznawczej. Szczególnie fascynujące są tu prace Hofstadtera, na czele ze słynną książką [100], znaną jako GEB. Jest on umiar kowanym rzecznikiem realizowalności (w zasadzie) programu silnej sztucznej in teligencji, przy wszelkich zastrzeżeniach dotyczących trudności pozostałych do pokonania na tym szlaku, w czym wydaje się zgadzać z wybitnym polskim wizjo nerem, Stanisławem Lemem, który na te tematy wypowiadał się ostatnio w zbiorze felietonów [131], gdzie komentuje między innymi wcześniejsze przepowiednie ze swojej Summy [130]. Radykalnie odmienne stanowisko prezentuje jeden z najwy bitniejszych współczesnych fizyków teoretycznych Roger Penrose, który w znanej książce [197] zwalcza silną sztuczną inteligencję, sięgając między innymi po nie doceniane wcześniej argumenty z zakresu fizyki kwantowej. Przeszedłszy od sztucznej inteligencji dofilozofiizakończymy przegląd litera tury do tego rozdziału propozycją kilku podręczników jej historii. Klasyczną i nie-
68
ROZDZIAŁ 1. UCZENIE SIĘ W UJĘCIU ALGORYTMICZNYM
zmiennie godną polecenia pozycją pozostaje książka Tatarkiewicza [261], z której zapewne będzie korzystać jeszcze wiele pokoleń czytelników. Bardziej szczegóło wa, lecz nieco trudniejsza w lekturze jest praca Copplestona [58]. Głośna książka Russella [229] uchodzi za nieobiektywną (zwłaszcza przez niedocenianie niektó rych prądów filozoficznych charakterystycznych dla Europy kontynentalnej), lecz jest napisana ze swadą, która czyni z niej lekturę bardzo zajmującą. W Polsce jest dostępna jego inna praca o historii filozofii [230], uboższa w tekst, lecz bo gatsza o ilustracje. Wszystkie te książki jednak w znikomym stopniu zajmują się myślą dwudziestowieczną. Jako ich uzupełnienie można więc polecić pracę Ayera [10], pomyślaną jako kontynuacja książki Russella. Wreszcie ze względu na rolę wnioskowania, zwłaszcza indukcyjnego, w maszynowym uczeniu się intere sująca jest z naszego punktu widzenia niewielka, lecz bardzo pouczająca książka Bocheńskiego [24], poświęcona metodologii nauk, w której znajduje się oryginal na klasyfikacja metod wnioskowania. Przegląd problemów filozoficznych związa nych ze sztuczną inteligencją, przede wszystkim zaś z kontrowersją wokół silnej sztucznej inteligencji, znajduje się w polecanym już podręczniku Russella i Norviga [232]. Czytelnikom bliżej zainteresowanym współczesną filozofią umysłu, której implikacje dla dyskusji wokół sztucznej inteligencji są największe, można polecić antologię [47] z bardzo zajmującymi artykułami największych współcze snych filozofów.
1.10
Ćwiczenia
Ćwiczenie 1.1. Wskaż, w których z poniższych sytuacji mamy (lub przynajmniej mo żemy mieć) do czynienia z uczeniem się przez program komputerowy w świetle su gerowanej w tym rozdziale definicji: 1) 2) 3) 4) 5) 6) 7) 8)
wprowadzanie informacji do bazy danych, znajdowanie zależności między atrybutami w bazie danych, odpowiadanie na zapytania do bazy danych, przewidywanie brakujących wartości atrybutów w bazie danych, kompilacja kodu źródłowego programu, automatyczne generowanie fragmentów programu, wprowadzanie wzorców przenoszenia wyrazów do procesora tekstu, generowanie wzorców przenoszenia wyrazów na podstawie przykładów prawi dłowo przeniesionych wyrazów.
Uzasadnij odpowiedź i przedyskutuj ewentualne niejednoznaczności wynikające z nie precyzyjnej definicji. Ćwiczenie 1.2. Scharakteryzuj następujące rodzaje uczenia się przez ludzi i zwierzęta za pomocą podanych w tym rozdziale kryteriów klasyfikacji uczenia się maszyn: 1) uczenie się rozwiązywania zadań z geometrii, 2) uczenie się języka obcego,
1.10. ĆWICZENIA
3) 4) 5) 6)
69
uczenie się kierowania samochodem, uczenie się rozpoznawania gatunków grzybów, uczenie psa aportowania, uczenie papugi naśladowania mowy.
Ćwiczenie 1.3. Rozważ możliwe zastosowania systemów uczących się w następujących dziedzinach: 1) inwestycje kapitałowe, 2) handel, 3) marketing, 4) ubezpieczenia, 5) badania socjologiczne, 6) edukacja, 7) telekomunikacja, 8) transport publiczny, 9) rozrywka. Jakich rodzajów uczenia się wymagałyby te zastosowania? Ćwiczenie 1.4. Przedyskutuj znaczenie, jakie może mieć maszynowe uczenie się dla rozwoju sztucznej inteligencji w jej „słabym" i „silnym" rozumieniu, zakładając, że cele silnej sztucznej inteligencji są zasadniczo możliwe do realizacji w dostatecznie odległej przyszłości.
Rozdział 2
Uczenie się indukcyjne So, so you think you can tell Heavenfwm heli, Blue skysfrom pain1 A więc cały dowcip w tym, aby zbudować selektor, który będzie wybierał tylko to, co w bieganinie atomów sensowne2.
Ten rozdział jest poświęcony pozyskiwaniu wiedzy deklaratywnej w drodze wnio skowania indukcyjnego. Jest on wstępem do kilku kolejnych rozdziałów, dotyczą cych praktycznych algorytmów indukcyjnego uczenia się. W ramach tego przygo towania przedyskutujemy nieformalnie istotę indukcyjnych mechanizmów wnio skowania, prowadzących do znajdowania hipotez najlepiej wyjaśniających i uogól niających obserwowane fakty, które w przypadku indukcyjnych metod uczenia się są nazywane przykładami. Następnie wskażemy trzy najczęściej spotykane odmia ny zadania uczenia się na podstawie przykładów: uczenie się pojęć, tworzenie po jęć i uczenie się aproksymacji funkcji. Wprowadzona zostanie terminologia i no tacja przydatna do omawiania tych form indukcyjnego uczenia się z dostateczną ścisłością. Pierwszym zastosowaniem wprowadzonych definicji i oznaczeń stanie się prezentacja najważniejszych wyników obliczeniowej teorii uczenia się, przede wszystkim dotyczących matematycznego modelu uczenia się pojęć na podstawie przykładów znanego jako model PAC. Pokażemy, jak w ramach tego modelu moż na w pewnych przypadkach uzyskać gwarancje dotyczące prawdopodobieństwa zakończenia procesu uczenia się sukcesem. Ilustracją niektórych elementów teorii i innych podstawowych zagadnień związanych z indukcyjnym uczeniem się bę dzie algorytm uczenia się przestrzeni wersji, czyli zbiorów hipotez spójnych z do starczonymi uczniowi przykładami. Algorytm ten ma dość ograniczone znaczenie praktyczne, lecz jego omówienie zapewni dobre przejście między tym w większo ści teoretycznym rozdziałem a rozdziałami następnymi poświęconymi praktycz nym algorytmom. Nasze rozważania będą przeplatane wieloma bardzo prostymi i w związku z tym mało realnymi przykładami, które jednak uczynią ten nieco abstrakcyjny rozdział bardziej konkretnym. 1
Wish you were here (Pink Floyd: Wish You Werę Herę). Wyprawa szósta, czyli jak Trurl i Klapaucjusz demona drugiego rodzaju stworzyli, aby zbójcę Gębona pokonać. 2
2.1. WNIOSKOWANIE INDUKCYJNE
71
2.1 Wnioskowanie indukcyjne Prezentując w poprzednim rozdziale zarys inferencyjnej teorii uczenia się, wnio skowanie indukcyjne określiliśmy jako stosowanie „wstecz" następującej reguły logicznej konsekwencji: PAW
t=lf,
(2.1)
w której W oznacza być może pustą wiedzę wrodzoną ucznia, K — otrzymaną przez niego informację trenującą, a P — wiedzę generowaną w wyniku uczenia się. Tu będzie nam wygodniej pisać T zamiast K w celu oznaczenia informacji trenującej i przyjąć, że uczeń w wyniku wnioskowania indukcyjnego otrzymuje pewną hipotezę h, przez co powyższe wyrażenie przyjmuje postać hAW
\=T.
(2.2)
Stwierdzamy zatem, że informacja trenująca uzyskana przez ucznia jest logicz ną konsekwencją jego wiedzy wrodzonej i wygenerowanej przez niego hipotezy. Inaczej mówiąc, indukcyjna hipoteza wraz z wiedzą wrodzoną ucznia wyjaśnia otrzymaną przez niego informację trenującą. Oczywiście relacja logicznej konse kwencji może zachodzić tylko wówczas, gdy wiedza wrodzona, informacja trenu jąca i hipoteza są poprawne. W praktyce często trzeba od tego założenia odstąpić i zgodzić się na przybliżoną konsekwencję. Znalezienie poprawnej hipotezy polega w świetle powyższego na wykryciu w danych trenujących pewnych ogólnych prawidłowości, które w połączeniu z wie dzą wrodzoną dobrze by te dane tłumaczyły. Zbliża się to do popularnego rozu mienia wnioskowania indukcyjnego jako przechodzenia od faktów i obserwacji jednostkowych do ich uogólnień. W przypadku uczenia się te fakty i obserwacje są nazywane przykładami trenującymi, a dostarczana uczniowi informacja trenu jąca to zbiór przykładów trenujących. Hipoteza, którą uczeń ma na jej podstawie znaleźć, jako uogólnienie przykładów trenujących, ma jednak na celu nie tylko ich poprawne (czy też w przybliżeniu poprawne) wyjaśnianie, lecz przede wszystkim predykcję, a więc przewidywanie nowych faktów i obserwacji. Aby móc więcej powiedzieć o sposobie używania hipotez, musimy wyróżnić trzy podstawowe od miany indukcyjnego uczenia się: uczenie się pojęć, czyli sposobu klasyfikowania obiektów, tworzenie pojęć, czyli grupowanie obiektów i opisywanie grup, oraz uczenie się aproksymacji, czyli odwzorowania obiektów na liczby rzeczywiste.
2.2 Główne rodzaje indukcyjnego uczenia się Zadanie indukcyjnego uczenia się może przybierać różne formy, zależne przede wszystkim od charakteru wiedzy, która ma być w jego wyniku pozyskiwana, oraz
72
ROZDZIAŁ 2. UCZENIE SIĘ INDUKCYJNE
postaci dostarczanej uczniowi informacji trenującej. Przedstawimy trzy najważ niejsze z nich, na których koncentruje się większa część prowadzonych badań teo retycznych i praktycznych oraz które znajdują najwięcej zastosowań. Ponieważ dalsza część tego rozdziału jest poświęcona teorii, a kilka kolejnych rozdziałów praktycznym algorytmom indukcyjnego uczenia się, pożyteczne będzie także ze branie w uporządkowany sposób terminologii, jaką będziemy się posługiwać, oraz konwencji notacyjnych, które będziemy stosować. Nie jest to wykaz wyczerpujący i kilkakrotnie będziemy musieli do niego coś dodać, gdyż nie wszystkie terminy i oznaczenia można wprowadzić w oderwaniu od algorytmów uczenia się, do któ rych się stosują. Zdecydowanie najwięcej uwagi poświęcimy uczeniu się pojęć ze względu na jego podstawową rolę zarówno w teorii, jak i praktyce maszynowego uczenia się. Wynika to także z tego, że prezentacja najważniejszych algorytmów uczenia się pojęć wypełni trzy kolejne rozdziały, podczas gdy na omawianie metod stosowanych do pozostałych dwóch głównych rodzajów indukcyjnego uczenia się poświęcimy po jednym rozdziale i tam będziemy się mogli zająć nimi dokładniej. W każdym z rodzajów indukcyjnego uczenia się, o których mówimy, pozyski wana przez ucznia wiedza ma charakter pewnego rodzaju odwzorowania otrzymy wanej przez niego informacji wejściowej na pewien zbiór wartości wyjściowych. Informacją wejściową są opisy obiektów pewnej dziedziny. Dyskusję rozpoczyna my zatem od określenia, jaką postać takie opisy mogą przyjmować. Dziedzina. Dziedziną będziemy nazywać oznaczany przez X zbiór obiektów, których dotyczyć ma wiedza nabywana przez ucznia. Mogą to być przedmioty, osoby, wydarzenia, sytuacje, stany rzeczy itd. — cokolwiek stanowi argumenty odwzorowania, którego nauczyć ma się uczeń. Przykłady. kładem.
Każdy obiekt, element dziedziny x G X, będziemy nazywać przy
Atrybuty. Będziemy zakładać, że przykłady są opisywane za pomocą atrybutów. Atrybutem będziemy nazywać dowolną funkcję określoną na dziedzinie. Przyj miemy, że opis każdego przykładu x G X składa się z wartości n ^ 1 atrybutów, a\ : X \-^ Ai, 0,2 '• X ^ A2,. • •, an : X H» An. Zbiór wszystkich określonych na rozważanej dziedzinie atrybutów będziemy oznaczać przez A = {ai, a 2 , . . . , an} i nazywać zestawem lub przestrzenią atrybutów. W praktyce czasem utożsamia się przykład x z wektorem wartości jego atrybutów (ai(x)} a2(x)y..., an(x)), czyli przykładem nazywa się dowolny element iloczynu kartezjańskiego przeciwdziedzin atrybutów A\ x A Jft i a{u), dla różnych u. Wy znaczenie us na tej podstawie jest proste dzięki symetrii krzywej normalnej, która oznacza, że Pr(|Ł/| e. Będziemy dążyć do tego, aby także w tym przypadku ograniczyć błąd rzeczywisty hipotezy znajdowanej przez algorytm najciaśniejszego dopasowania. Weźmy pod uwagę jeden z boków prostokąta Rc i rozważmy przesuwanie go w kierunku środka prostokąta tak długo, aż prawdopodobieństwo „trafienia" w obszar przesunięcia punktem wylosowanym za pomocą rozkładu O wyniesie | . Ilustruje to rys. 2.3b. W ten sam sposób możemy postąpić z pozostałymi bokami prostokąta, co widać na rys. 2.3c. Prawdopodobieństwo trafienia losowo wybranym zgodnie z roz kładem O, przykładem w „wykrojony" w ten sposób „pas" (niezakreskowany obszar na rysunku) wynosi nie więcej niż e. Aby również błąd hipotezy h nie przekraczał e, wystarczy zapewnić, że różnica Rc — Rh jest podzbiorem tego „pasa". Stanie się tak, jak pokazuje rys. 2.3d, jeśli każdy z czterech bocznych obszarów składających się na ten „pas" zawiera przynajmniej po jednym przykładzie trenującym ze zbioru T (oczywiście mogą to być tylko przykłady pozytywne). Prawdopodobieństwo tego, że tak nie jest, czyli że przynajmniej jeden z czterech bocznych podprostokątów nie jest „trafiony" przez żaden przykład trenujący, wynosi nie więcej niż 4(1 — f )'T'» i na mo cy znanej nierówności 1-f-a ^ e a l 6 , w której przyjmujemy a = —|, jest ograniczone przez 4e~l r l^. Ostatnie wyrażenie można z kolei ograniczyć przez 5, jeśli
|T|>-(ln4 + l n k 6
O
Rozważana przez nas klasa pojęć jest zatem (właściwie) PAC-nauczalna, gdyż algo rytm najciaśniejszego dopasowania znajduje z dostatecznie dużym prawdopodobień stwem hipotezę o dostatecznie małym błędzie rzeczywistym, pod warunkiem dostar czenia mu dostatecznie wielu przykładów trenujących. Ponieważ liczba wymaganych przykładów zależy liniowo od ^ i logarytmicznie od |-, a czas działania podanego al gorytmu zależy wielomianowo od liczby przykładów i rozmiaru pojęcia docelowego, więc jest to algorytm efektywnego PAC-uczenia się. 2.3.4
Wymagania dotyczące liczby przykładów
Powyższy przykład demonstruje, w jaki sposób w ramach modelu PAC możemy ograniczyć od góry wymaganą liczbę przykładów trenujących do nauczenia się dowolnego pojęcia pewnej ustalonej klasy. Uzyskaliśmy w nim warunek wystar16
Zachodzi ona dla dowolnego a € [0,1], przy czym równość występuje tylko dla a = 0.
103
2.3. ALGORYTMICZNA TEORIA INDUKCJI
b)
a) 02(2)1
a2(x)i
ai(x)
ai(rr)
d) o 2 (x)
c) a2{x)
aiW
fli(ar)
Rys. 2.3. PAC-nauczalność prostokątów na płaszczyźnie czający PAC-uczenia się ze względu na rozmiar zbioru trenującego dla interesują cego nas pojęcia. Zobaczymy obecnie, jak można podobne rezultaty osiągnąć dla dowolnych klas pojęć i przestrzeni hipotez. Spójne algorytmy uczenia się Dyskusję rozpoczniemy od rozważania spójnych algorytmów uczenia się, czyli al gorytmów, które zawsze generują hipotezę spójną z pojęciem docelowym na zbio rze trenującym, na podstawie którego hipoteza ta została wybrana. Spójna hipoteza klasyfikuje przykłady trenujące tak samo jak pojęcie docelowe, czyli osiąga na tym zbiorze błąd próbki równy 0. Precyzuje to poniższa definicja.
•
DEFINICJA 2.5. Hipoteza h jest spójna z pojęciem c na zbiorze P C X, jeśli
(Vx G P) h{x) = c(x).
przykładów
(2 Al)
0
104
ROZDZIAŁ 2. UCZENIE SIĘ INDUKCYJNE
Szczególnie często będziemy mówić o spójności lub braku spójności hipote zy na zbiorze trenującym, na podstawie którego została wygenerowana przez pe wien algorytm uczenia się. Jest ona wówczas weryfikowana na podstawie etykiet, którymi są opatrzone przykłady trenujące. Gdy występują w nich przekłamania, nie można zweryfikować spójności hipotezy z pojęciem docelowym, lecz tylko z „przekłamanym" pojęciem, dla którego etykiety faktycznie występują w zbiorze trenującym. Będziemy wówczas mówić raczej o spójności hipotezy ze zbiorem przykładów etykietowanych, a nie o spójności z pojęciem docelowym na zbiorze przykładów. Oczywiście dla zbiorów przykładów różnych od całej dziedziny w przestrzeni hipotez H może być wiele hipotez spójnych z pojęciem docelowym c, jest zaś na pewno co najmniej jedna taka hipoteza pod warunkiem, że c E EL Zbiór wszyst kich hipotez spójnych z pojęciem docelowym na pewnym zbiorze przykładów jest nazywany przestrzenią wersji tego pojęcia. Dokładnie definiujemy ją poniżej. • DEFINICJA 2.6. Przestrzenią wersji pojęcia c ze względu na przestrzeń hipotez HI / zbiór przykładów P C X będziemy nazywać zbiór wszystkich hipotez przestrzeni H, które są spójne z pojęciem c na zbiorze P: V S | ) P - {h E M | (Vx E P) h{x) - c(x)}.
(2.18)
0 Korzystając z tej definicji możemy uściślić definicję spójnego algorytmu ucze nia się następująco. • DEFINICJA 2.7. Każdy algorytm uczenia się pojęć, który dla dowolnego poję cia docelowego c używając przestrzeni hipotez H generuje na podstawie zbioru trenującego T hipotezę h E VSą T (spójną z pojęciem docelowym na zbiorze trenującym) albo zawodzi, jeśli V S | — 0, będziemy nazywać spójnym algo rytmem uczenia się. 0 Występujące w tej definicji zastrzeżenie, że algorytm zawodzi17 w przypadku pustej przestrzeni wersji, jest konieczne, o ile nie założymy, że pojęcie docelowe należy do jego przestrzeni hipotez. Wprawdzie w poniższej dyskusji będziemy to założenie czynić, rozważając tylko sytuacje, gdy algorytmy kończą działanie z sukcesem, lecz nie zwalnia nas to od troski o pełność definicji, która nie powinna zależeć od przestrzeni hipotez. Ograniczając rozważania do spójnych algorytmów uczenia się, które nie zawo dzą i generują hipotezę z odpowiedniej przestrzeni wersji względem używanego 17
Czyli kończy działanie sygnalizując niepowodzenie i nie dając w wyniku żadnej hipotezy.
2.3. ALGORYTMICZNA TEORIA INDUKCJI
105
zbioru trenującego, możemy zapytać o błąd takiej hipotezy. W przypadku błędu próbki dla h E V S | T mamy oczywiście e^(h) = 0. Interesuje nas tu jednak błąd rzeczywisty, o którym jest mowa w warunkach PAC-nauczalności. Ponieważ jedy ne, co zakładamy o spójnych algorytmach, jest to, że generują hipotezę należącą do przestrzeni wersji, pożądane jest ograniczenie błędu rzeczywistego wszystkich hipotez z tej przestrzeni. Jeśli dla każdej z nich błąd ten nie przekracza pewnej stałej wartości e > 0, to o takiej przestrzeni wersji mówi się, że jest e-wyczerpana. Formułuje to dokładnie następująca definicja. • DEFINICJA 2.8. Przestrzeń wersji VSą P jest e-wyczerpana ze względu na po jęcie c i rozkład prawdopodobieństwa fi na X, jeśli (VfcGVS|;p)e&(/iKe.
(2.19)
0 Interesuje nas obecnie, kiedy i z jakim prawdopodobieństwem można stwier dzić, że przestrzeń wersji jest e-wyczerpana. Zauważmy najpierw, że prawdopo dobieństwo tego, że dowolna hipoteza h o błędzie rzeczywistym względem roz kładu prawdopodobieństwa fi przekraczającym e jest spójna na pewnym zbiorze przykładów P wylosowanych zgodnie z tym samym rozkładem, jest mniejsze niż (1 — e)lpL Wartość ta jest równa prawdopodobieństwu wybrania |P| przykładów poprawnie klasyfikowanych przez hipotezę o błędzie rzeczywistym e, gdy każdy losowo wybrany przykład jest klasyfikowany poprawnie z prawdopodobieństwem 1 — e. Przestrzeń wersji nie jest e-wyczerpana, jeśli błąd chociaż jednej hipote zy z tej przestrzeni przekracza e, a ponieważ przestrzeń wersji nie zawiera wię cej hipotez niż cała przestrzeń hipotez, więc prawdopodobieństwo takiej sytuacji jest mniejsze niż |M| (1 — e)' p l, oczywiście pod warunkiem, że przestrzeń hipotez jest skończona, co musimy w tym miejscu założyć. Jeśli teraz znów skorzystamy z nierówności 1 + a ^ ea (przyjmując a = — e), możemy ograniczyć od gó ry prawdopodobieństwo tego, że przestrzeń wersji VSfj P nie jest e-wyczerpana, przez |H| e~elpL Spójny algorytm uczenia się wykorzystujący zbiór trenujący T jest zatem algorytmem PAC-uczenia się (wygeneruje hipotezę o błędzie rzeczy wistym nie przekraczającym e z prawdopodobieństwem co najmniej 1 — S) pod warunkiem: |H| e" e | T | ^ ecT(h) + e) < e " 2 ^ 2 ,
(2.24)
co ogranicza prawdopodobieństwo tego, że dowolnie wybrana hipoteza ma rze czywisty błąd większy o ponad e od jej błędu próbki na zbiorze trenującym. Za tem prawdopodobieństwo tego, że najlepsza ze względu na błąd próbki na zbiorze trenującym hipoteza znaleziona przez ucznia będzie miała taką właściwość, nie przekracza |H| e~ 2 l 2 ' e . Aby zgodnie z naszym zwyczajem prawdopodobieństwo to ograniczyć od góry przez 5, wymagana jest następująca liczność zbioru trenu jącego: |T|^(ln|H|+ln^),
(2.25)
co jest rozszerzeniem wyniku uzyskanego poprzednio dla spójnych algorytmów. Zauważmy jednak, że tym razem żadna liczba przykładów trenujących nie gwa rantuje PAC-uczenia się. Mamy jedynie gwarancję, że z dowolnie dużym praw dopodobieństwem uzyskamy hipotezę, której błąd rzeczywisty będzie dowolnie mało różnić się od jej błędu próbki na zbiorze trenującym. Możemy zapisać ten fakt w postaci twierdzenia.
•
TWIERDZENIE 2.2. Dla dowolnej dziedziny X, określonej na niej klasy pojęć C / rozkładu prawdopodobieństwa fi oraz dowolnych 0i{x) E At\ selektor pusty: warunek nie spełniony dla przykładu x przez żadną wartość atry butu a-i z jego dziedziny (selektor taki będziemy zapisywać jako symbol 0). Oczywiście selektor dysjunkcyjny, zawierający wszystkie wartości z przeciwdzie dziny odpowiedniego atrybutu, staje się selektorem uniwersalnym. Ten ostatni mo żemy więc potraktować jako szczególny przypadek selektora dysjunkcyjnego, za pisywany w zwięzły sposób. Z kolei selektor pusty jest potrzebny głównie dla wygody definiowania i analizowania niektórych operacji, jakie mogą być przepro wadzane na selektorach i kompleksach. W trakcie uczenia się raczej się on nie przydaje, gdyż hipoteza nie pokrywająca żadnych przykładów nie jest zazwyczaj użyteczna. Kompleks będziemy zapisywać jako listę oddzielanych przecinkami selekto rów ujętą w nawiasy trójkątne. Przykładowo, jeśli na dziedzinie są określone atry buty a\, a2, a;*, a4, przy czym każdy atrybut ai ma zbiór wartości {vn,vl2: ^ 3 , ^ 4 } dla i — 1,2, 3,4, to kompleks (v 12, ?, ^32 V ^33, ^41 V ^43 V ^44) pokrywa każ dy przykład x, dla którego a\{x) = v\2, ^2(2) ma dowolną wartość, a^(x) ma wartość i?32 lub wartość ^33 oraz a±{x) ma jedną z wartości ^41,^43,^44. Każ dy kompleks zawierający przynajmniej jeden selektor pusty nie pokrywa żadnego przykładu, reprezentuje więc tę samą hipotezę i może być uważany za tożsamy z kompleksem zawierającym wyłącznie selektory puste. Powtórzmy, że hipoteza klasyfikuje jako pozytywne te i tylko te przykłady, dla których wartości atrybu tów spełniają warunki opisane przez kompleks, za pomocą którego hipoteza ta jest reprezentowana. Inaczej mówiąc, hipoteza pokrywa wszystkie te i tylko te przy kłady, które pokrywa reprezentujący ją kompleks. Przykład 2.31 (Figury geometryczne). Dla dziedziny figur geometrycznych z przykładu 2.3 weźmy pod uwagę następujące hipotezy, reprezentowane za porno-
120
ROZDZIAŁ 2. UCZENIE SIĘ INDUKCYJNE
cą kompleksów (bez selektorów dysjunkcyjnych): hi = (?, czerwony, koło), ^2 = (?, czerwony,?), h3 = (duży, czerwony,?). Dla tych hipotez możemy stwierdzić: • h\ jest bardziej szczegółowa niż /i 2 , • /i 3 jest bardziej szczegółowa niż /12, • /ii i /i 3 nie są porównywalne za pomocą relacji większej szczegółowości.
2.4.3
Reprezentacja przestrzeni wersji
Istnienie częściowego porządku ze względu na ogólność/szczegółowość w prze strzeni hipotez umożliwia zwarte reprezentowanie przestrzeni wersji za pomocą dwóch zbiorów hipotez, zwyczajowo oznaczanych przez S i G, stanowiących od powiednio jej szczegółowe i ogólne ograniczenie. Ograniczenia takie można zresz tą określić dla dowolnego zbioru hipotez. Ograniczenie szczegółowe zbioru hi potez to jego podzbiór złożony z takich hipotez, dla których w tym zbiorze nie istnieje żadna hipoteza bardziej od którejkolwiek z nich szczegółowa. Odpowied nio ograniczenie ogólne stanowi podzbiór hipotez, dla których nie istnieją hipote zy bardziej od nich ogólne. Definicje szczegółowego i ogólnego ograniczenia dla przestrzeni wersji precyzujemy poniżej.
•
DEFINICJA 2.15. Szczegółowym ograniczeniem przestrzeni wersji VS§jp po jęcia docelowego c względem przestrzeni hipotez H i zbioru przykładów P jest zbiór S^P wszystkich hipotez należących do tej przestrzeni wersji, dla których nie istnieją w niej hipotezy bardziej od nich szczegółowe:
S^P
= {h e V S ^ P | ^(3ti
e VScm,P)ti
-< h}.
(2.35)
0 • DEFINICJA 2.16. Ogólnym ograniczeniem przestrzeni wersji VS|[p pojęcia docelowego c względem przestrzeni hipotez H i zbioru przykładów P jest zbiór ( ¾ P wszystkich hipotez należących do tej przestrzeni wersji, dla których nie istnieją w niej hipotezy bardziej od nich ogólne: G^P
= {he
V S | ) P | ^(3ti
6 VS^P)h'
y h}.
(2.36)
0
2.4. UCZENIE SIĘ PRZESTRZENI WERSJI
121
Pewność, że zdefiniowane w powyższy sposób szczegółowe i ogólne ograni czenia przestrzeni wersji dają nam to, na czym nam zależy — możliwość reprezen towania przestrzeni wersji — wynika z przedstawionego niżej twierdzenia. Mówi ono o tym, że przestrzeń wersji jest zbiorem tych i tylko tych hipotez, które al bo należą do jednego z tych ograniczeń, albo są bardziej ogólne niż przynajmniej jedna hipoteza z ograniczenia szczegółowego, oraz bardziej szczegółowe niż przy najmniej jedna hipoteza z ograniczenia ogólnego. •
T W I E R D Z E N I E 2.6. SfaP i G^p są odpowiednio szczegółowym i ogólnym ograniczeniem przestrzeni wersji VS§^p wtedy i tylko wtedy, gdy dla każdej hipotezy h G VS^P zachodzą jednocześnie oba następujące warunki: 1) h G G§i P lub hjest bardziej szczegółowa niż pewna hipoteza należąca do
2) h G 5¾ p lub hjest bardziej ogólna niż pewna hipoteza należąca do
S^P.
: hs oraz h < hg. Jeśli h G S, to mamy hs — h. Jeśli h $ S^P, to z definicji ograniczenia szczegółowego wynika, że istnieje pewna hipoteza /ii G VSJ^p taka, że h\ < h. Ponowniejeśli h\ G Są P , to mamy h$ = hi; w przeciwnym przypadku istnieje hi G VS^p, dla której h>i < h\ < h. Otrzymujemy w ten sposób ciąg coraz bardziej szczegółowych hipotez, który na pewno jest skończony23. Ostatnia hipoteza z tego ciągu, dla której nie istnieje już w przestrzeni wersji hipoteza bardziej od niej szczegółowa, na pewno jest elementem zbioru Sfap i ona jest właśnie puszukiwaną hipotezą hs. Rozumowanie dla hg przebiega analogicznie. Obecnie przejdziemy do pokazania, że jeśli istnieją hipotezy hs G SfaP i hg G G^P takie, że h >z hs oraz h < hgt to h G VS^p. Jeśli h = hs lub h — hgy to teza jest oczywista, załóżmy więc, że hs < h < hg. Weźmy pod uwagę zbiory przykładów z dziedziny klasyfikowanych jako pozytywne przez hipotezy hs, h i hg, które oznaczymy odpowiednio przez Xh% Xh i Xhg. Z definicji relacji większej szczegółowości wynika, że Xh* C Xh C Xh°. Stąd wynika, że P fi Xh* C P n Xh C P n Xh°. Ponieważ zaś hs i hg jako elementy przestrzeni wersji są spójne z pojęciem docelowym na zbiorze P, więc P O Xh* = PH Xh°. To z kolei pociąga za sobą P n Xh* ^ P H Xh = P H Xh*, czyli także //Jest elementem przestrzeni wersji. Ta obserwacja kończy dowód. • 2:1
Jest to prawdą dla skończonych dziedzin lub skończonych przestrzeni hipotez. Przypadek, gdy i dziedzina, i przestrzeń hipotez są nieskończone, wyłączamy z tej argumentacji.
122
ROZDZIAŁ 2. UCZENIE SIĘ INDUKCYJNE
Zauważmy, że w drugiej części dowodu wykorzystuje się fakt, że zbiory S^P i ( ¾ p ograniczają przestrzeń wersji. Nie da się tego rozumowania powtórzyć dla ograniczeń dowolnego zbioru hipotez. 2.4.4
Algorytm eliminacji kandydatów
Konstrukcja przestrzeni wersji dla danej przestrzeni hipotez i zbioru przykładów może zostać przeprowadzona za pomocą algorytmu eliminacji kandydatów, do którego będziemy się także odwoływać korzystając z nazwy CAE 24 . Algorytm ten zaczyna działanie od przestrzeni wersji nieograniczonej, czyli od całej przestrzeni hipotez, a następnie przetwarza pojedynczo przykłady trenujące oraz modyfikuje jej szczegółowe i ogólne ograniczenia w ten sposób, aby wyznaczany przez nie zbiór hipotez zawierał wyłącznie hipotezy spójne z dotychczas uwzględnionymi przykładami. Szczegóły tego postępowania przedstawia algorytm 2.1. Zakłada się tam, że dany jest zbiór trenujący T pojęcia docelowego c i należy skonstruować przestrzeń wersji V S | j i T , przy czym KI jest przestrzenią hipotez ucznia. funkcja cae(T) argumenty wejściowe: T — zbiór trenujący dla pojęcia c; zwraca: S^ r, G^ T — ograniczenia przestrzeni wersji V S ^ T ; 1: inicjuj Ś i G odpowiednio jako zbiory maksymalnie szczegółowych maksymalnie ogólnych hipotez w H; 2 dla wszystkich x £ T wykonaj 3 jeśli c(x) — 1 to 4 G -=G-{h£ G\ h{x) - 0 } ; 5 dla wszystkich h £ S nie pokrywających x wykonaj 6 S :— S — {h} U generalizcicja(h,x,G)\ 7 koniec dla S-S~{heS\ (3hł eS)hyh>}; 8 9 w przeciwnym przypadku 10 S:=S-{heS\ h{x) = 1}; 11 dla wszystkich h G G pokrywających x wykonaj 12 G :— G — {h} U specjalizacjach, x, S)\ 13 koniec dla 14 G:=G-{heG\ {3ti G G ) h,CA i c$, podanymi w tabl. 2.1. Założymy, że przestrzeń Uskłada się z hipotez re prezentowanych za pomocą kompleksów, które mogą zawierać selektory pojedyncze, uniwersalne lub puste.
124
ROZDZIAŁ 2. UCZENIE SIĘ INDUKCYJNE
Kolejne etapy konstruowania przestrzeni wersji dla zbioru 7\ ilustruje rys. 2.4. Strzałkami połączono hipotezy porównywalne ze względu na ogólność, w kierunku od hipotezy bardziej ogólnej do bardziej szczegółowej. 1. Zbiory S i G są inicjowane: 5 = {(0,0,0)}, G = {