Come ottenere la certificazione AWS Machine Learning – Specialty in 10 giorni da Devops Engineer. Come ricorderete, qualche giorno fa abbiamo festeggiato la sesta (!) certificazione ottenuta dal nostro Cloud Expert Alessandro Gaggia: l’AWS Certified Machine Learning Specialty, la 58° per beSharp. Alessandro è una colonna portante di beSharp: è entrato a far parte del team come Front-end developer nel lontano 2012, a pochi mesi dalla nascita di beSharp, e oggi è il decano del team di sviluppo. Avvicinatosi al Machine Learning solamente un anno fa per partecipare all’AWS DeepRacer League tenutasi durante l’AWS RE:Mars a Las Vegas, ne ha fatto una vera e propria passione. Una volta tirato il fiato dopo il rush verso la certificazione (e non prima di un brindisi celebrativo virtuale col resto del team), Alessandro si è buttato in una preziosa retrospettiva sul percorso vincente che lo ha portato ad ottenere in pochissimi giorni questo invidiabile risultato. È il momento quindi di lasciargli la parola. Pronti a diventare AWS Certified?https://twitter.com/beSharpsrl/status/1269931019383250945

La mia esperienza

L’AWS Certified Machine Learning - Speciality è una certificazione avanzata un po’ diversa dalle altre, in quanto è l’unica a richiedere una conoscenza specifica di settore che va oltre a quelle strettamente legate ai servizi di AWS. Infatti, per passare l’esame ed ottenere questa certificazione, è fondamentale saper riconoscere, analizzare ed ottimizzare diversi problemi di Machine Learning a partire dalla descrizione di casi d’uso, senza che questi siano necessariamente legati a particolari soluzioni AWS.Questo mio punto di vista si discosta da quanto ho potuto leggere in molti articoli, in cui diversi autori considerano SageMaker come focus principale. Sono convinto, invece, che questo esame abbia testato soprattutto la mia dimestichezza con il Machine Learning in generale.Dall’altro lato, numerose testimonianze - per lo più di data scientist esperti - affermano che prima di affrontare questa certificazione siano necessari diversi anni di esperienza sul campo. Personalmente, trovo che non sia strettamente necessario: l’esperienza nel settore sicuramente gioca un ruolo importante tuttavia, come per tutte le altre certificazioni AWS che ho conseguito, serve principalmente dedizione nello studio, desiderio di approfondire gli argomenti e capacità logica per riuscire nell’impresa. Anche avere qualche nozione di Big Data può aiutare.Disclaimer: le informazioni qui raccolte rappresentano la mia personale esperienza per la preparazione dell’esame e non vogliono porsi come un sostituto, tantomeno esaustivo, del materiale indicato da Amazon Web Services. Credo però che rappresentino un ottimo spunto da seguire per ottimizzare il proprio percorso di studio, contenendo riferimenti a diversi siti sull’argomento e alle FAQ di AWS.Particolare attenzione va anche posta ai diversi questionari di prova disponibili, di cui verrà fornito il link, ed in particolar modo all’eseguibile di Certbolt, che permette di simulare un test completo di 65 domande con soluzione.Con una full-immersion di studio da 8 ore al giorno, la certificazione può essere preparata in circa 10 giorni... o almeno, questa è stata la mia strategia, che mi ha permesso di passare l’esame con uno score di 800/1000 su un minimo richiesto di 750/1000.

Gli argomenti dell’esame

