Darmowy fragment publikacji:
Tytuł oryginału: Mastering Machine Learning Algorithms: Expert techniques to implement popular
machine learning algorithms and fine-tune your models
Tłumaczenie: Krzysztof Sawka
ISBN: 978-83-283-5245-2
Copyright © Packt Publishing 2018. First published in the English language under the title ‘Mastering
Machine Learning Algorithms – (9781788621113)’.
Polish edition copyright © 2019 by Helion SA
All rights reserved.
All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means,
electronic or mechanical, including photocopying, recording or by any information storage retrieval system,
without permission from the Publisher.
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej
publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną,
fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje
naruszenie praw autorskich niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich
właścicieli.
Autor oraz Helion SA dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne
i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym
ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Helion SA nie ponoszą również
żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce.
Helion SA
ul. Kościuszki 1c, 44-100 Gliwice
tel. 32 231 22 19, 32 230 98 63
e-mail: helion@helion.pl
WWW: http://helion.pl (księgarnia internetowa, katalog książek)
Pliki z przykładami omawianymi w książce można znaleźć pod adresem:
ftp://ftp.helion.pl/przyklady/alguma.zip
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/alguma
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Printed in Poland.
• Kup książkę
• Poleć książkę
• Oceń książkę
• Księgarnia internetowa
• Lubię to! » Nasza społeczność
Spis tre(cid:258)ci
O autorze
O recenzencie
Przedmowa
Rozdzia(cid:239) 1. Podstawy modelu uczenia maszynowego
Modele a dane
(cid:165)rodkowanie i wybielanie
Zbiory ucz(cid:200)ce i walidacyjne
Cechy modelu uczenia maszynowego
Pojemno(cid:258)(cid:202) modelu
Obci(cid:200)(cid:285)enie estymatora
Wariancja estymatora
Funkcje straty i kosztu
Przyk(cid:239)adowe funkcje kosztu
Regularyzacja
Podsumowanie
Rozdzia(cid:239) 2. Wprowadzenie do uczenia pó(cid:239)nadzorowanego
Uczenie pó(cid:239)nadzorowane
Uczenie transdukcyjne
Uczenie indukcyjne
Za(cid:239)o(cid:285)enia w uczeniu pó(cid:239)nadzorowanym
Generatywne mieszaniny gaussowskie
Przyk(cid:239)ad generatywnej mieszaniny gaussowskiej
Algorytm kontrastowy pesymistycznego szacowania wiarygodno(cid:258)ci
Przyk(cid:239)ad zastosowania algorytmu CPLE
11
12
13
19
20
21
24
29
29
32
35
39
43
45
50
51
52
53
53
53
56
58
63
65
Poleć książkęKup książkęSpis tre(cid:286)ci
Pó(cid:239)nadzorowane maszyny wektorów no(cid:258)nych (S3VM)
Przyk(cid:239)adowy algorytm maszyny S3VM
Transdukcyjne maszyny wektorów no(cid:258)nych
Przyk(cid:239)ad maszyny TSVM
Podsumowanie
Rozdzia(cid:239) 3. Uczenie pó(cid:239)nadzorowane bazuj(cid:200)ce na grafach
Propagacja etykiet
Przyk(cid:239)ad zastosowania algorytmu propagacji etykiet
Propagacja etykiet w bibliotece Scikit-Learn
Rozprzestrzenianie etykiet
Przyk(cid:239)ad zastosowania algorytmu rozprzestrzeniania etykiet
Propagacja etykiet na bazie b(cid:239)(cid:200)dzenia losowego Markowa
Przyk(cid:239)ad propagacji etykiet na podstawie b(cid:239)(cid:200)dzenia losowego Markowa
Uczenie rozmaito(cid:258)ciowe
Algorytm Isomap
Osadzanie lokalnie liniowe
Osadzanie widmowe Laplace’a
Algorytm t-SNE
Podsumowanie
Rozdzia(cid:239) 4. Sieci bayesowskie i ukryte modele Markowa
Prawdopodobie(cid:241)stwa warunkowe i twierdzenie Bayesa
Sieci bayesowskie
Próbkowanie w sieci bayesowskiej
Przyk(cid:239)ad próbkowania za pomoc(cid:200) biblioteki PyMC3
Ukryte modele Markowa
Algorytm wnioskowania ekstrapolacyjno-interpolacyjnego
Algorytm Viterbiego
Podsumowanie
Rozdzia(cid:239) 5. Algorytm EM i jego zastosowania
Uczenie metodami MLE i MAP
Algorytm EM
Przyk(cid:239)ad szacowania parametrów
Mieszanina gaussowska
Przyk(cid:239)ad implementacji algorytmu mieszanin gaussowskich w bibliotece Scikit-Learn
Analiza czynnikowa (FA)
Przyk(cid:239)ad zastosowania analizy czynnikowej w bibliotece Scikit-Learn
Analiza g(cid:239)ównych sk(cid:239)adowych (PCA)
Przyk(cid:239)ad zastosowania analizy PCA w bibliotece Scikit-Learn
Analiza sk(cid:239)adowych niezale(cid:285)nych (ICA)
Przyk(cid:239)adowa implementacja algorytmu FastICA w bibliotece Scikit-Learn
Jeszcze s(cid:239)owo o ukrytych modelach Markowa
Podsumowanie
68
71
76
77
82
85
86
89
91
94
95
97
98
101
102
106
109
111
113
115
116
118
119
129
133
134
141
144
145
146
148
151
154
157
159
164
167
173
175
178
180
181
6
Poleć książkęKup książkęSpis tre(cid:286)ci
Rozdzia(cid:239) 6. Uczenie hebbowskie i mapy samoorganizuj(cid:200)ce
Regu(cid:239)a Hebba
Analiza regu(cid:239)y kowariancji
Stabilizacja wektora wag i regu(cid:239)a Oji
Sie(cid:202) Sangera
Przyk(cid:239)ad zastosowania sieci Sangera
Sie(cid:202) Rubnera-Tavana
Przyk(cid:239)ad zastosowania sieci Rubnera-Tavana
Mapy samoorganizuj(cid:200)ce
Przyk(cid:239)ad zastosowania mapy SOM
Podsumowanie
Rozdzia(cid:239) 7. Algorytmy klasteryzacji
Algorytm k-najbli(cid:285)szych s(cid:200)siadów
Drzewa KD
Drzewa kuliste
Przyk(cid:239)ad zastosowania algorytmu KNN w bibliotece Scikit-Learn
Algorytm centroidów
Algorytm k-means++
Przyk(cid:239)ad zastosowania algorytmu centroidów w bibliotece Scikit-Learn
Algorytm rozmytych c-(cid:258)rednich
Przyk(cid:239)ad zastosowania algorytmu rozmytych c-(cid:258)rednich w bibliotece Scikit-Fuzzy
Klasteryzacja widmowa
Przyk(cid:239)ad zastosowania klasteryzacji widmowej w bibliotece Scikit-Learn
Podsumowanie
Rozdzia(cid:239) 8. Uczenie zespo(cid:239)owe
Podstawy uczenia zespo(cid:239)ów
Lasy losowe
Przyk(cid:239)ad zastosowania lasu losowego w bibliotece Scikit-Learn
Algorytm AdaBoost
AdaBoost.SAMME
AdaBoost.SAMME.R
AdaBoost.R2
Przyk(cid:239)ad zastosowania algorytmu AdaBoost w bibliotece Scikit-Learn
Wzmacnianie gradientowe
Przyk(cid:239)ad wzmacniania gradientowego drzew w bibliotece Scikit-Learn
Zespo(cid:239)y klasyfikatorów g(cid:239)osuj(cid:200)cych
Przyk(cid:239)ad zastosowania klasyfikatorów g(cid:239)osuj(cid:200)cych
Uczenie zespo(cid:239)owe jako technika doboru modeli
Podsumowanie
183
184
188
192
193
196
199
203
205
208
211
213
213
217
218
220
223
225
227
235
239
242
246
248
249
249
251
257
260
264
266
268
271
275
279
282
283
285
286
7
Poleć książkęKup książkęSpis tre(cid:286)ci
Rozdzia(cid:239) 9. Sieci neuronowe w uczeniu maszynowym
Podstawowy sztuczny neuron
Perceptron
Przyk(cid:239)ad zastosowania perceptronu w bibliotece Scikit-Learn
Perceptrony wielowarstwowe
Funkcje aktywacji
Algorytm propagacji wstecznej
Przyk(cid:239)ad zastosowania sieci MLP w bibliotece Keras
Algorytmy optymalizacji
Perturbacja gradientu
Algorytmy momentum i Nesterova
RMSProp
Adam
AdaGrad
AdaDelta
Regularyzacja i porzucanie
Porzucanie
Normalizacja wsadowa
Przyk(cid:239)ad zastosowania normalizacji wsadowej w bibliotece Keras
Podsumowanie
Rozdzia(cid:239) 10. Zaawansowane modele neuronowe
G(cid:239)(cid:218)bokie sieci splotowe
Operacje splotu
Warstwy (cid:239)(cid:200)cz(cid:200)ce
Inne przydatne warstwy
Przyk(cid:239)ady stosowania g(cid:239)(cid:218)bokich sieci splotowych w bibliotece Keras
Sieci rekurencyjne
Algorytm propagacji wstecznej w czasie (BPTT)
Jednostki LSTM
Jednostki GRU
Przyk(cid:239)ad zastosowania sieci LSTM w bibliotece Keras
Uczenie transferowe
Podsumowanie
Rozdzia(cid:239) 11. Autokodery
Autokodery
Przyk(cid:239)ad g(cid:239)(cid:218)bokiego autokodera splotowego w bibliotece TensorFlow
Autokodery odszumiaj(cid:200)ce
Autokodery rzadkie
Autokodery wariacyjne
Przyk(cid:239)ad stosowania autokodera wariacyjnego w bibliotece TensorFlow
Podsumowanie
287
288
289
292
295
296
299
307
311
312
312
313
315
316
317
318
320
326
328
330
333
334
335
344
347
348
356
357
360
365
367
371
373
375
375
377
381
384
386
389
391
8
Poleć książkęKup książkęRozdzia(cid:239) 12. Generatywne sieci przeciwstawne
Uczenie przeciwstawne
Przyk(cid:239)ad zastosowania sieci DCGAN w bibliotece TensorFlow
Sie(cid:202) Wassersteina (WGAN)
Przyk(cid:239)ad zastosowania sieci WGAN w bibliotece TensorFlow
Podsumowanie
Rozdzia(cid:239) 13. G(cid:239)(cid:218)bokie sieci przekona(cid:241)
Losowe pola Markowa
Ograniczone maszyny Boltzmanna
Sieci DBN
Przyk(cid:239)ad stosowania nienadzorowanej sieci DBN w (cid:258)rodowisku Python
Przyk(cid:239)ad stosowania nadzorowanej sieci DBN w (cid:258)rodowisku Python
Podsumowanie
Rozdzia(cid:239) 14. Wst(cid:218)p do uczenia przez wzmacnianie
Podstawowe terminy w uczeniu przez wzmacnianie
(cid:165)rodowisko
Polityka
Iteracja polityki
Iteracja polityki w (cid:258)rodowisku szachownicy
Iteracja warto(cid:258)ci
Iteracja warto(cid:258)ci w (cid:258)rodowisku szachownicy
Algorytm TD(0)
Algorytm TD(0) w (cid:258)rodowisku szachownicy
Podsumowanie
Rozdzia(cid:239) 15. Zaawansowane algorytmy szacowania polityki
Algorytm TD((cid:540))
Algorytm SARSA
Algorytm TD((cid:540)) w bardziej skomplikowanym (cid:258)rodowisku szachownicy
Algorytm aktor-krytyk TD(0) w (cid:258)rodowisku szachownicy
Algorytm SARSA w (cid:258)rodowisku szachownicy
Q-uczenie
Algorytm Q-uczenia w (cid:258)rodowisku szachownicy
Algorytm Q-uczenia za pomoc(cid:200) sieci neuronowej
Podsumowanie
Skorowidz
Spis tre(cid:286)ci
393
393
397
403
405
408
409
410
411
415
417
420
422
423
423
425
429
430
434
438
439
442
445
448
451
452
456
462
467
469
472
473
475
482
485
9
Poleć książkęKup książkęSpis tre(cid:286)ci
10
Poleć książkęKup książkę1
Podstawy modelu
uczenia maszynowego
Modele uczenia maszynowego s(cid:200) uk(cid:239)adami matematycznymi zawieraj(cid:200)cymi wiele cech
wspólnych. Nawet je(cid:258)li s(cid:200) czasami definiowane jedynie z perspektywy teoretycznej, post(cid:218)py
bada(cid:241) pozwalaj(cid:200) nam wykorzystywa(cid:202) ró(cid:285)ne koncepcje s(cid:239)u(cid:285)(cid:200)ce do lepszego zrozumienia me-
chanizmów dzia(cid:239)ania z(cid:239)o(cid:285)onych systemów, takich jak g(cid:239)(cid:218)bokie sieci neuronowe. W tym roz-
dziale poznamy i omówimy pewne podstawowe elementy, które mog(cid:200) by(cid:202) ju(cid:285) doskonale
znane do(cid:258)wiadczonym Czytelnikom, ale które jednocze(cid:258)nie mo(cid:285)na ró(cid:285)nie interpretowa(cid:202)
i które maj(cid:200) ró(cid:285)ne zastosowania.
W szczególno(cid:258)ci omówimy nast(cid:218)puj(cid:200)ce elementy:
(cid:81) procesy generowania danych;
(cid:81) sko(cid:241)czone zestawy danych;
(cid:81) strategie uczenia i rozdzielania danych;
(cid:81) sprawdzian krzy(cid:285)owy;
(cid:81) pojemno(cid:258)(cid:202), obci(cid:200)(cid:285)enie i wariancja modelu;
(cid:81) teoria Vapnika-Chervonenkisa;
(cid:81) granica Craméra-Rao;
(cid:81) niedotrenowanie i przetrenowanie;
(cid:81) funkcje straty i kosztu;
(cid:81) regularyzacja.
Poleć książkęKup książkęAlgorytmy uczenia maszynowego
Modele a dane
Algorytmy uczenia maszynowego pracuj(cid:200) na danych. Tworz(cid:200) powi(cid:200)zania, wyszukuj(cid:200) relacje,
odkrywaj(cid:200) wzorce, tworz(cid:200) nowe przyk(cid:239)ady itd. na podstawie dobrze zdefiniowanych zesta-
wów danych. Niestety, czasami przyjmowane za(cid:239)o(cid:285)enia lub nak(cid:239)adane warunki nie s(cid:200) wy-
ra(cid:283)nie sprecyzowane, a d(cid:239)ugotrwa(cid:239)y proces uczenia mo(cid:285)e zako(cid:241)czy(cid:202) si(cid:218) ca(cid:239)kowitym niepo-
wodzeniem weryfikacji. Nawet je(cid:258)li taki warunek jest wyra(cid:283)niej zarysowany w kontek(cid:258)cie
uczenia g(cid:239)(cid:218)bokiego, mo(cid:285)emy wyobrazi(cid:202) sobie model jako szar(cid:200) skrzynk(cid:218) (pewn(cid:200) przejrzysto(cid:258)(cid:202)
gwarantuje prostota wielu popularnych algorytmów), w której wektor wej(cid:258)ciowy X zostaje
przekszta(cid:239)cony w wektor wyj(cid:258)ciowy Y (rysunek 1.1).
Rysunek 1.1. Schemat typowego modelu parametryzowanego za pomoc(cid:200) wektora (cid:537)
Na rysunku 1.1 model zosta(cid:239) ukazany jako pseudofunkcja zale(cid:285)na od zestawu parametrów
zdefiniowanych w wektorze (cid:537). W tym podrozdziale bierzemy pod uwag(cid:218) wy(cid:239)(cid:200)cznie modele
parametryczne, ale istnieje równie(cid:285) rodzina modeli nieparametrycznych, bazuj(cid:200)cych wy-
(cid:239)(cid:200)cznie na strukturze danych. Niektórymi z nich zajmiemy si(cid:218) w nast(cid:218)pnych rozdzia(cid:239)ach.
Zadaniem parametrycznego procesu uczenia jest znalezienie najlepszego zestawu parame-
trów maksymalizuj(cid:200)cego funkcj(cid:218) docelow(cid:200), której warto(cid:258)(cid:202) jest proporcjonalna do dok(cid:239)adno(cid:258)ci
(lub b(cid:239)(cid:218)du, je(cid:285)eli staramy si(cid:218) j(cid:200) minimalizowa(cid:202)) modelu dla okre(cid:258)lonych danych wej(cid:258)cio-
wych X i wyj(cid:258)ciowych Y. Definicja ta nie jest zbyt (cid:258)cis(cid:239)a, ale zaw(cid:218)zimy j(cid:200) w kolejnych pod-
rozdzia(cid:239)ach, gdy(cid:285) okazuje si(cid:218) jednak przydatna do zrozumienia kontekstu, w jakim przyjdzie
nam pracowa(cid:202).
Pojawia si(cid:218) teraz pierwsze pytanie: jaka jest natura danych wej(cid:258)ciowych X? Problem uczenia
maszynowego sprowadza si(cid:218) do wyszukiwania abstrakcyjnych zwi(cid:200)zków pozwalaj(cid:200)cych na
spójne uogólnianie wobec nowo dostarczanych przyk(cid:239)adów. Mówi(cid:200)c konkretniej, mo(cid:285)emy
zdefiniowa(cid:202) stochastyczny proces generowania danych wykorzystuj(cid:200)cy wspólny rozk(cid:239)ad
prawdopodobie(cid:241)stwa:
danep
(cid:11)
x y
,
(cid:12)
(cid:32)
(cid:11)
(cid:11)
p x y p x
(cid:12)
|
(cid:12)
Cz(cid:218)(cid:258)(cid:202) wspóln(cid:200) prawdopodobie(cid:241)stwa p(x, y) warto czasami wyra(cid:285)a(cid:202) jako iloczyn prawdopo-
dobie(cid:241)stwa warunkowego p(x | y), czyli prawdopodobie(cid:241)stwa wyst(cid:200)pienia etykiety danego
przyk(cid:239)adu, i prawdopodobie(cid:241)stwa brzegowego przyk(cid:239)adów p(x). Wyra(cid:285)enie to jest szczegól-
nie u(cid:285)yteczne, je(cid:285)eli prawdopodobie(cid:241)stwo wst(cid:218)pne p(x) jest znane w kontekstach pó(cid:239)nadzo-
rowanych lub je(cid:258)li interesuje nas rozwi(cid:200)zywanie problemów za pomoc(cid:200) algorytmu oczeki-
wania-maksymalizacji. Wrócimy do tego zagadnienia w dalszej cz(cid:218)(cid:258)ci ksi(cid:200)(cid:285)ki.
20
Poleć książkęKup książkęRozdzia(cid:225) 1. • Podstawy modelu uczenia maszynowego
W wielu przypadkach nie jeste(cid:258)my w stanie okre(cid:258)li(cid:202) precyzyjnie rozk(cid:239)adu, zajmuj(cid:200)c si(cid:218) jed-
nak zestawem danych, zawsze przyjmujemy, (cid:285)e zosta(cid:239) on wygenerowany za pomoc(cid:200) pier-
wotnego rozk(cid:239)adu. Warunek ten nie jest wy(cid:239)(cid:200)cznie za(cid:239)o(cid:285)eniem teoretycznym, poniewa(cid:285), jak
si(cid:218) przekonamy, za ka(cid:285)dym razem gdy nasze punkty danych b(cid:218)d(cid:200) generowane przy u(cid:285)yciu
innego rozk(cid:239)adu, dok(cid:239)adno(cid:258)(cid:202) modelu mo(cid:285)e gwa(cid:239)townie zmale(cid:202).
Je(cid:285)eli we(cid:283)miemy N warto(cid:258)ci niezale(cid:285)nych i pochodz(cid:200)cych z tego samego rozk(cid:239)adu praw-
dopodobie(cid:241)stwa (ang. independent and identically distributed — i. i. d.) z procesu pdane, mo(cid:285)emy
utworzy(cid:202) sko(cid:241)czony zestaw danych X sk(cid:239)adaj(cid:200)cy si(cid:218) z k-wymiarowych wektorów rzeczywistych:
X
(cid:32)
(cid:94)
x x
1,
0
,
(cid:21)
,
x
N
(cid:96)
gdzie x
i
k
(cid:143)
R
W przypadku uczenia nadzorowanego potrzebne nam równie(cid:285) b(cid:218)d(cid:200) odpowiednie etykiety
(z t warto(cid:258)ci wyj(cid:258)ciowych):
Y
(cid:32)
(cid:94)
y y
,
0
1
,
(cid:21)
,
y
N
(cid:96)
gdzie y
i
t
(cid:143)
R
Gdy dane wyj(cid:258)ciowe zawieraj(cid:200) wi(cid:218)cej ni(cid:285) dwie klasy, mo(cid:285)emy skorzysta(cid:202) z ró(cid:285)nych strategii
zarz(cid:200)dzania tym problemem. W przypadku klasycznego uczenia maszynowego jedn(cid:200) z naj-
popularniejszych technik jest jeden-przeciw-wszystkim (ang. One-versus-All — OvA), która
polega na uczeniu N ró(cid:285)nych klasyfikatorów binarnych, gdzie ka(cid:285)da etykieta jest oceniana
w stosunku do wszystkich pozosta(cid:239)ych. W ten sposób do okre(cid:258)lenia prawid(cid:239)owej klasy wy-
konywanych jest N-1 przebiegów. Z kolei w p(cid:239)ytkich i g(cid:239)(cid:218)bokich sieciach neuronowych
u(cid:285)ywamy cz(cid:218)sto funkcji softmax okre(cid:258)laj(cid:200)cej wyj(cid:258)ciowy rozk(cid:239)ad prawdopodobie(cid:241)stwa dla
wszystkich klas:
y
(cid:5)
i
(cid:167)
(cid:32) (cid:168)
(cid:168)
(cid:169)
z
0
e
e
(cid:166) (cid:166)
e
,
z
z
1
e
,
(cid:21)
,
z
z
e
(cid:166)
N
z
e
(cid:183)
(cid:184)
(cid:184)
(cid:185)
Mo(cid:285)emy (cid:239)atwo zarz(cid:200)dza(cid:202) takim rodzajem danych wyj(cid:258)ciowych (zi symbolizuje warto(cid:258)ci po-
(cid:258)rednie, a suma wszystkich cz(cid:239)onów jest normalizowana do warto(cid:258)ci 1) za pomoc(cid:200) specjal-
nego rodzaju funkcji kosztu — entropii krzy(cid:285)owej (patrz odpowiedni akapit w podrozdziale
„Funkcje straty i kosztu”).
(cid:165)rodkowanie i wybielanie
Wiele algorytmów wykazuje wi(cid:218)ksz(cid:200) skuteczno(cid:258)(cid:202) (przede wszystkim w kontek(cid:258)cie szybko(cid:258)ci
uczenia), gdy zestaw danych jest symetryczny (o (cid:258)redniej równej 0). Zatem jednym z najwa(cid:285)-
niejszych etapów wst(cid:218)pnego przetwarzania danych jest tzw. (cid:258)rodkowanie (ang. zero-centering),
polegaj(cid:200)ce na odj(cid:218)ciu od wszystkich przyk(cid:239)adów (cid:258)redniej wyliczonej z cech Ex[X]:
ˆi
x
(cid:32)
(cid:62)
x E X
i
(cid:16)
x
(cid:64)
21
Poleć książkęKup książkęAlgorytmy uczenia maszynowego
Zazwyczaj w razie potrzeby operacja ta jest odwracalna i nie wp(cid:239)ywa na relacje zarówno
pomi(cid:218)dzy przyk(cid:239)adami, jak i sk(cid:239)adowymi danego przyk(cid:239)adu. W przypadku uczenia g(cid:239)(cid:218)bo-
kiego wy(cid:258)rodkowany zestaw danych pozwala wykorzystywa(cid:202) symetri(cid:218) pewnych funkcji ak-
tywacji, co przy(cid:258)piesza osi(cid:200)ganie zbie(cid:285)no(cid:258)ci (szczegó(cid:239)y omówimy w kolejnych rozdzia(cid:239)ach).
Kolejnym bardzo wa(cid:285)nym etapem wst(cid:218)pnej obróbki danych jest wybielanie (ang. whitening),
czyli operacja nak(cid:239)adania jednostkowej macierzy kowariancji na wy(cid:258)rodkowany zestaw danych:
xE X X
T
(cid:170)
(cid:172)
(cid:186) (cid:32)
(cid:188)
I
Macierz kowariancji Ex[XTX] jest rzeczywista i symetryczna, dlatego mo(cid:285)emy roz(cid:239)o(cid:285)y(cid:202) j(cid:200) na
wektory i warto(cid:258)ci w(cid:239)asne bez konieczno(cid:258)ci odwracania macierzy wektorów w(cid:239)asnych:
xE X X
T
(cid:170)
(cid:172)
V V
(cid:186) (cid:32) (cid:58)
(cid:188)
T
Macierz V zawiera wektory w(cid:239)asne (jako kolumny), a macierz diagonalna (cid:525) przechowuje
warto(cid:258)ci w(cid:239)asne. Aby rozwi(cid:200)za(cid:202) ten problem, musimy znale(cid:283)(cid:202) tak(cid:200) macierz A, (cid:285)e:
ˆ
x
i
(cid:32)
Ax
i
ˆ
i E X X
ˆ
T
x
(cid:170)
(cid:172)
(cid:32)
I
(cid:186)
(cid:188)
Za pomoc(cid:200) rozk(cid:239)adu do wektorów i warto(cid:258)ci w(cid:239)asnych uzyskujemy:
ˆT
E X X
x
ˆ
(cid:170)
(cid:172)
(cid:32)
(cid:186)
(cid:188)
E AX XA
T
x
T
(cid:170)
(cid:172)
(cid:32)
(cid:186)
(cid:188)
AE X X A
T
T
(cid:32)
AV V A
T
(cid:58)
T
(cid:32)
I
(cid:170)
(cid:172)
x
(cid:186)
(cid:188)
Zatem macierz A przyjmuje posta(cid:202):
AA
T
(cid:32) (cid:58)
V
V
1
(cid:16)
T
A V (cid:16)
(cid:159) (cid:32) (cid:58)
1
2
Jedn(cid:200) z g(cid:239)ównych zalet wybielania jest dekorelacja zestawu danych, co u(cid:239)atwia nam roz-
dzielanie sk(cid:239)adowych. Ponadto je(cid:258)li macierz X zostaje wybielona, ka(cid:285)de przekszta(cid:239)cenie or-
togonalne powodowane przez macierz P równie(cid:285) jest wybielone:
Y PX
(cid:32) (cid:159)
E Y Y
T
(cid:170)
(cid:172)
(cid:186)
(cid:188)
(cid:32)
PE X X P
T
T
(cid:32)
T
PP
(cid:32)
I
(cid:170)
(cid:172)
(cid:186)
(cid:188)
Do tego wiele algorytmów, które wymagaj(cid:200) szacowania parametrów (cid:258)ci(cid:258)le powi(cid:200)zanych
z wej(cid:258)ciow(cid:200) macierz(cid:200) kowariancji, równie(cid:285) korzysta na tym warunku, poniewa(cid:285) powoduje on
zmniejszenie rzeczywistej liczby zmiennych niezale(cid:285)nych (generalnie algorytmy te dzia(cid:239)aj(cid:200)
na macierzach, które po przeprowadzeniu wybielania staj(cid:200) si(cid:218) symetryczne). Kolejn(cid:200) wa(cid:285)n(cid:200)
zalet(cid:200) w kontek(cid:258)cie uczenia g(cid:239)(cid:218)bokiego jest fakt, (cid:285)e gradienty s(cid:200) cz(cid:218)sto wi(cid:218)ksze w pobli(cid:285)u (cid:258)rodka
uk(cid:239)adu wspó(cid:239)rz(cid:218)dnych, a malej(cid:200) w obszarach, w których funkcje aktywacji (np. tangens hi-
perboliczny lub sigmoidalna) ulegaj(cid:200) nasyceniu (|x| (cid:314) (cid:146)). Z tego w(cid:239)a(cid:258)nie powodu modele
uzyskuj(cid:200) zbie(cid:285)no(cid:258)(cid:202) szybciej wobec wybielonych (i wy(cid:258)rodkowanych) zestawów danych.
22
Poleć książkęKup książkęRozdzia(cid:225) 1. • Podstawy modelu uczenia maszynowego
Na rysunku 1.2 porównujemy pierwotny zestaw danych z jego wy(cid:258)rodkowan(cid:200) i wybielon(cid:200)
wersj(cid:200).
Rysunek 1.2. Pierwotny zestaw danych (po lewej), jego wersja wy(cid:258)rodkowana (w (cid:258)rodku)
i wybielona (po prawej)
Je(cid:285)eli chcemy przeprowadzi(cid:202) wybielanie, musimy uwzgl(cid:218)dni(cid:202) kilka istotnych szczegó(cid:239)ów.
Po pierwsze, istnieje ró(cid:285)nica w skali pomi(cid:218)dzy rzeczywist(cid:200) kowariancj(cid:200) przyk(cid:239)adu a oszaco-
waniem XTX, cz(cid:218)sto przyjmowana w postaci rozk(cid:239)adu wed(cid:239)ug warto(cid:258)ci osobliwych (ang.
singular value decomposition — SVD). Druga kwestia wi(cid:200)(cid:285)e si(cid:218) z pewnymi klasami zaim-
plementowanymi w wielu (cid:258)rodowiskach, np. z klas(cid:200) StandardScaler biblioteki Scikit-Learn.
W istocie (cid:258)rodkowanie jest operacj(cid:200) na cechach, natomiast filtr wybielaj(cid:200)cy nale(cid:285)y obliczy(cid:202)
przy uwzgl(cid:218)dnieniu ca(cid:239)ej macierzy kowariancji (klasa StandardScaler implementuje jedynie
skalowanie cech bazuj(cid:200)ce na wariancji jednostkowej).
Na szcz(cid:218)(cid:258)cie wszystkie algorytmy zawarte w bibliotece Scikit-Learn, które czerpi(cid:200) korzy(cid:258)ci
z wybielania lub go wymagaj(cid:200), zawieraj(cid:200) wbudowane odpowiednie funkcje, dzi(cid:218)ki czemu
zazwyczaj nie wymagaj(cid:200) naszej interwencji. Dla Czytelników, którzy pragn(cid:200) implementowa(cid:202)
algorytmy bezpo(cid:258)rednio, napisa(cid:239)em dwie funkcje u(cid:285)ywane do (cid:258)rodkowania i wybielania.
Zak(cid:239)adam w nich, (cid:285)e macierz X ma wymiary [Nprzyk × n]. Ponadto funkcja whiten() przyj-
muje parametr correct, pozwalaj(cid:200)cy przeprowadza(cid:202) korekcj(cid:218) skalowania (jej domy(cid:258)lna
warto(cid:258)(cid:202) to True):
import numpy as np
def zero_center(X):
return X - np.mean(X, axis=0)
def whiten(X, correct=True):
Xc = zero_center(X)
_, L, V = np.linalg.svd(Xc)
W = np.dot(V.T, np.diag(1.0 / L))
return np.dot(Xc, W) * np.sqrt(X.shape[0]) if correct else 1.0
23
Poleć książkęKup książkęAlgorytmy uczenia maszynowego
Zbiory ucz(cid:200)ce i walidacyjne
W rzeczywistych sytuacjach liczba przyk(cid:239)adów jest ograniczona i zazwyczaj trzeba rozdziela(cid:202)
pierwotny zestaw danych X (wraz z etykietami Y) na dwa nast(cid:218)puj(cid:200)ce podzbiory:
(cid:81) zbiór ucz(cid:200)cy u(cid:285)ywany do uczenia modelu,
(cid:81) zbiór walidacyjny stosowany do obiektywnego oceniania wyniku modelu
za pomoc(cid:200) nieznanych przyk(cid:239)adów.
W zale(cid:285)no(cid:258)ci od rodzaju problemu mo(cid:285)na dobra(cid:202) stosunek podzia(cid:239)u 70 – 30 (jest to do-
bry kompromis w przypadku, gdy zestaw danych jest wzgl(cid:218)dnie ma(cid:239)y) lub przeznaczy(cid:202) wi(cid:218)-
cej przyk(cid:239)adów na zbiór ucz(cid:200)cy (80 , 90 do 99 ) w zadaniach uczenia g(cid:239)(cid:218)bokiego, gdzie
mamy znaczn(cid:200) liczb(cid:218) przyk(cid:239)adów ucz(cid:200)cych. Zak(cid:239)adamy w obydwu sytuacjach, (cid:285)e zbiór ucz(cid:200)cy
zawiera wszystkie informacje wymagane do spójnego uogólniania. W wielu prostych przy-
padkach jest to prawdziwe i (cid:239)atwe do zweryfikowania; jednak wraz ze wzrostem z(cid:239)o(cid:285)ono(cid:258)ci
zestawu danych problem ten staje si(cid:218) coraz trudniejszy. Nawet je(cid:258)li chcemy wykorzysta(cid:202)
przyk(cid:239)ady z tego samego rozk(cid:239)adu, mo(cid:285)e si(cid:218) tak zdarzy(cid:202), (cid:285)e losowo dobrany zbiór testowy
zawiera cechy nieobecne w innych przyk(cid:239)adach ucz(cid:200)cych. Taki warunek mo(cid:285)e mie(cid:202) bardzo
negatywny wp(cid:239)yw na dok(cid:239)adno(cid:258)(cid:202) globaln(cid:200) i bez u(cid:285)ywania innych metod mo(cid:285)e by(cid:202) równie(cid:285)
bardzo trudny do zidentyfikowania. Jest to jeden z powodów stosowania olbrzymich zesta-
wów danych w uczeniu g(cid:239)(cid:218)bokim: bior(cid:200)c pod uwag(cid:218) z(cid:239)o(cid:285)ono(cid:258)(cid:202) cech i struktur(cid:218) rozk(cid:239)adów
generuj(cid:200)cych dane, wybór du(cid:285)ego zbioru testowego mo(cid:285)e ogranicza(cid:202) mo(cid:285)liwo(cid:258)(cid:202) poznawa-
nia okre(cid:258)lonych powi(cid:200)za(cid:241).
W bibliotece Scikit-Learn mo(cid:285)liwe jest rozdzielanie pierwotnego zestawu danych za pomoc(cid:200)
funkcji train_test_split(), w której mo(cid:285)emy okre(cid:258)la(cid:202) rozmiar zbiorów ucz(cid:200)cego/testowego,
a tak(cid:285)e decydujemy, czy przyk(cid:239)ady maj(cid:200) by(cid:202) losowo tasowane (domy(cid:258)lnie tak). Na przyk(cid:239)ad
je(cid:258)li chcemy rozdzieli(cid:202) zestawy X i Y na 70 zbioru ucz(cid:200)cego i 30 zbioru testowego,
mo(cid:285)emy napisa(cid:202):
from sklearn.model_selection import train_test_split
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, train_size=0.7,
(cid:180)random_state=1)
Tasowanie zbiorów jest zawsze dobrym pomys(cid:239)em, gdy(cid:285) zmniejszamy korelacj(cid:218) pomi(cid:218)dzy
przyk(cid:239)adami. W rzeczywisto(cid:258)ci za(cid:239)o(cid:285)yli(cid:258)my, (cid:285)e zestaw danych X sk(cid:239)ada si(cid:218) z przyk(cid:239)adów nie-
zale(cid:285)nych i pochodz(cid:200)cych z tego samego rozk(cid:239)adu prawdopodobie(cid:241)stwa, ale w kilku przypad-
kach nast(cid:218)puj(cid:200)ce po sobie przyk(cid:239)ady wykazuj(cid:200) siln(cid:200) korelacj(cid:218), co zmniejsza skuteczno(cid:258)(cid:202) uczenia.
W pewnych przypadkach warto równie(cid:285) tasowa(cid:202) zbiór ucz(cid:200)cy po ka(cid:285)dej epoce, jednak(cid:285)e
w wi(cid:218)kszo(cid:258)ci (cid:202)wicze(cid:241) b(cid:218)dziemy pracowa(cid:202) na zbiorze danych przetasowanym tylko raz — na
pocz(cid:200)tku. Nale(cid:285)y unika(cid:202) tasowania w przypadku pracy z sekwencjami i modelami bazuj(cid:200)cymi
na pami(cid:218)ci: w takich sytuacjach musimy wykorzystywa(cid:202) istniej(cid:200)c(cid:200) korelacj(cid:218) do okre(cid:258)lania
rozk(cid:239)adu przysz(cid:239)ych przyk(cid:239)adów.
Podczas pracy z bibliotekami NumPy i Scikit-Learn zawsze warto wyznaczy(cid:202) sta(cid:239)(cid:200) warto(cid:258)(cid:202) ziarna loso-
wo(cid:258)ci, dzi(cid:218)ki czemu inne osoby b(cid:218)d(cid:200) w stanie odtworzy(cid:202) przebieg eksperymentu w tych samych warun-
kach pocz(cid:200)tkowych. Wystarczy wywo(cid:239)a(cid:202) funkcj(cid:218) np.random.seed(…) i u(cid:285)y(cid:202) parametru random_state
dost(cid:218)pnego w wielu metodach Scikit-Learn.
24
Poleć książkęKup książkęRozdzia(cid:225) 1. • Podstawy modelu uczenia maszynowego
Sprawdzian krzy(cid:285)owy
Dobrym sposobem wykrywania problemów z niew(cid:239)a(cid:258)ciwie dobranymi zbiorami testowymi
jest technika sprawdzianu krzy(cid:285)owego (kroswalidacji; ang. cross-validation). W szczególno(cid:258)ci
interesuje nas k-krotny sprawdzian krzy(cid:285)owy (ang. K-fold cross-validation). Mechanizm kro-
swalidacji polega na podzieleniu zestawu danych X na zmienny zbiór testowy i zbiór ucz(cid:200)cy
(pozosta(cid:239)e przyk(cid:239)ady). Rozmiar zbioru testowego jest uzale(cid:285)niony od liczby grup — w ci(cid:200)gu
k przebiegów zbiór testowy wykorzystuje wszystkie przyk(cid:239)ady z zestawu danych.
Proces ten zosta(cid:239) zaprezentowany na rysunku 1.3.
Rysunek 1.3. Schemat k-krotnego sprawdzianu krzy(cid:285)owego
W ten sposób mo(cid:285)liwa staje si(cid:218) ocena dok(cid:239)adno(cid:258)ci modelu za pomoc(cid:200) ró(cid:285)nych podzia(cid:239)ów
próbkowania, a proces uczenia mo(cid:285)e by(cid:202) realizowany przy u(cid:285)yciu wi(cid:218)kszych zestawów da-
nych, dok(cid:239)adniej za(cid:258) na (k–1)*N przyk(cid:239)adach. W idealnej sytuacji dok(cid:239)adno(cid:258)(cid:202) powinna by(cid:202)
podobna we wszystkich przebiegach, w rzeczywisto(cid:258)ci jednak osi(cid:200)ga ona warto(cid:258)ci poni(cid:285)ej
(cid:258)redniej. Oznacza to, (cid:285)e zbiór ucz(cid:200)cy tworz(cid:200) przyk(cid:239)ady niezawieraj(cid:200)ce cech potrzebnych do
w(cid:239)a(cid:258)ciwego dopasowania hiperpowierzchni separuj(cid:200)cych modelu przy uwzgl(cid:218)dnieniu pdane.
W dalszej cz(cid:218)(cid:258)ci rozdzia(cid:239)u przyjrzymy si(cid:218) uwa(cid:285)niej tym zagadnieniom, je(cid:258)li jednak odchy-
lenie standardowe dok(cid:239)adno(cid:258)ci jest zbyt du(cid:285)e (warto(cid:258)(cid:202) progow(cid:200) ustalamy w zale(cid:285)no(cid:258)ci od
natury problemu/modelu), to oznacza prawdopodobnie, (cid:285)e zestaw X nie zosta(cid:239) utworzony
jednorodnie z pdane i na etapie wst(cid:218)pnego przetwarzania danych warto oceni(cid:202) wp(cid:239)yw ele-
mentów odstaj(cid:200)cych. Rysunek 1.4 przedstawia wykres 15-krotnego sprawdzianu krzy(cid:285)owego
wykonanego dla modelu regresji logistycznej.
Przy (cid:258)redniej wynosz(cid:200)cej 0,91 (ci(cid:200)g(cid:239)a, szara linia po(cid:258)rodku) warto(cid:258)ci oscyluj(cid:200) w zakresie od
0,84 do 0,95. W tym konkretnym przypadku, bior(cid:200)c pod uwag(cid:218) to, (cid:285)e pocz(cid:200)tkowym celem
by(cid:239)o u(cid:285)ycie klasyfikatora liniowego, mo(cid:285)emy stwierdzi(cid:202), i(cid:285) wszystkie grupy cechuj(cid:200) si(cid:218) du(cid:285)(cid:200)
dok(cid:239)adno(cid:258)ci(cid:200). Stanowi to dowód, (cid:285)e zestaw danych jest rozdzielny liniowo; wyst(cid:218)puj(cid:200) tu jed-
nak pewne przyk(cid:239)ady (grupa 9.) wymagane do uzyskania minimalnej dok(cid:239)adno(cid:258)ci rz(cid:218)du 0,88.
25
Poleć książkęKup książkęAlgorytmy uczenia maszynowego
Rysunek 1.4. Dok(cid:239)adno(cid:258)ci uzyskane za pomoc(cid:200) sprawdzianu krzy(cid:285)owego
K-krotny sprawdzian krzy(cid:285)owy wyst(cid:218)puje w ró(cid:285)nych odmianach dostosowanych do rozwi(cid:200)-
zywania okre(cid:258)lonych problemów:
(cid:81) Warstwowy k-krotny sprawdzian krzy(cid:285)owy (ang. stratified k-fold): standardowy
k-krotny sprawdzian krzy(cid:285)owy rozdziela zestaw danych bez uwzgl(cid:218)dniania
rozk(cid:239)adu prawdopodobie(cid:241)stwa p(y | x), zatem niektóre grupy mog(cid:200) teoretycznie
zawiera(cid:202) jedynie ograniczon(cid:200) liczb(cid:218) etykiet. Z kolei warstwowy k-krotny sprawdzian
krzy(cid:285)owy stara si(cid:218) tak rozdzieli(cid:202) zestaw danych X, (cid:285)eby wszystkie etykiety by(cid:239)y
roz(cid:239)o(cid:285)one równomiernie.
(cid:81) Metoda LOO (ang. leave-one-out — pozostaw jeden): ta technika jest najbardziej
drastyczna, poniewa(cid:285) generuje N grup, z których ka(cid:285)da zawiera N–1 przyk(cid:239)adów
ucz(cid:200)cych i tylko jeden przyk(cid:239)ad testowy. W ten sposób maksymalna mo(cid:285)liwa
liczba przyk(cid:239)adów zostaje u(cid:285)yta do uczenia i ca(cid:239)kiem (cid:239)atwo mo(cid:285)na sprawdzi(cid:202),
czy algorytm jest zdolny do uzyskania wystarczaj(cid:200)cej dok(cid:239)adno(cid:258)ci lub czy mo(cid:285)e
lepiej wybra(cid:202) inn(cid:200) strategi(cid:218). G(cid:239)ówn(cid:200) wad(cid:200) tego rozwi(cid:200)zania jest konieczno(cid:258)(cid:202)
wyuczenia N modeli, a w przypadku du(cid:285)ej warto(cid:258)ci N mog(cid:200) pojawia(cid:202) si(cid:218)
problemy ze skuteczno(cid:258)ci(cid:200). Poza tym przy du(cid:285)ej liczbie przyk(cid:239)adów wzrasta
prawdopodobie(cid:241)stwo wyst(cid:218)powania podobie(cid:241)stwa pomi(cid:218)dzy dwoma losowymi
przyk(cid:239)adami, dlatego wiele grup mo(cid:285)e dawa(cid:202) niemal identyczne rezultaty.
Jednocze(cid:258)nie metoda LOO ogranicza mo(cid:285)liwo(cid:258)ci oceniania zdolno(cid:258)ci generalizacji,
poniewa(cid:285) jeden przyk(cid:239)ad testowy nie wystarczy do uzyskania rzetelnego oszacowania.
(cid:81) Metoda LPO (ang. leave-P-out — pozostaw P): w tym przypadku liczba przyk(cid:239)adów
testowych wynosi p (zbiory pokrywaj(cid:200)ce si(cid:218)), zatem liczba grup jest równa warto(cid:258)ci
wspó(cid:239)czynnika dwumianowego n po p. Unikamy w ten sposób wad techniki LOO;
rozwi(cid:200)zanie to stanowi kompromis pomi(cid:218)dzy zwyk(cid:239)ym sprawdzianem krzy(cid:285)owym
26
Poleć książkęKup książkęRozdzia(cid:225) 1. • Podstawy modelu uczenia maszynowego
a metod(cid:200) LOO. Liczba grup mo(cid:285)e by(cid:202) bardzo du(cid:285)a, mo(cid:285)emy j(cid:200) jednak kontrolowa(cid:202),
dostosowuj(cid:200)c liczb(cid:218) p przyk(cid:239)adów testowych, je(cid:258)li jednak b(cid:218)dzie ona za ma(cid:239)a albo
za du(cid:285)a, wspó(cid:239)czynnik dwumianowy mo(cid:285)e eksplodowa(cid:202). Istotnie, je(cid:258)li p zawiera
oko(cid:239)o n/2 przyk(cid:239)adów, otrzymujemy maksymaln(cid:200) liczb(cid:218) grup:
(cid:167)
(cid:168)
(cid:169)
n
p
(cid:183)
(cid:184)
(cid:185)
(cid:32)
n
!
(cid:11)
p n
!
(cid:16)
(cid:124)
p
(cid:12)
!
p
(cid:150)
t
1
(cid:32)
n t
(cid:16)
t
je(cid:286)li
p
(cid:124)
n
2
i n
1
(cid:3646)
Biblioteka Scikit-Learn zawiera wszystkie te metody (oraz ich odmiany), sugeruj(cid:218) jednak
korzystanie zawsze z funkcji pomocniczej cross_val_score(), pozwalaj(cid:200)cej stosowa(cid:202) ró(cid:285)ne
metody wobec okre(cid:258)lonego problemu. W poni(cid:285)szym fragmencie kodu, który bazuje na wielo-
mianowej maszynie wektorów no(cid:258)nych i zestawie danych MNIST, wprowadzamy t(cid:218) funk-
cj(cid:218), definiuj(cid:200)c liczb(cid:218) grup (parametr cv). W ten sposób biblioteka Scikit-Learn automatycznie
wykorzysta warstwowy k-krotny sprawdzian krzy(cid:285)owy w klasyfikacji kategorialnej, a w pozo-
sta(cid:239)ych sytuacjach standardow(cid:200) k-krotn(cid:200) kroswalidacj(cid:218):
from sklearn.datasets import load_digits
from sklearn.model_selection import cross_val_score
from sklearn.svm import SVC
data = load_digits()
svm = SVC(kernel= poly )
skf_scores = cross_val_score(svm, data[ data ], data[ target ], cv=10)
print(skf_scores)
[ 0.96216216 1. 0.93922652 0.99444444 0.98882682 0.98882682
0.99441341 0.99438202 0.96045198 0.96590909]
print(skf_scores.mean())
0.978864325583
Ka(cid:285)da grupa cechuje si(cid:218) bardzo du(cid:285)(cid:200) dok(cid:239)adno(cid:258)ci(cid:200) ( 0,9), zatem spodziewamy si(cid:218), (cid:285)e
metod(cid:200) LOO uzyskamy jeszcze wi(cid:218)ksz(cid:200) jej warto(cid:258)(cid:202). Korzystamy z 1797 przyk(cid:239)adów, dlatego
powinni(cid:258)my uzyska(cid:202) tyle samo wyników:
from sklearn.model_selection import cross_val_score, LeaveOneOut
loo_scores = cross_val_score(svm, data[ data ], data[ target ], cv=LeaveOneOut())
print(loo_scores[0:100])
[ 1. 1. 1. 1. 1. 0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
1. 0. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 0. 1. 1.
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
print(loo_scores.mean())
0.988870339455
27
Poleć książkęKup książkęAlgorytmy uczenia maszynowego
Zgodnie z oczekiwaniami uzyskana dok(cid:239)adno(cid:258)(cid:202) jest bardzo du(cid:285)a, jednak pewne przyk(cid:239)ady s(cid:200)
nadal nieprawid(cid:239)owo klasyfikowane. Jak si(cid:218) wkrótce przekonamy, taka sytuacja mo(cid:285)e (cid:258)wiad-
czy(cid:202) o przetrenowaniu, co oznacza, (cid:285)e model jest doskonale dopasowany do zbioru ucz(cid:200)cego,
ale traci zdolno(cid:258)(cid:202) uogólniania. Metoda LOO nie nadaje si(cid:218) jednak zbytnio do pomiaru zdol-
no(cid:258)ci uogólniania z powodu rozmiaru zbioru walidacyjnego.
Sprawd(cid:283)my teraz algorytm przy u(cid:285)yciu techniki LPO. Uwzgl(cid:218)dniwszy dotychczas uzyskane
informacje, wybrali(cid:258)my mniejszy zestaw danych Iris i klasyfikator bazuj(cid:200)cy na regresji logi-
stycznej. Korzystamy ze 150 przyk(cid:239)adów (N=150), zatem po wyborze warto(cid:258)ci p=3 uzy-
skujemy 551 300 grup:
from sklearn.datasets import load_iris
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import cross_val_score, LeavePOut
data = load_iris()
p = 3
lr = LogisticRegression()
lpo_scores = cross_val_score(lr, data[ data ], data[ target ], cv=LeavePOut(p))
print(lpo_scores[0:100])
[ 1. 1. 1. 1. 1. 1.
1.
1. 1. 1. 1. 1. 1.
1.
1. 1. 1. 1. 1. 1.
1.
1. 1. 1. 1. 1. 1.
1.
1. 1. 1. 1. 1. 1.
1.
1. 1. 1. 1. 1. 1.
1.
1. 1. 1. 1. 1. 1.
1.
1. 1. 1. 1. 1. 1.
1.
1. 1. 1. 1. 1. 1.
1.
1. 0.66666667 ...
print(lpo_scores.mean())
0.955668420098
Podobnie jak w poprzednim przyk(cid:239)adzie, wy(cid:258)wietlili(cid:258)my zaledwie pierwsze 100 wyników,
jednak ju(cid:285) po kilku pierwszych warto(cid:258)ciach mo(cid:285)emy zauwa(cid:285)y(cid:202) ogóln(cid:200) tendencj(cid:218).
28
Poleć książkęKup książkęRozdzia(cid:225) 1. • Podstawy modelu uczenia maszynowego
Technika sprawdzianu krzy(cid:285)owego stanowi pot(cid:218)(cid:285)ne narz(cid:218)dzie, które przydaje si(cid:218) szczegól-
nie wtedy, gdy koszt skuteczno(cid:258)ci nie jest zbyt du(cid:285)y. Niestety, nie jest ona jednak najlep-
szym rozwi(cid:200)zaniem w przypadku modeli uczenia g(cid:239)(cid:218)bokiego, cechuj(cid:200)cych si(cid:218) znacznym
rozmiarem zestawu danych, a proces uczenia mo(cid:285)e trwa(cid:202) nawet wiele dni. Przekonamy si(cid:218)
jednak, (cid:285)e w takich sytuacjach prawid(cid:239)owy wybór (wspó(cid:239)czynnika podzia(cid:239)u zestawu danych)
wraz z dok(cid:239)adn(cid:200) analiz(cid:200) zestawów danych i wprowadzeniem takich technik jak regularyzacja
czy normalizacja pozwala uzyskiwa(cid:202) modele wykazuj(cid:200)ce doskona(cid:239)(cid:200) zdolno(cid:258)(cid:202) uogólniania.
Cechy modelu uczenia maszynowego
W tym podrozdziale przyjrzymy si(cid:218) modelom nadzorowanym i zastanowimy si(cid:218), w jaki sposób
mo(cid:285)na mierzy(cid:202) ich teoretyczn(cid:200), potencjaln(cid:200) dok(cid:239)adno(cid:258)(cid:202) i zdolno(cid:258)(cid:202) prawid(cid:239)owego uogólnia-
nia dla wszystkich mo(cid:285)liwych przyk(cid:239)adów zawartych w pdane. Wi(cid:218)kszo(cid:258)(cid:202) omawianych tu kon-
cepcji powsta(cid:239)a jeszcze przed nastaniem ery uczenia g(cid:239)(cid:218)bokiego, ci(cid:200)gle jednak maj(cid:200) ol-
brzymi wp(cid:239)yw na projekty badawcze. Na przyk(cid:239)ad poj(cid:218)cie pojemno(cid:258)ci (ang. capacity)
stanowi do dzisiaj otwarte pytanie, jakie neurobiolodzy zadaj(cid:200) w kontek(cid:258)cie ludzkiego mó-
zgu. Wspó(cid:239)czesne modele uczenia g(cid:239)(cid:218)bokiego zawieraj(cid:200)ce dziesi(cid:200)tki warstw i miliony para-
metrów ponownie o(cid:285)ywi(cid:239)y dyskusj(cid:218) w uj(cid:218)ciu matematycznym. Te oraz inne zagadnienia, ta-
kie jak granice wariancji estymatora, znowu przyci(cid:200)gaj(cid:200) uwag(cid:218), poniewa(cid:285) algorytmy staj(cid:200) si(cid:218)
coraz pot(cid:218)(cid:285)niejsze, a skuteczno(cid:258)(cid:202), która niegdy(cid:258) pozostawia(cid:239)a wiele do (cid:285)yczenia, daje teraz
wielkie mo(cid:285)liwo(cid:258)ci. Wspó(cid:239)czesny in(cid:285)ynier g(cid:239)(cid:218)bokich sieci neuronowych oczekuje dzisiaj, (cid:285)e
jego praca b(cid:218)dzie umo(cid:285)liwia(cid:202) uczenie modelu, a tak(cid:285)e pe(cid:239)ne wykorzystanie jego pojemno-
(cid:258)ci, maksymalizacj(cid:218) zdolno(cid:258)ci uogólniania i zwi(cid:218)kszenie dok(cid:239)adno(cid:258)ci w stopniu przewy(cid:285)sza-
j(cid:200)cym nawet mo(cid:285)liwo(cid:258)ci ludzkiego mózgu.
Pojemno(cid:258)(cid:202) modelu
Je(cid:285)eli b(cid:218)dziemy rozwa(cid:285)a(cid:202) model nadzorowany jako zbiór parametryzowanych funkcji, to
przez du(cid:285)(cid:200) pojemno(cid:258)(cid:202) modelu (ang. representational capacity) rozumiemy, (cid:285)e w zbiorze tym
znajdziemy du(cid:285)(cid:200) liczb(cid:218) bardzo ró(cid:285)nych rozk(cid:239)adów danych. Aby zrozumie(cid:202) to poj(cid:218)cie,
we(cid:283)my funkcj(cid:218) f(x) ró(cid:285)niczkowaln(cid:200) dowolnie wiele razy w pewnym otoczeniu punktu x0
i rozpiszmy j(cid:200) w postaci szeregu Taylora:
(cid:11) (cid:12)
f x
(cid:32)
(cid:11)
f x
0
(cid:12)
(cid:14)
f
(cid:99)
(cid:12) (cid:11)
(cid:11)
x
0
1!
x
(cid:16)
x
0
(cid:12)
(cid:14)
f
(cid:11)
x
(cid:99)(cid:99)
0
2!
(cid:12) (cid:11)
x
(cid:16)
x
0
2
(cid:12)
(cid:14)
(cid:102)
(cid:166)(cid:21)
(cid:32)
n
(cid:32)
0
f
n
(cid:11) (cid:12) (cid:11)
x
0
n
!
(cid:12) (cid:11)
x
(cid:16)
x
0
n
(cid:12)
Mo(cid:285)emy postanowi(cid:202), aby korzysta(cid:202) z n pierwszych cz(cid:239)onów, dzi(cid:218)ki czemu otrzymamy wie-
lomianow(cid:200) funkcj(cid:218) n-tego stopnia. Na rysunku 1.5 widzimy dwuwymiarowy przyk(cid:239)ad z sze-
(cid:258)cioma funkcjami (pocz(cid:200)wszy od funkcji liniowej). Mo(cid:285)emy zobaczy(cid:202) zmian(cid:218) ich przebiegu
dla ma(cid:239)ego zestawu punktów danych.
29
Poleć książkęKup książkęAlgorytmy uczenia maszynowego
Rysunek 1.5. Przebiegi sze(cid:258)ciu ró(cid:285)nych, wielomianowych krzywych rozdzielaj(cid:200)cych
Zdolno(cid:258)(cid:202) szybkiego zmieniania krzywizny jest wprost proporcjonalna do stopnia wielomianu.
Je(cid:285)eli wybierzemy klasyfikator liniowy, b(cid:218)dziemy mogli wp(cid:239)ywa(cid:202) jedynie na jego nachylenie
(ca(cid:239)y czas omawiamy przyk(cid:239)ad w przestrzeni dwuwymiarowej) i punkt przeci(cid:218)cia z osi(cid:200)
wspó(cid:239)rz(cid:218)dnych. Z kolei po wybraniu funkcji wy(cid:285)szego stopnia uzyskujemy wi(cid:218)ksz(cid:200) swobod(cid:218)
w zaginaniu krzywizny. We(cid:283)my pod uwag(cid:218) funkcje o stopniach n=1 i n=2. W przypadku
tej pierwszej mo(cid:285)emy uwzgl(cid:218)dni(cid:202) punkt (kropk(cid:218)) widniej(cid:200)cy w miejscu x=11, jednak ta de-
cyzja b(cid:218)dzie mia(cid:239)a negatywny wp(cid:239)yw na punkt umieszczony w x=5.
Jedynie parametryzowana funkcja nieliniowa jest w stanie skutecznie rozwi(cid:200)za(cid:202) ten pro-
blem, poniewa(cid:285) wymaga on pojemno(cid:258)ci potencjalnej wi(cid:218)kszej od zapewnianej przez klasyfi-
katory liniowe. Innym klasycznym przyk(cid:239)adem jest funkcja XOR. Badacze przez d(cid:239)ugi czas
ignorowali koncepcj(cid:218) perceptronów (liniowych sieci neuronowych), poniewa(cid:285) nie potrafi(cid:239)y
one klasyfikowa(cid:202) zestawów danych generowanych przy u(cid:285)yciu funkcji XOR. Na szcz(cid:218)(cid:258)cie
problem ten (i wiele innych, których z(cid:239)o(cid:285)ono(cid:258)(cid:202) wykracza poza mo(cid:285)liwo(cid:258)ci klasycznych mo-
deli uczenia maszynowego) zosta(cid:239) rozwi(cid:200)zany w momencie wprowadzenia perceptronów
wielowarstwowych zawieraj(cid:200)cych funkcje nieliniowe.
Pojemno(cid:258)(cid:202) Vapnika-Chervonenkisa
Pojemno(cid:258)(cid:202) klasyfikatora zosta(cid:239)a matematycznie sformalizowana w postaci teorii Vapnika-
-Chervonenkisa. Zanim przejdziemy do definicji, musimy najpierw wyja(cid:258)ni(cid:202) poj(cid:218)cie rozbijania
(ang. shattering). Je(cid:285)eli mamy klas(cid:218) zbiorów C i zbiór M, to mówimy, (cid:285)e C rozbija M, je(cid:285)eli:
(cid:5) (cid:142) (cid:7) (cid:143) (cid:159) (cid:32) (cid:136)
m M c C
j
m c M
i
i
j
30
Poleć książkęKup książkęRozdzia(cid:225) 1. • Podstawy modelu uczenia maszynowego
Innymi s(cid:239)owy dowolny podzbiór M mo(cid:285)emy uzyska(cid:202) jako cz(cid:218)(cid:258)(cid:202) wspóln(cid:200) okre(cid:258)lonego wyst(cid:200)pienia
zbioru C (cj) i samego zbioru M. Je(cid:258)li teraz rozwa(cid:285)ymy model jako funkcj(cid:218) parametryzowan(cid:200):
C f
(cid:32)
(cid:12)
(cid:11)
(cid:84)
gdzie
(cid:84)
(cid:143)R
p
Chcemy okre(cid:258)li(cid:202) jej pojemno(cid:258)(cid:202) w odniesieniu do sko(cid:241)czonego zestawu danych X:
X
(cid:32)
(cid:94)
x x
1,
0
,
(cid:21)
,
x
N
(cid:96)
gdzie
x
i
k
(cid:143)
R
Zgodnie z teori(cid:200) Vapnika-Chervonenkisa mo(cid:285)emy stwierdzi(cid:202), (cid:285)e model f rozbija zbiór X, je-
(cid:285)eli nie ma b(cid:239)(cid:218)dów klasyfikacji dla ka(cid:285)dego mo(cid:285)liwego przydzia(cid:239)u etykiety. Mo(cid:285)emy wi(cid:218)c
zdefiniowa(cid:202) pojemno(cid:258)(cid:202) Vapnika-Chervonenkisa (zwan(cid:200) tak(cid:285)e pojemno(cid:258)ci(cid:200) VC lub wymia-
rem VC) jako maksymaln(cid:200) moc podzbioru X, jak(cid:200) mo(cid:285)e rozbi(cid:202) model f.
Przyk(cid:239)adowo je(cid:258)li teraz rozwa(cid:285)ymy klasyfikator liniowy w przestrzeni dwuwymiarowej, po-
jemno(cid:258)(cid:202) VC b(cid:218)dzie równa 3, poniewa(cid:285) zawsze mo(cid:285)emy oznaczy(cid:202) trzy przyk(cid:239)ady rozbijane
przez model f; jest to jednak niemo(cid:285)liwe we wszystkich sytuacjach, gdzie N 3. Kwestia
funkcji XOR stanowi przyk(cid:239)ad modelu wymagaj(cid:200)cego pojemno(cid:258)ci VC wi(cid:218)kszej ni(cid:285) 3. Spójrz
na rysunek 1.6.
Rysunek 1.6. Problem XOR z ukazanymi ró(cid:285)nymi krzywymi rozdzielaj(cid:200)cymi
31
Poleć książkęKup książkęAlgorytmy uczenia maszynowego
Taki okre(cid:258)lony dobór etykiet sprawia, (cid:285)e ten zestaw staje si(cid:218) nieliniowo rozdzielny. Jedynym
sposobem rozwi(cid:200)zania tego problemu jest wprowadzenie funkcji wielomianowych wy(cid:285)szego
rz(cid:218)du (lub funkcji nieliniowych). Krzywe (przynale(cid:285)ne do klasyfikatora, którego pojemno(cid:258)(cid:202)
VC jest wi(cid:218)ksza od 3) mog(cid:200) rozdziela(cid:202) obszary w lewym górnym i prawym dolnym rogu wy-
kresu, co jest niewykonalne w przypadku prostej (mo(cid:285)e ona zawsze oddziela(cid:202) jeden punkt
od trzech pozosta(cid:239)ych).
Obci(cid:200)(cid:285)enie estymatora
Przyjrzyjmy si(cid:218) teraz parametryzowanemu modelowi zawieraj(cid:200)cemu jeden parametr wekto-
rowy (nie jest to (cid:285)adne ograniczenie, lecz wy(cid:239)(cid:200)cznie nasz wybór w celach dydaktycznych):
(cid:11)
(cid:12)
p X (cid:84)
;
Celem procesu uczenia jest takie oszacowanie parametru (cid:537), (cid:285)eby (na przyk(cid:239)ad) zmaksymali-
zowa(cid:202) dok(cid:239)adno(cid:258)(cid:202) klasyfikacji. Zdefiniujmy obci(cid:200)(cid:285)enie (ang. bias) estymatora (w odniesieniu
do parametru (cid:537)):
Obci(cid:261)(cid:298)enie
(cid:170) (cid:186)
(cid:84)
(cid:5)
(cid:172) (cid:188)
(cid:32)
E
x
|
(cid:84)
(cid:170) (cid:186)
(cid:84) (cid:84)
(cid:5)
(cid:172) (cid:188)
(cid:16) (cid:32)
(cid:167)
(cid:168)
(cid:169)
(cid:166)
x
(cid:84) (cid:84) (cid:84)
(cid:5)
(cid:16)
|
(cid:11)
p x
(cid:12)
(cid:183)
(cid:184)
(cid:185)
Innymi s(cid:239)owy obci(cid:200)(cid:285)enie stanowi ró(cid:285)nic(cid:218) pomi(cid:218)dzy warto(cid:258)ci(cid:200) oczekiwan(cid:200) oszacowania
a rzeczywist(cid:200) warto(cid:258)ci(cid:200) parametru. Pami(cid:218)taj, (cid:285)e oszacowanie jest funkcj(cid:200) zestawu danych X
i nie mo(cid:285)na go tu rozpatrywa(cid:202) jako sta(cid:239)ej.
Estymator jest nieobci(cid:200)(cid:285)ony (ang. unbiased), je(cid:285)eli:
Obci(cid:261)(cid:298)enie
(cid:170) (cid:186)
(cid:84)
(cid:5)
(cid:172) (cid:188)
(cid:32) (cid:159)
0
E
(cid:170) (cid:186)
(cid:84) (cid:84)
(cid:5)
(cid:172) (cid:188)
(cid:32)
Co wi(cid:218)cej, estymator jest spójny (ang. consistent), je(cid:285)eli sekwencja oszacowa(cid:241) jest zbie(cid:285)na
(przynajmniej z prawdopodobie(cid:241)stwem równym 1) z warto(cid:258)ci(cid:200) rzeczywist(cid:200), gdy k (cid:314) (cid:146):
(cid:5) (cid:33)
(cid:72)
0
P
(cid:11)
(cid:12)
(cid:84) (cid:84) (cid:72)
(cid:31) (cid:111)
(cid:16)
(cid:5)
k
1
kiedy
k
(cid:111) (cid:102)
Maj(cid:200)c dany zestaw danych X, którego przyk(cid:239)ady pochodz(cid:200) z pdane, dok(cid:239)adno(cid:258)(cid:202) estymatora
jest odwrotnie proporcjonalna do jego obci(cid:200)(cid:285)enia. Estymatory nieobci(cid:200)(cid:285)one (lub o ma(cid:239)ym
obci(cid:200)(cid:285)eniu) s(cid:200) w stanie odwzorowywa(cid:202) zestaw danych X z du(cid:285)(cid:200) precyzj(cid:200), natomiast esty-
matory o du(cid:285)ym obci(cid:200)(cid:285)eniu b(cid:218)d(cid:200) mia(cid:239)y prawdopodobnie zbyt ma(cid:239)(cid:200) pojemno(cid:258)(cid:202), aby rozwi(cid:200)-
za(cid:202) dany problem, dlatego ich umiej(cid:218)tno(cid:258)(cid:202) wykrywania wzorców jest niewielka.
32
Poleć książkęKup książkęRozdzia(cid:225) 1. • Podstawy modelu uczenia maszynowego
Obliczmy teraz pochodn(cid:200) obci(cid:200)(cid:285)enia w odniesieniu do wektora (cid:537) (przyda nam si(cid:218) to w dal-
szej cz(cid:218)(cid:258)ci ksi(cid:200)(cid:285)ki):
Obci(cid:261)(cid:298)enie
(cid:119)
(cid:170) (cid:186)
(cid:84)
(cid:5)
(cid:172) (cid:188)
(cid:84)
(cid:119)
(cid:32)
(cid:32)
(cid:167)
(cid:168)
(cid:168)
(cid:169)
(cid:166)
(cid:12)
(cid:84) (cid:84)
(cid:5)
(cid:11)
p x
|
x
(cid:119)
log
(cid:166)
x
(cid:12)
|
(cid:84)
(cid:119)
(cid:84)
(cid:119)
(cid:167)
(cid:167)
(cid:168)
(cid:168)
(cid:169)
(cid:169)
(cid:11)
p x
(cid:84)
(cid:119)
|
(cid:12)
(cid:16)
(cid:183)
(cid:184)
(cid:185)
(cid:11)
p x
(cid:183)
(cid:84) (cid:84) (cid:84)
(cid:5)
(cid:184)
(cid:185)
(cid:119)
1
(cid:16) (cid:32)
E (cid:84)
x
|
(cid:170)
(cid:84)
(cid:171)
(cid:5)
(cid:171)
(cid:172)
(cid:183)
(cid:184)
(cid:184)
(cid:185)
1
(cid:16) (cid:32)
(cid:183)
(cid:184)
(cid:184)
(cid:185)
(cid:32)
(cid:167)
(cid:168)
(cid:168)
(cid:169)
log
x
(cid:166)
(cid:84)
(cid:5)
(cid:11)
p x
(cid:84)
(cid:119)
(cid:11)
(cid:12)
p x
|
(cid:84)
(cid:119)
(cid:84)
(cid:119)
(cid:12)
|
(cid:84)
(cid:16)
1
(cid:186)
(cid:187)
(cid:187)
(cid:188)
(cid:62) (cid:64)E (cid:120) jest prawdziwe równie(cid:285) wtedy, gdy
Zauwa(cid:285), (cid:285)e ostatnie równanie dzi(cid:218)ki liniowo(cid:258)ci
do oszacowania (cid:537) dodamy cz(cid:239)on niezale(cid:285)ny od x. Istotnie zgodnie z prawami prawdopodo-
bie(cid:241)stwa mo(cid:285)emy (cid:239)atwo sprawdzi(cid:202), (cid:285)e:
(cid:166)
(cid:12)
(cid:84) (cid:84)
(cid:5)
(cid:12)
(cid:11)
a p x
(cid:12)
(cid:84) (cid:84)
(cid:5)
(cid:11)
p x
(cid:11)
(cid:84)
(cid:14)
(cid:5)
(cid:11)
p x
(cid:11)
p x
(cid:12)
|
(cid:84)
(cid:12)
(cid:84)
(cid:166)
(cid:166)
(cid:166)
(cid:32)
(cid:32)
(cid:14)
a
|
|
|
x
x
x
x
Niedotrenowanie
Model o du(cid:285)ym obci(cid:200)(cid:285)eniu prawdopodobnie b(cid:218)dzie niedotrenowany wobec zbioru ucz(cid:200)cego.
Rozwa(cid:285)my scenariusz zaprezentowany na rysunku 1.7.
Rysunek 1.7. Klasyfikator niedotrenowany: nie jest w stanie prawid(cid:239)owo rozdzieli(cid:202) obydwu klas
33
Poleć książkęKup książkęAlgorytmy uczenia maszynowego
Nawet je(cid:258)li problem jest bardzo trudny do rozwi(cid:200)zania, mo(cid:285)emy spróbowa(cid:202) dostosowa(cid:202) model
liniowy. Na koniec procesu uczenia nachylenie i punkt przeci(cid:218)cia z osi(cid:200) uk(cid:239)adu wspó(cid:239)rz(cid:218)d-
nych wynosz(cid:200) mniej wi(cid:218)cej odpowiednio: –1 i 0 (co wida(cid:202) na rysunku 1.7). Je(cid:285)eli jednak
zmierzymy dok(cid:239)adno(cid:258)(cid:202), oka(cid:285)e si(cid:218), (cid:285)e jest ona niemal równa 0! Bez wzgl(cid:218)du na liczb(cid:218) prze-
biegów model ten nigdy nie rozpozna powi(cid:200)za(cid:241) pomi(cid:218)dzy zbiorami X i Y. Zjawisko to na-
zywamy niedotrenowaniem (lub niedopasowaniem; ang. underfitting) i stanowi ono g(cid:239)ówny
wska(cid:283)nik bardzo niskiej dok(cid:239)adno(cid:258)ci uczenia. Nawet je(cid:258)li pewne czynno(cid:258)ci wst(cid:218)pnego prze-
twarzania danych mog(cid:200) j(cid:200) poprawi(cid:202), jedynym rozwi(cid:200)zaniem w przypadku niedotrenowanego
modelu jest dobór modelu o wi(cid:218)kszej pojemno(cid:258)ci.
W zadaniach uczenia maszynowego naszym celem jest uzyskanie maksymalnej dok(cid:239)adno(cid:258)ci,
pocz(cid:200)wszy od zbioru ucz(cid:200)cego a(cid:285) do zbioru walidacyjnego. W bardziej formalnym uj(cid:218)ciu
mo(cid:285)emy powiedzie(cid:202), (cid:285)e chcemy tak usprawnia(cid:202) modele, aby osi(cid:200)gn(cid:200)(cid:202) dok(cid:239)adno(cid:258)(cid:202) jak naj-
bardziej zbli(cid:285)on(cid:200) do dok(cid:239)adno(cid:258)ci Bayesa (ang. Bayes accuracy). Nie jest to wyra(cid:283)nie zde-
finiowana warto(cid:258)(cid:202), lecz teoretyczna górna granica dok(cid:239)adno(cid:258)ci, jak(cid:200) mo(cid:285)e osi(cid:200)gn(cid:200)(cid:202) dany es-
tymator. Zosta(cid:239)o to zilustrowane na rysunku 1.8.
Rysunek 1.8. Schemat poziomów dok(cid:239)adno(cid:258)ci
Dok(cid:239)adno(cid:258)(cid:202) Bayesa cz(cid:218)sto stanowi czysto teoretyczn(cid:200) granic(cid:218) i w wielu przypadkach nie
mo(cid:285)na jej osi(cid:200)gn(cid:200)(cid:202) nawet za pomoc(cid:200) uk(cid:239)adów biologicznych, jednak post(cid:218)py w dziedzinie
uczenia g(cid:239)(cid:218)bokiego pozwalaj(cid:200) tworzy(cid:202) modele, których dok(cid:239)adno(cid:258)(cid:202) jest tylko nieco gorsza
od dok(cid:239)adno(cid:258)ci Bayesa. Generalnie nie istnieje jawny wzór pozwalaj(cid:200)cy wyznaczy(cid:202) dok(cid:239)adno(cid:258)(cid:202)
Bayesa, dlatego za wyznacznik s(cid:239)u(cid:285)(cid:200) mo(cid:285)liwo(cid:258)ci ludzkiego mózgu. W poprzednim przy-
k(cid:239)adzie klasyfikacji cz(cid:239)owiek b(cid:239)yskawicznie rozró(cid:285)nia ró(cid:285)ne typy punktów danych, jednak
dla klasyfikatorów o ograniczonej pojemno(cid:258)ci problem ten mo(cid:285)e by(cid:202) bardzo skomplikowany.
Niektóre z omawianych w tej ksi(cid:200)(cid:285)ce modeli rozwi(cid:200)zuj(cid:200) go, osi(cid:200)gaj(cid:200)c bardzo du(cid:285)(cid:200) warto(cid:258)(cid:202)
dok(cid:239)adno(cid:258)ci. W tym momencie natrafiamy jednak na kolejne wyzwanie, które stanie si(cid:218) dla
nas bardziej zrozumia(cid:239)e po zdefiniowaniu poj(cid:218)cia wariancji estymatora.
34
Poleć książkęKup książkęRozdzia(cid:225) 1. • Podstawy modelu uczenia maszynowego
Wariancja estymatora
Na pocz(cid:200)tku rozdzia(cid:239)u zdefiniowali(cid:258)my proces generowania danych pdane i za(cid:239)o(cid:285)yli(cid:258)my, (cid:285)e
nasz zestaw danych X korzysta z tego rozk(cid:239)adu. Nie chcemy jednak poznawa(cid:202) istniej(cid:200)cych
zwi(cid:200)zków, ograniczaj(cid:200)c si(cid:218) wy(cid:239)(cid:200)cznie do tego zestawu danych, oczekujemy natomiast, (cid:285)e
nasz model b(cid:218)dzie sprawnie uogólnia(cid:239) prognozy wobec dowolnego podzbioru wygenerowa-
nego za pomoc(cid:200) pdane. Dobr(cid:200) miar(cid:200) tego zjawiska jest wariancja (ang. variance) estymatora:
War
(cid:170) (cid:186)
(cid:84)
(cid:5)
(cid:172) (cid:188)
(cid:32)
B(cid:225)dStd
2
(cid:170) (cid:186)
(cid:84)
(cid:5)
(cid:172) (cid:188)
(cid:32)
E
(cid:11)
(cid:170) (cid:186)
(cid:84) (cid:84)
(cid:5)
(cid:5)
(cid:172) (cid:188)
E
(cid:170)
(cid:171)
(cid:172)
(cid:16)
(cid:12)2
(cid:186)
(cid:187)
(cid:188)
Mo(cid:285)emy równie(cid:285) zdefiniowa(cid:202) wariancj(cid:218) jako kwadrat b(cid:239)(cid:218)du standardowego (na drodze
analogii z odchyleniem standardowym). Du(cid:285)a wariancja sugeruje znaczne zmiany w dok(cid:239)ad-
no(cid:258)ci podczas pojawiania si(cid:218) nowych podzbiorów, poniewa(cid:285) model prawdopodobnie uzyska(cid:239)
bardzo wysok(cid:200) dok(cid:239)adno(cid:258)(cid:202) uczenia poprzez przetrenowanie na ograniczonym zestawie rela-
cji i niemal ca(cid:239)kowicie zatraci(cid:239) umiej(cid:218)tno(cid:258)(cid:202) uogólniania.
Przetrenowanie
Je(cid:285)eli niedotrenowanie stanowi(cid:239)o konsekwencj(cid:218) ma(cid:239)ej pojemno(cid:258)ci i du(cid:285)ego obci(cid:200)(cid:285)enia, to
przetrenowanie (lub nadmierne dopasowanie; ang. overfitting) jest zjawiskiem powi(cid:200)zanym
z du(cid:285)(cid:200) warto(cid:258)ci(cid:200) wariancji. Generalnie mo(cid:285)emy obserwowa(cid:202) bardzo du(cid:285)(cid:200) dok(cid:239)adno(cid:258)(cid:202) ucze-
nia (by(cid:202) mo(cid:285)e blisk(cid:200) nawet dok(cid:239)adno(cid:258)ci Bayesa), która jednak bardzo maleje wobec zbioru
walidacyjnego. Oznacza to, (cid:285)e pojemno(cid:258)(cid:202) modelu jest wystarczaj(cid:200)co (a mo(cid:285)e nawet zbyt)
du(cid:285)a do danego zadania (wraz ze wzrostem pojemno(cid:258)ci zwi(cid:218)ksza si(cid:218) warto(cid:258)(cid:202) wariancji),
a tak(cid:285)e (cid:285)e zbiór ucz(cid:200)cy nie jest wystarczaj(cid:200)co reprezentatywny dla pdane. Aby lepiej zrozumie(cid:202)
to zagadnienie, przeanalizuj rysunek 1.9.
Rysunek 1.9. Prawid(cid:239)owe dopasowanie (po lewej), klasyfikator przetrenowany (po prawej)
35
Poleć książkęKup książkęAlgorytmy uczenia maszynowego
W wykresie po lewej u(cid:285)yli(cid:258)my modelu regresji logistycznej, natomiast wykres po prawej
uzyskali(cid:258)my za pomoc(cid:200) modelu maszyny wektorów no(cid:258)nych z j(cid:200)drem wielomianowym szó-
stego stopnia. Je(cid:285)eli przyjrzymy si(cid:218) temu drugiemu modelowi, zauwa(cid:285)ymy, (cid:285)e granice decy-
zyjne s(cid:200) znacznie precyzyjniejsze i odstaje od nich tylko kilka przyk(cid:239)adów. Bior(cid:200)c pod uwag(cid:218)
wymiary obydwu zbiorów danych, mogliby(cid:258)my stwierdzi(cid:202), (cid:285)e nieliniowa maszyna wektorów
no(cid:258)nych lepiej wychwytuje ich dynamik(cid:218). Je(cid:258)li jednak stworzymy kolejny zestaw danych za
pomoc(cid:200) procesu pdane, a diagonalny ogon stanie si(cid:218) szerszy, model regresji logistycznej nadal
b(cid:218)dzie prawid(cid:239)owo klasyfikowa(cid:202) punkty danych, natomiast drastycznie zmaleje dok(cid:239)adno(cid:258)(cid:202)
maszyny wektorów no(cid:258)nych. Drugi model jest bardzo podatny na przetrenowanie i wyma-
gane jest wprowadzanie pewnych poprawek. Gdy dok(cid:239)adno(cid:258)(cid:202) dla zbioru walidacyjnego jest
znacznie ni(cid:285)sza ni(cid:285) dla zbioru ucz(cid:200)cego, dobrym rozwi(cid:200)zaniem staje si(cid:218) zwi(cid:218)kszenie liczby
przyk(cid:239)adów ucz(cid:200)cych, aby mo(cid:285)na by(cid:239)o uwzgl(cid:218)dnia(cid:202) rzeczywisty proces pdane. W rzeczywisto-
(cid:258)ci bywa czasami tak, (cid:285)e zbiór ucz(cid:200)cy jest od pocz(cid:200)tku generowany za pomoc(cid:200) hipotetycz-
nego rozk(cid:239)adu maj(cid:200)cego niewiele wspólnego z rzeczywisto(cid:258)ci(cid:200), ewentualnie liczba przyk(cid:239)adów
u(cid:285)ywanych do walidacji jest zbyt du(cid:285)a, co zmniejsza ilo(cid:258)(cid:202) informacji zawartych w pozosta-
(cid:239)ych przyk(cid:239)adach. Sprawdzian krzy(cid:285)owy jest warto(cid:258)ciowym sposobem oceniania jako(cid:258)ci ze-
stawów danych, zawsze jednak mo(cid:285)emy odkry(cid:202) zupe(cid:239)nie nowe podzbiory (na przyk(cid:239)ad ge-
nerowane po wdro(cid:285)eniu aplikacji do (cid:258)rodowiska produkcyjnego), które b(cid:218)d(cid:200) nieprawid(cid:239)owo
klasyfikowane pomimo rzekomej przynale(cid:285)no(cid:258)ci do pdane. Je(cid:285)eli nie mamy mo(cid:285)liwo(cid:258)ci po-
wi(cid:218)kszenia zbioru testowego, przydatne mo(cid:285)e by(cid:202) dogenerowanie danych, poniewa(cid:285) meto-
da ta pozwala tworzy(cid:202) sztuczne przyk(cid:239)ady (w przypadku obrazów przeprowadzane s(cid:200) opera-
cje odwracania, obracania lub rozmywania) za pomoc(cid:200) informacji zawartych w istniej(cid:200)cych
punktach danych. Inne strategie zapobiegaj(cid:200)ce przetrenowaniu bazuj(cid:200) na technice zwanej
regularyzacj(cid:200), do której powrócimy pod koniec rozdzia(cid:239)u. Na razie wystarczy nam informacja,
(cid:285)e skutek regularyzacji przypomina cz(cid:218)(cid:258)ciow(cid:200) linearyzacj(cid:218), co wi(cid:200)(cid:285)e si(cid:218) ze zmniejszaniem
pojemno(cid:258)ci, a zatem równie(cid:285) redukcj(cid:200) wariancji.
Granica Craméra—Rao
Je(cid:285)eli istnieje teoretyczna mo(cid:285)liwo(cid:258)(cid:202) stworzenia modelu nieobci(cid:200)(cid:285)onego (nawet asympto-
tycznie), nie mo(cid:285)na tego samego powiedzie(cid:202) o wariancji. Aby zrozumie(cid:202) t(cid:218) koncepcj(cid:218), mu-
simy wprowadzi(cid:202) istotn(cid:200) definicj(cid:218): informacj(cid:218) Fishera. Je(cid:258)li mamy parametryzowany model
i proces generowania danych pdane, mo(cid:285)emy wyznaczy(cid:202) funkcj(cid:218) prawdopodobie(cid:241)stwa przy
uwzgl(cid:218)dnieniu nast(cid:218)puj(cid:200)cych parametrów:
L
(cid:11)
(cid:84)
|
X
(cid:12)
(cid:32)
(cid:11)
p X
|
(cid:12)
(cid:84)
Funkcja ta pozwala mierzy(cid:202) dopasowanie modelu do pierwotnego procesu generowania da-
nych. Przebieg tej funkcji mo(cid:285)e przyjmowa(cid:202) ró(cid:285)ne kszta(cid:239)ty, od wyra(cid:283)nie zarysowanych
krzywych wypuk(cid:239)ych a(cid:285) do niemal zupe(cid:239)nych wyp(cid:239)aszcze(cid:241). Na rysunku 1.10 widzimy dwa
przyk(cid:239)ady zale(cid:285)ne od jednego parametru.
36
Poleć książkęKup książkęRozdzia(cid:225) 1. • Podstawy modelu uczenia maszynowego
Rysunek 1.10. Spiczasty (po lewej) i sp(cid:239)aszczony (po prawej) przebieg prawdopodobie(cid:241)stwa
Od razu widzimy, (cid:285)e w pierwszym przypadku mo(cid:285)emy (cid:239)atwo osi(cid:200)gn(cid:200)(cid:202) prawdopodobie(cid:241)stwo
maksymalne za pomoc(cid:200) wzrostu wzd(cid:239)u(cid:285) gradientu, gdy(cid:285) wykres funkcji jest bardzo stromy.
Jednak(cid:285)e w drugiej sytuacji rozmiar gradientu jest mniejszy i szybciej mo(cid:285)na zatrzyma(cid:202) si(cid:218)
przed osi(cid:200)gni(cid:218)ciem maksimum globalnego z powodu nie(cid:258)cis(cid:239)o(cid:258)ci numerycznych lub tole-
rancji. W najgorszym wypadku przebieg funkcji mo(cid:285)e by(cid:202) niemal p(cid:239)aski na d(cid:239)ugich odcinkach,
co oznacza warto(cid:258)(cid:202) gradientu zbli(cid:285)on(cid:200) do zera. Chcieliby(cid:258)my, oczywi(cid:258)cie, zawsze pracowa(cid:202)
na bardzo wyrazistych i stromych funkcjach prawdopodobie(cid:241)stwa, poniewa(cid:285) zawieraj(cid:200) one
wi(cid:218)cej informacji na temat ich maksimum. Informacja Fishera wyznacza t(cid:218) warto(cid:258)(cid:202) w spo-
sób ilo(cid:258)ciowy. Definiujemy j(cid:200) nast(cid:218)puj(cid:200)co dla pojedynczego parametru:
I
(cid:11)
(cid:12)
(cid:84)
(cid:32)
E
x
|
(cid:84)
(cid:170)
(cid:171)
(cid:171)
(cid:172)
(cid:119)(cid:167)
(cid:168)
(cid:119)(cid:169)
(cid:84)
log
(cid:11)
p x
|
(cid:12)
(cid:84)
2
(cid:183)
(cid:184)
(cid:185)
(cid:186)
(cid:187)
(cid:187)
(cid:188)
Informacja Fishera jest nieograniczon(cid:200), nieujemn(cid:200) liczb(cid:200) wprost proporcjonaln(cid:200) do ilo(cid:258)ci
informacji przenoszonej przez logarytm prawdopodobie(cid:241)stwa. Wprowadzenie logarytmu nie
ma wp(cid:239)ywu na wzrost gradientu, ale upraszcza poszczególne wyra(cid:285)enia, gdy(cid:285) przekszta(cid:239)ca
iloczyny w sumy. Warto(cid:258)(cid:202) t(cid:218) mo(cid:285)emy interpretowa(cid:202) jako szybko(cid:258)(cid:202) gradientu w d(cid:200)(cid:285)eniu
funkcji do maksimum. Jej wi(cid:218)ksze warto(cid:258)ci
Pobierz darmowy fragment (pdf)