Podejście Co-Training w maszynowym uczeniu się
Transkrypt
Podejście Co-Training w maszynowym uczeniu się
Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki Michał Kijowski Nr albumu: 262654 Podejście Co-Training w maszynowym uczeniu się Praca licencjacka na kierunku MATEMATYKA Praca wykonana pod kierunkiem dra Dominika Ślężaka Instytut Matematyki Zakład Logiki Matematycznej Sierpień 2010 Oświadczenie kierującego pracą Potwierdzam, że niniejsza praca została przygotowana pod moim kierunkiem i kwalifikuje się do przedstawienia jej w postępowaniu o nadanie tytułu zawodowego. Data Podpis kierującego pracą Oświadczenie autora pracy Świadom odpowiedzialności prawnej oświadczam, że niniejsza praca dyplomowa została napisana przeze mnie samodzielnie i nie zawiera treści uzyskanych w sposób niezgodny z obowiązującymi przepisami. Oświadczam również, że przedstawiona praca nie była wcześniej przedmiotem procedur związanych z uzyskaniem tytułu zawodowego w wyższej uczelni. Oświadczam ponadto, że niniejsza wersja pracy jest identyczna z załączoną wersją elektroniczną. Data Podpis autora pracy Streszczenie W niniejszej pracy zanalizowany zostanie model Co-Training używany w dziedzinie uczenia maszynowego. Model ten został wprowadzony w 1998 roku przez Avrima Bluma i Toma Mitchella w artykule Combining Labeled and Unlabeled Data with Co-Training [4]. W pracy zostaną najpierw wprowadzone podstawowe pojęcia dotyczące uczenia maszynowego oraz uczenia prawdopodobnie aproksymacyjnie poprawnego. Oprócz tego sformułowane i udowodnione zostaną najważniejsze twierdzenia obydwu działów. Dowody przedstawione w pracy zostały przeze mnie gruntownie przeanalizowane, a dodatkowo większość z nich rozszerzyłem, gdyż w pracach źródłowych dowody te były często bardzo skrótowe. Następnie model Co-Training zostanie wprowadzony i zanalizowany zarówno od strony teoretycznej jak i praktycznej. Od strony teoretycznej wykazana zostanie poprawność modelu oraz jego potencjalna skuteczność, natomiast od strony praktycznej zostanie zbadana efektywność modelu w zastosowaniach dotyczących rzeczywistych danych. W ostatnim rozdziale przedstawiony zostanie model rozszerzający Co-Training na przypadek klasyfikacji wieloklasowej. Na końcu zostaną podsumowane informacje dotyczące modelu Co-Training. Słowa kluczowe Dane nieetykietowane, Semi-Supervised Learning, Uczenie częściowo nadzorowane, Co-Training Dziedzina pracy (kody wg programu Socrates-Erasmus) 11.1 Matematyka Klasyfikacja tematyczna 68T05. Learning and adaptive systems 68Q32. Computational learning theory Tytuł pracy w języku angielskim Co-Training approach in machine learning Spis treści Wprowadzenie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1. Teoria uczenia maszynowego . . . . . . . . . . 1.1. Wprowadzenie do teorii uczenia maszynowego 1.2. Algorytmy oraz wyuczalność w sensie PAC . 1.2.1. Algorytmy PAC . . . . . . . . . . . . 1.2.2. Wyuczalność klasy pojęć . . . . . . . 1.2.3. Losowy szum klasyfikacyjny . . . . . . . . . . . . 7 7 8 8 9 12 2. Uczenie częściowo nadzorowane . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3. Co-Training . . . . . . . . . . . . . . . . . . 3.1. Formalny model Co-Training . . . . . . 3.1.1. Reprezentacja grafowa . . . . . . 3.2. Ujęcie Co-Training w ramy modelu PAC 3.3. Opis klasycznego algorytmu Co-Training . . . . . 15 15 16 17 19 4. Analiza praktycznych zastosowań modelu Co-Training . . . . . . . . . . . . 21 5. Co-Training dla przypadku klasyfikacji wieloklasowej . . . . . . . . . . . . 25 Podsumowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Bibliografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . . . . . Wprowadzenie Uczenie maszynowe (z angielskiego machine learning) jest młodą i szybko rozwijającą się interdyscyplinarną dziedziną łączącą wiele odmiennych zagadnień, głównie z obszarów matematyki (ze szczególnym naciskiem na statystykę i rachunek prawdopodobieństwa) oraz informatyki (głownie zagadnienia związane ze sztuczną inteligencją). Szczególny nacisk kładziony jest na aspekt praktyczny, dzięki któremu można budować systemy potrafiące zdobywać nową wiedzę i doskonalić swoje działanie poprzez analizę zgromadzonego przez nie doświadczenia reprezentowanego przez dane. Co więcej systemy te często są ostatnim ogniwem w łańcuchu komunikacji pomiędzy komputerem a człowiekiem i w związku z tym powinny produkować wyniki jak najbardziej zrozumiałe i przejrzyste dla przeciętnego użytkownika. W obecnych czasach coraz łatwiejsze stało się gromadzenie ogromnych ilości surowych danych. Jednocześnie etykietowanie tych danych jest wciąż kosztowne, przez co coraz większym zainteresowaniem cieszą się metody pozwalające uzyskiwać chociaż częściową wiedzę z danych wcześniej nieetykietowanych. W ten sposób narodziły się dwa działy uczenia maszynowego: uczenie nienadzorowane (z angielskiego unsupervised learning) oraz uczenie częściowo nadzorowane (z angielskiego semi-supervised learning). Pierwszy z nich wykorzystuje wyłącznie dane nieetykietowane, natomiast drugi korzysta zarówno z danych z etykietami jak i bez. Model Co-Training jest jednym z ważniejszych modeli wykorzystywanych w uczeniu częściowo nadzorowanym. Model ten został zaprezentowany po raz pierwszy przez Avrim’a Blum’a oraz Tom’a Mitchell’a w 1998 roku w pracy pod tytułem Combining Labeled and Unlabeled Data with Co-Training [4]. Praca ta otrzymała w 2008 roku nagrodę dla najlepszej pracy ostatniego dziesięciolecia na konferencji 25th Annual International Conference on Machine Learning. To dobrze obrazuje, jak ważna jest to metoda oraz jak bardzo wpłynęła na całą dziedzinę uczenia maszynowego. W niniejszej pracy zebrałem w jednym miejscu i przeanalizowałem informacje z najważniejszych artykułów dotyczących modelu Co-Training. Dużo pracy wymagało uwspólnianie podstawowych definicji i oznaczeń, które często były odmienne w różnych artykułach. W początkowych rozdziałach pracy omówione zostaną podstawowe pojęcia związane z uczeniem maszynowym, a w szczególności uczeniem częściowo nadzorowanym, natomiast w drugiej części pracy omówiony będzie model Co-Training – zarówno od strony teoretycznej jak i praktycznej. 5 Rozdział 1 Teoria uczenia maszynowego 1.1. Wprowadzenie do teorii uczenia maszynowego Uczenie maszynowe jest interdyscyplinarną dziedziną, której podstawowym zadaniem jest budowa systemów potrafiących zdobywać nową wiedzę na podstawie zgromadzonych wcześniej doświadczeń. Niniejszy rozdział poświęcony jest sformalizowaniu opisu tej dziedziny oraz wprowadzeniu aparatu teoretycznego nazwanego modelem uczenia prawdopodobnie aproksymacyjnie poprawnego (z angielskiego probably approximately correct - w skrócie PAC ) [1] służącego do analizy algorytmów występujących w uczeniu maszynowym. Co więcej, sformułowane i udowodnione zostaną najważniejsze twierdzenia. Najważniejsze cele przyświecające uczeniu maszynowemu są nastepujące: • uczenie się, jak rozpoznawać nowe pojęcia przy pomocy analogii oraz uogólnienia • wykrywanie nieznanych zależności w danych • formułowanie odkrytej wiedzy w sposób zrozumiały dla człowieka W uczeniu maszynowym chodzi o umiejętność efektywnego znajdowania funkcji celu zwanej hipotezą, która w jak najlepszy sposób przybliża pewne szukane przez nas pojęcie. W swojej pracy zajmę się głównie problematyką klasyfikacji binarnej, która polega na przyporządkowaniu nowym obiektom jednej z dwóch klas decyzyjnych. Przykładowo, możemy pragnąć nauczyć nasz algorytm pojęcia człowieka otyłego, mając do dyspozycji dane o wzroście oraz wadze pewnej ilości osób wraz z komentarzem dotyczącym tego, czy ta osoba jest otyła czy nie. Na podstawie tych danych próbujemy skonstruować funkcję, która będzie klasyfikowała nowe osoby reprezentowane przez ich wzrost oraz wagę do jednej z dwóch kategorii - osoby otyłe lub nie. Od algorytmu uczącego się wymagamy przede wszystkim: skuteczności (czyli dobrej aproksymacji szukanego pojęcia) oraz szybkości działania. Istnieją różne metody określania dobrej jakość aproksymacji oraz szybkiego czasu działania. Obecnie najpopularniejszy model badania algorytmów pod tym kątem nosi nazwę uczenia prawdopodobnie aproksymacyjnie poprawnego - jest on przedstawiony w sekcji 1.2. W tabeli 1.1 przedstawiony jest ogólny model procesu uczenia się. 7 Dane początkowe: • zbiór (skończony lub nieskończony) wszystkich obiektów X • pojęcie c pochodzące z przestrzeni pojęć oznaczonej C • skończona próbka D obiektów x1 , ..., xm ∈ X wraz z wartościami c(x1 ), ..., c(xm ) • przestrzeń hipotez H Szukane: • hipoteza h ∈ H będąca dobrą aproksymacją pojęcia c Wymagania: • dobra jakość aproksymacji • szybki czas działania Tabela 1.1: Ogólny model procesu uczenia się. 1.2. Algorytmy oraz wyuczalność w sensie PAC Model uczenia się prawdopodobnie aproksymacyjnie poprawnego został zdefiniowany w 1984 roku przez Leslie’go Valiant’a w pracy [1]. Główną motywacją stojącą za tym przedsięwzięciem była próba stworzenia modelu, który pozwalałby na skuteczną ocenę złożoności obliczeniowej algorytmów rozważanych w problematyce uczenia maszynowego. W modelu PAC algorytm uczący się zwany uczniem dostaje na wejściu zbiór treningowy i ma wybrać pewną hipotezę spośród zadanej klasy dopuszczalnych hipotez. Celem jest to, aby wybrana hipoteza z dużym prawdopodobieństwem (część probably) była dobrą aproksymacją pojęcia (część approximately correct), którego mamy się nauczyć. Co więcej uczeń musi umieć wykonać to zadanie z dowolną wcześniej ustaloną precyzją, prawdopodobieństwem sukcesu oraz rozkładem prawdopodobieństwa na zbiorze obiektów. Ważną cechą modelu PAC jest zaadaptowanie teorii złożoności obliczeniowej do uczenia maszynowego. Algorytm, który chcemy wytrenować, musi znaleźć rozwiązanie w sposób efektywny (czas i rozmiar muszą być co najwyżej wielomianowe względem wielkości próbki), a także musi w sposób efektywny zaimplementować to rozwiązanie (oznacza to w szczególności, że ilość obiektów musi być wielomianowa względem rozmiaru hipotezy). 1.2.1. Algorytmy PAC W niniejszej sekcji sformułuję warunki, jakie musi spełniać algorytm uczący się aby można uznać go za algorytm prawdopodobnie aproksymacyjnie poprawny. Oprócz tego wprowadzę kilka pojęć, które będą wykorzystywane w dalszej części pracy. Niech X będzie zbiorem wszystkich obiektów zwanym przestrzenią przykładów, C - klasą pojęć, H - przestrzenią hipotez ucznia oraz Ω = (X, µ) - przestrzenią probabilistyczną określoną na X. Niech EX(c, Ω) będzie zmienną losową nazywaną wyrocznią(z angielskiego oracle), która losuje ze zbioru X obiekt x zgodnie z zadanym rozkładem prawdopodobieństwa Ω oraz nadaje 8 mu poprawną decyzję c(x). Za pomocą wyroczni zostaje wygenerowany zbiór treningowy D = {(x1 , c(x1 )), ..., (xm , c(x1 ))} ∈ S(m, c), gdzie S(m, c) oznacza zbiór wszystkich próbek zawierających m przykładów. c (h) Celem ucznia jest znalezienie hipotezy h ∈ H minimalizującej błąd rzeczywisty ErrΩ zdefiniowany w sposób następujący: Definicja 1.2.1 Błędem rzeczywistym hipotezy h ∈ H względem pojęcia c nazywamy: c ErrΩ (h, c) = ErrΩ (h) = µ{x ∈ X|h(x) 6= c(x)} Teraz przechodzimy do najważniejszej definicji związanej z modelem PAC: Definicja 1.2.2 Algorytm A nazywamy prawdopodobnie aproksymacyjnie poprawnym wtedy i tylko wtedy, gdy dla każdego 0 < ε < 1 i dla każdego 0 < δ < 1 istnieje m0 = m0 (ε, δ) t.że dla dowolnego pojęcia c ∈ C i dla dowolnego rozkładu Ω na X mamy: µm {D ∈ S(m, c)|ErrΩ (A(D)) < ε} > 1 − δ o ile m > m0 . W powyższej definicji ε nazywamy dopuszczalnym poziomem błędu, natomiast (1 − δ) – poziomem ufności. O algorytmie, który jest prawdopodobnie aproksymacyjnie poprawny, często mówimy w skrócie, że jest algorytmem PAC. W tabeli 1.2 jest pokazany przykładowy algorytm PAC. 1.2.2. Wyuczalność klasy pojęć Kolejnym ważnym zagadnieniem w teorii uczenia maszynowego jest pojęcie potencjalnej wyuczalności klasy pojęć. Dzięki potencjalnej wyuczalności można scharakteryzować klasy pojęć, których jesteśmy się w stanie efektywnie nauczyć. Aby zdefiniować potencjalną wyuczalność będziemy potrzebowali następujących definicji oraz oznaczeń: Definicja 1.2.3 Algorytm A nazywamy niesprzecznym wtedy i tylko wtedy, gdy dla każdego c (A(D)) = 0, czyli A(D)(x ) = c(x ) dla pojęcia c ∈ C i dla każdej próbki D mamy ErrD i i dowolnego przykładu (xi , c(xi )) ∈ D Niech H c (D) = {h ∈ H|h(xi ) = c(xi )∀i}. Możemy wówczas powiedzieć, że algorytm A jest niesprzeczny jeśli A(D) ∈ H c (D) dla dowolnego D. Dodatkowo, przez Bεc = {h ∈ H|ErrΩ (h) ε} oznaczmy zbiór słabych hipotez (takich, które popełniają błąd ε) Przechodzimy teraz do definicji potencjalnej wyuczalności: Definicja 1.2.4 Klasę pojęć C nazywamy potencjalnie wyuczalną za pomocą H wtedy i tylko wtedy, gdy dla każdego 0 < ε < 1 i dla każdego 0 < δ < 1 istnieje m0 = m0 (ε, δ) t.że dla dowolnego pojęcia c ∈ C i dla dowolnego rozkładu Ω na X mamy: µm {D ∈ S(m, c)|H c (D) ∩ Bεc = ∅} > 1 − δ o ile m > m0 . Mając zdefiniowaną potencjalną wyuczalność możemy teraz rozpatrywać związek potencjalnej wyuczalności z algorytmami prawdopodobnie aproksymacyjnie poprawnymi: 9 Twierdzenie 1.2.1 Jeśli klasa pojęć C jest potencjalnie wyuczalną za pomocą H oraz A jest algorytmem niesprzecznym dla C to wówczas A jest algorytmem prawdopodobnie aproksymacyjnie poprawnym. Dowód: Powyższe twierdzenie jest prostym wnioskiem z definicji algorytmu PAC i potencjalnej wyuczalności. C jest potencjalnie wyuczalna, zatem: µm {D ∈ S(m, c)|H c (D) ∩ Bεc = ∅} > 1 − δ (1.1) Niech A będzie algorytmem niesprzecznym dla C. Zauważyliśmy już wcześniej, że dzięki temu dla dowolnego D mamy: A(D) ∈ H c (D) (1.2) Zatem: µm {D ∈ S(m, c)|A(D) ∈ / Bεc } > 1 − δ (1.3) Oznacza to, że algorytm A z prawdopodobieństwem > 1 − δ aproksymuje pojęcie c z błędem < ε, a zatem jest on algorytmem PAC. Poniższe twierdzenie pozwala na wykazanie potencjalnej wyuczalności szerokiej klasy pojęć: Twierdzenie 1.2.2 Jeśli klasa pojęć C oraz przestrzeń hipotez H są identyczne czyli C = H oraz zachodzi |C| < ∞ to wówczas klasa pojęć C jest potencjalnie wyuczalna. Dowód: Niech h ∈ Bεc , czyli h popełnia błąd rzeczywisty ε. Mamy wówczas: c µm {D ∈ S(m, c)|ErrD (h) = 0} ¬ (1 − ε)m (1.4) µm {D : H c (D) ∩ Bεc 6= ∅} ¬ |Bεc |(1 − ε)m ¬ |H|(1 − ε)m (1.5) Wynika z tego, że: Zatem, aby zgodnie z definicją potencjalnej wyuczalności uzyskać |H|(1 − ε)m < δ wystarczy wybrać m > 1ε log |H| δ , ponieważ zachodzi: 1 m |H| ) > 1−ε δ 1 |H| m log > log 1−ε δ |H| |H| |H| log δ log δ log δ = > > ε ε log(1 + 1−ε ) ε 1−ε ( log |H| δ m> 1 log 1−ε Z założenia wiemy, że |H| < ∞ zatem możemy dobrać takie m, aby spełniona była definicja potencjalnej wyuczalności. 10 Dane początkowe: • X=R • H = C = {fδ : R → {0, 1}|fδ (x) = 1 ⇔ x δ} • c = fδ0 Należy znaleźć δ0 na podstawie losowo wygenerowanych przykładów należących do D = {(x1 , fδ (x1 )), ..., (xm , fδ (x1 ))} Przyjmujemy następujący algorytm: 1. Niech δ ∗ = mini∈{1,...,m} {xi : fδ0 (xi ) = 1} 2. Przyjmujemy A(D) = δ ∗ Wykażemy, że A jest PAC: c (f ∗ ) = µ([δ , δ ∗ ]) • Mamy, iż ErrΩ 0 δ c (f ∗ ) ¬ ε ⇔ δ ∗ ¬ β ⇔ jeden z • Niech β0 = sup{β|µ([δ0 , δ ∗ ]) < ε}. Wówczas ErrΩ 0 δ ∗ przykładów xi znajduje się w przedziale |δ0 , δ | • Prawdopodobieństwo tego, że żaden z m przykładów nie należy do |δ0 , β0 | jest ¬ (1 − m)m . Stąd µm {D ∈ S(m, fδ0 )|ErrΩ (A(D)) ¬ ε} > 1 − (1 − ε)m • Zatem aby to prawdopodobieństwo było > 1 − δ wystarczy wybrać 1 1 m ¬ m0 = d log e ε δ Tabela 1.2: Przykład algorytmu PAC. 11 1.2.3. Losowy szum klasyfikacyjny Model PAC zakłada istnienie nieomylnej wyroczni, która zawsze zwraca obiekt z poprawną decyzją. Niestety w realnym świecie założenie o nieomylności wyroczni bardzo często jest niespełnione. Wiąże się to z powstaniem szumu klasyfikacyjnego - część przykładów zwrócona przez wyrocznię posiada błędną etykietę. Już w 1988 roku Angluin i Laird w swojej pracy [2] wprowadzili poprawki mające na celu uodpornienie modelu PAC na sytuację, gdy obecny jest szum klasyfikacyjny. W tym modelu algorytm nie ma dostępu do nieomylnej wyroczni EX(c, Ω), lecz do wyroczni EXη (c, Ω) popełniającej błąd z prawdopodobieństwem η, zdefiniowanej następująco: ( EXη (c, Ω) = zwraca (x, c(x)) z EX(c, Ω) z prawdopodobieństwem 1 − η zwraca (x, ¬c(x)) z EX(c, Ω) z prawdopodobieństwem η Im bardziej wartość błędu zbliża się do 12 , tym mniej informacji o szukanej funkcji celu można uzyskać z etykiet zwróconych przez wyrocznie. Równocześnie rośnie wielkość wymaganego zbioru treningowego oraz złożoność obliczeniowa. W przypadku gdy wartość błędu jest równa 12 , uczenie się w sposób prawdopodobnie aproksymacyjnie poprawny staje się niemożliwe, gdyż etykiety przykładów ze zbioru treningowego są zupełnie losowe, a zatem nie niosą żadnej informacji na temat funkcji celu. Angluin i Laird wykazali, że skończone klasy pojęć są wyuczalne w sensie PAC w obecności szumu klasyfikacyjnego (nawet szerzej - wyuczalne są klasy pojęć o skończonym wymiarze Vapnika-Chervonenkisa zdefiniowanego w pracy [8]). Istnieje wiele sposobów radzenia sobie z szumem klasyfikacyjnym, jednak w praktyce najpopularniejszą i najszerzej wykorzystywaną metodą jest konstruowanie algorytmów, które opierają się na pewnych statystykach obliczonych ze zbioru testowego, a nie na pojedynczych obiektach. Model takiego podejścia nazywa się Statistical Queries i został po raz pierwszy zaproponowany przez Michael’a Kearns’a w roku 1998 [3]. 12 Rozdział 2 Uczenie częściowo nadzorowane Uczenie maszynowe dzieli się zasadniczo na trzy działy w zależności od rodzaju i ilości wykorzystywanych przez nie danych. Pierwszym z nich jest uczenie nienadzorowane (z angielskiego unsupervised learning). Mamy z nim do czynienia wówczas gdy posiadamy wyłącznie dane bez etykiet i chcemy się dowiedzieć czegoś o strukturze przestrzeni danych np. chcemy poznać największe skupiska danych lub ich rozrzut w przestrzeni. Drugim działem jest uczenie nadzorowane (z angielskiego supervised learning). Korzystamy z niego w przypadku gdy trenujemy algorytmy uczące się, które do działania potrzebują wyłącznie zbioru etykietowanych danych treningowych i na ich podstawie chcemy poznać funkcję celu. Trzecim i zarazem najważniejszym z punktu widzenia niniejszej pracy działem jest uczenie częściowo nadzorowane (z angielskiego semi-supervised learning). Jest to dział, w którym trenowane algorytmy mają dostęp do stosunkowo małej ilości danych etykietowanych oraz do ogromnej ilości danych bez etykiet. Dział ten jest obecnie bardzo dynamicznie rozwijany, gdyż w realnych zastosowaniach coraz częściej okazuje się, że uzyskanie danych etykietowanych jest bardzo kosztowne. Mowa tu zarówno o kosztach czasowych jak i finansowych. Uzyskanie etykietowanych danych bardzo często jest związane z intensywną pracą ludzką - w większości zastosowań każdy z przykładów trzeba oznaczyć ręcznie. Z drugiej strony, dzięki rozwojowi techniki, pozyskiwanie surowych danych nieetykietowanych jest coraz prostsze i tańsze. Dobrym przykładem jest tutaj zagadnienie klasyfikacji stron internetowych. Dane treningowe w tym przypadku to witryny wraz z decyzją klasyfikacyjną, którą każdorazowo musiał nadać człowiek. Zatem stworzenie zbioru treningowego złożonego nawet ze 100 elementów wymagałoby dużego nakładu pracy ludzkiej. Natomiast dane nieetykietowane to po prostu dane o stronach internetowych, które możemy w łatwy sposób pobierać w tysiącach, a nawet setkach tysięcy za pomocą robotów (crawlerów) internetowych. W związku z zaistniałą sytuacją ostatnimi laty coraz więcej osób starało się budować nowe algorytmy częściowo nadzorowane, aby pozyskać jak najwięcej informacji z tanich danych nieetykietowanych. Algorytmy te wykorzystują dane bez etykiet na szereg odmiennych sposobów. Oto niektóre z nich: • budowa modeli probabilistycznych z wykorzystaniem danych nieetykietowanych [10] • iteracyjna estymacja parametrów modelu - algorytm Expectation Maximization [11] • maksymalizacja szerokości marginesu prostej rozdzielającej dwie klasy decyzyjne - algorytm Transductive Support Vector Machines [12] 13 Wyniki uzyskane zarówno przez powyższe algorytmy jak i wiele innych pokazały, że dane bez etykiet mogą w znaczący sposób poprawić jakość klasyfikacji. Jednak za najważniejszy model w uczeniu częściowo nadzorowanym większość osób uznaje model Co-Training, którego szczegółowy opis znajduje się w kolejnych rozdziałach. 14 Rozdział 3 Co-Training Model Co-Training został po raz pierwszy zaprezentowany w 1998 roku w artykule [4]. Artykuł ten wywołał niemałe poruszenie w kręgach naukowych związanych z uczeniem maszynowym. Praca [4] zawiera podstawy teoretyczne modelu Co-Training oraz konkretny algorytm realizujący te założenia. Należy jednak zauważyć, że nie jest to jedyny algorytm, który można ująć w ramy tego modelu. Należy unikać bezpośredniego utożsamiania modelu Co-Training z algorytmem przedstawionym w [4]. Istotą modelu Co-Training jest założenie, że zbiór atrybutów możemy podzielić na dwa rozłączne podzbiory, gdzie każdy z nich dostarcza nam wystarczająco dużo informacji aby wytrenować poprawny klasyfikator przy odpowiednio dużej ilości danych. Co więcej, oba podzbiory mają być warunkowo niezależne ustalając klasę decyzyjną. Mówiąc w skrócie, interesuje nas sytuacja, gdy na dany obiekt możemy, w pewnym sensie, patrzeć na dwa istotnie różne, niezależne od siebie i samowystarczalne sposoby. Poniżej znajduje się bardziej formalny opis tej idei. 3.1. Formalny model Co-Training Dana jest przestrzeń obiektów X = X1 × X2 , gdzie X1 i X2 odpowiadają dwóm odmiennym ”sposobom patrzenia” na obiekt. Oznacza to, że każdy obiekt jest reprezentowany jako para (x1 , x2 ). Ponadto wymagane jest założenie, że każdy z podzbiorów X1 i X2 osobno jest wystarczający do poprawnej klasyfikacji. Niech D będzie rozkładem prawdopodobieństwa nad X, zaś C1 i C2 będą klasami pojęć odpowiednio nad X1 i X2 . Zakładamy, że wszystkie etykiety obiektów o niezerowym prawdopodobieństwie są zgodne z pewną funkcją f1 należącą do C1 oraz z funkcją f2 należącą do C2 . Innymi słowy, jeśli f oznacza szukaną przez nas funkcję celu, to wówczas dla każdego obiektu x = (x1 , x2 ) oznaczonego etykietą l zachodzi f (x) = f1 (x1 ) = f2 (x2 ) = l. W szczególności oznacza to, że D przypisuje zerowe prawdopodobieństwo każdemu obiektowi takiemu, że f1 (x1 ) 6= f2 (x2 ). Pojawia się tu pytanie, dlaczego dane bez etykiet mogłyby pomóc w klasyfikacji? Szerszej odpowiedzi na to pytanie udzielimy w następnych sekcjach, ogólnie można na to spojrzeć poprzez pryzmat standardowego modelu PAC jak poniżej. Dla danego rozkładu D mówimy, że dana hipoteza f = (f1 , f2 ) ∈ C1 ×C2 jest kompatybilna z D jeśli D przypisuje zerowe praw15 Rysunek 3.1: Różnica w rozkładzie przykładów w zależności od wybranej perspektywy dopodobieństwo każdemu obiektowi takiemu, że f1 (x1 ) 6= f2 (x2 ). Innymi słowy, para f1 , f2 jest kompatybilna z D jeśli f1 , f2 oraz D są dopuszczalne w modelu Co-Training opisanym powyżej. Należy zauważyć, że nawet wówczas, gdy C1 oraz C2 są skomplikowanymi klasami pojęć, dla danego D zbiór hipotez kompatybilnych może być istotnie mniej skomplikowany. Dlatego można mieć nadzieję, iż dane bez etykiet umożliwią nam lepsze poznanie charakterystyki hipotez kompatybilnych, a co za tym idzie pozwolą na zmniejszenie ilości danych treningowych potrzebnych do wytrenowania skutecznego klasyfikatora. Przeanalizujemy to na przykładzie. Niech X1 = X2 = {0, 1}n oraz C1 = C2 =koniunkcje nad{0, 1}n . Jeśli wiemy, że pierwsza współrzędna jest istotna dla pojęcia f1 to, ponieważ f1 jest koniunkcją, możemy z tego wywnioskować, że gdy pierwsza współrzędna x1 jest równa 0, to f1 (x1 ) = 0. Wówczas dowolny nieetykietowany przykład (x1 , x2 ) taki, że pierwsza współrzędna x1 jest równa 0 może zostać użyty do wytworzenia negatywnego przykładu x2 dla f2 . Oczywiście przykład ten może nie dać nam wiele pożytecznych informacji o f2 jeśli D jest ”mało pomocnym” rozkładem, na przykład takim, który posiada niezerowe prawdopodobieństwo wyłącznie na obiektach takich, że x1 = x2 . Jednakże, jeśli x1 oraz x2 nie są mocno skorelowane, możemy uzyskać nowe informacje. W skrajnie optymistycznym przypadku, gdy D jest rozkładem, w którym x1 i x2 są warunkowo niezależne pod warunkiem decyzji, zachodzi taka zależność, że gdy pierwsza współrzędna x1 jest równa 0, to x2 jest w pełni losowym negatywnym przykładem dla f2 . Na rysunku 3.1 jest to przedstawione w sposób obrazowy. Punkty, które klasyfikator patrzący na część x1 klasyfikuje z dużą pewnością (na rysunku są one zaznaczone kółeczkami) są losowo rozmieszczone z punktu widzenia klasyfikatora patrzącego na część x2 . 3.1.1. Reprezentacja grafowa Innym sposobem patrzenia na model Co-Training jest rozpatrywanie rozkładu D jako grafu ważonego, dwudzielnego oznaczanego jako GD (X1 , X2 ) lub po prostu GD , gdy X1 oraz X2 wynikają z kontekstu. Lewa strona grafu GD posiada po jednym wierzchołku dla każdej możliwej wartości z X1 natomiast prawa strona zawiera analogiczne wierzchołki dla X2 . Krawędź 16 Rysunek 3.2: Krawędzie odpowiadają obiektom o niezerowym prawdopodobieństwie przy czym krawędzie pełne odpowiadają obiektom z pewnej skończonej próbki S. Jeśli spełnione są założenia metody Co-Training, to obiekty należące do jednej składowej spójnej powinny posiadać tę samą etykietę. (x1 , x2 ) należy do GD wtedy i tylko wtedy, gdy przykład (x1 , x2 ) ma niezerowe prawdopodobieństwo w D. Każdej krawędzi nadajemy wagę równą prawdopodobieństwu wystąpienia danego obiektu. Dla wygody możemy z grafu usunąć wszystkie wierzchołki izolowane, gdyż odpowiadają one obiektom nie podlegającym modelowi Co-Training. Jest to zobrazowane na rysunku 3.2. Dla modelu zdefiniowanego w powyższy sposób spośród wszystkich hipotez z C można w łatwy sposób wskazać hipotezy kompatybilne. Są to mianowicie hipotezy odpowiadające podziałowi grafu GD na dwa podgrafy rozłączne. Dodatkowo, w równie łatwy sposób można wprowadzić miarę kompatybilności danej hipotezy. Jako wspomnianą miarę wystarczy wziąć wagę cięcia, które wykonuje dana hipoteza. Innymi słowy poziom kompatybilności między hipotezą f = (f1 , f2 ) a rozkładem D może być zdefiniowany jako liczba p ∈ [0, 1] gdzie p = 1 − PD [(x1 , x2 ) : f1 (x1 ) 6= f2 (x2 )]. W poniższych rozważaniach, o ile nie jest zaznaczone inaczej, zakładam pełną kompatybilność tj. p = 1. Mając daną próbkę S w łatwy sposób można zdefiniować podgraf GS grafu GD jako graf dwudzielny zawierający krawędzie (x1 , x2 ) ∈ S. W przypadku pełnej kompatybilności każde dwa wierzchołki należące do tej samej składowej spójnej w GS mają taką samą etykietę. 3.2. Ujęcie Co-Training w ramy modelu PAC W niniejszej sekcji wykażę dlaczego, gdy spełnione są odpowiednie założenia, możemy przy pomocy modelu Co-Training polepszyć skuteczność każdego pierwotnie słabego klasyfikatora do ustalonego z góry poziomu, korzystając tylko z danych bez etykiet. Wspomniane założenia to warunkowa niezależność dla rozkładu D oraz wyuczalność C2 w sensie PAC w obecności losowego szumu klasyfikacyjnego. Na początku zdefiniujemy pierwsze z wymaganych założeń. Mówimy, że funkcje f1 , f2 oraz rozkład D łącznie spełniają założenie warunkowej niezależności, gdy dla każdej ustalonej pary (x1 , x2 ) ∈ X posiadającej 17 niezerowe prawdopodobieństwo mamy: b1 |f2 (x2 ) = f2 (x b2 )) b1 |x2 = x b2 ) = P(x1 ,x2 )∈D (x1 = x P(x1 ,x2 )∈D (x1 = x oraz analogicznie: b2 |x1 = x b1 ) = P(x1 ,x2 )∈D (x2 = x b2 |f1 (x1 ) = f1 (x b1 )) P(x1 ,x2 )∈D (x2 = x Innymi słowy x1 oraz x2 są niezależne pod warunkiem etykiety. Kolejną rzeczą niezbędną do zdefiniowania jest pojęcie słabo-użytecznej predykcji, definiujemy ją w sposób następujący: Definicja 3.2.1 Funkcję h nazywamy słabo-użyteczną predykcją funkcji f wtedy i tylko wtedy, gdy zachodzą następujące warunki: PD (h(x) = 1) ε oraz PD (f (x) = 1|h(x) = 1) PD (f (x) = 1) + ε dla pewnego ε > 1 o(n) . Następnie wprowadzę drobne rozszerzenie do standardowego modelu PAC z losowym szumem klasyfikacyjnym. Rozszerzenie to zostało zaprezentowane w pracy [4] i polega na zróżnicowaniu prawdopodobieństwa popełnienia błędu przez wyrocznię dla przykładów pozytywnych i negatywnych. Innymi słowy model PAC z losowym szumem klasyfikacyjnym (α, β) jest to model w którym algorytm ma dostęp do wyroczni, która źle klasyfikuje pozytywne przykłady z prawdopodobieństwem α oraz źle klasyfikuje przykłady negatywne z prawdopodobieństwem β. W tym modelu można udowodnić następujący lemat: Lemat 3.2.1 Jeśli klasa pojęć C jest wyuczalna w modelu PAC z losowym szumem klasyfikacyjnym to jest również wyuczalna w modelu PAC z losowym szumem klasyfikacyjnym (α, β) 1 o ile α + β < 1. Złożoność obliczeniowa jest wówczas rzędu o( 1−α−β ). Dowód: Rozważmy dwa przypadki: 1) α oraz β są znane algorytmowi uczącemu się: Bez straty ogólności możemy założyć, że α < β. Aby wyuczyć się C z szumem (α, β) wystarczy β−α zmienić etykietę każdego pozytywnego przykładu z prawdopodobieństwem β+(1−α) . W rezultacie otrzymamy standardowy model z szumem klasyfikacyjnym na poziomie η = Aby model był poprawny, musi zachodzić η < 12 , zatem mamy α + β < 1. β β+(1−α) < 1 2 β β+(1−α) . skąd wynika, że 2) α oraz β są nieznane algorytmowi uczącemu się: Załóżmy, że mamy dany zbiór S złożony z m obiektów, z których m+ ma etykietę pozytywną. Wówczas możemy stworzyć m + 1 hipotez w sposób następujący: i-ta hipoteza dla i = 0, 1, ..., m+ jest tworzona poprzez zmienienie etykiet i losowym przykładom pozytywnym z S, natomiast hipoteza j-ta dla j = m+ + 1, ..., m jest tworzona poprzez zmienienie etykiet j losowym przykładom negatywny z S. Dzięki temu każdą z hipotez sprowadzamy do standardowego modelu z pojedynczym szumem klasyfikacyjnym. Wówczas możemy oczekiwać, że co najmniej jedna z hipotez jest poprawna, ponieważ procedura z punktu pierwszego (gdy znamy α oraz β) może być rozpatrywana jako rozkład 18 prawdopodobieństwa nad powyższymi m + 1 eksperymentami. Poniższe twierdzenie pokazuje, dlaczego model Co-Training jest przydatny w praktyce: Twierdzenie 3.2.1 Jeśli klasa pojęć C2 jest wyuczalna w modelu PAC z losowym szumem klasyfikacyjnym oraz jeśli spełnione jest założenie warunkowej niezależności, to wówczas (C1 , C2 ) jest wyuczalne w modelu Co-Training korzystając tylko z danych nieetykietowanych oraz początkowej słabo-użytecznej predykcji h(x1 ) pojęcia C1 . Dowód: Niech f (x) będzie szukaną funkcją celu oraz p = PD (f (x) = 1) będzie prawdopodobieństwem, że losowy przykład z D jest pozytywny. Niech q = PD (f (x) = 1|h(x) = 1) oraz c = PD (h(x) = 1). Wówczas mamy: PD (h(x) = 1|f (x) = 1) = PD (f (x) = 1|h(x) = 1)PD (h(x) = 1) qc = PD (f (x) = 1) p (3.1) oraz (1 − q)c (3.2) 1−p Dzięki założeniu warunkowej niezależności wiemy, iż dla losowego przykładu x = (x1 , x2 ) h(x1 ) jest niezależne od x2 przy danej wartości f (x). Wynika z tego, że jeśli użyjemy h(x1 ) jako poziomu szumu klasyfikacyjnego dla x2 będzie to równoważne szumowi klasyfikacyjnemu (1−q)c (α, β) gdzie α = 1 − qc p oraz β = 1−p - wartości α i β wynikają z równań (3.1) oraz (3.2). Wynika z tego, że: PD (h(x) = 1|f (x) = 0) = qc (1 − q)c q−p α+β =1− + =1−c p 1−p p(1 − p) Z założeń wiemy, że h jest ”słabo-użyteczną predykcją”. Wynika z tego, że c ε oraz q−p ε zatem: ε2 α+β ¬1− ¬ 1 − 4ε2 < 1 p(1 − p) Stosując lemat 3.2.1 uzyskujemy tezę. 3.3. Opis klasycznego algorytmu Co-Training Klasyczny algorytm Co-Training został zaprezentowany przez Mitchell’a i Blum’a jako zobrazowanie działania modelu Co-Training w praktyce. Algorytm ten trenuje po jednym klasyfikatorze dla każdego z podzbiorów atrybutów używając początkowego zbioru danych treningowych oraz jednocześnie losuje podzbiór złożony z danych nieetykietowanych spośród których będą wybierane przykłady dodawane do początkowego zbioru treningowego. W następnym kroku algorytm dokonuje klasyfikacji danych bez etykiet z powyższego podzbioru i te, które zaklasyfikował z największym prawdopodobieństwem dodaje do początkowego zbioru treningowego. Tu objawia się założenie mówiące o tym, że każdy z podzbiorów atrybutów jest wystarczający do prawidłowej klasyfikacji - oznacza to tyle, że można ufać etykietom przypisanym przez klasyfikator patrzący tylko na jeden z podzbiorów. Następnie podzbiór złożony z danych nieetykietowanych jest uzupełniany i cały proces jest powtarzany w sposób iteracyjny. W tabelce 3.1 jest przedstawiony szczegółowy algorytm metody Co-Training. 19 Dane początkowe: • zbiór U - obiektów bez etykiet • zbiór L - obiektów z etykietami Utwórz zbiór U 0 wybierając w sposób losowy u obiektów ze zbioru U Powtórz k razy • użyj zbioru L aby wytrenować klasyfikator h1 wykorzystując tylko część x1 z x • użyj zbioru L aby wytrenować klasyfikator h2 wykorzystując tylko część x2 z x • pozwól h1 oznaczyć p pozytywnych i n negatywnych przykładów z U 0 • pozwól h1 oznaczyć p pozytywnych i n negatywnych przykładów z U 0 • dodaj oznaczone obiekty do zbioru L • wybierz w sposób losowy 2p + 2n obiektów ze zbioru U i dodaj je do zbioru U 0 Tabela 3.1: Oryginalny algorytmu Co-Training przedstawiony w pracy [4]. 20 Rozdział 4 Analiza praktycznych zastosowań modelu Co-Training Model Co-Training charakteryzuje się silnymi założeniami dotyczącymi kompatybilności funkcji celu oraz warunkowej niezależności podzbiorów atrybutów. Jednak w praktyce znakomita większość danych rzeczywistych w istotny sposób narusza powyższe założenia. Dlatego z praktycznego punktu widzenia bardzo ważnym zagadnieniem jest wrażliwość modelu CoTraining na poprawność założeń. Równie istotnym problemem są wymagania, jakie musi spełniać sam podział atrybutów, przede wszystkim - czy musi być naturalny. Aby zbadać te oraz wiele innych zagadnień związanych z modelem Co-Training trzeba było przeprowadzić i zanalizować wiele eksperymentów praktycznych. Najważniejsze z tych eksperymentów pokrótce opiszę poniżej. Pierwsze testy modelu Co-Training zostały przeprowadzone i opisane w oryginalnej pracy Blum’a i Mitchell’a. Zastosowali oni algorytm Co-Training do problemu klasyfikacji stron internetowych. Ich baza danych składała się z danych na temat 1051 witryn internetowych umieszczonych na swoich serwerach przez 4 amerykańskie uczelnie. Każdej z tych stron zostały ręcznie przypisane etykiety dotyczące treści zawartych na danej stronie. W swoim eksperymencie autorzy wybrali jako funkcję celu kategorie ”strony kursowe” - oznacza to, że każda strona kursowa w bazie danych jest przykładem pozytywnym, natomiast reszta stron to przykłady negatywne. W powyższej bazie danych 22% stron to strony kursowe. Każda ze stron należących do bazy danych jest opisana na dwa sposoby - jednym z nich jest lista wszystkich słów, które występują na danej stronie, natomiast drugim - lista słów użytych w hiperłączach prowadzących do danej strony z innych stron z bazy. Dla każdego z tych dwóch typów opisu został wytrenowany klasyfikator korzystający algorytmu Naive Bayes. Wykorzystano algorytm Naive Bayes ponieważ znany jest on z wysokiej skuteczności w przypadku klasyfikacji danych tekstowych (zob. [5]). Następnie autorzy użyli algorytmu Co-Training opisanego w sekcji 3.3 i porównali wyniki uzyskane przez niego z wynikami uzyskanymi za pomocą klasycznego klasyfikatora opartego na Naive Bayes. Procedura testowa dotycząca algorytmu Co-Training wyglądała następująco: • wylosowano podzbiór testowy składający się z 25% (263) spośród 1051 stron • z pozostałych danych został wylosowany 12-elementowy zbiór treningowy złożony z 3 przykładów pozytywnych oraz 9 negatywnych • strony które nie zostały wylosowane stworzyły zbiór danych nieetykietowanych 21 • parametry p = 1 oraz n = 3 zostały dobrane, aby dobrze oddawały dystrybucję pozytywnych i negatywnych przykładów w bazie • liczba iteracji wewnętrznej pętli algorytmu Co-Training został ustalona na 30, a wielkość podzbioru danych nieetykietowanych na 75 tj. k = 30 oraz u = 75 Cała procedura testowa została powtórzona 5 razy, a wyniki uśrednione. Poziom błędu, jaki uzyskano na zbiorze testowym przy pomocy algorytmu Co-Training wyniósł: • 6,2% dla klasyfikatora korzystającego ze słów występujących na stronach • 11,6% dla klasyfikatora korzystającego ze słów występujących w hiperłączach • 5,0% dla klasyfikatora łączonego Analogicznie dla standardowej metody Naive Bayes uzyskano następujące wyniki: • 12,9% dla klasyfikatora korzystającego ze słów występujących na stronach • 12,4% dla klasyfikatora korzystającego ze słów występujących w hiperłączach • 11,1% dla klasyfikatora łączonego Powyższe wyniki wskazują, że za pomocą Co-Training można podnieść w znaczący sposób jakość klasyfikacji. Obszerniejsze omówienie wyników eksperymentów wraz z wykresami można znaleźć w pracy [4]. Powyższy eksperyment nie wyczerpał jednak tematu, gdyż zanalizowana została tylko jedna baza danych oraz jedna funkcja celu i nie można było wyciągać z tego dalekosiężnych wniosków dotyczących ogólnego zachowania się modelu Co-Training. Z tego powodu powstał szereg prac skupiających się na analizowaniu zachowania modelu Co-Traning. Jedną z ciekawszych prac analizujących zachowanie modelu Co-Traning jest praca ”Analizing the Effectiveness and Aplicability of Co-Training” napisana przez Kamala Nigam’a oraz Rayida Ghani. Jak sama nazwa wskazuje autorzy skupili się na analizie efektywności oraz możliwości zastosowania modelu Co-Training. Interesowały ich przede wszystkim odpowiedzi na pytanie dlaczego model ten jest tak skuteczny oraz jaki musi być podział argumentów, aby można było żywić nadzieje na poprawę jakości klasyfikacji. Aby tego dokonać, przeprowadzili oni szereg eksperymentów zarówno na danych rzeczywistych jak i na specjalnie spreparowanych. Pozwoliło im to uzyskać bardzo interesujące wyniki. Okazało się, że model Co-Training jest bardziej odporny na niespełnienie założeń dotyczących rozkładu obiektów niż inne modele korzystające z danych nieetykietowanych, takie jak Expectation Maximization. Dzieje się tak, ponieważ dwa różne punkty widzenia pozwalają zrekompensować źle założony rozkład elementów, oczywiście o ile mamy wystarczająco dużo danych. Z drugiej strony okazało się, że Co-Training jest dosyć wrażliwy na niespełnienie założeń kompatybilności funkcji celu oraz warunkowej niezależności podzbiorów atrybutów. Dotyczy to w szczególności drugiego z tych założeń. Okazało się, że w przypadku istnienia naturalnego podziału atrybutów za pomocą modelu Co-Training praktycznie zawsze można uzyskać poprawę wyników, lecz gdy takiego podziału nie ma, wprowadzenie sztucznego podziału może zarówno polepszyć jak i pogorszyć wyniki. Niestety zbadanie, czy dany podział pozwoli polepszyć jakość klasyfikacji jest dosyć trudne i wymaga dalszych badań. Więcej szczegółów dotyczących eksperymentów, a w szczególności informacje na temat użytych zbiorów oraz uzyskane wyniki liczbowe, można znaleźć w oryginalnej pracy [6]. 22 Inną ciekawą pracą jest artykuł [9], w którym autorzy również zajęli się poprawnością założeń. Jednak, zamiast analizować, w jakim stopniu niespełnienie założeń wpływa na wyniki, wprowadzili oni modyfikacje modelu Co-Training polegającą na osłabieniu założeń dotyczących rozkładu elementów i jednocześnie wzmocnieniu założeń dotyczących algorytmów stosowanych do wyuczenia klasyfikatora. Dane często naruszają założenia standardowego modelu Co-Training, a jednocześnie istnieje wiele algorytmów o udowodnionych dobrych własnościach. Z tego powodu nowszy model może okazać się bardziej przydatny, gdyż łatwiej spełnić jego wymagania. 23 Rozdział 5 Co-Training dla przypadku klasyfikacji wieloklasowej Jak dotąd rozpatrywałem w swojej pracy wyłącznie zagadnienie klasyfikacji binarnej, jednak w rzeczywistych zastosowaniach równie często pojawiają się problemy wieloklasowe. Jednym z przykładów takiego problemu jest problem klasyfikacji tematycznej tekstów na wiele kategorii. Pojawia się ważne pytanie - jak w przypadku takich problemów sprawuje się model Co-Training? Okazuje się, że bezpośrednie podejście polegające po prostu na użyciu modelu, który posiadamy, jest wielce nieefektywne. Wyniki, które dostaniemy będą słabsze niż te uzyskane za pomocą dużo prostszych metod, takich jak Naive Bayes. Nie oznacza to jednak, że model Co-Training nie nadaje się do klasyfikacji wielowymiarowej. W pracy [7] Rayid Ghandi skonstruował model pozwalający wykorzystać Co-Training do klasyfikacji wielowymiarowej. Model ten powstał poprzez połączenie algorytmu Co-Training z metodą kodów korekcyjnych (z angielskiego Error-Correcting Output Codes). Istotą tego modelu jest rozbicie problemu klasyfikacji z m klasami na k problemów binarnych. Następnie każdej z klas jest przypisywany unikalny kod binarny długości k. Dzięki temu powstaje macierz rozmiaru m × k w której każdy wiersz reprezentuje jedną klasę a każda kolumna odpowiada za jeden klasyfikator. Przykładowo jeśli mam problem z 3 klasami to możemy go rozbić na 5 problemów binarnych. Jedna z tabel, które możemy uzyskać, wygląda następująco: klasa c1 c2 c3 0 0 1 kod 0 1 1 1 0 0 0 0 1 1 1 1 Tak jak zostało to wyżej wspomniane, każdy wiersz odpowiada kodowi klasy decyzyjnej, zatem dla przykładu klasie c2 odpowiada kod 01001. Analogicznie wiemy, że każda kolumna odpowiada za jeden klasyfikator - przykładowo kolumna pierwsza odpowiada za klasyfikator binarny, który obiekty z klas c1 oraz c2 traktuje jako przykłady negatywne, a obiekty z klasy c3 jako pozytywne. Tak powstałe klasyfikatory binarne umieszczamy parami w standardowym modelu Co-Training. Warto zauważyć, że klasyfikator odpowiadający ostatniej kolumnie jest trywialny, a co za tym idzie nieprzydatny. Otrzymując nowy przykład wyliczamy dla niego jego kod binarny, a następnie przypisujemy mu etykietę klasy decyzyjnej, której kod jest najbardziej zbliżony. Długość kodu korekcyjnego, jaką ustalimy, ma duże znaczenie praktyczne. Generalnie, im dłuższy kod tym 25 lepsze wyniki, ale jednocześnie większy koszt obliczeniowy. Dla problemu z m klasami kod nie powinien mieć więcej niż 2m−1 − 1 znaków, ale w praktyce tak długie kody można dobierać tylko jeśli m ¬ 7. W przypadku, gdy m jest większe od 7 do ustalania długości kodu trzeba użyć bardziej zaawansowanych metod. Więcej informacji na ten temat można znaleźć w pracy [7]. 26 Podsumowanie W pracy zaprezentowany i zanalizowany został model Co-Training – jeden z ważniejszych modeli używanych w uczeniu maszynowym. Pierwsza część pracy dotyczyła wprowadzenia do teorii uczenia maszynowego oraz teorii algorytmów prawdopodobnie aproksymacyjnie poprawnych. Przestawione i udowodnione zostały najważniejsze twierdzenia obu teorii przydatne do dalszej analizy modelu Co-Training. Następnie przedstawione zostały teoretyczne podstawy modelu Co-Training oraz udowodniona została potencjalna wyuczalność w tak zdefiniowanym modelu. W kolejnych rozdziałach zebrane i zanalizowane zostały wyniki uzyskane przez naukowców na drodze eksperymentów praktycznych z danymi (zarówno rzeczywistymi jak i sztucznymi). Pod koniec pracy rozpatrzony został model kodów korekcyjnych wykorzystujący Co-Training do klasyfikacji wieloklasowej. Mimo, iż podstawa modelu Co-Training, czyli dwudzielność zbioru atrybutów na dwa nie do końca zależne podzbiory, nie jest bardzo zaawansowaną konstrukcją, okazuje się, że wiążą się z nią bardzo ciekawe wnioski zarówno natury teoretycznej jak i praktycznej. Model CoTraining stworzył dobrą podstawę teoretyczną, która została wykorzystana przy tworzeniu wielu nowych modeli korzystających z danych nieetykietowanych ([7], [13]). Od strony praktycznej okazało się, że Co-Training bardzo dobrze spisuje się w szeregu zastosowań, szczególnie tych związanych z analizą danych tekstowych([14]). 27 Bibliografia [1] Leslie Valiant, A theory of the learnable, Communications of the ACM, 1984. [2] Dana Angluin, Philip Laird, Learning from noisy examples, Machine Learning, 2:343-370, 1988. [3] Michael Kearns, Efficient noise-tolerant learning from statistical queries, Proceedings of the Twenty-Sixth Annual ACM Symposium on the theory of Computing, 648-657, 1994. [4] Avrim Blum, Tom Mitchell, Combining labeled and unlabeled data with Co-Training, COLT: Proceedings of the Workshop on Computational Learning Theory, Morgan Kaufmann, 1998. [5] Harry Zhang, The Optimality of Naive Bayes, FLAIRS2004 conference, 2004. [6] Kamal Nigam, Rayid Ghani, Analyzing the Effectiveness and Applicability of Co-training, Proceedings of the ninth international Conference on Information and Knowledge Management (NY, USA: ACM): 86–93, 2000. [7] Rayid Ghani, Using Error-Correcting Codes with Co-Training for text classification with a large number of categories, Workshop on Text Mining at the First IEEE Conference on Data Mining, 2001. [8] Vladimir Vapnik, Alexey Chervonenkis, On the uniform convergence of relative frequencies of events to their probabilities, Theory of Probability and its Applications, 16(2):264–280, 1971. [9] Maria-Florina Balcan, Avrim Blum, Ke Yang, Co-training and expansion: Towards bringing theory and practice, Advances in neural information processing systems 17, MIT Press, 2005. [10] Tommi Jaakkola, David Haussler, Exploiting Generative Models in Discriminative Classifiers, Advances in Neural Information Processing Systems 11, MIT Press, 1998. [11] Kamal Nigam, Andrew Kachites Mccallum, Sebastian Thrun, Tom Mitchell, Text Classification from Labeled and Unlabeled Documents using EM, Machine Learning, 1999. [12] Thorsten Joachims, Transductive Inference for Text Classification using Support Vector Machines, International conference on Machine Learning (ICML), 200-209, 1999. [14] Francois Denis, Anne Laurent, Rémi Gilleron, Marc Tommasi, Text Classification and Co-training from Positive and Unlabeled Examples, Proceedings of the ICML 2003 Workshop: The Continuum from Labeled to Unlabeled Data, 80-87, 2003. 29 [13] Ion Muslea, Steven Minton, Craig A. Knoblock, Active + Semi-supervised Learning = Robust Multi-View Learning, Proceedings of the Nineteenth International Conference on Machine Learning, 435-442, 2002. 30