Esplorare l’intelligenza artificiale: idee di progetti di deep learning

L'intelligenza artificiale sta riscuotendo un enorme interesse nell'ultimo periodo. L'applicazione di modelli di deep learning e IA a scenari reali ha aperto nuovi orizzonti. Per generare dei modelli per le nostre applicazioni abbiamo però bisogno di dati su cui addestrare questi modelli. Esploriamo alcune idee che ci potrebbero permettere di creare nuove applicazioni e servizi.

Share

Reading time: 7 minutes

L’IA è di gran moda in questo periodo, soprattutto grazie alla popolarità raggiunta dagli strumenti di IA generativa e gli LLM (Larga Language Models) come ChatGPT e Bard. La base di molti di questi strumenti è costituita dalle tecniche di deep learning.

Per imparare al meglio il deep learning, è necessario realizzare molti progetti. Naturalmente, se avete delle conoscenze pregresse, potreste aver fatto progetti di riconoscimento di testo scritto a mano o di classificazione in generale, ma facendo progetti di deep learning interessanti, non solo affinerete le vostre capacità, ma vi divertirete anche!

In questo articolo esamineremo diverse idee di progetti di deep learning per mettere alla prova le vostre capacità e, se siete dei principianti, sarà un ottimo punto di partenza. Ma prima di tutto, partiamo dalle basi.

Che cos’è il Deep Learning?

Il Deep Learning insegna ai computer a pensare e imparare come noi. Il nostro cervello riconosce le forme, capisce i colori e ricostruisce il significato mettendo insieme le varie conoscenze. Le tecniche di deep learning funzionano in modo analogo utilizzando, però, reti neurali, equazioni matematiche e grande potenza di calcolo.

Supponiamo che gli si voglia insegnare a identificare i gatti presenti nelle foto. Fornendo al modello molte foto di gatti, questo riconoscerà baffi, code e orecchie. Più foto fornite, migliore sarà il riconoscimento. Ma non solo gatti, si può insegnare qualsiasi cosa! Questo concetto è alla base di ChatGTP, ad esempio. Gli ideatori di OpenAI hanno usato tutta la conoscenza disponibile sul web per addestrare un modello che fosse in grado sia di generare testo fluido in qualsiasi lingua, ma anche di rispondere ai quesiti che gli vengono formulati.

Perché è importante?

Perché può svolgere un’ampia gamma di compiti nella vita reale, dal prevedere il tempo ad analizzare le recensioni di prodotti fino alla classificazione di notizie, foto e altri oggetti. In questo articolo suggeriremo alcune idee per provare le tecniche di deep learning in contesti veri basandoci su dati reali. Esercitandovi su questi progetti potrete migliorare le vostre conoscenze, ma anche aprirvi le porte per un nuovo lavoro!

Idee per progetti di deep learning

Il web è pieno di idee di progetti di deep learning e anche alcune soluzioni proposte. Potete consultare siti come Github e Kaggle per farvi un’idea. Ovviamente solo la vostra fantasia e le vostre capacità saranno il vostro limite per sviluppare applicazioni che sfruttano queste tecniche.

Per guidarvi nella scelta dei progetti da cui partire forniremo in questo articolo alcuni spunti, con tanto di link ai dataset da utilizzare per creare il vostro modello da integrare nel progetto che realizzerete.

Progetto 1: Previsioni meteo

Dataset: Dati del meteo di Londra

Pesante di voler costruire un’applicazione per le previsioni meteo. Ne esistono parecchie, ma sviluppare un sistema automatico che generi le previsioni senza dover introdurre modelli matematici complessi potrebbe fare la differenza!

Utilizzando ad esempio il dataset del meteo di Londra, sarete in grado di usare il deep learning per prevedere le condizioni meteorologiche e, potenzialmente, per dare una mano ai settori dell’agricoltura e del turismo. Per realizzare questo progetto, occorre innanzitutto esplorare il set di dati. Potete farlo utilizzando pandas e, se non conoscete ancora bene pandas, potete affinare le vostre capacità rispondendo alle domande di Python Pandas Interview.

Ora che conoscete i vostri dati, manipolateli e trasformateli in modo da poter costruire una rete neurale. È possibile costruire una rete neurale ricorrente (RNN) su questi dati storici per prevedere le condizioni future. Ma non dimenticate di convalidare i risultati del modello su un set di test per garantirne le prestazioni.

Progetto 2: Prevedere l’opinione dalle recensioni di abbigliamento

Dataset: Recensioni sull’abbigliamento

