234 KiB
Uczenie maszynowe 2017/2018
1. Wprowadzenie. Regresja liniowa
1.1. Uczenie maszynowe – przykłady zastosowań
Rozpoznawanie i rozumienie mowy
import IPython
IPython.display.YouTubeVideo('qGU-SqUTees', width=800, height=600)
IPython.display.YouTubeVideo('UlZtr9fjQcU', width=800, height=600)
IPython.display.YouTubeVideo('P18EdAKuC1U', width=800, height=600)
Rozpoznawanie obrazów
Źródło: Christoph Körner, https://chaosmail.github.io/deeplearning/2016/10/22/intro-to-deep-learning-for-computer-vision/
Źródło: Christoph Körner, https://chaosmail.github.io/deeplearning/2016/10/22/intro-to-deep-learning-for-computer-vision/
IPython.display.YouTubeVideo('acKTCF0sAfc', width=800, height=600)
Źródło: https://www.techspot.com/news/58872-google-new-image-recognition-software-can-describe-entire.html
IPython.display.YouTubeVideo('8BFzu9m52sc', width=800, height=600)
Tłumaczenie maszynowe
IPython.display.YouTubeVideo('06olHmcJjS0', width=800, height=600)
IPython.display.YouTubeVideo('rek3jjbYRLo', width=800, height=600)
IPython.display.YouTubeVideo('_GdSC1Z1Kzs', width=800, height=600)
Inne zastosowania
- systemy rekomendacyjne
- detekcja spamu
- klasyfikacja dokumentów/obrazów
- analiza nastrojów
- rozpoznawanie pisma odręcznego
- samochody autonomiczne
- przewidywanie kursów giełdowych
- automatyczna diagnostyka medyczna
- analiza genów
- sztuczna inteligencja w grach
- ...
IPython.display.YouTubeVideo('SUbqykXVx0A', width=800, height=600)
1.2. Czym jest uczenie maszynowe?
Uczenie maszynowe to dziedzina nauki, która daje komputerom umiejętność uczenia się bez programowania ich _explicite.
— Arthur Samuel, 1959
Mówimy, że program komputerowy uczy się z doświadczenia E w odniesieniu do zadania T i miary skuteczności P, jeżeli jego skuteczność wykonywania zadania T mierzona według P wzrasta z doświadczeniem E.
— Tom Mitchell, 1998
Źródło: Drew Conway, http://drewconway.com/zia/2013/3/26/the-data-science-venn-diagram
Uczenie maszynowe to:
- doskonalenie działania dla pewnych zadań na podstawie doświadczenia
- tworzenie systemów, które doskonalą swoje działania na podstawie przeszłych doświadczeń
- zestaw metod, które potrafią w sposób automatyczny wykrywać wzorce w danych, a następnie używać wcześniej niezaobserwowanych wzorców do przewidywania przyszłych zjawisk
Charakterystyczne cechy uczenia maszynowego:
- „automatyzacja automatyzacji”
- komputer „sam się programuje”
- modelowanie danych zastępuje pisanie programu
1.3. Metody uczenia maszynowego
Z jakimi rodzajami zadań mamy do czynienia?
- Uczenie nadzorowane
- Regresja
- Klasyfikacja
- Uczenie nienadzorowane
- Klastrowanie
- Uczenie przez wzmacnianie
- Systemy rekomendacyjne
Klasyfikator
- Klasyfikator to funkcja $h$, która przykładowi $x$ przyporządkowuje prognozowaną wartość $h(x)$.
- Jeżeli funkcja $h$ jest ciągła, to mówimy o zagadnieniu regresji.
- Jeżeli funkcja $h$ jest dyskretna, to mówimy o zagadnieniu klasyfikacji.
Algorytm uczący
- Dane są przykładowe obserwacje $(X, y)$.
- Staramy się dobrać funkcję (klasyfikator) $h$ tak, żeby $h(x) \sim y$.
W jaki sposób można określić, czy klasyfikator jest „dobry”?
Podział metod uczenia maszynowego
[Każdy algorytm uczenia maszynowego] stanowi kombinację dokładnie trzech składników. Te składniki to:
- reprezentacja
- ewaluacja
- optymalizacja
— Pedro Domingos, “A Few Useful Things to Know about Machine Learning”
Reprezentacja
- drzewa decyzyjne
- regresja liniowa
- regresja logistyczna
- naiwny klasyfikator bayesowski
- algorytm $k$ najbliższych sąsiadów
- sieci neuronowe
- maszyny wektorów nośnych
- algorytmy genetyczne
- ...
Ewaluacja
- skuteczność (dokładność)
- precyzja i pokrycie
- błąd średniokwadratowy
- _information gain
- _logistic loss
- BLEU
- ...
Optymalizacja
- optymalizacja kombinatoryczna:
- wyszukiwanie zachłanne,
- _beam search...
- optymalizacja ciągła:
- nieograniczona:
- metoda gradientu prostego,
- metoda Newtona...
- ograniczona:
- programowanie liniowe...
- nieograniczona: