Różnice

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

Odnośnik do tego porównania

pl:dydaktyka:ml:mlrep1 [2013/07/04 13:46]
gjn [1 Co składa się na uczenie maszynowe]
pl:dydaktyka:ml:mlrep1 [2019/06/27 15:50]
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**) 
- 
-Patrz też [[wp>​Receiver_operating_characteristic#​Basic_concept]] 
- 
-=== 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// 
- 
- 
-------------------- 
  
pl/dydaktyka/ml/mlrep1.txt · ostatnio zmienione: 2019/06/27 15:50 (edycja zewnętrzna)
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