Systemy agentowe Uwagi organizacyjne Jędrzej Potoniec
Kontakt mgr inż. Jędrzej Potoniec Jedrzej.Potoniec@cs.put.poznan.pl http://www.cs.put.poznan.pl/jpotoniec https://github.com/jpotoniec/sa
Zasady oceniania wykład test wielokrotnego wyboru laboratoria wykonanie ćwiczeń laboratoryjnych
Skala ocen % punktów ocena ( ; 50] 2,0 (50; 60] 3,0 (60; 70] 3,5 (70; 80] 4,0 (80; 90] 4,5 (90; ) 5,0
Skąd nazwa? S. Russel, P. Norwig Artificial Intelligence A Modern Approach (3ed) An agent is anything that can be viewed as perceiving its environment throught sensors and acting upon that environment through actuators.
Skąd nazwa? S. Russel, P. Norwig Artificial Intelligence A Modern Approach (3ed) An agent is anything that can be viewed as perceiving its environment throught sensors and acting upon that environment through actuators. człowiek wzrok, słuch/ręce, nogi robot kamera, mikrofon/silniki agent programowy naciśnięcia klawiszy, odczyt plików/ekran, zapis plików
Skąd nazwa? S. Russel, P. Norwig Artificial Intelligence A Modern Approach (3ed) An agent is anything that can be viewed as perceiving its environment throught sensors and acting upon that environment through actuators. człowiek wzrok, słuch/ręce, nogi robot kamera, mikrofon/silniki agent programowy naciśnięcia klawiszy, odczyt plików/ekran, zapis plików agent agenty, nie: agent agenci
Literatura I. Goodfellow, Y. Bengio, A. Courville Deep Learning MIT Press 2016 www.deeplearningbook.org
Literatura Aurélien Géron Hands-On Machine Learning with Scikit-Learn and TensorFlow O Reilly Media 2017
Plan wykładu 1 Regresja liniowa, wielomianowa i logistyczna 2 Warstwowe sieci neuronowe 3 Uczenie ze wzmocnieniem
Program uczący się T. Mitchell Machine Learning 1997 Program komputerowy uczy się z doświadczenia E względem pewnej klasy zadań T i miary jakości P, jeżeli wartość jego miary jakości P na zadaniach z klasy T poprawia się wraz ze ilością doświadczenia E.
Niewyczerpująca lista klas zadań T klasyfikacja
Niewyczerpująca lista klas zadań T klasyfikacja klasyfikacja z brakującymi wejściami
Niewyczerpująca lista klas zadań T klasyfikacja klasyfikacja z brakującymi wejściami regresja
Niewyczerpująca lista klas zadań T klasyfikacja klasyfikacja z brakującymi wejściami regresja transkrypcja
Niewyczerpująca lista klas zadań T klasyfikacja klasyfikacja z brakującymi wejściami regresja transkrypcja tłumaczenie maszynowe
Niewyczerpująca lista klas zadań T klasyfikacja klasyfikacja z brakującymi wejściami regresja transkrypcja tłumaczenie maszynowe przewidywanie złożonych struktur
Niewyczerpująca lista klas zadań T klasyfikacja klasyfikacja z brakującymi wejściami regresja transkrypcja tłumaczenie maszynowe przewidywanie złożonych struktur detekcja anomalii
Niewyczerpująca lista klas zadań T klasyfikacja klasyfikacja z brakującymi wejściami regresja transkrypcja tłumaczenie maszynowe przewidywanie złożonych struktur detekcja anomalii synteza i próbkowanie
Niewyczerpująca lista klas zadań T klasyfikacja klasyfikacja z brakującymi wejściami regresja transkrypcja tłumaczenie maszynowe przewidywanie złożonych struktur detekcja anomalii synteza i próbkowanie uzupełnianie brakujących wejść
Niewyczerpująca lista klas zadań T klasyfikacja klasyfikacja z brakującymi wejściami regresja transkrypcja tłumaczenie maszynowe przewidywanie złożonych struktur detekcja anomalii synteza i próbkowanie uzupełnianie brakujących wejść usuwanie szumu
Niewyczerpująca lista klas zadań T klasyfikacja klasyfikacja z brakującymi wejściami regresja transkrypcja tłumaczenie maszynowe przewidywanie złożonych struktur detekcja anomalii synteza i próbkowanie uzupełnianie brakujących wejść usuwanie szumu estymacja rozkładu prawdopodobieństwa
Miary jakości P Liczbowy sposób określenia jak dobrze/źle program rozwiązuje zadanie T. Bywa prosta do zdefiniowania i obiektywna, np. trafność klasyfikacji (ang. accuracy) w zadaniu jaka cyfra jest na rysunku odpowiedzi poprawne wszystkie odpowiedzi ale również nieobiektywna, np. trafność klasyfikacji w zadaniu czy ten pasażer jest terrorystą pasażerowie, którzy nie są terrorystami wszyscy pasażerowie albo trudna do zdefiniowania Grzegorz ma kota 1 Grzegorz s got a cat 2 Grzegorz has a cat 3 He has a cat (Google Translate) 4 Gregory has a cat 100%
Doświadczenie E uczenie nadzorowane (ang. supervised): zbiór przykładów opisanych cechami wraz z etykietami uczenie nienadzorowane (ang. unsupervised): zbiór przykładów opisanych cechami uczenie ze wzmocnieniem (ang. reinforcement): środowisko, w którym można wykonywać pewne akcje uczenie częściowo nadzorowane (ang. semi-supervised): niektóre przykłady mają etykiety
Reprezentacja Macierz cech X mająca n wierszy oraz p kolumn, zwykle liczby rzeczywiste: X 1,1 X 1,2... X 1,p X 2,1 X 2,2... X 2,p X =...... Rn p X n,1 X n,2... X n,p
Reprezentacja Wektor etykiet y y 1 y 2 y =. Rn y n
Regresja liniowa Mając macierz cech X oraz wektor etyket y przewidzieć wektor parametrów w tak, żeby błąd średniokwadratowy (ang. mean-square error (MSE)) był jak najmniejszy: MSE = 1 n n (y i ŷ i ) 2 i=1 ŷ i = w T X i ŷ = Xw
Regresja liniowa przypadek jednowymiarowy p = 1 X jest wektorem kolumnowym typu n, w jest pojedynczą liczbą MSE = 1 n (y i wx i ) 2 n i=1 MSE jest najmniejsze MSE = 0 Policzmy!
Przykład Przewidzieć koszt paszy y w zależności od liczby prosiaków X X 4 7 9 w MSE y (1) 340 595 765??
Przykład Przewidzieć koszt paszy y w zależności od liczby prosiaków X X 4 7 9 w MSE y (1) 340 595 765?? y (2) 348,5 586,5 765??
Przykład Przewidzieć koszt paszy y w zależności od liczby prosiaków X X 4 7 9 w MSE y (1) 340 595 765?? y (2) 348,5 586,5 765?? y (3) 390 645 815??
Regresja liniowa przypadek jednowymiarowy p = 1 z wyrazem wolnym X jest wektorem kolumnowym typu n, w jest pojedynczą liczbą MSE = 1 n (y i wx i b) 2 n i=1 MSE jest najmniejsze MSE = 0
Prosiaki Przewidzieć koszt paszy y w zależności od liczby prosiaków X X 4 7 9 w b MSE y (3) 390 645 815???
Regresja liniowa wariant macierzowy X 1,1 X 1,2... X 1,p 1 X 2,1 X 2,2... X 2,p 1 X =...... 1 Rn (p+1) X n,1 X n,2... X n,p 1
Regresja liniowa wariant macierzowy X 1,1 X 1,2... X 1,p 1 X 2,1 X 2,2... X 2,p 1 X =...... 1 Rn (p+1) X n,1 X n,2... X n,p 1 4 1 390 [ ] 85 X = 7 1 y = 645 w = 50 9 1 815 [ ] 85 ŷ = Xw = 4 1 7 1 9 1 50 390 645 815
Regresja liniowa wariant macierzowy Policzmy! MSE = 1 n y Xw 2 2 = 1 n (y Xw)T (y Xw) w MSE = 0
Prosiaki Policzmy! ( 1 w = X X) T X T y 4 1 390 X = 7 1 y = 645 9 1 815
Regresja wielomianowa x 1 1 x1 k x X = 2 1... 1 X = x 2 k... x n 1 x k n x1 k 1... x 1 1 x2 k 1... x 2 1 xn k 1... x n 1
Regresja wielomianowa x 1 1 x1 k x X = 2 1... 1 X = x 2 k... x n 1 x k n x1 k 1... x 1 1 x2 k 1... x 2 1 xn k 1... x n 1 4 1 64 16 4 1 X = 7 1 X = 343 49 7 1 9 1 729 81 9 1
Prosiaki Czarne: y = 85x + 50 MSE = 0 Czerwone: y = x 4 22x 3 + 167x 2 421x + 554 MSE = 0 Niebieskie: y = 517,5 MSE = 52381 1,000 900 800 700 600 500 400 300 200 100 0 1 2 3 4 5 6 7 8 9 10
Znajdźmy więcej prosiaków: zbiór testowy Czarne: y = 85x + 50 MSE = 0 Czerwone: y = x 4 22x 3 + 167x 2 421x + 554 MSE = 7296 Niebieskie: y = 517,5 MSE = 64423 1,000 900 800 700 600 500 400 300 200 100 0 1 2 3 4 5 6 7 8 9 10
Czy prosiaki uczące i prosiaki testowe się różnią? Założenie i.i.d Identicially and idependently distributed Zakłada się, że wszystkie przykłady uczące i testowe pochodzą z tego samego rozkładu prawdopodobieństwa, i zostały wybrane z niego niezależnie od siebie.
Zbyt słabe i nadmierne dopasowanie Zbyt słabe dopasowanie (ang. underfitting) Duży błąd na zbiorze uczącym i duży błąd na zbiorze testowym Nadmierne dopasowanie (przeuczenie) (ang. overfitting) Mały błąd na zbiorze uczącym i duży błąd na zbiorze testowym
Zbyt słabe i nadmierne dopasowanie I. Goodfellow, Y. Bengio, A. Courville Deep Learning MIT Press 2016, str. 112
Parametry i hiperparametry parametry są dobierane przez algorytm w procesie uczenia, np. wektor w w regresji liniowej hiperparametry są dobierane przez użytkownika, żeby sterować procesem uczenia, np. stopień wielomianu w regresji wielomianowej
Dobór hiperparametrów i zbiór walidujący Dobór hiperparametrów za pomocą zbioru testowego prowadzi do przeuczenia
Dobór hiperparametrów i zbiór walidujący Dobór hiperparametrów za pomocą zbioru testowego prowadzi do przeuczenia dobór parametrów (uczenie) przez minimalizację błędu na zbiorze uczącym dobór hiperparametrów przez minimalizację błędu na zbiorze walidującym szacowanie jakości na zbiorze testowym
Zwyczajowy podział danych Podział losowy w nastepujących proporcjach zbiór testowy 70% zbiór walidujący 10% zbiór testowy 20%
Sprawdzian krzyżowy (ang. cross-validation) 1 Zbiór uczący dzielony jest na k podzbiorów 2 Dla i = 1, 2,..., k: zbiór walidujący podzbiór i zbiór uczący wszystkie pozostałe podzbiory 3 Za wynik walidacji przyjmuje się średnią ze wszystkich k walidacji (odchylenie standardowe gratis!) Jakie są zalety i wady w stosunku do poprzedniego podejścia?
Problemy z regresją liniową ( ) w = X T 1 X X T y } {{ } p p Złożoność odwracania macierzy: O(p 2.4 )
Problemy z regresją liniową ( ) w = X T 1 X X T y } {{ } p p Złożoność odwracania macierzy: O(p 2.4 ) Problemy numeryczne
Problemy z regresją liniową ( ) w = X T 1 X X T y } {{ } p p Złożoność odwracania macierzy: O(p 2.4 ) Problemy numeryczne Trudności z uogólnieniem: trzeba rozwiązać równanie
Schodzenie po gradiencie (ang. gradient descent) I. Goodfellow, Y. Bengio, A. Courville Deep Learning MIT Press 2016, str. 80
Schodzenie po gradiencie (ang. gradient descent) A. Géron, Hands-On Machine Learning with Scikit-Learn and TensorFlow 2017, str. 111
Schodzenie po gradiencie (ang. gradient descent) J(w, b) = J(w, b) = 1 n (wx i + b y i ) 2 n i=1 ] ni=1 2x i (wx i + b y i ) ni=1 = 2 n (wx n 2 (wx i + b y i ) i + b y i ) n i=1 [ ] [ ] w w = ε J(w, b) b [ 1 n 1 b [ ] xi 1
Prosiaki schodzące po gradiencie krok w b MSE w MSE b MSE 0 0 0 1280750 27700 1035 1 166.20 6.21 840233 22433 805 2 31.60 1.38 551427 18159 684 3 140.56 5.48 362082 14708 522... 3102 85.01 49.96 0.001 0.002 0.014... 6590 85.00 50.00 0.000 0.000 0.000
Prosiaki schodzące po gradiencie 1400 1200 1000 800 MSE 600 400 200 0 0 1000 2000 3000 4000 5000 6000 krok Warunek stopu: MSE < 1 10 lub J < 1 10
Stochastyczne schodzenie po gradiencie Stochastic gradient descent Jeżeli przykładów jest dużo, to schodzenie po gradiencie może być powolne. Zamiast tego w każdym kroku wybieramy losowo jeden przykład uczący i obliczamy gradient wyłącznie na jego podstawie.
Stochastyczne schodzenie po gradiencie A. Géron, Hands-On Machine Learning with Scikit-Learn and TensorFlow 2017, str. 117
Prosiaki stochastycznie schodzące po gradiencie 1600 1400 1200 1000 MSE 800 600 400 200 0 0 1000 2000 3000 4000 5000 6000 krok Warunek stopu: MSE przez ostatnie 10 kroków < 1 10
Schodzenie po gradiencie z mini-grupami Mini-batch gradient descent W kolejnych krokach schodzenia po gradiencie wybieramy (niewielki) podzbiór przykładów uczących do obliczeń stabilniejszy zysk wydajnościowy z obliczeń macierzowych
Problemy ze schodzeniem po gradiencie I. Goodfellow, Y. Bengio, A. Courville Deep Learning MIT Press 2016, str. 81
Problemy ze schodzeniem po gradiencie A. Géron, Hands-On Machine Learning with Scikit-Learn and TensorFlow 2017, str. 112
Problemy ze schodzeniem po gradiencie A. Géron, Hands-On Machine Learning with Scikit-Learn and TensorFlow 2017, str. 112
Problemy ze schodzeniem po gradiencie A. Géron, Hands-On Machine Learning with Scikit-Learn and TensorFlow 2017, str. 113
Skalowanie standaryzacja min-max X i,j = X i,j = X i,j X,j σ X,j X i,j min k {X k,j } max k {X k,j } min k {X k,j } Czym różnią się te dwa podejścia?
Trochę bardziej skomplikowany problem regresji y = 0,02x 3 + 10x + 5 + N(0, 100) niebieski: proces, pomarańczowy: zb. treningowy, zielony: zb. walidujący 1750 1500 1250 1000 750 500 250 20.0 22.5 25.0 27.5 30.0 32.5 35.0 37.5 40.0
Możliwe rozwiązanie (I) 893.16 20562.74x 1 + 63517.63x 2 65676.69x 3 + 23087.84x 4 MSE=10292.4976137 1750 1500 1250 1000 750 500 250 20.0 22.5 25.0 27.5 30.0 32.5 35.0 37.5 40.0
Możliwe rozwiązanie (II) 1750 1500 1250 1000 750 500 250 890.96 55.26x 1 + 513.47x 2 374.40x 3 + 289.70x 4 MSE=10937.8771405 20.0 22.5 25.0 27.5 30.0 32.5 35.0 37.5 40.0
Możliwe rozwiązanie (III) 1750 1500 1250 1000 750 500 250 891.00 + 77.16x 1 + 88.73x 2 + 98.21x 3 + 108.35x 4 MSE=10949.479073 20.0 22.5 25.0 27.5 30.0 32.5 35.0 37.5 40.0
Możliwe rozwiązanie (IV) 1750 1500 1250 1000 750 500 250 897.20 + 73.16x 1 + 74.53x 2 + 75.26x 3 + 75.43x 4 MSE=16584.6678002 20.0 22.5 25.0 27.5 30.0 32.5 35.0 37.5 40.0
Możliwe rozwiązanie (V) 1750 1500 1250 1000 750 500 250 922.42 + 0.04x 1 + 0.04x 2 + 0.04x 3 + 0.04x 4 MSE=149280.861145 20.0 22.5 25.0 27.5 30.0 32.5 35.0 37.5 40.0
Regularyzacja Ridge J(w) = MSE(w) + α 1 2 n wi 2 } i=1 {{ } kara
Porównanie rozwiązań α MSE tr kara całkowity koszt MSE walid 0 10292 4651895996 10292 9627 0.001 10937 245404 11183 8726 1 10949 17605 28554 8678 100 16584 11130 1129591 12312 1000000 149280 0 152023 138743
Porównanie rozwiązań α MSE tr kara całkowity koszt MSE walid 0 10292 4651895996 10292 9627 0.001 10937 245404 11183 8726 1 10949 17605 28554 8678 100 16584 11130 1129591 12312 1000000 149280 0 152023 138743 Ile współczynników miały rozważane wielomiany?
Możliwe rozwiązanie (I) 1750 1500 1250 1000 750 500 250 890.94 + 59.96x 1 + 108.94x 2 + 95.26x 3 + 109.02x 4 MSE=10946.9873124 20.0 22.5 25.0 27.5 30.0 32.5 35.0 37.5 40.0
Możliwe rozwiązanie (II) 1750 1500 1250 1000 750 500 250 890.94 + 59.95x 1 + 108.95x 2 + 95.26x 3 + 109.02x 4 MSE=10946.98736 20.0 22.5 25.0 27.5 30.0 32.5 35.0 37.5 40.0
Możliwe rozwiązanie (III) 1750 1500 1250 1000 750 500 250 891.79 + 181.32x 2 + 116.75x 3 + 64.28x 4 MSE=11048.7014745 20.0 22.5 25.0 27.5 30.0 32.5 35.0 37.5 40.0
Możliwe rozwiązanie (IV) 1750 1500 1250 1000 750 500 250 899.53 + 13.92x 2 + 257.65x 3 MSE=20983.1359555 20.0 22.5 25.0 27.5 30.0 32.5 35.0 37.5 40.0
Możliwe rozwiązanie (V) 1750 1500 1250 1000 750 500 250 922.44 MSE=149390.594364 20.0 22.5 25.0 27.5 30.0 32.5 35.0 37.5 40.0
Regularyzacja Lasso J(w) = MSE(w) + α n w i i=1 }{{} kara
Porównanie rozwiązań α # wsp. MSE tr kara całkowity koszt MSE walid 0 4 10946 18211 10946 8722 0.001 4 10946 18211 10965 8721 10 3 11048 25319 264241 8562 100 2 20983 33287 3349752 16524 1000000 0 149390 0 149390 138850
Dlaczego Lasso się tak zachowuje? Obliczmy karę w Ridge i w Lasso dla następujących przypadków: 1 w 1 = [ ] 1 0.05
Dlaczego Lasso się tak zachowuje? Obliczmy karę w Ridge i w Lasso dla następujących przypadków: 1 w 1 = [ ] 1 0.05 2 w 2 = w 1 [ ] 0.01 0
Dlaczego Lasso się tak zachowuje? Obliczmy karę w Ridge i w Lasso dla następujących przypadków: 1 w 1 = [ ] 1 0.05 2 w 2 = w 1 [ ] 0.01 0 3 w 3 = w 1 [ ] 0 0.01
Dlaczego Lasso się tak zachowuje? Obliczmy karę w Ridge i w Lasso dla następujących przypadków: 1 w 1 = [ ] 1 0.05 2 w 2 = w 1 [ ] 0.01 0 3 w 3 = w 1 [ ] 0 0.01 Który przypadek jest lepszy dla regresji Ridge, a który dla Lasso?
Regularyzacja w GD: wczesne zatrzymanie 1000000 975000 950000 925000 900000 875000 850000 825000 800000 0 10000 20000 30000 40000 50000 60000 70000
Klasyfikacja Zadanie klasyfikacji binarnej Dla danego wektora cech x opisującego obiekt przewidzieć czy obiekt należy do klasy pozytywnej y = 1 czy negatywnej y = 0 (lub y = 1).
Irysy Pomarańczowy: Iris Virginica, niebieski: pozostałe 2.5 2.0 petal width (cm) 1.5 1.0 0.5 0.0 1 2 3 4 5 6 7 petal length (cm)
Przewidywanie prawdopodobieństwa regresja liniowa Punkty w tle: prawd. Iris Virginica (jaśniej=wyższe) 2.5 2.0 petal width (cm) 1.5 1.0 0.5 0.0 0 1 2 3 4 5 6 7 petal length (cm)
Przewidywanie prawdopodobieństwa regresja logistyczna 2.5 2.0 petal width (cm) 1.5 1.0 0.5 0.0 0 1 2 3 4 5 6 7 petal length (cm)
Granica decyzyjna (ang. decision boundary) A. Géron, Hands-On Machine Learning with Scikit-Learn and TensorFlow 2017
Granica decyzyjna (ang. decision boundary) A. Géron, Hands-On Machine Learning with Scikit-Learn and TensorFlow 2017
Funkcja logistyczna A. Géron, Hands-On Machine Learning with Scikit-Learn and TensorFlow 2017
Pochodna funkcji logisytcznej Zadanie σ(t) = 1 1 + e t Wiadomo, że σ(t 0 ) =.1. Czy da się na tej podstawie prosto obliczyć wartość pochodnej σ (t) w punkcie t 0?
Regresja logistyczna ŷ = ˆp = σ(xw) { 1 ˆp 0,5 0 ˆp < 0,5
Funkcja kosztu dla pojedynczego przykładu 4 c = log(p) c = log(1 p) 3 Koszt 2 1 0 0.0 0.2 0.4 0.6 0.8 1.0 Prawdopodobienstwo y=1
Funkcja kosztu dla pojedynczego przykładu Zadanie Zapisać poniższą funkcję jako pojedyncze wyrażenie (używając dodawania, mnożenia itp.): { log(p) y = 1 c(y, p) = log(1 p) y = 0
Funkcja kosztu dla całego problemu p = σ(xw) J(w) = 1 n c (y i, p i ) = n i=1 1 n [y i log p i + (1 y i ) log(1 p i )] n i=1
Funkcja kosztu dla całego problemu 1 n p = σ(xw) J(w) = 1 n c (y i, p i ) = n i=1 n [y i log p i + (1 y i ) log(1 p i )] i=1 J w i = 1 n n (σ(x i w) y i ) X i,j i=1