top of page

Risultati Ricerca Intelligenza Artificiale Italia

484 risultati trovati con una ricerca vuota

  • La Cognizione

    Questa Spiegazione è appartenente ad una Serie di Articoli. Prima di iniziare a leggere ti consigliamo di guardare gli articoli precedenti : Lo Strumento "mente" Il servomeccanismo mentale Gli Engrammi : Le Immagini della Mente Che cosa è un concetto Gli stati Attenzionali Le funzioni attenzionali Il concetto di variabile La sovrapposizione degli effetti La Curiosità Le attività percettive Abbiamo introdotto appena adesso un fattore che condiziona moltissimo il nostro modo di operare mentale che è “l'associazione” e abbiamo visto che è legata alla “immaginazione” attraverso la variazione delle funzioni elementari che possono dare origine alle varie controreazioni sui percepiti di primo livello, l'associazione dunque entra in funzione qualora le funzioni di controreazione lo permettano o meglio qualora vi sia l'esigenza di riparametrare attenzionalmente il contesto percettivo con un contesto cognitivo, questo per legare meglio assieme gli engrammi che costituiscono il nostro campo di conoscenza in quanto il meccanismo mentale, ripeto, ha un carattere teleologico di fondo che è dovuto alla necessità di espandere il più possibile le energie relative alla interazione con l'informazione di partenza. Questo sistema di associare il mondo percepito con il nostro campo di conoscenza avviene come già detto, attraverso dei “percorsi preferenziali” di elaborazione, ma cosa succede quando chiamiamo in causa la cognizione per creare nuovi engrammi e in definitiva per legare in un contesto logico dal punto di vista attenzionale i vari costrutti? Per tentare di dare una spiegazione a questa domanda bisogna pensare ad una doppia funzione delle attività associative e dare uno sguardo anche semplice alle attività correlative. Partiamo dall'analizzare un attimo le attività associative che conglobano le possibilità di mettere assieme dei costrutti mentali di diversa natura, quando noi facciamo una associazione di solito è il presente che ce la richiama, in altre parole i ritmi attenzionali dovuti alle attività percettive portano per simmetria ad associare i percepiti con dei costrutti derivanti dal nostro campo di conoscenza, non è difficile vedere "Adamo che mangia una mela" e pensare "ma anch'io ho mangiato una mela tre mesi fa", la frase può essere stupida però quel 'ma' richiama una controreazione che mi mette nelle condizioni di riparametrare o di confrontare attenzionalmente una cosa percepita con un ricordo; le funzioni cognitive allora vengono chiamate in azione dalle funzioni associative che sono in questo caso una causa, ma non appena si aprono gli engrammi relativi alla cognizione allora diventano un effetto della cognizione producendo delle ulteriori operazioni fra il contesto percepito e quello correlato. Le correlazioni dunque sono indotte dalle attività associative e quel 'ma' indica bene il legame quasi simultaneo che viene a crarsi, dove “Adamo che mangia una mela” è il correlato primo o 'soggetto', in questo caso è “anch'io ho mangiato una mela” diventa il correlato secondo o 'oggetto', l'elemento correlatore è proprio il 'ma'. Ora pensiamo al modo in cui viene ad essere posta in azione l'attività cognitiva e per fare questo ricordo che alla fine di ogni attività percettiva vi è il prodotto di un engramma che è il risultato di tutte le operazioni che hanno portato alla percezione di una determinata cosa e viene ad essere incamerato in memoria soltanto attraverso l'associazione logica e temporale delle operazioni indotte nel processo, potremmo anche dire che ci sia un processo di condensazione delle informazioni, quindi è ipotizzabile che, quando interviene la cognizione ci sia un processo di decodificazione dell'engramma incamerato ed appariranno vividamente quei percepiti che sono stati per così dire interessati di più dall'attività attenzionale, nel caso ipotizzato si può presupporre che sia il gusto o il colore della mela a ritornare nelle correlazioni e nelle associazioni, non direi altrettanto delle scarpe che indossavo tre mesi prima, ammenoché non fosse stato proprio il fatto che il ricordo sia proprio legato al fatto delle scarpe e sia nato per questo tutto il processo, allora devo supporre che anche le scarpe di Adamo saranno oggetto della mia attenzione. Quello che è importante comunque è il fatto che anche tutto questo processo verrà incamerato con il solito procedimento in memoria e darà sempre origine ad un engramma, ma sarà ben difficile che questo ricordo persista nella memoria poiché nulla è stato rilevato attenzionalmente in modo tale da forzare l’immaginazione o la volontà più di tanto, quindi è supponibile che i ricordi o il campo di conoscenza che è l’insieme dei dati e delle loro relazioni siano costituiti dal fatto che i percorsi preferenziali della elaborazione dei dati siano proprio derivanti dalla interazione fra le solite tre grandezze di base e qualora una di queste venga forzata si costituiranno degli engrammi che saranno più soggetti ad essere richiamati per associazione. Nel prossimo articolo parleremo della concentrazione

  • Dataset per Esercitarsi nella Data Science e Data Visualizzation - Set di dati per la Data Science

    Cosa sono i set di dati? Un set di dati è una raccolta di elementi strutturata. Un set di dati è organizzato in un tipo di struttura di dati. In un database, ad esempio, un set di dati potrebbe contenere una raccolta di dati aziendali (nomi, stipendi, informazioni di contatto, dati sulle vendite e così via). Il database stesso può essere considerato un insieme di dati, così come i corpi di dati al suo interno relativi a un particolare tipo di informazioni, come i dati di vendita per un particolare reparto aziendale. CURIOSITA' - Chi ha inventato il termine Dataset ? Il termine set di dati ha avuto origine con IBM, dove il suo significato era simile a quello di file. I set di dati sono parte integrante del campo dell'apprendimento automatico. I principali progressi in questo campo possono derivare dai progressi negli algoritmi di apprendimento come l'apprendimento profondo, l'hardware del computer e, in modo meno intuitivo, la disponibilità di set di dati di addestramento di alta qualità. Se hai mai lavorato a un progetto di scienza dei dati , probabilmente hai passato molto tempo a navigare in Internet alla ricerca di set di dati interessanti da analizzare. Può essere divertente setacciare dozzine di set di dati per trovare quello perfetto. Ma può anche essere frustrante scaricare e importare diversi file CSV, solo per rendersi conto che i dati non sono poi così interessanti. Fortunatamente, ci sono repository online che curano i set di dati e (soprattutto) rimuovono quelli non interessanti. In questo post, diamo un'occhiata ai siti per trovare set di dati per progetti di visualizzazione dei dati Sta cercando un corso sulla DataScience? Però costano tutti un sacco di soldi e non sei sicuro questo mestiere faccia per te? Oppure più semplicemente già lavori in questo settore e vuoi approfondire argomenti come machine learning e reti neurali ? Scopri il nostro Corso Gratuito da più di 100 Lezioni, a difficoltà crescente. L'unico corso in italiano gratuito che ti permetterà davvero di capire e approfondire temi fondamentali per questo mestiere. Clicca qui non aspettare, intanto iscriviti è GRATIS. Set di dati per progetti di visualizzazione dei dati o Data Science Un tipico progetto di visualizzazione dei dati potrebbe essere qualcosa sulla falsariga di "Voglio fare un'infografica su come varia il reddito nelle diverse regioni di Italia". Ci sono alcune considerazioni da tenere a mente quando si cercano dati validi per un progetto di visualizzazione dei dati: Il dataset non dovrebbe essere disordinato, perché non vuoi passare molto tempo a pulire i dati. Dovrebbe essere abbastanza equilibrato e interessante da poterci fare grafici. Idealmente, ogni colonna dovrebbe essere ben spiegata, quindi la visualizzazione è accurata. Se il set di dati non deve contenere troppe righe o colonne, è più facile lavorarci. ( Capiamoci meglio per troppe intendiamo sopra le 40.000 righe o sopra le 30-70 colonne sopratutto per chi è alle prime armi ) I siti di notizie che pubblicano i propri dati pubblicamente possono essere ottimi posti per trovare set di dati per la visualizzazione dei dati. In genere puliscono i dati per te e spesso hanno già grafici che hanno creato da cui puoi imparare, replicare o migliorare. 1. FiveThirtyEight Se sei interessato ai dati, avrai sicuramente sentito parlare di FiveThirtyEight; è uno dei punti vendita di giornalismo di dati più affermati al mondo. Scrivono articoli interessanti basati sui dati. Quello che potresti non sapere è che FiveThirtyEight rende disponibili online su Github e sul proprio portale di dati anche i set di dati utilizzati nei suoi articoli. Ecco alcuni esempi: Sicurezza della compagnia aerea : contiene informazioni sugli incidenti di ciascuna compagnia aerea. Cronologia meteorologica degli Stati Uniti: dati meteorologici storici per gli Stati Uniti. Study Drugs : dati su chi sta assumendo Adderall negli Stati Uniti. 2. BuzzFeed BuzzFeed potrebbe aver iniziato come fornitore di clickbait di bassa qualità, ma in questi giorni fa anche giornalismo di dati di alta qualità. E, proprio come FiveThirtyEight, pubblica pubblicamente alcuni dei suoi set di dati sulla sua pagina Github . Ecco alcuni esempi: Federal Surveillance Planes : contiene dati sugli aerei utilizzati per la sorveglianza interna. Zika Virus : dati sulla geografia dell'epidemia del virus Zika. Controlli sui precedenti delle armi da fuoco: dati sui controlli sui precedenti delle persone che tentano di acquistare armi da fuoco. 3. ProPublica ProPublica è una testata giornalistica investigativa senza scopo di lucro che pubblica giornalismo di dati incentrato su questioni di interesse pubblico, principalmente negli Stati Uniti. Mantengono un archivio dati che ospita alcuni set di dati gratuiti oltre ad alcuni a pagamento (scorri verso il basso su quella pagina per superare quelli a pagamento). Molti di questi sono attivamente mantenuti e aggiornati di frequente. ProPublica offre anche cinque API relative ai dati, quattro delle quali sono accessibili gratuitamente. Ecco alcuni esempi: Annunci politici su Facebook : una raccolta gratuita di dati sugli annunci di Facebook che viene aggiornata quotidianamente. Notizie sui crimini d'odio: dati regolarmente aggiornati sui crimini d'odio riportati in Google News. Età della macchina per il voto : dati sull'età delle macchine per il voto che sono state utilizzate nelle elezioni del 2016. 4. Socrata OpenData Socrata OpenData è un portale che contiene più set di dati che possono essere esplorati nel browser o scaricati per visualizzare. Le offerte qui sono meno curate, quindi dovrai ordinare ciò che è disponibile per trovare dati puliti e aggiornati, ma la possibilità di guardare i dati in forma di tabella direttamente nel browser è molto utile e ha anche alcuni strumenti di visualizzazione incorporati. Ecco alcuni esempi: Stipendi del personale della Casa Bianca : dati su ciò che ogni membro dello staff della Casa Bianca ha guadagnato nel 2010. Morti sul lavoro per stato degli Stati Uniti : il numero di decessi sul lavoro negli Stati Uniti. Speriamo tu possa trovare il dataset più adatto al tuo progetto o esercizio. Grazie mille per la lettura. Condividi l'articolo per sostenerci 💕

  • Semplici progetti di Deep Learning e Computer Vision Con Esempi pratici in Python e OpenCV

    Non hai mai sentito prima la Libreria OpenCv ? Ti spieghiamo subito a cosa serve e che progetti permette di fare OpenCV è un ottimo strumento per l'elaborazione delle immagini e l'esecuzione di attività di visione artificiale. È una libreria open source che può essere utilizzata per eseguire attività come il rilevamento dei volti, il rilevamento delle obiezioni, il rilevamento dei punti di riferimento e molto altro. Supporta più lingue tra cui Python, Java C++. Anche se, per questo articolo, ci limiteremo solo a Python. La libreria è dotata di centinaia di funzioni e algoritmi utili, tutti a nostra disposizione gratuitamente. Alcune di queste funzioni sono molto comuni e vengono utilizzate in quasi tutte le attività di visione artificiale. Mentre molte delle funzioni sono ancora inesplorate e non hanno ancora ricevuto molta attenzione. In questo articolo, vedremo alcune delle funzioni più sorprendenti di OpenCV che puoi utilizzare per molte fantastiche applicazioni. Prerequisiti : 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 Indice : Rimozione Watermark dalle immagini Rimozione lo sfondo dalle immagini Creazione di filtri per le immagini ( Tipo Instagram o Facebook ) Trasformare in cartone qualsiasi immagine Rimuovere Watermark usando OpenCV, Python Le filigrane potrebbero essere davvero fastidiose e arriva un momento nella vita di tutti in cui cerchiamo in tutto Internet un programma per rimuovere quel piccolo pezzo di testo. Per fortuna, la tua ricerca finisce qui. Usando OpenCV, possiamo consentire questo compito con meno di 10 righe di codice. Iniziamo importando le librerie richieste (che sono OpenCV e Numpy) e leggendo l'immagine, contenente la filigrana. Quindi cambiamo lo spazio colore da BGR a HSV. Stiamo utilizzando il formato colore HSV in quanto aiuta a ottenere un'immagine maschera migliore che creeremo nel passaggio successivo. Una maschera è un'immagine che ha solo due valori che sono bianco e nero. Lo scopo della maschera è applicare modifiche solo nelle parti specifiche di un'immagine. Per il nostro scopo, l'immagine della maschera dovrebbe contenere valori bianchi ovunque sia presente la filigrana e neri ovunque. Per creare la nostra immagine maschera, utilizzeremo la sogliatura che ho già eseguito per questa immagine. Che cosa fa la soglia è, dice se un valore si trova nell'intervallo dato o meno. Se desideri utilizzare un'altra immagine, puoi trovare i tuoi valori di soglia utilizzando questo pezzo di codice. Ora, abbiamo l'immagine della maschera, possiamo chiamare la funzione principale richiesta per eseguire questo compito. Useremo la funzione cv2.inpaint() sull'immagine della nostra maschera per rimuovere la filigrana. Ciò che fa realmente la funzione è che consente di rimuovere piccoli disturbi dall'immagine utilizzando un metodo chiamato inpainting. La funzione può essere utilizzata con due algoritmi. Uno si basa sul metodo di marcia mentre l'altro si basa sulla meccanica dei fluidi. Puoi leggere di più su di loro e sulla funzione cv2.inpaint() qui . Per fortuna, non dobbiamo scrivere quegli algoritmi da soli. Possiamo abilitare un oggetto flag all'interno della funzione cv2.inpaint() e scegliere qualsiasi algoritmo che vogliamo usare. import cv2 import numpy as np img=cv2.imread(path) # inserisci il percorso dell'immagine hsv=cv2.cvtColor(img, cv2.COLOR_BGR2HSV) l_b=np.array([0,0,220]) u_b=np.array([255,255,255]) maschera=cv2.inRange(hsv,l_b,u_b) dst = cv2.inpaint(img,maschera,5,cv2.INPAINT_TELEA) #dst = cv2.inpaint(img, maschera, 5, cv2.INPAINT_NS) Puoi controllare i risultati dall'immagine sotto. La nostra funzione di ridipintura ha funzionato bene. Se pensi di dover ottenere risultati migliori, puoi provare a regolare i valori di soglia. È inoltre possibile utilizzare metodi come la sfocatura gaussiana per migliorare la qualità dell'immagine della maschera. Rimozione dello sfondo utilizzando OpenCV e python Quando si tratta di immagini, il rumore di fondo è molto comune. Utilizzando questa funzione di OpenCV, puoi estrarre solo informazioni utili dall'immagine e scartare tutto ciò che è presente in background. Una cosa buona è che ti permette di inserire la forma di output della tua immagine finale in modo da non dover indovinare quale sarà la dimensione della tua immagine. Per questo compito, utilizzerò l'immagine fornita. Il nostro compito è rimuovere lo sfondo ed estrarre il primo piano (il taccuino) dall'immagine. La funzione che useremo richiede due insiemi di punti. Il primo set conterrà 4 punti che copriranno la regione in primo piano. Nell'immagine sopra, se guardi da vicino, sarai in grado di vedere 4 punti. Il primo set saranno le coordinate di questi punti. L'altro insieme di punti saranno i punti di confine della nostra immagine di output. Successivamente, useremo la funzione cv2.getPerspective() che ci darà la matrice di output e la funzione cv2.warpPerspective convertirà quella matrice nella forma desiderata. import cv2 import numpy as np img = cv2.imread(path) # inserisci il percorso dell'immagine pts1 = np.float32([[57 , 49],[419 , 45],[414 , 477],[56 , 475]]) pts2 = np.float32([[0,0],[img.shape[0],0],[img.shape[0],img.shape[1]],[0,img.shape[1]] ]) matrice = cv2.getPerspectiveTransform(pts1,pts2) risultato = cv2.warpPerspective(img, matrice, (512,512)) cv2.imshow("risultato",risultato) cv2.waitKey(0) Crea filtri alle immagini usando OpenCV A differenza dei dati testuali, le immagini possono essere utilizzate per estrarre diverse funzionalità. Queste caratteristiche evidenziano le proprietà dell'immagine. Possiamo usare queste funzionalità per sfocare l'immagine, rendere più nitida l'immagine, estrarre i bordi dall'immagine e molto altro. Per eseguire questo compito utilizzeremo il concetto di convoluzione. La convoluzione è fondamentalmente il processo di applicazione del kernel su ogni pixel dell'immagine. nocciolo? Un kernel è una piccola matrice costituita da numeri che di solito si sommano all'unità. A seconda dei valori del kernel, possiamo estrarre diverse funzionalità da un'immagine. In questo compito, andremo semplicemente a sfocare un'immagine usando le convoluzioni. Useremo il filtro sottostante (kernel) per il nostro compito. Questo kernel è anche chiamato filtro della media. Come suggerisce il nome, fa la media dei pixel circostanti e assegna il valore al pixel centrale. Puoi anche scegliere un diverso insieme di valori come preferisci, assicurati solo che tutti i valori si sommano a 1. Dopo aver letto l'immagine, creeremo il nostro kernel e ne faremo un array NumPy. Quindi chiameremo la funzione cv2.filter2d(), che prenderà l'immagine di input, la profondità e il kernel. E questo è tutto. Possiamo semplicemente mostrare i nostri risultati. import cv2 import numpy as np img = cv2.imread(path) # inserisci il percorso dell'immagine kernel = np.array([[1,1,1], [1,1,1], [1,1,1]]) kernel = kernel/9 res = cv2.filter2D(img, -1, kernel) cv2.imshow("img",res) cv2.waitKey(0) Puoi usare questo link per trovare filtri più sorprendenti che puoi applicare alle tue immagini preferite. Converti immagini in cartoni usando OpenCV Tutti amano i cartoni animati e cosa c'è di meglio quando puoi crearne uno con la tua foto preferita. Con OpenCV, puoi svolgere facilmente questo compito utilizzando alcune delle funzioni di base. Fondamentalmente, l'intero processo include tre passaggi. Estrai i bordi dall'immagine. Applicare l'uniformità dell'immagine all'immagine in ingresso. Aggiungi i risultati dei passaggi 1 e 2. Iniziamo leggendo la nostra immagine e convertendola in scala di grigi. Possiamo usare questa versione in scala di grigi dell'immagine e inviarla alla funzione cv2.adaptiveThreshold per ottenere i bordi dell'immagine. Puoi anche usare l'applicazione precedente per estrarre i bordi dall'immagine. Quindi dobbiamo applicare il livellamento alla nostra immagine. L'arrotondamento di un'immagine si riferisce alla creazione di una versione meno pixelata dell'immagine. In parole più semplici, stiamo solo riducendo il numero di pixel distinti nella nostra immagine. Ciò può essere ottenuto utilizzando la funzione di filtro bilaterale presente in OpenCV. Quindi possiamo semplicemente aggiungere l'immagine levigata e i bordi usando l'operatore 'bitwise_and' in OpenCV per ottenere la nostra immagine del fumetto. import cv2 import numpy as np img = cv2.imread("images/lena.jpg") grigio = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) grigio = cv2.GaussianBlur(grigio,(5,5),-1) bordi = cv2.adaptiveThreshold(grigio, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY,9,10) color = cv2.bilateralFilter(img, 20, 245, 245) cartoon = cv2.bitwise_and (color, color, mask = bordi) cv2.imshow("cartone animato",cartoon) cv2.waitKey(0) Puoi aggiungere più passaggi intermedi per migliorare i risultati come cambiare lo spazio colore, utilizzare filtri diversi, ecc. Conclusione OpenCV è una parte essenziale per lavorare nella visione artificiale e utilizzandola possiamo creare migliaia di fantastiche applicazioni. Potresti aver pensato che alcune di queste applicazioni vengono utilizzate da noi nella vita di tutti i giorni. Qual è stata l'ultima volta che hai usato Cam Scanner per scansionare una copia dei tuoi compiti? Pensi che la seconda applicazione possa aver avuto un ruolo in questo? L'immagine animata che abbiamo creato non sembra in qualche modo una versione Snapchat dell'immagine. Attraverso queste applicazioni, lo scopo era incoraggiarti a esplorare le soluzioni ai problemi della vita reale utilizzando strumenti semplici ed efficienti come OpenCV. Le applicazioni che abbiamo trattato in questo articolo sono solo la punta dell'iceberg. Quando inizi a scavare più a fondo nel campo della visione artificiale, imparerai a conoscere concetti più interessanti e sorprendenti. Imparerai gli approcci di deep learning per risolvere problemi complessi. Imparerai a conoscere modelli pre-addestrati che potrebbero dare risultati eccellenti per un numero enorme di problemi. Addestrerai i tuoi modelli, creerai set di dati e troverai soluzioni a problemi che all'inizio sembrano irrealistici anche solo da chiedere. Grazie. Spero che ti sia piaciuto leggere questo articolo. Condividilo ai tuoi colleghi o amici

  • La differenza tra Intelligenza Artificiale Forte e Debole

    l' intelligenza artificiale, in modo molto silenzioso e veloce, è entrata a far parte della nostra quotidianità. Ci basta pensare alle azioni più comuni (ad esempio la scelta del tragitto ottimale oppure al filtro che riconosce se una mail o messaggio sia di SPAM o meno ) alle quali ad oggi non c'è più dietro un pensiero/ragionamento di una persona ma un algoritmo insieme a uno o più modelli predittivi che prendono decisioni con pochi ( in alcuni casi senza ) controlli di persone. Ad oggi non vi è una vera e propria definizione in grado di definire in tutte le sue particolarità l'intelligenza artificale, per questo è stato inventato un Teorema, il quale enuncia : " L' Intelligenza Artificiale è tutto ciò che non è ancora stato fatto ". E' possibile trovare molte definizioni anche tra di loro contrastanti sull' AI le quali però raffigurano in parte una branchia/ramo dell' intelligenza artificiale ma non è su questo che vogliamo concentrarci in questo articolo. Concentriamoci però sul provare a classificare l' AI in due generiche classi : Intelligenza Artificiale Debole Intelligenza Artificiale Forte Vediamo subito le principli differenze tra queste due categorie. Intelligenza Artificiale Debole Questo tipo di intelligenza è fondato interamente su una singola frase "COME SE" ovvero questa agisce e pensa come se avesse capacità di pensiero ma SENZA averla. Lo scopo di questa intelligenza non è quello di andare a creare un programma che emuli il nostro pensiero o emuli il nostro modo di risolvere determinati problemi, ma di creare sistemi che siano in grado di agire con successo in alcune azioni/funzioni complesse solite di un essere umano (esempio più lampante la traduzione di testi o di documenti da una lingua ad un altra). Un punto fondamentale che riguarda l'AI debole sta nel fatto che la presenza di menti umane dietro questi sistemi è fondamentale perchè il nostro computer/server non è in grado di pensare o riflettere in maniera autonoma, ma "IMITA" soltanto. Ma che problemi risolve questa intelligenza che sembra stupida? Questo tipo di intelligenza nasce nel momento esatto in cui la complessità e capacità di calcolo è tale che nessuna persona umana è capace di fronteggiare tali calcoli e di avere una memoria così stabile anche quando si parla di un infinità di dati. Quindi l'AI debole va a risolvere tutti quei problemi che ad oggi hanno già una soluzione conosciuta, ma che per problemi di calcolo o memoria le persone non sono in grado di svolgere in modo autonomo. Sta cercando un corso sulla DataScience? Però costano tutti un sacco di soldi e non sei sicuro questo mestiere faccia per te? Oppure più semplicemente già lavori in questo settore e vuoi approfondire argomenti come machine learning e reti neurali ? Scopri il nostro Corso Gratuito da più di 100 Lezioni, a difficoltà crescente. L'unico corso in italiano gratuito che ti permetterà davvero di capire e approfondire temi fondamentali per questo mestiere. Clicca qui non aspettare, intanto iscriviti è GRATIS. Intelligenza Artificiale Forte Al contrario della AI debole questa transorma la nostra macchina (pc/server/smartphone) in qualcosa di più evoluto di un singolo strumento materiale, in qualcosa che è in grado di pensare come mente umana vera e propria. La quale ha quindi sia capacità cognitive sia conoscenza delle proprie capacità e dei propri limiti. Alla base della AI forte abbiamo una serie di sistemi o algoritmi "esperti o ben allenati" i quali sono in grado di andare a riprodurre, con successo, le conoscenze e prestazioni delle persone capaci in determinati settori. Ci sono molto aziende o organizzazioni che stanno al momento studiando questo tipo di AI ma al momento nessuana è riuscita a creare una tale Intelligenza. Meno male aggiungerei : ) Esiste anche un'altra definizione di Intelligenza Artificiale forte, la quale enuncia: "Qualsiasi intelletto che superi di molto tutte le prestazioni cognitive degli esseri umani" Le considerazioni finali, l'AI debole migliora notevolmente la nostra vita quotidiana dandoci la possibilità di dedicarci a ciò che più ci interessa, occupandosi di svolgere azioni che solo pochi decenni fa erano impensabili ( trovare la strada ottimale per arrivare in una scelta destinazione). L'AI forte invece è dove ci stiamo muovendo, dove a mia detta servirebbero delle leggi che ne regolamentano lo sviluppo e i futuri campi applicativi così da non incappare in forti danni sociali. Letture consigliate su per "La differenza tra Intelligenza Artificiale Forte e Debole" Intelligenza Artificiale nella Guerra Etica e Intelligenza Artificiale. L'Intelligenza Artificiale Spiegata Semplice Quali Sono i Tipi di Intelligenza Artificiale ? 5 settori che l'Intelligenza Artificiale sta rivoluzionando Intelligenza Artificiale Pro e Contro - Andiamo a vedere i Vantaggi e Svantaggi Migliori Citazioni sull'Intelligenza Artificiale Come utilizza Google l'intelligenza artificiale? Prerequisiti per le carriere di Intelligenza Artificiale

  • Cosa è Il Natural Language Processing o Elaborazione del linguaggio naturale Spiegazione ed Esempi

    Le aziende utilizzano sempre più strumenti dotati di PNL per ottenere informazioni dai dati e automatizzare le attività di routine. L'elaborazione del linguaggio naturale (NLP) è una branca dell'intelligenza artificiale (AI) che consente alle macchine di comprendere il linguaggio umano. Il suo obiettivo è creare sistemi in grado di dare un senso al testo ed eseguire automaticamente attività come la traduzione, il controllo ortografico o la classificazione degli argomenti. Ma cos'è esattamente l'elaborazione del linguaggio naturale? In cosa differisce da altri termini correlati, come AI e machine learning ? Che cos'è l'elaborazione del linguaggio naturale (PNL)? PNL, AI, Machine Learning: qual è la differenza? Tecniche di PNL 5 casi d'uso della PNL nel mondo degli affari Che cos'è l'elaborazione del linguaggio naturale? L'elaborazione del linguaggio naturale (NLP) consente ai computer di comprendere il linguaggio umano. Dietro le quinte, la PNL analizza la struttura grammaticale delle frasi e il significato individuale delle parole, quindi utilizza algoritmi per estrarre il significato e fornire risultati. In altre parole, dà un senso al linguaggio umano in modo che possa eseguire automaticamente compiti diversi. Probabilmente, gli esempi più popolari di PNL in azione sono gli assistenti virtuali, come Google Assist, Siri e Alexa. La PNL comprende testi scritti e parlati come "Ehi Siri, dov'è la stazione di servizio più vicina?" e lo trasforma in numeri, rendendolo facile da capire per le macchine. Un'altra nota applicazione della PNL sono i chatbot. Aiutano i team di supporto a risolvere i problemi comprendendo le richieste linguistiche comuni e rispondendo automaticamente. Ci sono molte altre app di tutti i giorni che usi, in cui probabilmente hai incontrato la PNL senza nemmeno accorgertene. Consigli di testo quando si scrive un'e-mail, si offre di tradurre un post di Facebook scritto in una lingua diversa o si filtrano le e-mail promozionali indesiderate nella cartella dello spam. In poche parole, l'obiettivo dell'elaborazione del linguaggio naturale è rendere il linguaggio umano - che è complesso, ambiguo ed estremamente vario - facile da capire per le macchine. NLP, AI, Machine Learning: qual è la differenza? L'elaborazione del linguaggio naturale (NLP), l'intelligenza artificiale (AI) e l'apprendimento automatico (ML) sono talvolta usati in modo intercambiabile, quindi potresti incrociare i fili quando cerchi di distinguere tra i tre. La prima cosa da sapere è che la NLP e l'apprendimento automatico sono entrambi sottoinsiemi dell'intelligenza artificiale. AI è un termine generico per macchine in grado di simulare l'intelligenza umana. L'intelligenza artificiale comprende sistemi che imitano le capacità cognitive, come l'apprendimento da esempi e la risoluzione di problemi. Questo copre una vasta gamma di applicazioni, dalle auto a guida autonoma ai sistemi predittivi. L'elaborazione del linguaggio naturale (NLP) si occupa del modo in cui i computer comprendono e traducono il linguaggio umano. Con la PNL, le macchine possono dare un senso al testo scritto o parlato ed eseguire attività come traduzione, estrazione di parole chiave , classificazione di argomenti e altro. Ma per automatizzare questi processi e fornire risposte accurate, avrai bisogno dell'apprendimento automatico. L'apprendimento automatico è il processo di applicazione di algoritmi che insegnano alle macchine come apprendere e migliorare automaticamente dall'esperienza senza essere esplicitamente programmati. I chatbot basati sull'intelligenza artificiale, ad esempio, utilizzano la PNL per interpretare ciò che gli utenti dicono e ciò che intendono fare e l'apprendimento automatico per fornire automaticamente risposte più accurate imparando dalle interazioni passate. Tecniche di NLP L'elaborazione del linguaggio naturale (NLP) applica due tecniche per aiutare i computer a comprendere il testo: l'analisi sintattica e l'analisi semantica. Analisi sintattica L'analisi sintattica ‒ o parsing ‒ analizza il testo utilizzando regole grammaticali di base per identificare la struttura della frase, come sono organizzate le parole e come le parole si relazionano tra loro. Alcune delle sue principali attività secondarie includono: La tokenizzazione consiste nel suddividere un testo in parti più piccole chiamate token (che possono essere frasi o parole) per rendere il testo più facile da gestire. La parte del tagging del discorso (tagging PoS) etichetta i token come verbo, avverbio, aggettivo, sostantivo , ecc. Questo aiuta a dedurre il significato di una parola (ad esempio, la parola "libro" significa cose diverse se usata come verbo o sostantivo) . Lemmatizzazione e derivazione consistono nel ridurre le parole flesse alla loro forma base per renderle più facili da analizzare. La rimozione delle stop-word rimuove le parole che ricorrono frequentemente che non aggiungono alcun valore semantico, come io, loro, hanno, come, tuo , ecc. Analisi semantica L'analisi semantica si concentra sulla cattura del significato del testo. Innanzitutto, studia il significato di ogni singola parola (semantica lessicale). Quindi, esamina la combinazione di parole e cosa significano nel contesto. Le principali attività secondarie dell'analisi semantica sono: La disambiguazione del senso della parola cerca di identificare in quale senso una parola viene usata in un dato contesto. L'estrazione delle relazioni cerca di capire come le entità (luoghi, persone, organizzazioni, ecc.) si relazionano tra loro in un testo. 5 casi d'uso della NLP nel mondo degli affari Gli strumenti di PNL aiutano le aziende a capire come li percepiscono i loro clienti attraverso tutti i canali di comunicazione, che si tratti di e-mail, recensioni di prodotti, post sui social media, sondaggi e altro ancora. Non solo gli strumenti di intelligenza artificiale possono essere utilizzati per comprendere le conversazioni online e il modo in cui i clienti parlano delle aziende, ma possono anche essere utilizzati per automatizzare attività ripetitive e dispendiose in termini di tempo, aumentare l'efficienza e consentire ai lavoratori di concentrarsi su attività più soddisfacenti. Ecco alcune delle principali applicazioni della PNL nel mondo degli affari: Analisi del sentimento L'analisi del sentiment identifica le emozioni nel testo e classifica le opinioni come positive, negative o neutre. Puoi vedere come funziona incollando del testo in questo strumento di analisi del sentiment gratuito . Analizzando i post sui social media, le recensioni dei prodotti o i sondaggi online, le aziende possono ottenere informazioni su come i clienti si sentono riguardo a marchi o prodotti. Ad esempio, potresti analizzare i tweet che menzionano il tuo marchio in tempo reale e rilevare immediatamente i commenti dei clienti arrabbiati. Forse vuoi inviare un sondaggio per scoprire come si sentono i clienti riguardo al tuo livello di servizio clienti. Analizzando le risposte aperte ai sondaggi NPS , puoi determinare quali aspetti del tuo servizio clienti ricevono feedback positivi o negativi. Traduzione da una lingua ad un altra La tecnologia di traduzione automatica ha visto grandi miglioramenti negli ultimi anni, con le traduzioni di Facebook che hanno raggiunto prestazioni sovrumane nel 2019. Gli strumenti di traduzione consentono alle aziende di comunicare in diverse lingue, aiutandole a migliorare la loro comunicazione globale o ad entrare in nuovi mercati. Puoi anche addestrare strumenti di traduzione per comprendere la terminologia specifica in un dato settore, come la finanza o la medicina. Quindi non devi preoccuparti di traduzioni imprecise che sono comuni con gli strumenti di traduzione generici. Estrazione e Mining del testo L'estrazione del testo consente di estrarre informazioni predefinite dal testo. Se hai a che fare con grandi quantità di dati, questo strumento ti aiuta a riconoscere ed estrarre parole chiave e caratteristiche rilevanti (come codici prodotto, colori e specifiche) ed entità denominate (come nomi di persone, luoghi, nomi di aziende, e-mail, ecc.). Le aziende possono utilizzare l'estrazione del testo per trovare automaticamente i termini chiave nei documenti legali, identificare le parole principali menzionate nei ticket di assistenza clienti o estrarre le specifiche del prodotto da un paragrafo di testo, tra molte altre applicazioni. Sembra interessante? Ecco uno strumento interessante che potresti provare Chatbot I chatbot sono sistemi di intelligenza artificiale progettati per interagire con gli umani tramite testo o voce. L' uso dei chatbot per l'assistenza clienti è in aumento, grazie alla loro capacità di offrire assistenza 24 ore su 24, 7 giorni su 7 (accelerando i tempi di risposta), gestire più query contemporaneamente e liberare gli agenti umani dal rispondere a domande ripetitive. I chatbot imparano attivamente da ogni interazione e migliorano la comprensione dell'intento dell'utente, così puoi fare affidamento su di loro per eseguire attività ripetitive e semplici. Se incontrano una domanda del cliente a cui non sono in grado di rispondere, la trasmetteranno a un agente umano. Classificazione degli argomenti La classificazione degli argomenti consente di organizzare il testo non strutturato in categorie. Per le aziende, è un ottimo modo per ottenere informazioni dal feedback dei clienti. Immagina di voler analizzare centinaia di risposte aperte ai sondaggi NPS. Quante risposte menzionano l'assistenza clienti? Quale percentuale di clienti parla di "Prezzi" ? Con questo classificatore di argomenti per il feedback NPS , avrai tutti i tuoi dati taggati in pochi secondi. Inoltre, puoi utilizzare la classificazione degli argomenti per automatizzare il processo di etichettatura dei ticket di supporto in arrivo e indirizzarli automaticamente alla persona giusta. Conclusione L'elaborazione del linguaggio naturale (NLP) è la parte dell'intelligenza artificiale che studia come le macchine interagiscono con il linguaggio umano. La PNL lavora dietro le quinte per migliorare gli strumenti che utilizziamo ogni giorno, come chatbot, correttori ortografici o traduttori linguistici. In combinazione con algoritmi di apprendimento automatico, la PNL crea sistemi che imparano a svolgere attività da soli e migliorano attraverso l'esperienza. Gli strumenti basati sulla PNL possono aiutarti a classificare i post sui social media in base al sentimento o estrarre entità nominate dalle e-mail aziendali, tra molte altre cose. Grazie mille per la lettura 👨‍💻

  • Riconoscimento facciale con Python, in meno di 25 righe di codice. Face Recognition in Python

    INDICE Cosa è OpenCV ? Modello pre-addestrato per il riconoscimento facciale Installazione di OpenCV Scriviamo e capiamo il codice per il Riconoscimento Facciale Controlliamo e capiamo i risultati In questo articolo, vedremo un modo sorprendentemente semplice per iniziare a lavorare con il riconoscimento facciale utilizzando Python e la libreria open source OpenCV . Cosa è OpenCV ? OpenCV è la libreria più popolare per la visione artificiale. Scritto originariamente in C/C++, ora fornisce collegamenti per Python. La libreria OpenCV permette grazie a algoritmi di apprendimento automatico di cercare i volti all'interno di un'immagine. Poiché i volti sono così complicati, non esiste una semplice condizione che ti dirà se ha trovato un volto o meno. Invece, ci sono migliaia di piccoli modelli e caratteristiche che devono essere abbinati. Gli algoritmi suddividono il compito di identificare il volto in migliaia di compiti più piccoli e di dimensioni ridotte, ognuno dei quali è facile da risolvere. Per qualcosa come un volto, potresti avere 6.000 o più feature, che devono corrispondere tutti affinché un volto venga rilevato (entro i limiti di errore, ovviamente). Ma qui sta il problema: per il rilevamento dei volti, l'algoritmo inizia in alto a sinistra di un'immagine e si sposta verso il basso attraverso piccoli blocchi di dati, guardando ogni blocco, chiedendo costantemente: "È un volto? … Questa è una faccia? … È una faccia?” Poiché ci sono 6.000 o più test per blocco, potresti avere milioni di calcoli da fare, che bloccheranno il tuo computer. Per aggirare questo problema, OpenCV utilizza le cascate ( modelli preaddestrati ) . Cos'è una cascata? La risposta migliore si trova nel dizionario. Come una serie di cascate, la cascata OpenCV rompe il problema del rilevamento dei volti in più fasi. Per ogni blocco, fa un test molto approssimativo e veloce. Se passa, esegue un test leggermente più dettagliato e così via. L'algoritmo può avere da 30 a 50 di queste fasi o cascate e rileverà un volto solo se tutte le fasi passano. Il vantaggio è che la maggior parte dell'immagine restituirà un negativo durante le prime fasi, il che significa che l'algoritmo non perderà tempo a testare tutte le 6.000 funzionalità su di essa. Invece di impiegare ore, ora è possibile eseguire il rilevamento del volto in tempo reale. Modelli Pre Addestrati per il Riconoscimento Facciale Sebbene la teoria possa sembrare complicata, in pratica è abbastanza facile. Le stesse cascate sono solo un mucchio di file XML che contengono dati OpenCV usati per rilevare oggetti. Inizializzi il tuo codice con il modello pre addestrato che desideri e poi fa il lavoro per te. Poiché il rilevamento dei volti è un progetto così comune, OpenCV è dotato di una serie di modelli preaddestrati integrati per rilevare di tutto, dai volti agli occhi, dalle mani alle gambe. Ci sono anche cascate per cose non umane. Ad esempio, se gestisci un negozio di banane e vuoi rintracciare le persone che rubano banane, questo ragazzo ne ha costruito uno per quello! Installazione di OpenCV Innanzitutto, devi trovare il file di installazione corretto per il tuo sistema operativo . Ho scoperto che l'installazione di OpenCV è stata la parte più difficile del compito. Se ricevi strani errori inspiegabili, potrebbe essere dovuto a conflitti di libreria, differenze a 32/64 bit e così via. Ho trovato più semplice usare una macchina virtuale Linux e installare OpenCV da zero. Oppure ancora più facile, apri l'editor di Google "Colab" e digita !pip3 install opencv-python Una volta completata l'installazione, puoi verificare se funziona o meno avviando una sessione Python e digitando: import cv2 se utilizzate colab importate anche questo modulo from google.colab.patches import cv2_imshow Se non ricevi errori, puoi passare alla parte successiva. Scriviamo e capiamo il codice per il Riconoscimento Facciale in python Analizziamo il codice vero e proprio, che puoi scaricare dalla nostra pagina progetti. Per prima cosa avrai bisogna del tuo file Python ( face_detect.py ) o netebook ( .ipynb ) , l'immagine immagine.png e haarcascade_frontalface_default.xml . ( Tutto ciò di cui hai bisogno come detto lo troverai nella pagina progetti ) # carichiamo immagine e haarcascade_frontalface_default imagePath = sys.argv[1] cascPath = sys.argv[2] Utilizzeremo l'immagine e il modello preaddestrato per rilevare i volti con OpenCV. # Creiamo il nostro modello pre addestrato faceCascade = cv2.CascadeClassifier(cascPath) Ora creiamo la cascata e la inizializziamo con la nostra cascata di volti. Questo carica la cascata del viso in memoria in modo che sia pronta per l'uso. Ricorda, la cascata è solo un file XML che contiene i dati per rilevare i volti. # leggiamo l'immagine image = cv2.imread(imagePath) gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) Qui leggiamo l'immagine e la convertiamo in scala di grigi. Molte operazioni in OpenCV vengono eseguite in scala di grigi. # Rilevamento volti nell'immagine faces = faceCascade.detectMultiScale(gray,scaleFactor=1.1,minNeighbors=5,minSize=(30, 30)) Questa funzione rileva il volto effettivo ed è la parte fondamentale del nostro codice, quindi esaminiamo le opzioni: La detectMultiScalefunzion è una funzione generale che rileva gli oggetti. Dal momento che lo chiamiamo sulla cascata del viso, è quello che rileva. La prima opzione è l'immagine in scala di grigi. Il secondo è il scaleFactor. Poiché alcuni volti potrebbero essere più vicini alla fotocamera, apparirebbero più grandi dei volti nella parte posteriore. Il fattore di scala compensa questo. L'algoritmo di rilevamento utilizza una finestra mobile per rilevare gli oggetti. minNeighborsdefinisce quanti oggetti vengono rilevati vicino a quello corrente prima di dichiarare il volto trovato. minSize, nel frattempo, fornisce le dimensioni di ciascuna finestra. Nota: ho preso i valori comunemente usati per questi campi. Nella vita reale, sperimenteresti valori diversi per la dimensione della finestra, il fattore di scala e così via finché non trovi quello che funziona meglio per te. La funzione restituisce un elenco di rettangoli in cui ritiene di aver trovato una faccia. Successivamente, esamineremo il punto in cui pensa di aver trovato qualcosa. print(f"Trovate {len(faces)} Facce!") # disegnamo un rettangolo intorno ai volti for (x, y, w, h) in faces: cv2.rectangle(image, (x, y), (x+w, y+h), (0, 255, 0), 2) Questa funzione restituisce 4 valori: la xe la yposizione del rettangolo e la larghezza e l'altezza del rettangolo ( w, h). Usiamo questi valori per disegnare un rettangolo usando la rectangle()funzione incorporata. cv2.imshow("Facce Trovate", image) cv2.waitKey(0) se invece utilizzate colab dovrete scrivere cv2_imshow(image) Alla fine, visualizziamo l'immagine e aspettiamo che l'utente prema un tasto. Mettiamo alla prova la nostra foto: $ python face_detect.py image.png haarcascade_frontalface_default.xml Ha funzionato. Che ne dici di fare un'altra prova con foto nuova: Quella... non è una faccia. Proviamo di nuovo. Ho cambiato i parametri e ho scoperto che l'impostazione scaleFactor di 1.2 ha eliminato la faccia sbagliata. # Configurazione che da facce che non esistono faces = faceCascade.detectMultiScale(gray,scaleFactor=1.1,minNeighbors=5,minSize=(30, 30)) # Configurazione che non rileva le facce inesistenti faces = faceCascade.detectMultiScale(gray,scaleFactor=1.2,minNeighbors=5,minSize=(30, 30)) Cosa è successo ? Aggiustiamo il nostro Programma per il Riconoscimento Facciale Bene, la prima foto è stata scattata abbastanza da vicino con una fotocamera di alta qualità. Il secondo sembra essere stato ripreso da lontano e forse con un cellulare. Questo è il motivo per cui scaleFactor doveva essere modificato. Come ho detto, dovrai impostare l'algoritmo caso per caso per evitare falsi positivi. Tieni presente, tuttavia, che poiché si basa sull'apprendimento automatico, i risultati non saranno mai accurati al 100%. Otterrai risultati abbastanza buoni nella maggior parte dei casi, ma occasionalmente l'algoritmo identificherà oggetti errati come volti. Il codice può essere trovato qui Grazie mille per la lettura, Iscriviti al sito, presto usciranno altri tutorial con Python.

  • Algoritmi di Machine Learning (ML) usati nella Data Science ( con Esempi Pratici di ML in Python )

    Probabilmente stiamo vivendo nel periodo più decisivo della storia umana. Il periodo in cui l'informatica è passata dai grandi mainframe ai PC al cloud. Ma ciò che lo rende determinante non è ciò che è successo, ma ciò che accadrà negli anni a venire. Ciò che rende questo periodo emozionante e avvincente per uno come me è la democratizzazione dei vari strumenti e tecniche, che ha seguito l'impulso nell'informatica. Benvenuto nel mondo della scienza dei dati ! Oggi, come scienziato dei dati, posso costruire macchine per l'elaborazione dei dati con algoritmi complessi per pochi dollari all'ora. Ma arrivare qui non è stato facile! Ho avuto i miei giorni e le mie notti buie. In linea di massima, ci sono 3 tipi di algoritmi di apprendimento automatico 1. Apprendimento supervisionato Come funziona: questo algoritmo consiste in una variabile obiettivo/risultato (o variabile dipendente) che deve essere prevista da un determinato insieme di predittori (variabili indipendenti). Usando questo insieme di variabili, generiamo una funzione che mappa gli input agli output desiderati. Il processo di addestramento continua finché il modello non raggiunge il livello di accuratezza desiderato sui dati di addestramento. Esempi di apprendimento supervisionato: regressione, albero decisionale , foresta casuale , KNN, regressione logistica ecc. 2. Apprendimento senza supervisione Come funziona: in questo algoritmo non abbiamo alcun obiettivo o variabile di risultato da prevedere/stimare. Viene utilizzato per raggruppare la popolazione in diversi gruppi, che è ampiamente utilizzato per segmentare i clienti in diversi gruppi per interventi specifici. Esempi di apprendimento non supervisionato: algoritmo Apriori, K-means. 3. Apprendimento per rinforzo Come funziona: utilizzando questo algoritmo, la macchina viene addestrata a prendere decisioni specifiche. Funziona così: la macchina è esposta a un ambiente in cui si allena continuamente per tentativi ed errori. Questa macchina impara dall'esperienza passata e cerca di acquisire la migliore conoscenza possibile per prendere decisioni aziendali accurate. Esempio di apprendimento per rinforzo: processo decisionale di Markov Elenco Principali Algoritmi di apprendimento automatico o Machine Learning Ecco l'elenco degli algoritmi di apprendimento automatico comunemente usati. Questi algoritmi possono essere applicati a quasi tutti i problemi di dati: Regressione lineare Regressione logistica Albero decisionale SVM Naive Bayes kNN K-Means Foresta casuale Algoritmi di riduzione della dimensionalità Algoritmi di aumento del gradiente ( XGboost ) Partiamo e vediamoli uno ad uno con la relativa implementazione in Python. 1. Spiegazione e Implementazione Algoritmo Regressione lineare Viene utilizzato per stimare i valori reali (costo delle case, numero di chiamate, vendite totali, ecc.) in base a variabili continue. Qui, stabiliamo una relazione tra variabili indipendenti e dipendenti adattando una linea migliore. Questa linea di miglior adattamento è nota come linea di regressione ed è rappresentata da un'equazione lineare Y= a *X + b. Diciamo che chiedi a un bambino di quinta elementare di sistemare le persone nella sua classe aumentando l'ordine di peso, senza chiedere loro il peso! Cosa pensi che farà il bambino? Probabilmente guarderebbe (analizzerebbe visivamente) l'altezza e la corporatura delle persone e le disporrebbe utilizzando una combinazione di questi parametri visibili. Questa è regressione lineare nella vita reale! Il bambino ha effettivamente capito che altezza e corporatura sarebbero correlate al peso da una relazione, che assomiglia all'equazione sopra. In questa equazione: Y – Variabile dipendente a - Pendenza retta X – Variabile indipendente b – Bias Questi coefficienti a e b sono derivati ​​sulla base della riduzione al minimo della differenza al quadrato della distanza tra i punti dati e la linea di regressione. La regressione lineare è principalmente di due tipi: regressione lineare semplice e regressione lineare multipla. La regressione lineare semplice è caratterizzata da una variabile indipendente. Inoltre, la regressione lineare multipla (come suggerisce il nome) è caratterizzata da più (più di 1) variabili indipendenti. Mentre trovi la linea più adatta, puoi adattare una regressione polinomiale o curvilinea. E questi sono noti come regressione polinomiale o curvilinea. Ecco una finestra per metterti alla prova e costruire il tuo modello di regressione lineare in Python: 2. Spiegazione e Implementazione Algoritmo Regressione logistica Non farti confondere dal suo nome! È una classificazione, non un algoritmo di regressione. Viene utilizzato per stimare valori discreti (valori binari come 0/1, sì/no, vero/falso) in base a un determinato insieme di variabili indipendenti. In parole semplici, prevede la probabilità di occorrenza di un evento adattando i dati a una funzione logistica . Quindi, è anche nota come regressione logistica . Poiché prevede la probabilità, i suoi valori di output sono compresi tra 0 e 1 (come previsto). Ancora una volta, cerchiamo di capirlo attraverso un semplice esempio. Supponiamo che il tuo amico ti dia un puzzle da risolvere. Ci sono solo 2 scenari di risultato: o lo risolvi o non lo fai. Ora immagina che ti venga data un'ampia gamma di enigmi / quiz nel tentativo di capire in quali materie sei bravo. Il risultato di questo studio sarebbe qualcosa del genere: se ti viene assegnato un problema di terza media basato sulla trignometria, hai il 70% di probabilità di risolverlo. D'altra parte, se si tratta di una domanda di storia di quinta elementare, la probabilità di ottenere una risposta è solo del 30%. Questo è ciò che ti offre la regressione logistica. Venendo alla matematica, le probabilità logaritmiche del risultato sono modellate come una combinazione lineare delle variabili predittive. probabilità= p/ (1-p) = probabilità che si verifichi l'evento / (1-probabilità che non si verifichi l'evento) ln(odds) = ln(p/(1-p)) logit(p) = ln(p/(1-p)) = b0+b1X1+b2X2+b3X3....+bkXk Sopra, p è la probabilità di presenza della caratteristica di interesse. Sceglie parametri che massimizzano la probabilità di osservare i valori del campione piuttosto che minimizzare la somma degli errori al quadrato (come nella regressione ordinaria). Costruisci il tuo modello di regressione logistica in Python qui e controlla l'accuratezza: 3. Spiegazione e Implementazione Algoritmo Albero decisionale Questo è uno dei miei algoritmi preferiti e lo uso abbastanza frequentemente. È un tipo di algoritmo di apprendimento supervisionato utilizzato principalmente per problemi di classificazione. Sorprendentemente, funziona sia per variabili dipendenti categoriali che continue. In questo algoritmo, dividiamo la popolazione in due o più insiemi omogenei. Questo viene fatto in base agli attributi/variabili indipendenti più significativi per creare gruppi il più distinti possibile. Sporchiamoci le mani e codifichiamo il nostro albero decisionale in Python! 4. Spiegazione e Implementazione Algoritmo SVM (macchina vettoriale di supporto) È un metodo di classificazione. In questo algoritmo, tracciamo ogni elemento di dati come un punto nello spazio n-dimensionale (dove n è il numero di caratteristiche che hai) con il valore di ciascuna caratteristica che è il valore di una particolare coordinata. Ad esempio, se avessimo solo due caratteristiche come l'altezza e la lunghezza dei capelli di un individuo, per prima cosa tracciaremmo queste due variabili in uno spazio bidimensionale in cui ogni punto ha due coordinate (queste coordinate sono note come vettori di supporto ) Ora troveremo una linea che divide i dati tra i due gruppi di dati diversamente classificati. Questa sarà la linea tale che le distanze dal punto più vicino in ciascuno dei due gruppi saranno più lontane. Questo è il codice di una possibile implementazione. 5. Spiegazione e Implementazione Algortimo Naive Bayes È una tecnica di classificazione basata sul teorema di Bayes con un'assunzione di indipendenza tra predittori. In parole povere, un classificatore Naive Bayes presuppone che la presenza di una particolare caratteristica in una classe non sia correlata alla presenza di qualsiasi altra caratteristica. Ad esempio, un frutto può essere considerato una mela se è rosso, rotondo e di circa 3 pollici di diametro. Anche se queste caratteristiche dipendono l'una dall'altra o dall'esistenza delle altre caratteristiche, un ingenuo classificatore di Bayes considererebbe tutte queste proprietà come un contributo indipendente alla probabilità che questo frutto sia una mela. Il modello bayesiano ingenuo è facile da costruire e particolarmente utile per set di dati molto grandi. Insieme alla semplicità, Naive Bayes è noto per superare anche i metodi di classificazione altamente sofisticati. Il teorema di Bayes fornisce un modo per calcolare la probabilità a posteriori P(c|x) da P(c), P(x) e P(x|c). Guarda l'equazione qui sotto: Qui, P ( c|x ) è la probabilità a posteriori della classe ( obiettivo ) dato il predittore ( attributo ). P ( c ) è la probabilità a priori della classe . P ( x|c ) è la verosimiglianza che è la probabilità del predittore data la classe . P ( x ) è la probabilità a priori del predittore . Naive Bayes utilizza un metodo simile per prevedere la probabilità di classi diverse in base a vari attributi. Questo algoritmo è utilizzato principalmente nella classificazione del testo e con problemi con più classi. Programma un modello di classificazione Naive Bayes in Python: 6. Spiegazione e Implementazione Algoritmo kNN Può essere utilizzato sia per problemi di classificazione che di regressione. Tuttavia, è più ampiamente utilizzato nei problemi di classificazione nell'industria. KNN è un semplice algoritmo che memorizza tutti i casi disponibili e classifica i nuovi casi con un voto di maggioranza dei suoi k vicini Queste funzioni di distanza possono essere la distanza Euclidea, Manhattan, Minkowski e Hamming. Le prime tre funzioni sono utilizzate per la funzione continua e la quarta (Hamming) per le variabili categoriali. Il caso viene semplicemente assegnato alla classe del suo vicino più prossimo. A volte, la scelta di K risulta essere una sfida durante l'esecuzione della modellazione kNN. KNN può essere facilmente usato nelle nostre vite. Se vuoi conoscere una persona di cui non hai informazioni, ti potrebbe piacere conoscere i suoi amici intimi e le cerchie in cui si muove e avere accesso alle sue informazioni! Aspetti da considerare prima di selezionare kNN: KNN è computazionalmente costoso Le variabili dovrebbero essere normalizzate, altrimenti le variabili di intervallo più alto possono distorcerlo Lavora di più sulla fase di pre-elaborazione prima di utilizzare kNN Programma un modello di clusterizzazione in Python: 7. Spiegazione e Implementazione Algoritmo K-Means È un tipo di algoritmo non supervisionato che risolve il problema del clustering. La sua procedura segue un modo semplice e facile per classificare un dato set di dati attraverso un certo numero di cluster (assumere k cluster). I punti dati all'interno di un cluster sono omogenei ed eterogenei rispetto ai gruppi di pari. Ricordi di aver capito le forme dalle macchie d'inchiostro? k significa che è in qualche modo simile a questa attività. Guardi la forma e diffondi per decifrare quanti diversi cluster/popolazioni sono presenti! Come K-mezzi forma il cluster: K-means seleziona k numero di punti per ogni cluster noto come centroidi. Ciascun punto dati forma un cluster con il centroidi più vicini, ovvero k cluster. Trova il centroide di ogni cluster in base ai membri del cluster esistenti. Qui abbiamo nuovi centroidi. Poiché abbiamo nuovi centroidi, ripeti i passaggi 2 e 3. Trova la distanza più vicina per ogni punto dati dai nuovi centroidi e associali ai nuovi k-cluster. Ripetere questo processo finché non si verifica la convergenza, ovvero i centroidi non cambiano. Come determinare il valore di K: In K-means, abbiamo cluster e ogni cluster ha il suo centroide. La somma dei quadrati della differenza tra il centroide ei punti dati all'interno di un cluster costituisce il valore della somma dei quadrati per quel cluster. Inoltre, quando vengono aggiunti i valori della somma dei quadrati per tutti i cluster, diventa totale all'interno del valore della somma dei quadrati per la soluzione del cluster. Sappiamo che all'aumentare del numero di cluster, questo valore continua a diminuire, ma se tracci il risultato potresti vedere che la somma della distanza al quadrato diminuisce bruscamente fino a un certo valore di k, e poi molto più lentamente dopo. Implementazione in Python dell'algoritmo K-Means 8. Spiegazione e Implementazione Algoritmi Foresta casuale Random Forest è un termine caratteristico per un insieme di alberi decisionali. Abbiamo una raccolta di alberi decisionali (conosciuti come "Foresta"). Per classificare un nuovo oggetto in base agli attributi, ogni albero fornisce una classificazione e diciamo che l'albero "vota" per quella classe. La foresta sceglie la classifica con il maggior numero di voti (su tutti gli alberi della foresta). Ogni albero viene piantato e cresciuto come segue: Se il numero di casi nel training set è N, il campione di N casi viene preso a caso ma con sostituzione . Questo esempio sarà il training set per far crescere l'albero. Se ci sono M variabili di input, viene specificato un numero m<<M tale che ad ogni nodo vengono selezionate a caso m variabili dalle M e la migliore suddivisione su queste m viene utilizzata per dividere il nodo. Il valore di m è mantenuto costante durante la crescita della foresta. Ogni albero è cresciuto nella misura più ampia possibile. Non c'è potatura. Implementiamo l'algoritmo foresta casuale con Python : 9. Spiegazione e Implementazione Algoritmi di riduzione della dimensionalità Negli ultimi 4-5 anni, c'è stato un aumento esponenziale nell'acquisizione dei dati in tutte le fasi possibili. Le aziende/ le agenzie governative/ le organizzazioni di ricerca non solo stanno arrivando con nuove fonti, ma stanno anche catturando i dati in grande dettaglio. Ad esempio: le aziende di e-commerce stanno acquisendo più dettagli sui clienti come i loro dati demografici, la cronologia di scansione del web, ciò che gli piace o non gli piace, la cronologia degli acquisti, il feedback e molti altri per dare loro un'attenzione personalizzata più del tuo negoziante di alimentari più vicino. Come data scientist, i dati che ci vengono offerti consistono anche di molte funzionalità, questo suona bene per costruire un buon modello robusto, ma c'è una sfida. Come hai identificato una o più variabili altamente significative su 1000 o 2000? In tali casi, l'algoritmo di riduzione della dimensionalità ci aiuta insieme a vari altri algoritmi come Decision Tree, Random Forest, PCA, Analisi fattoriale, Identificazione basata su matrice di correlazione, rapporto di valori mancanti e altri. Implementiamo un Algoritmo di riduzione della dimensionalità sui dei dati e vediamo le differenze 10. Spiegazione e Implementazione Algoritmi di aumento del gradiente ( XGboost ) XGBoost ha un potere predittivo immensamente elevato che lo rende la scelta migliore per la precisione negli eventi in quanto possiede sia il modello lineare che l'algoritmo di apprendimento ad albero, rendendo l'algoritmo quasi 10 volte più veloce rispetto alle tecniche di booster gradiente esistenti. Il supporto include varie funzioni oggettive, tra cui regressione, classificazione e ranking. Una delle cose più interessanti di XGBoost è che è anche chiamata una tecnica di potenziamento regolarizzata. Questo aiuta a ridurre la modellazione overfit e ha un enorme supporto per una vasta gamma di linguaggi come Scala, Java, R, Python, Julia e C++. Supporta la formazione distribuita e diffusa su molte macchine che comprendono cluster GCE, AWS, Azure e Yarn. XGBoost può anche essere integrato con Spark, Flink e altri sistemi di flusso di dati cloud con una convalida incrociata integrata ad ogni iterazione del processo di potenziamento. Implementiamo con Python l'algoritmo XGBoost Grazie mille per la lettura, condividi l'articolo se ti è stato utile

  • Chi ha inventato il Deep Learning ? Vediamo in breve la storia del Deep Learning

    Il Deep Learning è un argomento molto richiesto e discusso nelle grandi aziende. Diamo una semplice definizione al Deep Learning Il deep learning o DL è fondamentalmente un ramo dell'apprendimento automatico (un altro argomento caldo) che utilizza algoritmi per riconoscere oggetti, comprendere il linguaggio umano e molto altro.Gli scienziati hanno utilizzato algoritmi di deep learning con più livelli di elaborazione (quindi "profondo") per creare modelli migliori da grandi quantità di dati non etichettati (come foto senza descrizione, registrazioni vocali o video su YouTube). È un tipo di apprendimento automatico supervisionato, in cui a un computer viene fornito un set di esempi di addestramento per apprendere una funzione, in cui ogni esempio è una coppia di un input e un output della funzione. Molto semplicemente: se diamo al computer l'immagine di un gatto e l'immagine di una palla, e gli mostriamo qual è il gatto, possiamo chiedergli di decidere se le immagini successive sono gatti. ( L'esempio è stato semplificato, anche per far distinguere a un computer se in un immagine è presente un gatto o una palla servono centinaia di foto pre-etichettate, non una sola ) Il computer confronta l'immagine con il suo set di allenamento e fornisce una risposta. Gli algoritmi di oggi possono farlo anche senza supervisione; cioè, non hanno bisogno che ogni decisione sia pre-programmata. Naturalmente, più complesso è il compito, più grande deve essere il set di allenamento. Google utilizza algoritmi di riconoscimento vocale che funzionano con un enorme set di allenamento, ma non è abbastanza grande da prevedere ogni possibile parola o frase o domanda che potresti porre. Immagina a tutti i possibili modi in cui una persona potrebbe chiederti un indicazione stradale... Se pensi siano finiti ti invito a scriverli tutti qui sotto nei commenti 😂 Il deep learning è responsabile dei recenti progressi nella visione artificiale, nel riconoscimento vocale, nell'elaborazione del linguaggio naturale e nel riconoscimento audio. Il deep learning si basa sul concetto di reti neurali artificiali, o sistemi computazionali che imitano il modo in cui funziona il cervello umano. E così, la nostra breve storia di deep learning deve iniziare con quelle reti neurali. Sta cercando un corso sulla DataScience? Però costano tutti un sacco di soldi e non sei sicuro questo mestiere faccia per te? Oppure più semplicemente già lavori in questo settore e vuoi approfondire argomenti come machine learning e reti neurali ? Scopri il nostro Corso Gratuito da più di 100 Lezioni, a difficoltà crescente. L'unico corso in italiano gratuito che ti permetterà davvero di capire e approfondire temi fondamentali per questo mestiere. Clicca qui non aspettare, intanto iscriviti è GRATIS. La storia del Deep Learning 1943: Warren McCulloch e Walter Pitts creano un modello computazionale per reti neurali basato su matematica e algoritmi. 1958: Frank Rosenblatt crea il perceptron, un algoritmo per il riconoscimento di schemi basato su una rete neurale di computer a due strati che utilizza semplici addizioni e sottrazioni. Ha anche proposto livelli aggiuntivi con notazioni matematiche, ma questi non sarebbero stati realizzati fino al 1975. 1980: Kunihiko Fukushima propone il Neoconitron, una rete neurale artificiale gerarchica e multistrato che è stata utilizzata per il riconoscimento della scrittura e altri problemi di riconoscimento di schemi. 1989: gli scienziati sono stati in grado di creare algoritmi che utilizzavano reti neurali profonde, ma i tempi di addestramento per i sistemi sono stati misurati in giorni, rendendoli poco pratici per l'uso nel mondo reale. 1992: Juyang Weng pubblica Cresceptron, un metodo per eseguire automaticamente il riconoscimento di oggetti 3D da scene disordinate. Metà degli anni 2000: il termine "apprendimento profondo" inizia a guadagnare popolarità dopo che un articolo di Geoffrey Hinton e Ruslan Salakhutdinov ha mostrato come una rete neurale a più livelli potrebbe essere pre-addestrata uno strato alla volta. 2009: NIPS Workshop on Deep Learning for Speech Recognition scopre che con un set di dati sufficientemente grande, le reti neurali non necessitano di pre-addestramento e le percentuali di errore diminuiscono in modo significativo. 2012: gli algoritmi di riconoscimento di modelli artificiali raggiungono prestazioni a livello umano su determinati compiti. E l'algoritmo di deep learning di Google scopre i gatti . 2014: Google acquista la startup britannica di intelligenza artificiale Deepmind per 400 milioni di sterline 2015: Facebook mette in funzione la tecnologia di deep learning, chiamata DeepFace, per taggare e identificare automaticamente gli utenti di Facebook nelle fotografie. Gli algoritmi eseguono attività di riconoscimento facciale superiori utilizzando reti profonde che tengono conto di 120 milioni di parametri. 2016: l'algoritmo di Google DeepMind AlphaGo padroneggia l'arte del complesso gioco da tavolo Go e batte il giocatore professionista di go Lee Sedol in un torneo molto pubblicizzato a Seoul. La promessa del deep learning non è che i computer inizieranno a pensare come gli umani. È un po' come chiedere a una mela di diventare un'arancia. Piuttosto, dimostra che dato un set di dati abbastanza grande, processori abbastanza veloci e un algoritmo abbastanza sofisticato, i computer possono iniziare a svolgere compiti che prima erano completamente lasciati nel regno della percezione umana, come riconoscere i video di gatti sul web (e altri scopi forse più utili).

  • Come Analizzare Un Dataset in Solo 5 Passaggi

    Nel mondo moderno, ogni giorno vengono create grandi quantità di dati. Il World Economic Forum stima che entro il 2025, ogni giorno a livello globale verranno creati 463 exabyte di dati. E non nascondiamoci che stiamo parlando di una quantità di informazioni inimmaginabile. I dati possono essere uno strumento decisionale incredibilmente potente per le organizzazioni se sfruttati in modo efficace, ma può anche essere scoraggiante raccogliere e analizzare così grandi quantità di informazioni. Però per trarre qualche giusta informazione non dobbiamo obbligatoriamente avere 1exabyte di dati, anzi ti stupirai ma potrebbero bastarti un centinaio di feedback chiesti ai tuoi clienti. Partiamo piano piano e capiamo cosa è un dataset.. CHE COS'È UN SET DI DATI? Un set di dati è una raccolta di dati all'interno di un database o in caso sia offline un raccolta dati strutturata ( un file json, csv o excel ). In genere, i set di dati assumono un formato tabulare costituito da righe e colonne. Ogni colonna rappresenta una variabile specifica, mentre ogni riga corrisponde a un valore specifico. Alcuni set di dati costituiti da dati non strutturati non sono tabulari, il che significa che non si adattano al tradizionale formato riga-colonna. CHE COS'È L'ANALISI DEI DATI? L'analisi dei dati si riferisce al processo di manipolazione dei dati grezzi per scoprire informazioni utili e trarre conclusioni. Durante questo processo, un analista di dati o uno scienziato dei dati organizzerà, trasformerà e modellerà un set di dati. Le aziende utilizzano i dati per risolvere problemi, prendere decisioni supportate da dati e statistiche e pianificare efficacemente il da farsi. L'analisi dei dati garantisce che questi dati siano ottimizzati e pronti per l'uso. Alcuni tipi specifici di analisi dei dati includono: Analisi descrittiva Analisi diagnostica Analisi predittiva Analisi prescrittiva Indipendentemente dal motivo per cui analizzi i dati, ci sono sei semplici passaggi che puoi seguire per rendere più efficiente il processo di analisi dei dati. Come Analizzare un Dataset in 5 passaggi 1. Pulisci i tuoi dati Il wrangling dei dati, chiamato anche pulizia dei dati, è il processo di correzione o eliminazione di record imprecisi o ripetuti nel set di dati. Durante il processo di pulizia dei dati, trasformerai i dati grezzi in un formato più utile, preparandolo per l'analisi. Immagina un data grezzo come le immagini dei prodotti dei tuoi competitor, per pulizia del dato in questo caso intendiamo riportare magari su una tabella excel i dettagli dei prodotti che riesci a raccogliere dalle foto. ( Dimensioni, colori, prezzo, ecc ) È fondamentale pulire i dati prima di iniziare l'analisi. Ciò è particolarmente importante se presenterai i tuoi risultati a team aziendali che potrebbero utilizzare i dati per scopi decisionali . I team devono avere la certezza di agire su una fonte di informazioni affidabile. Ora immagina di capire, dopo aver raccolto i dati dalle immagini dei tuoi competitor e le recensioni dei vari clienti, che le borse di 40cm rosse sono sempre sold out o poco comprate. Ora immagina invece di aver passato ore a guardare quelle foto domandoti perchè i tuoi competitor vendono e tu no... L'estrazione del dato, la creazione di nostre tabelle ( o dataset ) ci aiuterà sempre a capire qualcosa in più. 2. Identifica le domande giuste Una volta completato il processo di pulizia, potresti avere molte domande sul tuo set di dati finale. C'è così tanto potenziale che può essere scoperto attraverso l'analisi. Identifica le domande più importanti a cui speri di rispondere attraverso la tua analisi. Queste domande dovrebbero essere facilmente misurabili e strettamente correlate a un problema aziendale specifico. Se la richiesta di analisi proviene da un team aziendale, chiedi loro di fornire dettagli espliciti su ciò che sperano di apprendere, cosa si aspettano di apprendere e come utilizzeranno le informazioni. Puoi utilizzare il loro input per determinare quali domande hanno la priorità nella tua analisi. 3. Suddividi i dati in segmenti Spesso è utile suddividere il set di dati in gruppi più piccoli e definiti. Segmentare i tuoi dati non solo renderà la tua analisi più gestibile, ma la manterrà anche in pista. Ad esempio, se stai cercando di rispondere a domande sulle prestazioni di un reparto specifico, ti consigliamo di segmentare i dati per reparto. Da lì, sarai in grado di raccogliere informazioni sul gruppo che ti interessa e identificare eventuali relazioni che potrebbero esistere tra ciascun gruppo. 4. Visualizza i dati Una delle parti più importanti dell'analisi dei dati è la visualizzazione dei dati , che si riferisce al processo di creazione di rappresentazioni grafiche dei dati. La visualizzazione dei dati ti aiuterà a identificare facilmente eventuali tendenze o modelli e ovvi valori anomali.Creando elementi visivi accattivanti che rappresentano i dati, sei anche in grado di comunicare in modo efficace i tuoi risultati alle principali parti interessate che possono trarre rapidamente conclusioni dalle visualizzazioni. È disponibile una varietà di strumenti di visualizzazione dei dati che puoi utilizzare per generare automaticamente rappresentazioni visive di un set di dati, come Microsoft Excel, Tableau e Google Charts. 5. Usa i dati per rispondere alle tue domande Dopo aver pulito, organizzato, trasformato e visualizzato i tuoi dati, rivisita le domande che hai delineato all'inizio del processo di analisi dei dati. Interpreta i tuoi risultati e determina se i dati ti aiutano a rispondere alle tue domande originali. Se i risultati non sono conclusivi, prova a rivisitare un passaggio precedente nel processo di analisi. Forse il tuo set di dati era troppo grande e avrebbe dovuto essere segmentato ulteriormente, o forse esiste un diverso tipo di visualizzazione più adatto ai tuoi dati. L'IMPORTANZA DELL'ANALISI DEI DATI Praticamente tutte le decisioni aziendali prese sono supportate da dati. Per questo motivo, è fondamentale che le aziende siano in grado di sfruttare i dati a loro disposizione. Le aziende si basano sulle conoscenze acquisite da analisi dei dati per guidare una miriade di attività, che vanno dal bilancio alla creazione di una nuova strategia . L'importanza dell'analisi dei dati per le aziende di oggi non può essere sottovalutata. Sta cercando un corso sulla DataScience? Però costano tutti un sacco di soldi e non sei sicuro questo mestiere faccia per te? Oppure più semplicemente già lavori in questo settore e vuoi approfondire argomenti come machine learning e reti neurali ? Scopri il nostro Corso Gratuito da più di 100 Lezioni, a difficoltà crescente. L'unico corso in italiano gratuito che ti permetterà davvero di capire e approfondire temi fondamentali per questo mestiere. Clicca qui non aspettare, intanto iscriviti è GRATIS.

  • Feature Engineering e Feature Selection per Principianti e non – Python e Machine Learning Tutorial

    Dicono che i dati siano il nuovo petrolio , ma non usiamo il petrolio direttamente dalla sua fonte. Deve essere elaborato e pulito prima di utilizzarlo per scopi diversi. Lo stesso vale per i dati, non li usiamo direttamente dalla loro fonte. Deve anche essere elaborato. Questa può essere una sfida per i principianti nell'apprendimento automatico e nella scienza dei dati perché i dati provengono da fonti diverse con tipi di dati diversi. Pertanto non è possibile applicare lo stesso metodo di pulizia ed elaborazione a diversi tipi di dati. "Le informazioni possono essere estratte dai dati così come l'energia può essere estratta dal petrolio."- Adeola Adesina Devi imparare e applicare metodi a seconda dei dati che hai. Dopo aver letto questo articolo, saprai: Che cos'è l'ingegneria delle funzionalità e la selezione delle funzionalità. Diversi metodi per gestire i dati mancanti nel tuo set di dati. Diversi metodi per gestire le funzionalità continue. Diversi metodi per gestire le caratteristiche categoriche. Diversi metodi per la selezione delle caratteristiche. Cominciamo.🚀 Che cos'è il Feature Engineering l'ingegneria delle Feature? L'ingegneria delle feature si riferisce a un processo di selezione e trasformazione di variabili/funzioni nel set di dati durante la creazione di un modello predittivo utilizzando l'apprendimento automatico. Pertanto devi estrarre le funzionalità dal set di dati non elaborato che hai raccolto prima di addestrare i tuoi dati negli algoritmi di apprendimento automatico. Altrimenti, sarà difficile ottenere buone informazioni sui tuoi dati. Tortura i dati e confesseranno qualsiasi cosa. — Ronald Coase L'ingegneria delle feature ha due obiettivi: Preparazione del set di dati di input corretto, compatibile con i requisiti dell'algoritmo di apprendimento automatico. Migliorare le prestazioni dei modelli di machine learning. Indagine CrowdFlower Secondo un sondaggio condotto da CrowdFlower su 80 Data Scientist, i Data Scientist passano il 60% del loro tempo a pulire e organizzare i dati. Questo è il motivo per cui avere competenze nell'ingegneria e nella selezione delle funzionalità è molto importante. “ Alla fine della giornata, alcuni progetti di machine learning hanno successo e altri falliscono. Cosa fa la differenza? Facilmente il fattore più importante sono le feature utilizzate. ” — Prof. Pedro Domingos dell'Università di Washington Ora che sai perché è necessario apprendere tecniche diverse per la progettazione delle funzionalità, iniziamo imparando metodi diversi per gestire i dati mancanti. Come gestire i dati mancanti La gestione dei dati mancanti è molto importante poiché molti algoritmi di apprendimento automatico non supportano i dati con valori mancanti. La mancanza di valori nel set di dati può causare errori e prestazioni scadenti con alcuni algoritmi di apprendimento automatico. Ecco l'elenco dei valori mancanti comuni che puoi trovare nel tuo set di dati. N / A nullo Vuoto ? nessuno sporco - NaN Impariamo diversi metodi per risolvere il problema dei dati mancanti. Cancellazione variabile L'eliminazione delle variabili comporta l'eliminazione delle variabili (colonne) con valori mancanti caso per caso. Questo metodo ha senso quando ci sono molti valori mancanti in una variabile e se la variabile è di importanza relativamente minore. L'unico caso in cui può valere la pena eliminare una variabile è quando i suoi valori mancanti superano il 60% delle osservazioni. # importa packages import numpy as np import pandas as pd # leggi dataset data = pd.read_csv('path/to/data') #setta threshold threshold = 0.7 # droppa colonne con i valori mancani più alti del threshold data = data[data.columns[data.isnull().mean() < threshold]] Nello snippet di codice sopra, puoi vedere come utilizzo NumPy e panda per caricare il set di dati e impostare una soglia su 0.7 . Ciò significa che qualsiasi colonna con valori mancanti superiori al 70% delle osservazioni verrà eliminata dal set di dati. Ti consiglio di impostare il valore di soglia in base alla dimensione del tuo set di dati. Imputazione media o mediana Un'altra tecnica comune consiste nell'utilizzare la media o la mediana delle osservazioni non mancanti. Questa strategia può essere applicata a una feature che contiene dati numerici. # Sostituisci i valori nulli con la media delle colonne di appartenenza data = data.fillna(data.median()) Nell'esempio sopra, usiamo il metodo mediano per riempire i valori mancanti nel set di dati. Valore più comune Questo metodo sostituisce i valori mancanti con il valore massimo verificato in una colonna/funzione. Questa è una buona opzione per la gestione di colonne/funzioni categoriali . # Sostituisci i valori nulli con la media delle colonne di appartenenza data['column_name'].fillna(data['column_name'].value_counts().idxmax(). inplace=True) Qui utilizziamo il metodo value_counts() di panda per contare l'occorrenza di ciascun valore univoco nella colonna e quindi riempire il valore mancante con il valore più comune. Come gestire le funzioni continue Le feature continue nel set di dati hanno un intervallo di valori diverso. Esempi comuni di funzionalità continue sono età, stipendio, prezzi e altezza. È molto importante gestire le funzionalità continue nel set di dati prima di addestrare gli algoritmi di apprendimento automatico. Se si addestra il modello con un intervallo di valori diverso, il modello non funzionerà bene. Cosa intendo quando dico un diverso intervallo di valori? Supponiamo che tu abbia un set di dati con due funzioni continue, età e stipendio . La fascia di età sarà diversa dalla fascia di stipendio e ciò può causare problemi. Di seguito sono riportati alcuni metodi comuni per gestire le funzionalità continue: Normalizzazione Min-Max in Python Per ogni valore in una caratteristica, la normalizzazione Min-Max sottrae il valore minimo nella caratteristica e quindi divide per il suo intervallo. L'intervallo è la differenza tra il massimo originale e il minimo originale. Infine, ridimensiona tutti i valori in un intervallo fisso tra 0 e 1. È possibile utilizzare il metodo MinMaxScaler di Scikit -learn che trasforma le funzionalità ridimensionando ciascuna funzionalità in un determinato intervallo: from sklearn.preprocessing import MinMaxScaler import numpy as np data = np.array([[4, 6], [11, 34], [10, 17], [1, 5]]) # creiamo lo scaler method scaler = MinMaxScaler(feature_range=(0,1)) # Scaliamo e trasformiamo i dati scaled_data = scaler.fit_transform(data) print(scaled_data) # [[0.3 0.03448276] # [1. 1. ] # [0.9 0.4137931 ] # [0. 0. ]] Come puoi vedere, i nostri dati sono stati trasformati e l'intervallo è compreso tra 0 e 1 . Standardizzazione in Python La Standardizzazione assicura che ogni caratteristica abbia una media di 0 e una deviazione standard di 1 , portando tutte le caratteristiche alla stessa grandezza. Se la deviazione standard delle caratteristiche è diversa , anche il loro intervallo sarebbe diverso. x = osservazione, μ = media, σ = deviazione standard È possibile utilizzare il metodo StandardScaler di Scikit-learn per standardizzare le funzionalità rimuovendo la media e scalando a una deviazione standard di 1 : from sklearn.preprocessing import StandardScaler import numpy as np data = np.array([[4, 1], [11, 1], [10, 4], [1, 11]]) # creiamo lo scaler method scaler = StandardScaler() # Scaliamo e trasformiamo i dati scaled_data = scaler.fit_transform(data) print(scaled_data) # [[-0.60192927 -0.79558708] # [ 1.08347268 -0.79558708] # [ 0.84270097 -0.06119901] # [-1.32424438 1.65237317]] Verifichiamo che la media di ogni feature (colonna) sia 0 : print(scaled_data.mean(axis=0)) [0. 0.] E che la deviazione standard di ogni caratteristica (colonna) è 1 : print(scaled_data.std(axis=0)) [1. 1.] Come gestire le caratteristiche categoriche Le caratteristiche categoriali rappresentano tipi di dati che possono essere suddivisi in gruppi. Ad esempio, generi e livelli di istruzione. Tutti i valori non numerici devono essere convertiti in numeri interi o float per essere utilizzati nella maggior parte delle librerie di machine learning.I metodi comuni per gestire le caratteristiche categoriali sono: Codifica etichetta La codifica dell'etichetta converte semplicemente ogni valore categorico in una colonna in un numero. Si consiglia di utilizzare la codifica delle etichette per convertirli in variabili binarie. Nell'esempio seguente imparerai come utilizzare LableEncoder di Scikit -learn per trasformare i valori categoriali in binari: import numpy as np import pandas as pd from sklearn.preprocessing import LabelEncoder data = {'Gender':['male', 'female', 'female', 'male','male'], 'Country':['Tanzania','Kenya', 'Tanzania', 'Tanzania','Kenya']} # Creiamo il dataFrame data = pd.DataFrame(data) # creiamo il label encoder object le = LabelEncoder() data['Gender']= le.fit_transform(data['Gender']) data['Country']= le.fit_transform(data['Country']) print(data) Dati trasformati Codifica one-hot Il modo di gran lunga più comune per rappresentare le variabili categoriali è utilizzare la codifica one-hot, o metodi di codifica uno-su-N, noti anche come variabili fittizie. L'idea alla base delle variabili fittizie è sostituire una variabile categoriale con una o più nuove funzionalità che possono avere i valori 0 e 1. Nell'esempio seguente, utilizzeremo gli encoder della libreria Scikit-learn. LabelEncoder ci aiuterà a creare una codifica intera di etichette dai nostri dati eOneHotEncoder creerà una codifica one-hot di valori con codifica intera. import numpy as np from sklearn.preprocessing import OneHotEncoder, LabelEncoder # definiamo un esempio data = np.array(['cold', 'cold', 'warm', 'cold', 'hot', 'hot', 'warm', 'cold', 'warm', 'hot']) # creiamo integer encode label_encoder = LabelEncoder() # alleniamo e trasformia i dati integer_encoded = label_encoder.fit_transform(data) print(integer_encoded) # creiamo one-hot encode onehot_encoder = OneHotEncoder(sparse=False) # effttuiamo il reshape dei dati integer_encoded = integer_encoded.reshape(len(integer_encoded), 1) # alleniamo e trasformia i dati onehot_encoded = onehot_encoder.fit_transform(integer_encoded) print(onehot_encoded) Questo è l' output di integer_encoded dal metodo LabelEncoder : [0 0 2 0 1 1 2 0 2 1] E questo è l'output di onehot_encoded dal metodo OneHotEncoder : [[1. 0. 0.] [1. 0. 0.] [0. 0. 1.] [1. 0. 0.] [0. 1. 0.] [0. 1. 0.] [0. 0. 1.] [1. 0. 0.] [0. 0. 1.] [0. 1. 0.]] Che cos'è la Feature Selection o selezione delle Feature ? La selezione delle funzionalità è il processo in cui si selezionano automaticamente o manualmente le funzionalità che contribuiscono maggiormente alla variabile o all'output di previsione. La presenza di funzionalità irrilevanti nei dati può ridurre l'accuratezza dei modelli di machine learning. I motivi principali per utilizzare la selezione delle funzionalità sono: Consente all'algoritmo di apprendimento automatico di eseguire l'addestramento più velocemente. Riduce la complessità di un modello e ne facilita l'interpretazione. Migliora la precisione di un modello se viene scelto il sottoinsieme corretto. Riduce il sovradattamento. "Ho preparato un modello selezionando tutte le caratteristiche e ho ottenuto una precisione di circa il 65% che non è abbastanza buona per un modello predittivo e dopo aver effettuato alcune selezioni di funzionalità e progettazione delle funzionalità senza apportare modifiche logiche al codice del mio modello, la mia precisione è balzata a 81% che è piuttosto impressionante "- Di Raheel Shaikh I metodi comuni per la selezione delle funzionalità sono: Selezione univariata I test statistici possono aiutare a selezionare le caratteristiche indipendenti che hanno la relazione più forte con la caratteristica di destinazione nel set di dati. Ad esempio, il test del chi quadrato. La libreria Scikit -learn fornisce la classe SelectKBest che può essere usata con una suite di diversi test statistici per selezionare un numero specifico di funzionalità. Nell'esempio seguente utilizziamo la classe SelectKBest con il test chi-squired per trovare la funzionalità migliore per il set di dati Iris: from sklearn.datasets import load_iris from sklearn.feature_selection import SelectKBest from sklearn.feature_selection import chi2 iris_dataset = load_iris() # Dividiamo Target e features X = iris_dataset.data y = iris_dataset.target X = X.astype(int) chi2_features = SelectKBest(chi2, k = 2) X_kbest_features = chi2_features.fit_transform(X, y) # features Ridotte print('Original feature number:', X.shape[1]) print('Reduced feature number:', X_kbest_features.shape[1]) Numero di caratteristica originale: 4 Numero di caratteristica ridotto: 2 Come puoi vedere, il test del chi quadrato ci aiuta a selezionare due importanti caratteristiche indipendenti dalle 4 originali che hanno la relazione più forte con la caratteristica di destinazione. Importanza delle caratteristiche L'importanza delle funzionalità ti dà un punteggio per ogni caratteristica dei tuoi dati. Più alto è il punteggio, più importante o rilevante è quella caratteristica per la tua caratteristica target. L'importanza delle funzionalità è una classe incorporata che viene fornita con classificatori basati su alberi come: Classificatori forestali casuali Classificatori albero extra Nell'esempio seguente, addestreremo il classificatore ad albero aggiuntivo nel set di dati dell'iride e utilizzeremo la classe incorporata .feature_importances_ per calcolare l'importanza di ogni caratteristica: from sklearn.datasets import load_iris import matplotlib.pyplot as plt from sklearn.ensemble import ExtraTreesClassifier iris_dataset = load_iris() # Dividiamo Target e features X = iris_dataset.data y = iris_dataset.target X = X.astype(int) # Creiamo il modello extra_tree_forest = ExtraTreesClassifier(n_estimators = 5, criterion ='entropy', max_features = 2) # Alleniamo il modello extra_tree_forest.fit(X, y) feature_importance = extra_tree_forest.feature_importances_ # Normalizziamo feature_importance_normalized = np.std([tree.feature_importances_ for tree in extra_tree_forest.estimators_], axis = 0) # Mostriamo il grafico a barre plt.bar(iris_dataset.feature_names, feature_importance_normalized) plt.xlabel('Feature Labels') plt.ylabel('Feature Importances') plt.title('Comparison of different Feature Importances') plt.show() Caratteristiche importanti Il grafico mostra che le suddette caratteristiche più importanti sono lunghezza petalo (cm) e larghezza petalo (cm) , e che il minimo caratteristica importante è la larghezza sepalo (cm) . Ciò significa che puoi utilizzare le funzionalità più importanti per addestrare il tuo modello e ottenere le migliori prestazioni. Matrice di correlazione Heatmap La correlazione mostra come le caratteristiche sono correlate tra loro o con la caratteristica di destinazione. La correlazione può essere positiva (un aumento di un valore della caratteristica aumenta il valore della variabile target) o negativa (un aumento di un valore della caratteristica diminuisce il valore della variabile target). Nell'esempio seguente, utilizzeremo il dataset dei prezzi delle case di Boston dalla libreria Scikit-learn e il metodo corr() di pandas per trovare la correlazione a coppie di tutte le caratteristiche nel dataframe: from sklearn.datasets import load_boston import matplotlib.pyplot as plt import seaborn as sns boston_dataset = load_boston() boston = pd.DataFrame(boston_dataset.data, columns=boston_dataset.feature_names) #X = X.astype(int) #mostriamo il grafico ax = sns.heatmap(boston.corr().round(2), annot=True) Il coefficiente di correlazione va da -1 a 1. Se il valore è prossimo a 1, significa che c'è una forte correlazione positiva tra le due caratteristiche. Quando è vicino a -1, le caratteristiche hanno una forte correlazione negativa. Nella figura sopra, si può vedere che l'IVA e RAD caratteristiche hanno come TRONG correlazione positiva e le DIS e NOX caratteristiche hanno una forte correlazione negativa. Se scopri che ci sono alcune funzionalità nel tuo set di dati che sono correlate tra loro, significa che trasmettono le stesse informazioni. Si consiglia di rimuoverne uno. Conclusione I metodi che ho spiegato in questo articolo ti aiuteranno a preparare la maggior parte dei set di dati strutturati che hai. Ma se stai lavorando su set di dati non strutturati come immagini, testo e audio, dovrai imparare diversi metodi che non sono spiegati in questo articolo.

  • Come viene utilizzata l'intelligenza artificiale nel mercato delle cryptovalute?

    Le cryptovalute continuano ad essere un fenomeno estremamente interessante oggi . Avendo rapidamente raggiunto popolarità e diventando molto popolari, le monete digitali continuano a essere uno strumento di investimento incredibilmente redditizio, in grado di generare enormi profitti sugli scambi di cryptovalute o quando si investe in queste risorse a lungo termine. Attualmente c'è un preciso incremento del premio dei clienti negli scambi di denaro digitale, dove non è difficile "ottenere" un modello decente e acquisire rapidamente questo sviluppo di valore. I teorici esperti fanno così le loro capitali. Scambiare fasi con Bitcoin, altcoin, ben noto in questi giorni scambiare satoshi con usd e altre risorse crittografiche può trarre vantaggio dall'apertura di posizioni fisicamente dopo aver indagato sul mercato, contemplando diagrammi di valore, esaminando informazioni di puntatori specializzati e così via, sia come potrebbe, il 21° secolo ha permesso la possibilità di eseguire utili modalità programmate di scambio di cryptovalute tramite cripto-bot non comuni. In un frammento in rapido sviluppo come il mercato delle cryptovalute, la capacità di meccanizzare l'interazione di scambio è popolare. I broker con capacità di codifica e informazioni di programmazione possono creare i propri robot crittografici o migliorare abilmente gli Expert Advisor esistenti per lo scambio produttivo di monete avanzate. Il robot scambierà autonomamente risorse crittografiche, portando una paga vantaggiosa al suo proprietario. Tuttavia, c'è un enorme pericolo, che per ragioni sconosciute viene decisamente ignorato da principianti e cripto-mercanti inesperti. Manciate e molti calcoli che informatizzano lo scambio di strumenti commerciali sono attualmente costantemente accessibili su Internet e nulla si pensa alla loro genuina qualità. Non è difficile commettere un errore nelle loro impostazioni o eseguire un primo bot dispendioso. Ovviamente, ciò richiederà una rapida perdita del negozio. Questo è il motivo per cui i robot crittografici dovrebbero essere trattati con cautela, con vari test sugli account demo. È sempre necessario essere vigili e scegliere con molta attenzione un consulente di trading per il trading di cryptovalute. Altrimenti, è facile prendere un miner virale, perdere denaro dal tuo conto di trading o semplicemente trasferire inconsapevolmente le monete guadagnate al cryptomonete di un truffatore! Ci stiamo quasi facendo l'abitudine a sentire 3-4 volte l'anno del fortunato che aveva acquistato 100$ di monete virtuali e dopo 5-10 anni è milionario. Ma ricordiamoci sempre, proprio statisticamente parlando, le persone che vincono sono sempre meno di quelle che perdono. Quindi ogni volta che senti un caso di successo, ricorda che ce ne sono molti invece che si sono bruciati in pochi giorni risparmi di una vita o stpendi. L'apprendimento automatico e l'intelligenza artificiale sono utilizzati attivamente per analizzare i mercati finanziari tradizionali ( piattaforme DataTrading , EmmaAI , Aidyia , Qplum , Estimize ). Tuttavia, alcune società sono state costrette a chiudere a causa delle sfumature che riveleremo ulteriormente. Di conseguenza, strumenti simili sono applicabili anche nel campo del cripto-trading. Qual è la particolarità dell'utilizzo della ME(Aspettative matematiche) e dell'AI(Intelligenza artificiale) nel mercato delle criptovalute e come possono aiutarne lo sviluppo? L'elevata volatilità delle criptovalute non solo aumenta i rischi del trading di criptovalute, ma lo rende anche più redditizio di qualsiasi altra forma di investimento. I prezzi sono soggetti a frequenti fluttuazioni durante il giorno, il che, se calcolato correttamente, consente ai trader di guadagnare un reddito stabile. Per calcolare i modelli del mercato delle criptovalute in continua evoluzione, è necessario elaborare grandi quantità di informazioni, con le quali l'intelligenza artificiale e i sistemi di apprendimento automatico possono aiutare. I principali vantaggi : Capacità di analizzare grandi quantità di dati. Capacità di apprendimento. Alta velocità di lavoro. Precisione. Anche ora, miliardi di dollari di asset, azioni e obbligazioni convenzionali vengono gestiti con l'aiuto di tecnologie di intelligenza artificiale. L'uso dei sistemi ME e AI nel mercato delle criptovalute non è così diffuso, ma queste tecnologie vengono implementate attivamente nello spazio delle criptovalute, sviluppandosi in tre direzioni. Previsione del mercato delle cryptovalute La piattaforma decentralizzata di Augur per la creazione di mercati di previsione peer-to-peer si basa sull'esperienza dei partecipanti alla rete. Tuttavia, consente di fare previsioni abbastanza accurate sulle cryptovalute. Augur ha annunciato la creazione del suo 1.000° mercato il 16 agosto di quest'anno. Augur è stato sviluppato dalla Forecast Foundation, un'organizzazione senza scopo di lucro, per formare fonti accessibili di previsioni pubbliche. Al contrario, la piattaforma NeuroBot si basa non sull'esperienza dell'utente, ma sul lavoro delle reti neurali. Con il loro aiuto, fa previsioni sulle dinamiche del mercato delle cryptovalute. Il sistema stesso monitora le fluttuazioni dei tassi di cambio, le confronta e prevede i cambiamenti per il giorno successivo. Gli autori di NeuroBot affermano che la loro piattaforma analizza i cambiamenti con una precisione fino al 90%. I creatori intendono migliorare il sistema includendovi analisi tecniche e fondamentali. Tali piattaforme possono rendere la vita molto più semplice per i trader di cryptovalute alle prime armi che non hanno ancora avuto il tempo di apprendere l'intero ambito delle informazioni. Certo, è impossibile fare affidamento su piattaforme prognostiche per tutto, ma possono fare la parte del leone nell'analisi tecnica del mercato e condurla con elevata precisione. Analisi del sentiment di mercato Determinare il sentimento del mercato delle cryptovalute richiede l'elaborazione di molti dati diversi. Ciò include articoli, blog, forum e persino commenti sotto di essi. Senno, una piattaforma basata su tecnologie blockchain e di intelligenza artificiale, fa l'analisi in automatico ed è in grado di dare il risultato in breve tempo. Il sistema applica anche elementi di machine learning nel suo lavoro. Senno ha anche firmato un accordo di partnership con CryptoScanner, un'app che utilizza l'intelligenza artificiale per prevedere il sentimento del mercato e condivide i risultati con i trader per aiutarli a sviluppare le loro strategie. Trovare parti per fare affari Uno dei problemi del mercato delle cryptovalute è la mancanza di liquidità. Le forti fluttuazioni dei tassi di cambio rendono le valute digitali poco attraenti come pagamenti aziendali. La differenza tra domanda e offerta è spesso compensata da commissioni elevate di borse e banche. Per risolvere il problema, vengono utilizzate piattaforme come TradeConnect, che utilizza la tecnologia di apprendimento automatico. Utilizza un protocollo di abbinamento laterale e aiuta il cliente a trovare il broker e la banca giusti, a effettuare transazioni direttamente e a pagare commissioni minime. Le singole società sono specificamente impegnate nello sviluppo di piattaforme AI relative alla fornitura di servizi nel mercato delle cryptovalute. Ad esempio, il team di Money Token ha creato l'assistente AI Amanda, che presterà ai membri della comunità delle cryptovalute. L'assistente virtuale sarà in grado di fornire prestiti contro garanzie in cryptovaluta e gestire il pieno supporto, dal momento della richiesta fino al rimborso completo del prestito. Sicurezza durante l'utilizzo di cryptobot È necessario fare attenzione quando si affidano a qualcuno le chiavi API dei propri exchange. Solo i servizi affidabili con una buona reputazione lo meritano. Dopotutto, la chiave API è una sorta di permesso per utilizzare il tuo account, incluso il trading attraverso di esso e il prelievo di fondi. Qualsiasi bot richiede che l'API funzioni, il che di per sé non è un segno di frode. Esamina attentamente ogni piattaforma prima di iniziare a lavorarci. Scopri quali metodi di sicurezza vengono utilizzati lì. Attiva sempre l'autenticazione a due fattori per limitare l'accesso all'account. Vantaggi dei cryptobot: Trading 24 ore su 24. Un bot non ha bisogno di dormire o fare altre cose, a differenza di un umano. Assenza di fattore umano. Le persone commettono errori, sia nelle operazioni di trading che in quelle ausiliarie, come l'inserimento di dettagli. Esecuzione automatica istantanea delle operazioni secondo i parametri impostati. Mancanza di emozione e stretta aderenza al piano. Possibilità di testare idee di trading con Paper Trading o sulla base di dati storici. Comoda diversificazione e condivisione dei rischi. Svantaggi dei cryptobot: Ci sono strategie non riuscite o obsolete nei cryptobot. Un utente inesperto che sceglie una tale strategia subirà delle perdite. Molti progetti fraudolenti. Non lasciarti ingannare dalle promesse di iper profitti, questo dovrebbe avvisarti immediatamente. Il bot dovrebbe essere monitorato, regolato e mantenuto, contrariamente al comune malinteso di "imposta e dimentica". Ci sono bot con software di bassa qualità. Di solito, questi sono progetti nuovi e grezzi, quindi è meglio scegliere piattaforme comprovate e già debuggate al 100%. Un bot, anche opportunamente configurato, non garantisce profitti. Ci sono molti fattori che influenzano prezzi e guadagni. Vantaggi del trading automatizzato di cryptovalute Durante il periodo della sua prosperità, l'exchange di criptovalute MT-Gox , ormai in bancarotta , ha utilizzato molto attivamente uno speciale cryptorobot, chiamato Willy, che manipolava il valore delle monete BTC. Questo robot di trading è stato il primo bot bitcoin che ha effettivamente causato un aumento e poi una diminuzione dei prezzi dei bitcoin. Questa situazione si è verificata nel 2012-2014, quando il mercato delle cryptovalute, e tutto il denaro decentralizzato, era poco conosciuto e poco popolare. Naturalmente, l'attuale sviluppo del settore delle cryptovalute ha completamente bloccato la possibilità di utilizzare i bot per tali manipolazioni del prezzo delle monete decentralizzate. I robot sono principalmente utilizzati per automatizzare il trading in borsa. Tale implementazione di algoritmi è dovuta a una buona serie di vantaggi delle attività speculative svolte tramite cryptobot. I vantaggi più significativi sono i seguenti: Il trader non ha bisogno di monitorare incessantemente il mercato delle valute virtuali e calcolare costantemente i momenti per aprire posizioni; L'uso di cryptorobot per scambiare risorse digitali elimina il fattore paura e l'elemento dello stato emotivo nelle decisioni di trading. La maggior parte dei trader di crytovalute alle prime armi perde depositi esclusivamente a causa dell'instabilità psicologica ed emotiva e trascurando le regole della propria strategia di trading; Il bot di cryptovaluta è in grado di riconoscere chiaramente modelli grafici, modelli di candele, direzioni delle quotazioni e punti di inversione di tendenza, che sono spesso invisibili al trader; Un robot di trading ben sintonizzato analizza i grafici in modo più efficace, effettua operazioni più efficienti e cerca i migliori punti di ingresso. Le qualità menzionate sono solo un esempio dell'utilità del trading automatizzato di cryptovalute. Ci sono molti altri vantaggi di tali programmi, che possono aiutare qualsiasi trader. Conclusioni Esistono diverse limitazioni all'uso diffuso delle tecnologie dell'IA. In particolare, la mancanza di informazioni, perché il mercato delle cryptovalute è relativamente nuovo rispetto al mercato azionario tradizionale, e la conoscenza dell'IA è spesso limitata dalla quantità di informazioni che l'umanità ha. Un'altra difficoltà è che algoritmi di machine learning altamente accurati e complessi richiedono hardware di elaborazione potente e sofisticato che solo le aziende giganti possono permettersi. Va ricordato che la qualità di qualsiasi cryptobot è determinata dalla correlazione tra la sua efficienza e il valore reale. Qualsiasi bot per il trading di cryptovalute su uno scambio deve avere prestazioni stabili. Grazie mille per la lettura, condividi l'articolo con il tuo Crypto-Amico

  • Big Data, Data Science e Machine Learning i Migliori Libri per Principianti e non

    In questo articolo scopriremo quali sono i migliori libri e manuali di Big Data, Data Science e Machine Learning i Migliori Libri pe per il data scientist del futuro, aggiornati al 2021-2022. Il data scientist o scienziato dei dati è una figura professionale emergente, molto richiesta dalle aziende, nata negli ultimi anni a seguito della enorme mole di dati generata dal traffico internet. Questo nuovo profilo professionale si occupa principalmente di analizzare ed elaborare grandi quantità di dati al fine di ricavarne informazioni ritenute utili a fini aziendali. Per fare questo il data scientist ha bisogno di conoscenze molto accurate in ambito di data processing , machine learning e big data. Ovviamente per far questo bisogna già conoscere quelle nozioni di informatica, statistica e matematica di base necessarie per poter pensare di intraprendere questo tipo di carriera. Il data processing , o estrazione di dati, è un metodo costituito da un insieme di tecniche automatiche o semi-automatiche per individuare correlazioni tra più variabili relative ad un singolo target. Con il data processing si estraggono e analizzano dati al fine di fare emergere gli schemi o pattern sottesi che emergono solo dopo un’attenta analisi dei dati stessi.Il data processing è utile soprattutto quando al mare magnum dei dati che circolano sul web si applica l’apprendimento automatico o machine learning. Questo settore dell’IA, l’intelligenza artificiale, si occupa di migliorare le prestazioni di un certo algoritmo nell’identificare pattern non chiaramente rilevabili nei dati disponibili. Il machine learning di solito viene utilizzato dal data scientist in sinergia con il data mining: l’apprendimento automatico costruisce una previsione a partire dallo studio dei dati a disposizione, il data processing invece attua un’analisi esplorativa dei dati per carpirne nuovi e sconosciuti legami e proprietà. Su quali dati lavorano machine learning e data mining? Con i famosi big data, ovviamente. Ovvero un insieme così grande di dati da dover essere trattati con specifiche tecniche di analisi ed estrapolazione unplanned . In questa nostra selezione dei migliori libri per i futuri data scientist troverete i migliori volumi disponibili su data processing , machine learning e big data, aggiornati al 2021. INDICE: Migliori libri sui Big Data Migliori libri sul Machine Learning Migliori libri Data Science Cliccando sulle copertine si accede alle schede complete dei libri su Amazon, con tutti i dettagli e le recensioni dei lettori. Le edizioni qui riportate sono quelle più aggiornate disponibili a maggio 2021. I migliori libri sui Big Data Big Data. La guida completa per il Data Scientist Si è da poco affacciata ed è assai richiesta dal mercato del lavoro la figura professionale del Data Scientist. Lo scienziato dei dati ricopre oggi un ruolo fondamentale nelle aziende in quanto capace di estrapolare dell’enorme mole di informazioni che circolano in rete un insieme di dati utili ad identificare le scelte migliori che i vertici decisionali all’interno della azienda stessa sono chiamati a prendere. Il Data Scientist, infatti, si occupa di filtrare, incrociare e ricavare informazioni utili dalla enorme massa di dati prodotti dal traffico della rete Internet su un certo argomento. Si tratta di lavorare, quindi, con i così detti Big Data. Questo libro si avvale di un team di esperti e docenti universitari che offrono i loro contributi su ognuna delle diverse aree di competenza del Data Scientist. Vengono quindi trattati nel testo elementi di statistica e matematica, calcolo delle probabilità, digital processing, data processing , management , data analysis, data conditioning, web semantic, management team analyst, business intelligence, open source intelligence, privacy e sicurezza dei dati e dei sistemi, tecniche di presentazione e comunicazione aziendale. Sfrutta del nostro sconto momentaneo per acquistare il libro Big Data Analytics. Analizzare e interpretare dati con il machine learning I Big Data sono una realtà e la professionalità del data scientist è tanto ambita quanto rara sul mercato del lavoro. All’interno delle aziende, infatti, gli investimenti si concentrano sempre più sull’analisi dei dati, con lo scopo di prendere decisioni efficaci e migliorare prodotti, servizi e vendite. Questo manuale presenta in modo semplice e concreto i Big Data a chi non ha particolare esperienza ma vuole passare velocemente dalla teoria alla pratica. Per questo viene introdotto KNIME, uno strumento open source e gratuito dotato di un’interfaccia grafica che ne semplifica l’utilizzo e permette anche a chi non scrive codice di sfruttare i principali algoritmi di machine learning. Dopo aver definito cosa sono – e non sono – i Big Data, attraverso esempi pratici e tutorial viene spiegato come costruire cluster per organizzare dati e come creare modelli di predizione. Infine vengono introdotti argomenti più avanzati come il riconoscimento e l’analisi del linguaggio umano, e l’estensione delle funzionalità di KNIME con R e Python. Una guida per manager, professionisti e studenti, ma più in generale per chiunque voglia iniziare a lavorare con i Big Data apprezzandone le opportunità e comprendendone le criticità. Sfrutta del nostro sconto momentaneo per acquistare il libro Big data. Architettura, tecnologie e metodi per l’utilizzo di grandi basi di dati Ogni giorno nel mondo vengono creati miliardi di dati digitali. Questa mole di informazione proviene dal notevole incremento di dispositivi che automatizzano numerose operazioni – record delle transazioni di acquisto e segnali GPS dei cellulari, per esempio – e dal Web: foto, video, post, articoli e contenuti digitali generati e diffusi dagli utenti tramite i social media. L’elaborazione di questi “big data” richiede elevate capacità di calcolo, tecnologie e risorse che vanno ben al di là dei sistemi convenzionali di gestione e immagazzinamento dei dati. Il testo esplora il mondo dei “grandi dati” e ne offre una descrizione e classificazione, presentando le opportunità che possono derivare dal loro utilizzo. Descrive le soluzioni software e hardware dedicate, riservando ampio spazio alle implementazioni Open Source e alle principali offerte cloud. Si propone dunque come una guida approfondita agli strumenti e alle tecnologie che permettono l’analisi e la gestione di grandi quantità di dati. Il volume è dedicato a chi, in università e in azienda (database administrator, IT manager, professionisti di Business Intelligence) intende approfondire le tematiche relative ai big data. È, inoltre, un valido supporto per il management aziendale per comprendere come ottenere informazioni utilizzabili nei processi decisionali. Sfrutta del nostro sconto momentaneo per acquistare il libro Big data marketing. Creare valore nella platform economy con dati, intelligenza artificiale e IoT Il big data marketing non è solo l’applicazione al marketing tradizionale di strumenti di analisi innovativi, bensì un modo nuovo e diverso di fare marketing e business. Oggi è fondamentale spostare l’attenzione su come i big data stanno trasformando i processi di marketing e su come la conoscenza di questi cambiamenti può aiutare a migliorare le attività di marketing e di business più in generale. Questo volume è un’introduzione critica alle pratiche di big data marketing, anche nella vasta area delle big data analytics. La descrizione delle nuove tecnologie e dei nuovi approcci (dall’lnternet of Things all’intelligenza artificiale, dal data mining al machine learning) è sviluppata sia su un piano teorico sia sulla base di specifici casi aziendali, ed è posta costantemente in relazione con i cambiamenti strategici in atto, nell’intento di supportare i manager nel decision making quotidiano in azienda. L’obiettivo è non solo offrire un quadro di ciò che è possibile fare con i big data ma, soprattutto, spingere il lettore a riflettere sul tema, e quindi ad affrontare anche il dark side della società e dell’economia dei big data. Sfrutta del nostro sconto momentaneo per acquistare il libro L’analisi dei big data con Python. Le migliori tecniche per aggregare i dati Il linguaggio di programmazione Python è molto utilizzato come strumento software per l’analisi dei Big Data in ambito aziendale e non solo. Questo testo, scritto da specialisti, mostra diversi tool e tecniche per gestire i dati provenienti da varie fonti e database allo scopo di renderli fruibili per successive analisi statistiche e computazionali. I capitoli sono brevi, centrati su ogni singola tecnica operativa e sempre conclusi con esercizi e codici di esempio. Oltre a Python vengono quindi descritti una serie di tool e strumenti specifici, perlopiù open source, che supportano il lavoro di sviluppo del software. Imparerete a: utilizzare Python per leggere e trasformare i dati in diversi formati; utilizzare strumenti avanzati come Jupiter, Spark, Parquet, Pandas e Hadoop; generare statistiche e metriche di base utilizzando i dati su disco; svolgere elaborazioni distribuite su cluster; convertire dati da varie fonti in formati di archiviazione o query; preparare i dati per analisi statistiche, visualizzazioni e machine learning; presentare i dati sotto forma di grafici efficaci. Sfrutta del nostro sconto momentaneo per acquistare il libro Recent Trends in Big Data Analytics for Internet of Things offre una panoramica completa di tutti gli aspetti dell'analisi dei big data nei sistemi Internet of Things (IoT). Il libro include discussioni sulle tecnologie abilitanti dell'analisi dei dati IoT, i tipi di analisi dei dati IoT, le sfide nell'analisi dei dati IoT, la domanda di analisi dei dati IoT, piattaforme informatiche, strumenti analitici, privacy e sicurezza. Gli illustri redattori hanno incluso risorse che affrontano tecniche chiave nell'analisi dei dati IoT. Il libro dimostra come selezionare le tecniche appropriate per portare alla luce preziose informazioni dai dati IoT e offre nuovi progetti per i sistemi IoT. Con una costante attenzione alle strategie pratiche con applicazioni concrete per analisti di dati e professionisti dell'IoT, Big Data Analytics per Internet of Things offre anche ai lettori: Un'introduzione completa all'Internet delle cose, comprese le architetture IoT, le tecnologie abilitanti e le applicazioni Un'esplorazione dell'intersezione tra Internet of Things e Big Data, incluso l'IoT come fonte di Big Data, le caratteristiche uniche dei dati IoT, ecc. Una discussione sull'analisi dei dati IoT, inclusi i requisiti di analisi dei dati dei dati IoT e i tipi di analisi dell'IoT, inclusi l'analisi predittiva, descrittiva e prescrittiva Un trattamento delle tecniche di apprendimento automatico per l'analisi dei dati IoT Perfetto per professionisti, operatori del settore e ricercatori impegnati nell'analisi dei big data relativi ai sistemi IoT, Big Data Analytics per Internet of Things guadagnerà anche un posto nelle librerie di progettisti e produttori IoT interessati a facilitare l'implementazione efficiente delle strategie di analisi dei dati. Sfrutta del nostro sconto momentaneo per acquistare il libro Handbook of Research for Big Data: Concepts and Techniques I dati sono diventati una risorsa preziosa come mai prima d'ora. Oggi la sfida non è una carenza di dati, ma la necessità di tecniche e metodi sufficientemente in grado di raccogliere informazioni preziose dalla massa in rapida evoluzione dei Big Data. Questo nuovo volume, Handbook of Research for Big Data: Concepts and Techniques, aiuta a raccogliere la sfida della gestione e dell'utilizzo dei Big Data presentando nuove ricerche su vari progressi tecnologici nel campo. I capitoli del libro presentano informazioni su importanti applicazioni, concetti e tecnologie per i Big Data nell'attuale scenario industriale e di mercato. Esamina i problemi del dominio di ricerca e le loro soluzioni, nonché vari casi di studio di ricerca, piani di ricerca, metodologie e set di dati correlati per le quattro V: volume, velocità, varietà e veridicità. I capitoli trattano i Big Data in materia di governance, trasporti, gestione dei disastri, epidemiologia e altro ancora. Il libro tratta la progettazione e l'analisi del calcolo riconfigurabile di SoC per IoT, tecniche e applicazioni di data mining, l'uso dell'elaborazione del linguaggio naturale nei big data e altro ancora. Il volume è una risorsa preziosa per i ricercatori sia del mondo accademico che dell'industria per conoscere e migliorare le proprie conoscenze e competenze nell'ampia area del calcolo e delle applicazioni dei big data. Sfrutta del nostro sconto momentaneo per acquistare il libro Migliori Libri sul Data mining e machine learning Machine learning con Python. Costruire algoritmi per generare conoscenza Elaborare il magma di dati oggi disponibile è una sfida affascinante e imprescindibile per il mondo contemporaneo dove la conoscenza e l’informazione sono il primo valore. Il machine learning è la risposta: grazie ai suoi algoritmi è possibile creare macchine in grado apprendere in maniera automatica e rispondere alle domande chiave per il successo. Questo libro accompagna nel mondo del machine learning e mostra come Python sia il linguaggio di programmazione ideale per costruire algoritmi sofisticati in grado di interrogare i dati nel modo migliore e recuperare preziosi insight. Viene spiegato l’utilizzo di librerie Python dedicate – tra cui scikit-learn, Theano e Keras – applicate in ambiti come la selezione e la compressione dei dati, l’analisi del linguaggio naturale, l’elaborazione di previsioni, il riconoscimento delle immagini. L’approccio didattico è pragmatico: tutti i concetti sono accompagnati da esempi pratici di codice. La lettura è consigliata a chi ha già alle spalle qualche studio teorico nel campo del machine learning oltre a una buona conoscenza di programmazione in Python. Sfrutta del nostro sconto momentaneo per acquistare il libro Data Mining: Principali tecniche statistiche Questa breve opera non può e non vuol essere un manuale completo ed esauriente di quello che si chiama Data Mining. L’intenzione è di offrire al principiante una maniera di comprendere che cosa sia il cosiddetto Data Mining e parallelamente i rudimenti dell’argomento. Vale la pena di notare che oggidì vengono automaticamente raccolte grandi masse di dati: si entra nel tempo dei Big Data ed allora il Data Mining assume un’importanza crescente e viene usato sempre di più nel mondo produttivo. Si è cercato di fare comprendere la logica dei diversi metodi: coloro che vorranno operare nel settore potranno così approfondire le tecniche ed ogni formalismo su altri testi meno introduttivi. Dopo una breve panoramica, vengono approfondite le tecniche statistiche di data mining, le applicazioni nel campo del marketing e infine il web mining con l’approfondimento di un case study. L’accento viene posto sull’aspetto statistico del Data Mining e sul senso statistico dei metodi e delle tecniche di questo campo di studio. Sfrutta del nostro sconto momentaneo per acquistare il libro Appunti sparsi di Machine Learning: Un vademecum per comprendere uno degli argomenti più affascinanti dei nostri giorni Confrontandomi quotidianamente con tematiche tecnologiche legate all’analisi e alla comprensione dei dati, è sorta in me quasi una necessità impellente di provare a raccogliere e organizzare appunti di varia natura sul tema del machine learning che mai come in questi anni sembra essere decollato come “strumento” in grado di aumentare ulteriormente la competitività aziendale. Sfrutta del nostro sconto momentaneo per acquistare il libro Algoritmo di estrazione dati per prevedere il lupus eritematoso sistemico (SLE) L’estrazione dei dati viene utilizzata dai medici per identificare trattamenti efficaci e buone pratiche, e i pazienti ricevono servizi sanitari migliori e più convenienti. Le enormi quantità di informazioni generate dalle transazioni sanitarie sono troppo avanzate e voluminose, che sono complesse per essere elaborate e analizzate in modo tradizionale. L’obiettivo principale del libro si concentra sullo sviluppo di un algoritmo di cluster BasedClassification (OCBC) ottimale, un moderno algoritmo di data mining per prevedere la malattia sistemica del lupus eritematoso. L’accuratezza dell’algoritmo è dimostrata dalla costruzione dello strumento di previsione del Lupus-Eritematoso Sistemico per predire la malattia nella fase iniziale della Classificazione basata su Cluster utilizzando un algoritmo ottimale (OCBC). Gli algoritmi ID3, C4.5, J48 sono selezionati come algoritmi di base per confrontare l’accuratezza, la specificità, la sensibilità, la precisione, il richiamo e la misura F, le statistiche Kappa, ecc. con l’algoritmo OCBC proposto. Sono stati condotti molti tipi di ricerche per confrontare l’accuratezza dell’algoritmo OCBC sullo stesso set di dati e il risultato mostra che l’OCBC supera l’ID3 J48 e gli algoritmi. La precisione dell’OCBC migliora ulteriormente dopo il clustering il set di dati. Sfrutta del nostro sconto momentaneo per acquistare il libro Machine Learning Workflow: Dal prototipo alla produzione Il volume è idealmente suddiviso in 2 due parti principali: la prima, che copre l’80% del libro, analizza con un buon livello di dettaglio lo schema workflow proposto riferibile alla metodologia CRISP-DM che utilizzerò nel volume, benché “aggiornata” per rispondere alle specifiche esigenze legate al mondo Big Data e ML (in alcuni punti saranno presenti semplici parti di codice in linguaggio Python, strumentali all’esemplificazione di alcune parti) e introduce anche il CD4ML legato a tematiche ML in ambito DevOps e caratterizzato da un approccio più moderno. La seconda riporta due casi reali ripercorrendo l’intero workflow e mostrando come, nei casi di specie, problemi e criticità siano state affrontate e risolte, anche in questa parte non mancheranno alcuni esempi di codice Python e il riferimento a specifiche architetture e infrastrutture, ove necessario saranno esplicitati alcuni temi laterali ma rilevanti per la comprensione dei casi. Sfrutta del nostro sconto momentaneo per acquistare il libro Migliori libri per i Data scientist, la nuova professione Data scientist. Tra competitività e innovazione Di fronte all’affermarsi della Algorithm Economy e dei Big Data, per le organizzazioni diventa sempre più necessaria una figura professionale capace di dialogare e collaborare con COBOT e macchine intelligenti: il Data Scientist. Rispondendo a questa esigenza, il volume fornisce indicazioni pratiche sia a coloro che vogliono intraprendere e sviluppare ai massimi livelli la carriera di Data Scientist sia alle aziende che desiderano accogliere questa figura per migliorare capacità decisionale e competitività. Vengono approfonditi i seguenti aspetti: background elettivo del Data Scientist; skill e competenze; ruoli e attività; sviluppo di carriera; evoluzione della professione; strumenti a disposizione; nuove frontiere che la tecnologia impone all’attenzione dei decisori. La Data Science, ovvero la Scienza dei dati, è nata nel 1974 ad opera dell’informatico danese Peter Naur intendendo con essa quella disciplina che si occupa di gestire i dati a disposizione, per come essi già sono senza però tentare di ricavarne della informazioni utili. Solo dopo con l’arrivo dei big data l’attenzione viene focalizzata sui dati che acquisiscono una rilevanza maggiore: si capisce di fatti quanto valore ai fini del mercato questa enorme quantità di dati possa assumere e si studiano le tecniche adatte a riuscire a ricavare da essi quante più informazioni possibili. Sfrutta del nostro sconto momentaneo per acquistare il libro Data Science con Python: dalle stringhe al machine learning, le tecniche essenziali per lavorare sui dati La data science è una materia in rapida evoluzione le cui applicazioni spaziano in ambiti diversi della nostra vita. Questo libro insegna a trasformare database caotici e dati non strutturati in dataset omogenei e ordinati attraverso l'impiego degli strumenti essenziali del linguaggio Python per il data mining, il machine learning, la network analysis e l'elaborazione del linguaggio naturale. Il lettore impara ad acquisire dati numerici e testuali eterogenei da fonti diverse come semplici file locali, database e il Web. Scopre come ripulirli e normalizzarli. Lavora su basi di dati SQL e NoSQL, applica strumenti per la rappresentazione grafica e scopre i modelli di analisi statistiche e predittive più utilizzati nel campo del machine learning. Una lettura dedicata a studenti e docenti, ai professionisti alle prime armi e agli sviluppatori in cerca di una guida di riferimento. I requisiti fondamentali sono una normale esperienza di programmazione in Python e un ambiente di sviluppo con installata la versione 3.3 (o superiore) del linguaggio oltre ai moduli e alle librerie specifiche indicate nel testo. Sfrutta del nostro sconto momentaneo per acquistare il libro Grazie mille per la lettura, condividi l'articolo.

  • Spiegazione della più semplice rete neurale per principianti (con codice implementazione python)

    Quindi vuoi creare la tua prima rete neurale artificiale, o semplicemente scoprire questo argomento, ma non hai idea da dove cominciare? Segui questa guida rapida per capire tutti i passaggi! Che cos'è una rete neurale artificiale? In base alla natura, le reti neurali sono la solita rappresentazione che facciamo del cervello: neuroni interconnessi ad altri neuroni che formano una rete. Una semplice informazione transita in molte di esse prima di diventare una cosa reale, come “muovi la mano per prendere questa matita”. L'operazione di corrente alternata o mplete rete neurale è semplice: uno immettere variabili come ingressi (ad esempio un'immagine se si suppone che la rete neurale dire cosa è su un'immagine), e dopo alcuni calcoli, si restituisce un'uscita (dopo il primo esempio , dando l'immagine di un gatto dovrebbe restituire la parola "gatto"). Ora, dovresti sapere che le reti neurali artificiali sono solitamente posizionate su colonne, in modo che un neurone della colonna n possa essere connesso solo ai neuroni delle colonne n-1 e n+1. Esistono pochi tipi di reti che utilizzano un'architettura diversa, ma per ora ci concentreremo sulla più semplice. Quindi, possiamo rappresentare una rete neurale artificiale come quella: Figura 1 — Rappresentazione di una rete neurale Le reti neurali di solito possono essere lette da sinistra a destra. Qui, il primo livello è il livello in cui vengono inseriti gli input. Ci sono 2 livelli interni (chiamati livelli nascosti) che fanno alcuni calcoli e un ultimo livello che contiene tutti i possibili output. Non preoccuparti dei "+1" nella parte inferiore di ogni colonna. È qualcosa chiamato "bias" e ne parleremo più avanti. A proposito, il termine "apprendimento profondo" deriva da reti neurali che contengono diversi strati nascosti, chiamate anche "reti neurali profonde". Cosa fa un neurone artificiale? Le operazioni eseguite da ciascun neurone sono piuttosto semplici: Figura 2 — Operazioni eseguite da un neurone Innanzitutto, somma il valore di ogni neurone della colonna precedente a cui è connesso. Nella Figura 2, ci sono 3 input (x1, x2, x3) che arrivano al neurone, quindi 3 neuroni della colonna precedente sono collegati al nostro neurone. Tale valore viene moltiplicato, prima di essere sommato, per un'altra variabile denominata “peso” (w1, w2, w3) che determina la connessione tra i due neuroni. Ogni connessione di neuroni ha il suo peso, e questi sono gli unici valori che verranno modificati durante il processo di apprendimento. Inoltre, al valore totale calcolato può essere aggiunto un valore di bias. Non è un valore proveniente da un neurone specifico e viene scelto prima della fase di apprendimento, ma può essere utile per la rete. Dopo tutte queste somme, il neurone applica infine al valore ottenuto una funzione chiamata “funzione di attivazione”. Figura 3 — Funzione sigmoide La cosiddetta funzione di attivazione serve solitamente a trasformare il valore totale calcolato prima in un numero compreso tra 0 e 1 (fatto ad esempio da una funzione sigmoide mostrata in Figura 3). Altre funzioni esistono e possono cambiare i limiti della nostra funzione, ma mantengono lo stesso scopo di limitare il valore. Questo è tutto ciò che fa un neurone! Prendi tutti i valori dai neuroni connessi moltiplicati per il loro rispettivo peso, aggiungili e applica una funzione di attivazione. Quindi, il neurone è pronto per inviare il suo nuovo valore ad altri neuroni. Dopo che ogni neurone di una colonna lo ha fatto, la rete neurale passa alla colonna successiva. Alla fine, gli ultimi valori ottenuti dovrebbero essere utilizzabili per determinare l'output desiderato. Ora che abbiamo capito cosa fa un neurone, potremmo creare qualsiasi rete desideriamo. Tuttavia, ci sono altre operazioni da implementare per far apprendere una rete neurale. Come apprende una rete neurale artificiale? Sì, creare variabili e farle interagire tra loro è fantastico, ma non è sufficiente per far apprendere da sola l'intera rete neurale. Dobbiamo preparare molti dati da dare alla nostra rete. Questi dati includono gli input e l'output previsto dalla rete neurale. Diamo un'occhiata a come funziona il processo di apprendimento: Prima di tutto, ricorda che quando viene dato un input alla rete neurale, restituisce un output. Al primo tentativo, non riesce ad ottenere da solo l'output giusto (se non per fortuna) ed è per questo che, durante la fase di apprendimento, ogni input viene fornito con la sua etichetta, che spiega quale output dovrebbe aver indovinato la rete neurale. Se la scelta è buona, i parametri attuali vengono mantenuti e viene fornito l'input successivo. Tuttavia, se l'output ottenuto non corrisponde all'etichetta, i pesi vengono modificati. Queste sono le uniche variabili che possono essere modificate durante la fase di apprendimento. Questo processo può essere immaginato come più pulsanti, che vengono trasformati in diverse possibilità ogni volta che un input non viene indovinato correttamente. Per determinare quale peso è meglio modificare, viene fatto un particolare processo, chiamato “backpropagation”. Non ci soffermeremo troppo su questo, poiché la rete neurale che costruiremo non utilizza questo esatto processo, ma consiste nel tornare indietro sulla rete neurale e ispezionare ogni connessione per verificare come si comporterebbe l'output in base a un cambiamento sul peso. Infine c'è un ultimo parametro da conoscere per poter controllare il modo in cui la rete neurale apprende: il “learning rate”. Il nome dice tutto, questo nuovo valore determina su quale velocità apprenderà la rete neurale, o più specificamente come modificherà un peso, a poco a poco o a passi più grandi. 1 è generalmente un buon valore per quel parametro. Perceptron Ok, conosciamo le basi, controlliamo la rete neurale che creeremo. Quello spiegato qui si chiama Perceptron ed è la prima rete neurale mai creata. Consiste di 2 neuroni nella colonna di input e 1 neurone nella colonna di output. Questa configurazione permette di creare un semplice classificatore per distinguere 2 gruppi. Per capire meglio le possibilità e i limiti, vediamo un rapido esempio (che non ha molto interesse se non quello di capire): Supponiamo che tu voglia che la tua rete neurale sia in grado di restituire output secondo le regole dell'"o inclusivo". se A è vero e B è vero, allora A o B è vero. se A è vero e B è falso, allora A o B è vero. se A è falso e B è vero, allora A o B è vero. se A è falso e B è falso, allora A o B è falso. Se sostituisci i "veri" con 1 e i "falsi" con 0 e metti le 4 possibilità come punti con coordinate su un piano, ti rendi conto che i due gruppi finali "falso" e "vero" possono essere separati da un linea singola. Questo è ciò che può fare un Perceptron. Se invece controlliamo il caso dell'“o esclusivo” (in cui il caso “vero o vero” (il punto (1,1)) è falso), allora possiamo vedere che una semplice linea non può separare il due gruppi e un Perceptron non è in grado di affrontare questo problema. Quindi, il Perceptron non è davvero una rete neurale molto efficiente, ma è semplice da creare e può comunque essere utile come classificatore. Creare la nostra semplice rete neurale artificiale Creiamo una rete neurale da zero con Python (3.x nell'esempio sotto). import numpy, random, os lr = 1 #learning rate bias = 1 #value of bias weights = [random.random(),random.random(),random.random()] #pesi generati in una lista (3 pesi in totale per 2 neuroni e il bias) L'inizio del programma definisce solo le librerie ei valori dei parametri, e crea una lista che contiene i valori dei pesi che verranno modificati (quelli sono generati casualmente). def Perceptron(input1, input2, output) : outputP = input1*weights[0]+input2*weights[1]+bias*weights[2] if outputP > 0 : #attivazione della funzione ( Heaviside) outputP = 1 else : outputP = 0 errore = output - outputP weights[0] += errore * input1 * lr weights[1] += errore * input2 * lr weights[2] += errore * bias * lr Qui creiamo una funzione che definisce il lavoro del neurone di uscita. Richiede 3 parametri (i 2 valori dei neuroni e l'output atteso). “outputP” è la variabile corrispondente all'uscita data dal Perceptron. Quindi calcoliamo l'errore, utilizzato per modificare i pesi di ogni connessione al neurone di uscita subito dopo. for i in range(50) : Perceptron(1,1,1) #Vero o vero Perceptron(1,0,1) #Vero o falso Perceptron(0,1,1) #Falso o vero Perceptron(0,0, 0) #Falso o falso Creiamo un loop che fa ripetere alla rete neurale ogni situazione più volte. Questa parte è la fase di apprendimento. Il numero di iterazioni viene scelto in base alla precisione che vogliamo. Tuttavia, tieni presente che troppe iterazioni potrebbero portare la rete a un adattamento eccessivo, il che fa sì che si concentri troppo sugli esempi trattati, quindi non potrebbe ottenere un output corretto nel caso in cui non abbia visto durante la sua fase di apprendimento. Tuttavia, il nostro caso qui è un po' speciale, poiché ci sono solo 4 possibilità e le diamo tutte alla rete neurale durante la sua fase di apprendimento. Si suppone che un Perceptron dia un output corretto senza aver mai visto il caso che sta trattando. x = int(input()) y = int(input()) outputP = x*weights[0] + y*weights[1] + bias*weights[2] if outputP > 0 : #attivazione della funzione outputP = 1 else : outputP = 0 print (x, "o", y, "è : ", outputP) Infine, possiamo chiedere all'utente di inserire lui stesso i valori per verificare se il Perceptron funziona. Questa è la fase di test. La funzione di attivazione Heaviside è interessante da usare in questo caso, poiché riporta tutti i valori esattamente a 0 o 1, poiché stiamo cercando un risultato falso o vero. Potremmo provare con una funzione sigmoide e ottenere un numero decimale compreso tra 0 e 1, normalmente molto vicino a uno di quei limiti. outputP = 1/(1+numpy.exp(-outputP)) #funzione sigmoide Potremmo anche salvare i pesi che la rete neurale ha appena calcolato in un file, per utilizzarlo in seguito senza fare un'altra fase di apprendimento. È fatto per un progetto molto più grande, in cui quella fase può durare giorni o settimane. Risultato Finale Scarica gratuitamente il notebook del progetto *Per aprirlo usa Jupyter o Google Colab Questo è tutto ! Hai creato la tua rete neurale completa. L'hai creata, fatta imparare e verificato le sue capacità. Il tuo Perceptron ora può essere modificato per usarlo su un altro problema. Basta cambiare i punti dati durante le iterazioni, regolare il numero di loop se il tuo caso è più complesso e lasciare che il tuo Perceptron esegua la classificazione. Vuoi elencare 2 tipi di alberi nella foresta più vicina ed essere in grado di determinare se un nuovo albero è di tipo A o B? Scegli 2 caratteristiche che possono dissociare entrambi i tipi (ad esempio altezza e larghezza) e crea alcuni punti per il Perceptron da posizionare sul piano. Lascia che venga dedotto un modo per separare i 2 gruppi e inserisci il punto di qualsiasi nuovo albero per sapere di quale tipo si tratta. In seguito potresti espandere le tue conoscenze e vedere reti neurali più grandi e più profonde, che sono molto potenti! Ci sono molti aspetti che non abbiamo trattato, o abbastanza per farti ottenere le nozioni di base, quindi non esitare ad andare oltre. Mi piacerebbe scrivere di reti neurali più complesse, quindi resta sintonizzato! Grazie per aver letto l'articolo ! Spero che questa piccola guida sia stata utile, se avete domande e/o suggerimenti fatemelo sapere nei commenti. Sei Interessato ad una lettura sull'intelligenza artificiale ?

  • Come hackerare una rete neurale usando il metodo Fast Gradient Sign ? Con esempio pratico in python

    Molti modelli di apprendimento automatico , comprese le reti neurali, classificano costantemente in modo errato gli esempi contraddittori. Gli esempi contraddittori non sono altro che input specializzati creati per confondere le reti neurali, con conseguente errata classificazione del risultato. Questi famigerati input sono quasi gli stessi dell'immagine originale per gli occhi umani, ma fanno sì che una rete neurale non riesca a identificare il contenuto dell'immagine. Tali input si sono formati applicando una perturbazione piccola ma intenzionalmente peggiore all'esempio dal set di dati in modo tale che l'input perturbato risulti nel modello che fornisce una risposta errata anch'essa con elevata confidenza. I classificatori basati su moderne tecniche di apprendimento automatico che hanno ottenuto prestazioni più elevate sui dati di test non stanno imparando il vero concetto sottostante che determina la correttezza delle etichette di output. Invece, questi algoritmi sono impressionanti sui dati presenti in natura, ma essere esposti a dati falsi o temperati dà un'alta probabilità su altre etichette. Ciò è particolarmente deludente perché un approccio popolare nella visione artificiale consiste nell'utilizzare le caratteristiche della rete convoluzionale come spazio in cui la distanza euclidea si avvicina alla distanza percettiva. Tuttavia, questa somiglianza è imperfetta se le immagini con distanze percettive incommensurabilmente piccole corrispondono a diverse classi di rappresentazione della rete. Esistono diversi tipi di attacchi, ma l'attenzione si concentra sull'attacco Fast Gradient Sign Method, che è l'attacco whitebox. Gli attacchi Whitebox sono quelli in cui gli hacker o gli aggressori hanno accesso completo al modello attaccato. Fonte: originale L'esempio sopra è l'esempio più comune utilizzato per spiegare il metodo; qui, inizialmente, il modello prevede l'immagine come un panda con discreta sicurezza, ora gli aggressori hanno introdotto un'immagine perturbata rispetto a quella originale, i cui risultati del modello lo classificano erroneamente come un gibbone che ha una confidenza troppo alta. Il metodo utilizzato per introdurre il disturbo è FGSM e discuteremo di questo metodo. Come funziona il metodo Fast Gradient Sign? Il FGSM fa pieno uso dei gradienti di una rete neurale per costruire un'immagine contraddittoria; calcola i gradienti della funzione di perdita , ad esempio MSE o Cross-entropia, all'immagine di input e quindi usa il segno di quel gradiente per creare una nuova immagine contraddittoria. I gradienti vengono presi rispetto alle immagini di input perché l'obiettivo è creare l'immagine che massimizza la perdita. Questo viene fatto trovando quanto ogni pixel contribuisce al valore di perdita e i metodi aggiungono perturbazioni di conseguenza. Ciò non influirà su alcuna modifica del parametro del modello poiché è già stato addestrato; abbiamo preso solo gli stati del gradiente. In breve, il metodo funziona nei seguenti passaggi: Prende un'immagine Prevede l'immagine utilizzando la rete CNN Calcola la perdita sulla previsione rispetto all'etichetta vera Calcola i gradienti della perdita rispetto all'immagine di input Calcola il segno del gradiente L'uso del segno genera una nuova immagine Implementiamo questo metodo. Per spiegare questo metodo, abbiamo utilizzato il codice ufficiale di questo metodo di Tensorflow. Implementazione di FGSM in Python Importa tutte le dipendenze: import tensorflow as tf import matplotlib.pyplot as plt import matplotlib as mpl mpl.rcParams['figure.figsize'] = (7,7) Carica il modello preaddestrato: Qui stiamo usando MobileNetV2 sul set di dati imagenet; pre_trained_model = tf.keras.applications.MobileNetV2( include_top = True, weights = 'imagenet') pre_trained_model.trainable = False decode_prediction = tf.keras.applications.mobilenet_v2.decode_predictions Funzioni di supporto: Di seguito vengono utilizzate due funzioni di supporto per elaborare l'immagine di input in modo che possa essere gestita dal nostro modello e un'altra per estrarre le etichette previste; def process(image): image = tf.cast(image, tf.float32) image = tf.image.resize(image, (224,224)) image = tf.keras.applications.mobilenet_v2.preprocess_input(image) image = image[None, ...] return image def imagenet_label(probs): return decode_prediction(probs, top=1)[0][0] Carica l'immagine: Qui caricheremo l'immagine dal web e verificheremo la previsione; puoi provare l'immagine anche da una macchina locale; image_path = tf.keras.utils.get_file('Labrador_on_Quantock_%282175262184%29.jpg','https://upload.wikimedia.org/wikipedia/commons/thumb/3/34/Labrador_on_Quantock_%282175262184%29.jpg/1200px-Labrador_on_Quantock_%282175262184%29.jpg') image_raw = tf.io.read_file(image_path) image = tf.image.decode_image(image_raw) image_processed = process(image) img_probs = pre_trained_model.predict(image_processed) plt.imshow(image_processed[0] * 0.5 + 0.5) _, image_class, class_confidence = imagenet_label(img_probs) plt.title('{} : {:.2f}% Confidence'.format(image_class, class_confidence*100)) plt.axis('off') plt.show() OUTPUT Crea un'immagine contraddittoria: Come spiegato sopra, qui, estrai il gradiente dell'immagine prevista per creare una perturbazione che verrà utilizzata per distorcere l'immagine originale. loss = tf.keras.losses.CategoricalCrossentropy() def adv_pattern(input_image, input_label): with tf.GradientTape() as tape: tape.watch(input_image) prediction = pre_trained_model(input_image) loss_ = loss(input_label, prediction) gradient = tape.gradient(loss_, input_image) signed_grad = tf.sign(gradient) return signed_grad Vediamo l'immagine contraddittoria generata; labrador_retriever_index = 208 label = tf.one_hot(labrador_retriever_index,img_probs.shape[-1]) label = tf.reshape(label, (1, img_probs.shape[-1])) perturbations = adv_pattern(image_processed, label) plt.imshow(perturbations[0] * 0.5 + 0.5) Confondere la rete: L'utilizzo di più valori di epsilon (un valore per impostare il livello di perturbazione) aiuterà ad osservare l'effetto; in seguito, vedrai mentre aumentiamo i valori, la rete tende a classificare erroneamente rapidamente. def display_images(image, description): _, label, confidence = imagenet_label(pre_trained_model.predict(image)) plt.figure() plt.imshow(image[0]*0.5+0.5) plt.title('{} \n {} : {:.2f}% Confidence'.format(description, label, confidence*100)) plt.axis('off') plt.show() epsilons = [0, 0.01, 0.1, 0.15] descriptions = [('Epsilon = {:0.3f}'.format(eps) if eps else 'Input') for eps in epsilons] for i, eps in enumerate(epsilons): adv_x = image_processed + eps*perturbations adv_x = tf.clip_by_value(adv_x, -1, 1) display_images(adv_x, descriptions[i]) Di seguito sono riportati i risultati per diversi valori di epsilon: Conclusione La difesa più comune consiste nell'addestrare la propria rete ad immagini contraddittorie di ciascuna classe generata utilizzando il modello di destinazione. Ciò migliora la generalizzazione complessiva del modello, ma non fornisce una robustezza significativa al modello. In questo caso, possiamo utilizzare diverse tecniche difensive come il denoiser guidato o le distillazioni difensive per ottenere una vera robustezza.

  • La Digital brain e l’efficiente gestione dei Big Data

    Nell’era dell’Industria 4.0 è sempre più forte la compenetrazione tra mondo fisico e digitale. Una rivoluzione industriale nella quale si assiste, con sempre maggiore frequenza, alla sostituzione, parziale o totale, dei fattori produttivi umani con bot e algoritmi. Macchine in grado di analizzare migliaia di flussi di dati acquisiscono la capacità di imparare continuamente dall’esperienza, in completa autonomia, migliorando costantemente il processo produttivo aziendale. Una trasformazione digitale inarrestabile L’Intelligenza Artificiale, la robotica, i computer quantistici sono alcune delle tecnologie che, affiancate all’IoT, Internet of Things, stanno cambiando la nostra società. A un ritmo vertiginoso vengono realizzati strumenti quali sensori, elettrodomestici e dispositivi di ogni tipo, in grado di raccogliere e scambiare enormi quantità di dati attraverso la rete. Macchine diventate indispensabili che si stanno diffondendo in maniera repentina. In ogni momento, un’enorme mole di informazioni viene raccolta, elaborata e costituisce la linfa vitale del digital brain ovvero del cervello digitale. Software di intelligenza artificiale che sono in grado di riconoscere ed elaborare modelli complessi, di gestire dati, di realizzare analisi e di formulare suggerimenti riguardo le azioni da compiere. Macchine che si stanno rivelando indispensabili nell’aiutare (o nel sostituire) l’uomo nei compiti ripetitivi e di routine, lasciando che si possano dedicare alle attività che sanno svolgere meglio, ovvero sfruttare la propria creatività e sviluppare soluzioni innovative e originali. Un’evoluzione win win Gli esseri umani hanno l’inimitabile (almeno per ora) capacità di creare dal nulla. Partendo da ciò che hanno a disposizione e dalle esigenze che devono soddisfare, riescono a pensare e progettare soluzioni completamente nuove che non hanno mai visto realizzate. Le macchine sono invece le regine incontrastate nelle azioni ripetitive, oltre che nella memorizzazione e nella gestione di grandi quantità di informazioni, attività che portano facilmente gli esseri umani a vivere una condizione di stress. Le persone che precedentemente svolgevano lavori di routine, sfruttando il digital brain, possono vedere aumentare nettamente la loro produttività e avere tempo per dedicarsi alle attività di coordinamento e di controllo degli input e degli output, ovvero di quali dati raccogliere, attraverso quali canali e in che modo elaborarli. Questo coordinamento e questa sinergia tra uomini e macchine offrono un doppio vantaggio perché più l’utente usa gli algoritmi di AI, più i computer diventano intelligenti e sono in grado di modellare autonomamente i dati, comprendendo in maniera sempre più accurata quali flussi di informazioni sono realmente utili. Dimostrata la maggiore efficacia ed efficienza dell’AI Una ricerca di LawGeex del 2018 aveva riunito venti avvocati esperti e li aveva messi a confronto con un software di intelligenza artificiale addestrato a riconoscere la documentazione presente all’interno degli uffici legali. Nel riconoscere la completezza dei contratti, gli avvocati in media hanno raggiunto un tasso di accuratezza dell'85%, contro il punteggio del 95% ottenuto dall’AI. Inoltre l’Intelligenza Artificiale ha ottenuto il 100% di precisione nel riconoscere le varie tipologie di contratto, contro il 97% ottenuto dall’avvocato che ha ottenuto il punteggio più alto. Il dato che stupisce di più è che l'AI ha elaborato i dati in un tempo estremamente breve. Infatti ha ottenuto i risultati descritti completando l'attività in 26 secondi, contro una media degli avvocati pari a 92 minuti. Un grande beneficio sia in termini di efficienza che di efficacia. Il risultato di uno studio complesso ed elaborato Istruire il software di AI a riconoscere le varie tipologie di contratti e documenti legali è il frutto di una serie di processi e di azioni che lavorano in modo combinato: la Computer Vision ha permesso di analizzare i dati non strutturati e insegna alla macchina a riconoscere le varie tipologie di documenti; attraverso la NER (Name Entity Recognition) ogni documento viene automaticamente catalogato in base al contenuto e diventa possibile estrapolare le varie informazioni contenute al loro interno. Inoltre si possono aggregare le informazioni in base ai Key Performance Indicator (Kpi o indicatori di performance) in modo da avere dei valori misurabili e una reportistica precisa e aggiornata; algoritmi avanzati di Sentence Classification, infine, verificano la corrispondenza di ogni documento rispetto ai dettami di legge o ai modelli di riferimento. Seguendo procedure analoghe, in molteplici settori è possibile definire passo dopo passo il funzionamento dei vari processi necessari per conoscere e monitorare determinati obiettivi aziendali. Una volta definito e disegnato il corretto flusso di lavoro si passa alla realizzazione delle reti neurali profonde. È così possibile realizzare modelli auto apprendenti in grado di elaborare le informazioni che si desiderano ottenere e restituire i Kpi che si vogliono misurare. Un aspetto da non sottovalutare è il fatto che questi processi sono in grado di ottimizzarsi senza l’intervento umano. Una tecnologia adatta ai settori più differenti Come abbiamo visto, l'uso dell'intelligenza artificiale può aiutare gli avvocati ad accelerare il loro lavoro e, al tempo stesso, consente di concentrare le risorse umane su attività concettuali. Ad esempio, è possibile dedicarsi all’individuazione di una strategia condivisa o ad instaurare una relazione di fiducia con i propri assistiti. Allo stesso modo, praticamente in tutti i settori produttivi, i robot possono sostituire o coadiuvare l’uomo nelle attività più logoranti e nell’ottimizzare le fasi di lavoro. I digital brain permettono alle aziende di migliorare i processi più ripetitivi e laboriosi, abbattendo tempi e costi di realizzazione, senza contare la notevole riduzione dei rischi aziendali. In questo modo è possibile aumentare la produttività e, potenzialmente, i ricavi. Vuoi conoscere come l’AI può rendere efficiente ed efficace la tua attività?

bottom of page