Hjem Personlig finansiering Kæmper med overfitting i maskinlæring - dummier

Kæmper med overfitting i maskinlæring - dummier

Indholdsfortegnelse:

Video: Annoncørbetalt indhold: Kelli kæmper med angst efter psykisk vold 2024

Video: Annoncørbetalt indhold: Kelli kæmper med angst efter psykisk vold 2024
Anonim

I betragtning af den neurale netværksarkitektur kan du forestille dig, hvor nemt algoritmen kan lære næsten alt fra data, især hvis du har tilføjet for mange lag. Faktisk gør algoritmen så godt, at dets forudsigelser ofte påvirkes af en høj estimatvariant kaldet overfitting. Overfitting får det neurale netværk til at lære hver eneste detalje i træningseksemplerne, hvilket gør det muligt at replikere dem i forudsigelsesfasen. Men bortset fra træningssættet vil det ikke altid forudsige noget andet.

Forstå overfitting problemet

Når du bruger et neuralt netværk til et reelt problem, skal du tage nogle forsigtighedsforanstaltninger på en meget strengere måde, end du gør med andre algoritmer. Neurale netværk er frailer og mere tilbøjelige til relevante fejl end andre maskinindlæringsløsninger.

For det første deler du dine data omhyggeligt til træning, validering og testsæt. Før algoritmen lærer af data, skal du evaluere godheden af ​​dine parametre: arkitektur (antallet af lag og noder i dem); aktiveringsfunktioner læringsparameter; og antallet af iterationer. Arkitekturen giver især gode muligheder for at skabe kraftige prædiktive modeller med stor risiko for overfitting. Læringsparameteren styrer, hvor hurtigt et netværk lærer af data, men det kan ikke være tilstrækkeligt til at forhindre overfitting af træningsdataene.

Du har to mulige løsninger på dette problem:

  • Den første løsning er regularisering som i lineær og logistisk regression. Du kan opsummere alle forbindelseskoefficienter, kvadreret eller i absolut værdi, for at straffe modeller med for mange koefficienter med høje værdier (opnået ved L2-regulering) eller med værdier, der er forskellige fra nul (opnået ved L1-regulering).
  • Den anden løsning er også effektiv, fordi den styrer, når overfitting sker. Den kaldes tidligt stop og fungerer ved at tjekke omkostningsfunktionen på valideringssætet, som algoritmen lærer fra træningssættet.

Du kan ikke være klar over, hvornår din model starter overfitting. Omkostningsfunktionen, der beregnes ved hjælp af træningssættet, forbedres, da optimering skrider frem. Men så snart du begynder at optage støj fra dataene og stoppe med at lære generelle regler, kan du tjekke omkostningsfunktionen på en ude af prøven (valideringsprøven). På et tidspunkt vil du bemærke, at det holder op med at forbedre og begynder at blive forværret, hvilket betyder at din model har nået sin læringsgrænse.

Åbning af den sorte boks i neurale netværk

Den bedste måde at lære at opbygge et neuralt netværk på er at opbygge en. Python tilbyder et væld af mulige implementeringer til neurale netværk og dyb læring. Python har biblioteker som Theano, som tillader komplekse beregninger på abstrakt niveau og mere praktiske pakker som Lasagne, som giver dig mulighed for at opbygge neurale netværk, selv om det stadig kræver nogle abstraktioner. Af denne grund behøver du wrappere, som nolearn, som er kompatibel med scikit-lær eller Keras, som også kan pakke TensorFlow-biblioteket ud af Google, der har potentiale til at erstatte Theano som et softwarebibliotek til neural beregning.

R giver biblioteker, der er mindre komplicerede og mere tilgængelige, såsom nnet, AMORE og neuralnet. Disse korte eksempler i R viser, hvordan man træner både et klassificeringsnetværk (på Iris-datasættet) og et regressionsnetværk (på Boston-datasættet). Fra og med klassifikationen læser følgende kode datasættet og opdeles i træning og testsæt:

bibliotek (neuralnet)

mål <- model. matrix (~ Species, # 1, data = iris)

colnames (target) <- c ("setosa", "versicolor", "virginica")

sæt. frø (101)

indeks <- prøve (1: nrow (iris), 100)

train_predictors <- iris [indeks, 1: 4]

test_predictors <- iris [-index, 1: 4]

Da neurale netværk er afhængige af gradientafstamning, skal du standardisere eller normalisere inputene. Normalisering er bedre, så minimumet er nul og maksimum er en for hver funktion. Du lærer selvfølgelig, hvordan man foretager den numeriske konvertering kun ved hjælp af træningssættet for at undgå enhver chance for at bruge information fra testen uden for prøven.

min_vektor <- apply (train_predictors, 2, min)

range_vector <- apply (train_predictors, 2, max) -

anvend (train_predictors, 2, min)

train_scaled <- cbind

test_scaled <- cbind (skala (test_predictors,

min_vector, range_vector),

mål [-index,]) < sammendrag (train_scaled)

Når træningssættet er klar, kan du træne modellen for at gætte tre binære variabler, hvor hver af dem repræsenterer en klasse. Udgangen er en værdi for hver klasse proportional med sandsynligheden for at være den rigtige klasse. Du vælger en forudsigelse ved at tage den højeste værdi. Du kan også visualisere netværket ved at bruge det interne plot og dermed se den neurale netværksarkitektur og de tildelte vægte.

indstillet. frø (102)

nn_iris <- neuralnet (setosa + versicolor + virginica ~

Sepal. Længde + Sepal. Bredde

+ Petal. Længde + Petal. Bredde,

data = train_scaled, hidden = c (2),

lineær. Output = F)

plot (nn_iris)

forudsigelser <- beregne (nn_iris, test_scaled [1: 4])

y_predicted <- apply Resultat, 1, hvilket. max)