L’esame dura 170 minuti per 65 domande, ma personalmente ho consegnato dopo solo 90 minuti. Si ha quindi il tempo per riguardare tutto con calma. Una nota positiva è che, rispetto ad altre certificazioni advanced, questa ha casi d’uso corti e veloci da leggere, e questo fa guadagnare tempo.Gli argomenti principali che ho ritrovato sia nelle domande di prova che in quelle ufficiali sono a grandi linee i seguenti:
  • Dato un problema di ML, utilizzare una combinazione di servizi managed di AWS per risolverlo nella maniera più veloce ed efficiente possibile. Questo caso è coperto dai seguenti topic:
    • Kinesis Data Stream, Analytics, Firehose.
    • S3, KMS, DynamoDB (in modo blando, sapere cosa sono e cosa ci puoi fare)
    • AWS ElasticSearch con Kibana, Splunk, AWS Quicksight (per la Business intelligence - di seguito abbreviata in BI)
    • AWS Athena, AWS Redshift
    • AWS EMR con Spark
    • AWS Glue
    • AWS Translate, Transcribe, Lex, Polly, DeepLens, Rekognition, Comprehend, etc.
In alcuni casi si ha anche una combinazione di Managed Services e Sagemaker, ma in questi casi si riesce a capire più facilmente come escludere le risposte sbagliate.
  • Dato un problema di ML, gestire le seguenti casistiche:
    • Pulizia dei dati con tecniche appropriate quali: Filtering, Transforming, Scaling, Extracting
    • Gestire Overfitting/Underfitting e capire in quale caso stiamo agendo su elementi quali: Learning Rate, Batch Size, Oversampling, Regularization, Dropout Rate, Feature Increasing, Denoising, Normalization, Epoch Time, etc.
    • Valutare lo score più appropriato per un modello in base alla sua tipologia e alle richieste di Business; imparare a distinguere tra: RMSE, R2, F1, Recall, Accuracy, Precision, AUS-ROC, etc.
    • Gestire il tuning degli Hyperparameters sia su Sagemaker che in generale; vedere dunque: Learning Rate, Epoch Time, L1 e L2 Regularization, Adam, Random e Stocastic Optimization, parametri alpha, beta e gamma in diversi contesti.
    • Gestire il deploy su Sagemaker
Se vogliamo analizzare gli argomenti più ad alto livello, alcuni “must” sono:
  • Creare delle pipeline usando Kinesis Stream, Firehose e Analytics usandoli in combinazione con
  • Amazon Athena o Elastic Search
  • Risolvere un problema di Overfitting
  • Risolvere un problema di Tuning
  • Risolvere un problema di Scoring
  • Risolvere un problema di Confusion matrix
  • Usare una combinazione di servizi ML managed di AWS per risolvere un problema in modo facile e veloce
  • Gestire i diversi tipi di deploy su Sagemaker
Questa carrellata copre a grandi linee il possibile ventaglio di domande che ci si può trovare ad affrontare all’esame. Qui di seguito descrivo una scaletta di studio, tramite la quale è possibile affrontare gli argomenti in modo più ordinato ed organico.

Gli argomenti da studiare: una scaletta

I link di riferimento agli argomenti trattati sono in gran parte relativi alla documentazione ufficiale di AWS, in particolar modo per SageMaker e i diversi servizi managed. Inoltre, per quanto riguarda i temi più strettamente legati al Machine Learning, ho voluto proporre alcuni siti che ho trovato particolarmente completi, ben spiegati ed esaustivi.

  • Machine Learning su AWS intro: Servizi Managed (concentrarsi su che servizi offrono)
      • Deploy Blue/Green: https://docs.aws.amazon.com/whitepapers/latest/wellarchitected-machine-learning-lens/bluegreen-deployments.html
      • Deploy A/B:
      • https://docs.aws.amazon.com/whitepapers/latest/wellarchitected-machine-learning-lens/ab-testing.html
      • Canary: https://docs.aws.amazon.com/whitepapers/latest/wellarchitected-machine-learning-lens/canary-deployment.html

