Programmering

Automatisert maskinlæring eller AutoML forklart

De to største hindringene for bruk av maskinlæring (både klassisk maskinlæring og dyplæring) er ferdigheter og databehandlingsressurser. Du kan løse det andre problemet ved å kaste penger på det, enten for kjøp av akselerert maskinvare (for eksempel datamaskiner med avanserte GPUer) eller for leie av databehandlingsressurser i skyen (for eksempel forekomster med tilknyttede GPUer, TPUer og FPGAer).

På den annen side er det vanskeligere å løse ferdighetsproblemet. Dataforskere har ofte store lønninger og kan fortsatt være vanskelig å rekruttere. Google var i stand til å trene mange av sine ansatte i sitt eget TensorFlow-rammeverk, men de fleste selskaper har knapt folk dyktige nok til å bygge maskinlæring og dyplæringsmodeller selv, enda mindre lære andre hvordan.

Hva er AutoML?

Automated machine learning, eller AutoML, tar sikte på å redusere eller eliminere behovet for dyktige dataforskere for å bygge maskinlæring og dyplæringsmodeller. I stedet lar et AutoML-system deg gi de merkede treningsdataene som input og motta en optimalisert modell som output.

Det er flere måter å gjøre dette på. En tilnærming er at programvaren bare trener alle slags modeller på dataene og velger den som fungerer best. En forbedring av dette vil være at den bygger en eller flere ensemblemodeller som kombinerer de andre modellene, noe som noen ganger (men ikke alltid) gir bedre resultater.

En annen teknikk er å optimalisere hyperparametrene (forklart nedenfor) til den eller de beste modellene for å trene en enda bedre modell. Funksjonsteknikk (også forklart nedenfor) er et verdifullt tillegg til enhver modellopplæring. En måte å avskille dyp læring på er å bruke overføringslæring, og i hovedsak tilpasse en velutdannet generell modell for spesifikke data.

Hva er hyperparameteroptimalisering?

Alle maskinlæringsmodeller har parametere, som betyr vektene for hver variabel eller funksjon i modellen. Disse bestemmes vanligvis av tilbakeforplantning av feilene, pluss iterasjon under kontroll av en optimizer som stokastisk gradientnedstigning.

De fleste maskinlæringsmodeller har også hyperparametere som er satt utenfor treningsløkken. Disse inkluderer ofte læringsgraden, frafallet og modellspesifikke parametere, for eksempel antall trær i en tilfeldig skog.

Hyperparameter tuning eller hyperparameter optimalisering (HPO) er en automatisk måte å feie eller søke gjennom en eller flere av hyperparametrene i en modell for å finne settet som resulterer i den best trente modellen. Dette kan være tidkrevende, siden du trenger å trene modellen igjen (den indre sløyfen) for hvert sett med hyperparameterverdier i feien (den ytre sløyfen). Hvis du trener mange modeller parallelt, kan du redusere tiden det tar på bekostning av å bruke mer maskinvare.

Hva er funksjonsteknikk?

EN trekk er en individuell målbar egenskap eller karakteristikk av et fenomen som observeres. Begrepet "funksjon" er relatert til begrepet til en forklarende variabel, som brukes i statistiske teknikker som lineær regresjon. EN funksjonvektor kombinerer alle funksjonene for en enkelt rad i en numerisk vektor. Funksjonsteknikk er prosessen med å finne det beste settet med variabler og den beste datakoding og normalisering for input til modellopplæringsprosessen.

En del av kunsten å velge funksjoner er å velge et minimumssett av uavhengig variabler som forklarer problemet. Hvis to variabler er sterkt korrelert, må de enten kombineres til en enkelt funksjon, eller så bør en bli droppet. Noen ganger utfører folk hovedkomponentanalyse (PCA) for å konvertere korrelerte variabler til et sett med lineært ukorrelerte variabler.

For å bruke kategoriske data for maskinklassifisering, må du kode tekstetikettene i et annet skjema. Det er to vanlige kodinger.

En er merkekoding, som betyr at hver tekstetikettverdi erstattes med et tall. Den andre er en-hot-koding, som betyr at hver tekstetikettverdi blir omgjort til en kolonne med en binær verdi (1 eller 0). De fleste maskinlæringsrammer har funksjoner som gjør konverteringen for deg. Generelt foretrekkes én-hot-koding, ettersom koding av etiketter noen ganger kan forvirre maskinlæringsalgoritmen til å tro at den kodede kolonnen er bestilt.

