Lisää petostapahtumia käyttämällä synteettisiä tietoja Amazon SageMaker PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.

Lisää petostapahtumia käyttämällä synteettisiä tietoja Amazon SageMakerissa

Menestyksekkäiden koneoppimismallien (ML) kehittäminen ja kouluttaminen vaatii pääsyn suuriin määriin korkealaatuista dataa. Näiden tietojen hankinta on haastavaa, koska saatavilla olevat tietojoukot eivät joskus ole tarpeeksi suuria tai riittävän puolueettomia ML-mallin hyödylliseen kouluttamiseen ja voivat vaatia huomattavia kustannuksia ja aikaa. Sääntely ja tietosuojavaatimukset estävät edelleen tietojen käytön tai jakamisen jopa yrityksen organisaatiossa. Arkaluontoisten tietojen käytön ja pääsyn valtuuttaminen usein viivästyttää tai suistaa ML-projekteja. Vaihtoehtoisesti voimme vastata näihin haasteisiin luomalla ja käyttämällä synteettistä dataa.

Synteettiset tiedot kuvaavat keinotekoisesti luotuja tietojoukkoja, jotka jäljittelevät alkuperäisen tietojoukon sisältöä ja kaavoja, jotta voidaan käsitellä sääntelyriskejä ja vaatimustenmukaisuutta, hankinnan aikaa ja kustannuksia. Synteettisten tietojen generaattorit käyttävät todellista dataa asiaankuuluvien ominaisuuksien, korrelaatioiden ja kuvioiden oppimiseen luodakseen tarvittavat määrät synteettistä dataa, joka vastaa alun perin syötetyn tietojoukon tilastollisia ominaisuuksia.

Synteettistä dataa on käytetty laboratorioympäristöissä yli kaksi vuosikymmentä; markkinoilla on näyttöä hyödyllisyydestä, joka on kiihtymässä kaupallisella ja julkisella sektorilla. Gartner ennustaa että vuoteen 2024 mennessä 60 prosenttia ML- ja analytiikkaratkaisujen kehittämiseen käytetystä tiedosta on synteettistä ja synteettisen datan käyttö lisääntyy edelleen merkittävästi.

Financial Conduct Authority, Yhdistyneen kuningaskunnan sääntelyelin, tunnustaa "Tietojen saatavuus on innovaatioiden katalysaattori, ja synteettisellä taloustiedolla voi olla rooli innovaatioiden tukemisessa ja uusien tulokkaiden mahdollistavan uusien ratkaisujen kehittämisen, testaamisen ja arvon osoittamisen."

Amazon SageMaker GroundTruth tukee tällä hetkellä synteettinen tiedontuotanto merkittyjä synteettisiä kuvatietoja. Tämä blogikirjoitus tutkii taulukkomuotoisen synteettisen tiedon luomista. Strukturoitu data, kuten yksittäiset ja relaatiotaulukot, ja aikasarjatiedot ovat yritysanalytiikassa yleisimmin esiintyviä tyyppejä.

Tämä on kaksiosainen blogikirjoitus; Luomme synteettistä dataa ensimmäisessä osassa ja arvioimme sen laatua osa kaksi.

Tässä blogikirjoituksessa opit käyttämään avoimen lähdekoodin kirjastoa ydata-synteettinen ja AWS SageMaker muistikirjat taulukkomuotoisten tietojen syntetisoimiseksi petoskäyttötapausta varten, jossa meillä ei ole tarpeeksi vilpillisiä tapahtumia kouluttaaksemme erittäin tarkan petosmallin. Tässä käsitellään yleistä petosmallin koulutusprosessia posti.

Yleiskatsaus ratkaisuun

