top of page

Risultati Ricerca Intelligenza Artificiale Italia

482 elementi trovati per ""

  • Editor Gratuito PHP, HTML, CSS, JavaScript INTELLIGENTE- Codelobster IDE

    La vita di uno sviluppatore web è piena di scelte e decisioni. La maggior parte di queste scelte vengono fatte mentre si lavora su un progetto; in tal caso, ha bisogno di uno strumento che lo aiuti a lavorare in modo più rapido ed efficiente. In questo articolo, ti suggeriamo di conoscere l'editor gratuito di linguaggi web - Codelobster IDE. È presentato sul mercato del software già da molto tempo e conquista molti fan. Codelobster IDE consente di modificare file PHP, HTML, CSS e JavaScript, evidenzia la sintassi e fornisce suggerimenti per tag, funzioni e relativi parametri. Questo editor gestisce facilmente quei file che contengono un contenuto misto. Se inserisci il codice PHP nel tuo modello HTML, l'editor evidenzia correttamente sia i tag HTML che le funzioni PHP. Lo stesso vale per il codice CSS e JavaScript, che è contenuto nei file HTML. Il programma include la funzione di completamento automatico, che velocizza notevolmente il lavoro del programmatore ed elimina la possibilità di errori. Codelobster IDE fornisce un aiuto contestuale su tutti i linguaggi di programmazione supportati, utilizza la documentazione più aggiornata in questo momento, scaricandola dai siti ufficiali. Quindi possiamo ottenere rapidamente una descrizione di qualsiasi tag HTML, attributo CSS, funzione PHP o JavaScript premendo il tasto F1. Il debugger PHP integrato ti consente di eseguire gli script PHP passo dopo passo, spostandoti in sequenza attraverso le righe di codice. È possibile assegnare punti di controllo, visualizzare il processo di lavoro dei loop e monitorare i valori di tutte le variabili durante l'esecuzione dello script. Puoi visualizzare i modelli HTML direttamente nell'editor, evidenziare gli elementi interessanti sulla pagina ed esplorare gli stili CSS associati. L'ispettore HTML e CSS funziona secondo il principio di tutti i FireBug conosciuti. Altre utili funzioni e caratteristiche dell'IDE: ∙Una coppia di evidenziazione di parentesi e tag: non dovrai mai contare parentesi o virgolette, se ne occuperà l'editore. ∙Evidenziazione di blocchi, selezione e compressione di frammenti di codice, segnalibri per facilitare navigazione sul file editato, riconoscimento e costruzione della struttura completa di PHP progetti: queste funzioni garantiscono un lavoro facile con progetti di qualsiasi scala. ∙Supporto per 17 lingue dell'interfaccia utente, tra cui inglese, tedesco, russo, spagnolo, francese e altri. ∙Il programma funziona sui seguenti sistemi operativi: Windows 7, Windows 8, Windows 10, Mac OS, Linux, Ubuntu, Fedora, Debian. La versione professionale di Codelobster IDE offre al programmatore ancora più funzionalità. Ad esempio, hai l'opportunità di lavorare con progetti su un server remoto con l'uso del client FTP integrato. È possibile modificare i file selezionati, visualizzare in anteprima i risultati e quindi sincronizzare le modifiche con i file sull'hosting. Inoltre, la versione professionale include un'ampia serie di plug-in: ∙Supporto completamente implementato per le librerie JavaScript, come jQuery, Node.js, AngularJS, BackboneJS e MeteorJS. ∙Un ampio set di estensioni che aiutano a lavorare con i framework PHP: CakePHP, CodeIgniter, Plug-in Laravel, Phalcon, Smarty, Symfony, Twig e Yii. ∙Plugin per lavorare con i CMS più popolari: Drupal, Joomla, Magento e WordPress. Possiamo scaricare e installare qualsiasi framework direttamente dal programma senza essere distratti dalle attività principali. In generale, per un anno di lavoro, il nostro team non ha avuto lamentele contro l'editore. Codelobster IDE funziona velocemente, non si blocca e ci consente di lavorare anche con grandi progetti PHP. Puoi scaricare Codelobster IDE dal sito Web ufficiale Codelobster helps you work faster and more efficiently by providing you with all the necessary tools for developing websites project.

  • Bias e intelligenza artificiale : tipi ed esempi

    I dati sono carburante per l'IA: creano o rompono il modello. Quindi, se vuoi che i tuoi dati riflettano i tuoi obiettivi nel modo più completo possibile, dovresti prima fare attenzione ai rischi che un pregiudizio può comportare per i tuoi dati, algoritmo o modello. Proprio come gli esseri umani possono essere influenzati da pregiudizi cognitivi come risultato di un errore sistematico nel pensare o di un'inclinazione errata a favore o contro una certa idea, anche i modelli possono operare sulla base di un certo tipo di pregiudizio di apprendimento automatico, di cui parleremo ulteriormente in questo articolo. Più nello specifico, parleremo di: Bias e intelligenza Artificiale perché è importante ? Tipi ed esempi di Bias nell' IA Come misurare il bias suggerimenti Ridurre al minimo i Bias Pensieri finali Bias e intelligenza artificiale perché è importante ? Le applicazioni di intelligenza artificiale possono essere estese a una moltitudine di ambienti sensibili tentando di apportare miglioramenti in diversi aspetti della vita. A condizione che ciò, diventa fondamentale garantire che il modo in cui l'IA influisce sulla nostra attività quotidiana non sia discriminatorio nei confronti di una determinata idea, gruppo di persone o circostanza. Inoltre, con lo stress crescente sul lato commerciale dell'IA, essere consapevoli dei tipi di pregiudizi nell'IA, di come possono influenzare le prestazioni del modello e sapere come misurare e ridurre i pregiudizi può ridurre il tempo a lungo termine. Tipi ed esempi di Bias nell' intelligenza artificiale : La maggior parte dei sistemi di intelligenza artificiale sono basati sui dati e richiedono un sacco di dati su cui essere addestrati. Ipoteticamente, se i dati di addestramento contengono errori, gli algoritmi li apprenderanno e rifletteranno tali errori nella previsione. In alcuni casi, gli algoritmi possono persino amplificare i pregiudizi e fuorviarti nel risultato, motivo per cui è meglio evitarli. Come nel Survey on Bias and Fairness in Machine Learning dell'USC Information Science Institute, suddivideremo i tipi di pregiudizi nello spazio dell'apprendimento automatico in tre categorie principali: Bias tra dati e algoritmi Bias per colpa dell'algoritmo Bias tra Dati e Utenti Ora vediamoli nel dettaglio uno per uno Tipi ed esempi di Bias nell' intelligenza artificiale 1 Bias tra dati e algoritmi Qui elencheremo diversi tipi di errori nei dati che portano a risultati algoritmici distorti: Bias di misurazione: c'è una differenza nel modo in cui valutiamo e misuriamo determinate caratteristiche rispetto al modo in cui traiamo conclusioni dai modelli osservati, che devono essere considerati per evitare bias di misurazione. Questo tipo di distorsione compare quando vengono riportate conclusioni non uniformi durante la costruzione del set di dati di addestramento. Ad esempio, non possiamo presumere che i rappresentanti dei gruppi di minoranza abbiano maggiori probabilità di commettere un crimine efferato solo perché hanno tassi di arresto più elevati: c'è una differenza nel modo in cui questi gruppi vengono valutati rispetto a come li si può percepire. Bias di campionamento: noto anche come bias di selezione, il bias di campionamento si verifica quando i dati di addestramento non vengono campionati in modo sufficientemente casuale dai dati raccolti, creando una preferenza verso alcune popolazioni. Considera un set di dati ampio e ricco di fotografie di esseri umani di tutte le etnie che non ha alcun pregiudizio nei confronti di alcuna etnia in particolare. Se uno specifico sistema di riconoscimento facciale è addestrato in gran parte su quelle che sono fotografie di uomini bianchi, non funzionerà bene quando si identificano donne e persone di diverse etnie, anche se i dati raccolti non erano originariamente distorti. Per evitare questo tipo di distorsione, i dati di addestramento devono essere campionati il ​​più casualmente possibile dai dati raccolti. Bias di rappresentazione: simile al bias di campionamento, il bias di rappresentazione deriva da una raccolta di dati non uniforme. Più in particolare, si verifica quando il processo di raccolta dei dati non tiene conto dei valori anomali, della diversità della popolazione e delle anomalie. Considera lo stesso sistema di riconoscimento facciale nel bias di campionamento. Se i dati raccolti contengono principalmente fotografie di uomini bianchi, il campionamento casuale non aiuterà a evitare distorsioni, poiché la distorsione è già inerente ai dati raccolti. Questo è un esempio di distorsione di rappresentazione. Bias di aggregazione: il bias di aggregazione si osserva quando vengono fatte false ipotesi o generalizzazioni sugli individui quando si osserva l'intera popolazione. È fondamentale che l'insieme scelto di possibili etichette che contrassegnano il set di dati di addestramento catturi le diverse conclusioni che si possono trarre dal set di dati. Ad esempio, si consideri un set di dati composto da immagini di gatti, cani e tigri, in cui un modello viene addestrato per prevedere il peso dell'animale nell'immagine. Etichettare queste immagini come "cani" o "felini" può essere fuorviante poiché tigri e gatti hanno pesi diversi. È importante che le conclusioni (peso) siano ben catturate dalla definizione dell'etichetta. Differenza da variabile omessa: la variabile omessa riflette la distorsione di una o più variabili mancanti che possono influire sul risultato finale in un modo o nell'altro. Alla fine, il tuo modello finisce per attribuire gli effetti delle variabili mancanti a quelle incluse. Tipi ed esempi di Bias nell' intelligenza artificiale 2 Algoritmi e Bias Gli algoritmi esercitano un'influenza sul comportamento dell'utente. In questa sezione, ci concentreremo sui tipi di bias algoritmici che possono eventualmente agire sul comportamento degli utenti: Bias algoritmico: semplice, qui il bias viene introdotto dall'algoritmo, non dai dati e dalle scelte che si fanno quando si ottimizzano funzioni particolari (ad esempio, la profondità di una rete neurale, il numero di neuroni per livello o la regolarizzazione) . La distorsione può anche essere avviata dalle informazioni preliminari richieste dall'algoritmo, poiché la maggior parte degli algoritmi di intelligenza artificiale necessita di un certo grado di informazioni preliminari per funzionare. Bias di popolarità: gli articoli popolari sono più spesso esposti, il che è altrettanto veritiero in quanto soggetti a manipolazione (da parte di spam, recensioni false, pratiche SEO blackhat nei motori di ricerca, ecc.). Anche se il modello sta facendo le giuste previsioni, la conclusione finale potrebbe essere distorta a causa della popolarità di altre possibili conclusioni. Una popolarità simile potrebbe non essere un segno di qualità, ma invece approcci distorti, spesso non osservati a livello di superficie. Bias emergente: questo tipo di bias si verifica nel tempo come risultato dell'interazione con gli utenti e può essere innescato da cambiamenti nella base di utenti target, nelle loro abitudini e valori, di solito dopo che il modello è stato progettato e distribuito. Distorsioni di valutazione: derivanti durante la valutazione del modello, le distorsioni di valutazione possono essere il risultato di parametri di riferimento inadatti o sproporzionati, ad esempio nei sistemi di riconoscimento facciale , che risultano distorti rispetto al colore della pelle e al sesso. Non solo è importante costruire set di dati di addestramento imparziali, ma anche progettare set di dati di test privi di bias e benchmark imparziali. Tipi ed esempi di Bias nell' intelligenza artificiale 3 Bias tra utente e dati Poiché molti dati introdotti nei modelli sono generati dall'utente, le distorsioni intrinseche dell'utente possono riflettersi nei dati di addestramento. Ecco alcuni esempi: Bias di popolazione: quando i dati demografici, le statistiche e i dati degli utenti, in generale, differiscono nella piattaforma da cui stai estraendo i dati (social media, ad esempio) rispetto alla popolazione target originale, hai a che fare con il bias di popolazione. Breve e dolce: sono i dati non rappresentativi che incasinano i risultati del tuo modello. Proviamo a farla ancora più facile, se analizzi il sentiment dei tweet indiani quando hai un e-commerce con clienti italiani cosa speri di trovare ? Nulla! Pregiudizio sociale: immagina una situazione in cui dovresti valutare un servizio, hai un punteggio nella tua testa, ma leggendo le recensioni degli altri ed essendo esposto alla maggior parte delle opinioni, cambi improvvisamente idea. Quindi la recensione che hai appena lasciato, presumibilmente imparziale, viene utilizzata per addestrare un modello, ma quello che è successo invece è che le azioni degli altri hanno influenzato il tuo giudizio: questo è il pregiudizio sociale tra utente e dati. Bias comportamentale: gli utenti reagiscono in modo diverso quando vengono esposti alle stesse informazioni, ed è così che si verifica il bias comportamentale. Ancora una volta, prendendo i social media, un'emoji può rappresentare idee totalmente diverse per persone di culture diverse, portando a direzioni di comunicazione completamente contrastanti e ciò a sua volta può riflettersi nel tuo set di dati, supponendo che quei messaggi siano i tuoi dati. Come misurare il Bias ? Esistono varie metriche per misurare la distorsione e i punti chiave variano a seconda dell'obiettivo del nostro progetto o dei tipi di attività che devi svolgere. Per le attività di classificazione, ti concentri sull'accuratezza delle previsioni. Quando si lavora con annotazioni basate sulla posizione con riquadri di delimitazione o poligoni, si tratta più dell'intersezione delle unità e della sovrapposizione. La misurazione della distorsione dei progetti ML supervisionati va davvero oltre, quindi ecco alcuni suggerimenti per te: Tieni traccia dell'attività di annotazione per utente Assicurati di poter visualizzare i progressi di ogni annotatore: in questo modo, puoi notare un'etichettatura imprecisa in tempo, identificare la fonte dell'errore e prevenire l'imminente espansione della distorsione. Ciò è particolarmente utile quando si esternalizzano i servizi di annotazione , il che significa naturalmente cedere più controllo a una terza parte. Inoltre, il monitoraggio delle attività dell'annotatore è assolutamente necessario per i progetti di etichettatura su larga scala . Identifica le fonti e le ragioni dei Bias Oltre a tenere traccia dei progressi individuali degli annotatori, è utile avere una panoramica generale delle annotazioni ed essere in grado di filtrare i dati necessari. Ad esempio, potresti voler visualizzare le annotazioni per un particolare punto dati, classe o attributo. In questo modo, puoi identificare le posizioni e le fonti di errore e risolverle. Altri motivi di distorsione possono includere quanto segue: Istruzioni inefficienti con pochi o nessun esempio Mancanza di comunicazione all'interno del team Ora del giorno (le annotazioni fatte più avanti nel corso della giornata tendono ad essere più accurate a causa dell'illuminazione) Analizza il tuo set di dati, prenditi il ​​tempo necessario per considerare le possibili ragioni alla base del verificarsi di errori e pensa a un approccio strategico per risolvere gli errori esistenti e prevenire gli errori imminenti. Come ridurre i bias nell' intelligenza artificiale ? In effetti, la distorsione può insinuarsi in un modello a causa di una serie di fattori: scarsa qualità dei dati, mancata corrispondenza delle prestazioni del modello, fattore umano, ecc. In questa sezione, introdurremo alcuni passaggi che puoi eseguire durante lo sviluppo di un modello di intelligenza artificiale per ridurre al minimo il rischio di bias: Seleziona i dati di allenamento giusti Controlla problemi legati alle infrastrutture Controlla continuamente distribuzione e feedback I dati di allenamento giusti Assicurati che il tuo set di dati sia diversificato, inclusivo, sufficientemente equilibrato e rappresenti i tuoi obiettivi nel modo più completo possibile. Come hai visto, anche il metodo di raccolta dei dati può introdurre pregiudizi. Assicurati che i tuoi dati coprano i casi che riguardano l'ambiente in cui opererà il tuo modello. Se hai a che fare con set di dati pubblici, sii estremamente cauto e cerca di non riutilizzarli per evitare distorsioni. Problemi legati alle infrastrutture I problemi con le apparecchiature possono anche presentare pregiudizi nei casi in cui ti affidi ai dati raccolti da dispositivi elettronici, smartphone, fotocamere, ecc. In effetti, questo è il tipo di bias più difficile da rilevare, ma investire nell'infrastruttura giusta può avvantaggiare il tuo modello più che sai. Distribuzione e feedback Una delle categorie di bias discusse in precedenza copre le distorsioni algoritmiche che influenzano il comportamento degli utenti. Per individuarlo in tempo e assicurarti che il modello funzioni come previsto, tieni sempre a mente il feedback durante la distribuzione. Fornisci spazio ai tuoi utenti finali per connettersi con te e condividere i loro pensieri sulle prestazioni del modello. Tre esempi reali di bias dell'IA 1. Il razzismo nell'assistenza sanitaria statunitense Nell'ottobre 2019, i ricercatori hanno scoperto che un algoritmo utilizzato su più di 200 milioni di persone negli ospedali statunitensi per prevedere quali pazienti avrebbero probabilmente bisogno di cure mediche extra favoriva i pazienti bianchi rispetto ai pazienti neri. Sebbene la razza stessa non fosse una variabile utilizzata in questo algoritmo, un'altra variabile altamente correlata alla razza lo era, che era la cronologia dei costi sanitari. La logica era che il costo riassume quanti bisogni sanitari ha una determinata persona. Per vari motivi, i pazienti neri hanno sostenuto in media costi sanitari inferiori rispetto ai pazienti bianchi con le stesse condizioni. Per fortuna, i ricercatori hanno lavorato con Optum per ridurre il livello di bias dell'80%. Ma se non fossero stati interrogati in primo luogo, il pregiudizio dell'IA avrebbe continuato a discriminare gravemente. 2. COMPAS e i falsi positivi Probabilmente l'esempio più notevole di pregiudizio dell'IA è l'algoritmo COMPAS (Correctional Offender Management Profiling for Alternative Sanctions) utilizzato nei sistemi giudiziari statunitensi per prevedere la probabilità che un imputato diventi recidivo . A causa dei dati utilizzati, del modello scelto e del processo di creazione dell'algoritmo in generale, il modello prevedeva il doppio dei falsi positivi per recidiva per i trasgressori neri (45%) rispetto ai trasgressori bianchi (23%) . 3. L'algoritmo di assunzione di Amazon Amazon è uno dei più grandi giganti della tecnologia al mondo. E quindi, non sorprende che siano grandi utilizzatori di machine learning e intelligenza artificiale. Nel 2015, Amazon si è resa conto che il loro algoritmo utilizzato per assumere dipendenti era prevenuto nei confronti delle donne . Il motivo era che l'algoritmo si basava sul numero di curricula presentati negli ultimi dieci anni e, poiché la maggior parte dei candidati erano uomini, era stato addestrato per favorire gli uomini rispetto alle donne. Cosa possiamo imparare da tutto questo? È chiaro che creare algoritmi non distorti è difficile. Per creare algoritmi non distorti, i dati utilizzati devono essere privi di pregiudizi e gli ingegneri che stanno creando questi algoritmi devono assicurarsi che non trapelano nessuno dei propri pregiudizi. Detto questo, ecco altri 3 suggerimenti più umani e meno tecnici per ridurre al minimo i pregiudizi: 1) I dati che si utilizzano devono rappresentare “ciò che dovrebbe essere” e non “ciò che è” Ciò che intendo dire con questo è che è naturale che i dati campionati casualmente abbiano pregiudizi perché vivevamo in un mondo parziale in cui le pari opportunità sono ancora una fantasia. Tuttavia, dobbiamo garantire in modo proattivo che i dati che utilizziamo rappresentino tutti allo stesso modo e in un modo che non causi discriminazioni nei confronti di un particolare gruppo di persone. Ad esempio, con l'algoritmo di assunzione di Amazon, se ci fosse stata una quantità uguale di dati per uomini e donne, l'algoritmo potrebbe non aver discriminato così tanto. Quindi per applicare questo primo suggerimento amazon avrebbe dovuto usare pari dati per dipendenti maschi e femmine anche se la realtà non è questa, così avrebbe evitato uno sbilanciamento 2) Dovrebbe essere imposto e imposto un qualche tipo di governance dei dati Poiché sia ​​gli individui che le aziende hanno una sorta di responsabilità sociale, abbiamo l'obbligo di regolare i nostri processi di modellazione per garantire che le nostre pratiche siano etiche. Ciò può significare diverse cose, come assumere un team di conformità interno per imporre una sorta di controllo per ogni algoritmo creato, allo stesso modo del gruppo di Obermeyer. 3) La valutazione del modello dovrebbe includere la valutazione dei gruppi sociali Imparando dai casi precedenti, dovremmo sforzarci di garantire che parametri come la vera accuratezza e il tasso di falsi positivi siano coerenti quando si confrontano diversi gruppi sociali, indipendentemente dal fatto che si tratti di sesso, etnia o età. Conclusione sui Bias e IA In questo articolo, ci siamo concentrati sulla distorsione dell'apprendimento automatico, rispondendo ad alcune delle domande chiave sull'argomento, dai tipi ai metodi di misurazione e prevenzione. Ci auguriamo che tu utilizzi i suggerimenti discussi per ottenere il livello di precisione desiderato per il tuo modello.

  • Migliori estensioni Google Chrome per scienziati dei dati e data scientist

    In questo nuovo post parleremo delle migliori estensioni di Google Chrome che, come data scientist, ci rendono più facili alcune attività. Dovresti almeno provarli e verificarne i risultati da solo, è possibile che diventino parte del tuo arsenale di strumenti con cui lavorare quotidianamente. Se hai altri consigli, sentiti libero di pubblicarli nei commenti o se hai recensioni sulle estensioni menzionate a noi farebbe piacere sentire la vostra opinione! Iniziamo. Migliori estensione Google Chrome per Data Scientist 1. CatalyzeX Descrizione dell'estensione per la data science: Ottieni il codice di implementazione dei documenti di ricerca sull'apprendimento automatico con il codice direttamente su Google, ArXiv, Scholar, Twitter, Github, ecc. L'estensione del browser gratuita CatalyzeX trova e visualizza istantaneamente il codice di implementazione di qualsiasi apprendimento automatico, intelligenza artificiale, linguaggio naturale elaborazione, visione artificiale, apprendimento per rinforzo e documenti di ricerca sull'apprendimento profondo con il codice che trovi durante la navigazione di Google, ArXiv, Twitter, Scholar, Github e altri siti Web. ▶ Naviga sul Web come al solito e inizierai a vedere i pulsanti [CODICE] accanto ai documenti ovunque. ▶ I pulsanti [CODICE] appariranno automaticamente direttamente sulla pagina di qualsiasi collegamento di implementazione trovato. ▶ Fare clic su qualsiasi pulsante di codice per passare immediatamente all'open source ed esplorare! Basato sul repository CatalyzeX.com utilizzato da migliaia di ingegneri, ricercatori, sviluppatori e leader tecnologici di tutto il mondo, per sfogliare algoritmi, modelli e articoli di ML con codice per sviluppi rilevanti e all'avanguardia nell'apprendimento automatico, nella scienza dei dati e nell'intelligenza artificiale , visione artificiale, elaborazione del linguaggio naturale, riconoscimento vocale, apprendimento per rinforzo e apprendimento profondo. Link per il download Migliori estensione Google Chrome per Data Scientist # 2- Raschietto dati istantaneo Descrizione dell'estensione per la data science: Instant Data Scraper estrae i dati dalle pagine Web e li esporta come file Excel o CSV. Instant Data Scraper è uno strumento di estrazione dati automatizzato per qualsiasi sito web. Utilizza l'intelligenza artificiale per prevedere quali dati sono più rilevanti su una pagina HTML e consente di salvarli in un file Excel o CSV (XLS, XLSX, CSV). Questo strumento non richiede script specifici del sito Web, ma utilizza l'analisi euristica AI della struttura HTML per rilevare i dati da estrarre. Se la previsione non è soddisfacente, consente all'utente di personalizzare le selezioni per una maggiore precisione. Questo tipo di tecnologia scrape è molto più conveniente, perché non richiede grandi librerie di script scrape creati dall'utente, che sono spesso pieni di versioni obsolete e ridondanti. Ciò significa che il nostro metodo scrape funziona altrettanto bene con siti Web piccoli e meno conosciuti come con giganti globali come Amazon. Inoltre, i nostri utenti non devono avere alcuna conoscenza di codifica, json o xml! Caratteristiche di Instant Data Scraper: * Rilevamento dei dati per l'estrazione con l'intelligenza artificiale. * Rilevamento di dati dinamici quando è stato caricato. * Personalizzazione del ritardo e del timeout per la velocità di scansione desiderata. * Supporto per l'impaginazione sui siti web. * Navigazione automatica alla pagina successiva tramite pulsanti o collegamenti. * Supporto per scorrimento infinito. * Anteprima dei dati estratti con supporto copia e incolla. * Esportazione dei dati su foglio di calcolo Excel o file CSV. * Rinomina e filtra le colonne di dati estratte. Questa estensione è completamente GRATUITA. Instant Data Scraper funziona bene all'unisono con strumenti SEO, sistemi di reclutamento CRM, strumenti di gestione dei lead di vendita o campagne di email marketing. Il web scraping e il download dei dati sono facili con il nostro strumento. Inoltre, hai sicurezza e privacy dei dati poiché i dati raschiati non lasciano il tuo browser. Instant Data Scraper CASI D'USO: * Lead generation per aziende e liberi professionisti. * Hacker della crescita che cercano modi semplici per raccogliere dati. * Reclutatori in cerca di candidati di lavoro. * Ottenere i risultati dei motori di ricerca. * Ottenere dati sui prezzi dei prodotti da siti Web di e-commerce. * Venditori, distributori e analisti di recensioni Amazon. * Ottieni indirizzi e-mail e directory e numeri di telefono. * Ottenere le informazioni di contatto dai siti web delle associazioni professionali. * Raccogli recensioni e valutazioni. * Analizza i post per Mi piace, commenti, connessione e contatti. * Estrai email e ID dai profili dei social network. La promessa dello sviluppatore: questa estensione non contiene malware o spyware oltre allo standard di Google Analytics. Link per scaricare InstaDataScraper Migliori estensione Google Chrome per Data Scientist #3- EquatIO - La matematica diventa digitale Descrizione dell'estensione per la data science: crea facilmente equazioni matematiche, formule e quiz. Digita intuitivamente o manualmente, senza la necessità di apprendere complicati codici matematici. Finora, scrivere equazioni ed espressioni matematiche al computer era lento e laborioso. EquatIO rende la matematica digitale, aiutando insegnanti e studenti di tutti i livelli a creare espressioni matematiche in modo rapido e semplice. Digita o scrivi a mano praticamente qualsiasi espressione matematica direttamente sulla tastiera o sul touch screen. Non è necessario alcun codice complicato o linguaggi di programmazione. EquatIO converte istantaneamente i tuoi pensieri in formule chiare e precise sullo schermo. Quando digiti "sq", sa che intendi "radice quadrata". E ascolta anche te. Quando si detta una formula ad alta voce, EquatIO è abbastanza intelligente da ignorare "umms", "errs" e altre parole non matematiche indesiderate. Più che un sostituto di carta e matita, EquatIO rende la matematica e altre materie STEM coinvolgenti e gratificanti per tutti gli studenti. Caratteristiche: - Crea facilmente espressioni matematiche, incluse equazioni e formule. - Compatibile con Google Documenti, Moduli*, Presentazioni*, Fogli* e Disegni*. - Input da tastiera, riconoscimento della grafia* (tramite touchscreen o touchpad) e dettatura vocale - Indovina cosa stai scrivendo o digitando, - Ascolta le tue espressioni matematiche lette ad alta voce. - Compatibile con input LaTeX per utenti avanzati. - Crea quiz matematici digitali interattivi*. - Inserisci le risposte degli studenti direttamente nei quiz digitali*. - Previsione formula chimica*. Link per il download Migliori estensione Google Chrome per Data Scientist 4- Caccia alla sfida Descrizione dell'estensione per la data science: un'applicazione. Tutti i concorsi di programmazione. Ti tiene aggiornato con tutti i concorsi di programmazione attivi e imminenti e gli hackathon da tutto il mondo. Challenge Hunt ti offre le migliori sfide di programmazione da tutto il mondo. Ti tiene aggiornato con tutte le competizioni di codifica attive e imminenti, gli hackathon, le assunzioni e le sfide della scienza dei dati. Ti permette di vedere tutti gli eventi attivi e imminenti: * Gare di programmazione * Hackathon * Sfide di scienza dei dati * Sfide di assunzione Link per il download Migliori estensione Google Chrome per Data Scientist 5- Openin Colab Descrizione dell'estensione per la data science: apri un notebook ospitato su Github in Google Colab. Semplice estensione del browser per aprire rapidamente il notebook Jupyter ospitato su GitHub in Google Colab. Link per il download Grazie per aver letto se ti va di aiutarci condividi l'articolo su Linkedin o il social che preferisci!

  • Come creare intelligenze artificiali senza scrivere codice

    Sembra assurdo ma è così, ecco una guida completa alle piattaforme per lo sviluppo di Intelligenze artificiali senza codice! Con l'aumento della trasformazione digitale e dei progressi nell'apprendimento automatico (ML), un numero crescente di aziende inizia a incorporare l'intelligenza artificiale (AI) nel proprio flusso di lavoro. Nella ricerca di Deloitte, un numero considerevole di intervistati ha affermato che le tecnologie cognitive sono "importanti" o "molto importanti" sia per le offerte di servizi che per i processi aziendali interni. Apparentemente, queste aziende ritengono che l'utilizzo dell'IA sia fondamentale per la loro capacità di sviluppare le proprie attività e superare la concorrenza. E poiché la domanda di IA integrativa sta solo crescendo, anche le piattaforme che suggeriscono lo sviluppo di IA senza codice o low-code crescono di numero. Questo articolo definirà i termini "low-code" e "no-code", discuterà i vantaggi e gli svantaggi di questa tecnologia e introdurrà un elenco di piattaforme no-code per l'IA e la visione artificiale. Nel dettaglio in questo articolo vedremo : Sviluppare un'Intelligenza artificiale senza codice Sviluppare un'Intelligenza artificiale a basso codice Vantaggi e svantaggi Elenco delle piattaforme Conclusioni Sviluppare un'intelligenza artificiale senza codice Il no-code è un approccio allo sviluppo di software che consente a persone non tecnologiche, ovvero a chiunque non abbia una formazione preliminare, di progettare applicazioni, siti Web, senza scrivere manualmente il codice. Il no-code è diventato ancora più popolare durante il COVID-19, quando le aziende che sono passate online non avevano il tempo e le risorse per sviluppare i propri software, applicazioni, siti Web di e-commerce, ecc., quindi avevano bisogno di un modo più rapido e accessibile per integrare nuove soluzioni. Quando si parla di IA, un sistema senza codice per l'implementazione di modelli di IA e ML è definito come IA senza codice. Facilita la classificazione e l'analisi dei dati per i modelli di intelligenza artificiale che servono a scopi aziendali specifici. Sviluppare un'intelligenza artificiale con poco codice Lo sviluppo con poco codice va di pari passo con il non codice. Piattaforme di questo tipo aiutano anche a fornire app più velocemente, ma potrebbero richiedere un po' di codifica. Anche i programmatori esperti spesso sfruttano questi strumenti per evitare di scrivere codice aggiuntivo. Ad ogni modo, gli strumenti low-code e no-code sono per lo più rivolti a uomini d'affari e altri professionisti la cui specializzazione in AI non è sufficientemente abile per costruire modelli. Dove viene utilizzato lo sviluppo di intelligenza artificiale senza codice? L'IA low-code/no-code può essere utilizzata in qualsiasi azienda per ottimizzare i flussi di lavoro, prevedere il tasso di abbandono e suggerire consigli. Semplici modelli di intelligenza artificiale per la classificazione delle immagini possono essere facilmente sviluppati con piattaforme low-code/no-code e utilizzati nelle fabbriche per distinguere tra prodotti di qualità e danneggiati, o nel settore sanitario per rilevare se le persone indossano maschere all'interno dell'edificio. I casi d'uso sono infiniti. Le aziende trarranno vantaggio dalle piattaforme di IA low-code/no-code in settori più basati sui dati, come marketing, vendite e finanza . L'intelligenza artificiale può aiutare a prevedere i tassi di abbandono, analizzare i rapporti, aggiungere suggerimenti intelligenti, automatizzare la fatturazione e molto altro. Vantaggi dello sviluppo di intelligenza artificiale senza codice? Una volta che sappiamo che esiste un modo più semplice per fare qualcosa, lo sfruttiamo per ottenere risultati più efficienti in un periodo di tempo più breve. In che modo le piattaforme AI low-code/no-code ci aiutano a farlo? Diamo un'occhiata ai vantaggi. Accessibilità: le piattaforme low-code/no-code consentono a persone o aziende non tecnologiche di creare sistemi di intelligenza artificiale da zero, rendendo così l'IA più accessibile a una più ampia varietà di aziende. Usabilità: questi strumenti hanno spesso un'interfaccia drag-and-drop intuitiva in cui la complessità è ridotta al minimo, quindi, di norma, è abbastanza facile navigare attraverso piattaforme IA low-code/no-code. Velocità: poiché le piattaforme IA low-code/no-code spesso dispongono di modelli IA predefiniti, modelli di progetto e set di dati già pronti, l'etichettatura e l'iterazione dei dati richiede molto meno tempo, accelerando notevolmente lo sviluppo del modello. Scalabilità: l'IA esegue attività per molti (se non cento) utenti, risparmiando tempo e risorse dell'azienda. Inoltre, i server vengono ridimensionati automaticamente, a seconda del carico, ed è davvero facile seguire il carico di lavoro e l'avanzamento stesso. Svantaggi dello sviluppo di intelligenza artificiale senza codice? Sebbene le piattaforme di intelligenza artificiale senza codice o con codice ridotto sembrino incoraggianti, ci sono ancora alcuni inconvenienti o ostacoli da considerare quando si sceglie una piattaforma. Sicurezza: alcune piattaforme potrebbero non riuscire a progettare protocolli di accesso e questo è un problema per le aziende in cui la sicurezza è la massima priorità. È sicuro ricercare i termini e le condizioni per capire chiaramente come e dove verranno elaborati i tuoi dati. Mancanza di personalizzazione: sebbene facili e veloci, le piattaforme low-code/no-code sono per lo più limitate nelle funzionalità, perché sono progettate per coprire un problema specifico ed è difficile trovare soluzioni pronte all'uso, più complesse soluzioni. Il business ha bisogno di cambiare come il vento, quindi una volta che hai superato una soluzione o una funzionalità specifica, dove vai dopo? Richiede consulenza o formazione: idealmente, l'ingegnere ML, lo specialista delle risorse umane e lo stagista di marketing dovrebbero essere ugualmente in grado di utilizzare le piattaforme low-code/no-code, ma non è sempre così. Poiché l'utente finale di una piattaforma di intelligenza artificiale è comunque un ingegnere di ML, il resto del team richiederà molta formazione e consultazioni per orientarsi nei processi di intelligenza artificiale. Mancanza di fiducia: quello che abbiamo visto finora è che le piattaforme di IA low-code/no-code stanno guadagnando popolarità, ma sono pratiche quanto i tradizionali approcci ML? Secondo Google Trends, l'interesse per nessun ML di codice è in aumento, ma le persone interessate al ML tradizionale sono molto più avanti. Questo perché ML e visione artificiale sono presenti da un po' di tempo, queste risorse e librerie superano notevolmente le piattaforme di IA low-code/no-code. Le migliori piattaforme per creare IA senza codice : Ora che abbiamo familiarità con i concetti di piattaforme low-code e no-code, tuffiamoci e vediamo quali risorse AI low-code/no-code esistono là fuori. Ecco un elenco di piattaforme IA no-code che puoi usare : Create ML Google AutoML Levity Lobe Obviously AI MakeML Create ML In iOS 11, Apple ha introdotto il framework ML di base per le previsioni ML sul dispositivo. Ciò ha consentito alle app di aggiungere ML semplicemente trascinando un modello addestrato. Un anno dopo, Apple ha introdotto Create ML , che è un framework Mac OS che consente a chiunque di creare facilmente modelli ML con un'interfaccia dell'app facile da usare e senza codice. Create ML può essere utilizzato per addestrare una varietà di modelli per quanto segue: Riconoscimento delle immagini Analisi del sentimento Analisi di regressione Google AutoML AutoML consente agli sviluppatori con competenze ML limitate di addestrare modelli di alta qualità specifici per le loro esigenze aziendali. È fondamentalmente un insieme di strumenti per diversi progetti di intelligenza artificiale: Immagine AutoML per l'annotazione e l'etichettatura delle immagini. AutoML Video per annotazioni ed etichette video. AutoML Text per l'analisi semantica e la classificazione del testo. Leviry Levity è un'altra piattaforma di intelligenza artificiale senza codice per addestrare e costruire modelli di intelligenza artificiale. Si concentra sulla classificazione di immagini, testo e documenti e consente agli utenti di addestrare modelli personalizzati sui dati specifici del loro caso d'uso. I modelli personalizzati includono anche un'opzione human-in-the-loop, il che significa che il modello richiede input dove non è sicuro e imparerà automaticamente dalle interazioni. Classifica immagini, testi e documenti. Automatizza l'iterazione dei dati. Lobe Lobe è un'app di addestramento del modello relativamente nuova ma super facile per la classificazione delle immagini con rilevamento di oggetti e classificazione dei dati in arrivo. Con Lobe puoi fare le seguenti operazioni: Crea un set di dati ed etichetta le immagini. Addestra automaticamente un modello senza alcuna configurazione precedente. Usa il tuo modello in qualsiasi app grazie alla facile esportazione. Obviously AI Obviously AI è una piattaforma AI senza codice che aiuta a costruire algoritmi ML per la previsione dei dati. La piattaforma consente agli utenti di osservare a volo d'uccello i dati esistenti, comprenderli e trarre conclusioni. Suggerisce anche set di dati già pronti, in modo da poterli testare e ottenere subito previsioni. Ovviamente l'IA può essere utilizzata per una serie di casi d'uso aziendali: Previsione delle entrate aziendali Ottimizzazione della filiera Personalizzazione delle campagne di marketing MakeML Fondata nel 2018, MakeML si posiziona ora come un'app per creare modelli ML di rilevamento e segmentazione di oggetti senza codice. Abbastanza promettente, non è vero? Progettata per gli sviluppatori macOS, la piattaforma suggerisce anche set di dati di visione artificiale gratuiti per addestrare le reti neurali in meno tempo. Con MakeML puoi: Crea i tuoi set di dati. Crea modelli ML personalizzati in pochi clic. Integra il tuo modello nella tua app. Conclusioni su come sviluppare le IA senza codice Le piattaforme low-code/no-code sono utili e popolari? Sì! Sostituiranno completamente il tradizionale ML e la visione artificiale? No. A causa del fatto che c'è ancora molto da esplorare in ML, IA e visione artificiale, l'approccio personalizzato alla creazione di modelli di IA è lungi dall'essere sostituito. Inoltre, le piattaforme low-code e no-code sono piuttosto limitate in termini di personalizzazione delle funzionalità, mentre quando crei l'IA da zero, il limite è il cielo, sei libero di costruire l'architettura, la funzionalità o la pipeline adatta il tuo progetto migliore. D'altra parte, tale costruzione di modelli personalizzati può essere piuttosto costosa e richiedere molto tempo. Quindi, la nostra migliore ipotesi è utilizzare piattaforme low-code/no-code per coprire azioni molto specifiche della tua pipeline per semplificare e velocizzare i processi.

  • Le migliori librerie python di computer vision o visione artificiale

    Se stai cercando le librerie python ad oggi disponibili e ben collaudate per il tuo prossimo progetto di visione artificiale, sei nel posto giusto. Introduzione veloce : computer vision o visione artificiale Noi esseri umani possiamo identificare rapidamente gli oggetti grazie ai nostri sensori biologici: gli occhi. Tuttavia, i computer non "vedono" le cose nel modo in cui le vediamo noi. Ci vogliono molti dati e hardware (fotocamere, sensori) affinché un computer riconosca un singolo oggetto. Proprio come gli occhi umani ci aiutano a vedere e reagire al mondo che ci circonda, la visione artificiale consente a una macchina di identificare, classificare e rispondere agli oggetti che vede. Molto semplice ... Oggi, non è un segreto che la visione artificiale abbia molteplici applicazioni in molti settori come la sicurezza, l'agricoltura, la medicina e altro ancora. Quindi la domanda di strumenti e librerie di visione artificiale di qualità aumenta di conseguenza. Esistono varie librerie di computer vision, librerie di riconoscimento di immagini, librerie di riconoscimento facciale, ecco perché abbiamo deciso di stilare questo elenco di librerie di visione artificiale per filtrare e trovare facilmente quelle che si adattano meglio alle tue esigenze. Che cos'è una libreria di computer vision? Una libreria di visione artificiale è fondamentalmente un insieme di codice e dati pre-scritti per costruire o ottimizzare un programma per computer. Le librerie sono numerose su misura per esigenze specifiche o linguaggi di programmazione. Le migliori librerie di computer vision : In questo articolo abbiamo raccolto un elenco delle librerie di visione artificiale più popolari per aiutarti a iniziare. Quindi, vediamole : OpenCV SimpleCV TensorFlow Keras MATLAB PCL DeepFace NVIDIA CUDA-X NVIDIA Performance Primitives BoofCV OpenVINO PyTorch Albumentations Caffe Detectron2 Naturalmente non ci fermeremo al semplice elenco che più di orientare, disorienta (vista la moltitudine di librerie disponibili) ma vedremo per ogni libreria una descrizione dettagliata e gli utilizzi consigliati. Migliori librerie di computer vision 1 Open CV OpenCV è di gran lunga la libreria di visione artificiale open source più popolare, che mira alla visione in tempo reale. È una libreria multipiattaforma che supporta Windows, Linux, Android e macOS e può essere utilizzata in diversi linguaggi, come Python, Java, C++, ecc. Originariamente sviluppato da Intel, ora è gratuito per l'uso con BSD open source licenza. Alcuni casi d'uso di OpenCV includono: Toolkit di funzionalità 2D e 3D Applicazione di riconoscimento facciale Riconoscimento del gesto Comprensione del movimento Interazione umano-computer Rilevamento di oggetti Segmentazione e riconoscimento Migliori librerie di computer vision 2 SimpleCV Sviluppato da Sight Machine, SimpleCV è un framework open source, una raccolta di librerie e software per creare applicazioni di visione artificiale. Rilasciato con licenza BSD e scritto in Python, consente di lavorare con le immagini o i flussi video di webcam, Kinect, FireWire e telecamere IP o telefoni cellulari. Questa libreria è altamente raccomandata per la prototipazione. Ha metodi semplici per programmare la manipolazione di immagini di base, nonché interessanti rilevamento futuro, apprendimento automatico, segmentazione e tracciamento. Ecco alcuni esempi in cui SimpleCV può essere utile: Rilevamento di un'auto Segmentazione dell'immagine e della morfologia Aritmetica delle immagini Migliori librerie di computer vision 3 TensorFlow Creato dal team di GoogleBrain, TensorFlow è stato rilasciato a novembre 2015 e mirava a facilitare il processo di creazione di modelli di intelligenza artificiale. Dispone di soluzioni personalizzate come TensorFlow.js, una libreria JavaScript per l'addestramento e la distribuzione di modelli nel browser e su Node.js, o TensorFlow Lite, una libreria leggera per la distribuzione di modelli su dispositivi mobili e incorporati. TensorFlow ha ora messo a punto un framework migliore, TensorFlow Hub . È una piattaforma facile da usare in cui puoi fare quanto segue: Riutilizza modelli addestrati come BERT e Faster R-CNN. Trova modelli pronti per la distribuzione per il tuo progetto di intelligenza artificiale. Ospita i tuoi modelli affinché altri possano utilizzarli. Migliori librerie di computer vision 4 Keras Keras è una libreria software open source basata su Python particolarmente utile per i principianti perché consente di creare rapidamente modelli di rete neurale e fornisce supporto back-end. Con oltre 400.000 utenti individuali, Keras ha un forte supporto della comunità. Alcuni casi d'uso di Keras includono: Segmentazione e classificazione delle immagini Riconoscimento della grafia Classificazione delle immagini 3D Raggruppamento di immagini semantiche Migliori librerie di computer vision 5 MATLAB MATLAB è una piattaforma di programmazione a pagamento che si adatta a varie applicazioni come machine learning, deep learning, elaborazione di immagini, video ed elaborazione del segnale. Viene fornito con una cassetta degli attrezzi per la visione artificiale che ha molteplici funzioni, app e algoritmi per aiutare con le attività relative alla visione artificiale, come ad esempio: Rilevamento e rilevamento di oggetti nei fotogrammi video Riconoscere gli oggetti Calibrazione delle telecamere Esecuzione della visione stereofonica Elaborazione di carichi puntuali 3D Migliori librerie di computer vision 6 PCL La Point Cloud Library (PCL) è una libreria open source di algoritmi per (come avrai intuito) attività di elaborazione della nuvola di punti e elaborazione della geometria 3D, come nella visione artificiale tridimensionale. La libreria è scritta in C++ e rilasciata sotto licenza BSD. È anche un software multipiattaforma che funziona su diversi sistemi operativi come Linux, Windows, macOS e Android. PCL contiene librerie per eseguire le seguenti operazioni: Filtraggio Stima delle caratteristiche Ricostruzione superficiale registrazione 3D Vestibilità modello Riconoscimento e segmentazione degli oggetti Migliori librerie di computer vision 7 Deep Face DeepFace si posiziona come la libreria open source di riconoscimento facciale più popolare per Python, quindi chi dobbiamo discutere? Include modelli di intelligenza artificiale per: Verifica facciale Riconoscimento facciale Analisi degli attributi facciali Analisi del volto in tempo reale Migliori librerie di computer vision 8 NVIDIA CUDA-X Quando è stato introdotto per la prima volta, CUDA era l'acronimo di Compute Unified Device Architecture, ma in seguito NVIDIA ha abbandonato l'uso comune dell'acronimo. NVIDIA CUDA-X è la versione aggiornata di CUDA. È una raccolta di librerie e strumenti con accelerazione GPU per iniziare con una nuova applicazione o accelerazione GPA. NVIDIA CUDA-X contiene: Librerie di matematica Algoritmi paralleli Librerie di immagini e video Librerie della comunicazione Apprendimento approfondito Migliori librerie di computer vision 9 NVIDIA Performance Primitives La libreria NVIDIA Performance Primitives (NPP) fornisce funzioni di elaborazione di immagini, video e segnale con accelerazione GPU che funzionano molto più velocemente rispetto alle implementazioni solo CPU. Questa libreria è progettata per ingegneri, scienziati e ricercatori che lavorano in una vasta gamma di campi come la visione artificiale, l'ispezione industriale, la robotica , l'imaging medico, le telecomunicazioni, l'apprendimento profondo e altro ancora. La libreria NPP include oltre 5000 primitive per l'elaborazione di immagini e segnali per eseguire le seguenti attività: Conversione del colore Compressione dell'immagine Filtraggio, soglia Manipolazione dell'immagine Migliori librerie di computer vision 10 BoofCV BoofCV è un software di visione artificiale open source progettato per soluzioni di visione artificiale in tempo reale. È rilasciato con una licenza Apache 2.0 che lo rende gratuito per scopi accademici e commerciali. Sebbene basato su Java, BoofCV supporta più linguaggi ed è adatto per operazioni di alto livello. BoofCV è organizzato in diversi pacchetti: Elaborazione delle immagini Visione geometrica Calibrazione Riconoscimento Visualizzazione Migliori librerie di computer vision 11 OpenVINO OpenVINO è l' acronimo di Open Visual Inference e Neural Network Optimization. Lo so anche tu da bravo italiano hai pensato ci fosse di mezzo il vino :) Ma OpenVino è un insieme di strumenti completi di visione artificiale per ottimizzare le applicazioni che emulano la visione umana. Per utilizzare OpenVINO, avrai bisogno di un modello pre-addestrato, dato che si tratta di un toolkit di ottimizzazione e distribuzione del modello. Sviluppato da Intel, è un framework multipiattaforma gratuito con modelli per diverse attività: Rilevamento di oggetti Riconoscimento facciale Colorazione Riconoscimento del movimento Migliori librerie di computer vision 12 PyTorch PyTorch è una libreria di machine learning open source per Python sviluppata principalmente dal gruppo di ricerca AI di Facebook. Utilizza il calcolo dinamico, che consente una maggiore flessibilità nella costruzione di architetture complesse. Pytorch utilizza concetti di base di Python come classi, strutture e cicli condizionali ed è anche compatibile con C++. PyTorch supporta sia i calcoli della CPU che della GPU ed è utile per: Modelli di stima delle immagini Segmentazione dell'immagine Classificazione delle immagini Migliori librerie di computer vision 13 Albumentations Albumentations è una libreria Python open source per l'aumento delle immagini. È gratuito con licenza MIT ed è ospitato su github . La libreria fa parte dell'ecosistema PyTorch ed è facilmente integrabile con framework di deep learning come PyTorch e Keras. Albumentations supporta un'ampia varietà di operazioni di trasformazione delle immagini per attività quali: Classificazione Segmentazione semantica Segmentazione dell'istanza Rilevamento di oggetti Stima della posa Migliori librerie di computer vision 12 CAFFE Mi dispiace ma anche quì noi italiani non siamo chiamati in causa, niente a che vedere il con caffè che conosciamo noi, CAFFE sta per Convolutional Architecture for Fast Feature Embedding. È un framework di visione artificiale e deep learning open source facile da usare sviluppato presso l'Università della California, a Berkeley. È scritto in C++, supporta più linguaggi e diverse architetture di deep learning relative alla classificazione e segmentazione delle immagini. Il caffè viene utilizzato in progetti di ricerca accademica, prototipi di avvio e persino applicazioni industriali su larga scala in ambito visivo, vocale e multimediale. CAFFE supporta: Segmentazione dell'immagine Classificazione delle immagini CNN RCNN LSTM Migliori librerie di computer vision 15 Detectron2 Detecrton2 è una libreria di rilevamento di oggetti modulare basata su PyTorch di Facebook AI Research (FAIR). È stato creato per soddisfare la domanda di intelligenza artificiale di Facebook e coprire i casi d'uso del rilevamento di oggetti su Facebook. Detectron2 è una versione raffinata di Detection; include tutti i modelli del Detectron originale, come Faster R-CNN, Mask R-CNN, RetinaNet e DensePose. Presenta anche diversi nuovi modelli, tra cui Cascade R-CNN, Panoptic FPN e TensorMask. Detecrton2 è perfetto per: Previsione di posa Segmentazione panottica Segmentazione sinaptica Rilevamento di oggetti Conclusioni A seconda delle tue competenze, del tuo progetto e del tuo budget, potresti aver bisogno di diversi programmi di visione artificiale, toolkit e librerie. Alcune delle librerie suggerite avranno bisogno di poche conoscenze preliminari di deep learning, ma potrebbero non essere gratuite. D'altra parte, ci sono un sacco di strumenti e risorse open source che sono disponibili per l'uso in qualsiasi momento.

  • Prevedere il traffico di un sito web utilizzando Python

    Le previsioni possono offrire un grande valore in SEO. Prevedere il traffico su un sito Web durante un determinato periodo è uno dei migliori casi d'uso della previsione di serie temporali. Se vuoi imparare a prevedere il traffico su un sito web, questo articolo è per te. In questo articolo, ti guiderò attraverso l'attività di previsione del traffico del sito Web utilizzando Python. Allora perché prevedere il traffico di un sito web utilizzando Python? Per rispondere a una domanda con una domanda, perché non dovresti farlo? Queste tecniche sono state a lungo utilizzate nella finanza per i prezzi delle azioni, ad esempio, e in altri campi. Perché la SEO dovrebbe essere diversa? Il traffico web è fondamentalmente il numero di sessioni in un dato intervallo di tempo, e varia molto rispetto a che ora del giorno è, che giorno della settimana è e così via, e quanto traffico web della piattaforma può resistere dipende dalle dimensioni dei server che supportano la piattaforma. Se il traffico è superiore a quello che i server possono gestire, il sito Web potrebbe mostrare questo errore 404, che è qualcosa che non vogliamo che accada. Farà andare via i visitatori. Previsione del traffico del sito Web utilizzando Python Il set di dati che sto utilizzando per la previsione del traffico del sito Web viene raccolto dai dati sul traffico giornaliero di intelligenzaartificialeitalia.net . Ricorda che puoi semplicemente scaricare i dati del tuo sito web andando su : https://search.google.com/search-console?hl=IT e cliccare in alto a destra su "ESPORTA": una volta fatto ciò vi troverete una cartella .zip contenente i seguenti file : A noi interesserà solo Date.csv Ora iniziamo con l'attività di previsione del traffico del sito Web importando le librerie Python necessarie e il set di dati: import pandas as pd import matplotlib.pyplot as plt import plotly.express as px import plotly.graph_objects as go from statsmodels.tsa.seasonal import seasonal_decompose from statsmodels.graphics.tsaplots import plot_pacf from statsmodels.tsa.arima_model import ARIMA import statsmodels.api as sm ​ data = pd.read_csv("Date.csv") print(data.head()) Output : Data Clic 0 2022-10-08 **** 1 2022-10-07 ***** 2 2022-10-06 ***** 3 2022-10-05 ***** 4 2022-10-04 ***** Il set di dati contiene due colonne, data e traffico. Prima di andare avanti, convertirò la colonna Date nel tipo di dati Datetime: data["Data"] = pd.to_datetime(data["Data"], format="%Y-%m-%d") print(data.info()) Output : RangeIndex: 486 entries, 0 to 485 Data columns (total 2 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 Data 486 non-null datetime64[ns] 1 Clic 486 non-null object dtypes: datetime64[ns](1), object(1) memory usage: 7.7+ KB None Inizialmente la colonna Datetime era un oggetto, quindi l'ho convertita in una colonna Datetime. Ora diamo un'occhiata al traffico giornaliero del sito web: plt.style.use('fivethirtyeight') plt.figure(figsize=(15, 10)) plt.plot(data["Data"], data["Clic"]) plt.title("traffico giornaliero intelligenzaartificialeitalia.net") plt.show() Output : I dati sul traffico del nostro sito Web sono stagionali perché il traffico sul sito Web aumenta durante i giorni feriali e diminuisce durante i fine settimana. È importante sapere se il set di dati è stagionale o meno mentre si lavora sul problema della previsione delle serie temporali. Di seguito è riportato come possiamo dare un'occhiata se il nostro set di dati è stazionario o stagionale: Userò il modello stagionale ARIMA (SARIMA) per prevedere il traffico sul sito web. Prima di utilizzare il modello SARIMA, è necessario trovare i valori p, d e q. Poiché i dati non sono stazionari, il valore di d è 1. Per trovare i valori di p e q, possiamo utilizzare i grafici di autocorrelazione e autocorrelazione parziale: pd.plotting.autocorrelation_plot(data["Clic"]) plot_pacf(data["Clic"], lags = 100) Output : Ora ecco come possiamo addestrare un modello SARIMA per il compito di previsione del traffico del sito web: p, d, q = 5, 1, 2 model=sm.tsa.statespace.SARIMAX(data['Clic'], order=(p, d, q), seasonal_order=(p, d, q, 12)) model=model.fit() print(model.summary()) Output : SARIMAX Results ========================================================================================== Dep. Variable: Clic No. Observations: 486 Model: SARIMAX(5, 1, 2)x(5, 1, 2, 16) Log Likelihood -2750.823 Date: Mon, 10 Oct 2022 AIC 5531.646 Time: 15:59:06 BIC 5593.905 Sample: 0 HQIC 5556.143 - 486 Covariance Type: opg ============================================================================== coef std err z P>|z| [0.025 0.975] ------------------------------------------------------------------------------ ar.L1 0.2189 0.078 2.795 0.005 0.065 0.372 ar.L2 -0.6501 0.065 -10.061 0.000 -0.777 -0.523 ar.L3 -0.3116 0.077 -4.047 0.000 -0.462 -0.161 ar.L4 -0.3608 0.058 -6.238 0.000 -0.474 -0.247 ar.L5 -0.4415 0.077 -5.768 0.000 -0.592 -0.292 ma.L1 -0.9748 0.073 -13.360 0.000 -1.118 -0.832 ma.L2 0.7034 0.066 10.614 0.000 0.574 0.833 ar.S.L16 -1.9088 1.075 -1.776 0.076 -4.015 0.198 ar.S.L32 -1.8938 1.655 -1.144 0.253 -5.138 1.350 ar.S.L48 -1.0791 1.073 -1.005 0.315 -3.183 1.024 ar.S.L64 -0.4224 0.562 -0.751 0.452 -1.525 0.680 ar.S.L80 -0.0785 0.226 -0.347 0.729 -0.522 0.365 ma.S.L16 1.1405 1.076 1.060 0.289 -0.969 3.250 ma.S.L32 0.6541 0.888 0.736 0.462 -1.087 2.395 sigma2 1.049e+04 936.123 11.206 0.000 8655.763 1.23e+04 =================================================================================== Ljung-Box (L1) (Q): 0.14 Jarque-Bera (JB): 21.38 Prob(Q): 0.71 Prob(JB): 0.00 Heteroskedasticity (H): 9.08 Skew: 0.07 Prob(H) (two-sided): 0.00 Kurtosis: 4.04 =================================================================================== Warnings: [1] Covariance matrix calculated using the outer product of gradients (complex-step). Ora prevediamo il traffico sul sito web per i prossimi 50 giorni: predictions = model.predict(len(data), len(data)+50) print(predictions) Ecco come possiamo vedere graficamente le previsioni: data["Clic"].plot(legend=True, label="Training Data", figsize=(15, 10)) predictions.plot(legend=True, label="Predictions") Output : Riepilogo su come Prevedere il traffico di un sito web utilizzando Python Quindi è così che puoi prevedere il traffico del sito Web per un determinato periodo. La previsione del traffico del sito Web è una delle migliori idee per progetti di data science che puoi menzionare nel tuo curriculum. Spero che questo articolo ti sia stato utile per imparare la previsione del traffico del sito web usando il linguaggio di programmazione Python. Sentiti libero di porre domande preziose nella sezione commenti qui sotto.

  • Progetti di machine learning per potenziare il curriculum

    Lavora su progetti di machine learning e deep learning per apprendere nuove competenze e aumentare le tue possibilità di essere assunto. C'è una forte domanda di posti di lavoro per ingegneri di apprendimento automatico, ma il processo di assunzione è difficile. Le aziende vogliono assumere professionisti con esperienza nella gestione di vari problemi di apprendimento automatico. Per un principiante o un neolaureato, ci sono solo alcuni modi per mostrare abilità ed esperienza. Possono ottenere uno stage, lavorare su progetti open source, fare volontariato in progetti di ONG o lavorare su progetti propri. In questo post, ci concentreremo su progetti di apprendimento automatico che miglioreranno il tuo curriculum e ti aiuteranno durante il processo di reclutamento. Lavorare da solo al progetto ti rende anche più bravo nella risoluzione dei problemi. 1° Progetti di machine learning per potenziare il tuo curriculum : Degradazione dell'mRNA utilizzando il modello di Deep Learning Il progetto di degradazione dell'mRNA è un complesso problema di regressione. La sfida in questo progetto è prevedere i tassi di degradazione che possono aiutare gli scienziati a progettare vaccini più stabili in futuro. Il progetto potrebbe eichiederti fino a 2 anni, ma imparerai molto sulla risoluzione dei problemi di regressione utilizzando la manipolazione di dati 3D complessi e modelli GRU di deep learning. Inoltre, prevediamo 5 target: reattività, deg_Mg_pH10, deg_Mg_50C, deg_pH10, deg_50C. 2° Progetti di machine learning per potenziare il tuo curriculum : Sottotitoli automatici delle immagini La didascalia automatica delle immagini è il progetto indispensabile nel tuo curriculum. Imparerai la visione artificiale, i modelli pre-addestrati dalla CNN e l'LSTM per l'elaborazione del linguaggio naturale. Alla fine, creerai l'applicazione su Streamlit o Gradio per mostrare i tuoi risultati. Il generatore di didascalie dell'immagine genererà un semplice testo che descrive l'immagine. Puoi trovare più progetti simili online e persino creare la tua architettura di deep learning per prevedere i sottotitoli in diverse lingue. Lo scopo principale del progetto portfolio è lavorare su un problema unico. Può essere la stessa architettura del modello ma un set di dati diverso. Lavorare con vari tipi di dati aumenterà le tue possibilità di essere assunto. 3° Progetti di machine learning per potenziare il tuo curriculum : Previsione del prezzo delle azioni tramite Deep Learning La previsione tramite Deep Learning è un'idea di progetto popolare e imparerai molte cose sull'analisi dei dati di serie temporali, sulla gestione dei dati, sulla pre-elaborazione e sulle reti neurali per problemi di serie temporali. La previsione delle serie temporali non è semplice. È necessario comprendere la stagionalità, le festività natalizie, le tendenze e le fluttuazioni giornaliere. La maggior parte delle volte, non hai nemmeno bisogno di reti neurali e una semplice regressione lineare può fornirti il ​​modello con le migliori prestazioni. Ma nel mercato azionario, dove il rischio è alto, anche una differenza dell'uno per cento significa milioni di dollari di profitto per l'azienda. 4° Progetti di machine learning per potenziare il tuo curriculum : Progetto di auto a guida autonoma Avere un progetto di apprendimento per rinforzo sul tuo curriculum ti dà un vantaggio durante il processo di assunzione. Il reclutatore presumerà che tu sia bravo a risolvere i problemi e che tu sia desideroso di espandere i tuoi confini per conoscere complesse attività di apprendimento automatico. Nel progetto Self-Driving car , addestrerai il modello Proximal Policy Optimization (PPO) nell'ambiente OpenAI Gym (CarRacing-v0). Prima di iniziare il progetto, è necessario apprendere i fondamenti dell'apprendimento per rinforzo in quanto è abbastanza diverso da altre attività di apprendimento automatico. Durante il progetto, sperimenterai vari tipi di modelli e metodologie per migliorare le prestazioni degli agenti. 5° Progetti di machine learning per potenziare il tuo curriculum : Bot di intelligenza artificiale conversazionale L'IA conversazionale è un progetto divertente. Imparerai a conoscere Hugging Face Transformers, Facebook Blender Bot, la gestione dei dati di conversazione e la creazione di interfacce chatbot (API o Web App). Grazie all'enorme libreria di set di dati e modelli pre-addestrati disponibili su Hugging Face, puoi sostanzialmente mettere a punto il modello su un nuovo set di dati. Può essere una conversazione tra Rick e Morty, il tuo personaggio cinematografico preferito o qualsiasi celebrità che ami. A parte questo, puoi migliorare il chatbot per il tuo caso d'uso specifico. In caso di richiesta medica. Il chatbot ha bisogno di conoscenze tecniche e comprende il sentimento del paziente. 6° Progetti di machine learning per potenziare il tuo curriculum : Riconoscimento vocale automatico Il riconoscimento vocale automatico è il mio progetto preferito in assoluto. Ho imparato tutto sui trasformatori, sulla gestione dei dati audio e sul miglioramento delle prestazioni del modello. Mi ci sono voluti 2 mesi per capire i fondamenti e altri due per creare l'architettura che funzionerà sul modello Wave2Vec2. Puoi migliorare le prestazioni del modello potenziando Wav2Vec2 con n-grammi e pre-elaborazione del testo. Ho anche pre-elaborato i dati audio per migliorare la qualità del suono. La parte divertente è che puoi mettere a punto il modello Wav2Vec2 su qualsiasi tipo di lingua. 7° Progetti di machine learning per potenziare il tuo curriculum : NY Taxi Trips: progetto di apprendimento automatico L'esperienza di un progetto di machine learning end-to-end è un must. Senza di essa, le tue possibilità di essere assunto sono piuttosto scarse. Imparerai: Analisi dei dati Gestione dati Costruzione di modelli e formazione Monitoraggio degli esperimenti Pipeline di orchestrazione e apprendimento automatico Distribuzione del modello Cloud computing Monitoraggio del modello Migliori pratiche di MLOps Lo scopo principale di questo progetto non è costruire il modello migliore o apprendere una nuova architettura di deep learning. L'obiettivo principale è familiarizzare con gli standard e le tecniche del settore per la creazione, la distribuzione e il monitoraggio di applicazioni di apprendimento automatico. Imparerai molto sulle operazioni di sviluppo e su come creare un sistema completamente automatizzato. Ti ricordiamo che se non sai da dove iniziare sul nostro portale troverai tutto, anche progetti open source pronti per essere modificati e inseriti nel tuo curriculum Conclusione sui migliori progetti di machine learning per potenziare il tuo curriculum Dopo aver lavorato su alcuni progetti, ti consiglio vivamente di creare un profilo su GitHub o qualsiasi sito di condivisione del codice in cui puoi condividere i risultati e la documentazione del tuo progetto. Lo scopo principale di lavorare su un progetto è aumentare le tue probabilità di essere assunto. Mostrare i progetti e presentarti di fronte a un potenziale reclutatore è un'abilità. Quindi, dopo aver lavorato a un progetto, inizia a promuoverlo sui social media, crea un'app web divertente utilizzando Gradio o Streamlit e scrivi un blog post coinvolgente ( puoi anche scriverci e pubblicarlo sul nostro blog gratuitamente ) . Non pensare a cosa diranno le persone. Continua a lavorare su un progetto e continua a condividere. E sono sicuro che in pochissimo tempo più reclutatori ti contatteranno !!

  • Come estrarre testo da un'immagine utilizzando Python e Keras-OCR

    Sebbene molte informazioni digitali siano disponibili per il consumo da parte delle aziende, i dipendenti devono comunque gestire fatture, volantini, brochure e moduli stampati in copie cartacee o immagini di testo salvate nei formati .jpg,.png o .pdf. La gestione manuale di tali dati in questi file è noiosa, dispendiosa in termini di tempo e soggetta a errori manuali. Tali file non possono essere modificati direttamente ed è necessario renderli prima modificabili o disporre di uno strumento in grado di leggere il contenuto dell'immagine ed estrarlo per un'ulteriore elaborazione. Tutti dobbiamo aver utilizzato strumenti online o offline per convertire le immagini in formati di testo modificabili per semplificare le cose. Ciò è possibile utilizzando l'OCR o il riconoscimento ottico dei caratteri. Cos’è l’OCR (Riconoscimento Ottico dei Caratteri)? Il riconoscimento ottico dei caratteri (OCR) è il processo che converte un'immagine di testo in un formato di testo leggibile dalla macchina. Ad esempio, se si esegue la scansione di un modulo o di una ricevuta, il computer salva la scansione come file immagine. Non sarà possibile utilizzare un editor di testo per modificare, cercare o contare le parole nel file immagine. Tuttavia, è possibile utilizzare l'OCR per convertire l'immagine in un documento di testo con i suoi contenuti archiviati come dati di testo. Perché l’OCR è importante? La maggior parte dei flussi di lavoro delle aziende riguarda la ricezione di informazioni da media stampati. Moduli cartacei, fatture, documenti legali scansionati e contratti stampati sono tutti parte dei processi aziendali. Questi ampi volumi cartacei richiedono tempo e spazio per essere archiviati e gestiti. Sebbene la gestione dei documenti paperless sia la strada da percorrere, la scansione dei documenti in immagini crea delle difficoltà. Il processo richiede un intervento manuale e può essere impegnativo e lento. Inoltre, la digitalizzazione di questi contenuti di documenti crea file di immagini con il testo nascosto al suo interno. Il testo nelle immagini non può essere elaborato dal software di elaborazione di testi allo stesso modo dei documenti di testo. La tecnologia OCR risolve il problema convertendo immagini di testo in dati di testo che possono essere analizzati da altri software aziendali. Si possono dunque utilizzare i dati per eseguire analisi dei dati, semplificare le operazioni, automatizzare i processi e migliorare la produttività. Come funziona l’OCR? Il meccanismo OCR o software OCR funziona con i seguenti passaggi: 1. Acquisizione dell’immagine Uno scanner legge i documenti e li converte in dati binari. Il software OCR analizza l’immagine scansionata e classifica le aree chiare come background e le aree scure come testo. 2. Pre-elaborazione Il software OCR prima pulisce l’immagine e rimuove gli errori per prepararla alla lettura. Ecco alcune delle tecniche di pulizia: Leggero raddrizzamento o ribaltamento del documento scansionato per sistemare i problemi di allineamento durante la scansione. Smacchiatura o rimozione di qualsiasi chiazza sull’immagine digitale o smussatura dei bordi delle immagini di testo. Eliminazione delle caselle e delle linee nell’immagine. Riconoscimento dello script per la tecnologia OCR multi-lingua 3. Riconoscimento testuale I due tipi principali di algoritmi OCR o processi software che un software OCR utilizza per il riconoscimento testuale sono detti pattern matching ed estrazione delle caratteristiche. 4. Pattern matching Il pattern matching funziona isolando un'immagine di carattere, chiamata glifo, e confrontandola con un glifo simile archiviato. Il riconoscimento del pattern funziona solo se il glifo archiviato ha un font e una dimensione simile al glifo di input. Questo metodo funziona bene con le immagini scansionate di documenti che sono stati digitati in un font conosciuto. 5. Estrazione delle caratteristiche L’estrazione delle caratteristiche scompone o decompone i glifi in caratteristiche come linee, cerchi chiusi, direzioni di linea e intersezioni di linea. Quindi utilizza queste caratteristiche per trovare l'abbinamento migliore o più vicino tra i vari glifi archiviati. 6. Post elaborazione Dopo l’analisi, il sistema converte i dati testuali estratti in un file computerizzato. Alcuni sistemi OCR possono creare file PDF annotati che includono sia la prima che la seconda versione del documento scansionato. Quali sono le tipologie di OCR? I data scientist classificano diverse tipologie di tecnologie OCR basati sugli usi e le applicazioni. Ecco alcuni esempi: Software di riconoscimento ottico dei caratteri (OCR) semplice Un meccanismo OCR semplice funziona archiviando diversi font e pattern di immagini testuali sotto forma di modelli. Il software OCR utilizza algoritmi pattern-matching per confrontare immagini testuali, carattere per carattere, con il proprio database interno. Se il sistema abbina il testo parola per parola, è chiamato riconoscimento ottico delle parole. Questa soluzione ha dei limiti perché esistono font e calligrafie infiniti e ogni singolo carattere non può essere acquisito e archiviato nel database. Software di riconoscimento dei caratteri intelligente I moderni sistemi OCR utilizzano la tecnologia di riconoscimento intelligente dei caratteri (ICR) per leggere i testi allo stesso modo degli esseri umani. Utilizzano metodi avanzati che addestrano le macchine a comportarsi come gli umani attraverso l’utilizzo di software di machine learning. Un sistema di machine learning chiamato rete neurale analizza i testi a più livelli, processando ripetutamente l’immagine. Cerca diversi attributi dell’immagine, come curve, linee, intersezioni, cerchi, e combina i risultati di tutti questi livelli diversi di analisi per ottenere il risultato finale. Sebbene l’ICR elabori solitamente le immagini un carattere alla volta, il processo è veloce e restituisce risultati in pochi secondi. Riconoscimento intelligente delle parole Il sistema di riconoscimento intelligente delle parole funziona con gli stessi principi dell’ICR, ma elabora immagini di intere parole invece di pre-elaborare le immagini in caratteri. Riconoscimento ottico dei segni Il riconoscimento ottico dei segni identifica loghi, filigrane e altri simboli di testo in un documento. Quali sono i vantaggi dell'OCR? Di seguito sono illustrati i vantaggi maggiori della tecnologia OCR: Testo ricercabile Le aziende possono convertire i propri documenti esistenti e nuovi in un archivio di conoscenze interamente ricercabile. Possono anche elaborare i database di testo automaticamente, utilizzando software di analisi dei dati per un'ulteriore elaborazione della conoscenza. Efficienza operativa Si può migliorare l’efficienza utilizzando il software OCR per integrare automaticamente flussi di lavoro di documenti e flussi di lavoro digitali all’interno della propria azienda. Ecco alcuni esempi di cosa può fare un software OCR: Scansionare moduli riempiti a mano per verifiche automatiche, revisioni, editing e analisi. Ciò fa risparmiare il tempo necessario per l’elaborazione manuale del documento e l’inserimento dei dati. Trovare i documenti richiesti ricercando rapidamente un termine nel database così da non dover scorrere manualmente attraverso i file di una finestra. Convertire appunti scritti a mano in testi editabili e documenti. Soluzioni di intelligenza artificiale L'OCR è spesso parte di altre soluzioni di intelligenza artificiale che le aziende possono implementare. Ad esempio, scansiona e legge targhe e cartelli stradali nelle auto a guida autonoma, individua i loghi dei brand nei post sui social media o identifica l’imballaggio dei prodotti nelle immagini pubblicitarie. Tale tecnologia di intelligenza artificiale aiuta le aziende a prendere decisioni di marketing e operative migliori in grado di ridurre le spese e ottimizzare l’esperienza cliente. Che cos'è Keras OCR? L'acronimo 'OCR' sta per Optical Character Recognition. Comunemente noto come "riconoscimento del testo", è una tecnica popolare per estrarre il testo dalle immagini. Un programma OCR è uno strumento che estrae e riutilizza i dati da documenti scansionati, immagini della fotocamera e pdf di sole immagini. Un sistema OCR utilizza una combinazione di hardware, come scanner ottici e software in grado di elaborare le immagini. Per l'estrazione del testo, gli strumenti OCR (librerie OCR) utilizzano diversi algoritmi macchina per il riconoscimento dei modelli per identificare la presenza e il layout del testo in un file immagine. Questi strumenti sono addestrati per identificare le forme di caratteri o numeri su un'immagine per riconoscere il testo nell'immagine. Successivamente questi possono ricostruire il testo estratto in un formato leggibile dalla macchina. Per questo motivo, il testo estratto può essere selezionato, modificato o incollato come testo normale. In un senso più semplice, l'OCR converte i dati digitali in formato immagine in documenti di elaborazione testi modificabili. Per fortuna, molti strumenti gratuiti e commerciali (offline e online) consentono alla tecnologia OCR di estrarre testo dalle immagini. Attualmente, gli strumenti OCR sono piuttosto avanzati grazie all'implementazione di tecniche come il riconoscimento intelligente dei caratteri (ICR), in grado di identificare lingue, stili di scrittura, ecc. In questo articolo discuteremo dell'OCR, dei vantaggi dell'OCR, del motivo per cui abbiamo bisogno dell'estrazione di testo dai documenti, delle librerie OCR disponibili in Python e di un esempio di estrazione di testo da un'immagine utilizzando la libreria Keras-OCR in Python. Perché abbiamo bisogno di estrarre il testo dalle immagini? Come accennato nella sezione precedente, il vantaggio principale della tecnologia OCR è che automatizza le attività di immissione dei dati manuali e dispendiose in termini di tempo. Questo perché utilizzando l'OCR possiamo creare documenti digitali che possono essere modificati e archiviati in base alle esigenze. Uno strumento OCR elabora l'immagine per identificare il testo e crea uno strato di testo nascosto dietro l'immagine. Questo livello aggiuntivo può essere facilmente letto da un computer, rendendo così l'immagine riconoscibile e ricercabile. Questo è fondamentale per le aziende in quanto hanno a che fare quotidianamente con media e contenuti. L'OCR offre anche i seguenti vantaggi: Elaborazione e conversione automatizzate e più rapide di documenti cartacei in formati digitali che accelerano i flussi di lavoro Risparmia tempo e riduce la portata degli errori manuali Elimina il requisito per l'immissione manuale dei dati La riduzione dell'immissione manuale dei dati indica una riduzione dei costi complessivi per l'azienda Risparmia carta e spazio di archiviazione poiché più dati possono essere convertiti in formato elettronico Un tipico esempio di domanda OCR può essere visto nell'elaborazione del modulo di richiesta di assicurazione medica. Con l'OCR è più facile confrontare il sinistro assicurativo con i dati dell'assicurato. I sistemi dotati di OCR possono segnalare eventuali anomalie nei dati ai team interessati e prevenire possibili frodi. Anche se l'OCR può estrarre facilmente il testo dalle immagini, a volte deve affrontare delle sfide. Ciò accade quando il testo è disponibile in immagini che rappresentano ambienti naturali, distorsioni geometriche, troppo rumore o sfondi disordinati e complessi e caratteri diversi da quelli normali. Tuttavia, la tecnologia OCR ha un potenziale sempre più forte nelle applicazioni di deep learning per creare strumenti per leggere le targhe dei veicoli, digitalizzare fatture o menu, scansionare carte d'identità, confrontare moduli di richiesta e così via. Librerie Python OCR disponibili Ora che abbiamo compreso l'OCR e il suo utilizzo, diamo un'occhiata ad alcune librerie Python open source comunemente utilizzate per il riconoscimento e l'estrazione del testo. Pytesseract – Chiamato anche "Python-tesseract", è uno strumento OCR per Python che funziona come wrapper per il motore Tesseract-OCR. Questa libreria può leggere tutti i tipi di immagine (.jpeg,.png, .gif, .bmp, .tiff, ecc.) e riconoscere il testo nelle immagini. Quindi, è comunemente visto nei casi d'uso per la conversione da immagine a testo OCR. EasyOCR – Un'altra libreria Python abbastanza popolare è EasyOCR. Come suggerisce il nome, la libreria è progettata per i principianti ed è facile da usare. È un modulo Python OCR generale che supporta più di 80 lingue e può leggere scene naturali e testo denso nei documenti. Una volta installato, gli utenti devono inizializzare solo due classi: una reader() e un'altra tramite la funzione readtext() per leggere il testo nell'immagine. Keras-OCR – Questa è una libreria open source altrettanto potente come le due librerie sopra menzionate. La libreria Keras-OCR fornisce un'API di alto livello e una pipeline di formazione end-to-end per creare nuovi modelli OCR. Nella prossima sezione, vedremo un tutorial passo-passo che utilizza Keras-OCR per estrarre il testo da più immagini. Puoi trovare la documentazione qui . Estrarre testo da un'immagine utilizzando Python e Keras-OCR In questa sezione, costruiremo una pipeline Keras-OCR per estrarre il testo da alcune immagini di esempio. Sto usando Google Colab per questo tutorial. Iniziamo installando la libreria keras-ocr (supporta Python >= 3.6 e TensorFlow >= 2.0.0) usando il seguente codice – !pip install -q keras-ocr Puoi anche utilizzare il comando seguente per installare il pacchetto dalla posizione principale. pip install git+https://github.com/faustomorales/keras-ocr.git#egg=keras-ocr Dobbiamo importare matplotlib e la libreria Keras-ocr appena installata per elaborare le immagini ed estrarre il testo da esse. import keras_ocr import matplotlib.pyplot as plt Impostiamo una pipeline con Keras-ocr. Il modello è un modello di estrazione di testo pre-addestrato caricato con pesi pre-addestrati per il rilevatore e il riconoscitore. pipeline = keras_ocr.pipeline.Pipeline() Useremo due immagini per testare le capacità della libreria Keras-ocr. Puoi provare lo stesso con qualsiasi altra immagine con testo a tua scelta. # Leggi le immagini dal percorso della cartella all'oggetto images = [ keras_ocr.tools.read(img) for img in ['/content/Image1.png', '/content/Image2.png',] ] Ecco le due immagini che abbiamo usato per questo tutorial sulla libreria Keras-ocr. Uno è un'immagine semplice con testo che utilizza un carattere in stile scrittura a mano e l'altro è un'immagine contenente testo. Ora, eseguiamo il riconoscimento della pipeline sulle immagini e facciamo previsioni sul testo in queste immagini. # genera previsioni di testo dalle immagini prediction_groups = pipeline.recognize(images) Possiamo tracciare le previsioni dal modello usando il codice seguente: # traccia le previsioni del testo fig, axs = plt.subplots(nrows=len(images), figsize=(10, 20)) for ax, image, predictions in zip(axs, images, prediction_groups): keras_ocr.tools.drawAnnotations(image=image, predictions=predictions, ax=ax) Otteniamo l'output previsto : La libreria Keras-OCR ha funzionato bene su entrambe le immagini. È stato in grado di identificare correttamente la posizione del testo ed estrarre le parole dalle immagini di input. Possiamo anche stampare il testo identificato dalle immagini usando il seguente codice predicted_image = prediction_groups[1] for text, box in predicted_image: print(text) Se necessario, il testo sopra riconosciuto dalle immagini sopra può essere convertito in formato .csv o .txt per un ulteriore utilizzo. Conclusione In questo tutorial abbiamo discusso dell'OCR, dei suoi vantaggi per le aziende per l'elaborazione delle immagini e delle diverse librerie OCR open source in Python. Successivamente, abbiamo imparato come estrarre il testo da più immagini utilizzando la libreria Keras-OCR. Ecco alcuni punti chiave dell'articolo L'OCR ha semplificato l'elaborazione di immagini con testo e la loro conversione in documenti modificabili. Può ridurre il lavoro di immissione manuale dei dati, accelerando i flussi di lavoro aziendali. Diversi strumenti open source e commerciali utilizzano la tecnologia OCR per elaborare immagini e documenti più velocemente. Keras-OCR è una libreria estremamente accurata per estrarre testo con poche righe di codice. È una buona opzione per i progetti di estrazione di testo di immagini open source. Questo è tutto per questo tutorial. Prova la libreria Keras-ocr per vedere con quanta precisione può identificare il testo nelle tue immagini.

  • Intelligenza artificiale spiegabile , come spiegare un modello al tuo capo

    Al giorno d'oggi, dove c'è un'enorme quantità di dati a nostra disposizione, l'utilizzo dei modelli ML per prendere decisioni è diventato fondamentale in settori come l'assistenza sanitaria, la finanza, il marketing, ecc. Molti modelli ML sono scatole nere poiché è difficile da comprendere appieno come funzionano dopo l'allenamento. Ciò rende difficile capire e spiegare il comportamento di un modello, ma è importante farlo per avere fiducia nella sua accuratezza. Quindi, come possiamo creare fiducia nelle previsioni di una scatola nera? Intelligenza artificiale spiegabile La soluzione a questo problema è l'IA spiegabile (XAI). L'IA spiegabile mira a sviluppare spiegazioni per modelli di intelligenza artificiale troppo sofisticati per la percezione umana. Ciò significa che è un sistema che comprende cosa sta facendo l'algoritmo di intelligenza artificiale e perché sta prendendo questa decisione. Tali informazioni possono migliorare le prestazioni dei modelli, aiutando gli ingegneri ML a risolvere i problemi e rendendo i sistemi di intelligenza artificiale più convincenti e di facile comprensione. In questo articolo, daremo un'occhiata a come utilizzare una libreria python OmniXAI per ottenere spiegazioni sulla decisione presa dal nostro modello. Prima però vediamo la definizione ufficiale di I.A. Spiegabile : Cos'è l'intelligenza artificiale spiegabile? L'intelligenza artificiale spiegabile è un insieme di processi e metodologuie che consente agli esseri umani di comprendere i risultati generati dai modelli di apprendimento automatico o reti neurali. L'IA spiegabile viene utilizzata per spiegare un modello di IA, il suo impatto previsto e le potenziali distorsioni. Aiuta a rafforzare l'accuratezza, l'equità, la trasparenza e i risultati del modello nel processo decisionale basato sull'intelligenza artificiale. L'intelligenza artificiale spiegabile è fondamentale per un'azienda per creare fiducia e sicurezza quando mette in produzione i modelli di intelligenza artificiale. La spiegabilità dell'IA aiuta anche un'organizzazione ad adottare un approccio responsabile allo sviluppo dell'IA. Man mano che l'IA diventa più avanzata, gli esseri umani sono sfidati a comprendere e ripercorrere come l'algoritmo è arrivato a un risultato. L'intero processo di calcolo viene trasformato in quella che viene comunemente definita una "scatola nera" impossibile da interpretare. Questi modelli di scatole nere vengono creati direttamente dai dati. E nemmeno gli ingegneri o i data scientist che creano l'algoritmo possono capire o spiegare cosa sta succedendo esattamente al loro interno o come l'algoritmo AI è arrivato a un risultato specifico. Ci sono molti vantaggi nel comprendere come un sistema abilitato all'intelligenza artificiale abbia portato a un output specifico. La spiegazione può aiutare gli sviluppatori a garantire che il sistema funzioni come previsto, che potrebbe essere necessario soddisfare gli standard normativi o potrebbe essere importante per consentire alle persone interessate da una decisione di contestare o modificare tale risultato. Quali sono i vantaggi dell'intelligenza artificiale spiegabile? Ci sono vantaggi aziendali significativi derivanti dalla creazione dell'interpretabilità nei sistemi di intelligenza artificiale. Oltre ad aiutare ad affrontare pressioni come la regolamentazione e ad adottare buone pratiche in materia di responsabilità ed etica, si possono ottenere vantaggi significativi dall'essere in prima linea e dall'investire nella spiegazione oggi. Maggiore è la fiducia nell'IA, più rapidamente e ampiamente può essere implementata. La tua azienda sarà anche una posizione più forte per promuovere l'innovazione e superare i tuoi concorrenti nello sviluppo e nell'adozione di capacità di nuova generazione. ‍ 1) Ridurre il costo degli errori I campi sensibili alle decisioni come Medicina, Finanza, Legale, ecc., sono fortemente influenzati in caso di previsioni errate. La supervisione dei risultati riduce l'impatto di risultati errati e identifica la causa principale che porta al miglioramento del modello sottostante. Di conseguenza cose comeScrittori di intelligenza artificialediventare più realistici da usare e di cui fidarsi nel tempo. ‍ 2) Ridurre l'impatto della distorsione del modello I modelli di IA hanno mostrato prove significative di bias. Gli esempi includono il pregiudizio di genere per le carte Apple, il pregiudizio razziale di veicoli autonomi, il pregiudizio di genere e il pregiudizio razziale di Amazon Rekognition. Un sistema spiegabile può ridurre l'impatto di tale causa di previsioni distorte spiegando i criteri decisionali. ‍ 3) Fiducia e conformità del codice Ogni inferenza, insieme alla sua spiegazione, tende ad aumentare la fiducia del sistema. Alcuni sistemi critici per l'utente, come i veicoli autonomi, la diagnosi medica, il settore finanziario, ecc., richiedono un'elevata sicurezza del codice da parte dell'utente per un utilizzo più ottimale. Per la conformità, la crescente pressione da parte degli organismi di regolamentazione significa che le aziende devono adattare e implementare XAI per conformarsi rapidamente alle autorità. ‍ 4) Prestazioni del modello Una delle chiavi per massimizzare le prestazioni è comprendere i potenziali punti deboli. Migliore è la comprensione di cosa stanno facendo i modelli e perché a volte falliscono, più facile sarà migliorarli. L'esplicabilità è un potente strumento per rilevare difetti nel modello e distorsioni nei dati che crea fiducia per tutti gli utenti. Può aiutare a verificare le previsioni, a migliorare i modelli e ad acquisire nuove informazioni sul problema in questione. Rilevare le distorsioni nel modello o nel set di dati è più facile quando si comprende cosa sta facendo il modello e perché arriva alle sue previsioni. ‍ 5) Processo decisionale informato L'uso principale delle applicazioni di apprendimento automatico nelle aziende è il processo decisionale automatizzato. Tuttavia, spesso vogliamo utilizzare i modelli principalmente per approfondimenti analitici. Ad esempio, potresti addestrare un modello per prevedere le vendite in negozio in una grande catena di vendita al dettaglio utilizzando dati su posizione, orari di apertura, condizioni meteorologiche, periodo dell'anno, prodotti trasportati, dimensioni del punto vendita ecc. Il modello ti consentirebbe di prevedere le vendite nei miei negozi in qualsiasi giorno dell'anno in una varietà di condizioni meteorologiche. Tuttavia, costruendo un modello spiegabile, è possibile vedere quali sono i principali driver di vendita e utilizzare queste informazioni per aumentare i ricavi. Insomma tutto ciò serve ad evitare anche situazione come lla foto qui sotto :) Il principio delle IA spiegabili Per ampliare l'idea di ciò che costituisce XAI, il National Institute of Standards (NIST), parte del Dipartimento del Commercio degli Stati Uniti, definisce quattro principi di intelligenza artificiale spiegabile : Un sistema di intelligenza artificiale dovrebbe fornire "prove, supporto o ragionamento per ogni output". Un sistema di intelligenza artificiale dovrebbe fornire spiegazioni comprensibili ai suoi utenti. Precisione della spiegazione. Una spiegazione dovrebbe riflettere accuratamente il processo utilizzato dal sistema di intelligenza artificiale per arrivare all'output. Limiti di conoscenza. Un sistema di intelligenza artificiale dovrebbe funzionare solo nelle condizioni per cui è stato progettato e non fornire output quando non ha sufficiente fiducia nel risultato. ‍ Come funziona l'IA spiegabile? Questi principi aiutano a definire l'output atteso da XAI, ma non offrono alcuna guida su come raggiungere tale output. Può essere utile suddividere XAI in tre categorie : Dati spiegabili. Quali dati sono stati utilizzati per addestrare un modello? Perché sono stati scelti quei dati? Come è stata valutata l'equità? È stato fatto qualche sforzo per rimuovere i pregiudizi? Previsioni spiegabili. Quali caratteristiche di un modello sono state attivate o utilizzate per raggiungere un determinato output? Algoritmi spiegabili. Quali sono i singoli livelli che compongono il modello e come portano all'output o alla previsione? Per le reti neurali in particolare, i dati spiegabili sono l'unica categoria che è facile da raggiungere, almeno in linea di principio. Gran parte della ricerca in corso si concentra su come ottenere previsioni e algoritmi spiegabili. Adesso hai tutte le nozioni di base per iniziare a mettere mano su del codice che ti mostrerà come puoi semplicemente spiegare il tuo modello al tuo capo Cos'è OmniXAI l'IA spiegabile in Python? OmniXAI è una libreria che semplifica l'IA spiegabile per gli utenti che necessitano di spiegazioni in molte fasi di ML, tra cui l'analisi dei dati, l'estrazione di funzionalità, la creazione di modelli e la valutazione del modello. Impiegando tecniche come l'analisi del chi quadrato e il calcolo reciproco delle informazioni per esaminare le correlazioni tra le caratteristiche di input e le variabili target, aiuta nella selezione delle caratteristiche identificando le caratteristiche chiave. Utilizzando l'analizzatore di dati che offre, possiamo semplicemente fare un'analisi di correlazione e trovare gli squilibri di classe. OmniXAI può essere utilizzato su dati tabulari, immagine, NLP e serie temporali. OmniXAI fornisce diverse spiegazioni per fornire agli utenti una comprensione dettagliata del comportamento di un modello. Queste spiegazioni possono essere facilmente visualizzate con l'aiuto di questa libreria. Crea grafici interattivi utilizzando Plotly e, con poche righe di codice, possiamo creare una dashboard che semplifica il confronto simultaneo di più spiegazioni. In una sezione successiva di questo articolo, creeremo una di queste dashboard per descrivere i risultati di un modello. Le spiegazioni locali e globali sono principalmente di due tipi. La spiegazione locale spiega il ragionamento alla base di una certa decisione. Questo tipo di spiegazione viene prodotto utilizzando tecniche come LIME e SHAP. La spiegazione globale esamina il comportamento generale del modello. Per generare spiegazioni globali, è possibile utilizzare grafici di dipendenza parziale. Questa libreria utilizza diverse tecniche indipendenti dal modello, tra cui LIME, SHAP e L2X. Questi metodi possono descrivere efficacemente le decisioni prese dal modello senza conoscere le complessità del modello. Inoltre, genera spiegazioni per un determinato modello utilizzando l'approccio specifico del modello come Grad-CAM . Ora che hai un idea di cosa è l' IA spiegabile e una panoramica di OmniXAI, usiamolo per spiegare le decisioni prese da un classificatore che formeremo. Questo è solo un semplice esempio ma ricorda che usare queste librerie è FORTEMENTE CONSIGLIATO se il tuo capo o manager pensa che excel sia uno strumento ottimo per la data science ! Intelligenza artificiale spiegabile con Python Utilizzeremo il set di dati di previsione dell'ictus per creare un modello di classificazione. Sulla base delle caratteristiche di input, tra cui sesso, età, diverse malattie e stato di fumatore, questo set di dati viene utilizzato per determinare se è probabile che un paziente abbia un ictus. Non possiamo fare affidamento sui giudizi espressi da una “scatola nera” nel settore sanitario; ci deve essere una giustificazione per la scelta. A tal fine, utilizzeremo OmniXAI per analizzare il set di dati e comprendere il comportamento del modello. Il set di dati lo puoi scaricare cliccando qui e seguendo le indicazioni nella foto : Nella barra di ricerca digita : "healthcare-dataset-stroke-data.csv" Codice Python per implementare l' IA spiegabile import pandas as pd from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score, classification_report,confusion_matrix from sklearn.preprocessing import LabelEncoder, StandardScaler from sklearn.linear_model import LogisticRegression from sklearn.ensemble import RandomForestClassifier from sklearn.pipeline import Pipeline from imblearn.over_sampling import SMOTE from omnixai.data.tabular import Tabular from omnixai.explainers.data import DataAnalyzer from omnixai.visualization.dashboard import Dashboard from omnixai.preprocessing.tabular import TabularTransform from omnixai.explainers.tabular import TabularExplainer from omnixai.explainers.prediction import PredictionAnalyzer import seaborn as sns import matplotlib.pyplot as plt #carichiamo il dataset df = pd.read_csv("healthcare-dataset-stroke-data.csv") df = df.drop('id', axis=1) df = df.dropna() print(df.head(10)) che produrrà : Analisi dei dati utilizzando OmniXAI Creeremo un set di dati tabulare per utilizzare un dataframe Pandas con OmniXAI. È necessario specificare il dataframe, i nomi delle caratteristiche categoriali e il nome della colonna di destinazione per creare un'istanza Tabular data un dataframe pandas. feature_names = df.columns categorical_columns = ['gender','ever_married','work_type','Residence_type','smoking_status'] tabular_data = Tabular( df, feature_columns=feature_names, categorical_columns=categorical_columns, target_column='stroke' ) Ora creeremo un esplicatore DataAnalyzer per analizzare i dati. explainer = DataAnalyzer( explainers=["correlation", "imbalance#0", "imbalance#1", "mutual", "chi2"], mode="classification", data=tabular_data ) explanations = explainer.explain_global( params={"imbalance#0": {"features": ["gender"]}, "imbalance#1": {"features": ["ever_married"]} } ) dashboard = Dashboard(global_explanations=explanations) dashboard.show() #Dash is running on http://127.0.0.1:8050/ Il risultato di queste righe di codice sarà il seguente L'analisi della correlazione delle caratteristiche, i grafici dello squilibrio delle caratteristiche per le caratteristiche di genere e mai_sposati e un grafico dell'importanza delle caratteristiche sono tutti visualizzati in questa dashboard. Formazione del modello per implementare l' IA spiegabile Ora applicheremo TabularTransform ai nostri dati, trasformando un'istanza tabulare in un array NumPy e trasformando le caratteristiche categoriali in una codifica one-hot. Successivamente, utilizzeremo SMOTE per affrontare il problema dello squilibrio di classe sovracampionando i dati della classe 1. Quindi, utilizzando un modello StandardScaler e un modello LogisticRegression, adatteremo i nostri dati in una pipeline. transformer = TabularTransform().fit(tabular_data) x = transformer.transform(tabular_data) train, test, train_labels, test_labels = train_test_split(x[:, :-1], x[:, -1], train_size=0.80) oversample = SMOTE() X_train_balanced, y_train_balanced = oversample.fit_resample(train, train_labels) model = Pipeline(steps = [('scale',StandardScaler()),('lr',LogisticRegression())]) model.fit(X_train_balanced, y_train_balanced) print('Test accuracy: {}'.format(accuracy_score(test_labels, model.predict(test)))) print(classification_report(test_labels,model.predict(test))) print(confusion_matrix(test_labels,model.predict(test))) train_data = transformer.invert(X_train_balanced) test_data = transformer.invert(test) L'output sarà simile a questo : Dopo che il nostro modello è stato addestrato, possiamo procedere ulteriormente per creare spiegazioni per il suo comportamento. Spieghiamo il modello allenato al nostro capo : Creazione di spiegazioni locali e globali Ora definiremo un TabularExplainer con i parametri forniti nel codice. Il parametro "esplicatori menziona i nomi degli esplicatori da utilizzare". La preelaborazione trasforma i dati grezzi in input del modello. Le spiegazioni locali sono generate da LIME, SHAP e MACE, mentre PDP genera spiegazioni globali. Per calcolare le metriche delle prestazioni per questo modello di classificatore, definiremo un PredictionAnalyzer fornendogli i dati di test. preprocess = lambda z: transformer.transform(z) explainers = TabularExplainer( explainers=["lime", "shap", "mace", "pdp"], mode="classification", data=train_data, model=model, preprocess=preprocess, params={ "lime": {"kernel_width": 4}, "shap": {"nsamples": 200}, } ) test_instances = test_data[10:15] local_explanations = explainers.explain(X=test_instances) global_explanations = explainers.explain_global( params={"pdp": {"features": ['age', 'hypertension', 'heart_disease', 'ever_married', 'bmi','work_type']}} ) analyzer = PredictionAnalyzer( mode="classification", test_data=test_data, test_targets=test_labels, model=model, preprocess=preprocess ) prediction_explanations = analyzer.explain() Creazione di un dashboard finale Dopo aver creato le spiegazioni, definiremo i parametri della dashboard, quindi verrà creata l'app Plotly dash. Possiamo eseguire questa dashboard copiando l'indirizzo locale nella barra degli indirizzi del nostro browser. dashboard = Dashboard( instances=test_instances, local_explanations=local_explanations, global_explanations=global_explanations, prediction_explanations=prediction_explanations, class_names=class_names ) dashboard.show() #Dash is running on http://127.0.0.1:8050/ Osservando i grafici LIME e SHAP per la spiegazione locale, possiamo identificare quali caratteristiche dell'input dato sono state più cruciali per le decisioni del modello. Come possiamo vedere, l'età ha avuto un impatto significativo sulla decisione del modello in questo caso. MACE mostra situazioni ipotetiche, come ad esempio l'individuo non avrebbe subito un ictus se avesse 58 anni invece di 78. I grafici delle dipendenze parziali (PDP) che illustrano la relazione tra la variabile di destinazione e le caratteristiche di input vengono visualizzati nella spiegazione globale. Come osservato nel grafico dell'età, all'aumentare dell'età, il valore sull'asse delle y tende ad aumentare nel caso della classe 1 e diminuire nel caso della classe 0. Indica che l'età più avanzata di un individuo aumenta il rischio di subire un ictus . Allo stesso modo, se una persona soffre di ipertensione o malattie cardiache, è più incline a subire un ictus. Conclusione intelligenza artificiale spiegabile Anche se le decisioni prese dai modelli di intelligenza artificiale possono avere effetti significativi, la mancanza di spiegabilità dei modelli mina la fiducia delle persone nei sistemi di intelligenza artificiale e ne impedisce l'adozione diffusa. In questo articolo, abbiamo visto l'uso di uno strumento XAI, "OmniXAI", per aiutare a comprendere la decisione presa da un modello. Alcuni dei punti chiave da asporto sono: Abbiamo visto cosa è l' IA spiegabile Abbiamo visto come funziona l' IA spiegabile Abbiamo visto l'uso di OmniXAI per elaborare i dati tabulari. Abbiamo creato una dashboard per analizzare i dati. Infine, abbiamo utilizzato spiegazioni locali e globali per spiegare il comportamento del modello e creato un dashboard per visualizzare i risultati.

  • Addestrare e Monitorare più modelli di machine learning insieme

    Quando si lavora a un progetto di machine learning si possono incontrare tantissimi problemi. Soprattutto quando dobbiamo andare a selezionare il modello... Però i data scientist più navigati sanno che può capitare che un modello che inizialmente sembrava preformare meglio degli altri nel lungo periodo può essere battuto da un altro. Ma come fare ad allenare e monitorare più di un modello insieme ? Oggi parleremo proprio di questo. Vedremo praticamente ( con il codice ) come allenare e monitorare le prestazioni di due modelli allenati su uno stesso dataset ! E ti mostrerò quanto è semplice. introduzione , perchè Addestrare e Monitorare più modelli di machine learning insieme ? È possibile che ogni modello abbia caratteristiche o parametri unici. La valutazione e lo sfruttamento di questi modelli senza adeguati strumenti di monitoraggio delle prestazioni e di controllo della versione del modello diventa complicato. Anche condividere questi modelli con il resto del team per i test è impegnativo. Se abbiamo uno strumento che possiamo usare per tenere traccia dei nostri modelli, diventa più conveniente. Una piattaforma che semplifica la collaborazione tra i team per lo sviluppo di pipeline di machine learning automatizzate efficaci. In questo articolo impareremo sull'apprendimento automatico collaborativo e su come addestrare, tracciare e condividere i nostri modelli di apprendimento automatico utilizzando una piattaforma chiamata "Layer" Procedure consigliate da ricordare mentre si lavora su un progetto ML in un team. Archiviazione centralizzata dei dati: è necessario un archivio centralizzato dei dati a cui un membro del team possa accedere per salvare e utilizzare il set di dati per il progetto. Per risparmiare tempo nell'esecuzione dell'intero processo di pulizia per gli altri membri del team, tutti i dati puliti e preelaborati devono essere salvati in un'unica posizione. Convalida dei dati: le proprietà statistiche dei dati possono variare nel tempo man mano che vengono aggiunti sempre più campioni. Questo è fondamentale poiché può influire sulla precisione del modello nel tempo. Accessibilità del modello: il modello addestrato deve essere archiviato da qualche parte per essere caricato durante la creazione di previsioni. Dovrebbe essere utile per altri membri del team da utilizzare per la sperimentazione nei loro progetti. Monitoraggio del modello: come menzionato nella convalida dei dati, le proprietà dei dati possono cambiare nel tempo, influenzando l'accuratezza del modello. Quindi le prestazioni del modello dovrebbero essere monitorate continuamente per rilevare il degrado delle sue prestazioni. Versioning del modello: durante l'addestramento del modello, è possibile utilizzare funzionalità, modelli o iperparametri diversi per creare modelli diversi. Diventa quindi fondamentale tracciare questi modelli per misurarne le prestazioni e migliorarne l'accessibilità a chi li utilizza. Cos'è Layer e perchè ci aiuta a Addestrare e Monitorare più modelli di machine learning insieme? Layer è una piattaforma per la creazione di pipeline di machine learning a livello di produzione. Dopo aver caricato i nostri dati e il nostro modello su questa piattaforma, possiamo facilmente addestrare e riqualificare i nostri modelli. Supporta perfettamente il controllo della versione del modello e il monitoraggio delle prestazioni. Possiamo condividere dati e modelli, rendendola una semplice piattaforma di machine learning collaborativa. I membri del team possono rivedere e valutare i cicli di sviluppo del modello dei loro colleghi utilizzando il controllo delle versioni del modello. A causa della mancanza di coordinamento, i team spesso trascorrono del tempo a svolgere lavori ridondanti. Layer funziona come un repository centrale per dati e modelli, consentendo ai membri del team di accedere ai dati utilizzati nel processo senza doverli preelaborare nuovamente, riducendo gli sforzi ripetitivi. Il controllo automatico della versione consente di tornare rapidamente alle versioni precedenti del modello e ricreare i risultati acquisiti in precedenza. La cosa meravigliosa di Layer è che non dobbiamo modificare i nostri attuali metodi o piattaforme di programmazione. Possiamo usare le capacità di Layer con poche righe di codice. Addestrare e Monitorare più modelli di machine learning insieme con Python e Layer Utilizzeremo il set di dati sulla qualità dell'acqua per addestrare un modello di classificazione per sondare la potabilità dell'acqua utilizzando fattori come pH, durezza e altre proprietà chimiche nel nostro progetto di apprendimento automatico. per scaricare il set di dati clicca qui o l'immagine e segui i passaggi nella foto quì sotto Durante la riqualificazione del nostro modello, cambieremo alcuni parametri. Nella maggior parte dei casi, le versioni precedenti del modello vengono perse durante questa procedura. Tuttavia, in questo caso, utilizzeremo la piattaforma Layer per facilitare il controllo della versione del modello e confrontare le prestazioni di diverse versioni del modello. Per installare Layer, digita questo codice sul terminale !pip install -U layer -q Registrati e accedi è GRATIS Layer richiede prima la registrazione e l'accesso. Quando si esegue il codice seguente, verrà visualizzato un messaggio per incollare una chiave e verrà visualizzato anche il collegamento alla chiave. Copia e incolla l'URL nel tuo browser, quindi accedi al tuo account Layer per trovare la chiave; copia questa chiave e inseriscila nel prompt. import layer layer.login() Ora crea un nuovo file e copia e incolla il codice ( tutto in un unico file, oppure se utilizzi Jupyter o Coolab copia il codice diviso nelle varie sezioni ) seguendo la spiegazione. Importa le librerie necessarie from layer.decorators import dataset, model,resources from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score import pandas as pd import numpy as np import layer from layer import Dataset Inizializza il tuo progetto di primo livello È ora di iniziare a lavorare sul tuo primo progetto Layer. L'intero progetto può essere trovato su app.layer.ai layer.init("new_project") Carica il set di dati Per caricare i dati nel progetto Layer, utilizzeremo il decoratore @dataset e specificheremo il nome del set di dati e il percorso ad esso utilizzando il decoratore @resources. @dataset("water_dataset") @resources(path="./") def create_dataset(): data = pd.read_csv('water_potability.csv') return data Esegui questo per creare il set di dati nel tuo progetto di livello layer.run([create_dataset]) Puoi navigare all'interno del tuo progetto per accedere al set di dati. Difiniamo e Alleniamo i nostri modelli Alla nostra funzione di training train(), aggiungeremo il decoratore @model per registrarlo con Layer. Per fare ciò, la funzione deve restituire l'oggetto modello. La funzione layer.log() registra tutti i parametri definiti nella dashboard Layer. @model(name='classification_model',dependencies=[Dataset('water_dataset')]) def train(): import seaborn as sns import matplotlib.pyplot as plt from sklearn.metrics import accuracy_score from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay from sklearn.metrics import average_precision_score, roc_auc_score, roc_curve,precision_recall_curve parameters = { "test_size": 0.20, "random_state": 20, "n_estimators": 150 } layer.log(parameters) # load the dataset from layer df = layer.get_dataset("water_dataset").to_pandas() df.dropna(inplace=True) features_x = df.drop(["Potability"], axis=1) target_y = df["Potability"] X_train, X_test, y_train, y_test = train_test_split(features_x, target_y, test_size=parameters["test_size"], random_state=parameters["random_state"]) random_forest = RandomForestClassifier(n_estimators=parameters["n_estimators"]) random_forest.fit(X_train, y_train) y_pred = random_forest.predict(X_test) layer.log({"accuracy":accuracy_score(y_test, y_pred)}) cm = confusion_matrix(y_test, y_pred, labels=random_forest.classes_) disp = ConfusionMatrixDisplay(confusion_matrix=cm, display_labels=random_forest.classes_) disp.plot() layer.log({"Confusion metrics" : plt.gcf()}) probs = random_forest.predict(X_test) # Calculate ROC AUC auc = roc_auc_score(y_test, probs) layer.log({"AUC":f'{auc:.4f}'}) sample_preds = X_test sample_preds["predicted"] = y_pred layer.log({"Sample predictions":sample_preds.head(100)}) return random_forest Per registrare il parametro e caricare il modello addestrato, passare la funzione di training a Layer useremo questa linea di codice. layer.run([train]) Confronto dei risultati dei modelli allenati Apri il progetto Layer lì vedrai i modelli caricati e i set di dati. Tutti i parametri e i grafici che hai registrato saranno lì, insieme alla versione del modello. Ogni volta che si esegue la funzione di training, viene caricata una nuova versione del modello insieme a tutti i parametri registrati. In questo modo è facile confrontare le prestazioni di tutti i modelli e utilizzare la versione precedente. Possiamo confrontare i parametri e i risultati registrati come la dimensione dei dati del test, gli iperparametri, l'accuratezza e il punteggio ROC-AUC. È inoltre possibile visualizzare e confrontare i grafici registrati di diverse versioni del modello. Di seguito vengono mostrate le previsioni di esempio. Scaricare i modelli da Layer Dopo aver formato e caricato il modello sulla piattaforma Layer, è possibile caricare la versione desiderata del modello per fare previsioni. Con l'aiuto di questo codice, possiamo ottenere la versione del modello necessaria dall'app di livello. import layer model = layer.get_model("IAItlia/new_project/models/classification_model:2.1").get_train() Questo oggetto modello può essere un modello normale per eseguire previsioni basate sui dati di input. Conclusione In questo articolo, abbiamo appreso i numerosi problemi che i team possono incontrare nel settore dell'apprendimento automatico durante la collaborazione e la gestione delle versioni del modello. Successivamente, abbiamo visto alcune delle migliori pratiche per lavorare su progetti ML in gruppo. In questo post, abbiamo progettato un progetto Layer che considera tutte le sfide che i team devono affrontare in un progetto ML. Premesse importanti da questo articolo: Abbiamo imparato a utilizzare Layer, una piattaforma ML collaborativa. Abbiamo utilizzato il controllo automatico della versione del modello con l'aiuto di questa piattaforma. Registrando i parametri del modello e i risultati, potremmo confrontare i risultati di diverse versioni del modello.

  • BrainControl lancia SMART, per una riabilitazione e una diagnostica personalizzata

    Il primo software in grado di fornire strumenti di analisi e diagnosi periodiche, nel percorso di assistenza e riabilitazione anche di pazienti privi di movimenti volontari del corpo. BrainControl, marchio senese di dispositivi medici basati sull’Intelligenza Artificiale, amplia la propria gamma di software e di dispositivi con SMART, la soluzione che permette a medici e caregivers di creare un quadro clinico personalizzato per ogni singolo paziente. Il software si concretizza in una piattaforma user-friendly con test di valutazione del paziente ed esercizi riabilitativi al fine di potenziare e/o preservare le capacità dello stesso. Nello specifico, sia per i test di valutazione che per gli esercizi di riabilitazione, le sfere che vengono interessate sono quella cognitiva/funzionale e quella relativa alle abilità visive. I test e gli esercizidisponibili sulla piattaforma sono predefiniti ma c’è la possibilità di creare ulteriori prove personalizzateper il singolo paziente, definendo specifici percorsi riabilitativi o di potenziamento. In particolare, i test cognitivi funzionali e gli esercizi riabilitativi possono esser effettuati sia in presenza (ad esempio in uno studio medico) che da remoto, mentre i test per la valutazione dell’abilità visiva potranno essere fatti solo in ambiente clinico. BrainControl SMART può essere utilizzato da qualsiasi tipo di paziente, incluso pazienti LIS/CLIS: è infatti possibile interagire attraverso metodi di interazione più comuni come mouse, tastiera ed emulatore di mouse ma anche con metodi più avanzati come puntatore oculare e BCI. Al termine di ogni test/esercizio,il sistema produrrà un report che darà al medico/caregiver la possibilità di definire una diagnosi clinica basata su una valutazione oggettiva. Ripetendo i test/esercizi periodicamente sarà poi possibile creare un report cumulativo in cui sono evidenziate le diverse tappe dell’iter seguito per ogni singolo paziente. BrainControl SMART si configura come un mezzo realmente utile per strutturare un rapporto tra paziente e medico/caregiver basato su un confronto periodico e una dinamica di test/valutazione in grado di innescare un meccanismo virtuoso, che stimola il percorso riabilitativo della persona. Lato caregiver/medico, questo software fornisce una serie di strumenti in grado di pianificare le attività e ottimizzare i tempi: dalla creazione di un database paziente e relativagestione, alla possibilità di assegnare esercizi al singolo paziente, fino al monitoraggio dei risultatie le relative statistiche. Il risultato è la creazione di un rapporto medico/paziente coinvolgente e unico. BrainControl è un marchio di proprietà di LiquidWeb Srl, azienda nata a Siena nel 2010 e operativa nel settore HCI (Human Computer Interface). Il progetto BrainControl riceve dal 2020 fondi dall’Unione Europea grazie al Programma per la Ricerca e l’Innovazione Horizon2020. Sempre nel 2020 ha vinto il titolo di migliore Start Up all’interno della categoria Med Tech di B Heroes, programma per l’innovazione e la promozione di nuovi business grazie a mentorship, investimenti, networking e comunicazione. Un’azienda giovane e dinamica, orgogliosa del lavoro che porta avanti e profondamente motivata dalla convinzione di poter realmente aiutare le persone a migliorare la qualità della loro vita. Ufficio Stampa: DuerreComunicazione di Roberta Riva Cell.: 3468548236 | Email: roberta.riva@duerrecomunicazione.com

  • Tesla bot , il primo umaniode con intelligenza artificiale generale costerà 20.000$

    Il CEO di Tesla Elon Musk ha rivelato un prototipo di un robot umanoide "Optimus" che condivide alcuni software e sensori di intelligenza artificiale con le funzionalità di assistenza alla guida del pilota automatico delle sue auto. Prima di continuare la lettura ti lasciamo al video della presentazione : Il primo prototipo Tesla bot Secondo Musk, questo prototipo può fare più di quello che è stato mostrato dal vivo, ma la prima volta che ha operato senza un legame è stata stasera sul palco. Musk ha previsto che potrebbe raggiungere un prezzo di probabilmente meno di $ 20.000 e più tardi, in una sessione di domande e risposte, ha spiegato che Tesla è molto brava a costruire l'IA e gli attuatori necessari per la robotica sulla base dell'esperienza di produzione di unità motrici per auto elettriche. Musk ha affermato che ciò lo aiuterebbe a mettere in produzione robot capaci e iniziare testandoli all'interno delle sue fabbriche. Ha affermato che la differenza tra il design di Tesla e altre "dimostrazioni di robot umanoidi molto impressionanti" è che l'Optimus di Tesla è fatto per la produzione di massa in "milioni" di unità e per essere molto capace. Mentre ha detto ciò, un team di lavoratori ha spostato un prototipo non deambulante dietro di lui. Il prototipo presentato inizialmente è un Optimus decostruito che Tesla chiama "Bumble C" che camminava in avanti e faceva una mossa di danza . Musk ha ammesso che volevano tenerlo al sicuro, non fare troppe mosse sul palco e farlo "cadere a terra". (Meglio evitare un altro incidente come con il Cybertruck, se possibile.) Successivamente, l'azienda ha mostrato alcuni video clip del robot che svolgeva altre attività come raccogliere scatole. Quindi il team di Tesla ha tirato fuori un altro prototipo che mostrava una versione molto vicina alla produzione di Optimus con il suo corpo completamente assemblato ma non completamente funzionante: era tenuto in piedi su un supporto e salutato il pubblico, mostrando la gamma di movimento del suo polso e mano. Il futuro del Tesla Bot Hanno rivelato che il robot iniziale presentato è stato sviluppato negli ultimi sei mesi. Discutendo gli ostacoli che devono affrontare per passare dal prototipo a un progetto funzionante, gli ingegneri sperano di eliminare ulteriori ostacoli alla progettazione "entro i prossimi mesi... o anni". Specifiche tecniche del prototipo Tesla Bot Contiene una batteria da 2,3 kWh, funziona con un SoC Tesla e dispone di connettività Wi-Fi e LTE. Le dimostrazioni incentrate sull'affrontare le articolazioni del robot, come le mani, i polsi o le ginocchia, hanno mostrato come elaboravano i dati per ciascuna articolazione, quindi hanno cercato le aree comuni in ogni progetto per trovare un metodo utilizzando solo sei diversi attuatori. Le mani simili a quelle umane sono un design biologicamente ispirato che secondo gli ingegneri le renderà più adatte a raccogliere oggetti di varie forme e dimensioni, tenere una borsa da 20 punti e avere una "presa di precisione" su piccole parti. Il software Autopilot di Tesla è stato spostato dalle sue auto al bot e riorganizzato per funzionare nel nuovo corpo e ambiente. "Sarà una trasformazione fondamentale per la civiltà come la conosciamo" ha detto Musk. Continua a dire che Optimus ha il potenziale di "due ordini di grandezza" di potenziale miglioramento della produzione economica. Musk ha annunciato per la prima volta il "Tesla Bot" all'AI Day dell'anno scorso, promettendo che sarebbe stato "amichevole" e potenzialmente avrebbe rivoluzionato la catena di montaggio e l'attività di produzione dell'azienda. Musk aveva avvertito i suoi fan di non aspettarsi che il prototipo assomigli al rendering lucido in bianco e nero mostrato per la prima volta all'evento dell'anno scorso. Quello nell'immagine qui sotto: Ma non è mancato il clamore, con Musk che ha definito il robot "lo sviluppo di prodotto più importante che stiamo facendo quest'anno" e prevedendo che avrà il potenziale per essere più significativo del settore dei veicoli nel tempo. Le applicazioni future potrebbero includere la cucina, il giardinaggio o persino i partner sessuali ; Musk ha affermato che la produzione potrebbe iniziare il prossimo anno. Nei giorni che hanno preceduto l'AI Day, gli esperti di robotica hanno messo in guardia dal comprare troppo nelle affermazioni di Musk. Hanno notato che altre aziende sono molto più avanti nello sviluppo di robot in grado di camminare, correre e persino saltare, ma nessuna afferma di essere vicina alla sostituzione del lavoro umano. La storia di Tesla è disseminata di idee fantasiose che non hanno mai avuto successo, come una rete di Supercharger a energia solare , lo scambio di batterie o caricatori robotici a forma di serpente, quindi nessuno sa se un Tesla Bot pronto per la produzione vedrà mai la luce del giorno . Ma l'azienda è dov'è oggi grazie alla pura volontà di Musk. Tesla bot è progettato per il lavoro manuale Quando ha annunciato il Tesla Bot all'ultimo AI Day, Musk ha affermato che il robot assumerà compiti pericolosi, noiosi e ripetitivi dagli umani. In futuro, "il lavoro fisico sarà una scelta", ha detto Musk. Il robot potrà camminare a 5 mph. Avrà uno schermo montato sul viso che mostrerà "informazioni utili" e sarà in grado di sollevare 150 libbre, ha detto Tesla. Una delle prime applicazioni per i robot Tesla sarà nelle fabbriche automobilistiche dell'azienda. Anche tu potrai comprarti un Tesla bot Ad aprile, Musk ha previsto che il Tesla Bot sarà disponibile per i consumatori in meno di 10 anni. Sarà in grado di svolgere compiti domestici come riordinare, preparare la cena, falciare il prato, fare la spesa e prendersi cura dei membri anziani della famiglia, ha detto Musk. Quando sarà ampiamente disponibile, costerà "meno di un'auto", secondo Musk. Quiz sul Tesla bot :

  • Come fare un chat bot robotico

    La parola “chat-bot” è una parola composita tratta dal dizionario inglese dove con “chat” si intende l’azione del “chiacchierare” e con la contrazione “bot” si intende “robot”. Solitamente però si identificano i/le chabot come macchine virtuali ovvero software che in base a degli algoritmi di “intelligenza artificiale”, sono in grado di interagire verbalmente con gli esseri umani. Un chatbot robotico è un robot reale, che possiede, oltre ad una gestione software di interazione colloquiale, anche degli apparati hardware, quali sensori, motori, strutture e parti in movimento. L’espressione più performante di queste macchine sono i robot umanoidi. Non serve necessariamente che il robot abbia delle sembianze umane, per essere un piccolo chatbot, per esempio Q.bo STEM è un esempio di chatbot che coniuga bene alcuni aspetti del chatbot. Ha una estetica simpatica non necessariamente umana, ma in grado di assumere delle forme che generano empatia. 1. Progettazione di un chat bot robotico Quindi, la prima categoria di ingredienti sono proprio le apparecchiature, le parti meccaniche, le plastiche che danno forma al robottino. Ma alla base, c’è la progettazione ergonomica ed estetica, quindi, una delle “skills” richieste è quella di saper utilizzare degli strumenti adatti a generare almeno il design dell’oggetto. Per gli appassionati di disegno tecnico, ci sono moltissimi software che possono essere utilizzati per disegnare un robot anche in tridimensionale, oppure anche in “virtuale”. Ovvio, ci sono dei software con altissime prestazioni, ma sono a pagamento, però in rete esistono anche degli software gratuiti, che permettono di arrivare anche a dei buoni livelli di progettazione, mi riferisco ad esempio a “FreeCad”: un software di disegno 3D completo e molto poliedrico. Si tratta di un potente programma open source multipiattaforma che si può installare in windows Mac e linux per eseguire disegni tecnici 2D e 3D. Il software consente di lavorare in una moltitudine di ambienti che possono essere impiegati per la creazione di disegni, di oggetti tridimensionali, di files per il controllo delle macchine a controllo numerico, renderizzazione, creazione di animazioni, ecc. FreeCAD è un CAD completamente gratuito, progettato in particolare per creare modelli in 3D ed è rivolto soprattutto all’ingegneria meccanica ma è adatto anche per altre applicazioni ingegneristiche ed al settore dell’architettura. Ovvio che non potrà competere ad esempio con colossi come Solidworks, ma con tutti i suoi limiti, consente de avere a disposizione una discreta interfaccia utente, e di generare dei disegni tridimensionali di buona qualità. Le carenze possono essere date da analisi dinamiche delle meccaniche e altre prestazioni avanzate, che sono più consone a framework for software engineering professionali, ma per iniziare a progettare delle strutture robotiche adeguate a dei piccoli chatbot, direi che è sufficiente e propedeutico. Alcuni esempi: Tutto sommato, direi che è una buona base di partenza per cercare di realizzare, almeno sotto il profilo progettuale, la struttura, il disegno, l’immagine grafica tridimensionale, dei vari componenti, apparecchiature e parti ergonomiche, che al limite, possono anche essere realizzate utilizzando una stampante tridimensionale. E’ anche vero che ci sono robot venduti in scatola di montaggio ( anche Q.bo STEM lo era), ma volete mettere cosa significa dare una vostra impronta personale all’estetica (e anche alla funzionalità) del prodotto? 2. La realtà virtuale Con il termine realtà virtuale (a volte abbreviato in VR dall'inglese virtual reality) si identificano vari modi di simulazione di situazioni reali mediante l'utilizzo di computer e l'ausilio di interfacce appositamente sviluppate, quindi non è strettamente necessario che il robot sia fisicamente realizzato, una alternativa è quella di utilizzare proprio strumenti che permettono di sviluppare il prodotto per l’utilizzo della realtà virtuale. Gazebo è un toolkit gratuito di simulazione robotica open source progettato per aiutare gli ingegneri a testare algoritmi, progettare virtualmente i loro robot, addestrare sistemi di intelligenza artificiale con scenari realistici e altro ancora. Il sistema presenta dozzine di caratteristiche e funzioni, inoltre è supportato da dozzine di ingegneri robotici in tutto il mondo. Gazebo riceve aggiornamenti frequenti e correzioni di bug dalla comunità di sviluppatori attivi, il che lo rende affidabile per l'utilizzo nel mondo reale. Il progetto è stato avviato nell'autunno del 2002 presso la University of Southern California. È diventato un progetto open source di livello mondiale. Caratteristiche: • Open-source • Simulazione di robotica dinamica • Simulazione grafica 3D avanzata di alta qualità • Kit di simulazione sensori ricco • Simulazione del rumore • Sistema di moduli con dozzine di plugin • Ricco set di modelli di robot • Supporto per il trasporto TCP/IP • Simulazione delle nuvole • Ricchi strumenti da riga di comando • Sviluppatore e documentazione di facile utilizzo • API a misura di sviluppatore • GUI intuitiva • Tasti di scelta rapida e set di interazione del mouse • Ricco di comunità di ingegneri e sviluppatori Risorse: http://gazebosim.org/ https://github.com/osrf/gazebo Gazebo è sicuramente un software fondamentale di ROS. ROS (Robot Operating System) è un kit di sviluppo software open source per applicazioni di robotica. ROS offre una piattaforma software standard agli sviluppatori di tutti i settori che si occupano di ricerca e di prototipazione ed è utilizzato fino all'implementazione dei processi di produzione. A tal proposito vi rimando ad un mio articolo che trattava proprio questo argomento: Clicca qui per saperne di più... Alcuni esempi di applicazioni su ambienti virtuali realizzati con Gazebo: 3. Circuiti elettronici di un chat bot robotico Molte apparecchiature che vengono utilizzate nei robot, sono apparecchiature commerciali, ma ci può anche essere l’esigenza di dover progettare delle apposite schede elettroniche PCB (dall'acronimo inglese Printed Circuit Board), ad esempio per il comando dei motori, dei microfoni, dell’altoparlante, o di altri sensori particolari, come touch sensor, rilevatori radar, sonar ecc. A questo punto, servono competenze specifiche in elettronica, o perlomeno, competenze sulla progettazione di layout per circuiterie elettroniche. EAGLE di Autodesk, ad esempio, è un software EDA (Electronic Design Automation) che consente ai progettisti di circuiti stampati (PCB) di collegare i componenti, partendo da diagrammi schematici. A tal riguardo, consiglio di acquistare il libro “The ultimate PCB designer. Edizione 2021” Il libro, edito nel 2021, fa parte della collana di trattati di elettronica del dott. Gottardo. Basato principalmente sul CAD Eagle, di Autodesk, è in realtà spendibile per qualunque prodotto software. Mirato all’apprendimento delle procedure di progettazione e sviluppo di PCB professionali ma contiene anche una spiegazione pratica su come realizzare in casa prototipi con tecniche di fotoincisione e corrosione facilmente replicabili senza grossi investimenti. Sono comunque interessanti anche software quali “Proteus”. la Proteus Design Suite si trova in scuole superiori, college e università di tutto il mondo, insegnando design embedded e layout PCB a decine di migliaia di studenti ogni anno. Sono dei software che consentono anche l’analisi circuitale, quindi particolarmente indicati anche in fase di progettazione elettronica dei dispositivi. Per iniziare però, si può anche utilizzare del software gratuito oppure online, magari per provare a disegnare un “ponte ad H”, per poi passare ad un “PWM”. Per farsi un’idea della difficoltà di realizzazione si potrebbe prendere visione di alcune pagine di questo sito 4. Sistemi operativi di un chat bot robotico La realizzazione di una chatbot robotico richiede sicuramente che, chi si approccia a compiere questo percorso, lo faccia a piccoli passi ed usufruisca di tutte e due le gambe, appoggiando bene i piedi a terra, nel senso pratico, anche se il robot poi si muoverà su rotelle! E non abbia la testa tra le nuvole, anche se poi il robot potrebbe anche volare! C’è un oceano di cose da prendere in considerazione, anche se si vuole costruire un piccolo catamarano. L’impresa può sembrare titanica, anche se si tratta di progettare un piccolo robottino, Da una parte c’è l’hardware del sistema, che come accennato sopra, richiede parecchie competenze, e l’altra è il software, che ne richiede altrettante. L’hardware del sistema è legato al software, che, per chi inizia ad entrare in questo ambito della materia STEM (dall'inglese science, technology, engineering and mathematics), quasi sempre è una versione GNU Linux. Il Progetto GNU supporta sia i sistemi GNU/Linux sia il sistema GNU. La Free Software Foundation (FSF) ha finanziato la riscrittura delle estensioni relative a Linux della libreria GNU C, in modo che ora sono ben integrate. Oggi esistono numerose varianti del sistema GNU/Linux, di solito vengono chiamate “distribuzioni”, in particolare, ad esempio, ci sono sistemi operativi che vengono installati su delle SBC (acronimo inglese di single board computer), una soluzione molto flessibile che si presenta come una scheda compatta che offre tutte le principali interfacce del mondo PC. Le soluzioni single-board computer inoltre possono essere personalizzate e ben interfacciate, dal punto di vista hardware, proprio quello che avviene ad esempio per il Raspberry Pi, che è soltanto uno dei molti reperibili sul mercato, ma che usufruisce di sistemi operativi free, come le distribuzioni GNU/Linux. Ma ci sono almeno 65 tipi di SBC nel mercato, alcuni, con sistemi operativi proprietari. Da quanto sopra, è evidente che, la prima competenza indispensabile, per chi si inoltra in questo cammino, è l’apprendomento dei linguaggi o script di shell, per Linux ad esempio, Bash è una shell testuale che è stata ideata da Stephen Bourne, da cui prende il nome. E' l'evoluzione della shell standard /bin/sh di Unix. Si tratta di un interprete testuale di comandi che ne permette l’esecuzione. I comandi sono digitati tramite la linea di comando e possono anche essere incorporati in file eseguibili, contenenti procedure ( script ). Uno script quindi è costituito da una serie di comandi operativi. Può contenere variabili e strutture di controllo, come un linguaggio di programmazione, ma non deve essere compilato. Il software interprete del sistema lo legge e lo esegue direttamente. E’ quella parte di software che permette di caricare le “software suite”, “piattaforme”, ovvero, dei “contenitori” di programmi informatici che rispondono a esigenze diverse, nello stesso ambito operativo, famosa è Microsoft office, che nell’ambiente Linux corrisponde a Libre Office o Open Office. Per quanto riguarda alcune applicazioni di intelligenza artificiale, nell’ambito della computer vision, OpenCV (acronimo in lingua inglese di Open Source Computer Vision Library) è una libreria software multipiattaforma nell'ambito della visione artificiale in tempo reale. 5. A.I. e librerie di programmi per un chat bot robotico Il chatbot robotico, per essere tale, deve avere la possibilità di interagire con il mondo esterno, non necessariamente deambulare o muoversi e camminare a due o a sei gambe, volare oppure navigare, ma almeno deve vedere, in alcuni casi riconoscere ostacoli, forme, oggetti, volti, per poter interagire e chiacchierare. La conoscenza di OpenCV, oppure di qualche altra alternativa per la gestione immagini e video costituisce quindi una parte fondamentale delle competenze da mettere in campo. Il chatbot, deve interagire con gli umani, deve quindi essere in grado di effettuare un rilevamento facciale (face detection), se non addirittura un riconoscimento facciale (Facial recognition), laddove è consentito. A questo punto subentrano le librerie specifiche di Intelligenza artificiale, che, nel caso della computervision, possono “lavorare sotto il cofano” di altre applicazioni, oppure essere esplicitamente programmate. Se viene richiesta una interazione funzionale, il chatbot deve essere in grado di riconoscere perlomeno dei comandi specifici, quindi si necessita di poter eseguire perlomeno una trasposizione da “parlato” a testo. La trascrizione del del parlato in testo (STT) in tempo reale viene basata su tecniche di machine learning. Speech-to-Text di google, ad esempio, converte con precisione la voce in testo, utilizzando un'API basata sulle migliori ricerche e tecnologie AI di Google. Nelle versioni più elementari di ChatBot, però, si deve essere in grado anche di fornire in output almeno una voce sintetizzata trasformando del testo, in parlato (TTS). Da quanto sopra è palese che, per fare queste operazioni, si debba essere in grado, non solo di saper installare i software necessari, ma anche di saper programmare, mediante dei linguaggi dedicati le varie “skills” del Chatbot. Attualmente credo che il linguaggio più indicato per questa tipologia informatica sia Python, che è generalmente più orientato al linguaggio umano, che non il C o il C++, che, a mio avviso trova migliori applicazioni se orientato alla parte hardware o per sistemi embedded. La libreria python, per quanto concerne l’intelligenza artificiale è vastissima e permette di arrivare alla analisi del linguaggio parlato NLP (Natural Language Processing). Per concludere, vorrei solo accennare ad alcune di queste librerie di riferimento: Pytorch PyTorch è una libreria di tensori ottimizzata per il deep learning tramite GPU e CPU, che si basa su NumPy. NumPy è una libreria open source per il linguaggio di programmazione Python, che aggiunge supporto a grandi matrici e array multidimensionali insieme a una vasta collezione di funzioni matematiche di alto livello per poter operare efficientemente su queste strutture dati. TensorFlow Questa è una libreria software open source per l'apprendimento automatico (machine learning), che fornisce moduli sperimentati e ottimizzati, utili nella realizzazione di algoritmi per diversi tipi di compiti percettivi e di comprensione del linguaggio. Fondamentalmente è una generazione di API, (application programming interface), utilizzata da molti team attivi sia in ambiti di ricerca scientifica, sia in ambiti di produzione. Viene utilizzato da prodotti commerciali Google come il riconoscimento vocale, Gmail, Google Foto, e Ricerca. TensorFlow fu sviluppato dal team Google Brain e reso disponibile il 9 novembre 2015, nei termini della licenza open source Apache 2.0. Keras E' una libreria scritta in Python (rilasciata sotto licenza MIT). Si tratta di software open source per l’apprendimento automatico e le reti neurali e supporta come back-end TensorFlow (dal 2017). Keras offre moduli utili per organizzare differenti livelli. Il tipo principale di modello è quello sequenziale, ovvero una pila lineare di livelli. Keras consente una prototipazione facile e veloce, supporta sia reti convoluzionali (CNN) che reti ricorrenti (RNN) o combinazioni di entrambi, supporta schemi di connettività come multi-input e multi-output e funziona sia su CPU che GPU. Keras quindi è una libreria di alto livello, mentre Tensorflow è una libreria di basso livello denominata backend, proprio per il ruolo che svolge nella pila software. Scikit-learn Questa è una libreria open source di apprendimento automatico per il linguaggio di programmazione Python. Contiene algoritmi di classificazione, regressione e clustering (raggruppamento) e macchine a vettori di supporto, regressione logistica, classificatore bayesiano, k-mean e DBSCAN, ed è progettato per operare con le librerie NumPy e SciPy. scikit-learn utilizzata anche dalla I.A. di Google. Pandas dataframe Pandas DataFrame è una struttura dati tabulare bidimensionale, potenzialmente eterogenea, con assi etichettati (righe e colonne). Panda è una libreria Python che consente di lavorare con dati organizzati utilizzando righe e colonne chiamate "dati tabulari". Similmente ad foglio di calcolo come Excel, viene utilizzata per manipolare i dati tabulari. Pandas si può usare per attività simili per le quali si userebbe Excel, o qualunque altro spreadsheet come la semplice manipolazione dei dati, ma può anche essere utilizzato per potenziare attività complesse di data science come l’apprendimento automatico. Se il chatbot è dotato di un touchscreen, è l’ideale per la presentazione dei dati. Nltk Ma, il chatbot robotico, per essere all’altezza del suo nome, deve implementare degli algoritmi rivolti al processamento del linguaggio naturale umano. NLTK è una piattaforma leader per la creazione di programmi Python per lavorare con i dati del linguaggio umano. Fornisce interfacce di facile utilizzo per oltre 50 corpora e risorse lessicali come WordNet, insieme a una suite di librerie di elaborazione del testo per classificazione, tokenizzazione, stemming, tagging, analisi e ragionamento semantico, wrapper per librerie NLP di livello industriale, e un forum di discussione attivo . Grazie a una guida pratica che introduce i fondamenti della programmazione insieme ad argomenti di linguistica computazionale, oltre a una documentazione API completa, NLTK è adatto a linguisti, ingegneri, studenti, educatori, ricercatori e utenti del settore. NLTK è disponibile per Windows, Mac OS X e Linux. Soprattutto, NLTK è un progetto gratuito, open source e guidato dalla comunità. NLTK è stato definito "uno strumento meraviglioso per insegnare e lavorare nella linguistica computazionale utilizzando Python" e "una straordinaria libreria per giocare con il linguaggio naturale". L'elaborazione del linguaggio naturale con Python fornisce un'introduzione pratica alla programmazione per l'elaborazione del linguaggio. Scritto dai creatori di NLTK, guida il lettore attraverso i fondamenti della scrittura di programmi Python, del lavoro con i corpora, della categorizzazione del testo, dell'analisi della struttura linguistica e altro ancora. La versione online del libro è stata aggiornata per Python 3 e NLTK 3. Ovviamente ci sono altri software che sono stati implementati da varie multinazionali al fine di rendere sempre più elevvate le prestazioni dei chatbot, in questo ambito, LaMDA (Language Model Fot Dialogue Applications), ne è un esempio lampante, chi non ha presente la vicenda scatenata dalla interazione di questa A.I. e l’ingegnere dello staff di Google?. OpenAI GPT-3 è un software di intelligenza artificiale particolarmente efficiente nella produzione automatica di testi, creato da OpenAI. Tecnicamente si tratta di un modello di linguaggio che utilizza il deep learning per generare testo simile a quello che produrrebbe un essere umano. Il nome GPT-3, è un acronimo che sta per Generative Pre-trained Transformer, di terza generazione. Quindi un sistema generativo, pre-addestrato, e basato sui "Transformer". Ma OpneAI, elabora fornisce molti altri prodotti che possono essere implementati, per esempio per generare ha elaborate la A.I. Dall-e. Per concludere, vorrei precisare che questi sono solo alcuni degli “ingredienti” che si possono utilizzare per alimentare la nostra mente e prepararla ad affrontare nel modo più funzionale possibile, la scorpacciata che ci aspetta quanto vogliamo digerire un buon piatto di STEM. Creiamo un chatbot Robot Spero di avere solleticato l’appetito di qaulcuno dei lettori di questo articolo, e non posso lasciarvi a bocca asciutta, quindi, cerco di darvene un piccolo assaggio, con dei bocconcini di codice che ho utilizzato per fare in modo che Q.bo STEM, salutasse, quando riconosce un volto, di fronte o di profilo. Sono spezzoni di codice in python, che spero possano rendere l’idea di che cosa significhi produrre del codice per un chatbot robotico. La parte iniziale del programma è dedicata alle procedure di importazione delle librerie necessarie: #!/usr/bin/env python3 import QboCmd_test_base_v3 import serial import cv2 as cv import numpy as np import subprocess import time import yaml La seconda parte di questo spezzone di codice riporta un esempio di controllo sulla comunicazione della porta seriale che determina il controllo delle periferiche del robot. port = '/dev/serial0' # Open serial port ser = serial.Serial(port, baudrate=115200, bytesize = serial.EIGHTBITS, stopbits = serial.STOPBITS_ONE, parity = serial.PARITY_NONE, rtscts = False, dsrdtr =False, timeout = 0) #altro codice di controllo print ("Open serial port sucessfully.") print(ser.name) QBO = QboCmd_test_base_v3.Controller(ser) print (ser) Le seguenti righe di codice riportano un esempio di settaggio delle variabili globali e locali necessarie per il corretto funzionamento del programma. Ksp = 100 #speed = 100 fw = 320 fh = 280 fwc = fw/2 fhc =fh/2 center = fwc, fhc f_frameCenter = fwc, fhc p_frameCenter = fwc, fhc f_face = None p_face = None #logic flags f_Facedet = None p_Facedet = None ... segueno altri settaggi.... Caricamento del file di configurazione e predisposizione per un minimale sistema di colloquio: config = yaml.safe_load(open("configQbo.yml")) print(str(config["volume"])) phrases = ( "ciao, ti ho visto! Vuoi dirmi qualcosa?", "buogiorno! cosa facciamo?", "heilà, dimmi!", "scusa, ero distratto! adesso ti ho visto, ti ascolto!", "ci sono! adesso ti vedo! cosa posso fare?", "ciao! vuoi che faccia qualcosa?", "guarda che ti vedo sai? ti ascolto anche!", "eccoti quì! finalmete, dimmi, ti posso essere utile?", "non è stato facile, ma ti ho visto! ti ascolto!", "che piacere vederti, facciamo qualcosa assieme?" ) Caricamento degli algoritmi per il riconoscimento facciale: f_faceCascade = cv.CascadeClassifier("/home/pi/.local/lib/python3.7/site-packages/cv2/data/haarcascade_frontalface_alt2.xml") p_faceCascade = cv.CascadeClassifier("/home/pi/.local/lib/python3.7/site-packages/cv2/data/haarcascade_profileface.xml") .... segue altro codice di settaggio per acquisizione video ecc. script delle funzioni di programma: def ServoHead(): #funzioni di movimentazione della testa def F_capture(video_capture): #funzioni sul rilevamento della faccia def P_capture(video_capture): #funzioni di rilevamento del profilo #Funzione di attivazione della procedura di saluto: def FaceControl(): global Home_x, Home_y, Xcoor, Ycoor, Face_detected if f_Facedet == True or p_Facedet == True: Face_detected = True print ("Face_detected = ", Face_detected) speaker_ok = False if Face_detected == True and speaker_ok == False: t_ini = time.time() print("sepaker", speaker_ok) Speech_it(phrases[int(np.random.rand()*10)]) speaker_ok = True print ("t_ini",t_ini," ", "sepaker_ok=", speaker_ok) Face_detected = False print ("time", time.time()) if time.time() - t_ini > 100: print ("°°°°°°°°°°°") print ("time:", time.time(), "t_ini", t_ini) t_ini = time.time() speaker_ok = False ... seguono altre line di codice Funzione di procedura di saluto effettuata con le condizioni impostate sopra: def Speech_it(text_to_speech ): ... segue codice per l’attivazione dello speaker ... Altra funzione ausiliaria per il controllo del tocco def WaitForTouch(): Procedura di loop: while True: fr_time = time.time() #print ("time: " + str(time.time() - fr_time)) F_capture(video_capture) P_capture(video_capture) #cv2.circle(f_frame, f_frameCenter, radius=4, color=(255, 0, 0), thickness=-1) #cv.imshow('FVideo', f_frame) #cv2.circle(p_frame, p_frameCenter, radius=4, color=(0, 255, 0), thickness=-1) #cv2.imshow('PVideo', p_frame) FaceControl() time.sleep(1) #WaitForTouch() if cv.waitKey(1) & 0xFF == ord('q') : #== ord('q') break video_capture.release() cv2.destroyAllWindows() QBO.SetNoseColor(0) time.sleep(0.5) QBO.SetMouth(0) Questo sono delle linee di codice estrapolate da un file di test preliminare per il controllo delle potenzialità espressive e funzionali del ChatBot. Q.bo STEM. Q.bo STEM è un ChatBot Robotico versatile, che può essere utilizzato in semplici impieghi, come ad esempio promoter di articoli o gadget, puo fare anche home sourveillance, ma la sua vera natura attitudinale è quella di essere impiegato nella didattica di apprendimento per l’utilizzo etico dell’intelligenza artificiale. Clicca quì per vedere il risultato finale Per questo mi sono impegnato per un lungo periodo a scrivere il libro di testo ROBOTICS in EDUCATION, che spero venga apprezzato da insegnanti e docenti delle scuole che si fregiano di insegnare tecniche STEM o STEAM. Nella sua forma più elementare, STEM sta per Scienza, Tecnologia, Ingegneria e Matematica (in lingua inglese). In alternativa, STEAM sta per Scienza, Tecnologia, Ingegneria, Arti e Matematica. Ma l’educazione STEM è molto più che unire insieme i titoli delle materie, è una filosofia dell’educazione che abbraccia abilità e materie di insegnamento in un modo che assomiglia alla vita reale. Il Libro ROBOTICS IN EDUCATION è acuistabile sulle piattaforme: Lulu Pubblicazioni Amazon ( Acquistabile con il Bonus Cultura e Carta docente ) Grazie per l’attenzione, Romeo Ceccato.

  • Machine Learning nel Trading usando NEURAL NETWORK-PROPHET

    "Produrre previsioni di alta qualità non è un problema facile né per le macchine né per la maggior parte degli analisti. Abbiamo osservato due temi principali nella pratica della creazione di una varietà di previsioni aziendali: Le tecniche di previsione completamente automatiche possono essere fragili e sono spesso troppo inflessibili per incorporare ipotesi o euristiche utili. Gli analisti che possono produrre previsioni di alta qualità sono abbastanza rari perché la previsione è un'abilità specializzata nella scienza dei dati che richiede una notevole esperienza. " Dal sito web di Facebook Prophet. In questo progetto utilizzeremo l’algoritmo Neural Prophet per la previsione del cross EUR/CHF. Per la trattazione dell’argomento si farà uso del software di programmazione Python in ambiente Jupiter Notebook. Un mondo di profeti Quando nel mio primo articolo Introduzione al Machine Leanring per il Trading, inizio di questa avventura divulgativa, abbiamo voluto introdurre i concetti di previsione abbiamo fatto riferimento, con approccio provocatorio, a coloro che soprattutto nel passato pretendevano di prevedere il future basandosi su presunte doti magiche, segno di benevolenza divina, che gli permetteva di affermarsi nelle società del tempo incutendo rispetto e timore. Con il tempo e con il progresso scientifico si è dimostrato che tali poteri paranormali previsionali erano fallimentari per almeno due motivi. Uno, erano statisticamente non affidabili, razionalmente non giustificabili e pertanto instabili, due, allorquando validi, erano dimostrati tali da una predisposizione mentale che rendeva quelle previsioni vere o verosimili. Fare previsioni significa considerare tutte le caratteristiche (nello spazio e nel tempo) di un fenomeno passato, assegnare ad ognuna di esse un peso di influenza, combinarle tra loro e contestualizzarle ed adattarle in una nuova circostanza. Posso prevedere con certezza pressochè assoluta che domani avremo un alba e un tramonto, abbastanza accurata se la giornata sarà piovosa, nuvolosa o soleggiata, un po’ meno se devo prevedere dove trovare parcheggio in centro città (tanto piu’ se non conosco la zona). Le previsione é imprescindibile dall’esperienza passata, ma la stessa non ne è garanzia di accuratezza. Come nei teoremi matematici potremmo dire che, a meno di essere sicuro di aver considerato tutte (ma proprio tutte) le variabili, l’esperienza passata è condizione necessaria ma non sufficiente per la bontà della previsione. Questo é vero a tutti i livelli, dai nostri comportamenti di fronte a determinate situazioni di cui abbiamo esperienza, alle strategie geopolitiche che prendono spunto dalla storiografia, dalle analisi e previsioni di vendita di un attività commerciale, al classico esempio noto a tutti gli studiosi di machine learning sulla potenziale solvibilità di un cliente bancario. Quando parliamo di previsioni di prezzo e andamento di un prodotto finanziario tentiamo di dare una interpretazione di come quel fenomeno, già prodotto risultante di previsoni fatte nel passato (il mercato), possa evolversi sulla base di pattern storici. Un problema fondamentale é quello di determinare quale é il migliore intervallo temporale tra il presente e il passato per elaborare la previsione, e fino a quando. Se per esempio il trader graficista vuole una previsione giornaliera, deve considerare l’andamento dell’ultimo mese, dell’ultima settimana o dell’ultimo anno? FACEBOOK PROPHET Facebook ha sviluppato il software previsionale Prophet disponibile per applicazioni sia in Python che in R. Fornisce parametri intuitivi che sono facili da modulare per cui anche chi non ha una profonda esperienza nei modelli di previsione in serie temporali può usarlo per generare previsioni significative per una vasta varietà di problemi. Un modello di regressione su modelli che presentano carattere stagionale particolarmente robusto in caso di dati mancanti, spostamenti di tendenza, e nella gestione degli outlier. Prophet utilizza un modello di serie temporale scomponibile in tre elementi principali del modello: tendenza, stagionalità e interruzioni, combinati nella seguente equazione: y(t)= g(t) + s(t) + h(t) + εt g(t): curva di crescita lineare o logistica per modellare i cambiamenti non periodici nelle serie temporali s(t): cambiamenti periodici (es. stagionalità settimanale/annuale) h(t): effetti delle interruzioni (per esempio week end e vacanze) εt: il termine di errore tiene conto di qualsiasi cambiamento insolito non contemplato dal modello. Usando il tempo come regressore, Prophet inquadra il problema della previsione come un esercizio di adattamento della curva piuttosto che guardare esplicitamente la dipendenza basata sul tempo di ogni osservazione all'interno di una serie temporale. Prophet e la sua evoluzione Neural Prophet vengono considerati come il ponte di collegamento tra le pure tecniche di analisi delle serie temporali e il deep learning (Figura 1) NEURAL PROPHET su EUR/CHF Seguendo il solito principio di costruzione di un codice di machine learning​ ( se ti interessa ne ho parlato dettagliatamente in un articolo ), partiamo con l’importazione delle librerie di gestione tabelle e grafica : digita i seguenti comandi sul terminale per scaricare le librerie necessarie Se hai python < 3 pip install yfinance pip install neuralprophet Se hai python >= 3 pip3 install yfinance pip3 install neuralprophet Se stai usando google Colab !pip install yfinance !pip install neuralprophet Ora crea un nuovo file e iniziamo a scrivere codice. import pandas_datareader.data as web import pandas as pd import matplotlib.pyplot as plt import numpy as np STEP 1 – IMPORTAZIONE E LETTURA DATI Procediamo con l’impostazione delle funzioni che ci permettono di leggere I valori del cross Euro – Franco Svizzero con ticker EURCHF=X che vogliamo analizzare : from datetime import datetime start = datetime (2015,3,8) end= datetime (2022,3,8) data = yf.download(tickers = EURCHF, start=start, end=end) Che da l’output Figura 2 STEP 2 – ELABORAZIONE, TRASFORMAZIONE E ORGANIZZAZIONE DATI In questa fase trasformiamo I dati in maniera tale che gli stessi possano essere gestiti dall’algoritmo neuralprophet che utilizzeremo. closecolumn=data.iloc[:,3] closecolumn L’ultima riga di codice ci darà la possibilità di visualizzare la nuova struttura dati (Figura 3) e il suo andamento grafico con le funzioni di plotting (Figura 4) Per utilizzare NeuralProphet dobbiamo operare una ulteriore trasformazione del nostro dataframe eseguendo le seguenti linee di codice : neuralproheptdataset = closecolumn.reset_index() dataprophet = neuralprophetdataset.rename(columns = {“Date”:”ds”, “Close”:”y”}) dataprophet Che restituisce l’output (F5) STEP 3 – DEFINIZIONE DEL MODELLO Importiamo la libreria che ci permetterà di implementare neuralprophet ed eseguire le operazioni per esso necessarie con le seguenti istruzioni from neuralprophet import NeuralProphet STEP 4 – ADDESTRAMENTO DEL MODELLO Con NeuralProphet l’addestramento del modello viene compiuto con le semplici line di codice che seguono dove indichiamo I nostri parametri (tra gli altri notiamo il periodo in cui vogliamo la previsione con n_forecast = periodo previsionale di 30 giorni), m = NeuralProphet( n_forecasts=30, n_lags=60, n_changepoints=50, yearly_seasonality=True, weekly_seasonality=False, daily_seasonality=False, batch_size=64, epochs=100, learning_rate=1.0, ) STEP 5 – VALUTAZIONE AFFIDABILITA’ DEL MODELLO Come sempre dobbiamo valutare la bontà del nostro modello e capire quando dopo diverse iterazioni di addestramento i valori convergono e diventano stabili per iterazioni successive metrics = m.fit(dataprophet, freq="D") metrics In Figura 6 vediamo il riassunto delle metriche. Di cui possiamo vedere anche una rappresentazione grafica (F7) STEP 6 - PREVISIONE Avendo costruito il modello ed avendo appurato la sua precisione, se accettabile, procediamo con la previsione futura, a 30 giorno dopo l’ultima data disponibile nel nostro dataset chiamato dataprophet e cioé 7 marzo 2022. future = m.make_future_dataframe(dataprophet, periods=30, n_historic_predictions=len(roughdata)) #noi dobbiamo specificare il numero di GIORNI da prevedere prediction = m.predict(future) in questo modo, operando alcune trasformazioni e lanciando la funzione di plotting abbiamo il grafico in F8. possiamo a questo punto azzardare anche una previsione a 100 giorni semplicemente cambiando il parametro n_forecast ottenenendo con la stessa serie di istruzioni per il plotting da Figura 9 che zoommato da il grafico di Figura 10. Conclusioni A proposito di futuro, si pensa che in 50 anni le capacità di calcolo delle macchine siano grado di emulare il ragionamento umano; é chiamata AGI, Artificial General Intelligence. C’é chi pensa ad essa come un opportunità, altri come una minaccia. La macchina dovrebbe in teoria sosituire l’uomo nelle cose “complesse” che la macchina riesce a fare bene e meglio (calcoli, gestione dei dati) ma quando lo sostituisce nelle attività comuni (la guida di un autoveicolo) o semplici (servire il caffè, fare il check in in hotel, passare l’aspirapolvere) entriamo in un discorso che affronta una tematica socio culturale simile a quella che ci viene raccontata dei tempi della rivoluzione industriale. Come ricollocheremo gli addetti (presumiamo non altamente qualificati) che oggi sono impiegati in quei settori? Per la risposta a questa domanda credo neanche la macchina piu’ avanzata possa aiutarci. Anzi quando entriamo nel campo della fantasia e creatività forse siamo ancora superiori e ancora per un po’ irraggiungibili. Come umani, siamo meno dipendenti da dati di input strutturati rispetto alla macchina perchè abbiamo immaginazione, abbiamo ispirazione, abbiamo sensazioni. Non confondiamo la capacità di progredire con la semplice capacità di fare previsione. Ricordiamo che alla base dell’intelligenza artificiale c’é l’idea di trovare dei pattern storici semplicemente sulla base di un enorme quantità di dati passati. In passato facevamo previsioni dopo aver compreso il fenomeno oggetto di studio ma le stesse non erano accurate quanto quelle che facciamo oggi con AI. D’altra parte possiamo affermare che l’algoritmo pur analizzando bene i dati e le correlazioni, non comprende in maniera intelligente e consapevolmente quello che sta facendo. Un sistema a guida autonoma riesce a decidere razionalmente, sulla base della sua codifica se in una situazione di pericolo deve proteggere i suoi passeggeri, il bambino che attraversa la strada. E se oltre al passeggero, il bambino ci fosse anche un ladro che scappa? Chi codifica il livello di priorità e in base a quale criterio? C’é un grande dibattito sull’etica dei sistemi AI e sulla responsabilità dei vari attori, a partire dai softwaristi agli utilizzatori, fino a quella dello stesso sistema. Per chi fosse interessato ad ottenere il codice completo e strutturato per un plug and play in ambiente Jupiter Notebook, richiedetelo pure all’autore all’indirizzo email nicola.matarese73@gmail.com. NON PERDERTI I PROSSIMI ARTICOLI Nicola Matarese classe 1973, ha conseguito una laurea magistrale in ingegneria meccanica ed ha ricoperto ruoli manageriali all’interno di realtà industriali in ambito aerospazio e difesa. E’ appassionato di trading e opera sui mercati dal 2001. Da qualche anno lavora a sistemi di trading supportati da teorie sui Big Data e Intelligenza Artificiale. Collegati o manda un messaggio a Nicola Matarese su LINKEDIN

  • AutoEncoder cosa sono e come funzionano

    In questo Articolo capiremo cosa sono e come funzionano gli AutoEncoder... Mentre il mondo si sviluppa rapidamente con i progressi nell'apprendimento automatico e nell'intelligenza artificiale , presto ci troveremo ad affrontare una situazione di aumento incontrollabile dei dati. Introduzione agli AutoEncoder GPU, TPU e altri meccanismi di archiviazione ed elaborazione più veloci hanno finora elaborato con successo grandi quantità di dati nel più breve tempo possibile, ma possono elaborare i dati in meno spazio. Devi anche considerare come comprimerli e archiviarli. E questo ci porta all'argomento della discussione odierna: gli autoencoder, una tecnica che ci consente di comprimere le informazioni disponibili. Cosa sono gli AutoEncoder ? Gli autoencoder sono tecniche di apprendimento non supervisionate basate su framework di reti neurali, addestrate a copiare input in output. Le reti neurali sono progettate per creare colli di bottiglia nella rete. Internamente, il livello nascosto h descrive il codice utilizzato per rappresentare l'input. Una rete di autoencoder è composta da tre parti. Innanzitutto, l'encoder comprime l'immagine e genera il codice utilizzando la funzione dell'encoder h = f(x). Quindi arriva un collo di bottiglia in cui abbiamo una rappresentazione della conoscenza compressa dell'input originale, seguita da un decodificatore che forma la ricostruzione r = g(h). Lo schema dell'autocodificatore è mostrato nella Figura 1. I dati vengono compressi e ristrutturati mentre si spostano attraverso l'architettura. Questo processo di compressione e ricostruzione è complicato quando le funzioni di input sono indipendenti. Tuttavia, se thSe esiste una correlazione tra i dati di input, le dipendenze esistenti possono essere apprese e utilizzate quando l'input viene forzato attraverso il collo di bottiglia della rete. Figura 1 – Diagramma che mostra lo schema di un tipico Autoencoder Nella seguente sottosezione, daremo uno sguardo dettagliato all'architettura di rete e ai corrispondenti iperparametri di un Autoencoder. L'architettura di un autoencoder Devi già avere un'idea sbiadita di come sarebbe un autoencoder. In questa sezione, aggiungeremo più profondità alla tua comprensione. Saremmo particolarmente interessati agli iperparametri di cui devi occuparti durante la progettazione di un autoencoder. Come accennato in precedenza, un codificatore automatico è costituito da tre parti: codificatore, codice e decodificatore. Sia l'encoder che il decoder sono semplici reti neurali feedforward. Il codice è un singolo strato di ANN con dimensioni selezionate. Per i livelli di input e di output, il numero di nodi è determinato dai dati di input X. Pertanto, i livelli di input e di output hanno lo stesso numero di nodi ed entrambi corrispondono a rappresentazioni ad alta dimensione. Lo strato nascosto centrale con il minor numero di nodi corrisponde alla rappresentazione a bassa dimensione. L'obiettivo del processo di formazione è ridurre al minimo l'errore di ricostruzione al quadrato tra gli input e gli output della rete. Per gli algoritmi di apprendimento, la strategia più comunemente utilizzata è la backpropagation. I pesi iniziali della rete sono importanti per l'encoder per trovare una buona soluzione. La backpropagation funziona in modo più efficace quando i pesi iniziali sono più vicini alla soluzione ottimale. Sono stati sviluppati molti algoritmi per trovare buoni pesi iniziali. Prima di addestrare l'autoencoder, dobbiamo impostare quattro iperparametri. Il numero di nodi nel livello intermedio, ovvero il livello di codice. Una dimensione più piccola del livello di codice comporterebbe una maggiore compressione. Poi viene il numero di livelli nelle architetture di codificatore e decodificatore. La profondità dell'architettura può essere regolata alla perfezione e l'architettura profonda presenta vantaggi rispetto alle reti esterne. Il numero di nodi per livello è il terzo iperparametro che dobbiamo regolare. Tipicamente il codificatore e il decodificatore sono simmetrici in termini di struttura del livello e il numero di nodi in ogni livello successivo del codificatore continua a diminuire fino a raggiungere il livello di codice e quindi continua ad aumentare in modo simile nell'architettura del decodificatore. La scelta della funzione di perdita è il quarto iperparametro. Le funzioni di perdita più utilizzate includono l'errore quadratico medio o l'entropia incrociata binaria. Il compromesso più importante negli autoencoder è il compromesso bias-varianza. Allo stesso tempo, l'architettura dell'autoencoder dovrebbe ricostruire bene l'input (riducendo l'errore di ricostruzione) mentre generalizza la rappresentazione bassa a qualcosa di significativo. Pertanto, per ottenere questa proprietà, diamo un'occhiata alle varie architetture sviluppate per affrontare questo compromesso. Tipi di AutoEncoder : 1. Codificatori automatici sparsi Queste reti offrono un metodo alternativo per introdurre colli di bottiglia senza richiedere la riduzione del numero di nodi. Gestisce il compromesso forzando la scarsità su attivazioni nascoste. Possono essere aggiunti sopra o al posto dei colli di bottiglia. Esistono due modi per applicare la regolarizzazione sparsa. Il primo è utilizzare la regolarizzazione L1 e il secondo è implementare la divergenza KL. Non entrerò nei dettagli matematici della tecnica di regolarizzazione, ma per questo blog è sufficiente una breve panoramica. Figura 2 – Rappresentazione schematica di un autoencoder sparso 2. Denoising degli autoencoder Gli autoencoder sono stati considerati reti neurali con ingressi e uscite identici. L'obiettivo principale è riprodurre l'input nel modo più accurato possibile evitando colli di bottiglia delle informazioni. Tuttavia, un altro modo per progettare un codificatore automatico consiste nel perturbare leggermente i dati di input ma mantenere i dati puri come output di destinazione. Con questo approccio, il modello non può semplicemente creare una mappatura dai dati di input ai dati di output perché non sono più simili. Quindi l'uso di questa opzione di regolarizzazione introduce del rumore nell'input mentre l'autoencoder dovrebbe ricostruire una versione pulita dell'input. Figura 3 – Rappresentazione schematica di un Denoising Autoencoder 3. Autocodificatori contrattuali Mentre nel caso precedente l'enfasi era sul rendere l'encoder più resiliente ad alcune perturbazioni dell'input, in questi tipi di architetture l'enfasi è sul rendere l'estrazione delle caratteristiche meno sensibile a piccole perturbazioni. È scritto. Ciò si ottiene facendo in modo che l'encoder ignori le modifiche nell'input che non sono significative per la ricostruzione da parte del decoder. L'idea principale alla base di questa tecnica di regolarizzazione è che le potenziali rappresentazioni non importanti per la ricostruzione vengono ridotte dal fattore di regolarizzazione. Al contrario, permangono variazioni importanti perché hanno un grande impatto sull'errore di ricostruzione. Figura 4 – Rappresentazione schematica di un autoencoder contrattuale Applicazioni degli Autoencoder Se hai letto fino a qui , dovresti avere le basi teoriche che devi conoscere sugli autoencoder. Ti starai chiedendo dove si trovi l'applicazione di queste strutture nell'apprendimento automatico. Questa sezione fa luce sulle applicazioni di queste strutture. La riduzione della dimensionalità è stata una delle prime applicazioni dell'apprendimento della rappresentazione. La riduzione delle dimensioni può aiutare a migliorare le prestazioni del modello in diversi casi. Un altro compito che avvantaggia ancor più della riduzione della dimensionalità è il recupero delle informazioni. Altre applicazioni degli autoencoder includono il rilevamento di anomalie, l'elaborazione di immagini, il denoising dei dati, la scoperta di farmaci, la previsione della popolarità e la traduzione automatica. Conclusione sugli autoencoder Ecco perché ho parlato di autoencoder nel blog di oggi. Gli autoencoder sono architetture originariamente progettate per aiutare con la riduzione della dimensionalità. Tuttavia, le sue applicazioni si sono moltiplicate molte volte nel tempo. In primo luogo, abbiamo brevemente introdotto la struttura di un autoencoder e come si ottiene la compressione dei dati a livello di codice. Abbiamo quindi discusso i diversi tipi di codificatori automatici e il modo in cui ognuno aiuta a gestire i compromessi di varianza bias. Infine, abbiamo finito di discutere gli scenari in cui gli autoencoder vengono applicati nel mondo di oggi. Quindi i punti chiave di questo articolo sono: L'approccio architettonico generale verso gli autoencoder Il compromesso bias-varianza affrontato dagli autoencoder In che modo l'applicazione di diverse tecniche di regolarizzazione può consentirci di gestire il compromesso. Ciò ti consentirebbe di pensare a più algoritmi di questo tipo e di sviluppare architetture più recenti. Le aree in cui questo tipo di architettura trova applicabilità. Credo di poterti lasciare con una profonda comprensione teorica dell'architettura e dei casi d'uso degli Autoencoder da questa discussione nel blog. Se questo articolo ti entusiasma, ti esorto ad andare avanti e sviluppare una tale architettura per te stesso. È un buon progetto da avere con te.

bottom of page