AIwiki
Menu
Dla Studentów
HeKatE
Public
- The KESE workshop (EN only)
- Mindstorms (archive)
Różnice między wybraną wersją a wersją aktualną.
— |
pl:dydaktyka:ml:mlrep3 [2019/06/27 15:50] (aktualna) |
||
---|---|---|---|
Linia 1: | Linia 1: | ||
+ | |||
+ | ====== Peter Flach: Machine Learning, repetytorium 3 ====== | ||
+ | |||
+ | ===== -#7 Modele liniowe ===== | ||
+ | //Linear models// | ||
+ | |||
+ | Cechą charakterystyczną tych modeli jest operowanie pojęciami dotyczącymi geometrii przestrzeni, np. w układzie współrzędnych kartezjańskich. | ||
+ | Modele liniowe wykorzystują pojęcia linii, lub (hiper) płaszczyzny do ustrukturalizowania przestrzeni instancji. | ||
+ | |||
+ | Zaletą modeli liniowych jest ich względna prostota, są to modele: | ||
+ | - parametryczne - mają określoną strukturę, która jest dopasowywana w procesie uczenia poprzez parametry | ||
+ | - stabilne - niewielkie zmiany danych uczących wywołują relatywnie niewielkie zmiany w otrzymywanych parametrach modelu | ||
+ | - mniej podatne na przeuczenie - głównie ze względu na niewielką liczbę parametrów; za to czasami mogą występować sub optymalne kombinacje parametrów. | ||
+ | |||
+ | ==== Metoda najmniejszych kwadratów ==== | ||
+ | //The least-squares method// | ||
+ | |||
+ | ''S180'' | ||
+ | Model jednowymiarowej regresji liniowe, i jego interpretacja geometryczna na ''S181''. | ||
+ | Slajd ''S182'' pokazuje wpływ (relatywnie niewielki-stabilność) na otrzymane parametry. | ||
+ | |||
+ | ''S183-5'' | ||
+ | Opis przypadku wielowymiarowego wymaga notacji macierzowej. | ||
+ | |||
+ | ''S186'' | ||
+ | Jeżeli cechy są nieskorelowane, przypadek wielowymiarowy może zdekomponowany na N przypadków jednowymiarowych. | ||
+ | Tymczasem silna korelacja może prowadzić do niestabilności modelu. | ||
+ | Aby ją ograniczyć stosuje się //regularyzację//. | ||
+ | |||
+ | ''S187-191'' | ||
+ | Regresję możemy stosować nie tylko do aproksymacji funkcji, ale przede wszystkim do konstruowania klasyfikatora binarnego - separującego przestrzeń na 2 części. | ||
+ | Staramy się minimalizować liczbę źle sklasyfikowanych przypadków pozytywnych i negatywnych. | ||
+ | Na ''S190'' pokazana jest interpretacja geometryczna, w tym przypadku 3 przykłady są niepoprawnie sklasyfikowane - na górnej osi 1 fn (po lewej) i na dolnej 2 fp (po prawej). | ||
+ | |||
+ | ==== Perceptron jako klasyfikator liniowy ==== | ||
+ | //The perceptron: a heuristic learning algorithm for linear classifiers// | ||
+ | |||
+ | ''S192'' | ||
+ | Perceptron reprezentowany jako prosta liniowa sieć neuronowa jest przykładem klasyfikatora binarnego dającego dobre rezultaty. | ||
+ | W procesie uczenia uaktualniamy wektory wag, ze współczynnikiem nazywanym prędkością uczenia. | ||
+ | Algorytm jest na ''S193'' - wagi są powiązane z cechami obiektów. | ||
+ | |||
+ | ''S194'' | ||
+ | Prędkość uczenia może polepszać zbieżność tego procesu, jednak tylko jeśli nie jest za duża. | ||
+ | |||
+ | ''S195'' | ||
+ | W przypadku dualnym, wagi są powiązane z instancjami obiektów (nie cechami). | ||
+ | A sam algorytm wygląda analogicznie ''S196''. | ||
+ | |||
+ | ''S197'' | ||
+ | Porównuje omówione klasyfikatory liniowe. | ||
+ | |||
+ | ==== Metody z wektorem wspierającym ==== | ||
+ | //Support vector machines// | ||
+ | |||
+ | ''S200'' | ||
+ | ilustruje koncepcję [[wp>Support Vector Machine]]. | ||
+ | |||
+ | ''S201-7'' | ||
+ | pokazują metodę maksymalizacji marginesów pomiędzy prostą, a skrajnymi/najbliższymi przykładami, z użyciem | ||
+ | [[http://pl.wikipedia.org/wiki/Mno%C5%BCniki_Lagrange%E2%80%99a|mnożników Lagrange'a]] pozwalających ro rozwiązanie problemu dualnego. | ||
+ | W tej sytuacji w celu znalezienia rozwiązania analizujemy iloczyn skalarny współczynników w [[http://pl.wikipedia.org/wiki/Macierz_Grama|macierzy Grama]]. | ||
+ | |||
+ | ''S209-13'' | ||
+ | Ilustrują metodę zwiększenia tolerancji co do ustalenia marginesów za pomocą specjalnych zmiennych "luzujących" (//slack//), dzięĸi temu uzyskujemy zmienny margines błędu. | ||
+ | |||
+ | Przydatna dokumentacja do SVM: | ||
+ | * [[http://www.support-vector-machines.org/|Support Vector Machines]] | ||
+ | * [[http://www.tristanfletcher.co.uk/SVM%20Explained.pdf|Support Vector Machines Explained]] | ||
+ | * [[http://research.microsoft.com/en-us/um/people/cburges/papers/svmtutorial.pdf|A Tutorial on Support Vector Machines for Pattern Recognition]] | ||
+ | * [[http://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf|A Practical Guide to Support Vector Classifcation]] | ||
+ | |||
+ | Wybrane narzędzia do SVM: | ||
+ | * [[http://www.support-vector-machines.org/SVM_soft.html|lista narzędzi]] | ||
+ | * [[http://www.csie.ntu.edu.tw/~cjlin/libsvm/|libsvm]] | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==== Klasyfikatory liniowe a prawdopodobieństwo ==== | ||
+ | //Obtaining probabilities from linear classifiers// | ||
+ | |||
+ | ''S215-8'' | ||
+ | poprzez rzutowanie przestrzeni przykładów do przestrzeni odpowiedniej funkcji gęstości prawdopodobieństwa, możemy uzyskać intepretację wyniku działania klasyfikatora liniowego w postaci prawdopodobieństwa, jest to tzw. kalibracja. | ||
+ | |||
+ | |||
+ | ==== Klasyfikacja nieliniowa - kernels ==== | ||
+ | //Going beyond linearity with kernel methods// | ||
+ | |||
+ | ''S220-3'' | ||
+ | Wprowadzenie specjalnego przekształcenia ([[wp>Kernel_trick]]) pozwala na klasyfikację danych, które nie są liniowo separowalne w oryginalnej przestrzeni. | ||
+ | Przykład wizualizacji [[http://www.youtube.com/watch?v=3liCbRZPrZA|Kernel visualization]]. | ||
+ | Wybrane kernele to np. [[wp>Polynomial_kernel]], [[wp>Radial_basis_function_kernel]]. | ||
+ | |||
+ | |||
+ | ===== -#8 Modele odległościowe ===== | ||
+ | //Distance-based models// | ||
+ | |||
+ | ''S225-8'' | ||
+ | uogólniona miara Minkowskiego pozwala na odwzorowanie rożnych metryk (def. na ''S227''). | ||
+ | |||
+ | ==== Definicje sąsiedztwa ==== | ||
+ | //Neighbours and exemplars// | ||
+ | |||
+ | ''S230-3'' | ||
+ | W zależności od doboru metryki można różnie rozumieć sąsiedztwo. | ||
+ | |||
+ | ==== Metoda najbliższego sąsiada ==== | ||
+ | //Nearest-neighbour classification// | ||
+ | |||
+ | ''S235-6'' | ||
+ | Bazując na wcześniej zdefiniowanej tassalacji Voronoia, | ||
+ | buduje się [[wp>K-Nearest Neighbor Algorithm]], | ||
+ | w którym przyjmujemy //a priori// liczbę k sąsiadów branych pod uwagę do określenia granic klas. | ||
+ | |||
+ | ==== Klastryzacja odległościowa ==== | ||
+ | //Distance-based clustering// | ||
+ | |||
+ | ''S238-246'' | ||
+ | Algorytm K-means pozwala na klastryzację (grupowanie) danych. | ||
+ | Jest to klasyczny przykład uczenia nienadzorowanego. | ||
+ | |||
+ | ''S249-252'' | ||
+ | K-menas jest wrażliwy na charakter danych wejściowych, mogą one wymagać preprocesingu, np. skalowania. | ||
+ | Wykresy //silhouettes// pozwalają na porównywanie jakości grupowań. | ||
+ | |||
+ | Przykład klasteryzacji przy pomocy narzędzia [[http://www.carrot2.org|Carrot 2]]. | ||
+ | |||
+ | ==== Klastryzacja hierarchiczna ==== | ||
+ | //Hierarchical clustering// | ||
+ | |||
+ | ''S254-7'' | ||
+ | Dendogramy są metodą wizualizacji klastryzaji hierarchicznej. | ||
+ | |||