48 KiB
48 KiB
Uczenie maszynowe
1. Wprowadzenie
1.1. Czym jest uczenie maszynowe?
Sztuczna inteligencja (_artificial intelligence)
- Naśladowanie ludzkich procesów poznawczych za pomocą komputerów
- Konstruowanie systemów (maszyn), których działanie podobne jest do przejawów ludzkiej inteligencji
- Dziedzina nauki, która zajmuje się naśladowaniem ludzkiej inteligencji przez komputery
- Obejmuje m.in. logikę rozmytą, algorytmy ewolucyjne, robotykę i uczenie maszynowe
Uczenie maszynowe (_machine learning)
- Tworzenie systemów, które potrafią doskonalić się przy pomocy zgromadzonego doświadczenia
Sieci neuronowe (neural networks)
- Rodzaj struktur matematycznych, które wykonują obliczenia przy pomocy elementów zwanych _sztucznymi neuronami
- Budowa sieci neuronowych i zasady działania sztucznych neuronów były luźno inspirowane działaniem neuronów w mózgu
Uczenie głębokie (deep learning)
- Użycie sieci neuronowych do automatycznego wydobywania cech z surowych danych
Data science
- Dziedzina nauki zajmująca się przetwarzaniem danych w celu wydobycia z nich wiedzy
Uczenie maszynowe – klasyczne definicje
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
import IPython
IPython.display.YouTubeVideo('R9OHn5ZF4Uo', width=800, height=600)
1.2. Zastosowania uczenia maszynowego
- rozpoznawanie i rozumienie mowy
- rozpoznawanie obrazów
- tłumaczenie maszynowe
- 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
Co potrafi uczenie maszynowe?
- _Two Minute Papers - streszczenia ciekawszych artykułów naukowych z dziedziny ML: https://www.youtube.com/user/keeroyz, np.:
- AI gra w chowanego i "psuje" grę: https://youtu.be/Lu56xVlZ40M
- Generowanie twarzy itp.:
- Blog inicjatywy OpenAI: https://openai.com/blog, np.:
- generowanie tekstu: https://openai.com/blog/better-language-models
- generowanie obrazów na podstawie opisu słownego: https://openai.com/blog/dall-e
- Zamiana rysunków odręcznych na zdjęcia: https://affinelayer.com/pixsrv
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: