Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

pl:dydaktyka:ml:mlrep1 [2017/07/17 10:08]
pl:dydaktyka:ml:mlrep1 [2019/06/27 15:50] (aktualna)
Linia 1: Linia 1:
 +
 +====== Peter Flach: Machine Learning, repetytorium 1 ======
 +
 +===== - Co składa się na uczenie maszynowe =====
 +//The ingredients of machine learning//
 +
 +''​S010''​
 +  * każde **zadanie** (//task//) uczenia maszynowego polega na wypracowaniu pewnego rozwiązania przy pomocy odpowiedniego **modelu** matematycznego (którego parametrów na początku nie znamy)
 +  * na wejściu **modelu** mamy dane (//data//) będące konkretnymi wartościami pewnych **cech**, atrybutów (//​features//​),​ na wyjściu modelu otrzymujemy rozwiązanie zadania
 +  * zadania wiążą się z pewnymi **obiektami** (//domain objects//), indywiduami,​ przykładami,​ egzemplarzami,​ pomiarami w świecie
 +  * **problem** uczenia maszynowego (//learning problem//) polega na automatycznym,​ maszynowym zbudowaniu **modelu** przy pomocy odpowiedniego algorytmu
 +
 +==== - Zadania: czyli typy problemów które rozwiązujemy ====
 +//Tasks: the problems that can be solved with machine learning//
 +
 +''​S010''​
 +Najistotniejsze klasy **zadań** to m.in:
 +  * klasyfikacja
 +  * regresja
 +  * klasteryzacja (grupowanie)
 +  * identyfikacja struktur
 +Mogą się różnić tym co otrzymujemy na wyjściu modelu (w wyniku jego użycia).
 +
 +''​S016''​
 +Możemy mówić o modelach:
 +  - **predykcyjnych**,​ kiedy wiemy jakich zmiennych wyjściowych oczekiwać, np. w zadaniu klasyfikacji,​ gdy znamy klasy do których chcemy przyporządkować obiekty
 +  - **deskryptywnych**,​ kiedy to sam algorytm ma wypracować,​ odkryć, zaproponować w.w. zmienne
 +Ponadto modele dla zadań ML można budować w sposób:
 +  - **nadzorowany** (z nauczycielem) (//​supervised//​)
 +  - **nienadzorowany** (//​unsupervised//​)
 +
 +Istotną kwestią jest możliwość oceny jakości pracy algorytmu uczenia.
 +W procesie uczenia wypracowywany model powinien być //​ulepszany//​ (wg pewnej przyjętej miary).
 +
 +==== - Modele: czyli to co budujemy w procesie uczenia ====
 +//Models: the output of machine learning//
 +
 +''​S018''​
 +Celem algorytmu uczenia jest wypracowanie parametrów odpowiedniego modelu.
 +Modele te mogą być rożnego typu, należeć do różnych klas.
 +
 +Trzy podstawowe klasy modeli wskazane w podręczniku to modele:
 +  - **logiczne**,​ formalizowane przy pomocy pojęć logiki matematycznej,​ np. pojęcie reguły,
 +  - **geometryczne**,​ wykorzystujące pojęcia geometrii, w tym analitycznej i algebry, np. pojęcie odległości,​
 +  - **probabilistyczne**,​ wykorzystujące rachunek prawdopodobieństwa i statystykę,​ np. pojęcie prawdopodobieństwa zdarzenia.
 +
 +Ze względu na sposób działania, modele mogą mieć charakter
 +  * **grupowania**,​ lub
 +  * **oceniania**
 +obiektów.
 +
 +Na slajdach ''​S019-27''​ omówiono wstępnie przykłady modeli z poszczególnych klas.
 +A ich wzajemne relacje i klasyfikację pokazano na ''​S028,​9''​.
 +
 +==== - Cechy: to bez czego modele nie mogłyby się obejść ====
 +//Features: the workhorses of machine learning//
 +
 +**Cechy** (//​features//​) stanowią mechanizm pojęciowy dzięki któremu jesteśmy w stanie opisać obiekty.
 +Z matematycznego punktu widzenia cecha będzie funkcją, która przyporządkowuje obiektowi wartości z pewnej **dziedziny**.
 +Np. chcemy sklasyfikować różne jabłka ze względu na ich kolor.
 +'​Kolor'​ jest cechą, jego konkretna wartość, np. '​jasnoczerwony'​ jest tym, co pojawi się jako dana na wejściu modelu (tu klasyfikatora).
 +Na wyjściu pojawi się klasa do której można przypisać konkretne jabłko, np. '​dojrzałe'​.
 +
 +Na ''​S033-6''​ pokazane są różne przykłady doboru cech, pojęć, w zależności od których możemy lepiej użyć pewnych modeli.
 +Np. dzięki użyciu przekształcenia danych przy użyciu funkcji **kernel** możliwym staje się użycie klasyfikatora liniowego tam, gdzie na oryginalnych danych nie byłby w stanie zadziałać.
 +Funkcja **k** dostarcza niejako nowego, innego pojęcia (innej przestrzeni).
 +
 +--------------------
 +
 +===== - Klasyfikacja binarna =====
 +//Binary classification and related tasks//
 +
 +Klasyfikacja jest jednym z najważniejszych - najczęściej występujących - zadań ML,
 +a klasyfikacja binarna jej najważniejszym przypadkiem.
 +Między innymi dlatego, że klasyfikacje wieloklasową przeprowadzamy w oparciu o przypadek binarny.
 +
 +Do opisu zadań klasyfikacji używamy odpowiednich pojęć.
 +  * **instancja**,​ (//​instance//​) egzemplarz, przypadek, dotyczy pojedynczego wystąpienia tego czegoś co klasyfikujemy np. jabłka, oznaczmy go **x**
 +  * **przestrzeń instancji** (//instance space//) jest zbiorem wszystkich możliwych przypadków,​ oznaczmy ją kreślonym dużym **X**
 +  * **etykiety** (//label//) należą do przestrzeni etykiet (//label space//) oznaczmy je odpowiednio kreślonymi **l** i **L**. Etykiety są używane do oznaczania przykładów w zbiorze uczącym, treningowym (//training set//) Tr={tr: (x,l(x))}
 +  * wyjście klasyfikatora **y**, należy do pewnej przestrzeni **Y**
 +W ogólnym przypadku modele (w tym klasyfikatory) będą więc pewnymi funkcjami.
 +Różne scenariusze opisane są na ''​S038''​.
 +
 +Należy też pamiętać o kłopotach z jakością danych, określanych technicznie jako **szum** (//​noise//​).
 +Zaszumione może być zarówno etykietowanie (ktoś źle opisał zbiór treningowy) jak i dane wejściowe, dostajemy nietypowe jabłka albo śliwki.
 +
 +==== - Klasyfikacja ====
 +//​Classification//​
 +
 +**Klasyfikator** to funkcja X -> C.
 +W klasyfikacji binarnej zbiór C ma dwa elementy, najczęściej oznaczane jako pozytywne i negatywne, p/n, +/-, +1/-1.
 +
 +Budowany klasyfikator jest tylko pewną aproksymacją,​ przybliżeniem,​ potencjalnego klasyfikatora idealnego.
 +W procesie uczenia poprawiamy tę aproksymację.
 +
 +''​S040''​ pokazuje jak w prosty sposób przejść od drzewa pokazującego liczbę przypadków w danej klasie zależności od kombinacji cech, do drzewa decyzyjnego stanowiącego klasyfikator (czy też jego przybliżenie).
 +
 +''​S041''​
 +Żeby móc poprawić aproksymację,​ jaką jest klasyfikator musimy być wstanie ocenić jego jakość (//​performance//​).
 +Może do tego służyć **tablica krzyżowa** (//​[[wp>​Contingency table]]//).
 +Ważne pojęcia to //​true/​false positives/​negatives//​
 +
 +W tablicy na ''​S040''​ mamy:
 +  * TP = 30
 +  * TN = 40
 +  * FP = 20
 +  * FN = 10
 +Trues oznaczono na niebiesko, falses na czerwono.
 +Idealny klasyfikator powinien prawidłowo sklasyfikować wszystkie Pos = 50 i Neg = 50, podczas gdy nasza aproksymacja zidentyfikowała 40 jako p i 60 jako n.
 +
 +W tym przypadku liczność obu klas jest jednakowa (50/50).
 +Kłopoty pojawiają się, gdy jedna z klas jest nadreprezentowana,​ vide ''​S041''​ wtedy trzeba wziąć pod uwagę tę proporcję.
 +
 +=== Metryki ===
 +W celu precyzyjnej oceny jakości klasyfikatora używamy szeregu metryk.
 +  * //class ratio// (**stosunek klas**) clr = Pos/Neg
 +  * //​accuracy//​ (**dokładność**) acc = (TP+TN)/​(Pos+Neg) -- stosunek przykładów sklasyfikowanych poprawnie sklasyfikowanych do wszystkich
 +  * //error rate// err=1-acc
 +  * //recall//, //​sensitivity//,​ //true positive rate// tpr=Tp/Pos (**wrażliwość**)
 +  * //​specificity//,​ //true negative rate// tnr=TN/Neg (**swoistość**)
 +  * //​precision//,​ //​confidence//​ prec=TP/​(TP+FP) (**precyzja**)
 +  * //​F-measure//​ F=2*(precision*recall)/​(precision+recall)
 +
 +Patrz też:
 +  * [[wp>​Receiver_operating_characteristic#​Basic_concept]]
 +  * [[wp>​Binary_classification#​Evaluation_of_binary_classifiers]]
 +
 +=== Wizualizacja metryk ===
 +W celu lepszego porównywania klasyfikatorów z użyciem metryk używamy wizualizacji.
 +Najprostsza to wykres pokrycia, //coverage plot// bezpośrednio wizualizujący tablicę krzyżową.
 +Patrz ''​S043''​.
 +
 +''​S044''​
 +Bardziej zaawansowaną metodą wizualizacji jest wykres ROC
 +[[wp>​Receiver_operating_characteristic]]
 +Pozwala na porównanie klasyfikatorów które są normalizowane do tej samej przestrzeni.
 +
 +''​S050''​
 +Obszar poniżej krzywej ROC odpowiada dokładności klasyfikatora,​ związanej z ilością poprawnie sklasyfikowanych par tp/fp.
 +Obszar ten czasem nazywa się //AUC// -- //area under the (ROC) curve//.
 +
 +
 +==== - Ocenianie ====
 +//Scoring and ranking//
 +
 +Osobną metodą budowania klasyfikatorów jest użycie funkcji oceniającej,​ przypisującej pewnym kombinacjom wartości cech współczynniki.
 +Współczynniki są wyliczane w zależności od tego, ile przykładów z danej klasy opisują. ''​S047-9''​
 +To które kombinacje cech przesądzają o przynależności do konkretnej klasy zależy od porównania dokładności
 +''​S054,​5''​
 +
 +
 +==== - Prawdopodobieństwo przynależności do klas ====
 +//Class probability estimation//​
 +
 +''​S057,​8''​
 +Pokrewną grupą klasyfikatorów są takie, które oceniają prawdopodobieństwo przynależności danej instancji do klasy.
 +Służą do przewidywania przynależność instancji.
 +Na wyjściu takiego klasyfikatora dostajemy wartość prawdopodobieństwa przynależności instancji do klasy.
 +
 +--------------------
 +
 +===== - Coś więcej niż klasyfikacja binarna =====
 +//Beyond binary classification//​
 +
 +
 +==== - Klasyfikacja wieloklasowa ====
 +//Handling more than two classes//
 +
 +''​S062,​3''​
 +Mając klasyfikator kilkuklasowy możemy wyliczyć jego dokładność w poszczególnych klasach.
 +
 +Zakładając,​ że w procesie uczenia mamy tylko przykłady pozwalające na uczenie klasyfikatorów binarnych, tzn. odróżniających od siebie tylko 2 klasy, mamy dwie podstawowe metody budowania klasyfikatora wieloklasowego:​
 +  * 1-do-wiele (//​one-versus-rest//​) w którym uczymy k klasyfikatorów binarnych gdzie w uczeniu C_k pozostałe klasy są uznawane za przykłady negatywne, oraz
 +  * 1-do-1 (//​one-versus-one//​) w którym uczymy uczymy klasyfikatory dla każdej pary klas a następnie odpowiednio łączymy ich wyniki w procesie klasyfikacji.
 +
 +==== - Regresja ====
 +//​Regression//​
 +
 +''​S069''​
 +Obok klasyfikacji regresja jest jednym z ważniejszych przypadków ML.
 +Aby uniknąć **przeuczenia** (//​overfitting//​) liczba parametrów które dopasowujemy w procesie uczenia powinna być istotnie mniejsza niż liczba znany punktów/​danych/​przykładów.
 +
 +''​S069''​
 +**bias** vs. **variance**
 +Ilustracja dobrze ilustruje intuicję pozwalającą odróżnić odchylenie wyników od ich wariancji.
 +
 +
 +==== - Uczenie nienadzorowane i deskryptywne ====
 +//​Unsupervised and descriptive learning//
 +
 +''​S072''​
 +W uczeniu nienadzorowanym (klasteryzacja i uczenie deskryptywne) zadania uczenia maszynowego i problem uczenia się pokrywają.
 +Nie mamy do dyspozycji zbioru uczącego.
 +Nie mamy modelu, którego parametry poprawiamy, ile - w procesie uczenia - budujemy taki model,
 +np. określamy ile istnieje klas i jak do nich przypisywać przykłady.
 +Na uczenie nienadzworowane możemy najczęściej spojrzeć jako na **odkrywanie wiedzy** (//​knowledge discovery//​).
 +
 +''​S073-6''​
 +Istotne przypadki uczenia nienadzworowanego to:
 +  * klasteryzacja (predykacja klastrów i grupowanie),​ //​[[wp>​Cluster analysis]]//​ inaczej **[[http://​pl.wikipedia.org/​wiki/​Analiza_skupie%C5%84|Analiza skupień]]**
 +  * odkrywanie reguł asocjacyjnych //​Association rule discovery//
 +
 +
 +-------------------
  
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0