Tämän opetusohjelman tavoitteena on syntetisoida erittäin epätasapainoisen luottokorttipetostietojoukon vähemmistöluokka käyttämällä optimoitua generative adversarial network (GAN) nimeltään WGAN-GP oppiakseen alkuperäisen tiedon kuvioita ja tilastollisia ominaisuuksia ja luoda sitten loputtomia näytteitä synteettisestä tiedosta, jotka muistuttavat alkuperäistä dataa. Tätä prosessia voidaan käyttää myös alkuperäisen datan parantamiseen ottamalla esiin harvinaisia ​​tapahtumia, kuten petoksia, tai luomaan reunatapauksia, joita alkuperäisessä ei ole.

Käytämme luottokorttipetostietoaineistoa, jonka on julkaissut ULB, jonka voi ladata osoitteesta Kaggle. Synteettisen tiedon luominen vähemmistöluokkaa varten auttaa ratkaisemaan epätasapainoisiin tietojoukkoja koskevia ongelmia, mikä voi auttaa kehittämään tarkempia malleja.

Käytämme AWS-palveluita, mukaan lukien Amazon SageMaker ja Amazon S3, joista aiheutuu kustannuksia pilviresurssien käytöstä.

Luo kehitysympäristö

SageMaker tarjoaa hallitun Jupyter-muistikirjan ilmentymän mallin rakentamista, koulutusta ja käyttöönottoa varten.

Edellytykset:

Sinulla on oltava AWS-tili, jotta voit käyttää SageMakeria. Voit saada alkoi SageMakerilla ja kokeile käytännön opetusohjelmia.

Ohjeita Jupyter Notebookin työympäristön määrittämiseen on kohdassa Aloita Amazon SageMaker -muistikirjainstanssien kanssa.

Vaihe 1: Määritä Amazon SageMaker -esiintymäsi

  1. Kirjaudu AWS-konsoliin ja etsi "SageMaker".
  2. valita studio.
  3. valita Notebook-esiintymät vasemmasta palkista ja valitse Luo muistikirjan esimerkki.
  4. Valitse seuraavalta sivulta (kuten seuraavassa kuvassa näkyy) virtuaalikoneen (VM) kokoonpanot tarpeidesi mukaan ja valitse Luo muistikirjan esimerkki. Huomaa, että käytimme ML-optimoitua virtuaalikonetta ilman GPU:ta ja 5 Gt dataa, ml.t3.mediumia, jossa on Amazon Linux 2, ja Jupyter Lab 3 -ydintä.
    Luo muistikirjan esimerkki
  5. Muistikirjan esiintymä on valmis käytettäväksi muutamassa minuutissa.
  6. valita Avaa JupyterLab käynnistää.
    Lisää petostapahtumia käyttämällä synteettisiä tietoja Amazon SageMaker PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.
  7. Nyt kun meillä on JupyterLab, jolla on vaaditut tekniset tiedot, asennamme synteettisen kirjaston.
pip install ydata-synthetic

Vaihe 2: Lataa tai pura todellinen tietojoukko synteettisten tietojen luomiseksi

Lataa viitetiedot Kagglesta joko manuaalisesti, kuten täällä, tai ohjelmallisesti Kaggle APIn kautta, jos sinulla on Kaggle-tili. Jos tutkit tätä tietojoukkoa, huomaat, että "petos"-luokka sisältää paljon vähemmän tietoa kuin "ei petos" -luokka.

Jos käytät näitä tietoja suoraan koneoppimisennusteisiin, mallit voivat aina oppia ennustamaan "ei petoksia". Mallilla on helposti suurempi tarkkuus ei-petostapauksissa, koska petostapaukset ovat harvinaisia. Kuitenkin, koska petostapausten havaitseminen on tavoitteemme tässä harjoituksessa, tehostamme petosluokkanumeroita synteettisellä tiedolla, joka on mallinnettu todellisen datan perusteella.

Luo tietokansio JupyterLabissa ja lataa Kaggle-datatiedosto siihen. Näin voit käyttää muistikirjan tietoja SageMakerista lähtien mukana säilytystilaa jonka olisit määrittänyt luodessasi muistikirjan.

