Grunnleggende AI
Hva er syntetisk data?
Hva er syntetisk data?
Syntetisk data er en raskt voksende trend og et fremvoksende verktøy i feltet datavitenskap. Hva er syntetisk data egentlig? Det korte svaret er at syntetisk data består av data som ikke er basert på noen virkelige fenomener eller hendelser, men som er generert via en datamaskinprogram. Men hvorfor blir syntetisk data så viktig for datavitenskap? Hvordan blir syntetisk data laget? 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å datasettet 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 datasettet.
Hvis syntetisk data brukes til en klassifiseringsalgoritme, bør mengden klasseseperasjon 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 ubetydelige og kraftfulle, er det primære problemet som dataforskere må møte, innhenting og håndtering av data. Selskaper har ofte vanskeligheter med å innhente store mengder data for å trene en nøyaktig modell innen en gitt tidsramme. Manuell etikettering av data er en kostbar og treg måte å innhente data på. Imidlertid kan generering og bruk av syntetisk data hjelpe dataforskere og selskaper å overvinne disse hindringene og utvikle pålitelige maskinlæringsmodeller på en raskere måte.
Det finnes en rekke fordeler med å bruke syntetisk data. Den mest åpenbare måten syntetisk data fordeler datavitenskap på, er at det reduserer behovet for å innhente 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, da mer data kan lages fra noen ekte datasample. Ut over dette, kan data automatisk etiketteres mens det genereres, og dermed reduseres tiden som trengs for å etikettere data betydelig.
Syntetisk data kan også være nyttig for å få treningdata for randtilfeller, som er hendelser som kan skje sjelden, men er kritiske for suksessen til AI-en. Randtilfeller er hendelser som er svært like hovedmålet til en AI, men som skilles fra hverandre på viktige måter. For eksempel kan objekter som bare delvis er synlige, bli betraktet som randtilfeller når man designer en bildeklassifikator.
Til slutt kan syntetiske datasett minimere personvernsproblemer. Forsøk på å anonymisere data kan være ineffektive, da selv om sensitive/identifiserende variabler fjernes fra datasettet, kan andre variabler fungere som identifikatorer når de kombineres. Dette er ikke et problem med syntetisk data, da det aldri var basert på en virkelig person eller en virkelig hendelse, fra begynnelsen av.
Bruksområder for syntetisk data
Syntetisk data har en rekke bruksområder, da det kan brukes til nesten alle maskinlæringsoppgaver. Vanlige bruksområder for syntetisk data inkluderer selvstyrende kjøretøy, sikkerhet, robotikk, svindelbeskyttelse og helse.
Et av de første bruksområdene for syntetisk data var selvstyrende biler, da syntetisk data brukes til å lage treningdata for biler i situasjoner hvor det er vanskelig eller farlig å få virkelig treningdata. Syntetisk data er også nyttig for å lage data som brukes til å trene bildegnkjennelsessystemer, som overvåkningssystemer, mye mer effektivt enn å manuelt samle inn og etikettere en mengde treningdata. Robotikksystemer kan være tregt å trene og utvikle med tradisjonelle datainnsamling og treningmetoder. Syntetisk data lar robotikk-selskaper teste og utvikle robotikksystemer gjennom simulasjoner. Svindelbeskyttelsessystemer kan dra nytte av syntetisk data, og nye svindelforsvarsmetoder kan trenes og testes med data som alltid er nytt når syntetisk data brukes. I helsefeltet kan syntetisk data brukes til å designe helseklassifikatorer som er nøyaktige, men som samtidig beskytter personers personvern, da data ikke er basert på virkelige personer.
Ufordringer med syntetisk data
Selv om bruk av syntetisk data bringer mange fordeler med seg, bringer det også mange ufordringer.
Når syntetisk data lages, mangler det ofte outliers. Outliers forekommer naturlig i data, og selv om de ofte fjernes fra treningdatasett, 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 det genererte dataet videreføre denne forvrengningen. Syntetisk data krever også en form for ut-data/kvalitetskontroll. Det må kontrolleres mot menneske-annotert data, eller annen autentisk data i noen form.
Hvordan lages syntetisk data?
Syntetisk data lages programmeringsmessig 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 lage 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 tilfeller 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 variasjonsautoencoder (VAE) eller en generativ adversarial nettverk (GAN). VAE-er er usuperviserte maskinlæringsmodeller som bruker encodere og decodere. Encoder-delen av en VAE er ansvarlig for å komprimere data ned til en enklere, kompakt versjon av det opprinnelige datasett, som decoderen så analyserer og bruker til å generere en representasjon av basisdata. En VAE er trent 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 gjelder GAN-modeller, kalles de “adversarial” nettverk på grunn av at GAN-er faktisk er to nettverk som konkurrerer mot hverandre. Generatoren er ansvarlig for å generere syntetisk data, mens det andre nettverket (diskriminatoren) opererer ved å sammenligne den genererte data med et virkelig datasett og prøver å bestemme hvilken data som er falsk. Når diskriminatoren fanger falsk data, blir generatoren underrettet om dette og den gjør endringer for å prøve å få en ny batch med data fra diskriminatoren. I mellomtiden blir diskriminatoren bedre og bedre til å oppdage falsk data. De to nettverkene er trent mot hverandre, med falsk data som blir mer og mer realistisk over tid.