For å bruke numeriske data for maskinregresjon må du vanligvis normalisere dataene. Ellers kan tallene med større områder ha en tendens til å dominere den euklidiske avstanden mellom funksjonsvektorer, deres effekter kan forstørres på bekostning av de andre feltene, og den bratteste nedstigningsoptimaliseringen kan ha problemer med å konvergere. Det er en rekke måter å normalisere og standardisere data for maskinlæring, inkludert min-max normalisering, gjennomsnittlig normalisering, standardisering og skalering til enhetslengde. Denne prosessen kalles ofte funksjonskalering.

Noen av transformasjonene som folk bruker for å konstruere nye funksjoner eller redusere dimensjonaliteten til funksjonsvektorer, er enkle. Trekk for eksempel fra Fødselsår fra Dødsåret og du konstruerer Alder ved døden, som er en primær uavhengig variabel for livstids- og dødelighetsanalyse. I andre tilfeller funksjonskonstruksjon er kanskje ikke så opplagt.

Hva er transfer learning?

Overføringslæring kalles noen ganger tilpasset maskinlæring, og noen ganger kalt AutoML (for det meste av Google). I stedet for å starte fra bunnen av når du trener modeller fra dataene dine, implementerer Google Cloud AutoML automatisk dypoverføringslæring (noe som betyr at den starter fra et eksisterende dypt nevralt nettverk trent på andre data) og nevral arkitektur-søk (noe som betyr at den finner den rette kombinasjonen av ekstra nettverkslag) for oversettelse av språkpar, klassifisering av naturlig språk og bildeklassifisering.

Det er en annen prosess enn det som vanligvis menes med AutoML, og dekker ikke så mange brukssaker. På den annen side, hvis du trenger en tilpasset dyp læringsmodell i et støttet område, vil overføringslæring ofte produsere en overlegen modell.

AutoML implementeringer

Det er mange implementeringer av AutoML du kan prøve. Noen er betalte tjenester, og andre er gratis kildekode. Listene nedenfor er på ingen måte fullstendige eller endelige.

AutoML-tjenester

Alle de tre store skytjenestene har en slags AutoML. Amazon SageMaker justerer hyperparameter, men prøver ikke automatisk flere modeller eller utfører funksjonsteknikk. Azure Machine Learning har både AutoML, som går gjennom funksjoner og algoritmer, og tuning av hyperparameter, som du vanligvis kjører på den beste algoritmen valgt av AutoML. Google Cloud AutoML, som jeg diskuterte tidligere, er dyp overføringslæring for oversettelse av språkpar, klassifisering av naturlig språk og bildeklassifisering.

En rekke mindre selskaper tilbyr også AutoML-tjenester. For eksempel har DataRobot, som hevder å ha oppfunnet AutoML, et sterkt rykte i markedet. Og mens dotData har en liten markedsandel og en middelmådig brukergrensesnitt, har den sterke funksjonsteknikkegenskaper og dekker mange forretningsbruk. H2O.ai Driverless AI, som jeg gjennomgikk i 2017, kan hjelpe en datavitenskapsmann med å vise modeller som en Kaggle-mester, ved å gjøre funksjonsteknikk, algoritmefeiling og hyperparameteroptimalisering på en enhetlig måte.

AutoML-rammer

AdaNet er et lett TensorFlow-basert rammeverk for automatisk å lære modeller av høy kvalitet med minimal ekspertintervensjon. Auto-Keras er et programvare-bibliotek med åpen kildekode for automatisert maskinlæring, utviklet ved Texas A&M, som gir funksjoner for automatisk å søke etter arkitektur og hyperparametre for dype læringsmodeller. NNI (Neural Network Intelligence) er et verktøysett fra Microsoft som hjelper brukere med å designe og justere maskinlæringsmodeller (f.eks. Hyperparametre), nevrale nettverksarkitekturer eller et komplekst systems parametere på en effektiv og automatisk måte.

Du kan finne flere AutoML-prosjekter og en ganske komplett og aktuell liste over artikler om AutoML på GitHub.

$config[zx-auto] not found$config[zx-overlay] not found