uczenie-maszynowe/wyk/01_Wprowadzenie.ipynb
2023-11-09 17:46:13 +01:00

12 KiB
Raw Permalink Blame History

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?

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?

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