Det er vanlig å normalisere data for å trene et nevralt nettverk til null gjennomsnitt og «enhet» standardavvik for å redusere eksploderende og forsvinnende gradienteffekter etc.
Hva betyr «enhet» std her? Et eksempel vil være veldig nyttig.
Kommentarer
- Det betyr lik 1. For å få det til å dele verdier med standardavviket til de opprinnelige dataene . (Nullverdien kommer fra å trekke gjennomsnittet.)
Svar
Det betyr at du konverterer datafunksjonene dine fra de opprinnelige enhetene (miles, dollar, forløpt tid, …) til enheter med standardavvik. Som du ba om følger et veldig enkelt eksempel:
Forslag at du vil forutsi boligpriser fra to funksjoner: antall soverom (heltall) og størrelse (i kvadratmeter enhet), som den fiktive databellen:
import numpy as np X = np.array([[1, 65],[3, 130],[2, 80],[2, 70],[1, 50]])
Legg merke til at hver funksjon har veldig forskjellig gjennomsnitt og standardavvik
print("mean={}, std{}".format(X.mean(axis=0), X.std(axis=0))
Utganger: mean=[ 1.83333333, 78.33333333]), std=[ 0.68718427, 24.94438258])
Legg merke til at funksjonsstørrelsen har gjennomsnitt og std mer enn 30 ganger større enn antall soverom, dette gir forvrengninger i noen algoritmeberegninger (som nevrale nett, svm , knn, etc) der noen funksjoner med større verdier dominerer helt de andre med mindre verdier. For å løse det er en vanlig og veldig effektiv praksis å transformere dataene til enheter med standardavvik med null gjennomsnitt, det vil si at du trekker gjennomsnittet og deler med standardavviket, som nedenfor:
X_t = (X - X.mean(axis=0))/X.std(axis=0)
Variabelen X_t
(X transformert) inneholder funksjonene dine i enhetsstandardavvik med null gjennomsnitt, utskrift X_t
får du:
array([[-1.21267813, -0.53452248], [ 1.69774938, 2.07127462], [ 0.24253563, 0.06681531], [ 0.24253563, -0.33407655], [-1.21267813, -1.13586028], [ 0.24253563, -0.13363062]])
Se hvordan tallene i begge funksjonene har samme størrelse. Hvis du skriver ut X_t
mener og std nå får du
mean=[ 1.11022302e-16 2.08166817e-16], std=[ 1. 1.]
som forventet.