Supponete di voler costruire un’applicazione che fornisca consigli di moda. Non siete degli esperti, quindi dovrete basarvi sui commenti di chi prova gli indumenti. Leggere le recensioni sull’abbigliamento per farsi un’idea potrebbe essere molto oneroso. A volte sono migliaia e molto contrastanti tra di loro. Fortunatamente, possiamo disporre di un dataset per prevedere l’opinione espressa nelle recensioni su questo argomento.

Si tratta di un problema di classificazione del testo che può essere risolto utilizzando reti neurali ricorrenti (RNN) o modelli basati su trasformatori come BERT. Questi modelli sono efficaci per la classificazione del testo e sono in grado di catturare la natura sequenziale del testo.

Per prima cosa, come sempre, è necessario trasformare i dati testuali, perché in genere sono in forma grezza. Bisogna renderli pronti per la costruzione di modelli di apprendimento automatico. Poi si può costruire il modello secondo i propri gusti e, infine, è il momento di valutarlo su un set di test separato.

Si possono provare diverse opzioni, come gli iperparametri, per migliorare le prestazioni del modello, ma bisogna assicurarsi di avere abbastanza potenza di calcolo, altrimenti il processo potrebbe durare giorni.

In questo modo sarà possibile analizzare decine di migliaia di recensioni in un tempo molto limitato.

Progetto 3: Notizie false e reali

Dataset: Notizie false e reali

A volte è davvero difficile capire se una notizia sia vera o falsa anche qualora la fonte sia autorevole. Per questo motivo è necessario costruire sistemi che classifichino le notizie come false o reali. Manualmente, infatti, risulta veramente difficile poiché richiede un sacco di lavoro di ricerca e confronto.

Se utilizziamo il deep learning, ed in particolare il dataset delle news linkato sopra, possiamo costruire una RNN per compiere questo task aumentando la velocità e l’accuratezza, se possibile. Il dataset è una collezione di articoli che sono stati etichettati come veri o falsi. Grazie a queste informazioni, il nostro modello potrebbe così imparare a identificare le notizie vere e quelle false e, per sicurezza, potremo testarne l’accuratezza. Ricordate sempre di separare il vostro set di dati in training e test, per essere sicuri che il vostro modello possa generalizzare bene a dati non visti.

Progetto 4: Classificazione delle posizioni dello yoga

Dataset: Posizioni di yoga

Supponiamo di voler sviluppare un’app che aiuti chi pratica yoga a capire se la posizione che sta assumendo è corretta o meno. Per far ciò dobbiamo prima classificare tutte le posizioni dello yoga partendo da delle immagini. Il dataset fornito comprende un gruppo di immagini di 5 pose principali, ovvero la posa del cane verso il basso, la posa della dea, la posa dell’albero, la posa del plank e la posa del guerriero.

Naturalmente, è possibile che si sappia quale posizione è, ma è necessario trasferire le proprie conoscenze al modello per automatizzare il processo di classificazione. Per fare ciò, la CNN è un’ottima soluzione, perché questo compito include un’attività di classificazione delle immagini.

Per iniziare questo progetto potremmo eseguire una nuova pre-elaborazione utilizzando diversi metodi. Ad esempio, se vogliamo aumentare la diversità dei dati di addestramento per aumentare l’efficienza, dobbiamo aumentare i dati. Una volta addestrato opportunamente il modello potremmo classificare opportunamente nuove immagini e validarle in base all’intenzione dell’utente.

Progetto 5: Classificazione automatica della frutta

Dataset: Frutti del dattero

Immaginiamo di essere un venditore e di dover classificare diversi tipi di frutta. Alcune specialità di frutta, però, non sapete distinguerle perfettamente. Un’app che classifichi opportunamente la frutta in base ad una foto sarebbe l’ideale.

Potete partire dal dataset dei frutti da dattero nel quale troverete immagini di sette diverse classi di frutti: “Barhee, Deglet Nour, Sukkary, Rotab Mozafati, Ruthana, Safawi e Sagai, incluse le loro caratteristiche come forma e colori.

Utilizzando queste informazioni e le Reti Neurali Convoluzionali, è possibile classificare altra frutta, semplicemente fotografandola e alimentando il nostro algoritmo con queste informazioni.

L’app sviluppata potrà fornire un servizio utile non solo al venditore, ma anche ai clienti finali e a tutta l’industria agricola.

Progetto 6: Rilevamento delle macherine

Dataset: Rilevamento delle mascherine

