top of page

Risultati Ricerca Intelligenza Artificiale Italia

482 elementi trovati per ""

  • Esempio pratico Rilevamento Di Veicoli In Tempo Reale con il Deep Learning , Python e OpenCV

    In questo articolo, ti mostreremo come esguire il rilevamento dei veicoli in tempo reale con Python utilizzando la libreria OpenCV , il classificatore preaddestrato e in poche righe di codice. Perchè rilevare Veicoli con Python ? Il rilevamento dei veicoli in tempo reale è una delle tante applicazioni del rilevamento degli oggetti , per cui si concentra sul rilevamento delle auto all'interno di un'immagine insieme alle coordinate della posizione. In che progetti di deep learning è utilizzato? il rilevamento dei veicoli insieme al rilevamento della strada è molto applicato sulle auto a guida autonoma, affinché un'auto possa navigare in sicurezza lungo la strada, deve sapere dove sono posizionate le altre auto in modo da evitare una collisione. Anche il rilevamento dei veicoli viene utilizzato nei sistemi di sorveglianza del traffico in modo tale da poter rilevare il traffico in base al numero di veicoli e utilizzare tali dati per gestirlo e controllarlo. Sei pronto al tutorial sul rilevamento di autoveicoli con Python? In questo tutorial, impareremo come eseguire il rilevamento dei veicoli in tempo reale in un video o dai flussi di telecamere utilizzando OpenCV e un modello pre-addestrato. Requisiti Per poter seguire questo tutorial senza problemi ti lasciamo gli stessi file da noi utilizzati OpenCV ( vedremo nel passaggio dopo come istallarlo ) Modello preaddestrato Video dimostrativo Alla fine dell'articolo potrai scaricare l'intero progetto python per il Rilevamento Di Veicoli In Tempo Reale installazione Libreria Se non sai perchè utilizzeremo python, clicca qui Se non hai ancora installato Python, clicca qui Se non sai come scaricare e gestire le librerie, clicca qui Se non sai cosa sia un Dataset, clicca qui Se già conosci questi concetti usa questo comando per istallare la libreria $ pip install opencv-python $ pip3 install opencv-python # per python >=3 Classificatore pre-addestrato per il rilevamento di veicoli Come ho spiegato in precedenza, non addestreremo il nostro modello per individuare da zero le auto nei fotogrammi video, ma ne useremo uno pre-addestrato. Questi classificatori a cascata addestrati vengono solitamente archiviati nel formato XML, quindi dovresti scaricare il sistema a cascata che è stato addestrato per rilevare le auto e averlo nella directory del progetto. Video dimostrativo con le auto Puoi effettivamente utilizzare qualsiasi video che desideri purché contenga auto, il modello sarà in grado di rilevarle. Se già sei esperto in questo campo potresti divertirti a farlo in streaming da remoto. Installando un app sul telefonino che funga da IP-CAMERA e collegandoti tramite opencv, ti basterebbe poggiare il telefono in modo che riprenda la strada mentre guidi e tornato a case esaminare o creare un progetto ad hoc al tuo caso. Directory del progetto Rilevamento Di Veicoli In Tempo Reale La directory del tuo progetto dopo aver scaricato gratuitamente dovrebbe essere simile a questa ├── app.py ├── cars.mp4 └── haarcascade_car.xml Diamoci da fare Ora iniziamo a costruire ciò di cui abbiamo appena parlato, utilizzando il modello XML e il video dimostrativo nella directory del progetto. Carichiamo il nostro modello utilizzare cv2.CascadeClassifier() per caricare il modello haarcascade addestrato come mostrato nel codice sottostante. import cv2 cars_cascade = cv2.CascadeClassifier('haarcascade_car.xml') Rilevare le auto in un video con Python utilizzeremo il metodo detectMultiScale() per rilevare e ottenere le coordinate dei veicoli nei frame video. Il metodo detectMultiScale () riceve 3 parametri per fornire effettivamente le tue coordinate come mostrato di seguito Immagine in scala di grigi fattore di scala minVicini Immagine in scala di grigi specifica l'immagine da elaborare, nel nostro caso un'immagine in scala di grigi sarà un'immagine recuperata dai flussi video. ScaleFactor specifica di quanto viene ridotta la dimensione dell'immagine ad ogni scala dell'immagine, puoi saperne di più qui, un buon valore è per lo più scelto come 1.05 minNeighbors specifica quanti vicini dovrebbe avere ogni rettangolo candidato per mantenerlo, questo parametro influenzerà la qualità delle facce rilevate. Un valore più alto si traduce in un minor numero di rilevamenti, ma con una qualità più elevata di solito, 3-6 è un buon valore per questo Codice Python per rilevare le auto + le loro coordinate di posizione Quando esegui la riga di codice qui sotto, eseguirà il rilevamento delle auto nell'immagine del frame e quindi ci restituirà tutte le coordinate delle auto trovate (punto coordinate diagonali). cars = cars_cascade.detectMultiScale(frame, scaleFactor, minNeighbors) Disegnare un rettangolo attorno alle auto rilevate Dopo aver rilevato tutte le coordinate di tutte le auto in un frame, disegnamo un rettangolo attorno ad esso per consentirci di vedere visivamente il processo di rilevamento. Useremo il metodo cv2.rectangle() per disegnare un rettangolo attorno a ogni auto rilevata usando i punti di coordinate diagonali restituiti dal nostro classificatore a cascata. Codice per utilizzare il metodo cv2.rectangle() ​ cv2.rectangle(frame , point1, point2, color = (), thickness=value) Scriviamo una funzione per eseguire tutto il processo di rilevamento Dobbiamo condensare ciò che abbiamo appena appreso e metterlo in un'unica funzione che riceve i frame dell'immagine e quindi disegna rettangoli attorno ad essa utilizzando le coordinate rilevate proprio come mostrato di seguito. def detect_cars(frame): cars = cars_cascade.detectMultiScale(frame, 1.15, 4) for (x, y, w, h) in cars: cv2.rectangle(frame, (x, y), (x+w,y+h), color=(0, 255, 0), thickness=2) return frame Scriviamo una funzione per effettuare il processo di rilevamento su un video infine aggiungiamo una singola funzione per simulare l'intero processo dal caricamento del video, per eseguire il rilevamento del veicolo chiamando la funzione detect_cars e quindi eseguire il rendering di un frame con i veicoli rilevati sullo schermo. def Simulator(): CarVideo = cv2.VideoCapture('cars.mp4') while CarVideo.isOpened(): ret, frame = CarVideo.read() controlkey = cv2.waitKey(1) if ret: cars_frame = detect_cars(frame) #se stai programmando in locale #cv2.imshow('frame', cars_frame) #se usi colab cv2_imshow(cars_frame) else: break if controlkey == ord('q'): break Aggiungi queste due righe in modo da assicurarci di eseguire il nostro codice Python come script. Simulator() Mettiamo tutto insieme Ora sappiamo come eseguire ogni parte indipendente del nostro script di rilevamento, è ora di metterli insieme in modo da poterlo eseguire. Una volta che hai messo tutto il concetto che abbiamo imparato sopra in un app.py , il tuo codice apparirà come mostrato di seguito from google.colab.patches import cv2_imshow #Se usi Google Colab import cv2 cars_cascade = cv2.CascadeClassifier('haarcascade_car.xml') def detect_cars(frame): cars = cars_cascade.detectMultiScale(frame, 1.15, 4) for (x, y, w, h) in cars: cv2.rectangle(frame, (x, y), (x+w,y+h), color=(0, 255, 0), thickness=2) return frame def Simulator(): CarVideo = cv2.VideoCapture('cars.mp4') while CarVideo.isOpened(): ret, frame = CarVideo.read() controlkey = cv2.waitKey(1) if ret: cars_frame = detect_cars(frame) #se stai programmando in locale #cv2.imshow('frame', cars_frame) #se usi colab cv2_imshow(cars_frame) else: break if controlkey == ord('q'): break CarVideo.release() cv2.destroyAllWindows() Simulator() Siamo arrivati ​​alla fine del nostro articolo, spero che tu abbia imparato qualcosa, ora condividilo con i tuoi amici o colleghi. Scarica il progetto sul Rilevamento Di Veicoli In Tempo Reale Grazie mille per la lettura :)

  • L' intelligenza artificiale può riportare in vita i defunti

    E se potessi parlare con un facsimile digitale di una persona cara defunta? Parleresti davvero con lui/lei? Pensi che ciò ti aiuterebbe o te la farebbe mancare ancora di più ? Negli ultimi anni, la tecnologia è stata impiegata per resuscitare i morti, principalmente sotto forma di celebrità defunte. Curiosità sull'intelligenza artificiale e i defunti Carrie Fisher è stata renderizzata digitalmente per riprendere il ruolo della Principessa Leia nell'ultimo film di "Star Wars". Kanye West ha notoriamente regalato a Kim Kardashian un ologramma del suo defunto padre per il suo compleanno l'anno scorso. Più di recente, e in modo controverso, l'intelligenza artificiale è stata utilizzata per falsificare la voce dello chef Anthony Bourdain per fornire la narrazione nel film documentario "Roadrunner". In quello che sembra stranamente come un episodio di "Black Mirror", Microsoft ha annunciato all'inizio di quest'anno di aver ottenuto un brevetto per un software in grado di reincarnare le persone come chatbot, aprendo le porte a un uso ancora più ampio dell'IA per riportare in vita i morti. Abbiamo chiesto ai nostri esperti di facoltà la tecnologia AI in uso oggi, il futuro della reincarnazione digitale e le implicazioni etiche dell'immortalità artificiale. Come riportare in vita un defunto con l'intelligenza artificiale? Ti sembrerà strano ma in realtà è molto semplice e puoi farlo anche senza competenze. Da quando MyHeritage ha lanciato il suo strumento Deep Nostalgia, che rianima i morti con la tecnologia basata sull'intelligenza artificiale, sul sito Web sono state create più di 72 milioni di animazioni fotografiche. Questi tanti ricordi morbosi sono accaduti nonostante offrissero solo 10 diverse opzioni. Tuttavia, l'azienda ha appena raddoppiato questo numero di movimenti unici che è possibile applicare alle foto degli antenati defunti, incluso baciarsi e ballare. L' intelligenza artificiale riporta in vita i defunti Pensiamo che il miglior modo sia vederlo con i tuoi occhi... Abbiamo dato a Deep Nostalgia una foto di Einstein. E questo è stato il risultato dopo 15secondi di elaborazione. Vi invitiamo prima di vedere il video quì sotto ad osservare per 10 secondi la foto sopra. Deep Nostalgia AI fa progressi esponenziali Pochi direbbero che un'animazione realistica di antenati scomparsi da tempo non è degna di nota, come anche una singola fotografia rimasta di un parente del 19° secolo. Alimentato tramite un algoritmo di deep learning creato da D-ID, Deep Nostalgia ha fornito a molti utenti una seconda possibilità di avere connessioni emotive brevi ma intense con una simulazione della persona amata persa nel tempo. Tuttavia, le lacrime potrebbero essere inevitabili. Baci, sorrisi complessi, un cenno di approvazione e persino un lungo sguardo di compassione sono in serbo per coloro che cercano una scarica emotiva di nostalgia. Microsoft ha recentemente brevettato una tecnologia di simulazione umana digitale Sebbene possa sembrare che MyHeritage abbia il monopolio di rianimare i parenti morti per la nostalgia, ci sono altri progetti simili. A gennaio, Microsoft ha brevettato la tecnologia per un chatbot AI progettato per consentire agli utenti di parlare con simulazioni di cari defunti tramite una ricreazione digitale 3D. Il nuovo brevetto si chiama "Creazione di un chatbot conversazionale di una persona specifica" e descrive un sistema che integra dati vocali, immagini, post sui social media e messaggi elettronici per "creare o modificare un indice speciale nel tema della personalità della persona specifica ." Il brevetto arriva addirittura a suggerire che la tecnologia in arrivo "potrebbe corrispondere a un'entità passata o presente". Presentato come un memoriale vivente interattivo, l'imminente tecnologia di Microsoft potrebbe far sì che i vecchi messaggi vocali dei parenti morti vadano fuori copione, trasformando verbalmente il monologo per rivolgersi direttamente a te. E' etico riportare in vita i morti ? Da un lato, la morte di una persona che amiamo può causare un dolore inimmaginabile, dolore che potremmo voler alleviare con ogni mezzo possibile. Per molti, i metodi tradizionali di elaborazione delle perdite semplicemente non funzionano e si trovano intrappolati in un angosciante vuoto di dolore. Perché, allora, non abbracciare la tecnologia e fare affidamento su innovazioni all'avanguardia per chiedere aiuto? Comunicare con una resa digitale dell'individuo in questione potrebbe colmare il vuoto lasciato dal suo trapasso. Quando ci pensi, guardiamo già alle immagini, alle chat di testo e ai contenuti video/audio dei nostri cari defunti per conforto. E a volte reprime la tristezza. Con questo in mente, il piano di Microsoft potrebbe portare il sollievo dal dolore a un altro livello, trasformandolo da uno sforzo a senso unico, come prendere una pillola, in un'esperienza a due vie, simile a una sessione di terapia? D'altra parte, non possiamo non chiederci se non sia salutare tenersi in contatto con qualcuno che non è più con noi. Non è come riporli in un armadio o su uno scaffale, come se fossero un semplice oggetto – un gioco per computer o un visore per realtà virtuale – lì in casa, abbastanza reale ma non del tutto? Chi vuole un costante promemoria di ciò che non ha più? È proprio per questo motivo che molte persone in lutto in realtà non cercano conforto nelle immagini o nei filmati, o nei "souvenir dolorosi" come vengono spesso chiamati: è puramente troppo traumatico. Conclusione sull'intelligenza artificiale e i defunti Esistono varie teorie sulle fasi del lutto, ma il modello proposto dalla psichiatra Elizabeth Kübler-Ross è uno dei più comunemente usati. In questo modello, le cinque fasi sono: negazione rabbia contrattazione depressione accettazione. Immagino che possedere una riproduzione AI di un coniuge, figlio o genitore morto possa intrappolare le persone in lutto nella negazione o trascinarle indietro alla negazione dopo aver attraversato o completato le fasi successive. Potrebbe consentire alle persone in lutto di costruire un mondo immaginario in cui fingono che il defunto è ancora in vita. E dovremmo ricordare che, proprio come gli esseri umani, la tecnologia può essere fragile. Immagina che la persona in lutto arrivi a prendersi cura dell' IA tanto quanto la persona amata su cui si basa... e poi si blocca, o la rabbia e il turbamento li fanno cancellare ( oppure aumenta il costo mensile dell' IA tanto da non poterselo più permettere ). Non capita spesso di dover affrontare il tormento della perdita di una persona cara, ma che succeda due volte potrebbe essere devastante. Per non parlare poi del mercato che potrebbe crearsi. Sicuramente questa è una faccenda molto interessante da tenere sotto occhio.

  • Come diventare un Data Scientist freelance nel 2023

    Il panorama del lavoro oggi è cambiato radicalmente a causa della pandemia di Covid-19. Oltre al loro lavoro a tempo pieno, le persone ora hanno la flessibilità di affrontare le faccende secondarie che fungono da ulteriore fonte di reddito. Quando siamo passati al campo della scienza dei dati, il nostro obiettivo iniziale era trovare lavoro nel settore. Una volta ottenuto un lavoro diurno, tuttavia, ci siamo resi conto di avere la capacità di fare di più. (Molto di più ) Lavorare da casa significava che non dovevamo socializzare così spesso. Non dovevamo più viaggiare avanti e indietro per lavorare. Questo non ha solo fatto risparmiare tempo. Abbiamo risparmiato energia. Non eravamo più esausti alla fine di una giornata lavorativa, il che significava che potevo assumere compiti al di fuori del nostro lavoro. In questo articolo, ti guiderò attraverso la mia esperienza di freelance per la scienza dei dati. Ti fornirò anche suggerimenti su come iniziare come freelance di data science. Innanzitutto, esaminiamo i pro e i contro del libero professionista per la scienza dei dati. Vantaggi del libero professionista per la scienza dei dati. La parte migliore dell'avere una carriera da freelance è che puoi lavorare con persone provenienti da tutto il mondo. Le opportunità sono infinite e impari a guardare un problema da molte prospettive diverse. Puoi anche scegliere i tipi di progetti su cui lavorare, cosa che non è sempre possibile quando hai un lavoro a tempo pieno. Inoltre, come dipendente a tempo pieno, puoi lavorare solo in un singolo settore. Quando sei un freelance, ogni progetto su cui lavori ti fornirà un'esperienza di dominio in una nuova area. Quando lavori su una varietà di attività in molti domini diversi, il tuo portafoglio cresce. Non sei bloccato con un unico modo di fare le cose e puoi adattarti rapidamente a nuovi flussi di lavoro. La tua capacità di imparare migliorerà. Svantaggi del libero professionista per la scienza dei dati. Ci sono alcuni aspetti negativi nel diventare un libero professionista di data science. In primo luogo, è disponibile un numero limitato di lavori di data science freelance, soprattutto qui in italia. ( La mia esperienza da freelance per la maggior parte è stata svolta all'estero ) Di solito sono le aziende di medie e grandi dimensioni che assumono data scientist e queste aziende tendono ad assumere dipendenti a tempo pieno piuttosto che freelance. C'è una maggiore richiesta di sviluppatori web/designer freelance rispetto ai data scientist, ma tranquilli arriverà il nostro momento. Inoltre, una carriera da freelance non garantisce la sicurezza del lavoro e devi essere attivamente alla ricerca di nuovi compiti. Per questo motivo, è una buona idea mantenere il tuo lavoro a tempo pieno mentre assumi ruoli da freelance, soprattutto all'inizio. Cosa fa un Data scientist freelance ? In qualità di data scientist freelance, puoi creare modelli di apprendimento automatico per le organizzazioni su base una tantum. A volte, potresti persino essere pagato per mantenere e aggiornare continuamente questo modello man mano che arrivano nuovi dati. Tuttavia, le tue opzioni non si limitano alla costruzione di modelli. Poiché il mio lavoro a tempo pieno è nel campo del marketing, ho una certa esperienza in questo settore. Lo uso, insieme alle mie competenze sui dati, per aiutare i clienti a identificare il loro pubblico di destinazione e elaborare strategie di marketing. Un'altra abilità molto richiesta è la raccolta dei dati. Ho lavorato con individui e aziende per raccogliere dati esterni per aiutare con le loro attività di ricerca o costruzione di modelli. Ho lavorato come scrittore tecnico freelance per un po' di tempo. Scrivo tutorial sulla scienza dei dati e suggerimenti per le pubblicazioni, sia una tantum. Mi è stato anche chiesto di condurre seminari di formazione sulla scienza dei dati e corsi online per principianti del settore. Ci sono molte altre attività che puoi svolgere a seconda delle tue abilità. Puoi aiutare le organizzazioni a distribuire e monitorare i propri modelli di machine learning. Puoi consultare le aziende e fornire loro consigli in base ai dati che analizzi. Se sei un esperto di visualizzazioni di dati, puoi creare dashboard interattivi per i clienti in base ai dati disponibili. Come trovare un lavoro da data scientist freelance Quando le persone pensano per la prima volta di diventare freelance e lo cercano su internet i primi risultati che gli usciranno saranno dei consigli che nella maggior parte delle volte di conclude con il fatto che potrai ottenere successo con Friverr o UpWork. Tuttavia, la semplice registrazione su questi siti e l'invio di proposte di lavoro non è sufficiente per farti ottenere molti lavori. Queste piattaforme sono altamente sature. Per farti notare su di loro, devi costruire il tuo portafoglio ottenendo prima alcuni lavori. Suggerisco di creare prima un portafoglio al di fuori di queste piattaforme. La maggior parte dei datori di lavoro mi ha contattato al di fuori della piattaforma, tramite LinkedIn o via e-mail. Scrivete su quanti più siti, blog possibili di argomenti di vostra porta, spiegando come potreste aiutare possibili lettori. ( Potresti iniziare a scrivere un articolo per IntelligenzaArtificialeItalia.net per farti notare e sfruttare la loro visibilità ) Un cliente ha visto il mio tutorial sullo scraping di Twitter pubblicato su youtube mi ha assunto per costruire un web-scraper per lui. Un'altra azienda mi ha assunto a causa di un'analisi che ho pubblicato su linkedin, poiché volevano qualcosa di simile per identificare il loro pubblico di destinazione. Ho anche ottenuto alcuni lavori grazie alla mia rete. Amici universitari e colleghi di lavoro mi hanno consigliato per lavori in passato. Le persone preferiscono assumere quando c'è fiducia. È più probabile che tu ottenga un lavoro da qualcuno che è stato assicurato dal suo pari delle tue capacità, rispetto a una persona a cui hai appena inviato una proposta su Upwork. Se diventi un libero professionista a tempo pieno, uno svantaggio è che finisci per perdere questa rete. Non hai più colleghi o manager che ti consigliano per i ruoli. Per questo motivo, suggerisco di partecipare a eventi di data science locali o comunità online ( Come questa piattaforma ) in cui puoi interagire con altri esperti dello stesso settore. Come sviluppare le competenze necessarie per diventare un data scientist freelance ? Per diventare un data scientist freelance, è necessario possedere una solida base di competenze in diverse aree, come statistica, analisi dei dati, programmazione e machine learning. Un modo efficace per sviluppare queste competenze è seguire un percorso di studi universitario o post-laurea in scienza dei dati o in un campo correlato. Tuttavia, anche una formazione autodidatta può essere efficace, soprattutto se si ha già una base di conoscenze in queste aree. Ci sono molti corsi online, libri e tutorial disponibili per imparare le competenze necessarie per diventare un data scientist freelance. Inoltre, il nostro sito intelligenzaartificialeitalia.net è il punto di riferimento in Italia per iniziare ad avvicinarsi a questo mondo e acquisire le competenze necessarie per diventare un data scientist freelance di successo. È anche importante fare pratica e mettere in pratica ciò che si impara, ad esempio partecipando a hackathon o progetti open source. Un altro modo per sviluppare le competenze è lavorare come data scientist freelance in progetti a breve termine o in stage presso aziende o organizzazioni. In questo modo, si avrà la possibilità di acquisire esperienza pratica e di imparare da professionisti esperti nel settore. Come gestire la propria attività di data scientist freelance ? Gestire la propria attività di data scientist freelance richiede molta pianificazione e organizzazione. È importante avere una chiara comprensione delle proprie competenze e dei servizi che si offrono, nonché del mercato e dei concorrenti. Una volta che si è definita la propria nicchia di mercato e si è stabilito un piano d'azione, è importante creare una presenza online forte e professionale, ad esempio attraverso il proprio sito web e i profili sui social media. Inoltre, è importante mantenere una buona comunicazione con i clienti attuali e potenziali, fornendo loro aggiornamenti regolari e rispondendo tempestivamente alle loro richieste. Un altro aspetto importante è gestire il tempo in modo efficace, assegnando priorità alle attività e utilizzando strumenti di pianificazione e organizzazione del lavoro. Infine, è importante essere flessibili e adattarsi rapidamente ai cambiamenti del mercato e delle esigenze dei clienti. Gestire la propria attività di data scientist freelance può essere sfidante, ma con la giusta pianificazione e organizzazione, può anche essere molto gratificante. Suggerimenti aggiuntivi Dopo aver completato un'attività da freelance, assicurati di chiedere una raccomandazione al tuo cliente. I consigli sono la prova che hai svolto un lavoro soddisfacente e forniranno ai futuri clienti fiducia nei tuoi risultati. Ciò aumenta le tue possibilità di essere assunto di nuovo. Piattaforme come Upwork e Fiverr generalmente mostrano i loro freelance più votati nella prima pagina di ogni categoria. Se lavori su queste piattaforme, una raccomandazione aumenterà le tue possibilità di visibilità. Questo rende più probabile che tu venga assunto di nuovo per una posizione simile. Inoltre, assicurati di fornire sempre un lavoro di alta qualità per il tuo cliente. Molti dei miei accordi da freelance sono iniziati una tantum e, poiché il cliente ha apprezzato la qualità del lavoro, ha deciso di continuare a lavorare con me. Se fornisci costantemente i tuoi risultati in tempo e soddisfi le aspettative del tuo cliente, prenderanno anche in considerazione l'assunzione di te per attività future che si presentano invece di avvicinarsi ad altri candidati. Questo è tutto per questo articolo! Speriamo che tu l'abbia trovato utile e buona fortuna per il tuo viaggio nella scienza dei dati.

  • Come creare una rete neurale con java

    In questo post affronteremo l'Intelligenza Artificiale a piccoli passi e proveremo a costruire una rete neurale molto semplice in Java. COS'È UNA RETE NEURALE? Una rete neurale è una rappresentazione software di come funziona il cervello. Sfortunatamente, non sappiamo ancora come funzioni esattamente il cervello, ma conosciamo un po' la biologia alla base di questo processo: il cervello umano è costituito da 100 miliardi di cellule chiamate neuroni, collegate tra loro da sinapsi. Se un numero sufficiente di sinapsi si collega a un neurone si attiverà. Questo processo è noto come "pensare". Proviamo quindi a modellare il processo di cui sopra utilizzando un esempio molto semplice che ha 3 input (sinapsi) e si traduce in un singolo output (1 neurone di attivazione). Creare una semplice rete neurale con java Addestreremo la nostra rete neurale nell' immagine sopra per risolvere il seguente problema. Riesci a capire lo schema e indovinare quale dovrebbe essere il valore del nuovo input? 0 o 1? La risposta è in realtà molto semplicemente il valore della colonna più a sinistra, cioè 1! Quindi, ora che abbiamo il modello di un cervello umano, cercheremo di far apprendere alla nostra rete neurale quale schema è dato al set di addestramento. Per prima cosa assegneremo a ciascun input un numero casuale per produrre un output. La formula per calcolare l'uscita è data come segue: ∑ weioghtio.ionptutio = weioght1.ionptut1 + weioght2.ionptut2 + weioght3.ionptut3 A quanto pare vorremmo normalizzare questo valore di output su qualcosa tra 0 e 1 in modo che la previsione abbia senso. Dopo la normalizzazione confrontiamo l'output con l'output atteso dei nostri input. Questo ci dà l'errore, o quanto è lontana la nostra previsione. Possiamo quindi utilizzare questo errore per regolare leggermente i pesi della nostra rete neurale e tentare nuovamente la fortuna sullo stesso input. Questo può essere riassunto nella seguente immagine: Ripetiamo questo processo di addestramento per tutti gli input 10.000 volte per raggiungere una rete neurale adeguatamente addestrata. Possiamo quindi utilizzare questa rete neurale per fare previsioni su nuovi input! Prima di passare all'implementazione, tuttavia, dobbiamo ancora chiarire come abbiamo ottenuto la normalizzazione e l'adeguamento del peso in base all'errore (noto anche come back-propagation). Normalizzare i dati per la rete neurale con java In una rete neurale di ispirazione biologica, l'output di un neurone è solitamente un'astrazione che rappresenta la velocità di attivazione del potenziale d'azione nella cellula. Nella sua forma più semplice, questo è un valore binario, cioè o il neurone si sta attivando o meno. Da qui la necessità di normalizzazione di questo valore di uscita. Per ottenere questa normalizzazione applichiamo quella che è nota come funzione di attivazione all'output del neurone. Se prendiamo l'esempio di una funzione passo Heaviside davvero semplice che assegna uno 0 a qualsiasi valore negativo e un 1 a qualsiasi valore positivo, allora sarebbe necessario un gran numero di neuroni per raggiungere la granularità richiesta di regolare lentamente i pesi per raggiungere un consenso accettabile del set di formazione. Come vedremo nella prossima sezione sulla retropropagazione, questo concetto di aggiustamento lento dei pesi può essere rappresentato matematicamente come la pendenza della funzione di attivazione. In termini biologici, può essere considerato come l'aumento della velocità di accensione che si verifica all'aumentare della corrente di ingresso. Se dovessimo utilizzare una funzione lineare invece della funzione di Heaviside, scopriremmo che la rete risultante avrebbe una convergenza instabile perché gli input dei neuroni lungo i percorsi preferiti tenderebbero ad aumentare senza limiti, poiché una funzione lineare non è normalizzabile. Tutti i problemi sopra menzionati possono essere gestiti utilizzando una funzione di attivazione sigmoidea normalizzabile. Un modello realistico rimane a zero fino a quando non viene ricevuta la corrente di ingresso, a quel punto la frequenza di attivazione aumenta rapidamente all'inizio, ma si avvicina gradualmente a un asintoto con una frequenza di attivazione del 100%. Matematicamente, questo è simile a: Se tracciata su un grafico, la funzione Sigmoid disegna una curva a forma di S: Pertanto, diventa ora la formula finale per l'output di un neurone : Ci sono altre funzioni di normalizzazione che possiamo usare, ma il sigmoide ha il vantaggio di essere abbastanza semplice e di avere anche una semplice derivata che sarà utile quando osserveremo la propagazione posteriore di seguito. Back Propagation per la rete neurale con java Durante il ciclo di allenamento, abbiamo regolato i pesi in base all'errore. Per fare ciò, possiamo utilizzare la formula "Derivata ponderata per l'errore". UNdjtuStment = error.ionptut.SiogmoiodCturveGrundioent(otutptut) Il motivo per cui utilizziamo questa formula è che in primo luogo, vogliamo rendere la regolazione proporzionale alla dimensione dell'errore. In secondo luogo, moltiplichiamo per l'input, che è uno 0 o un 1. Se l'input è 0, il peso non viene regolato. Infine, moltiplichiamo per il gradiente della curva Sigmoide (o la derivata). Il motivo per cui utilizziamo il gradiente è perché stiamo cercando di ridurre al minimo la perdita. In particolare, lo facciamo con un metodo di discesa del gradiente . Fondamentalmente significa che dal nostro punto corrente nello spazio dei parametri (determinato dall'insieme completo dei pesi correnti), vogliamo andare in una direzione che diminuirà la funzione di perdita. Visualizza in piedi su una collina e cammina lungo la direzione in cui il pendio è più ripido. Il metodo di discesa del gradiente applicato alla nostra rete neurale è illustrato come segue: Se l'output del neurone è un grande numero positivo o negativo, significa che il neurone era abbastanza sicuro in un modo o nell'altro. Dal grafico sigmoideo, possiamo vedere che in grandi numeri la curva sigmoidea ha un gradiente poco profondo. Pertanto, se il neurone è sicuro che il peso esistente sia corretto, non vuole regolarlo molto e moltiplicandolo per il gradiente della curva sigmoidea si ottiene questo. La derivata della funzione sigmoidea è data dalla seguente formula SiogmoiodCturveGrundioent(otutptut)= otutptut.(1−otutptut) Sostituendo questo di nuovo nella formula di regolazione ci dà UNdjtuStment=error.ionptut.otutptut.(1−otutptut) Codice Java per la rete neurale Un punto importante ma sottile che è stato tralasciato quando si spiega la matematica di cui sopra è che per ogni iterazione di addestramento, le operazioni matematiche vengono eseguite contemporaneamente sull'intero set di addestramento. Pertanto, utilizzeremo le matrici per memorizzare l'insieme dei vettori di input, i pesi e gli output attesi. Inizieremo con la classe NeuronLayer che è solo un "punto di accesso" per i pesi nella nostra implementazione della rete neurale. Gli forniamo il numero di input per neurone e il numero di neuroni che può utilizzare per costruire una tabella dei pesi. Nel nostro esempio attuale, questo è semplicemente l'ultimo neurone di output che ha i 3 neuroni di input. public class NeuronLayer { public final Function activationFunction, activationFunctionDerivative; double[][] weights; public NeuronLayer(int numberOfNeurons, int numberOfInputsPerNeuron) { weights = new double[numberOfInputsPerNeuron][numberOfNeurons]; for (int i = 0; i < numberOfInputsPerNeuron; ++i) { for (int j = 0; j < numberOfNeurons; ++j) { weights[i][j] = (2 * Math.random()) - 1; // shift the range from 0-1 to -1 to 1 } } activationFunction = NNMath::sigmoid; activationFunctionDerivative = NNMath::sigmoidDerivative; } public void adjustWeights(double[][] adjustment) { this.weights = NNMath.matrixAdd(weights, adjustment); } } La nostra classe di rete neurale è dove si svolgono tutte le azioni. Prende come costruttore NeuronLayere ha 2 funzioni principali: think: calcola le uscite di un dato set di ingressi train: esegue i tempi del ciclo di allenamento numberOfTrainingIterations(solitamente un numero elevato come 10.000). Si noti che l'allenamento stesso implica il calcolo dell'output e quindi la regolazione dei pesi di conseguenza public class NeuralNetSimple { private final NeuronLayer layer1; private double[][] outputLayer1; public NeuralNetSimple(NeuronLayer layer1) { this.layer1 = layer1; } public void think(double[][] inputs) { outputLayer1 = apply(matrixMultiply(inputs, layer1.weights), layer1.activationFunction); } public void train(double[][] inputs, double[][] outputs, int numberOfTrainingIterations) { for (int i = 0; i < numberOfTrainingIterations; ++i) {// pass the training set through the network think(inputs);// adjust weights by error * input * output * (1 - output) double[][] errorLayer1 = matrixSubtract(outputs, outputLayer1); double[][] deltaLayer1 = scalarMultiply(errorLayer1, apply(outputLayer1, layer1.activationFunctionDerivative)); double[][] adjustmentLayer1 = matrixMultiply(matrixTranspose(inputs), deltaLayer1); // adjust the weights this.layer1.adjustWeights(adjustmentLayer1); } } public double[][] getOutput() { return outputLayer1; } } Infine abbiamo il nostro metodo principale in cui impostiamo i nostri dati di allenamento, alleniamo la nostra rete e le chiediamo di fare previsioni sui dati di test public class LearnFirstColumnSimple { public static void main(String args[]) { // create hidden layer that has 1 neuron and 3 inputs NeuronLayer layer1 = new NeuronLayer(1, 3); NeuralNetSimple net = new NeuralNetSimple(layer1); // train the net double[][] inputs = new double[][]{{0, 0, 1},{1, 1, 1},{1, 0, 1},{0, 1, 1}}; double[][] outputs = new double[][]{{0},{1},{1},{0}}; System.out.println("Training the neural net..."); net.train(inputs, outputs, 10000); System.out.println("Finished training"); System.out.println("Layer 1 weights"); System.out.println(layer1); // calculate the predictions on unknown data// 1, 0, 0 predict(new double[][], net);// 0, 1, 0 predict(new double[][], net);// 1, 1, 0 predict(new double[][], net); } public static void predict(double[][] testInput, NeuralNetSimple net) { net.think(testInput); // then System.out.println("Prediction on data "+ testInput[0][0] + " "+ testInput[0][1] + " "+ testInput[0][2] + " -> "+ net.getOutput()[0][0] + ", expected -> " + testInput[0][0]); } } Eseguendo il nostro esempio sopra, vediamo che la nostra rete ha fatto un buon lavoro nel prevedere quando l'input più a sinistra è 1 ma non sembra che riesca a ottenere lo 0 giusto! Questo perché il secondo e il terzo peso di input dovevano essere entrambi più vicini a 0. Training the neural net... Finished training Layer 1 weights [[9.672988220005456 ] [-0.2089781536334558 ] [-4.628957430141331 ] ] Prediction on data 1.0 0.0 0.0 -> 0.9999370425325528, expected -> 1.0 Prediction on data 0.0 1.0 0.0 -> 0.4479447696095623, expected -> 0.0 Prediction on data 1.0 1.0 0.0 -> 0.9999224112145153, expected -> 1.0 Nel prossimo post vedremo se l'aggiunta di un altro livello alla nostra rete neurale può aiutare a migliorare le previsioni ;)

  • Differenza tra Batch e Epoch nel deep learning

    Il concetto di Batch e Epoch nell'apprendimento profondo è molto importante. In questo articolo esamineremo le definizioni e la differenza tra Batch e Epoch. Ricordiamo che sono argomenti legati alla discesa del gradiente stocastico che è un algoritmo di apprendimento che ha un definito numero di iperparametri. Due iperparametri che spesso confondono i principianti sono la dimensione del batch e il numero di epoch. Sono entrambi valori interi e sembrano fare la stessa cosa. In questo post scoprirai la differenza tra batch ed epoch nella discesa del gradiente stocastico. Dopo aver letto questo post, saprai: La discesa del gradiente stocastico è un algoritmo di apprendimento iterativo che utilizza un set di dati di addestramento per aggiornare un modello. La dimensione del batch è un iperparametro di discesa del gradiente che controlla il numero di campioni di addestramento su cui elaborare prima che i parametri interni del modello vengano aggiornati. Il numero di epoch è un iperparametro della discesa del gradiente che controlla il numero di passaggi completi attraverso il set di dati di addestramento. Indice Questo post è diviso in cinque parti; sono: Discesa a gradiente stocastico , Che cos'è un campione? Che cos'è un batch (lotto)? Che cos'è un epoch? Qual è la differenza tra batch ed Epoch? Discesa a gradiente stocastico Stochastic Gradient Descent, o SGD in breve, è un algoritmo di ottimizzazione utilizzato per addestrare algoritmi di apprendimento automatico, in particolare le reti neurali artificiali utilizzate nel deep learning. Il compito dell'algoritmo è trovare un insieme di parametri del modello interno che funzionino bene rispetto ad alcune misure di prestazioni come la perdita logaritmica o l'errore quadratico medio. L'ottimizzazione è un tipo di processo di ricerca e puoi pensare a questa ricerca come a un apprendimento. L'algoritmo di ottimizzazione è chiamato " discesa del gradiente ", dove " gradiente " si riferisce al calcolo di un gradiente di errore o pendenza di errore e "discesa" si riferisce allo spostamento verso il basso lungo quel pendio verso un livello minimo di errore. L'algoritmo è iterativo. Ciò significa che il processo di ricerca si svolge su più passaggi discreti, ogni passaggio si spera migliora leggermente i parametri del modello. Ogni passaggio prevede l'utilizzo del modello con l'insieme corrente di parametri interni per effettuare previsioni su alcuni campioni, confrontare le previsioni con i risultati attesi reali, calcolare l'errore e utilizzare l'errore per aggiornare i parametri del modello interno. Questa procedura di aggiornamento è spesso diversa da algoritmo a algoritmo, ma nel caso di reti neurali artificiali viene utilizzato l' algoritmo di aggiornamento della backpropagation . Prima di approfondire i batch e le epoch, diamo un'occhiata a cosa intendiamo per campione. Che cos'è un campione? Un campione è una singola riga di dati. Contiene input che vengono inseriti nell'algoritmo e un output che viene utilizzato per confrontare la previsione e calcolare un errore. Un set di dati di addestramento è composto da molte righe di dati, quindi da molti campioni. Un campione può anche essere chiamato istanza, osservazione, vettore di input o vettore di funzionalità. Ma rimane sempre un campione... Ora che sappiamo cos'è un campione, definiamo un batch. Che cos'è un batch? La dimensione del batch è un iperparametro che definisce il numero di campioni da elaborare prima di aggiornare i parametri del modello interno. Pensa a un batch come a un ciclo for che esegue un'iterazione su uno o più campioni e fa previsioni. Alla fine del batch, le previsioni vengono confrontate con le variabili di output previste e viene calcolato un errore. Da questo errore, l'algoritmo di aggiornamento viene utilizzato per migliorare il modello, ad esempio per spostarsi verso il basso lungo il gradiente di errore. Un set di dati di addestramento può essere suddiviso in uno o più batch. Quando tutti i campioni di addestramento vengono utilizzati per creare un batch, l'algoritmo di apprendimento viene chiamato discesa gradiente batch. Quando il batch ha le dimensioni di un campione, l'algoritmo di apprendimento è chiamato discesa del gradiente stocastico. Quando la dimensione del batch è più di un campione e inferiore alla dimensione del set di dati di addestramento, l'algoritmo di apprendimento viene chiamato discesa del gradiente mini-batch. Discesa gradiente batch . Dimensione del lotto = Dimensione del set di allenamento Discesa a gradiente stocastico . Dimensione del lotto = 1 Discesa gradiente mini-batch . 1 < Dimensione lotto < Dimensione del set di allenamento Nel caso della discesa del gradiente di mini-batch, le dimensioni dei lotti popolari includono 32, 64 e 128 campioni. Ti sembrano familiari questi numeri ? In quanti tutorial li hai visti ? Cosa succede se il set di vdati non viene diviso in modo uniforme per la dimensione del batch? Questo può e succede spesso quando si addestra un modello. Significa semplicemente che il batch finale ha meno campioni rispetto agli altri batch. In alternativa, è possibile rimuovere alcuni campioni dal set di dati o modificare la dimensione del batch in modo tale che il numero di campioni nel set di dati si divida in modo uniforme per la dimensione del batch. Che cos'è un epoch? Il numero di epoch è un iperparametro che definisce il numero di volte in cui l'algoritmo di apprendimento funzionerà attraverso l'intero set di dati di addestramento. Un'epoch significa che ogni campione nel set di dati di addestramento ha avuto l'opportunità di aggiornare i parametri del modello interno. Puoi pensare a un ciclo for sul numero di epoch in cui ogni ciclo procede sul set di dati di addestramento. All'interno di questo ciclo for è presente un altro ciclo for nidificato che scorre su ogni batch di campioni, in cui un batch ha il numero di campioni "dimensione batch" specificato. per semplificarlo con lo pseudo codice puoi vederlo così epoch = 10 batch = 1 per ( i=0 ; i<epoch ; i++ ) // scorro per 10 volte il set di dati // suddivido il dataset in batch per ogni batch faccio previsione calcolo errore per migliorare Il numero di epoch è tradizionalmente grande, spesso centinaia o migliaia, consentendo all'algoritmo di apprendimento di essere eseguito fino a quando l'errore del modello non è stato sufficientemente ridotto al minimo. Potresti vedere esempi del numero di epoch nella letteratura e nei tutorial impostati su 10, 100, 500, 1000 e oltre. È comune creare grafici a linee che mostrano le epoch lungo l'asse x come tempo e l'errore del modello sull'asse y. Questi grafici sono talvolta chiamati curve di apprendimento. Questi grafici possono aiutare a diagnosticare se il modello ha appreso in modo eccessivo, appreso in modo insufficiente o se si adatta adeguatamente al set di dati di addestramento. Qual è la differenza tra batch ed Epoch? La dimensione del batch è il numero di campioni elaborati prima dell'aggiornamento del modello mentre il numero di epoch è quante volte l'algoritmo deve usare il set di dati di addestramento. La dimensione di un batch deve essere maggiore o uguale a uno e minore o uguale al numero di campioni nel set di dati di addestramento. Il numero di epoch può essere impostato su un valore intero compreso tra uno e infinito. Puoi eseguire l'algoritmo per tutto il tempo che desideri e persino interromperlo utilizzando altri criteri oltre a un numero fisso di epoch, come una modifica (o mancanza di modifica) nell'errore del modello nel tempo. Sono entrambi valori interi e sono entrambi iperparametri per l'algoritmo di apprendimento, ad esempio parametri per il processo di apprendimento, non parametri del modello interno trovati dal processo di apprendimento. È necessario specificare la dimensione del batch e il numero di epoche per un algoritmo di apprendimento. Non ci sono regole magiche su come configurare questi parametri. Devi provare valori diversi e vedere cosa funziona meglio per il tuo problema. Esempio pratico Batch e Epoch Visualizziamo questo concreto con un piccolo esempio. Supponiamo di avere un set di dati con 200 campioni (righe di dati) e di scegliere una dimensione batch di 5 e 1.000 epoch. Dati: SetDiDati = 200Campioni //200righe batch = 5Campioni //5righe epoch = 1000 //dobbiamo elaborare 1000 volte il SetDiDati Ciò significa che il set di dati sarà diviso in 40 batch , ciascuno con cinque campioni. I pesi del modello verranno aggiornati dopo ogni lotto di cinque campioni. Ciò significa anche che un epoch comporterà 40 batch o 40 aggiornamenti del modello. Con 1.000 epoch, il modello sarà esposto o passerà attraverso l'intero set di dati 1.000 volte. Questo è un totale di 40.000 batch durante l'intero processo di formazione. Riepilogo Differenza tra Batch e Epoch In questo post, hai scoperto la differenza tra batch ed epoch nella discesa del gradiente stocastico. Nello specifico hai imparato: La discesa del gradiente stocastico è un algoritmo di apprendimento iterativo che utilizza un set di dati di addestramento per aggiornare un modello. La dimensione del batch è un iperparametro di discesa del gradiente che controlla il numero di campioni di addestramento su cui elaborare prima che i parametri interni del modello vengano aggiornati. Il numero di epoch è un iperparametro della discesa del gradiente che controlla il numero di passaggi completi attraverso il set di dati di addestramento. Hai domande? Falle quì nei commenti, faremo del nostro meglio per rispondere.

  • Bambini e intelligenza artificiale rischi e opportunità

    Siamo sicuri che i bambini di oggi abbiano un rapporto sano con l' Intelligenza Artificiale? La capacità dell'IA di avere conseguenze a lungo termine sulla crescita e sul futuro di un bambino è reale, ma c'è poca protezione per salvaguardarlo da questi inconvenienti L'interazione sempre più frequente dei bambini con i sistemi di IA solleva una serie di criticità, sia in termini di conseguenze sociali e politiche della dataficazione e della governance algoritmica, sia per quanto riguarda le loro conseguenze psicologiche e cognitive. Ultimamente stiamo prendendo sempre più a cuore questo argomento, anche grazie all' aiuto di Nicola Matarese, presentiamo studi sull'argomento, le sfide previste per quanto riguarda i diritti alla privacy e la sensibilizzazione a un sano utilizzo. Bambini e intelligenza artificiale cosa immaginiamo? Dopo aver menzionato i bambini e l'intelligenza artificiale (AI), siamo subito portati a pensare all'interazione bambino-robot . Tuttavia, gli incontri dei bambini con l'IA nella vita di tutti i giorni sono molteplici e non sempre implicano l'interazione con agenti intelligenti fisici, ovvero robot sociali incarnati in un artefatto materiale. Invece, i robot destinati all'interazione con i bambini piccoli sono spesso artefatti materiali (in parte) automatizzati che simulano l'interazione umana. Inoltre, ancora oggi, i bambini incontrano perlopiù l'intelligenza artificiale nella sua forma software e quindi immateriale , nonostante la sua materialità digitale. I bambini utilizzano l' intelligenza artificiale ? I bambini interagiscono già con le tecnologie d'intelligenza artificiale in molti modi diversi: sono incorporati in giocattoli assistenti virtuali videogiochi software di apprendimento adattivo. Gli algoritmi forniscono consigli ai bambini su quali video guardare dopo, quali notizie leggere, quale musica ascoltare e con chi stringere amicizia o chi seguire sui social. Tuttavia, viene prestata poca attenzione al modo in cui i sistemi di intelligenza artificiale influenzeranno i bambini e i loro diritti. Ciò è particolarmente preoccupante, poiché i bambini sono meno in grado di comprendere appieno le implicazioni delle tecnologie di intelligenza artificiale e spesso non hanno l'opportunità di comunicare le proprie opinioni, né i giusti sostenitori per sostenerle. I bambini spesso non hanno le risorse per rispondere a istanze di pregiudizio o per correggere eventuali idee sbagliate nei loro dati. Ma poiché i bambini utilizzano sempre più o sono interessati dai sistemi di intelligenza artificiale nelle situazioni quotidiane, cresce la mancanza di attenzione sulle opportunità e sui rischi che i sistemi di intelligenza artificiale rappresentano per i bambini. Inoltre, la maggior parte delle strategie nazionali di IA e le principali linee guida etiche fanno solo menzione superficiale dei bambini e dei loro bisogni specifici . Per le politiche nazionali, i riferimenti ai bambini sono più spesso nel contesto della loro preparazione a lavorare in un'economia incentrata sull'intelligenza artificiale. Come i bambini interagiscono con l' intelligenza artificiale? I dati di DataChildFutures – progetto finanziato da Fondazione Cariplo nell'ambito del contributo Ricerca Sociale 2019 e che studierà la dataficazione della vita quotidiana delle famiglie italiane per il prossimo triennio – mostrano la complessa rete di interazioni con i dispositivi connessi nel contesto domestico , attraverso il quale i bambini e i loro genitori generano dati. In primo luogo, la ricerca mostra : la presenza pervasiva di smartphone, tablet, tv, console, pc, etc.. Tutte le famiglie intervistate possiedono uno smartphone e l'84% possiede almeno un tablet. Altrettanto apprezzati sono gli abbonamenti alle piattaforme on demand (74%). I dati rivelano anche la rapida diffusione di smart speaker, dispositivi indossabili (come smartwatch e cinturini per il fitness) e giocattoli connessi a Internet nelle famiglie italiane con bambini di età inferiore agli 8 anni (Figura 1). Particolarmente importante è la crescente diffusione degli smart speaker , ai quali bambini e genitori accedono tramite comandi vocali: il 46% delle famiglie partecipanti dispone di assistenti virtuali connessi a Internet. Infine, i giocattoli e i dispositivi indossabili connessi a Internet si trovano rispettivamente nel 40% e nel 57% delle famiglie partecipanti. L'autonomia dei bambini nell'utilizzo dei dispositivi varia (Figura 2) a seconda del tipo di media disponibile in casa e dell'orientamento tecnologico dei genitori. Quasi i due terzi dei bambini italiani di età inferiore agli otto anni utilizzano giocattoli connessi in modo indipendente. Rispetto ad altri dispositivi, i tablet si distinguono in quanto la stessa percentuale di bambini li utilizza in modo indipendente (43%) o attraverso la supervisione dei genitori (42%). Al contrario, l'uso della piattaforma on-demand è raramente autonomo (26%) e avviene principalmente in presenza di genitori e altri adulti (68%). Man mano che i dispositivi domestici diventano sempre più dotati di sensori e connessi alle reti, vengono utilizzati dai membri delle famiglie per mediare gli aspetti più banali e intimi della vita familiare . Di conseguenza, i dispositivi digitali si insinuano nelle pratiche di routine e di cura del contesto domestico , ad esempio pratiche di gioco e significati della vita quotidiana sono plasmati dalla progressiva integrazione dei media digitali nella casa. Facendo riferimento al caso emblematico degli smart speaker, i nostri dati mostrano che i membri delle famiglie li utilizzano più volte al giorno per svolgere diverse attività , come : ascoltare musica recuperare informazioni promemoria e notizie comunicare con gli altri controllare altri dispositivi. In particolare, i nostri dati forniscono informazioni su come l'intelligenza artificiale viene integrata nella vita quotidiana dei bambini, facilitata dalle pratiche genitoriali Per essere più specifici il 43% dei proprietari di altoparlanti intelligenti ( Amazon echo o Google home ) li usa per raccontare storie della buonanotte ai propri figli ogni giorno. Attraverso pratiche di uso intimo e quotidiano, gli altoparlanti intelligenti (così come altri oggetti) vengono incorporati nelle routine domestiche e nel tessuto delle relazioni familiari al punto da diventare invisibili e dati per scontati. Questo risultato illustra il processo di 'addomesticamento' (Silverstone e Hirsh, 1992; Haddon, 2004) di dispositivi e giocattoli connessi a Internet nelle famiglie italiane. Il termine esprime il processo attraverso il quale le famiglie accolgono i manufatti nella sfera privata, e li interpretano in relazione al contesto domestico e ai suoi usi . Allo stesso tempo, il concetto indica come la famiglia si adatti al nuovo mezzo in modo complementare. Bambini e intelligenza artificiale opportunità e rischi Questa realtà porta con sé un'enorme quantità di opportunità e rischi. Senza un'attenzione specifica ai bambini, l'evoluzione di questa tecnologia potrebbe procedere senza tener conto dei bisogni e dei diritti specifici dei bambini. Il sano sviluppo dei bambini è fondamentale per il benessere futuro di qualsiasi società e il costo per la società del fallimento dei nostri figli è enorme. Con questo in mente, abbiamo iniziato a delineare le aree in cui le considerazioni etiche sono più necessarie per difendere e proteggere i diritti dei bambini nell'era dell'IA. Questo schema servirà come punto di partenza per una serie di documenti collaborativi che esploreranno ogni area in modo più dettagliato e offriranno raccomandazioni concrete. Bambini e intelligenza artificiale opportunità : Migliore è l'IA, migliore è l'adattamento ai bisogni, al contesto, alle preferenze e alle priorità di una persona. L'IA adattabile ha implicazioni di vasta portata, sbloccando opportunità che vanno da: Strumenti di apprendimento personalizzati, ossia strumenti che possono ampliare l'accesso e migliorare i risultati educativi per i bambini e adulti allo stesso modo. Facilitare e Migliorare l'accesso alle opportunità di lavoro, la condivisione delle risorse, l'occupazione a lungo termine e altre forme di networking che ci consentano di ridurre gli sprechi (sia in termini di tempo che di risorse) e massimizzare le opportunità. Salute, ad esempio, la potenza combinata di Big Data e AI potrebbe permetterci di raggiungere finalmente la capacità di elaborare grandi quantità di dati sanitari che potrebbero svelare le intuizioni nascoste di cui abbiamo bisogno per decifrare il virus HIV o risolvere una qualsiasi delle tante malattie che colpiscono bambini di tutto il mondo. Pianificazione urbana, l'intelligenza artificiale può aiutarci a mappare e gestire meglio qualsiasi cosa, dalla gestione dei rifiuti al traffico, per garantire che le nostre città possano essere case più sicure, più pulite e più sane in oltre la metà del mondo. Agricoltura, l'intelligenza artificiale può anche aiutarci a comprendere meglio i rischi e opportunità per la produzione agricola, consentendoci di spostare le risorse dove è più probabile che siano produttive e massimizzare i nostri raccolti in un modo che sia sicuro e salutare per il nostro ambiente. Accessibilità, la tecnologia AI offre già più dei sistemi "intelligenti": alimenta assistenti virtuali, dispositivi robotici, applicazioni intelligenti e altre tecnologie che possono consentire l'accessibilità a persone diversamente abili, sia offrendo supporto fisico. Supporto Cognitivo, Le tecnologie di intelligenza artificiale possono integrare la nostra intelligenza e abilità innate, consentendoci di accedere alle informazioni più velocemente e diventare più efficaci nei nostri vari ruoli personali e professionali. Mentale/emotivo, I "bot" guidati dall'intelligenza artificiale vengono già utilizzati per agire come terapisti virtuali, estendendo l'accesso al supporto per la salute mentale a coloro che non sono in grado di accedere e permettersi le forme tradizionali. Bambini e intelligenza artificiale rischi : Le implicazioni che l'IA ha per la privacy, la sicurezza e la protezione dei bambini rientrano in un ampio spettro, dai vantaggi legati alla capacità di comprendere le minacce che i bambini devono affrontare con maggiore specificità e accuratezza che mai (e rispondere di conseguenza), ai rischi legati a violazioni della privacy non intenzionali. Le implicazioni positive e negative per la privacy, la sicurezza e la protezione dei bambini nell'era dell'IA meritano un attento esame. Ci concentreremo in particolare sulle seguenti dimensioni di privacy, sicurezza e protezione: Inclusione e Equità, Poiché consentiamo alle macchine di prendere decisioni critiche su chi viene incluso ed escluso da questo tipo di opportunità vitali, dobbiamo essere consapevoli, cauti e deliberati per prevenire esiti discriminatori. Esiste un rischio sostanziale che l'uso incontrollato dell'intelligenza artificiale o dell'apprendimento automatico per determinare chi ha accesso a quali servizi (ea quale prezzo/qualità) possa rafforzare il pregiudizio storico e impedire ai bambini di avere una possibilità equa nella vita. Occupazione, - Gli esperti prevedono che i robot sostituiranno gli esseri umani in un terzo dei posti di lavoro dell'economia odierna entro il 2025, cosa significa questo per i genitori che crescono i figli? Per i bambini che alla fine entreranno nel mondo del lavoro? Competenze, Il 65% degli studenti che iniziano la scuola elementare oggi alla fine lavoreranno in lavori che non esistono. Quali abilità i giovani hanno bisogno e come possiamo assicurarci di fornirli attraverso l'istruzione formale e altri percorsi? (Alfabetizzazione digitale - In Italia ad oggi 26 ottobre non è ancora stato nominato un ministero dell'innovazione e ha ricevuto solo 14 Miliardi del PNRR a fronte di oltre 200 Miliardi ) Opportunità sociali, cosa succede quando i bambini non imparano più in classe dal punto di vista dello sviluppo sociale? Tempo libero, cosa succede quando i giovani non hanno un "lavoro" tradizionale o un'occupazione per riempire il loro tempo? ( In Italia la percentuale di Neet è pari al 34,6% nella fascia 25-29 anni mentre tra i laureati è al 21,9% Con un acronimo si chiamano Neet: giovani che non studiano, non hanno un lavoro e nemmeno lo cercano ) Implicazioni psicologiche,I nuovi modi in cui bambini e giovani interagiscono con la tecnologia hanno implicazioni per la nostra fisiologia e psicologia di base. Questo lavoro comporterà un'esplorazione di quali sono queste implicazioni. Cosa fa l'IA al cervello, cosa succede quando affidiamo i compiti cognitivi all'IA, quali sono le implicazioni dell'economia dell'attenzione? Quali sono le implicazioni psicologiche, depressione, ansia, abilità sociali? Intelligenza artificiale per bambini Il problema è che quando l'intelligenza artificiale per i bambini provoca danni, il danno può durare fino al loro futuro, seguendoli fino all'età adulta. Ma l'IA per i bambini ha anche un enorme potenziale per fare del bene, migliorando l'apprendimento, lo sviluppo, la sicurezza e le opportunità. È importante che le discussioni si tengano ora e che l'IA sia progettata senza dimenticare il suo impatto sui più giovani! Bambini intelligenza Artificiale e diritti “ All'UNICEF abbiamo visto che l'IA era un argomento molto caldo e qualcosa che avrebbe cambiato radicalmente la società e l'economia, in particolare per le generazioni future. Ma quando abbiamo esaminato le strategie nazionali per l'IA, le politiche e le linee guida aziendali, ci siamo resi conto che non veniva prestata sufficiente attenzione ai bambini e al modo in cui l'IA ha un impatto su di loro". – Steven Vosloo, specialista in dati, ricerca e politica dell'UNICEF Bambini e intelligenza Artificiale di cosa preoccuparsi? I giocattoli di apprendimento automatico dell'IA, ad esempio, utilizzano l'elaborazione del linguaggio naturale per comprendere parole e istruzioni. In effetti raccoglie molti dati da quel bambino, comprese le conversazioni intime, che vengono poi archiviate nel cloud. Il periodo di tempo in cui un'azienda può archiviare questi dati dipende dal paese. Negli Stati Uniti, le aziende che creano "giocattoli educativi" possono archiviare i dati più a lungo rispetto ad altre aziende per creare prodotti migliori, consentendo in effetti ad altre aziende di descriversi come tali per ottenere il diritto di archiviare i dati più a lungo. Ciò solleva preoccupazioni su come salvaguardare il diritto del bambino alla privacy e alla sicurezza nel contesto dei giocattoli educativi alimentati dall'intelligenza artificiale. La Germania ha già vietato Cayla e giocattoli simili per paura che qualcuno possa hackerare il dispositivo e comunicare direttamente con il bambino o spiarlo. La controversia sulla valutazione di GCSE e A-Level del Regno Unito del 2020 è un altro esempio di come gli algoritmi basati sull'intelligenza artificiale possono avere un impatto negativo sui bambini. A causa della pandemia covid-19 gli esami di fine anno hanno dovuto essere annullati. Il governo ha deciso di prevedere i voti in base a due variabili: (1) la classifica degli studenti all'interno di una scuola e, (2) il rendimento storico della loro scuola. A causa del pregiudizio algoritmico, il risultato ha penalizzato gravemente gli studenti delle scuole con prestazioni inferiori e ha portato il 79% dei bambini a saltare i voti per entrare all'università. Gli esperti hanno anche sollevato preoccupazione sul rischio che l'IA potrebbe avere sul comportamento e sullo sviluppo futuri complessivi dei bambini. Temendo che, se utilizzata in modo improprio, l'IA possa incoraggiare cattive abitudini come la dipendenza dalla tecnologia o se l'IA possa davvero plasmare e plasmare la visione del mondo dei bambini attraverso video e contenuti che consiglia loro. Con il Forum globale sull'IA per i bambini, l'UNICEF spera di far luce sull'idea che il modo in cui un bambino oggi interagisce con l'IA può avere conseguenze durature per la sua crescita e il suo futuro. L'UNICEF spera di poter incoraggiare i governi a proteggere i bambini dagli inconvenienti dell'IA, dando loro potere e dando loro l'agenzia per plasmare il loro futuro. L'IA migliorerà la crescita e il benessere dei bambini? Questa tecnologia ha immensi vantaggi. Se progettati bene, gli strumenti di apprendimento basati sull'intelligenza artificiale hanno dimostrato di migliorare le capacità di pensiero critico e di risoluzione dei problemi dei bambini. Può aiutare a fornire supporto accademico quando i genitori sono occupati o assisterli insieme a classi scolastiche sovraccariche. La ricerca ha scoperto che l'IA può aiutare i bambini nello spettro autistico in molti modi. Può aiutare a migliorare le capacità motorie specifiche, il contatto visivo diretto e le capacità comunicative. L' IA può anche fornire assistenza emotiva, che ha dimostrato di migliorare le abilità sociali dei bambini autistici. I sistemi di riconoscimento facciale basati sull'intelligenza artificiale, se utilizzati entro limiti accurati, potrebbero anche aiutare a identificare i bambini che sono stati rapiti o vittime di tratta. L'elenco dei potenziali vantaggi offerti dall'IA, se utilizzata entro i limiti, è immenso. Ma dobbiamo capire che quando un bambino interagisce con l'IA, ciò che dice, fa e guarda può essere memorizzato senza la sua diretta approvazione per anni e anni. Ciò potrebbe avere un impatto drastico sul loro futuro e conseguenze negative al di fuori del loro controllo. Bambini e intelligenza artificiale la guida per Genitori Come abbiamo visto è molto importante, in primis per i genitori, capire e saper spiegare almeno superficialmente cosa è l'intelligenza artificiale. Quindi iniziamo. Impariamo a conoscere l'Intelligenza Artificiale per i bambini. Hai mai sentito parlare di Alexa o Siri? Hai mai visto un'auto a guida autonoma? Ti sei mai chiesto come funziona il riconoscimento facciale di iPhone? Tutte queste tecnologie hanno qualcosa in comune: usano l'intelligenza artificiale, o "AI". Anche se hai già utilizzato l'IA, potresti non sapere esattamente come funziona. L'intelligenza artificiale, o "IA", è la capacità di un computer di pensare e imparare. Con l'intelligenza artificiale, i computer possono eseguire attività che in genere vengono svolte dalle persone, tra cui l'elaborazione del linguaggio, la risoluzione dei problemi e l'apprendimento. L'intelligenza artificiale è uno strumento, proprio come altri tipi di nuove tecnologie. Quali sono alcuni esempi di intelligenza artificiale per bambini? Abbiamo già condiviso un paio di esempi di intelligenza artificiale, come assistenti virtuali e auto a guida autonoma, ma ci sono molti altri modi in cui l'intelligenza artificiale viene utilizzata nel mondo che ci circonda: Consigli sui film: se hai mai guardato in streaming un film su Netflix, ad esempio, potresti aver notato che riceverai consigli per altri film in base a ciò che hai già visto. Questo è a causa dell'IA! Chatbot: molti siti Web hanno chatbot che aiutano a rispondere alle tue domande. Questi chatbot non sono in genere gestiti da persone: sono IA! Motori di ricerca: la maggior parte delle persone utilizza motori di ricerca come Google ogni singolo giorno. I motori di ricerca utilizzano l'intelligenza artificiale per classificare i siti Web nei risultati di ricerca. Quali altri esempi di IA vengono in mente? Dopo aver scoperto diversi esempi di IA, come quelli che abbiamo appena condiviso, inizierai a riconoscere l'intelligenza artificiale nella tua vita di tutti i giorni! Perché l'apprendimento dell' intelligenza artificiale è importante per i bambini? L'intelligenza artificiale è ovunque intorno a noi e, indipendentemente dal fatto che te ne renda conto o meno, le persone usano l'intelligenza artificiale ogni singolo giorno. Anche se l'IA viene utilizzata oggi, gli informatici prevedono che l'intelligenza artificiale sarà ancora più importante in futuro. Per questo motivo, molti lavori avranno bisogno anche di noi per capire come funziona l'IA in modo da poter risolvere grandi problemi. Questo è già vero per molte professioni oggi. I medici usano l'IA per diagnosticare i pazienti sulla base di scansioni mediche, ad esempio i raggi X, le ecografie, lastre o semplici analisi. Gli astronauti possono utilizzare i modelli di intelligenza artificiale per rilevare esopianeti o pianeti al di fuori del nostro Sistema Solare. E questi sono solo un paio di esempi! Da bambino, potresti non sapere ancora cosa vorresti essere da grande. (di certo non ne ero sicuro!) Futuro presidente? Medico? Avvocato? Imprenditore? Insegnante? Scienziato? Attore? O forse sai per certo quale sarà la tua carriera. Ad ogni modo, ci sono buone probabilità che l'IA sia collegata al tuo lavoro futuro. Oltre a utilizzare l'intelligenza artificiale in un lavoro futuro, i bambini possono anche parlare di come le persone possono utilizzare e programmare l'IA per fare la differenza. Come potremmo usare la tecnologia come strumento per risolvere i problemi nel nostro mondo? Imparando l'IA in tenera età, puoi capire meglio come applicare questo strumento per migliorare il mondo. È chiaro che l'apprendimento dell'intelligenza artificiale è importante per i bambini. Ma come possono esattamente i bambini imparare l'IA? Come i bambini possono imparare l'Intelligenza artificiale? Se stai cercando di saperne di più sull'IA da bambino, ci sono diversi modi in cui puoi iniziare! Stiamo condividendo alcuni dei nostri migliori consigli per imparare l'IA da bambino. Suggerimento n. 1: sperimenta con Google Google ha messo insieme tantissime attività e risorse per aiutare i bambini a conoscere l'IA. Dai un'occhiata ad alcuni dei nostri preferiti: Teachable Machine: Teachable Machine è un modo semplice e veloce per creare modelli di apprendimento automatico (senza alcuna codifica coinvolta). Allena un computer per riconoscere le tue immagini, suoni e pose. Quick Draw: un computer può riconoscere i doodle? Dai un'occhiata a Quick Draw per aiutare con la ricerca sull'apprendimento automatico. Prova questi strumenti di Google per vedere l'IA in azione. Ti divertirai a guardare l'apprendimento automatico e contribuirai anche alla ricerca che sta avvenendo nel campo dell'IA. Suggerimento n. 2: impara a programmare Un altro passo essenziale per imparare di più sull'IA da bambino è programmare! Forse hai già frequentato un corso di informatica a scuola. Imparare a programmare è un'abilità importante per i bambini e gli adulti! E sapere come programmare è particolarmente importante se stai cercando di saperne di più sull'IA. Si consiglia di iniziare con la programmazione a blocchi. ad esempio : Scratch è uno dei nostri preferiti. Scratch è facile da usare, quindi è un ottimo strumento di programmazione per i principianti. Ma è comunque divertente anche per i programmatori più avanzati! Bambini e intelligenza artificiale conclusioni L'interazione sempre più frequente dei bambini con i sistemi di IA solleva molte criticità, sia in termini di conseguenze sociali e politiche della dataficazione e della governance algoritmica, sia di conseguenze psicologiche e cognitive (Kahn, Gary e Shen, 2013). Contributi critici hanno sottolineato la necessità di misure a misura di bambino per proteggere la privacy e i diritti umani (Barassi, 2020; Bietti, 2020) in risposta al Libro bianco sull'intelligenza artificiale pubblicato dalla Commissione europea nel febbraio 2020. Crediamo che proteggere i bambini dalla discriminazione sistematica e su larga scala prodotta da pregiudizi algoritmici sia una responsabilità morale di noi adulti. In questo contributo, tuttavia, abbiamo cercato di proporre un approccio comunicativo e sociologico all'interazione tra bambini e IA, per evidenziare non solo il diritto fondamentale alla protezione ( protezione ), e il diritto di accesso a contenuti, media e risorse su misura per i bambini ( prestazione ), ma anche il diritto di sfruttare le nuove tecnologie per l'apprendimento, il gioco, le relazioni, l'espressione di sé e la creatività ( partecipazione). La sfida è bilanciare i diritti alla protezione, partecipazione e fornitura sia nella progettazione di sistemi di intelligenza artificiale incarnati e disincarnati sia nella loro regolamentazione, nonché, in definitiva, negli immaginari sociali.

  • Elaborazione dei dati in tempo reale

    I dati in tempo reale sono disponibili non appena vengono creati e ottenuti. Invece di essere archiviati, i dati vengono consegnati agli utenti non appena raccolti e immediatamente disponibili, senza indugio, il che è essenziale per supportare il processo decisionale in tempo reale. Questi dati funzionano praticamente in ogni parte della tua vita, alimentando qualsiasi cosa, dalle banche al GPS, alle numerose mappe COVID-19 emerse durante la pandemia. introduzione elaborazione dei dati in tempo reale I dati in tempo reale sono preziosi per le aziende. Le organizzazioni si sono concentrate maggiormente sull'accelerazione del processo poiché è diventato più facile raccogliere enormi quantità di big data ed estrarre informazioni dai set di dati. Le aziende utilizzano i dati in tempo reale per l'azienda per migliorare il servizio clienti, la gestione dei prodotti e l'ottimizzazione operativa. Ma una delle risorse di dati in tempo reale più preziose è aiutare a monitorare e mantenere l'infrastruttura IT. I dati in tempo reale consentono alle organizzazioni di ottenere una visibilità e una visione più complete delle prestazioni delle loro reti complesse. Per sottolineare i vantaggi dei dati in tempo reale nel monitoraggio dell'infrastruttura, esamineremo come vengono raccolti ed elaborati, che tipo di informazioni può fornire e quali risultati puoi aspettarti quando utilizzi questo potente strumento. Che cos'è l'elaborazione dei dati in tempo reale? L'elaborazione dei dati in tempo reale è un sistema che elabora i dati man mano che vengono raccolti e produce un output quasi istantaneo. Per comprenderne i vantaggi, è importante esaminare come funziona l'elaborazione dei dati e confrontare l'elaborazione dei dati in tempo reale con un altro metodo comunemente utilizzato: l'elaborazione dei dati in batch. A cosa serve l'elaborazione dei dati in tempo reale? L'elaborazione dei dati mira a prendere dati grezzi (da social media, campagne di marketing e altre fonti di dati) e trasformarli in informazioni fruibili e, in definitiva, decisioni migliori. In passato, questo compito veniva svolto da team di data engineer e data scientist. Oggi, tuttavia, gran parte dell'elaborazione dei dati viene eseguita utilizzando algoritmi di intelligenza artificiale e machine learning (ML). Sebbene la natura dell'elaborazione suggerisca almeno un certo ritardo di tempo, la velocità o la mancanza di elaborazione "pesante" o di elaborazione quasi parallela fornisce analisi più rapide e complesse. Ci sono sei passaggi per trasformare i dati grezzi in informazioni fruibili che si ripetono in un ciclo. Raccolta: la raccolta dei dati è la prima fase del ciclo di elaborazione. I dati vengono raccolti da magazzini, laghi, database online, dispositivi connessi o altre fonti. Preparazione: i dati vengono "puliti" per rimuovere dati corrotti, duplicati, mancanti o imprecisi e organizzarli in un formato corretto e adatto per l'analisi. Il che aiuta a garantire che vengano utilizzati solo dati della massima qualità. Input: i dati grezzi vengono convertiti in un formato leggibile dalla macchina e inseriti nel sistema di elaborazione. Elaborazione: i dati grezzi vengono elaborati e manipolati utilizzando l'intelligenza artificiale (AI) e algoritmi di apprendimento automatico per generare l'output desiderato. Output: i dati elaborati vengono trasmessi all'utente in forme leggibili, come documenti, audio, video o visualizzazioni di dati. Archiviazione: i dati vengono archiviati per un uso futuro. Possono essere facilmente recuperati quando sono necessarie informazioni o utilizzati come input nel successivo ciclo di elaborazione dei dati. Sia l'elaborazione batch che quella in tempo reale seguono questi passaggi, ma differiscono per il modo in cui vengono eseguite e sono quindi adatte a diversi usi. L'elaborazione dei dati in batch viene comunemente utilizzata per elaborare grandi volumi di dati. In questo metodo, i dati vengono raccolti per un certo periodo e archiviati, dopodiché tutti i dati vengono inseriti nel sistema ed elaborati in blocco. Dopo che i dati sono stati elaborati, viene creato un output batch. L'elaborazione dei dati in batch presenta diversi vantaggi. È ideale per l'elaborazione di grandi volumi di dati. Non c'è una scadenza da rispettare, quindi i dati possono essere trattati indipendentemente dalla raccolta in un momento specifico. E poiché i dati vengono elaborati in blocco, sono altamente efficienti ed economici. Uno dei principali svantaggi è il ritardo tra la raccolta dei dati e il risultato dell'elaborazione, che lo rende ideale per l'elaborazione di dati contabili come buste paga e fatturazione. Nell'elaborazione in tempo reale, i dati vengono elaborati in un tempo conciso e il risultato è un output quasi istantaneo. Poiché questo metodo elabora i dati come input, richiede un flusso continuo di dati di input per produrre un output continuo. La latenza è molto più bassa con l'elaborazione in tempo reale rispetto all'elaborazione batch e viene misurata in secondi o millisecondi. Ciò è in parte attribuito ai passaggi che eliminano la latenza nell'I/O di rete, nell'I/O del disco, nell'ambiente operativo e nel codice. Inoltre, la “formattazione” dei dati in entrata può essere percepita come un ostacolo o un onere per utenti e clienti. L'elaborazione dei dati in tempo reale fa parte di molte attività quotidiane, come le transazioni ATM e l'elaborazione degli ordini di e-commerce. La velocità è uno dei principali vantaggi dell'elaborazione dei dati in tempo reale; c'è un piccolo ritardo tra l'immissione dei dati e la ricezione di una risposta. Insieme, queste funzionalità consentono agli utenti di intraprendere azioni informate con precisione in un tempo minimo. L'elaborazione dei dati in tempo reale utilizza l'analisi dei big data e la potenza di calcolo, i costi associati e la complessità di questi sistemi possono rendere impossibile per le organizzazioni l'implementazione indipendente. Come vengono utilizzati i dati in tempo reale? I dati in tempo reale vengono utilizzati principalmente per eseguire analisi in tempo reale, trasformando i dati grezzi in informazioni dettagliate non appena vengono raccolti. Questo è anche chiamato business intelligence o intelligence operativa. Queste analisi possono essere utilizzate in tutti i settori in qualsiasi scenario in cui è importante una risposta rapida. Alcuni esempi di casi d'uso in tempo reale includono istituti finanziari che utilizzano analisi in tempo reale per rilevare le frodi con carta di credito durante una transazione. Allo stesso modo, l'analisi in tempo reale può aiutare i team ITOps a prevedere i guasti alle apparecchiature. Praticamente qualsiasi attività complessa che richieda informazioni immediate può trarre vantaggio dall'analisi in tempo reale. Esistono due tipi di analisi in tempo reale. L'analisi in tempo reale su richiesta richiede all'utente finale o al sistema di creare una query, dopodiché vengono forniti i risultati dell'analisi. L'analisi continua, nota anche come analisi dei dati in streaming, analizza i dati man mano che vengono raccolti e avvisa gli utenti o attiva una risposta agli eventi rilevati. Dispositivi mobili, sensori, prodotti Internet of Things (IoT) e altre fonti generano più dati più velocemente. L'analisi in tempo reale è sempre più importante perché consente di elaborare il flusso costante di dati al volo, non dopo che è stato archiviato. Come applicare l' IA ai dati in tempo reale? I dati in tempo reale possono essere elaborati per ottenere informazioni dettagliate, dal comportamento dei clienti e tempi di risposta all'esperienza del cliente e ai modi per ottenere un vantaggio competitivo. L'analisi è la vista "in" di ciò che sta accadendo in uno spazio o zona definito: ciò che fai con esso è il "tipo". In breve, uno strumento di analisi non esegue un'azione specifica, ma fornisce informazioni dettagliate basate su input limitati. Esistono quattro tipi fondamentali di analisi dei dati: Descrittivo: l'analisi descrittiva identifica i problemi o risponde alla domanda "Cosa è successo?" l'analisi descrittiva descrive accuratamente un problema, non può definire il motivo per cui si è verificato, ma viene spesso utilizzata con uno o più tipi di analisi. Diagnostica: l'analisi diagnostica fa un ulteriore passo avanti, scavando più a fondo nei dati per creare correlazioni che spieghino perché è successo qualcosa, ad esempio cosa ha causato il malfunzionamento di un sistema o come una minaccia alla sicurezza potrebbe essere penetrata nell'ambiente. L'analisi diagnostica è talvolta chiamata "analisi della causa principale". Predittiva : l'analisi predittiva prende i dati storici, il prodotto dell'analisi descrittiva e diagnostica, e li confronta con modelli e tendenze significativi per prevedere cosa accadrà in futuro. Un'analisi predittiva dell'infrastruttura può avvisare gli amministratori di potenziali guasti del sistema e aiutarli a ottenere una migliore disponibilità. Prescrittivo : è il tipo più sofisticato di analisi dei dati e, come suggerisce il nome, suggerisce una linea d'azione per prevenire un problema. L'analisi prescrittiva utilizza l'apprendimento automatico e altri algoritmi e basa il suo output su prestazioni passate e attuali, risorse disponibili e scenari probabili per determinare la migliore linea d'azione. L'analisi prescrittiva può aiutare a guidare lo sviluppo dell'infrastruttura nel tempo suggerendo modi per rendere l'infrastruttura più resiliente e resiliente. Sebbene tutti questi approcci all'analisi dei dati in tempo reale abbiano il loro ruolo nel monitoraggio e nella gestione dell'infrastruttura IT, esistono alcune best practice che ti garantiranno di ottenere il risultato desiderato. Prima di iniziare, è importante determinare cosa si desidera misurare. Resisti alla tentazione di tenere traccia di tutto perché impiegherai più tempo a gestire i dati che a ottenere informazioni dettagliate. Consenti invece alle parti interessate di identificare quali domande devono essere risolte o quali problemi devono essere risolti e tenere traccia delle informazioni correlate. Una volta determinati i dati dell'infrastruttura che desideri monitorare, avrai bisogno di uno strumento di analisi. Queste piattaforme software raccolgono principalmente dati rilevanti da varie fonti e li elaborano in tempo reale utilizzando modelli di apprendimento automatico pre-addestrati o personalizzati. Conclusione Inoltre, i dati grezzi devono essere contestualizzati e correlati ai risultati desiderati affinché emergano approfondimenti attuabili. Ancora una volta, uno strumento di analisi dell'infrastruttura trasforma i numeri grezzi in informazioni digeribili, aiuta a rendere i dati comprensibili da più prospettive e crea visualizzazioni per comunicare idee. (Sebbene le visualizzazioni siano potenti, sono solo una parte del canale di comunicazione che dovrà essere connesso al pubblico per supportare il processo decisionale.) Quando può essere facile presumere che tutte le parti interessate o le parti interessate siano motivate dalla stessa cosa, uno strumento di analisi dell'infrastruttura ti aiuta a determinare se coloro che visualizzano i dati hanno obiettivi simili e risultati desiderati. I dati in tempo reale sono preziosi per le aziende. Le organizzazioni si sono concentrate maggiormente sull'accelerazione del processo poiché è diventato più facile raccogliere enormi quantità di big data ed estrarre informazioni dai set di dati. È il tipo più sofisticato di analisi dei dati e, come suggerisce il nome, suggerisce una linea d'azione per prevenire un problema. Nell'elaborazione in tempo reale, i dati vengono elaborati in un tempo conciso e il risultato è un output quasi istantaneo. Poiché questo metodo elabora i dati come input, richiede un flusso continuo di dati di input per produrre un output continuo. Infine, dovresti valutare e trarre conclusioni dalle conoscenze derivate e decidere la prossima linea di condotta. Oltre a reagire alla situazione iniziale, puoi utilizzare le informazioni acquisite dai dati per ridurre il verificarsi di eventi negativi e aiutare a identificare le condizioni e gli eventi che desideri ripetere in futuro.

  • Previsioni meteo con python e machine learning

    Nella Data Science , le previsioni meteorologiche sono un'applicazione del machine learning sulle serie temporali dove utilizziamo dati temporali e algoritmi per fare previsioni per un determinato periodo di tempo. Se vuoi imparare a prevedere il tempo usando le tue competenze di Data Science, questo articolo è per te. Ti guiderò attraverso nelle previsione metereologiche usando Python e un algoritmo di Machine learning. Previsioni meteo con python e machine learning La previsione meteorologica è il compito di prevedere le condizioni meteorologiche per una data posizione e ora. Con l'uso di dati meteorologici e algoritmi, è possibile prevedere le condizioni meteorologiche per il numero di n giorni successivo. Per la previsione del tempo utilizzando Python, abbiamo bisogno di un set di dati contenente dati meteorologici storici basati su una posizione particolare. Ho trovato un set di dati su Kaggle basato sui dati meteorologici giornalieri. Possiamo utilizzare questo set di dati per il compito di previsioni meteorologiche. È possibile scaricare il set di dati da qui sotto oppure nella sezione Dataset cercando "DatiTemperatura.csv" Nella sezione seguente imparerai come analizzare e prevedere il tempo usando Python. Ora iniziamo questa attività importando le librerie Python necessarie e il set di dati di cui abbiamo bisogno: import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns import plotly.express as px data = pd.read_csv("DatiTemperatura.csv") print(data.head()) Output: date meantemp humidity wind_speed meanpressure 0 2013-01-01 10.000000 84.500000 0.000000 1015.666667 1 2013-01-02 7.400000 92.000000 2.980000 1017.800000 2 2013-01-03 7.166667 87.000000 4.633333 1018.666667 3 2013-01-04 8.666667 71.333333 1.233333 1017.166667 4 2013-01-05 6.000000 86.833333 3.700000 1016.500000 Diamo un'occhiata alle statistiche descrittive di questi dati prima di andare avanti: print(data.describe()) Output: meantemp humidity wind_speed meanpressure count 1462.000000 1462.000000 1462.000000 1462.000000 mean 25.495521 60.771702 6.802209 1011.104548 std 7.348103 16.769652 4.561602 180.231668 min 6.000000 13.428571 0.000000 -3.041667 25% 18.857143 50.375000 3.475000 1001.580357 50% 27.714286 62.625000 6.221667 1008.563492 75% 31.305804 72.218750 9.238235 1014.944901 max 38.714286 100.000000 42.220000 7679.333333 Ora diamo un'occhiata alle informazioni su tutte le colonne nel set di dati: print(data.info()) Output: RangeIndex: 1462 entries, 0 to 1461 Data columns (total 5 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 date 1462 non-null object 1 meantemp 1462 non-null float64 2 humidity 1462 non-null float64 3 wind_speed 1462 non-null float64 4 meanpressure 1462 non-null float64 dtypes: float64(4), object(1) memory usage: 57.2+ KB La colonna della data in questo set di dati non ha un tipo di dati datetime. Lo cambieremo quando richiesto. Diamo un'occhiata alla temperatura media nel corso degli anni: figure = px.line(data, x="date", y="meantemp", title='Mean Temperature Over the Years') figure.show() Output: Ora diamo un'occhiata all'umidità nel corso degli anni: figure = px.line(data, x="date", y="humidity", title='Humidity Over the Years') figure.show() Output: Ora diamo un'occhiata alla velocità del vento nel corso degli anni: figure = px.line(data, x="date", y="wind_speed", title='Wind Speed Over the Years') figure.show() Output: Fino al 2015, la velocità del vento era maggiore durante agosto, settembre, dicembre e gennaio. Dopo il 2015 non si sono verificate anomalie nella velocità del vento durante agosto, settembre, dicembre e gennaio. Ora diamo un'occhiata al rapporto tra temperatura e umidità: figure = px.scatter(data_frame = data, x="humidity", y="meantemp", size="meantemp", trendline="ols", title = "Relationship Between Temperature and Humidity") figure.show() Output: C'è una correlazione negativa tra temperatura e umidità. Significa che una temperatura più alta comporta una bassa umidità e una temperatura più bassa comporta un'umidità elevata. Analisi del cambiamento di temperatura con Python Ora analizziamo il cambiamento di temperatura nel corso degli anni. Per questa attività, convertirò prima il tipo di dati della colonna della data in datetime. Quindi aggiungerò due nuove colonne nel set di dati per i valori di anno e mese. Ecco come possiamo modificare il tipo di dati ed estrarre i dati di anno e mese dalla colonna della data: data["date"] = pd.to_datetime(data["date"], format = '%Y-%m-%d') data['year'] = data['date'].dt.year data["month"] = data["date"].dt.month print(data.head()) Output: date meantemp humidity wind_speed meanpressure year month 0 2013-01-01 10.000000 84.500000 0.000000 1015.666667 2013 1 1 2013-01-02 7.400000 92.000000 2.980000 1017.800000 2013 1 2 2013-01-03 7.166667 87.000000 4.633333 1018.666667 2013 1 3 2013-01-04 8.666667 71.333333 1.233333 1017.166667 2013 1 4 2013-01-05 6.000000 86.833333 3.700000 1016.500000 2013 1 Ora diamo un'occhiata al cambiamento di temperatura nel corso degli anni: plt.style.use('fivethirtyeight') plt.figure(figsize=(15, 10)) plt.title("Temperature Change Over the Years") sns.lineplot(data = data, x='month', y='meantemp', hue='year') plt.show() Output: Sebbene il 2017 non sia stato l'anno più caldo dell'estate, possiamo vedere un aumento della temperatura media ogni anno. Previsioni meteo con Python Passiamo ora al compito delle previsioni del tempo. Userò il modello del profeta di Facebook per questo compito. Il modello del profeta di Facebook è una delle migliori tecniche per la previsione delle serie temporali. Se non hai mai utilizzato questo modello prima, puoi installarlo sul tuo sistema utilizzando il comando menzionato di seguito nel prompt dei comandi o nel terminale: pip install prophet Il modello prophet accetta dati temporali denominati "ds" ed etichettati come "y". Quindi convertiamo i dati in questo formato: forecast_data = data.rename(columns = {"date": "ds", "meantemp": "y"}) print(forecast_data) Output: ds y humidity wind_speed meanpressure year month 0 2013-01-01 10.000000 84.500000 0.000000 1015.666667 2013 1 1 2013-01-02 7.400000 92.000000 2.980000 1017.800000 2013 1 2 2013-01-03 7.166667 87.000000 4.633333 1018.666667 2013 1 3 2013-01-04 8.666667 71.333333 1.233333 1017.166667 2013 1 4 2013-01-05 6.000000 86.833333 3.700000 1016.500000 2013 1 ... ... ... ... ... ... ... 1457 2016-12-28 17.217391 68.043478 3.547826 1015.565217 2016 12 1458 2016-12-29 15.238095 87.857143 6.000000 1016.904762 2016 12 1459 2016-12-30 14.095238 89.666667 6.266667 1017.904762 2016 12 1460 2016-12-31 15.052632 87.000000 7.325000 1016.100000 2016 12 1461 2017-01-01 10.000000 100.000000 0.000000 1016.000000 2017 1 [1462 rows x 7 columns] Di seguito è riportato come possiamo utilizzare il modello del profeta di Facebook per le previsioni del tempo utilizzando Python: from prophet import Prophet from prophet.plot import plot_plotly, plot_components_plotly model = Prophet() model.fit(forecast_data) forecasts = model.make_future_dataframe(periods=365) predictions = model.predict(forecasts) plot_plotly(model, predictions) Output: E' così che puoi analizzare e prevedere il meteo usando Python. Riepilogo sulle Previsioni meteo con python e machine learning La previsione meteo è il compito di prevedere le condizioni meteorologiche per una data posizione e ora. Con l'uso di dati meteorologici e algoritmi, è possibile prevedere le condizioni meteorologiche per il numero di n giorni successivi. Spero che questo articolo sull'analisi e le previsioni meteorologiche utilizzando Python ti sia piaciuto. Sentiti libero di porre domande nella sezione commenti qui sotto.

  • Dove scaricare modelli di intelligenza artificiale pre-addestrati

    Sapevi che è possibile scaricare dei modelli di IA pre-addestrati e pronti all'uso? In questo articolo ti elencheremo le principali piattaforme dove potrai scaricare modelli già allenati, cosi' da risparmiare tempo e denaro per il tuo prossimo progetto. La comunity dell'IA condivide generosamente codice, architetture di modelli e persino modelli addestrati su grandi set di dati. Siamo sulle spalle dei giganti, motivo per cui l'industria sta adottando così ampiamente l'IA. Quando iniziamo un progetto di intelligenza artificiale, tentiamo prima di cercare dei modelli che risolvono parzialmente il nostro problema. Supponiamo che tu voglia creare un'applicazione di sicurezza che cerchi gli esseri umani in aree riservate. Innanzitutto, controlla se un modello di rilevamento dei pedoni disponibile pubblicamente funziona per te immediatamente. In tal caso, non è necessario addestrare un nuovo modello. In caso contrario, la sperimentazione di modelli disponibili pubblicamente ti darà un'idea di quale architettura scegliere per la messa a punto o il trasferimento dell'apprendimento. Cosa è un modello pre-addestrato? Un modello pre-addestrato si riferisce a un modello o a una rete neurale salvata creata da qualcun altro e addestrata su un set di dati di grandi dimensioni per risolvere un problema simile. I team di intelligenza artificiale possono utilizzare un modello pre-addestrato come punto di partenza, invece di creare un modello da zero. Esempi di modelli linguistici pre-addestrati su larga scala di successo sono le rappresentazioni di codificatori bidirezionali di Transformers (BERT) e la serie Generative Pre-trained Transformer (GPT-n). Perchè usare un modello pre-addestrato? Sembra che ogni anno i modelli di apprendimento automatico raggiungano una maggiore precisione in tutti i tipi di attività e domini, dalla visione artificiale all'elaborazione del linguaggio naturale (PNL). Per fare ciò, scienziati e ingegneri che lavorano in aziende e istituti di ricerca modificano i modelli architettura, che di solito li rende più complessi e li addestra anche con quantità impressionanti di dati. Ad esempio, l'ultimo modello NLP di OpenAI, GPT-3, ha 175 miliardi di parametri e richiederebbe circa 355 anni per addestrarlo su una singola macchina. Quindi ammenochè non vuoi lasciare in eredità a un tuo pronipote un modello che ancora dovrà finire il suo addestramento dovrai optare per altre soluzioni :) . Ma anche addestrare modelli più semplici può essere difficile: ottenere dati sufficienti per ottenere una buona prestazione è solitamente una grande sfida. Ciò rende molto difficile, se non impossibile, per gli individui e anche le piccole aziende utilizzare questi modelli ML se devono addestrarli da zero. Fortunatamente, possiamo risolvere questo problema utilizzando modelli pre-addestrati. Migliori siti per scaricare modelli pre-addestrati : 1. Papers With Code La missione di Papers With Code è creare una risorsa gratuita e aperta con documenti, codice, set di dati, metodi e tabelle di valutazione di Machine Learning. La piattaforma viene aggiornata regolarmente con gli ultimi documenti e risorse sulla visione artificiale e altri sottocampi dell'IA. 1.1 Utilizzare i filtri per restringere i risultati di ricerca Con un ampio catalogo di attività di Machine Learning con centinaia di documenti di ricerca e implementazioni di codice, avrai un mare di informazioni da vagliare, ma le ponderate funzionalità di filtro disponibili sulla piattaforma vengono in soccorso. 1.2 Parametri di riferimento Per un'attività particolare, puoi visualizzare tutti i modelli all'avanguardia che funzionano meglio sui benchmark più diffusi per quell'attività. Inoltre, puoi scegliere di visualizzare gli invii in base al numero di voti positivi ricevuti dalla community sotto forma di stelle. 1.3 Set di dati Oltre a questo, Papers with Code ha anche una raccolta di popolari dataset pubblici disponibili in un'unica posizione. Utilizzando Papers With Code, puoi confrontare un gran numero di soluzioni per trovare quella che fa per te. 2. ModelZoo.co Creato da Jing Yu Koh, un ingegnere ricercatore di Google, Model Zoo cura e fornisce una piattaforma per i ricercatori di deep learning per trovare rapidamente modelli pre-addestrati per varie piattaforme e attività. Il sito viene aggiornato regolarmente e fornisce funzionalità di filtraggio per trovare i modelli adatti in base al framework di machine learning che prevedi di utilizzare o alla categoria dell'attività in questione. Le due categorie più utili per noi sono Visione computerizzata Modelli generativi 3. Open Model Zoo Il toolkit Open Model Zoo for OpenVINO™ offre un'ampia varietà di modelli di deep learning pre-addestrati gratuiti e altamente ottimizzati che funzionano a una velocità incredibile su CPU, GPU e VPU Intel. Questo repository contiene oltre 200 modelli di rete neurale per attività tra cui rilevamento di oggetti, classificazione, segmentazione delle immagini, riconoscimento della grafia, sintesi vocale, stima della posa e altro. Ci sono due tipi di modelli. Modelli pre-addestrati di Intel : il team di Intel ha addestrato questi modelli e li ha ottimizzati per l'esecuzione con OpenVINO. Modelli pubblici pre-addestrati : questi sono modelli creati dalla comunità di intelligenza artificiale e possono essere facilmente convertiti in formato OpenVINO utilizzando OpenVINO Model Optimizer. Controlla sempre la pagina di supporto del dispositivo per assicurarti che il modello sia compatibile con il dispositivo su cui desideri eseguirlo. Dai un'occhiata alla nostra serie su OpenVINO per conoscere i dettagli. L'Open Model Zoo ospita anche un carico di applicazioni demo con istruzioni per eseguirle. Puoi utilizzare queste applicazioni come modello per creare le tue applicazioni. Puoi anche utilizzare Model Analyzer per ottenere maggiori informazioni su un modello come consumo di memoria, scarsità, Gflop e così via. Tieni presente che Model Analyzer funziona solo con modelli in formato IR (Intermediate Representation) . E se sei nuovo con OpenVino Toolkit, potrebbe valere la pena dare un'occhiata al repository openvinotoolkit/openvino_notebooks . Contiene taccuini jupyter pronti per l'uso per aiutarti ad aggiornarti su come lavorare con il toolkit OpenVino e i modelli disponibili nello zoo. Inoltre, fornisce anche strumenti per eseguire attività sul modello, come download, conversione e quantizzazione. 4. TensorFlow Model Garden TensorFlow è una piattaforma open source end-to-end per Machine Learning e probabilmente il framework ML più popolare. Il TensorFlow Model Garden è un repository contenente molti modelli SOTA (state-of-the-art). Ci sono tre tipi di modelli. Ufficiale : i modelli di questa collezione vengono mantenuti, testati e aggiornati con l'ultima API TensorFlow. Ricerca : i modelli in questa raccolta possono utilizzare Tensorflow 1 o 2 e sono mantenuti dai ricercatori. Comunità : questa è una raccolta di collegamenti a modelli gestiti dalla comunità. Lo scopo di questo repository è fornire gli elementi costitutivi per addestrare i propri modelli basandosi sulle configurazioni predefinite, sui set di dati e sulla messa a punto dei checkpoint dei modelli disponibili. Per aiutarti a riprodurre i risultati dell'allenamento, sono stati forniti anche i registri dell'allenamento per i modelli disponibili. Gli utenti di TensorFlow possono sfruttare i modelli forniti e trattarli come riferimenti per addestrare il proprio modello o perfezionare i modelli dai checkpoint disponibili. 5. TensorFlow Hub Dalla classificazione delle immagini, agli incorporamenti di testo, al riconoscimento di azioni audio e video, TensorFlow Hub è uno spazio in cui è possibile sfogliare modelli e set di dati addestrati dall'intero ecosistema TensorFlow. A differenza di TensorFlow Model Garden, i modelli disponibili su TensorFlow Hub sono pronti per l'uso e destinati ad essere utilizzati come scatole nere con ingressi e uscite impostati. Se riesci a trovare un modello adatto alle tue esigenze, puoi usarlo! Puoi scoprire e scaricare centinaia di modelli di machine learning preparati per la distribuzione e addestrati pubblicati da risorse rinomate. Tutti i dettagli sulla distribuzione vengono forniti per i modelli come i formati di input e output, il set di dati utilizzato e le metriche delle prestazioni previste per aiutarti a scegliere i modelli migliori per le tue attività. Per alcuni modelli sono disponibili anche quaderni di esempio ed esperienze Web interattive per semplificare il lavoro. I formati comuni dei modelli disponibili sono i formati SavedModel, TFLite o TF.js che possono essere implementati direttamente nel codice dalla loro libreria tensorflow_hub disponibile . Ti consente di scaricare e utilizzare i modelli disponibili da TensorFlow Hub nel tuo programma TensorFlow con una quantità minima di codice. TensorFlow Hub è aperto ai contributi della community, quindi possiamo essere certi che la raccolta di modelli è destinata a crescere e che saranno disponibili altri modelli a nostra disposizione. 6. Modelli MediaPipe MediaPipe è un framework di Machine Learning open source e multipiattaforma sviluppato dai ricercatori di Google. Fornisce soluzioni ML personalizzabili. Sebbene il progetto Mediapipe sia ancora nella fase Alpha, le sue soluzioni sono già state implementate in molte applicazioni quotidiane che utilizziamo. Le "foto in movimento" di Google e la funzione "sfocatura della privacy" di Youtube sono esempi di questo tipo. Oltre a prestazioni leggere e incredibilmente veloci, MediaPipe supporta la compatibilità multipiattaforma. L'idea è quella di costruire un modello ML una volta e distribuirlo su piattaforme e dispositivi diversi con risultati riproducibili. Supporta piattaforme Python, C, Javascript, Android e IOS. La collezione Medipipe Models fornisce modelli di percezione pronti all'uso per diversi compiti, ad esempio : Le soluzioni più popolari disponibili sono Face mesh (modello face landmark), Pose Detection , Hair Segmentation , KNIFT (feature matching), ecc. Per ciascuno dei modelli disponibili vengono fornite schede modello, contenenti tutti i dettagli relativi a quel modello. Mediapipe fornisce anche un visualizzatore di modelli disponibile online, che aiuta a comprendere il comportamento generale delle loro pipeline di inferenza di machine learning. Di seguito è riportata la struttura del grafico del modello Face Detection disponibile. Con le prestazioni Fast e la compatibilità hardware che offre, Mediapipe può essere una buona soluzione per la maggior parte delle soluzioni di visione in tempo reale. 7. Fantastici modelli CoreML La libreria CoreML di Apple consente agli sviluppatori iOS, macOS, tvOS o watchOS di creare applicazioni divertenti ed entusiasmanti che sfruttano i poteri dell'IA. È in circolazione da iOS 11 ed è incorporato in molte delle applicazioni imminenti in una forma o nell'altra. Il repository Awesome-CoreML-Models contiene una raccolta di modelli di machine learning supportati dalla libreria CoreML di Apple. I modelli sono disponibili nel formato CoreML e non richiedono post-elaborazione o conversione in un'applicazione basata su CoreML. Oltre ai modelli disponibili, il numero di formati di modello può essere convertito nel formato coreML. I formati supportati includono Tensorflow, Caffe, Keras, XGBoost, Scikit-learn, MXNet, LibSVM, Torch7, ecc. 8. Jetson Model Zoo Jetson, la scheda informatica incorporata di Nvidia, è una scelta popolare nella comunità della piattaforma embedded per l'implementazione di applicazioni di intelligenza artificiale. Jetson può eseguire varie reti avanzate, comprese le versioni native complete di framework ML popolari come TensorFlow, PyTorch, Caffe/Caffe2, Keras, MXNet e altri. Jetson Model Zoo contiene vari modelli DNN per l'inferenza su Nvidia Jetson con supporto per TensorRT . Include i collegamenti agli esempi di codice con il modello e l'origine originale del modello. Lo zoo del modello offre anche una panoramica dei benchmark di inferenza di diversi modelli testati su Nvidia Jetson rispetto ad altre schede di sviluppo integrate popolari come Raspberry Pi, Intel Neural Compute Stick e Google Edge TPU Dev Board. Considerando che Jetson è una delle piattaforme integrate più potenti, Jetson Model Zoo è una buona risorsa per la distribuzione di qualsiasi applicazione incorporata. 9. PINTO Model Zoo Il PINTO Model Zoo è stato creato da Katsuya Hyodo, un programmatore e membro del programma Intel Software Innovator. È un repository che condivide i risultati di ottimizzazione dei modelli addestrati generati da Tensorflow. Lo zoo contiene un'enorme quantità di 252 modelli ottimizzati che coprono un'ampia gamma di domini di apprendimento automatico. I modelli forniti sono stati ottimizzati utilizzando varie tecniche come la quantizzazione post-allenamento (quantizzazione del peso, quantizzazione intera, quantizzazione intera intera, quantizzazione Float16) e training consapevole della quantizzazione. I modelli sono disponibili per molte piattaforme diverse come TensorFlow Lite, OpenVINO, CoreML, TensorFlow.js, TF-TRT, MediaPipe, ONNX. Pinto Model Zoo è la risorsa ideale se desideri versioni ottimizzate dei più diffusi modelli ML. 10. ONNX Model Zoo L' ONNX Model Zoo è una raccolta di modelli pre-addestrati e all'avanguardia nel formato ONNX. Open Neural Network Exchange (ONNX) è un formato standard aperto per rappresentare i modelli di apprendimento automatico forniti dai membri della comunità. Offre il vantaggio dell'interoperabilità e consente di utilizzare il framework preferito con il motore di inferenza scelto. Puoi pensarlo come un linguaggio comune di modelli per tutti i framework ML popolari per parlare tra loro. Contiene modelli per una serie di attività diverse in diversi domini: Vision Classificazione delle immagini Rilevamento di oggetti e segmentazione dell'immagine Analisi del corpo, del viso e dei gesti Manipolazione dell'immagine Lingua Comprensione della macchina Traduzione automatica Modellazione del linguaggio Altro Risposte alle domande visive e dialogo Elaborazione vocale e audio Altri modelli interessanti Ad accompagnare ogni modello ci sono i notebook Jupyter per l'addestramento del modello e l'esecuzione dell'inferenza con il modello addestrato. I taccuini sono scritti in Python e includono collegamenti al set di dati di addestramento e riferimenti al documento originale che descrive l'architettura del modello. 11. Modelplace.AI Modelplace.AI è un mercato per modelli di apprendimento automatico e una piattaforma per la comunità per condividere i propri modelli personalizzati. Ha una collezione crescente di modelli per varie attività di visione artificiale, che si tratti di classificazione, rilevamento di oggetti, stima della posa, segmentazione o rilevamento del testo. 11.1 Interfaccia Web per provare i modelli senza scaricarli Un fattore significativo che distingue Modelplace.AI dagli altri repository di modelli è che puoi utilizzare la loro interfaccia web per provare il modello di tuo gradimento con le tue immagini personalizzate. Puoi anche confrontare modelli che svolgono attività simili tra loro su benchmark standard . 11.2 API cloud Modelplace.AI fornisce una comoda API Cloud che puoi utilizzare nella tua applicazione desktop, mobile o edge. 11.3 Importa il modello con Python In alternativa, puoi scegliere di scaricare la versione ottimizzata di quel modello a seconda della piattaforma su cui desideri implementarlo. Per l'ambiente Python, impacchettano i modelli come un file ruota Python in modo da poter far funzionare il modello rapidamente con solo poche righe di codice. Conclusione sui modelli di intelligenza artificiale pre-addestrati Come avrai notato, la maggior parte di questi siti ti reindirizza ai repository github. E Github è, in effetti, il più grande repository di modelli pre-addestrati che puoi trovare. Ciò significa che puoi sempre cercare modelli pre-addestrati su Github e potresti trovare molte opzioni tra cui scegliere. Ovviamente puoi trovare anche molti altri siti ma la qualità dei modelli non è garantita. Il valore aggiunto dei precedenti siti Web è che hanno già effettuato una selezione dei repository Github, quindi se decidi di cercare direttamente in Github, dovrai essere paziente per trovare quello che stai cercando. Come consiglio, controlla sempre la data dell'ultimo commit nel progetto per vedere quanto è ben mantenuto il progetto e controlla anche la licenza con cui è stato pubblicato il progetto. Inizia a sfruttare queste risorse ogni volta che avvii un progetto di Intelligenza Artificiale e controlla se esiste un modello simile che puoi utilizzare o su cui puoi costruire, invece di addestrare i tuoi modelli da zero per accelerare il processo di sviluppo e distribuzione.

  • Come investire in intelligenza Artificiale | ETF Intelligenza Artificiale

    In questo articolo capiremo come è possibile investire sull'intelligenz artificiale tramite uno strumento finanziario chiamato ETF. Il rapido ritmo dell'innovazione nell'intelligenza artificiale (AI) ha portato alla realtà molte esperienze che in precedenza si pensava fossero solo finzione. Mentre l'IA continua a sconvolgere il modo in cui viviamo e lavoriamo, come possono gli investitori investire denaro in questa tecnologia avanzata che sta rapidamente rimodellando la società? Abbiamo creato questa pratica guida per principianti per aiutarti a capire meglio cos'è l'IA e come le aziende utilizzano la tecnologia. Inoltre, abbiamo identificato alcuni investimenti popolari in questo settore in rapida crescita. NOTA : sono investimenti popolari ciò non vuol dire che ti stiamo consigliando di comprare o investirci! QUESTO ARTICOLO NON CONTINE NESSUN CONSIGLIO FINANZIARIO Da bravi investitori però dobbiamo conoscere ciò su cui vogliamo investire, quindi partiamo dalle basi... Cos'è l'IA? L'intelligenza artificiale tenta di replicare l'intelligenza umana in un computer o in una macchina con maggiore velocità e maggiore precisione. Aziende come Amazon (AMZN) e Google (GOOGL) utilizzano la tecnologia per programmare macchine per risolvere problemi, rispondere a domande e svolgere attività precedentemente svolte dagli esseri umani. Man mano che i sistemi diventano più intelligenti, l'IA diventa più potente e i suoi usi e applicazioni raggiungono ogni settore e industria azionaria. Ad esempio, l'industria dei trasporti sta subendo una massiccia trasformazione intorno ai veicoli elettrici e autonomi , portando potenzialmente trilioni di dollari all'economia globale. Allo stesso modo, il settore bancario utilizza l'intelligenza artificiale per migliorare il processo decisionale nel trading ad alta velocità, automatizzare i processi di back-office come la gestione del rischio o persino ridurre i costi utilizzando robot umanoidi nelle filiali. E questi sono solo alcuni esempi di applicazioni di intelligenza artificiale. Gli analisti di International Data Corp. (IDC), un fornitore di market intelligence, prevedono che i ricavi mondiali per il mercato dell'IA potrebbero superare i 500 miliardi di dollari entro il 2024 , registrando un tasso di crescita composto annuo in cinque anni del 17,5%. "L'intelligenza artificiale è l'innovazione più dirompente della nostra vita" , afferma Ritu Jyoti, vicepresidente del gruppo, Worldwide Artificial Intelligence and Automation Research Practice Global AI Research Lead presso IDC in una nota ai clienti. La pandemia globale ha accelerato l'adozione dell'IA e sta diventando onnipresente in tutti i processi aziendali. Come le aziende utilizzano l'Intelligenza Artificiale? Che si tratti di forze dell'ordine che utilizzano software di riconoscimento facciale per condurre indagini, elettrodomestici alimentati dall'intelligenza artificiale come i frigoriferi intelligenti di Samsung che ci semplificano la vita o robo-advisor che utilizzano modelli automatizzati basati su algoritmi per ottimizzare i nostri investimenti e formulare consigli sulla pianificazione finanziaria, L'IA è ovunque. Al centro dell'IA ci sono i big data, data scientist, ingegneri e altri esperti che creano algoritmi complessi in grado di acquisire nuove informazioni per migliorarne le prestazioni e la precisione. Con l'apprendimento automatico, ad esempio, un sottocampo dell'IA, organizzazioni come Netflix utilizzano i dati degli utenti per formulare consigli e previsioni sui contenuti. Man mano che gli utenti immettono più informazioni, come dare un pollice in su o un pollice in giù a uno spettacolo, il sistema memorizza ed elabora tale conoscenza, diventando progressivamente più intelligente. Secondo un sondaggio su oltre 350 ricercatori di intelligenza artificiale condotto dall'Università di Oxford e dalla Yale University nel 2015, c'è una probabilità del 50% che le macchine possano superare gli esseri umani in tutte le attività entro l'anno 2060. E alcuni visionari della tecnologia come il CEO di Tesla Elon Musk credo che potrebbe essere molto prima. Le organizzazioni sfruttano sempre più il potere dell'IA per prendere decisioni aziendali critiche, come dare la priorità alle cure mediche in caso di emergenza, migliorare le pratiche di reclutamento e determinare l'idoneità di un individuo a credito, alloggio e altri servizi essenziali. C'è anche molto dibattito su come l'IA avrà un impatto sul mercato del lavoro. Con l'aumento della dipendenza degli esseri umani dalle macchine, aumenta anche la necessità per i dipendenti di migliorare e apprendere nuove competenze. Entro il 2030, il World Economic Forum stima che più di 1 miliardo di persone , circa un terzo dei posti di lavoro in tutto il mondo, potrebbero essere colpiti dalla rivoluzione tecnologica. Per tenere conto dei limiti dell'IA, almeno fino a quando la tecnologia non si evolverà ulteriormente, i leader delle organizzazioni si sono affidati all'intelligenza aumentata, che combina intelligenza artificiale e competenza umana. In sostanza, l'intelligenza artificiale consente agli esseri umani di lavorare meglio e più velocemente. La necessità dell'input umano, tuttavia, diminuisce man mano che l'IA diventa più forte. Come investire in intelligenza artificiale? Per la maggior parte degli investitori al dettaglio, c'è la possibilità che tu abbia già un'esposizione all'IA, poiché molte grandi società pubbliche statunitensi stanno utilizzando l'IA o stanno attivamente cercando di investire nella tecnologia. Ma per coloro che cercano un'esposizione più ampia, i fondi negoziati in borsa (ETF) offrono un modo semplice ed efficiente per investire in titoli di IA. Simile ad altri tipi di investimento tematici, come la tecnologia blockchain , la sicurezza informatica e la genomica, gli ETF AI detengono un gruppo di società quotate in borsa coinvolte in tutte le fasi dell'IA, dallo sviluppo all'implementazione. Quando si effettua un investimento in un ETF AI, l'esposizione è su un gruppo di azioni, riducendo così il rischio di mercato generale scommettendo su più di un singolo titolo. Tipi di ETF sull' intelligenza artificiale: È un compito piuttosto soggettivo identificare i migliori ETF sull'IA nel livello dell'investitore. Ad esempio, alcuni investitori potrebbero cercare un fondo incentrato principalmente sui titoli di intelligenza artificiale, mentre altri potrebbero preferire un fondo azionario tecnologico che distribuisca solo una parte del patrimonio del fondo ai titoli di intelligenza artificiale. Abbiamo anche fondi che utilizzano l'IA per selezionare le partecipazioni. Di seguito abbiamo fornito spiegazioni sui tipi di base degli ETF AI: ETF FOCALIZZATI SULL'IA Questo tipo di ETF ai investe specificamente in aziende che hanno prodotti o servizi relativi all'IA. Questi fondi di solito hanno un'esposizione del 100% ai titoli di intelligenza artificiale. ETF AI A ESPOSIZIONE LIMITATA Questi tipi di fondi hanno un'esposizione del portafoglio di almeno il 25% per cento alle organizzazioni che utilizzano la tecnologia di intelligenza artificiale. Esempi di queste aziende includono Alphabet (GOOG, GOOGL), Tesla Motors (TSLA) e Amazon (AMZN). FONDI GESTITI DALL'INTELLIGENZA ARTIFICIALE Fondi come questo possono essere investiti in titoli di intelligenza artificiale, tuttavia, il fondo stesso utilizza la tecnologia di intelligenza artificiale per selezionare i singoli titoli che saranno detenuti nel fondo. PERCHÉ DOVREI INVESTIRE IN ETF di Intelligenza Artificiale SPESE INFERIORI Gli ETF a gestione passiva tendono ad avere un rapporto di spesa molto ridotto rispetto ai fondi a gestione attiva, che in genere sembrano essere i fondi comuni di investimento. A differenza dei fondi comuni di investimento aperti, i costi operativi dell'ETF possono essere semplificati. Tutti i fondi gestiti sono soggetti a costi operativi indipendentemente dalla struttura. Alcuni di questi costi sono le spese di marketing, le spese amministrative, i costi di distribuzione, i costi di custodia e le commissioni di gestione del portafoglio. I costi sono sempre stati molto cruciali nella previsione dei rendimenti. In tutto, un fondo che sostiene un costo di investimento inferiore garantirà un rendimento maggiore su quel fondo. VANTAGGIO FISCALE Un ETF AI ha un vantaggio fiscale maggiore rispetto ai fondi comuni di investimento. In quanto investimenti a gestione passiva, gli ETF (così come i fondi indicizzati) registrano tipicamente guadagni in conto capitale inferiori rispetto ai fondi comuni di investimento, che sono gestiti attivamente. GESTIONE DEL RISCHIO E DIVERSIFICAZIONE DEL PORTAFOGLIO Le società di investimento potrebbero voler ottenere rapidamente un'esposizione del portafoglio a determinati settori, stili, settori o regioni, ma non hanno esperienza in tali aree. Considerando la vasta gamma di categorie di settore, stile, paese e settore disponibili, le azioni ETF hanno la capacità di offrire una facile esposizione a un investitore in una particolare area di mercato desiderata. Inoltre, gli ETF sono attualmente negoziati su quasi tutte le principali valute, materie prime e classi di attività del mondo. Nel caso in cui un investitore abbia un grande rischio in un determinato settore ma non sia in grado di diversificare tale rischio a causa di tasse o restrizioni, l'individuo può decidere di shortare un ETF del settore in questa situazione o procedere all'acquisto di un ETF che shorta un settore per loro conto. REINVESTIMENTO IMMEDIATO DEL SETTORE In un ETF di tipo aperto, i dividendi delle organizzazioni vengono immediatamente reinvestiti, mentre i tempi precisi per il reinvestimento possono variare per i fondi comuni di investimento indicizzati. Un paio di altri vantaggi includono che è disponibile anche in investimenti alternativi, mantiene la trasparenza e aumenta l'efficienza del tempo. I MIGLIORI ETF di INTELLIGENZA ARTIFICIALE: GLOBAL X ROBOTICS & ARTIFICIAL INTELLIGENCE THEMATIC (BOTZ): BOTZ, che è uno dei più grandi ETF sull'IA, ha più di 1,40 miliardi di dollari di asset in gestione. Come riportato da Global X, l'obiettivo di questo fondo è investire in organizzazioni che hanno il potenziale per sfruttare l'adozione e l'utilizzo dell'intelligenza artificiale (AI) e della robotica, comprese quelle coinvolte con veicoli autonomi, robot non industriali, e automazione industriale e robotica. Il fondo ha un rapporto di spesa dello 0,68% o $ 68 per ogni $ 10.000 investiti. ROBO GLOBAL ROBOTICS & AUTOMATION INDEX (ROBO): ROBO è stato il primo ETF di automazione e robotica ad essere introdotto sul mercato. Concentra le sue partecipazioni su organizzazioni che operano nei settori associati all'intelligenza artificiale, all'automazione e alla robotica in tutto il mondo. ROBO ha più di 80 titoli, che sono diversificati tra titoli a grande, media e piccola capitalizzazione. Detiene $ 1,19 miliardi di asset in gestione e le spese per ROBO sono dello 0,95%. EQUBOT AI-POWERED EQ INTERNATIONAL ETF (AIIQ): Questo ETF non si occupa di acquistare azioni di aziende nel settore dell'intelligenza artificiale, ma utilizza invece il potere dell'IA per selezionare le azioni che saranno detenute nel fondo. Gli investimenti del fondo primario in AIIQ sono determinati dai risultati dei modelli quantitativi proprietari sviluppati da Equbot con IBM Watson AI. I metodi completamente gestiti e basati sull'intelligenza artificiale costruiranno un portafoglio di circa 80 e 250 titoli, selezionando tra oltre 15.000 organizzazioni in tutto il mondo, poiché filtrano attentamente le informazioni e imparano dalle procedure. AIIQ ha una quantità relativamente piccola di asset in gestione a $ 3,66 milioni e un rapporto di spesa dello 0,79%. CONCLUSIONE su Come investire in intelligenza Artificiale Concludendo sui fondi dell'IA, è pertinente affermare che esiste il potenziale per aumentare le richieste di intelligenza artificiale, automazione e robotica in futuro. Pertanto, il potenziale di crescita degli ETF AI e dei titoli AI è significativo, anche se il rischio di mercato è generalmente maggiore rispetto a investimenti più diversificati. Gli investitori dovrebbero essere cauti nell'aggiungere a un portafoglio fondi di settore con ambiti ristretti, come gli ETF AI. QUESTO ARTICOLO NON CONTIENE CONSIGLI FINANZIARI! MA VUOLE SOLO ESSERE UN PUNTO DI PARTENZA PER L'INVESTITORE INTELLIGENTE!

  • Intelligenza artificiale nel business

    L'impatto dell'intelligenza artificiale nel business, secondo Accenture, ha il potenziale per aumentare la produttività del 40% o più. Con le statistiche del World Economic Forum sull'impatto dell'IA entro il 2023, oltre 75 milioni di posti di lavoro umani saranno stati sostituiti dall'IA, creando allo stesso tempo 133 milioni di posti di lavoro, confutando l'idea sbagliata che l'adozione dell'IA lascerà più persone senza lavoro. PERCHÈ L'INTELLIGENZA ARTIFICIALE (AI) NEL BUSINESS? Con la quantità sempre più vasta di dati oggi disponibile e le preferenze e la complessità in continua evoluzione dei clienti, le aziende non possono più fare affidamento sui metodi aziendali tradizionali per guidare la crescita. Questi cambiamenti radicali hanno aperto un nuovo regno di possibilità, con l'IA, per guidare la crescita del business attraverso informazioni fruibili generate dai dati dei clienti. L'intelligenza artificiale negli affari implica semplicemente l'uso di software per computer intelligenti con capacità simili a quelle umane per aumentare i ricavi, migliorare l'esperienza del cliente, aumentare la produttività e l'efficienza e guidare la crescita e la trasformazione del business. PERCHÉ LE AZIENDE DOVREBBERO UTILIZZARE L'IA? I processi aziendali nel 21 ° secolo sono caratterizzati da un alto livello di complessità che coinvolge compiti che sono stressanti e inefficienti per essere svolti dall'uomo. Il business nel mondo di oggi è dominato dall'era dei dati. Le aziende possono ottenere preziose informazioni sulle strategie che possono guidare radicalmente la crescita dai dati. Pertanto, la necessità per le aziende di comprendere in modo univoco le esigenze e le preferenze dei clienti è inestimabile nel mondo degli affari di oggi; per prosperare e mantenere la rilevanza all'interno della feroce concorrenza. Utilizzando l'intelligenza artificiale negli affari, le aziende possono ora comprendere e coinvolgere in modo univoco i clienti, automatizzare i processi aziendali e migliorare la produttività e le entrate riducendo al contempo le spese operative. ESEMPI DI INTELLIGENZA ARTIFICIALE NEL BUSINESS: L'attuale era dei dati ha stimolato l'ascesa di molte applicazioni dell'intelligenza artificiale nel mondo degli affari , tra cui l'analisi dei dati, le offerte aziendali personalizzate e l'automazione. Ecco alcuni esempi di intelligenza artificiale nel mondo degli affari : L'IA NEL SERVIZIO CLIENTI La sostituzione degli esseri umani con l'IA nel servizio clienti è un altro controverso esempio di intelligenza artificiale negli affari. Con l'avvento dei chatbot, i clienti possono ora interagire con le aziende in tempo reale per risolvere reclami, effettuare ordini, ottenere informazioni e fare quasi tutto ciò di cui avrebbero bisogno da una conversazione con un rappresentante umano dell'assistenza clienti. Secondo Gartner, l'85% delle interazioni con i clienti sarà gestito senza un essere umano entro il 2020. Questa innovazione dirompente dell'intelligenza artificiale nel mondo degli affari allevierà il bisogno di esseri umani nell'interazione con i clienti, riducendo i costi aziendali e migliorando esponenzialmente l'accessibilità dell'assistenza clienti e l'esperienza di conversazione. INTELLIGENZA AZIENDALE Con la crescente quantità di dati aziendali disponibili, trovare informazioni dettagliate dai dati può essere piuttosto difficile. Ciò ha portato all'adozione di routine dell'intelligenza artificiale nella business intelligence per ottenere preziose informazioni dai dati. Queste informazioni aiutano le aziende a migliorare l'efficacia del marketing, comprendere meglio i clienti, eseguire la segmentazione per creare esperienze personalizzate e sviluppare strategie aziendali per aiutare il processo decisionale aziendale e sfruttare l'intelligenza artificiale nella gestione aziendale. Esistono oggi numerosi strumenti che implicano l'uso dell'intelligenza artificiale nella business intelligence . Gli strumenti più diffusi includono Microsoft Power BI che aiuta le aziende a ottenere analisi chiave per sapere quali strategie e decisioni hanno una grande influenza sulle metriche aziendali. Inoltre, l'integrazione delle funzionalità di machine learning all'interno di Power BI può aiutare le aziende a creare modelli di machine learning per fare previsioni e previsioni preziose dai dati e automatizzare i processi aziendali. MARKETING PERSONALIZZATO E MIRATO La chiave per aumentare le entrate aziendali richiede conoscere i desideri di un consumatore e sapere cosa commercializzare per ciascun consumatore. Nel nostro mondo di crescente coinvolgimento digitale, i clienti hanno un tempo estremamente limitato con troppe aziende che cercano di commercializzare i loro prodotti per loro. Ciò spiega la crescente necessità di commercializzare solo ciò che attrae ciascun cliente e di sapere anche chi commercializzare ciascuno dei prodotti di un'azienda. Con i dati ottenuti dalle attività online dei clienti, le aziende possono ora utilizzare l'IA per prevedere e indirizzare a chi commercializzare un particolare prodotto al fine di aumentare le possibilità di vendita e l'efficacia delle attività di marketing allo stesso tempo, riducendo i costi di marketing complessivi. RACCOMANDAZIONE DEL PRODOTTO E ANALISI PREDITTIVA Per aumentare l'efficacia degli sforzi di marketing e il coinvolgimento dei clienti con il prodotto di un'azienda, le aziende devono essere in grado di consigliare prodotti che mantengano l'interesse dei loro clienti e soddisfino i desideri di un cliente. Aziende come Netflix, Spotify, Amazon, ecc., ora utilizzano l'intelligenza artificiale per comprendere le abitudini/comportamenti dei clienti e prevedere quale prodotto consigliare. Spotify, ad esempio, monitora e comprende il comportamento di ascolto e le preferenze relative ai brani degli utenti e utilizza l'intelligenza artificiale per fornire consigli sui brani che potrebbero piacere a ciascun utente. Altre società come Netflix utilizzano i sistemi di raccomandazione dell'intelligenza artificiale per intrattenere gli utenti e intrattenere la dipendenza dai loro prodotti fornendo consigli sui film che si rivolgono in modo univoco a ciascun utente, in base alle loro esperienze distinte. Circa il 75 percento di ciò che gli utenti guardano su Netflix arriva attraverso questi consigli e la raccomandazione AI dell'azienda riduce le spese di circa $ 1 miliardo ogni anno. Le banche e le società Fintech utilizzano l'IA anche per l'analisi predittiva, per il rilevamento delle frodi e per determinare i clienti che potrebbero rimborsare i prestiti prima di approvare le richieste di prestito. ELABORAZIONE DEL LINGUAGGIO NATURALE Se sei uno di quelli che chiedono, "quando le macchine saranno in grado di leggere, scrivere e comprendere le lingue come gli umani?" Bene, la risposta è ORA! Con i progressi nell'elaborazione del linguaggio naturale, le aziende ora offrono prodotti di assistente digitale intelligente per assistere gli utenti nelle attività di routine. Le aziende ora utilizzano l'intelligenza artificiale per generare report aziendali automatizzati senza la supervisione umana ed eseguire anche analisi del sentiment per comprendere la percezione del proprio marchio da parte delle persone da vari commenti online, tweet, ecc. sull'azienda. Attraverso la sentiment analysis, le aziende possono comprendere costantemente la percezione delle persone sui loro prodotti e servizi. Questo aiuta a migliorare la qualità dei servizi e l'offerta di prodotti personalizzati. I VANTAGGI DELL'INTELLIGENZA ARTIFICIALE NEL BUSINESS : I vantaggi che le aziende possono ottenere dall'uso dell'IA sono infiniti e includono: Automazione dei processi Risultati più positivi dalle attività di marketing e aumento delle entrate Migliore comprensione dei clienti e migliore esperienza dei servizi offerti Intercettazione di una frode Servizio clienti migliorato e più affidabile SFIDE DELL' IA NEL BUSINESS L'applicazione dell'intelligenza artificiale nel mondo del business è in costante aumento. Tuttavia, questa crescita è minacciata da alcuni fattori critici che limitano l'uso delle tecnologie di intelligenza artificiale negli affari. SCARSITÀ DI DATI Anche con l'abbondanza di dati oggi disponibili per le aziende, l'adozione dell'intelligenza artificiale per alcuni aspetti rimane impegnativa. Affinché l'apprendimento automatico, che alimenta la maggior parte delle applicazioni dell'intelligenza artificiale nelle aziende , funzioni, sono necessarie grandi quantità di dati per addestrare il modello. Ciò limita l'uso dell'IA in nuove aree aziendali in cui non sono disponibili dati. L'enorme quantità di dati che abbiamo è il più delle volte in gran parte non strutturata e senza etichetta e con la maggior parte delle applicazioni di intelligenza artificiale, inclusa la formazione supervisionata sui dati etichettati, ciò rappresenta una sfida per l'uso dell'intelligenza artificiale nel mondo degli affari. BIAS DELL'ALGORITMO Di recente, Microsoft e Amazon hanno sospeso la vendita del loro software di riconoscimento facciale AI alle forze dell'ordine a causa dei pregiudizi etnici, razziali e di genere del software. Questo illustra una delle principali sfide dell'IA, che illustra quanto male possa funzionare l'algoritmo se addestrato su dati distorti. In futuro, tali pregiudizi saranno adeguatamente affrontati dai sistemi di intelligenza artificiale, ma per ora rappresentano una grave minaccia per l'adozione dell'IA in alcune aree di applicazione. Altre sfide includono: Limitazioni nella capacità di calcolo attuale Problemi di minacce alla sicurezza e alla privacy dei dati (poiché l'uso dell'IA comporta la raccolta di informazioni sensibili delle persone). PRINCIPALI AZIENDE CHE USANO L'IA La maggior parte delle migliori aziende del mondo ha adottato radicalmente l'uso dell'IA. Ecco alcune delle migliori aziende che sfruttano la potenza dell'IA. Alibaba: con la sua integrazione dell'IA nelle sue operazioni commerciali, Alibaba utilizza l'IA per prevedere i prodotti che i clienti potrebbero voler acquistare e anche per creare automaticamente le descrizioni dei prodotti Uber: l'ennesima grande azienda che sta trasformando il mondo degli affari con l'intelligenza artificiale è il gigante del ride-hailing, Uber. Uber sfrutta l'intelligenza artificiale per prevedere la domanda, riducendo così il tempo di arrivo stimato e abbinando in modo efficiente motociclisti e conducenti, riducendo il tasso di chiesa. Con la funzione di chat con un clic dell'IA di Uber, i conducenti possono comunicare con i motociclisti con un solo clic tramite consigli di risposta automatica ai messaggi del conducente. Altre grandi aziende che hanno trasformato le operazioni commerciali con l'IA includono: Amazon, con la sua raccomandazione AI, fabbriche automatizzate e l'assistente digitale Amazon Alexa Tesla con i loro veicoli autonomi Microsoft con Power BI e la piattaforma di machine learning di Azure TENDENZE FUTURE DELL'IA Esaminando le entusiasmanti tendenze future dell'IA, nel prossimo futuro dovremmo aspettarci: Brani e film generati dall'intelligenza artificiale da società di intrattenimento Fabbriche completamente automatizzate che non richiedono supervisione umana L'uso dell'IA per generare dati di addestramento di qualità per se stesso, per affrontare il problema della distorsione e della scarsità di dati e molti altri. I potenziali futuri dell'IA, per la prima volta, lasceranno agli esseri umani il potere effettivo di progettare il futuro esattamente come vogliamo. INTELLIGENZA ARTIFICIALE NEL BUSINESS "L'intelligenza artificiale sarebbe la versione definitiva di Google. Il motore di ricerca definitivo in grado di comprendere tutto sul Web" , afferma Larry Page. “Capirebbe esattamente quello che vuoi e ti darebbe la cosa giusta. Non siamo neanche lontanamente vicini a farlo ora. Tuttavia, possiamo avvicinarci sempre di più a questo, ed è fondamentalmente ciò su cui lavoriamo". Stiamo solo grattando la superficie dell'IA e le sue possibilità possono solo aumentare esponenzialmente. Le aziende che non vogliono perdersi il futuro rivoluzionario del business devono, inevitabilmente, abbracciare l'uso dell'IA come luce guida.

  • Come creare dei checkpoint in un modello di deep learning

    I modelli di deep learning possono richiedere ore, giorni o addirittura settimane per essere addestrati. Se l'allenamento viene interrotto inaspettatamente, puoi perdere molto lavoro. In questo post scoprirai come creare dei checkpoint dei tuoi modelli di deep learning durante l'addestramento in Python usando la libreria Keras. Abbiamo deciso di scrivere questo articolo proprio perchè qualche giorno fa ci è saltata la corrente e abbiamo perso i dati di un allenamento che andava avanti da 7 ore. Risultato finale 7 ore perse. Ma non vogliamo che ti succeda anche a te, proprio per questo segui attentamente l'articolo e imparerai a creare dei checkpoints mentre alleni un modello di deep learning Cosa è un Checkpoint nei modelli di deep learning? Il checkpoint dell'applicazione è una tecnica di "salvataggio dei risultati temporanei" per processi di lunga durata. In questo approccio, viene acquisita un'istantanea dello stato del sistema in caso di guasto del sistema. Se c'è un problema, non tutto è perduto. Il checkpoint può essere utilizzato direttamente o come punto di partenza per un nuovo allenamento riprendendo da dove si era interrotto. Quando si addestrano modelli di deep learning, il punto di checkpoint sono i pesi del modello. Questi pesi possono essere utilizzati per fare previsioni così com'è o come base per la formazione continua. La libreria Keras fornisce una funzionalità di checkpoint tramite un'API di callback . La classe di callback ModelCheckpoint consente di definire dove eseguire il checkpoint dei pesi del modello, come assegnare un nome al file e in quali circostanze creare un checkpoint del modello. L'API consente di specificare quale metrica monitorare, ad esempio la perdita o l'accuratezza del set di dati di addestramento o convalida. È possibile specificare se cercare un miglioramento per massimizzare o ridurre al minimo il punteggio. Infine, il nome file che usi per memorizzare i pesi può includere variabili come il numero di epoch o la metrica. Il ModelCheckpoint può quindi essere passato al processo di addestramento quando si chiama la funzione fit() sul modello. Nota che potrebbe essere necessario installare la libreria h5py per emettere pesi di rete in formato HDF5. Come usare un Checkpoint nei modelli di deep learning? Un buon uso del checkpoint è quello di produrre i pesi del modello ogni volta che si osserva un miglioramento durante l'allenamento. Detto in parole semplici ogni volta che il modello migliora lo salviamo, e ripartiamo da li. L'esempio seguente crea una piccola rete neurale per l'insorgenza del problema di classificazione binaria del diabete. L'esempio presuppone che il file diabetes.csv si trovi nella directory di lavoro. Scaricalo premendo qui sotto. L'esempio utilizza il 33% dei dati per la convalida. Il checkpoint è impostato per salvare i pesi della rete solo quando c'è un miglioramento nell'accuratezza della classificazione sul set di dati di convalida (monitor='val_accuracy' e mode='max'). I pesi sono memorizzati in un file che include il punteggio nel nome del file weights-improvement-{val_accuracy=.2f}.hdf5 Come creare dei checkpoints in un modello di deep learning con Python Crea un nuovo file python e incolla il codice che segue # Creiamo dei checkpoint solo quando il modello migliora from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense from tensorflow.keras.callbacks import ModelCheckpoint import matplotlib.pyplot as plt import numpy as np import tensorflow as tf seed = 42 tf.random.set_seed(seed) # dataset dataset = np.loadtxt("diabetes.csv", delimiter=",") # Dividiamo in input (X) e output (Y) X = dataset[:,0:8] Y = dataset[:,8] # model model = Sequential() model.add(Dense(12, input_shape=(8,), activation='relu')) model.add(Dense(8, activation='relu')) model.add(Dense(1, activation='sigmoid')) # Compiliamo il modello model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) # checkpoint filepath="weights-improvement-{epoch:02d}-{val_accuracy:.2f}.hdf5" checkpoint = ModelCheckpoint(filepath, monitor='val_accuracy', verbose=1, save_best_only=True, mode='max') callbacks_list = [checkpoint] # Allenamento model.fit(X, Y, validation_split=0.33, epochs=150, batch_size=10, callbacks=callbacks_list, verbose=0) L'esecuzione dell'esempio produce il seguente output (troncato): Epoch 00134: val_accuracy did not improve Epoch 00135: val_accuracy did not improve Epoch 00136: val_accuracy did not improve Epoch 00137: val_accuracy did not improve Epoch 00138: val_accuracy did not improve Epoch 00139: val_accuracy did not improve Epoch 00140: val_accuracy improved from 0.83465 to 0.83858, saving model to weights-improvement-140-0.84.hdf5 Epoch 00141: val_accuracy did not improve Epoch 00142: val_accuracy did not improve Epoch 00143: val_accuracy did not improve Epoch 00144: val_accuracy did not improve Epoch 00145: val_accuracy did not improve Epoch 00146: val_accuracy improved from 0.83858 to 0.84252, saving model to weights-improvement-146-0.84.hdf5 Epoch 00147: val_accuracy did not improve Epoch 00148: val_accuracy improved from 0.84252 to 0.84252, saving model to weights-improvement-148-0.84.hdf5 Epoch 00149: val_accuracy did not improve Vedrai un certo numero di file nella tua directory di lavoro contenenti i pesi di rete in formato HDF5. Per esempio: ... weights-improvement-53-0.76.hdf5 weights-improvement-71-0.76.hdf5 weights-improvement-77-0.78.hdf5 weights-improvement-99-0.78.hdf5 Questa è una strategia di checkpoint molto semplice. Potrebbe creare molti file di checkpoint non necessari se l'accuratezza della convalida si sposta su e giù durante le epoch di addestramento. Tuttavia, ti garantirà un'istantanea del miglior modello scoperto durante la tua corsa. Checkpoint del miglior modello di deep learning Una strategia di checkpoint più semplice consiste nel salvare i pesi del modello nello stesso file se e solo se l'accuratezza della convalida migliora. Questo può essere fatto facilmente usando lo stesso codice dall'alto e cambiando il nome del file di output da correggere (escluse le informazioni sul punteggio o sull'epoca). In questo caso, i pesi del modello vengono scritti nel file “weights.best.hdf5” solo se l'accuratezza della classificazione del modello sul dataset di validazione migliora rispetto alla migliore vista finora. # Creiamo dei checkpoint solo quando il modello migliora from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense from tensorflow.keras.callbacks import ModelCheckpoint import matplotlib.pyplot as plt import numpy as np import tensorflow as tf seed = 42 tf.random.set_seed(seed) # dataset dataset = np.loadtxt("diabetes.csv", delimiter=",") # Dividiamo in input (X) e output (Y) X = dataset[:,0:8] Y = dataset[:,8] # model model = Sequential() model.add(Dense(12, input_shape=(8,), activation='relu')) model.add(Dense(8, activation='relu')) model.add(Dense(1, activation='sigmoid')) # Compiliamo il modello model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) # checkpoint filepath="weights.best.hdf5" checkpoint = ModelCheckpoint(filepath, monitor='val_accuracy', verbose=1, save_best_only=True, mode='max') callbacks_list = [checkpoint] # Allenamento model.fit(X, Y, validation_split=0.33, epochs=150, batch_size=10, callbacks=callbacks_list, verbose=0) L'esecuzione di questo esempio fornisce il seguente output (troncato per brevità): Epoch 00139: val_accuracy improved from 0.79134 to 0.79134, saving model to weights.best.hdf5 Epoch 00140: val_accuracy did not improve Epoch 00141: val_accuracy did not improve Epoch 00142: val_accuracy did not improve Epoch 00143: val_accuracy did not improve Epoch 00144: val_accuracy improved from 0.79134 to 0.79528, saving model to weights.best.hdf5 Epoch 00145: val_accuracy improved from 0.79528 to 0.79528, saving model to weights.best.hdf5 Epoch 00146: val_accuracy did not improve Epoch 00147: val_accuracy did not improve Epoch 00148: val_accuracy did not improve Epoch 00149: val_accuracy did not improve Dovresti vedere il file del peso nella tua directory locale. weights.best.hdf5 Questa è una pratica strategia di checkpoint da utilizzare sempre durante i tuoi esperimenti. Garantirà che il tuo modello migliore venga salvato per la corsa per poterlo utilizzare in seguito, se lo desideri. Evita di dover includere codice per tenere traccia e serializzare manualmente il modello migliore durante l'addestramento. EarlyStopping insieme a Checkpoint Negli esempi sopra, è stato fatto un tentativo di adattare il tuo modello con 150 epoch. In realtà non è facile dire quante epoch occorrono per addestrare il proprio modello. Un modo per affrontare questo problema è sovrastimare il numero di epoch. Ma questo potrebbe richiedere molto tempo. Dopotutto, se stai controllando solo il modello migliore, potresti scoprire che nel corso delle diverse migliaia di epoch hai già ottenuto il modello migliore nelle prime cento epoch e in seguito non vengono più effettuati punti di controllo. È abbastanza comune utilizzare il callback ModelCheckpoint insieme a EarlyStopping. Aiuta a interrompere l'allenamento una volta che non si vede alcun miglioramento metrico per diverse epoch. L'esempio seguente aggiunge il callback esper interrompere anticipatamente l'allenamento una volta che non vede migliorare l'accuratezza della convalida per cinque epoch consecutive: from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense from tensorflow.keras.callbacks import ModelCheckpoint, EarlyStopping import matplotlib.pyplot as plt import numpy as np # dataset dataset = np.loadtxt("pima-indians-diabetes.csv", delimiter=",") # input (X) e output (Y) X = dataset[:,0:8] Y = dataset[:,8] # modello model = Sequential() model.add(Dense(12, input_shape=(8,), activation='relu')) model.add(Dense(8, activation='relu')) model.add(Dense(1, activation='sigmoid')) # Compiliamo il modello model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) # checkpoint filepath="weights.best.hdf5" checkpoint = ModelCheckpoint(filepath, monitor='val_accuracy', verbose=1, save_best_only=True, mode='max') es = EarlyStopping(monitor='val_accuracy', patience=5) callbacks_list = [checkpoint, es] # Allenamento model.fit(X, Y, validation_split=0.33, epochs=150, batch_size=10, callbacks=callbacks_list, verbose=0) L'esecuzione di questo esempio fornisce il seguente output: Epoch 1: val_accuracy improved from -inf to 0.51969, saving model to weights.best.hdf5 Epoch 2: val_accuracy did not improve from 0.51969 Epoch 3: val_accuracy improved from 0.51969 to 0.54724, saving model to weights.best.hdf5 Epoch 4: val_accuracy improved from 0.54724 to 0.61417, saving model to weights.best.hdf5 Epoch 5: val_accuracy did not improve from 0.61417 Epoch 6: val_accuracy did not improve from 0.61417 Epoch 7: val_accuracy improved from 0.61417 to 0.66142, saving model to weights.best.hdf5 Epoch 8: val_accuracy did not improve from 0.66142 Epoch 9: val_accuracy did not improve from 0.66142 Epoch 10: val_accuracy improved from 0.66142 to 0.68504, saving model to weights.best.hdf5 Epoch 11: val_accuracy did not improve from 0.68504 Epoch 12: val_accuracy did not improve from 0.68504 Epoch 13: val_accuracy did not improve from 0.68504 Epoch 14: val_accuracy did not improve from 0.68504 Epoch 15: val_accuracy improved from 0.68504 to 0.69685, saving model to weights.best.hdf5 Epoch 16: val_accuracy improved from 0.69685 to 0.71260, saving model to weights.best.hdf5 Epoch 17: val_accuracy improved from 0.71260 to 0.72047, saving model to weights.best.hdf5 Epoch 18: val_accuracy did not improve from 0.72047 Epoch 19: val_accuracy did not improve from 0.72047 Epoch 20: val_accuracy did not improve from 0.72047 Epoch 21: val_accuracy did not improve from 0.72047 Epoch 22: val_accuracy did not improve from 0.72047 Questo processo di addestramento si è interrotto dopo l'epoca 22 poiché non è stata raggiunta una migliore precisione nelle ultime cinque epoch. Caricamento di un modello di rete neurale con checkpoint Ora che hai visto come eseguire il checkpoint dei tuoi modelli di deep learning durante l'allenamento, devi rivedere come caricare e utilizzare un modello con checkpoint. Il checkpoint include solo i pesi del modello. Presuppone che tu conosca la struttura della rete. Anche questo può essere serializzato in un file in formato JSON o YAML. Nell'esempio seguente, la struttura del modello è nota e i pesi migliori vengono caricati dall'esperimento precedente, archiviati nella directory di lavoro nel file weights.best.hdf5. Il modello viene quindi utilizzato per fare previsioni sull'intero set di dati. # come caricare un checkpoint from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense from tensorflow.keras.callbacks import ModelCheckpoint import matplotlib.pyplot as plt import numpy as np # modello model = Sequential() model.add(Dense(12, input_shape=(8,), activation='relu')) model.add(Dense(8, activation='relu')) model.add(Dense(1, activation='sigmoid')) # carichiamo i pesi ( weights ) model.load_weights("weights.best.hdf5") # Compiliamo il modello model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) print("Created model and loaded weights from file") # dataset dataset = np.loadtxt("pima-indians-diabetes.csv", delimiter=",") # input (X) e output (Y) X = dataset[:,0:8] Y = dataset[:,8] # accuracy scores = model.evaluate(X, Y, verbose=0) print("%s: %.2f%%" % (model.metrics_names[1], scores[1]*100)) L'esecuzione dell'esempio produce il seguente output: Created model and loaded weights from file acc: 77.73% Riepilogo su Come creare dei checkpoints in un modello di deep learning In questo post, hai scoperto l'importanza di controllare i modelli di deep learning per lunghe sessioni di allenamento. Hai imparato due strategie di check-point che puoi utilizzare nel tuo prossimo progetto di deep learning: Miglioramenti del modello di checkpoint Solo miglior modello di Checkpoint Hai anche imparato a caricare un modello con checkpoint e fare previsioni. Hai domande sul checkpoint dei modelli di deep learning o su questo post? Poni le tue domande nei commenti e farò del mio meglio per rispondere.

  • Giornalismo e Intelligenza Artificiale : possibilità, limiti e risultati

    Microsoft ha fatto scalpore questo maggio quando ha annunciato che avrebbe licenziato più di 50 giornalisti ed editori dalla sua forza lavoro. Molti di questi dipendenti sono stati coinvolti nel processo di cura delle notizie, selezionando contenuti selezionati che sarebbero stati eseguiti sui siti Web di Microsoft News e MSN. Introduzione Giornalismo e Intelligenza Artificiale Ma le loro posizioni non rimarranno vuote a lungo: Microsoft dovrebbe sostituirle non con nuove assunzioni, ma con software di intelligenza artificiale in grado di identificare articoli di tendenza e interessanti, svolgendo essenzialmente la loro vecchia funzione lavorativa. Ma la curatela è solo un compito che i "giornalisti" dell'IA possono ora svolgere. Kristian Hammond, professore di informatica e co-fondatore della società di narrazione di dati Narrative Science, ha previsto nel 2012 che in 15 anni oltre il 90% degli articoli di notizie sarebbe stato scritto da un computer. A 7 anni dalla scadenza, tuttavia, siamo ancora molto lontani da questa previsione, ma anche molto più vicini di quanto non fossimo una volta, come discuteremo di seguito. La buona notizia per i giornalisti umani è che c'è ancora molto bisogno dei loro servizi quando scrivono articoli come questo. Ma con macchine ora in grado di svolgere più compiti che mai (e più complessi), ci troviamo di fronte a diverse domande importanti: qual è il ruolo dell'IA nel giornalismo e quali sono le sfide e le considerazioni quando si porta l'IA nella redazione? L'intelligenza Artificiale può scrivere le notizie? A partire dagli ultimi anni, i giornalisti di AI sono stati in grado di scrivere articoli "plug and play" che non richiedono ricerche indipendenti. Ad esempio, di seguito è riportato il paragrafo di apertura di un articolo di un giornalista di intelligenza artificiale su una partita di basket del college , creato dalla piattaforma di generazione del linguaggio naturale Wordsmith nel 2015. Ecco l'articolo tradotto in Italiano, facci sapere nei commenti se capisci chi lo ha scritto... L'UNC batte Louisville 72-71 sul canestro di Paige Guidato da un vincitore del gioco Paige, la Carolina del Nord sconfigge Louisville 72-71 CHAPEL HILL, NC — Marcus Paige ha segnato a nove secondi dalla fine del gioco dando alla Carolina del Nord un vantaggio di 72-71 su Louisville. Gli Heels hanno mantenuto la vittoria con lo stesso punteggio a seguito di una tripla mancata di Wayne Blackshear e di un tentativo fallito di seconda possibilità di Terry Rozier. Questa notizia l ha scritta un IA Per ora, gli articoli scritti dall'intelligenza artificiale sono limitati ad argomenti relativamente semplici e stereotipati: risultati di borsa, annunci di fusioni e acquisizioni, risultati di partite sportive, ecc. Bloomberg News, ad esempio, utilizza un sistema di intelligenza artificiale chiamato Cyborg che scansiona automaticamente i rapporti trimestrali delle aziende e quindi restituisce un articolo veloce con le informazioni più rilevanti. Qualcosa di più complicato di questo è fuori portata per ora, almeno se i giornalisti vogliono pubblicare storie che non li mettano a rischio di una causa per diffamazione. I modelli linguistici come GPT-3 hanno creato scalpore per la loro capacità di sintetizzare diversi paragrafi di testo inglese altamente realistico, ma non vi è alcuna garanzia che il contenuto che generano abbia una base nella realtà. Intelligenza artificiale e giornalisti Quando l'IA non scrive articoli in sé, può anche aiutare i giornalisti umani con lavori troppo intricati da gestire, come articoli di lunga durata, analisi approfondite e giornalismo investigativo. Un caso d'uso dell'IA estremamente prezioso: la trascrizione automatizzata delle interviste, che può far risparmiare ai giornalisti umani ore incalcolabili di lavoro. Sebbene i risultati della trascrizione dell'IA siano raramente impeccabili, i pochi errori che il software commette possono essere facilmente corretti da un editor umano. Ad esempio, il servizio automatizzato di sintesi vocale Trint è stato fondato dall'ex giornalista televisivo Jeff Kofman. Trint ha chiuso un round di finanziamento di 4,5 milioni di dollari nell'aprile 2019 e annovera tra i suoi investitori Associated Press e Google Digital News Innovation Fund. Le trascrizioni in uscita dalla piattaforma Trint vengono automaticamente mappate sulla sorgente audio o video, consentendo ai giornalisti di cercare facilmente contenuti specifici. Secondo Kofman, il software è in grado di fornire tassi di precisione dal 95 al 99% per un audio relativamente pulito in pochi minuti. Ho usato molto Trint durante il mio dottorato e mi ha fatto risparmiare un sacco di tempo. La tecnologia AI può anche identificare tendenze e sviluppi interessanti che meritano di essere esaminati dai giornalisti umani. Nel 2018, Forbes ha lanciato un nuovo sistema di gestione dei contenuti abilitato all'intelligenza artificiale chiamato "Bertie" che raccomanda possibili argomenti e titoli degli articoli ai contributori, in base al loro lavoro precedente. Finora l'esperimento sembra essere stato un successo: secondo Forbes, il numero di visitatori fedeli (cioè quelli che visitano il sito di Forbes più di una volta al mese) è raddoppiato nei mesi successivi al lancio di Bertie. Contenuti curati per gli utenti L'intelligenza artificiale non solo influisce sulle notizie che vengono scritte, ma controlla anche gli articoli che le persone vedono, come abbiamo visto con la decisione di Microsoft di utilizzare i curatori di notizie sull'intelligenza artificiale. È risaputo che l'algoritmo del feed di notizie di Facebook suggerisce (quello che ritiene essere) il contenuto più rilevante per gli utenti, in base alle pagine che hanno messo mi piace e alle loro precedenti interazioni sulla piattaforma. Allo stesso modo, la tecnologia AI può tenere traccia degli articoli che gli abbonati visitano su un sito Web di notizie, imparando il loro comportamento e le loro preferenze (ad esempio, quanto tempo trascorrono a leggere ciascun articolo). Più una testata giornalistica conosce i propri clienti, più contenuti pertinenti può visualizzare sul sito Web o in una newsletter settimanale, offrendo un'esperienza personalizzata che aiuta a incoraggiare l'interazione dell'utente e scoraggiare l'attrito. Secondo un sondaggio del 2019 della società di media digitali Digiday, il 70% degli editori digitali afferma di personalizzare i contenuti per i visitatori. Alcuni esempi di personalizzazione dei contenuti nel giornalismo includono: L' app mobile del New York Times mostra un'importante sezione "Per te" sulla sua home page. Il Boston Globe utilizza una piattaforma di dati sui clienti per raccogliere informazioni sugli abbonati e ha scoperto che i suoi lettori rispondono del 70% in più ai messaggi mirati. Il gruppo Hearst Newspapers ha utilizzato l'API di Google Cloud Natural Language per classificare i propri contenuti digitali, aiutando a segmentare gli utenti in base alle loro preferenze di lettura. Decisioni aziendali basate sui dati L'ufficio commerciale di una testata giornalistica può trarre vantaggio dall'IA tanto quanto i giornalisti stessi. Raccogliendo dati e calcolando i numeri, l'IA può aiutare manager e dirigenti a prendere decisioni su quale tipo di contenuto produrre, a quali abbonati ed ex abbonati scegliere come target, quali campagne di marketing eseguire, quanto addebitare per annunci e abbonamenti e altro ancora. Un uso intrigante dell'IA per il business del giornalismo è il paywall dinamico del Wall Street Journal , in cui a utenti diversi vengono mostrate quantità diverse di informazioni in base alla probabilità che acquisteranno un abbonamento. Ad esempio, gli utenti che hanno cercato articoli sul sito Web WSJ sono visti come clienti più probabili rispetto agli utenti che hanno trovato gli stessi articoli tramite i social media. Di conseguenza, questi lead promettenti sono in grado di vedere più contenuti prima che venga loro chiesto di iscriversi. I limiti dell' Intelligenza artificiale nel giornalismo Finora il giornalismo abilitato all'intelligenza artificiale ha mostrato grandi promesse, ma c'è un limite a questa promessa? Secondo il rapporto JournalismAI di novembre 2019 , che ha intervistato 71 testate giornalistiche in 32 paesi, ci sono ancora difficoltà significative che le testate giornalistiche devono affrontare nell'adottare l'IA. Le prime tre sfide per portare l'IA nella redazione sono state: Risorse finanziarie (27%) Mancanza di conoscenze o abilità (24%) Resistenza culturale (24%) Al di là di queste barriere istituzionali, c'è anche una buona ragione per chiedersi se l'IA nel giornalismo sia davvero il punto di svolta che i suoi sostenitori affermano che sarà. Il professore di giornalismo della Columbia Francesco Marconi stima che in futuro solo dall'8 al 12 per cento dei compiti dei giornalisti sarà sostituito da una macchina. Lo stato dell'intelligenza artificiale per il giornalismo aiuta a illustrare la differenza tra IA forte e debole. L'IA forte o "generale", una macchina che si avvicina all'intelligenza a livello umano su tutta la linea, è ancora lontana decenni e potrebbe non essere mai veramente raggiungibile. L'IA debole, d'altra parte, si riferisce all'intelligenza artificiale che è altamente qualificata in un'attività o una serie di attività ben definite. In sostanza, ci sono ottime ragioni per essere scettici sul fatto che le redazioni vedranno mai un "robot reporter" che martella il pavimento come i suoi colleghi umani, conducendo interviste e scrivendo storie da zero. Ma ci sono anche prove intorno a noi che l'IA ha un ruolo importante da svolgere nel campo del giornalismo, creando riassunti di articoli, generando idee e proposte, analizzando dati per trovare storie interessanti, e che questo ruolo sta aumentando ogni anno che passa. Le ripercussioni dell' IA nel giornalismo L'etica giornalistica è già un argomento delicato, così come l'etica nell'IA, il che rende la loro combinazione particolarmente controversa. Dopotutto, questa è un'era in cui le " notizie false " sono una preoccupazione crescente: solo il 41% degli americani afferma di ritenere che i media siano equi e accurati e il 46% degli europei afferma di fidarsi della loro stampa scritta, il che è esattamente perché stiamo sviluppando Mavin in modo che tutti possano riconoscere immediatamente di quali articoli fidarsi. Ci sono due preoccupazioni distinte su come la tecnologia AI viene applicata nel giornalismo: l'uso dell'IA per generare contenuti e l'uso dell'IA per curare e mostrare i contenuti all'utente finale. Entrambi questi problemi devono essere gestiti con cura. Nel 2014, ad esempio, Facebook ha rivelato i risultati di un controverso esperimento con i feed di notizie degli utenti . Le persone che sono state esposte a "contenuti emotivi positivi" su Facebook più spesso hanno pubblicato post più positivi, mentre l'effetto inverso si è verificato con le persone che hanno visto più contenuti negativi. Allo stesso modo, una società di notizie che promuove articoli basati solo sulle interazioni degli utenti si troverebbe probabilmente in una corsa al ribasso in termini di qualità: sputando articoli clickbait e notizie che provocano forti emozioni, tra cui tristezza e indignazione. Per evitare questo destino, le testate giornalistiche devono mantenere una mano umana ferma al volante, anche se cedono più responsabilità ai giornalisti e ai curatori dell'IA. Sebbene le macchine possano sfornare centinaia di storie taglia e incolla al giorno, questi articoli richiedono comunque la supervisione umana e il controllo dei fatti prima di andare in stampa. Allo stesso modo, gli esseri umani devono supervisionare e verificare gli algoritmi di cura delle notizie per garantire che i risultati siano costantemente di alta qualità (e per frenare il contraccolpo che gli algoritmi di raccomandazione hanno ricevuto negli ultimi anni). I giornalisti dell'IA hanno mostrato enormi possibilità per eliminare gran parte del duro lavoro sul campo: raccogliere dati, trascrivere registrazioni, scrivere meno articoli interessanti, ecc. Ma quando si tratta del lavoro che distingue davvero una testata giornalistica: reportage approfonditi e analisi, commenti politici, colonne di opinione: è chiaro che gli esseri umani saranno una parte essenziale di questo mestiere anche in futuro.

  • Come creare grafici su dati multidimensionali

    Quasi tutti hanno familiarità con dataset bidimensionali e la maggior parte degli studenti universitari solitamente hanno familiarità con set di dati tridimensionali . Tuttavia, i set di dati moderni sono raramente bidimensionali o tridimensionali. Nell'apprendimento automatico è normale avere dozzine se non centinaia di dimensioni e anche i set di dati generati dall'uomo possono avere una dozzina di dimensioni. Allo stesso tempo, la visualizzazione è un primo passo importante per lavorare con i dati. In questo post del blog, esplorerò come possiamo usare Python per lavorare con dati multidimensionali. L'analisi dei dati multidimensionale è un'analisi informativa dei dati che tiene conto di molte relazioni. Perchè grafici su dati multidimensionali ? Viviamo in un mondo dominato dalla grafica e non solo dalle cose quotidiane che vediamo. Che ne dici di quelli che hanno lo scopo di trasmettere una sorta di messaggio? I rivenditori inondano le loro vetrine con elementi visivi che promuovono i loro ultimi prodotti, scansioniamo i nostri canali di notizie preferiti per immagini sul tempo imminente e ci divertiamo con le immagini dell'ultimo successone. Non sorprende, data la nostra affinità con la nostra vista. Ma come fanno i loro creatori a catturare la nostra attenzione così facilmente? Come fanno a rendere questi effetti visivi così efficaci? Ci sono una serie di fattori che entrano in gioco e la visualizzazione dei dati è l'area che li esamina. Che cos'è la visualizzazione dei dati? La visualizzazione dei dati riguarda il piacere degli occhi. Ma più precisamente, si tratta di creare elementi visivi informativi che ci insegnino qualcosa rapidamente. A volte, questi elementi visivi sono semplici e trasmettono il minimo. Ma a volte succede così tanto che facciamo fatica a stare al passo. Ad esempio, pensa al tuo cellulare. La schermata principale contiene una serie di pulsanti multicolori che, con un semplice tocco, ti portano a una serie di istanze di visualizzazione dei dati: mappe stradali, riepiloghi meteorologici costantemente aggiornati, l'andamento dell'uso della batteria , i grafici dei like e follower di instagram oppure i grafici delle azioni. La visualizzazione dei dati ha un impatto su molti aspetti della nostra vita, come puoi facilmente vedere. Come riconoscere una dataset multidimensionale Nel senso più semplice, una dimensione è una variabile presa in considerazione. Consideriamo un semplice grafico per il momento. È una trama di una relazione tra due aspetti o variabili. L'indipendente lungo un asse (X) e il dipendente lungo l'altro (Y). Diciamo che questo è bidimensionale. Niente di sconvolgente, lo impariamo alle elementari. L'idea si estende a tre dimensioni aggiungendo un terzo aspetto o variabile (Z). Pensando in questo modo, multidimensionale significa semplicemente aggiungere ulteriori aspetti o variabili da considerare. Quali sono alcuni metodi di visualizzazione dei dati multidimensionali? Tutto ciò che è multidimensionale, con 3 dimensioni o meno, è facile da capire. Viviamo in un mondo tridimensionale e possiamo relazionarci con esso. Ma che dire di quattro o più dimensioni? La visualizzazione dei dati gestisce questo in uno dei due modi. Se la quarta dimensione è il tempo, allora osserviamo le prime tre dimensioni mentre cambiano nel tempo. Se il tempo non è coinvolto, rappresentiamo le dimensioni tre e superiori, fianco a fianco, come rappresentazioni tridimensionali separate. In sostanza, scomponiamo il problema in una serie di pezzi tridimensionali. Ora mettiamo mano al codice. Come creare grafici su dati multidimensionali con Python? A partire dall'importazione delle librerie rilevanti come NumPy (gestione dei calcoli matematici), panda (manipolazioni di DataFrame), matplotlib (la libreria di visualizzazione OG più vicina all'interprete Python e allo sviluppo "C" ) e, ultimo ma non meno importante, seaborn (costruito su matplotlib offre più opzioni e un aspetto migliore e una sensazione comparativa). Scarica questo dataset per seguire il nostro tutorial : Ora crea un nuovo file python o notebook e inizia a seguirci con il codice. #importiamo le librerie necessarie import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sb #carichiamo i dati df_original = pd.read_csv("diabetes.csv") #print(df_original.head()) cols = [c for c in df_original.columns if c not in ["Pregnancies", "Outcome"]] df = df_original.copy() df[cols] = df[cols].replace({0: np.NaN}) print(df.head()) la rimozione dei valori mancanti o inutili dal set di dati è sempre il passaggio prioritario. Qui stiamo prima sostituendo il valore 0 con NaN. #capiamo quali colonne hanno valori Null #Nello step prima abbiamo sostituito i NaN # NaN != Null df.info() ora possiamo vedere che in alcune colonne ci sono alcuni valori Null come Spessore della pelle, Insulina, BMI , ecc. [ Nota che abbiamo 8 colonne quindi 8 dimensioni ] Visualizzazione dei dati multidimensionali Quindi, sorprendentemente nessuno è utile per visualizzare i dati. Utilizzando head, possiamo vedere che questo set di dati utilizza 0 per non rappresentare alcun valore, a meno che una povera anima sfortunata non abbia uno spessore della pelle di 0. Se vogliamo fare più di quanto ci aspettiamo dai dati, possiamo usare la funzione descritta di cui abbiamo parlato nella sezione precedente. df.describe() Output: Matrice a dispersione dei dati multidimensionali con Python Scatter Matrix è uno dei migliori grafici per determinare la relazione ( per lo più lineare ) tra le molteplici variabili di tutti i dataset; quando vedrai il grafico lineare tra due o più variabili che indica l' elevata correlazione tra quelle caratteristiche, può essere una correlazione positiva o negativa . pd.plotting.scatter_matrix(df, figsize=(10, 10)); Dall'immagine sopra, possiamo dire che questo grafico da solo è abbastanza descrittivo in quanto ci mostra la relazione lineare tra tutte le variabili nel set di dati. Ad esempio, possiamo vedere che lo spessore della pelle e l' IMC condividono tendenze lineari. PS: a causa dei grandi nomi delle colonne, come puoi vedere, potresti vederli sovrapposti ma può essere migliorato ( ma è fuori dallo scopo dell'articolo). il grafico a dispersione ci fornisce sia gli istogrammi per le distribuzioni lungo la diagonale che molti grafici a dispersione 2D fuori diagonale . Non che questa sia una matrice simmetrica, quindi guardo semplicemente la diagonale e sotto di essa normalmente. Possiamo vedere che alcune variabili hanno molta dispersione e alcune sono correlate (cioè, c'è una direzione nella loro dispersione). Questo ci porta a un altro tipo di trama, cioè la trama di correlazione . df2 = df.dropna() colors = df2["Outcome"].map(lambda x: "#44d9ff" if x else "#f95b4a") pd.plotting.scatter_matrix(df2, figsize=(10,10), color=colors); Output: Grafici di correlazione dei dati multidimensionali con Python Prima di entrare in una discussione approfondita con il grafico di correlazione, dobbiamo prima capire la correlazione e, per questo motivo, stiamo usando il metodo corr() di panda che restituirà il coefficiente di correlazione di Pearson tra due input di dati. In poche parole, questi grafici quantificano facilmente quali variabili o attributi sono correlati tra loro. df.corr() Output: sb.set(rc={'figure.figsize':(11,6)}) sb.heatmap(df.corr()); Output: In un grafico di correlazione supportato da seaborn o matplotlib , possiamo confrontare la correlazione più alta e quella più bassa tra le variabili usando la sua tavolozza di colori e scala. Nel grafico sopra, più chiaro è il colore, maggiore è la correlazione e viceversa . Ci sono alcuni inconvenienti in questo grafico di cui ci libereremo nel prossimo grafico. sb.heatmap(df.corr(), annot=True, cmap="viridis", fmt="0.2f"); ora si può vedere che anche questa è una matrice simmetrica . Ma permette subito di evidenziare gli attributi più correlati e anti-correlati . Alcuni potrebbero essere solo il buon senso – ad esempio Gravidanza v Età – ma alcuni potrebbero darci una visione reale dei dati. Qui, abbiamo anche usato alcuni parametri come annot= True in modo da poter vedere i valori correlati e anche una certa formattazione. Istogrammi 2D dei dati multidimensionali con Python Gli istogrammi 2D vengono utilizzati principalmente per l'elaborazione delle immagini, mostrando l' intensità dei pixel in una determinata posizione dell'immagine. Allo stesso modo, possiamo anche usarlo per altre affermazioni di problemi, dove abbiamo bisogno di analizzare due o più variabili come istogrammi bidimensionali o tridimensionali , che forniscono Dati multidimensionali. Per il resto di questa sezione, utilizzeremo un set di dati diverso con più dati. df2 = pd.read_csv("height_weight.csv") df2.info() df2.describe() Output: plt.hist2d(df2["height"], df2["weight"], bins=20, cmap="magma") plt.xlabel("Height") plt.ylabel("Weight"); Output: abbiamo anche lavorato con istogrammi unidimensionali per dati multidimensionali, ma ora è per l'analisi univariata se vogliamo ottenere la distribuzione dei dati di più di una caratteristica, dobbiamo spostare la nostra attenzione sugli istogrammi 2-D . Nel grafico 2-D sopra l'altezza e il peso sono tracciati l'uno rispetto all'altro, mantenendo il C-MAP come magma . Trame di contorno su dati multidimensionali con Python È un po' difficile ottenere informazioni dall'istogramma 2D, vero? Troppo rumore nell'immagine. E se proviamo a fare un diagramma di contorno? Dovremo cestinare i dati noi Ogni alternativa entra in scena quando quella originale presenta degli inconvenienti. Allo stesso modo, nel caso degli istogrammi 2-D diventa un po' difficile ottenere le informazioni da esso poiché c'è tanto rumore nel grafico. Quindi ora andremo con un diagramma di contorno hist, x_edge, y_edge = np.histogram2d(df2["height"], df2["weight"], bins=20) x_center = 0.5 * (x_edge[1:] + x_edge[:-1]) y_center = 0.5 * (y_edge[1:] + y_edge[:-1]) plt.contour(x_center, y_center, hist, levels=4) plt.xlabel("Height") plt.ylabel("Weight"); Output: Ora possiamo vedere che questo diagramma di contorno è molto meglio di un istogramma 2-D complesso e rumoroso in quanto mostra la chiara distribuzione tra altezza e peso contemporaneamente. C'è ancora spazio per migliorare. Se useremo la trama di KDE di Seaborn, gli stessi contorni saranno smussati e più chiaramente informativi. Conclusione Fin dall'inizio dell'articolo, ci concentriamo principalmente sulla visualizzazione dei dati per i dati multidimensionali e, in questo viaggio, abbiamo esaminato tutti i grafici/trame importanti che potrebbero derivare approfondimenti relativi al business dai dati numerici da più funzionalità tutto in una volta. Nell'ultima sezione, tratteremo tutti questi grafici in poche parole. Per prima cosa abbiamo visto una matrice di dispersione che ci mostra la relazione di ogni variabile con l'altra. Quindi viene utilizzata la mappa di calore del mare per ottenere un approccio migliore all'analisi multivariabile . Poi sono arrivati ​​gli istogrammi 2-D, dove possiamo andare con l'analisi delle variabili binarie, cioè 2 variabili possono essere viste contemporaneamente e possiamo ottenere informazioni da esse. Alla fine, siamo venuti a conoscenza della trama Contour, che ci ha aiutato a ottenere una versione migliore degli istogrammi 2-D poiché rimuove il rumore dall'immagine e ha un'interpretazione più chiara.

  • Creare un motore di ricerca che utilizza il deep learning con python

    Una guida sulla creazione di un motore di ricerca che utilizzano il deep learning con python . In questo articolo tratteremo un caso d'uso molto interessante ma complicato della NLP, che è un sistema di recupero delle informazioni ( motore di ricerca ) . Il sistema di recupero delle informazioni è un'applicazione molto utilizzata della NLP. In un sistema di recupero delle informazioni ( o motore di ricerca ), avremo varie raccolte di documenti e avremo bisogno di cercare un documento specifico passando un significato di contesto. introduzione Google ha trilioni di pagine Web, in che modo Google ricerca in modo efficiente le pagine Web pertinenti per noi senza prendere l'URL della pagina?. I motori di ricerca moderni fanno molto affidamento sull'intelligenza artificiale (AI) per funzionare e sapere come funziona l' IA nella ricerca può aiutarti a classificare meglio il tuo sito web. L'IA nella ricerca è responsabile di tutto, dai risultati di ricerca che vedi agli argomenti correlati che sei incoraggiato a esplorare ulteriormente. E oggi è impossibile che un moderno motore di ricerca funzioni senza un'intelligenza artificiale sofisticata. Il modo migliore in cui i motori di ricerca utilizzano l'IA è classificare pagine Web, video e altri contenuti nei risultati di ricerca. Google (e altri motori di ricerca) si affidano a un'intelligenza artificiale complessa per determinare il modo in cui i contenuti vengono classificati. Gli algoritmi utilizzati da questi sistemi di intelligenza artificiale hanno molte regole che danno la priorità a diversi fattori, dai tipi di parole chiave nei tuoi contenuti all'esperienza utente del tuo sito. Insieme, questi fattori aiutano l'IA di Google a determinare quali pagine pubblicare in risposta alla tua query di ricerca. Sebbene Google fornisca indicazioni su ciò che conta per i suoi algoritmi, nessuno al di fuori dell'azienda ha piena visibilità su come questi algoritmi prendono le decisioni. Noi oggi faremo la stessa cosa. Semplificata natualmente. Creare un motore di ricerca che utilizza il deep learning Per creare un motore di ricerca dotato di IA per fare concorrenza google dobbiamo prima tenere a mente e conoscere bene uno strumento fondamentale : Sistemi information retrieval Un sistema IR ( information retrieval ) ci consente di cercare un documento in base alle informazioni significative su quel documento in modo efficiente. Come sappiamo, due frasi possono avere strutture molto diverse e parole diverse ma possono avere lo stesso significato. In NLP il nostro obiettivo è catturare il significato delle frasi, utilizzando vari concetti di NLP che vedremo in dettaglio più avanti nell'articolo. Nel sistema IR utilizziamo il significato del contesto per cercare i documenti. Quindi per creare un motore di ricerca bisogna prima creare un sistema di recupero delle informazioni utilizzando il significato del contesto. Creare un motore di ricerca basato su IR Potrebbero esserci diversi modi per eseguire il recupero delle informazioni. Ma il modo più semplice ma molto efficiente per farlo utilizzando l'incorporamento delle parole. l'inclusione di parole prende in considerazione il significato del contesto indipendentemente dalla struttura della frase. Applicazioni dei sistemi IR: Recupero documenti Motori di ricerca Risposte alle domande Come creare un motore di ricerca con IA in grado di contestualizzare Il word embedding è in grado di comprendere il significato della frase, indipendentemente dalla struttura della parola. Per esempio : " Lo amo " e " Mi piace " avranno quasi lo stesso significato se usiamo l'incorporamento delle parole. È una tecnica di apprendimento delle funzionalità predittive in cui le parole vengono mappate sui vettori utilizzando la loro gerarchia contestuale. Come vedi gattino (Kitten) e gatto (cat) sono posti molto vicini perché hanno significati molto vicini. L'incorporamento di parole è stato addestrato su oltre 8 miliardi di parole utilizzando reti neurali poco profonde, utilizzeremo il vettore di incorporamento di parole pre-addestrato per creare il nostro motore di ricerca dotato di Intelligenza Artificiale, più nello specifico implementerà teciche di deep learning. Creare un motore di ricerca che utilizza il deep learning con Python Implementeremo il sistema di recupero delle informazioni usando python. Durante l'implementazione del sistema di recupero delle informazioni, ci sono alcuni passaggi che dobbiamo seguire: Ottenere i dati Pulizia dei dati Caricamento di word2vec pre-addestrato Ottenere il significato contestuale dei documenti Confronto di query con documenti 1. Creare i documenti abbiamo creato il nostro set di dati contenente 4 documenti, per una migliore comprensione utilizzeremo un piccolo set di dati. doc1 = ["""Wasting natural resources is a very serious problem, since we all know that natural resources are limited but still we dont feel it. We use it more than we need, Government are also encouraging people to save the natural resoucres""" ] doc2 = ["""Machine learning is now days a very popular field of study, a continuous reasearch is going on this , Machine learning is all about maths. Analysing the patters solve the task."""] doc3 = ["""Nowdays books are loosing its charm since the phones and smart gadgets has taken over the old time, Books are now printed in Digital ways, This saves papers and ultimately saves thousands of trees"""] doc4 = ["""The man behind the wicket is MS DHONI , his fast hand behind wicket are a big advantage for india, but pant has now carrying the legacy of DHONI but he is not that fast"""] qui abbiamo 4 documenti e il nostro set di dati sarà un elenco di documenti separati da una virgola. #------unione di tutti i documenti------- data = doc1+doc2+doc3+doc4 print(data) Output: 2. Importiamo le librerie import numpy as np import nltk import itertools from nltk.corpus import stopwords from nltk.tokenize import sent_tokenize, word_tokenize import scipy from scipy import spatial import re tokenizer = ToktokTokenizer() stopword_list = nltk.corpus.stopwords.words('english') 3. Pulizia dei dati Nella NLP la pulizia dei dati generalizza sempre la nostra formazione e promette risultati migliori. È sempre buona norma eseguire la pulizia dei dati dopo averli caricati. Creiamo una funzione per pulire i nostri dati def remove_stopwords(text, is_lower_case=False): pattern = r'[^a-zA-z0-9s]' text = re.sub(pattern," ",''.join(text)) tokens = tokenizer.tokenize(text) tokens = [tok.strip() for tok in tokens] if is_lower_case: cleaned_token = [tok for tok in tokens if tok not in stopword_list] else: cleaned_tokens = [tok for tok in tokens if tok.lower() not in stopword_list] filtered_text = ' '.join(cleaned_tokens) return filtered_text La funzione remove_stopwords prende i documenti uno per uno e restituisce il documento pulito. abbiamo prima rimosso tutti i caratteri non necessari usando le espressioni regolari. Dopo aver rimosso i caratteri non necessari, abbiamo tokenizzato la parola filtrata e utilizzato stopword_list per filtrare tutte le stopword. 4. Implementazione dell'incorporamento di parole Useremo un vettore di parole pre-addestrato di 300 dimensioni. puoi scaricare la parola vettore usando questo link . Ti suggerirei di creare un taccuino su Kaggle è un'opzione migliore se non vuoi scaricare il grande file di vettori. Caricamento dei vettori di parole glove_vectors = dict() file = open('../input/glove6b/glove.6B.300d.txt', encoding = 'utf-8') for line in file: values = line.split() word = values[0] vectors = np.asarray(values[1:]) glove_vectors[word] = vectors file.close() glove_vector : È un dizionario contenente parole come chiavi e valori come vettori di caratteristiche. glove.6B.300d : Questa incorporazione di parole è addestrata su 6 miliardi di parole e la lunghezza dei vettori di funzionalità è 300. Se una parola non è presente nel nostro dizionario dei vettori di parole, restituirà un vettore zero di 300 lunghezze. Creazione di un vettore di funzionalità per il nostro documento utilizzando incorporamenti di parole. Stiamo creando una funzione che prende una frase e restituisce il vettore di caratteristiche di 300 dimensioni. vec_dimension = 300 def get_embedding(x): arr = np.zeros(vec_dimension) text = str(x).split() for t in text: try: vec = glove_vectors.get(t).astype(float) arr = arr + vec except: pass arr = arr.reshape(1,-1)[0] return(arr/len(text)) 5. Riepilogo Un documento contiene molte frasi e una frase ha molti vettori in base al numero di parole presenti in quella frase. Per riassumere il significato di un documento, dobbiamo fare la media del significato di tutte le frasi all'interno di quel documento. Nel linguaggio della NLP, facciamo la media di tutti i vettori di caratteristiche di tutte le frasi all'interno di quel documento. out_dict = {} for sen in fin: average_vector = (np.mean(np.array([get_embedding(x) for x in nltk.word_tokenize(remove_stopwords(sen))]), axis=0)) dict = { sen : (average_vector) } out_dict.update(dict) Il dizionario out_dict contiene documenti come chiave e i loro vettori di caratteristiche medie come valori corrispondenti. I vettori di caratteristiche medie codificano il significato di un documento in vettori. 6. Confrontare il significato di un contesto A partire da ora, abbiamo il vettore di funzionalità di ogni singolo documento e dobbiamo costruire una funzione in grado di confrontare i vettori di funzionalità in base al loro significato. La somiglianza di due parole può essere calcolata utilizzando la distanza del coseno tra i vettori delle loro caratteristiche. def get_sim(query_embedding, average_vector_doc): sim = [(1 - scipy.spatial.distance.cosine(query_embedding, average_vector_doc))] return sim la funzione get_sim prende il vettore di funzionalità delle query e il vettore di funzionalità di tutti i documenti e restituisce la somiglianza tra query e documento. Se la somiglianza sim è maggiore, più vicino a 1 possiamo dire che ha quasi lo stesso significato. Se la somiglianza sim è più vicina a 0, possiamo dire che il loro significato è diverso. il pacchetto scipy fornisce la classe scipy.spatial.distance.cosine per il calcolo della distanza del coseno. 7. Usiamo il nostro motore Siamo pronti con i vettori di funzionalità dei documenti e abbiamo creato la funzione per confrontare la somiglianza di due vettori di funzionalità. def Ranked_documents(query): query_word_vectors = (np.mean(np.array([get_embedding(x) for x in nltk.word_tokenize(query.lower())],dtype=float), axis=0)) rank = [] for k,v in out_dict.items(): rank.append((k, get_sim(query_word_vectors, v))) rank = sorted(rank,key=lambda t: t[1], reverse=True) print('Ranked Documents :') return rank[0] query_word_vectors Contiene i vettori di funzionalità della query di input. La funzione Ranked_document confronta la somiglianza tra i vettori di funzionalità della query con il vettore di funzionalità dei documenti in modo iterativo. stiamo restituendo solo un documento più simile al nostro output. 8. Risultati Quando chiamiamo la Ranked_documentfunzione passando una query, la funzione restituirà il documento più rilevante relativo alla nostra query. Esempio 1: Ranked_documents('bat and ball') Come vedi bat and ball è correlato al cricket quando abbiamo cercato questa parola chiave il modello restituisce il documento relativo al cricket. Inoltre, nel documento non è presente alcuna parola mazza e palla. ( Doc4 ) Esempio 2: Ranked_documents(‘computer science’) Come tutti sappiamo, l'informatica è legata all'apprendimento automatico. quando abbiamo interrogato la parola chiave computer science ha restituito il documento relativo all'informatica. Conclusione sui motori di ricerca con deep learning In questo articolo abbiamo discusso il sistema di recupero dei documenti, che si basa sul confronto del significato di un documento/frase confrontando i vettori delle caratteristiche. Abbiamo implementato il sistema di recupero dei documenti utilizzando Python e l'incorporamento di parole pre-addestrato. Esistono diversi modi per eseguire la corrispondenza dei documenti, ma utilizzando l'incorporamento di parole e scipy’s la distanza del coseno diventa molto più facile da implementare. Puoi copiare e scaricare i codici utilizzati in questo articolo utilizzando questo link .

bottom of page