y_true <- apply (test_scaled [5: 7], 1, hvilket. max)

confusion_matrix <- table (y_true, y_predicted)

nøjagtighed <- sum diag (confusion_matrix)) /

sum (forvirring_matrix)

print (confusion_matrix)

print (indsæt ("Nøjagtighed:", nøjagtighed))

Du kan tegne et trænet neuralt netværk.

Følgende eksempel viser hvordan man kan forudsige husværdier i Boston ved hjælp af Boston-datasættet. Fremgangsmåden er den samme som i den foregående klassifikation, men her har du en enkelt udgangsenhed. Koden tegner også testsætets forventede resultater mod de reelle værdier for at verificere modelens gode pasform.

no_examples <- nrow (Boston)

funktioner <- colnames (Boston)

sæt. frø (101)

indeks <- prøve (1: no_examples, 400)

tog <- boston [indeks,]

test <- boston [-index,]

min_vektor <- apply, 2, min)

range_vector <- apply (tog, 2, max) - apply (tog, 2, min)

scaled_train <- skala (tog, min_vector, range_vector)

scaled_test <- skala test, min_vector, range_vector)

formel = pasta ("medv ~", indsæt (funktioner [1: 13],

collapse = 'n'))

nn_boston <- neuralnet = scaled_train,

skjult = c (5, 3), lineær. output = T)

forudsigelser <- compute (nn_boston, scaled_test [1: 13])

forudsagt_værdier <- (forudsigelser $ netto. resultat

interval_vector [14]) + min_vector [14]

RMSE <- sqrt (middelværdi ((test [14] - forudsagt_valider) ^ 2))

udskrive (indsæt ("RMSE: RMSE))

plot (test [14], forudsagte_værdier, cex = 1. 5)

ablin (0, 1, lwd = 1)

Kæmper med overfitting i maskinlæring - dummier

Valg af editor

Hvad er Array Formulas i Excel 2013? - dummies

Hvad er Array Formulas i Excel 2013? - dummies

En matrixformel i Excel 2013 (og andre regneark) er en speciel formel, der opererer på en række værdier. Hvis et celleområde leverer dette interval (som det ofte er tilfældet), betegnes det som et arrayinterval. Hvis denne rækkevidde leveres af en liste over numeriske værdier, er de kendt som ...

Ved hjælp af regnearkfunktioner til statistisk analyse i Excel 2016 - dummies

Ved hjælp af regnearkfunktioner til statistisk analyse i Excel 2016 - dummies

Excel 2016b har en række funktioner til Statistisk analyse. Funktionsbiblioteket på fanen Formler viser alle kategorier af Excel-regnearkfunktioner. Trinene i at bruge et regneark funktion er Skriv dine data i et datarray og vælg en celle for resultatet. Vælg den relevante formelskategori og vælg en ...

Hvad er nyt i Excel 2016 til statistisk analyse? - dummies

Hvad er nyt i Excel 2016 til statistisk analyse? - dummies

Microsoft har lavet nogle få ændringer i Excel's Ribbon (fanebåndet øverst), hvilket afspejler ændringer i Excel. Den mest oplagte tilføjelse er pæren øverst til højre for tilføjelser. Det er mærket "Fortæl mig hvad du vil gøre. "Dette kaldes Tell Me-boksen, og det er nyt ...

Valg af editor

Sådan postes på en vens Facebook-tidslinje - dummies

Sådan postes på en vens Facebook-tidslinje - dummies

Dit nyhedsfeed trækker indlæg, som dine Facebook-venner lav på et sted, så du kan læse dem alle på én gang. Men nogle gange vil du læse alt om kun en person. Heldigvis er alle deres indlæg blevet samlet på deres tidslinjer. Tidslinjen er ligesom en nyhedsfeed alt om en person. ...

Sådan sender du en Facebook-begivenhed - dummies

Sådan sender du en Facebook-begivenhed - dummies

Den første måde du sikkert finder ud af om Facebook begivenheden er gennem en anmeldelse. Når en ven inviterer dig til en begivenhed, vises et lille rødt flag over meddelelsesikonet i den store blå bar øverst. Klik på ikonet for at åbne din underretningsmenu; Klik derefter på den invitation, der skal tages ...

Hvordan man kan se de billeder du er på Facebook - dummies

Hvordan man kan se de billeder du er på Facebook - dummies

Hvis du har meget af Facebook venner, du er sandsynligvis i et ton af fotos. Du kan se de billeder, du er i, uden at skulle gå hele Facebook, så længe du er mærket i dem. Måske har du tagget dem selv, eller dine venner har måske tagget dig. Det første sted du ...

Valg af editor

Digital SLR-fotografi Alt-i-One til Dummies Cheat Sheet - dummies

Digital SLR-fotografi Alt-i-One til Dummies Cheat Sheet - dummies

Hvis du 'er interesseret i fotografering, du finder ingen bedre enhed end en digital spejlreflekskamera (eller dSLR). Uanset om du er amatør eller professionel, kan du finde en dSLR, der passer til dine behov. Du kan virkelig ikke slå kombinationen af ​​magt, fleksibilitet, vækstpotentiale og "accessorize-ability" af en dSLR. Med oplysningerne i denne ...

Hvordan man tager gebyr som bryllupsfotograf - dummier

Hvordan man tager gebyr som bryllupsfotograf - dummier

Som bryllupsfotograf, dit job er at hjælpe De formelle portrætter flyder så jævnt som muligt. Du kan lægge meget af grunden i månederne før den faktiske bryllupsdato som du kommunikerer med parret. Hvis du gør dine lektier, kan du fokusere på at holde portræt sessioner organiseret og opretholde kontrol ...