zuma/w1/zumz181a.ipynb
2021-03-17 20:09:43 +01:00

234 KiB
Raw Blame History

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

IPython.display.YouTubeVideo('acKTCF0sAfc', width=800, height=600)
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

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...