Durante l’epidemia del Covid19 è stato introdotto l’uso delle mascherine. Ad oggi non è più obbligatorio indossarle se non in determinate circostanze. Nonostante ciò, qualora fosse richiesto, bisogna monitorare in modo costante che tutti la indossino. Mediante l’utilizzo di una telecamera all’interno dei locali si potrebbe monitorare in modo automatico che nessun tolga la mascherina.

Per farlo, però, è necessario sviluppare un modello di deep learning in grado di rilevare se una persona indossa o meno una mascherina. Si tratta di un problema di classificazione di immagini binarie che può essere risolto utilizzando le reti neurali convoluzionali.

Utilizzando i dati linkati, potrete sviluppare un sistema di rilevamento di maschere facciali utilizzando PyTorch e il modello Faster R-CNN. Si procederà alla preelaborazione dei dati, alla creazione di un dataset e di un DataLoader e alla modifica di un modello Faster R-CNN pre-addestrato per il compito. Dopo aver addestrato e valutato il modello, si visualizzeranno le sue previsioni.

Infine, si salverà il modello addestrato per un uso futuro, magari inserendolo nell’algoritmo della telecamera e impostando il sistema, che controlla automaticamente i pazienti che indossano o meno le maschere.

Progetto 7: Rilevamento dei volti delle celebrità

Dataset: CelebFaces Attributes (CelebA)

Supponiamo che siate un giornalista e che il vostro compito sia quello di tenere traccia delle celebrità. Quindi dovreste dare loro un nome semplicemente guardandoli, giusto? La vostra memoria visiva però non è eccezionale e ricordarsi i volti delle nuove celebrità è veramente arduo.

Per svolgere questo compito è possibile utilizzare il dataset CelebFaces Attributes (CelebA), che contiene oltre 200.000 immagini di celebrità. Il progetto prevede l’addestramento di un modello di deep learning, probabilmente una rete neurale convoluzionale (CNN), per identificare vari attributi facciali.

Per migliorare le prestazioni del modello, si possono prendere in considerazione strategie come l’aumento dei dati e la regolazione degli iperparametri. Si potrebbe anche implementare l’arresto precoce durante l’addestramento per evitare l’overfitting o utilizzare l’apprendimento per trasferimento sfruttando modelli pre-addestrati come VGG16 o ResNet.

Naturalmente, dopo tutte queste operazioni, si può usare il modello per predire i nomi delle celebrità, caricando semplicemente le loro foto e chiedendo al modello di classificarle.

Progetto 8: Chatbot per le domande frequenti sulla salute mentale

Dataset: FAQ sulla salute mentale

Supponete di voler sviluppare un’assistente virtuale per uno psichiatra. Ovviamente avrete bisogno di una grande quantità di dati del settore. Poiché le domande sono di solito le stesse, o almeno quelle poste dai pazienti, si potrebbe usare il dataset Mental Health FAQ, una collezione di domande frequenti sulla salute mentale. A questo punto sarebbe solo necessario addestrare un modello di deep learning, come un modello sequenza-sequenza (un tipo di rete neurale ricorrente), per generare risposte alle domande sulla salute mentale.

Per migliorare le prestazioni del modello, si possono prendere in considerazione strategie come l’uso di meccanismi di attenzione per catturare meglio il contesto o la sperimentazione di diversi tipi di RNN come LSTM o GRU. Infine, questo aiuterebbe il dottore a servire i propri pazienti per un tempo illimitato, ma ovviamente con conoscenze limitate.

More To Explore

Intelligenza artificiale

Gradio: applicazioni web in python per AI [parte2]

Gradio è una libraria python che ci permette di creare applicazioni web in modo veloce e intuitivo per i nostri modelli di machine learning e AI. Le nostre applicazioni richiedono sempre un’interazione con l’utente e una personalizzazione del layout. Scopriamo, mediante degli esempi, come migliorare le nostre applicazioni.

Intelligenza artificiale

Gradio: applicazioni web in python per AI [parte1]

Scrivere applicazioni web per i nostri modelli di machine learning e/o di intelligenza artificiale può richiedere molto tempo e competenze che non sono in nostro possesso. Per snellire e velocizzare questo compito ci viene in aiuto Gradio, una libreria Python pensata per creare applicazioni web con poche righe di codice. Scopriamo le sue funzionalità base con alcuni esempi.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Design with MongoDB

Design with MongoDB!!!

Buy the new book that will help you to use MongoDB correctly for your applications. Available now on Amazon!