Connect with us

Kunstig intelligens

Hva er syntetisk data?

mm

Hva er syntetisk data?

Syntetisk data er en raskt voksende trend og et fremvoksende verktøy i feltet datavitenskap. Hva er syntetisk data nøyaktig? Det korte svaret er at syntetisk data består av data som ikke er basert på noen virkelige fenomener eller hendelser, men det er generert via en datamaskinprogram. Men hvorfor blir syntetisk data så viktig for datavitenskap? Hvordan blir syntetisk data skapt? La oss utforske svarene på disse spørsmålene.

Hva er et syntetisk datasett?

Som begrepet “syntetisk” antyder, er syntetiske datasett generert gjennom datamaskinprogrammer, i stedet for å være sammensatt gjennom dokumentasjon av virkelige hendelser. Det primære formålet med et syntetisk datasett er å være tilstrekkelig fleksibelt og robust til å være nyttig for trening av maskinlæringsmodeller.

For å være nyttig for en maskinlæringsklassifikator, bør syntetisk data ha visse egenskaper. Mens data kan være kategorisk, binær eller numerisk, bør lengden på datasett være arbitrær og data bør være tilfeldig generert. De tilfeldige prosessene som brukes til å generere data bør være kontrollerbare og basert på ulike statistiske fordelinger. Tilfeldig støy kan også plasseres i datasett.

Hvis syntetisk data brukes til en klassifiseringsalgoritme, bør mengden klasse-separasjon være tilpassbar, slik at klassifiseringsproblemet kan gjøres enklere eller vanskeligere i henhold til problemets krav. I mellomtiden, for en regresjonoppgave, kan ikke-lineære genereringsprosesser brukes til å generere data.

Hvorfor bruke syntetisk data?

Ettersom maskinlæringsrammeverk som TensorfFlow og PyTorch blir enklere å bruke og forhåndsdesignede modeller for datavisning og naturlig språkbehandling blir mer ubestridt og kraftfulle, er det primære problemet som dataforskere må møte, innhenting og håndtering av data. Selskaper har ofte vanskeligheter med å skaffe store mengder data for å trene en nøyaktig modell innen en gitt tidsramme. Manuell etikettering av data er en kostbar og treg måte å skaffe data på. Imidlertid kan generering og bruk av syntetisk data hjelpe dataforskere og selskaper å overvinne disse hindrene og utvikle pålitelige maskinlæringsmodeller på en raskere måte.

Det finnes en rekke fordeler ved å bruke syntetisk data. Den mest åpenbare måten å bruke syntetisk data til fordel for datavitenskap er at det reduserer behovet for å fange data fra virkelige hendelser, og derfor blir det mulig å generere data og konstruere et datasett mye raskere enn et datasett som er avhengig av virkelige hendelser. Dette betyr at store mengder data kan produseres på en kort tidsramme. Dette er spesielt sant for hendelser som sjelden skjer, fordi hvis en hendelse sjelden skjer i naturen, kan mer data mockes opp fra noen ekte datasample. Ut over dette kan data automatisk bli merket når det genereres, og dette reduserer dramatisk mengden tid som trengs for å merke data.

Syntetisk data kan også være nyttig for å få treningdata for edge-cases, som er eksempler som kan skje sjelden, men er kritiske for suksessen til din AI. Edge-cases er hendelser som er svært like hovedmålet til en AI, men forskjeller på viktige måter. For eksempel kan objekter som bare delvis er i sikte bli betraktet som edge-cases når du designer en bildeklassifikator.

Til slutt kan syntetiske datasett minimere personvernsproblemer. Forsøk på å anonymisere data kan være ineffektive, fordi selv om sensitive/identifiserende variabler fjernes fra datasett, kan andre variabler fungere som identifikatorer når de kombineres. Dette er ikke et problem med syntetisk data, fordi det aldri var basert på en virkelig person eller en virkelig hendelse fra starten.

Anvendelsesområder for syntetisk data

Syntetisk data har en rekke anvendelsesområder, fordi det kan brukes til nesten alle maskinlæringsoppgaver. Vanlige anvendelsesområder for syntetisk data omfatter selvstyrende kjøretøy, sikkerhet, robotikk, svindelbeskyttelse og helse.

En av de første anvendelsesområdene for syntetisk data var selvstyrende biler, fordi syntetisk data brukes til å skape treningdata for biler i forhold hvor det er vanskelig eller farlig å skaffe virkelig treningdata. Syntetisk data er også nyttig for å skape data som brukes til å trene bilde-gjenkjenningssystemer, som overvåkningssystemer, mye mer effektivt enn å manuelt samle inn og merke en mengde treningdata. Robotikksystemer kan være tregt å trene og utvikle med tradisjonelle datainnsamlings- og treningmetoder. Syntetisk data lar robotikk-selskaper teste og utvikle robotikksystemer gjennom simulasjoner. Svindelbeskyttelsessystemer kan dra nytte av syntetisk data, og nye svindel-dettektionsmetoder kan trenes og testes med data som alltid er nytt når syntetisk data brukes. I helsefeltet kan syntetisk data brukes til å designe helse-klassifikatorer som er nøyaktige, men samtidig beskytter folks personvern, fordi data ikke vil være basert på virkelige personer.

Utfordringer med syntetisk data

Selv om bruk av syntetisk data bringer mange fordeler med seg, bringer det også mange utfordringer.

Når syntetisk data skapes, mangler det ofte outliers. Outliers forekommer i data naturlig, og selv om de ofte droppes fra treningsdatasett, kan deres eksistens være nødvendig for å trene virkelig pålitelige maskinlæringsmodeller. Ut over dette kan kvaliteten på syntetisk data være svært variabel. Syntetisk data genereres ofte med en inn-data eller seed-data, og derfor kan kvaliteten på data avhenge av kvaliteten på inn-data. Hvis data som brukes til å generere syntetisk data er forvrengt, kan den genererte data forsterke denne forvrengningen. Syntetisk data krever også en form for utgang/kvalitetskontroll. Det må kontrolleres mot menneske-annotert data eller annen ekte data på en eller annen måte.

Hvordan skapes syntetisk data?

Syntetisk data skapes programmerisk med maskinlærings-teknikker. Klassiske maskinlærings-teknikker som beslutningstre kan brukes, samt dyptlærings-teknikker. Kravene til syntetisk data vil påvirke hvilken type algoritme som brukes til å generere data. Beslutningstre og lignende maskinlæringsmodeller lar selskaper skape ikke-klassiske, multi-modale datafordelinger, trent på eksempler av virkelig data. Generering av data med disse algoritmene vil gi data som er høyt korrelert med den opprinnelige treningsdataen. For eksempler hvor den typiske fordelingen av data er kjent, kan et selskap generere syntetisk data gjennom bruk av en Monte Carlo-metode.

Dyptlærings-baserte metoder for å generere syntetisk data bruker vanligvis enten en variational autoencoder (VAE) eller en generativ adversarial nettverk (GAN). VAE-er er uovervåket maskinlæringsmodeller som bruker encodere og decodere. Encoder-delen av en VAE er ansvarlig for å komprimere data ned til en enklere, kompakt versjon av den opprinnelige datasett, som decoderen så analyserer og bruker til å generere en representasjon av basisdataen. En VAE trenes med målet om å ha en optimal relasjon mellom inndata og utdata, en hvor både inndata og utdata er ekstremt like.

Når det kommer til GAN-modeller, kalles de “adversarielle” nettverk på grunn av at GAN-er faktisk er to nettverk som konkurrerer med hverandre. Generator er ansvarlig for å generere syntetisk data, mens det andre nettverket (diskriminatoren) opererer ved å sammenligne den genererte dataen med en virkelig datasett og prøver å bestemme hvilken data som er falsk. Når diskriminatoren fanger falsk data, blir generator underrettet om dette og den gjør endringer for å prøve å få en ny batch med data som diskriminatoren ikke kan fange. I mellomtiden blir diskriminatoren bedre og bedre til å detektere falker. De to nettverkene trenes mot hverandre, med falker som blir mer livlige hele tiden.

Blogger og programmerer med spesialområder i Machine Learning og Deep Learning emner. Daniel håper å hjelpe andre med å bruke kraften av AI for sosialt godt.