Starten met een deep learning project: Breng data van edge naar fog en bereid het voor op training
Breng data van edge naar fog
De opname van data is een belangrijke overweging voor iedere deep learning use case, maar het is met name cruciaal voor use cases waarbij databronnen die zich bij de edge bevinden betrokken zijn. Data stroomt vaak van edge apparaten, het initiële punt van dataverzameling en -aggregatie, naar fog datacenters of naar de public cloud voor training.
Sommige data typen lenen zich voor een batch benadering van data opname, waarbij je data opslaat en periodiek doorstuurt. Daarentegen vereisen andere data typen een streaming benadering. Beide benaderingen zullen alle data op een gemeenschappelijke plek verzamelen, waar je de data kan onderzoeken en omvormen indien nodig.
Als regel bestaat er een indeling tussen het type data dat wordt opgenomen en de methode van datastroom die is vereist. Zo hebben bijvoorbeeld tekst en numerieke data de neiging om een streaming methode te gebruiken, terwijl afbeeldingen, video en audiobronnen zowel een streaming methode als een batch methode zouden kunnen gebruiken.
Als je eenmaal een deep learning model traint en implementeert, zou je kunnen beslissen om over te gaan van een streaming naar een batch data opname methode. Je kan bijvoorbeeld alle afbeeldingen die nodig zijn om een computervisie model te trainen initieel streamen. Zodra je echter een getraind model hebt geïmplementeerd bij de edge, kan je overgaan op het lokaal opslaan van data en het doorsturen van alleen de ‘interessante’ afbeeldingen, zoals degenen waar het model moeite mee heeft.
Prepareer data voor training
De data preparerende fase van de AI pijpleiding omvat een aantal functies. Het doel hiervan is het creëren van een dataset die geschikt is voor het trainen en valideren van een deep learning model. Het prepareren van de data is niet perse een discrete functie. Je kunt wat voorverwerking doen bij de dataopname, je kunt wat voorverwerking doen voorafgaand aan de training, maar je kan ook alle data preparatie in lijn met het trainingsproces doen.
Data preparatie kan het volgende omvatten:
- Verkennen van de data: Wat is de hypothese voor je model, en welke kenmerken van de data zijn vermoedelijk voorspellend?
- Datatypen en dataformaten opschonen: Het trainen van het deep learning model gaat waarschijnlijk vlotter als de data consistent is. Maar pas op; je wilt niet dat het veel meer consistent is dan het live verkeer dat het model ontvangt.
- Aanpassen van de training dataset: Zorg ervoor dat het kenmerk waarop je het model traint voldoende vertegenwoordigd is. Zo kan je niet een effectief model voor anomaliteiten detectie trainen als je dataset alleen bestaat uit afbeeldingen van ‘goede’ onderdelen.
- Datasets labelen: Voor supervised learning heb je gelabelde datasets nodig.
- De dataset splitsen in training-, validatie- en testsets: Je hebt genoeg data nodig om te voorzien in een trainingset, een aparte validatie set die wordt gebruikt tijdens de training maar waar het model niet op wordt getraind, en een testset om de prestaties van het getrainde model te beoordelen.
Data preparatie, met name in de beginfases van de ontwikkeling van het model, is op zichzelf vaak een iteratief, verkennend proces, gericht op het begrijpen welke processen de beste resultaten genereren.
Veelvoorkomende data preparatie stappen voor afbeeldingen zijn:
- Zorgen dat alle afbeeldingen dezelfde maat en resolutie hebben
- Zorgen dat alle afbeeldingen zwart-wit dan wel full-color zijn
- Kenmerken in de afbeeldingen labelen
- Data onevenwichtigheden corrigeren (oversampling, undersampling, data augmentation, class weights)
Veelvoorkomende data preparatie stappen voor video zijn:
- JPEGs of BMPs van ieder frame extraheren
- Het beeld vergroten of verkleinen
- Data onevenwichtigheden corrigeren (oversampling, undersampling, data augmentation, class weights)
Omdat data preparatie zo tijdrovend is, specialiseert een aantal bedrijven zich in het helpen stroomlijnen van het proces. Bij veel deep learning use cases is supervised learning betrokken, wat gelabelde data vereist. Het labelen van data is dan ook een groot probleem bij veel deep learning projecten. Zelden bestaan gelabelde datasets met de specificiteit die jouw use case vereist, dus het labelen van data is vaak een arbeidsintensief manueel proces. Gelukkig kunnen business proces outsourcing bedrijven efficiënte manieren bieden om het manueel labelen van data uit te voeren.
Comments are closed.