Lisää petostapahtumia käyttämällä synteettisiä tietoja Amazon SageMaker PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.

Tämä tietojoukko on 144 Mt

Lisää petostapahtumia käyttämällä synteettisiä tietoja Amazon SageMaker PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.

Voit sitten lukea tiedot vakiokoodilla pandakirjaston kautta:

import pandas as pd
data = pd.read_csv('./data/creditcard.csv')

Petosten havaitsemistiedoilla on tiettyjä ominaisuuksia, nimittäin:

  • Suuret luokkaepätasapainot (tyypillisesti ei-petostietopisteisiin).
  • Yksityisyyteen liittyvät huolenaiheet (arkaluonteisten tietojen vuoksi).
  • Jonkin verran dynaamisuutta siinä mielessä, että pahantahtoinen käyttäjä yrittää aina välttää vilpillisten tapahtumien havaitsemisen valvontajärjestelmillä.
  • Käytettävissä olevat tietojoukot ovat erittäin suuria ja usein nimeämättömiä.

Nyt kun olet tarkastanut tietojoukon, suodatetaan vähemmistöluokka (luottokorttitietojoukon "petos"-luokka) ja tehdään tarvittavat muunnokset. Voit tarkistaa datamuunnokset tästä muistikirja.

Kun tämä vähemmistöluokan tietojoukko syntetisoidaan ja lisätään takaisin alkuperäiseen tietojoukkoon, se mahdollistaa suuremman syntetisoidun tietojoukon luomisen, joka korjaa tietojen epätasapainon. Voimme saavuttaa suuremman ennustetarkkuuden petosten havaitsemismallin koulutus käyttämällä uutta tietojoukkoa.

Syntetisoidaan uusi petostietojoukko.

Vaihe 3: Harjoittele syntetisaattoreita ja luo malli

Koska tiedot ovat helposti saatavilla SageMakerissa, on aika ottaa synteettiset GAN-mallimme käyttöön.

Generatiivisessa kilpailevassa verkossa (GAN) on kaksi osaa:

- generaattori oppii tuottamaan uskottavaa dataa. Luoduista ilmentymistä tulee negatiivisia koulutusesimerkkejä syrjivälle.

- diskriminaattoria oppii erottamaan generaattorin väärennetyt tiedot todellisista tiedoista. Diskriminaattori rankaisee generaattoria epäuskottavien tulosten tuottamisesta.

Kun koulutus alkaa, generaattori tuottaa ilmeisen väärennettyä dataa, ja erottaja oppii nopeasti kertomaan, että se on väärennös. Harjoittelun edetessä generaattori lähestyy tuottaakseen tehoa, joka voi huijata erottajan. Lopuksi, jos generaattorikoulutus sujuu hyvin, erottelija tulee huonommin erottamaan aidon ja väärennöksen. Se alkaa luokitella väärennettyjä tietoja todellisiksi, ja sen tarkkuus heikkenee.

Sekä generaattori että erottaja ovat hermoverkkoja. Generaattorin lähtö on kytketty suoraan erottimen tuloon. Kautta takaisinlisäystä, erottimen luokitus antaa signaalin, jota generaattori käyttää painojen päivittämiseen.

Vaihe 4: Ota näyte synteettisistä tiedoista syntetisaattorista

Nyt kun olet rakentanut ja kouluttanut mallisi, on aika ottaa näyte vaadituista tiedoista syöttämällä malliin kohinaa. Näin voit luoda niin paljon synteettistä dataa kuin haluat.

Tässä tapauksessa luot yhtä suuren määrän synteettistä dataa kuin todellista dataa, koska näin on helpompi vertailla samanlaisia ​​otoskokoja vaiheessa 5.