Cheats, tips & tricks

  1. Generalmente, nel caso di Simple Hold Out, i valori tipici sono:  80/10/10 oppure 70/15/15.
  2. Se nelle domande vengono introdotti i termini historical data allora si avrà a che fare con un algoritmo supervised.
  3. Che vantaggio portano i Random e Bayesian Optimizer per gli hyperparameters in Sagemaker rispetto al Grid Optimizer o al manual? Esplorano meglio lo spazio dei parametri verificando meglio combinazioni inusuali.
  4. Random optimizer è più veloce di Bayesian, ma il secondo è più preciso
  5. Una confusion matrix può anche essere NxN.
  6. Term Frequency - Inverse Document Frequency: un valore alto indica un termine raro
  7. Oversampling e undersampling non hanno utilità per le regression (sia logistic che linear)
  8. Quando ci troviamo di fronte ad un problema con una classe fortemente sbilanciata, la class probability threshold può essere portata da 0.5 a un valore maggiore a favore della classe sbilanciata.
  9. Oversampling va effettuato dopo lo splitting dei dati per evitare fenomeni di bleeding dei dati.
  10. Per uscire dai minimi locali devo ridurre il batch size  e ridurre anche il learning rate per smorzare l’effetto oscillatorio di un batch size piccolo e favorire la convergenza.
  11. Per fare oversampling la logica è GAN migliore di SMOTE migliore di manuale.
  12. Se abbiamo problemi di missing value e una possibile soluzione proposta è il machine learning per rimpiazzare i valori, in genere è la scelta migliore.
  13. Quando ho problemi di recommendation engine o in genere di predire scelte di utenti se abbiamo tra le scelte disponibili collaborative filtering, è quasi sempre una ottima scelta.
  14.  Se dobbiamo scegliere: AWS Glue è batch oriented, Kinesis Firehose è per streaming real time data.
  15. Se abbiamo problemi di forecasting di clima, usiamo generalmente la Regressione Lineare (se non presenti algoritmi più fitting, ma in genere è sufficiente).
  16. La Lambda di input di Firehose ha un timeout di 3 sec, quindi se eseguiamo operazioni di input complesse di solito non è sufficiente e va aumentato.
  17. Scatter Plot si usa per analisi a 2 dimensioni, Istogramma per 1 dimensione.
  18. Logistic Regression: si usa per la classificazione binaria, non bisogna farsi ingannare dal nome!
  19. NTM: neural topic model si usa per raggruppare topic in categorie
  20. Semantic Segmentation: trova feature di alto livello a partire dall’analisi dei pixel.
  21. Firehose non ha senso se i dati sono già su S3, prende dati da uno stream!
  22. Per il deep learning e i problemi di overfitting fare riferimento ai seguenti schemi indicativi: 

    < DROPOUT + > REGULARIZATION + > FEATURE INCREASE = < OVERFITTING

    Sono i parametri da modificare per ridurre l’overfitting. Inoltre:

    > DROPOUT = > NOISINESS

  23. Quando uso Kinesis Data Stream ho una variante apposita che si chiama video stream che si collega in modo semplice con Rekognition Video. E’ presente un caso d’uso nelle guide di AWS.
  24. AWS Comprehend non fa solo Sentiment Analysis ma anche Topic Analysis, Key Extraction e Entity Recognition, inoltre utilizza NLP, quindi nel caso si abbiano gli stessi topic in una domanda si può riflettere su questo per capire se usare NLP.
  25. L1 e L2 sono termini di regolarizzazione per ridurre l’overfitting rendendo l’algoritmo più conservativo quando si ha dataset con molte features.
  26. La Cross Validation si basa sugli iperparametri, aiuta contro l’overfitting quando il dataset è piccolo, quindi quando il rischio è maggiore per la bassa quantità di dati.
  27. Deep Learning: sostituisce un modello con una rete neurale per fare un’analisi
  28. Nel Deep Learning le feature possono anche essere usate raw, perchè nel caso di reti complesse, sono i livelli stessi a rielaborare le feature di basso livello in nuove feature di più alto livello.
  29. Nel Deep learning abbiamo diversi tipi di activation function:
    1. Sigmoide
    2. ReLU
    3. Softplus
    4. TanH
  30. Quando si parla di Deep Learning al momento le CNN o Convolutional Neural Network (molto indicate per l’image processing) e le Long Short Term Memory, sono tra le più utilizzate per versatilità e scalabilità. 

