forked from pms/uczenie-maszynowe
12 KiB
12 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
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
Na czym polega uczenie maszynowe?
- Jak uczą się maszyny? https://www.youtube.com/watch?v=R9OHn5ZF4Uo
- Jak sztuczna inteligencja tworzy obrazy na podstawie opisów? https://www.youtube.com/watch?v=SVcsDDABEkM
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?
- Tekst → obraz: https://labs.openai.com
- Tekst → wideo: https://make-a-video.github.io
- Generowanie obrazów twarzy: https://thispersondoesnotexist.com
- Generowanie obrazów kotów: https://thiscatdoesnotexist.com
- Zdanie → artykuł: https://blog.openai.com/better-language-models
- Rysunek odręczny → zdjęcie: https://affinelayer.com/pixsrv
- Film, którego scenariusz napisała sztuczna inteligencja: https://www.youtube.com/watch?v=Kx-2PyrhnFE
- Piosenka w całości wygenerowana przez AI (muzyka i słowa): https://www.youtube.com/watch?v=fN-bQddbbUI
- Kanał YouTube "Two-Minute Papers" - krótkie prezentacje najnowszych artykułów naukowych z dziedziny sztucznej inteligencji: https://www.youtube.com/c/K%C3%A1rolyZsolnai
- AI uczy się grać w chowanego: https://www.youtube.com/watch?v=Lu56xVlZ40M
- Generowanie twarzy: https://www.youtube.com/watch?v=SWoravHhsUU
- Robot uczy się składać obiekty, których wcześniej nie widział: https://www.youtube.com/watch?v=O8l4Kn-j-5M
- "Ożywianie" dzieł sztuki: https://www.youtube.com/watch?v=4J0cpdR7qec
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: