aitech-eks-pub/wyk/06_Uczenie_maszynowe.ipynb
2021-04-14 13:23:15 +02:00

5.4 KiB

Uczenie maszynowe i jego wyzwania

Uwaga: my skupiamy się na uczeniu maszynowym na tekstach (i ostatecznie zmierzamy do ekstrakcji z dokumentów tekstowych).

Oznaczenia

  • $x$ — wejście (często interpretowane jako wektor $\vec{x}$)
  • $y$ — oczekiwane wyjście
  • $\hat{y}$ — przewidywane wyjście
  • $(X, Y)$, zbiór wejść $X$ traktujemy jako listę $X = (x_1, \dots, x_N)$ albo jako macierz, a $Y$ jest na ogół ciągiem liczb albo wektorem
  • $V$ — słownik (zbiór słów/symboli)
    • $V^*$ — zbiór wszystkich tekstów (ciągów na $V$)
  • $C = \{c_1, c_2, \dots, c_n\}$ — zbiór klas
    • $\bar{c}$ - dopełnienie klasy $c$
  • $L = \{l_1, l_2, \dots, l_n\}$ — zbiór etykiet/tagów (_labels/tags)
    • czasami wymiennie używać będziemy terminów klasa oraz etykieta/tag
    • $L^*$ — zbiór wszystkich ciągów etykiet
  • $q$ — zapytanie

Rekomendacje książkowe

(Bez aparatu matematycznego! Na przykład do polecenia laikowi.)

  • Stanisław Lem, _Summa technologiae, Wydawnictwo Literackie, 1964
    • może zacząć od spojrzenia, jak kiedyś sobie to wyobrażano?
  • Pedro Domingos, _Naczelny Algorytm. Jak jego odkrycie zmieni nasz świat, Helion, 2016
    • książka się trochę zestarzała, czas pokazał, że autor nie do końca trafnie przewidział, jak się dalej potoczą losy uczenia maszynowego (sieci neuronowe zdecydowanie wygrały)
    • ... ale bardzo ciekawe spostrzeżenia, dobrze się czyta
  • Kai-Fu Lee, _Inteligencja sztuczna, rewolucja prawdziwa, Media Rodzina, 2019.
    • ciekawe w kontekście ekonomicznym, szczególnie Chin

Podstawowa idea

Uczenie maszynowe to odwrotność programowania (trochę tak jak $\sqrt{...}$ jest odwrotnością $^2$).

Uczenie maszynowe a programowanie

(Na razie trochę upraszczamy - odnosimy się tylko do uczenia nienadzorowanego.)

5 epok uczenia maszynowego

I. Systemy regułowe

Systemy regułowe, wyrażenia regularne, systemy eksperckie, programowanie logiczne (Prolog)

Praca człowieka: tworzenie reguł (czasochłonne!)

II. Proste algorytmy uczenia maszynowego (lata 90.)

Naiwny klasyfikator bayesowskie, regresja logistyczna, SVM, XGBoost

Praca człowieka: inżynieria cech, optymalizacja hiperparametrów, unikanie przeuczenia

III. Sieci neuronowe 1 - ucz na _big data (2012-2016)

Sieci feed-forward, splotowe, LSTM; wymagane duże zbiory uczące (w trybie nadzorowanym).

Praca człowieka: specyficzna architektura, przygotowanie dużego zbioru danych

IV. Sieci neuronowe 2 - pretrenuj i dostrajaj (2017-2020)

Sieci konwolucyjne, LSTM (ELMo), Transformer (BERT). Zbiory uczące do uczenia nadzorowanego nie muszą być obszerne.

Praca człowieka: dostrajanie modelu.

V. Sieci neuronowe 3 - pretrenuj i... po po prostu korzystaj (2019-)

Duże wielowarstwowe generatywne modele Transformer (GPT-2/3, T5), uczenie few-, one- i zero-shot.

Praca człowieka: jak sformułować zadanie w języku naturalnym?

Rodzaje uczenia maszynowego

  • uczenie nienadzorowane (_unsupervised learning)
  • uczenie nadzorowane (_supervised learning)
    • predykcja prostej wartości
      • klasyfikacja
        • klasyfikacja binarna
        • klasyfikacja wieloklasowa
      • regresja
    • ekstrakcja informacji
    • zadania _seq2seq
      • etykietowanie sekwencji (_sequence labeling)
      • tłumaczenie maszynowe (szeroko rozumiane)
        • automatyczne streszczanie (sumaryzacja)

Uczenie maszynowe - widok z góry

Wyzwania uczenia maszynowego