Le domande: dove trovarle?

In generale, a causa del NDA richiesto da AWS sulle domande delle certificazioni, è difficile ottenere materiale ufficiale (o anche solo ufficioso e affidabile)... questa lista di link punta a risorse che ho personalmente provato e verificato come funzionali alla preparazione della certificazione:

  • Domande varie ed eventuali: cercate tramite Google scrivendo “aws machine learning specialty dumps”. Possono essere utili per verificare la vostra conoscenza ma sconsigliate in quanto molte di esse sono purtroppo inesatte. Utilizzatele come controprova della vostra preparazione. 

Una nota: l’esame da remoto con Pearson/VUE

L’esame da remoto prevede di accedere al pannello Pearson/VUE e registrarsi per una data in cui sia disponibile il proctoring online, necessario per accertare la validità dell’esame. Data la situazione d’emergenza di quest’anno, conviene prenotare la sessione con largo anticipo, per essere sicuri di trovare una data e un orario convenienti. 

È necessario avere sottomano Carta d’identità o patente  o passaporto validi, di cui verranno richieste delle foto chiare e comprensibili. Un documento rovinato o una foto illeggibile provocherà forti ritardi sullo scheduling previsto a causa degli accertamenti telefonici. 

Verrà fatto scaricare un software disponibile per tutte le piattaforme Windows, Mac e Linux, che servirà per sostenere l’esame e che verificherà, mediante foto dal cellulare, la stanza in cui si svolgerà il test. Anche in questo caso è necessario seguire scrupolosamente le istruzioni ricevute via email alla registrazione, per effettuare i test di prova prima della data dell’esame.

Durante lo svolgimento dell’esame, un proctor vi seguirà dalla vostra webcam e il software utilizzato sarà eseguito in fullscreen per prevenire l’uso di altri programmi.

Nel caso si verificasse qualche problema, il proctor ci avviserà mediante Chat interna.

Per concludere, se vi stavate chiedendo se fosse possibile preparare l’AWS Certified Machine Learning Specialty - o una specialty AWS in generale - in autonomia, ora sapete che la risposta è… tecnicamente sì :) 

Tuttavia, per chi fosse alle prime armi con le certificazioni AWS o volesse ricevere una formazione strutturata, AWS ha sviluppato i propri corsi ufficiali, erogati tramite APN Training Partner riconosciuti. beSharp è stata selezionata da Amazon Web Services nel ristretto numero di partner autorizzati a erogare l’intero catalogo di corsi ufficiali AWS: i nostri corsi di formazione, sviluppati e gestiti da Cloud Expert pluri-certificati, garantiscono che i contenuti riflettano le best-practice più recenti e danno la possibilità di ricevere feedback dal vivo e risposte alle domande direttamente da un istruttore esperto. Inoltre includono laboratori pratici pensati per consolidare le conoscenze teoriche con casi d’uso reali. Per preparare questa o qualsiasi altra certificazione ufficiale, potete leggere qui tutti i dettagli e contattarci per pianificare il vostro percorso di formazione.

A presto, con un nuovo articolo sul nostro blog e in bocca al lupo per la vostra prossima certificazione AWS!

Alessandro Gaggia
Head of software development di beSharp, Full-Stack developer, mi occupo di garantire lo stato dell’arte di tutta la nostra codebase. Scrivo codice in quasi ogni linguaggio, ma prediligo Typescript. Respiro Informatica, Game design, Cinema, Fumetti e buona cucina. Disegno per passione!

Lascia un commento

Ti potrebbero interessare

Sviluppo remoto su AWS: da Cloud9 a VS Code