Meillä on mahdollisuus valita rivejä, jotka sisältävät vilpillisiä tapahtumia – mikä yhdistettynä ei-synteettisten petostietojen kanssa johtaa "petos"- ja "ei-petos"-luokkien tasaiseen jakautumiseen. Alkuperäinen Kaggle-tietojoukko sisälsi 492 petosta 284,807 XNUMX tapahtumasta, joten luomme saman näytteen syntetisaattorista.

# use the same shape as the real data
synthetic_fraud = synthesizer.sample(492)

Meillä on mahdollisuus nostaa otoksia vilpillisiä tapahtumia sisältävistä riveistä prosessissa, jota kutsutaan tietojen lisäykseksi – mikä yhdistettynä ei-synteettisiin petostietoihin johtaa "petos"- ja "ei-petos"-luokkien tasaiseen jakautumiseen.

Vaihe 5: Vertaa ja arvioi synteettisiä tietoja todellisiin tietoihin

Vaikka tämä vaihe on valinnainen, voit laadullisesti visualisoida ja arvioida luodut synteettiset tiedot todellisia tietoja vastaan ​​sirontakaavion avulla.

Tämä auttaa meitä iteroimaan malliamme säätämällä parametreja, muuttamalla otoskokoa ja tekemällä muita muunnoksia tarkimman synteettisen tiedon luomiseksi. Tämä tarkkuuden luonne riippuu aina synteesin tarkoituksesta

Alla oleva kuva esittää, kuinka samankaltaisia ​​todelliset petokset ja synteettiset petokset ovat koulutusvaiheissa. Tämä antaa hyvän laadullisen tarkastelun synteettisten ja todellisten tietojen samankaltaisuudesta ja siitä, kuinka se paranee, kun käytämme sitä useammilla aikakausilla (koko harjoitustietojoukon siirto algoritmin kautta). Huomaa, että kun suoritamme enemmän aikakausia, synteettinen datamallijoukko tulee lähemmäksi alkuperäistä dataa.

Lisää petostapahtumia käyttämällä synteettisiä tietoja Amazon SageMaker PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.

Vaihe 6: Puhdista

Lopuksi pysäytä muistikirjan esiintyminen, kun olet valmis synteesin välttämiseksi odottamattomilta kustannuksilta.

Yhteenveto

Koneoppimisalgoritmeina ja koodauskehikkoina kehittyä nopeasti, korkealaatuinen tieto mittakaavassa on niukin resurssi ML:ssä. Hyvälaatuisia synteettisiä tietojoukkoja voidaan käyttää erilaisissa tehtävissä.

Tässä blogiviestissä opit, kuinka tärkeää on syntetisoida tietojoukko käyttämällä avoimen lähdekoodin kirjastoa, joka käyttää WGAN-GP. Tämä on aktiivinen tutkimusalue, jolla on tuhansia julkaistuja julkaisuja GANeista ja satoja nimettyjä GANeja, joita voit kokeilla. On muunnelmia, jotka on optimoitu tiettyihin käyttötapauksiin, kuten relaatiotaulukot ja aikasarjatiedot.

Löydät kaikki tässä artikkelissa käytetyt koodit tästä muistikirja, ja tietysti lisää tämän kaltaisia ​​opetusohjelmia on saatavana SageMakerista virallinen dokumenttisivu.

In toinen osa Tässä kaksiosaisessa blogikirjoitussarjassa perehdymme syvällisesti siihen, miten synteettisten tietojen laatua voidaan arvioida uskollisuuden, hyödyllisyyden ja yksityisyyden näkökulmasta.


kirjailijasta

Lisää petostapahtumia käyttämällä synteettisiä tietoja Amazon SageMaker PlatoBlockchain Data Intelligencessä. Pystysuuntainen haku. Ai.Faris Haddad on Data & Insights -johtaja AABG Strategic Pursuits -tiimissä. Hän auttaa yrityksiä tulemaan menestyksekkäästi datalähtöisiksi.

Aikaleima:

Lisää aiheesta AWS-koneoppiminen