Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
Wejścialiczbowe
Większośćnowoczesnych,wielkoskalowychmodeliuczeniamaszynowego(lasylosowe,
maszynywektorównośnych,siecineuronowe)operująnawartościachliczbowych,aza-
temjeślidanewejściowenumeryczne,możemyprzekazaćjedomodelubezzmian.
Dlaczegoskalowaniejestwskazane
PonieważframeworkMLużywaoptymalizatora,któryjestdobrzedostrojonydopracy
zliczbamizzakresu[1,1],skalowaniewartościliczbowych,abyleżaływtymzakresie,
możebyćczęstokorzystne.
Dlaczegoskalowaćwartościliczbowe,abyleżaływzakresie[1,1]?
Optymalizatoryspadkugradientuwymagająwięcejkroków,abyosiągnąćzbież-
ność,gdykrzywafunkcjistratysięzwiększa.Jesttak,ponieważpochodnecech
zwiększymimodułamiwzględnymibędąmiałytendencję,abyrównieżbyćwiększe,
coprowadzidoanormalnychaktualizacjiwag.Anormalniedużeaktualizacjewag
będąwymagaćwiększejliczbykrokówdoosiągnięciazbieżności,azatemzwiększają
obciążenieobliczeniowe.
nCentrowanie”danych,abyleżaływzakresie[1,1],powoduje,żefunkcja
błędujestbardziejsferyczna.Wtedymodeletrenowanezprzekształconymidanymi
majątendencjędoszybszejzbieżności,azatemszybszegoltańszegotrenowania.
Dodatkowozakres[1,1]oferujewiększąprecyzjęliczbzmiennoprzecinkowych.
Szybkitestnajednymzwbudowanychzbiorówdanychscikit-learnmożetoudowodnić
(tenfragmentkodudostępnyjestwrepozytoriumdlatejksiążki2):
fromsklearnimportdatasets,linear-model
diabetes-X,diabetes-y:datasets.load-diabetes(return-X-y:True)
raw:diabetes-X[:,None,2]
max-raw:max(raw)
min-raw:min(raw)
scaled:(2*raw-max-raw-min-raw)/(max-raw-min-raw)
deftrain-raw():
linear-model.LinearRegression().fit(raw,diabetes-y)
deftrain-scaled():
linear-model.LinearRegression().fit(scaled,diabetes-y)
raw-time:timeit.timeit(train-raw,number:1000)
scaled-time:timeit.timeit(train-scaled,number:1000)
2
https://github.com/GoogleCloudPlatform/ml-design-patterns/blob/master/02_data_representation/sim-
ple_data_representation.ipynb
22
|
Rozdział2:Wzorceprojektowereprezentacjidanych