Risultati Ricerca Intelligenza Artificiale Italia
475 elementi trovati per ""
- Cosa è un Dataset e a cosa serve
Ad oggi sappiamo, e non è un segreto, che l'intero mondo dell'intelligenza artificiale è interamente basato sulla presenza di una grande quantità di dati. Grazie a tutti questi dati possiamo costruire modelli predittivi😲 ma vediamo meglio quale è il punto di partenza per poter arrivare a tali modelli. Prima di iniziare la spiegazione sul dataset ci tengo a farti notare una differenza molto sottile ma molto importante : la differenza tra Informazione e dato Per farti vedere graficamente questa differenza ti invito a pensare alla foto di un cane, ora immagina che questa foto sia la nostra informazione, dalla quale siamo in grado processandola di estrapolare dati utili ad esempio: il colore del pelo, la sua altezza, la sua razza e molte altre caratteristiche. Quindi, facendo un passo indietro, i dati (intesi come bit che viaggiano come schegge dentro il nostro computer) sono la nostra informazione elaborata in modo da poterci permettere di trarre dati importanti che la singola informazione nascondeva. Il dataset è un insieme di dati strutturati ( ad esempio una tabella ) creato per essere letto ed elaborato da un algoritmo. Solitamente questo insieme di dati è molto vasto, alcuni set di dati è stato stimato che non sarebbero leggibili nemmeno in un intera vita umana, come ad esempio ( tutti i post su Instagram/Facebook ) E' possibile creare il proprio dataset ? Quali sono gli strumenti ? Ne esistono di già pronti per esercitarsi ? Certo che è possibile creare il proprio dataset, lo puoi fare sfruttando più tecniche : Creazione Manuale : utilizzando software come Excel è possibile giorno dopo giorno creare delle tabelle contenenti dati strutturati. Creazione Semi-Automatica : utilizzando un motore di database puoi creare la tua base di dati, dove anche qui potrai inserire giorno per giorno nuovi dati Creazione Automatica : sempre con l'utilizzo dei database e un applicazione web è possibile creare moduli di raccolta dati per utenti che quando interagiranno verranno automaticamente salvati. Esistono molti strumenti per la creazione e gestione di dataset e la scelta può variare per migliorarne l'efficienza, te ne cito qui qualcuno sia per utilizzo locale sia in cloud: Excel LibreOffice (foglio di calcolo) Sas Azure Google Cloud Platform e motli altri E' anche possibile trovare molti dataset già pronti e confezionati pronti all'uso. Questi dataset sono di ogni genere e categoria, potrai trovare sicuramente qualcosa che si adatta al tuo progetto. Tra i migliori siti la mia top 3 è : Kaggle Google Amazon Dopo aver visto cosa è un Dataset e a cosa serve vediamo ora una raccolta di Dati Pubblici Italiani pronti per essere scaricati Dataset Agricoltura, pesca, silvicoltura e prodotti alimentari In questo tema rientra tutto ciò che riguarda il settore agricoltura, pesca, politiche forestali e alimentari. Ministero delle politiche agricole alimentari e forestali Pesca Marittima Dataset Istruzione cultura e sport In questo tema rientra tutto ciò che riguarda la cultura, il turismo, l’istruzione e le attività sportive, eventi culturali e locali. Beni culturali: Il MiBACT ha avviato vari progetti di pubblicazione di dataset in formato linked open data e open data: Thesaurus Reperti Archeologici Luoghi della cultura Eventi culturali Anagrafe delle biblioteche italiane Archivi di Stato MIUR - Portale unico dei dati della scuola Ambito Scuola Anagrafiche scuole Studenti Personale scuola Edilizia scolastica Sistema nazionale di valutazione Scuola Secondaria Ambito PON Dataset Ambiente In questo tema rientra tutto ciò che riguarda l’ambiente (rifiuti, consumo del suolo, oceani, ecc.) e il clima/meteo. ISPRA: I Linked Open Data dell’Istituto Superiore per la Protezione e la Ricerca Ambientale. CdS - Il consumo di suolo in Italia MAIS - Mosaicature Nazionali ISPRA pericolosità frane alluvioni ReNDiS - Il Repertorio Nazionale degli interventi per la Difesa del Suolo RMN - La Rete Mareografica Nazionale RON - Rete Ondametrica Nazionale Dataset Salute In questo tema rientra tutto ciò che concerne le attività sulla salute e tutto ciò che riguarda gli animali. INAIL - Infortuni: Sono pubblicati dati "elementari", per singolo infortunio. INAIL - Malattie Professionali: Sono pubblicati dati "elementari", per singolo caso di malattia professionale. FARMACIE: Elenco delle farmacie italiane Dispositivi Medici: Elenco aggiornato con cadenza settimanale dei dispositivi medici registrati presso la banca dati e il Repertorio del Ministero della Salute. Agenzia Italiana del Farmaco (AIFA): diversi dataset con info sui farmaci Vaccini anti COVID-19: il repository contiene i dati in formato aperto relativi ai vaccini anti COVID-19 Dataset Giustizia, sistema giuridico e sicurezza pubblica In questo tema rientra tutto ciò che riguarda le frodi, i crimini, la giustizia, le norme. Rientra anche tutto ciò che riguarda la difesa e gli aspetti legati alle attività del ministero dell’interno. Elezioni: Ministero dell'Interno - Dip. Affari interni e territoriali/Dati Elettoriali. Dataset Regioni e città In questo tema rientra tutto ciò che riguarda le strade urbane e i numeri civici. Il tema ha una forte sovrapposizione con ambiente perché potrebbe anche contenere tutto ciò che concerne la geografia del territorio (e.g., montagne, laghi, fiumi, ecc.). Estratti OpenStreetMap: In questo sito web sono a disposizione per il download libero e gratuito estratti del database OpenStreetMap ritagliati per Regione e Comune italiani. I dati sono aggiornati quotidianamente per tutti i formati disponibili. Dataset Trasporti ACI - Automobile Club d'Italia: pubblicazioni statistiche relative al fenomeno della motorizzazione nel suo complesso: parco veicoli e tendenze di mercato, incidentalità; archivio annuari sulla circolazione e le tendenze del mercato. Carburanti - Prezzi praticati e anagrafica degli impianti: I dataset, scaricabili in questa sezione in forma attualmente sperimentale, contengono le informazioni relative agli impianti e ai prezzi praticati dei carburanti. Patenti di Guida: Il dataset contiene l'elenco delle patenti di guida attive, ossia delle autorizzazioni amministrative alla guida di autoveicoli e motoveicoli, provenienti dall'archivio nazionale abilitati alla guida su strada gestito dalla Motorizzazione. Parco Circolante dei veicoli: Parco circolante dei veicoli su strada ( categorie Autoveicoli e Motoveicoli ) diviso per regione estratto dall'archivio nazionale dei veicoli gestito dalla Motorizzazione. Dataset Governo e settore pubblico In questo tema rientra tutto ciò che riguarda le politiche di governo, gli affari istituzionali, la trasparenza del settore pubblico (dati relativi ad amministrazione trasparente). Agenzia Demanio: Banca dati degli immobili di proprietà statale. Cantieri Scuole: Fonti dei principali dataset impiegati per la costruzione ed il funzionamento dell'applicazione CantieriScuole.it di #italiasicura.scuole. Banca dati Servizio Contratti Pubblici - SCP - Ministero trasporti: Il Dataset contiene gli avvisi, i bandi e gli esiti di gara in formato aperto raccolti dalla Banca dati SCP - Servizio Contratti Pubblici gestita dalla Direzione Generale per la regolazione e i contratti pubblici del Ministero delle Infrastrutture e Trasporti. Catasto rifiuti: Il Centro Nazionale per il ciclo dei rifiuti di ISPRA effettua annualmente il monitoraggio dei costi sostenuti dai comuni per la gestione dei rifiuti urbani e assimilati. Tali dati sono pubblicati nel Rapporto annuale sui Rifiuti Urbani. MISE: Aiuti di Stato OPENBDAP: Il portale della RGS che mette a disposizione i dati della Finanza Pubblica. OPENCOESIONE: Dati collegati alle politiche di coesione. Progetto menzionato nella sezione dedicata. SIOPE: dati sulle rilevazione telematica degli incassi e dei pagamenti effettuati dai tesorieri di tutte le amministrazioni pubbliche, che nasce dalla collaborazione tra la Ragioneria Generale dello Stato, la Banca d'Italia e l'ISTAT. Per ulteriori informazioni sulla strategia nazionale di open data consulta il portale nazionale dati.gov.it. Dataset Casi d'uso della Pubblica Amministrazione #ItaliaSicura: Presidenza del Consiglio dei Ministri Struttura di missione per il coordinamento e l'impulso nell'attuazione degli interventi di riqualificazione dell'edilizia scolastica. OPENCANTIERI: A che punto di realizzazione è un’opera pubblica. Per quale importo è stata finanziata, quanto sta effettivamente costando, se e perché ritarda, quanti giorni di lavoro vi sono stati effettivamente dedicati. OPENCIVITAS: Il Portale di accesso alle informazioni degli Enti Locali, un’iniziativa di trasparenza promossa dal Dipartimento delle Finanze e dalla SOSE. Conosci, confronta, valuta gli Enti Locali. OPENCUP: Open CUP mette a disposizione di tutti - cittadini, istituzioni ed altri enti - i dati, in formato aperto, sulle decisioni di investimento pubblico finanziate con fondi pubblici nazionali, comunitari o regionali o con risorse private registrate con il Codice Unico di Progetto. Open RE.G.I.O: Agenzia Nazionale per l'amministrazione e la destinazione dei beni sequestrati e confiscati alla criminalità organizzata. OPENTRASPORTI: Una piattaforma per la raccolta dati e l’offerta di servizi digitali a supporto del trasporto, abilitando la filiera co-modale integrata dalla pianificazione del viaggio fino alle destinazioni finali, con una ricaduta positiva non solo nel settore dei trasporti, ma anche sul sistema Italia nel suo complesso (turismo, cultura, servizi diversi). L’obiettivo è quello di creare un hub nazionale dei dati dell’infomobilità per lo sviluppo di servizi avanzati al viaggiatore. OPENDEMANIO: Iniziativa di open government sulle informazioni gestite dall’Agenzia del Demanio. Urban Index - Indicatori per le Politiche Urbane: Strumenti utili alla definizione e valutazione delle politiche pubbliche nelle aree urbane e nella convinzione che tali strumenti possano anche rivelarsi utili nella definizione dei contenuti di un’Agenda Urbana Nazionale. Presidenza del Consiglio dei Ministri - Dipartimento per la Programmazione e il Coordinamento della Politica Economica. Letture consigliate per "Cosa è un Dataset e a cosa serve" Come Generare dataset con python e scikit-learn Come Analizzare Un Dataset in Solo 5 Passaggi Dove trovare i migliori Dataset per esercitarsi con il Machine learning Come Creare Un Dataset per il tuo Progetto Di Machine Learning Dataset per Esercitarsi nella Data Science e Data Visualizzation Manipolazione Dati con Python e Pandas Come utilizza Google l'intelligenza artificiale? Prerequisiti per le carriere di Intelligenza Artificiale Grazie per aver letto Cosa è un Dataset e a cosa serve
- Come Iniziare a studiare l'Intelligenza Artificiale, Machine Learning e Deep Learning
L'intelligenza artificiale è una delle scoperte più significative del 21° secolo. Esperti di diversi settori studiano le sue capacità e scoprono nuovi modi della sua applicazione. Definiamo l'IA una tecnologia emergente, tuttavia, gli scienziati hanno lavorato in questa direzione dagli anni '50. All'inizio, l'intelligenza artificiale era lontana dai robot intelligenti che vediamo nei film di fantascienza. Tuttavia, grazie a tecnologie come l'apprendimento automatico e il deep learning, l'IA è diventata una delle aree più promettenti del settore IT. La domanda di sviluppatori di intelligenza artificiale cresce costantemente e alcuni esperti immaginano un futuro in cui i computer sostituiscono gli umani. Anche se è troppo presto per parlare di intelligenza artificiale come di una minaccia per la forza lavoro, i lavoratori moderni trarranno sicuramente beneficio dall'apprendere di più su questa tecnologia perché consentirà loro di prepararsi ai futuri cambiamenti nei loro settori e di familiarizzare con un nuovo , strumento efficace e interessante. Motivi importanti per iniziare a studiare l'AI L'intelligenza artificiale entra nelle nostre vite in molti modi diversi. Ad esempio, utilizziamo assistenti come Amazon Echo, Google Assistant o Siri. Quando giochiamo ai videogiochi, l'IA è sempre il nostro nemico. Tuttavia, non tutti sanno che l'intelligenza artificiale è presente anche in Google Translate e negli strumenti che rilevano i messaggi di spam. La comprensione dell'intelligenza artificiale apre molte opportunità. È sufficiente padroneggiare le basi di questa tecnologia per capire come funzionano gli strumenti semplici. Man mano che impari di più sull'AI, hai la possibilità di diventare uno sviluppatore che creerà applicazioni AI avanzate come Watson di IBM o le auto a guida autonoma. Ci sono infinite possibilità in questo campo. Studiare l'intelligenza artificiale è necessario per una carriera nell'ingegneria del software, nel caso in cui desideri lavorare con interfacce uomo-macchina, reti neurali e intelligenza artificiale quantistica . Aziende come Amazon e Facebook utilizzano l'intelligenza artificiale per formulare raccomandazioni sulla lista della spesa e analizzare i big data. La comprensione dell'intelligenza artificiale è necessaria anche per gli ingegneri hardware che creano assistenti domestici e assistenti di parcheggio. Coloro che vogliono iniziare ad apprendere l'intelligenza artificiale hanno molte opzioni disponibili. Internet, ad esempio, consente a tutti di iscriversi ai corsi online. Alcuni di questi sono rivolti a persone che hanno già un certo livello di conoscenza tecnica e si concentrano sulla programmazione, mentre altri corsi aiuteranno anche coloro che non hanno alcuna esperienza precedente in programmazione e ingegneria. Come iniziare con l'IA Non c'è da stupirsi se si incontrano alcune difficoltà nello studio dell'intelligenza artificiale. Se rimani bloccato, ti suggeriamo di cercare una soluzione su Kaggle o di pubblicare le tue domande su forum specifici, ad esempio il nostro. È anche importante capire su cosa concentrarsi e cosa fare prima. 1. Scegli un argomento che ti interessa Per prima cosa, seleziona un argomento che è davvero interessante per te. Ti aiuterà a rimanere motivato e coinvolto nel processo di apprendimento. Concentrati su un determinato problema e cerca una soluzione, invece di leggere passivamente tutto ciò che puoi trovare su Internet. 2. Trova una soluzione rapida Il punto è trovare una soluzione di base che copra il problema il più possibile. È necessario un algoritmo che elabori i dati in una forma comprensibile per l'apprendimento automatico, addestri un modello semplice, fornisca un risultato e ne valuti le prestazioni. 3. Migliora la tua soluzione semplice Una volta che hai una base semplice, è il momento della creatività. Cerca di migliorare tutti i componenti e valuta le modifiche per determinare se questi miglioramenti valgono il tuo tempo e il tuo impegno. Ad esempio, a volte, il miglioramento della pre-elaborazione e della pulizia dei dati offre un maggiore prestazioni e un miglioramento del un modello di apprendimento stesso. 4. Condividi la tua soluzione Scrivi la tua soluzione e condividila per ottenere un feedback. Non solo riceverai preziosi consigli da altre persone, ma sarà anche il primo portfolio pubblico. Ricorda se non sai dove farlo, puoi sempre usare il nostro forum. 5. Ripetere i passaggi 1-4 per problemi diversi Scegli problemi diversi e segui gli stessi passaggi per ogni attività. Se hai iniziato con dati tabulari, scegli un problema che implica lavorare con immagini o testo non strutturato. È anche importante imparare a formulare correttamente i problemi per l'apprendimento automatico. Gli sviluppatori hanno spesso bisogno di trasformare alcuni obiettivi aziendali astratti in problemi concreti che si adattino alle specifiche dell'apprendimento automatico. 6. Completa una gara di Kaggle Questa competizione ti permette di mettere alla prova le tue abilità, risolvendo gli stessi problemi su cui stanno lavorando molti altri ingegneri. Sarai costretto a provare diversi approcci, scegliendo le soluzioni più efficaci. Questa competizione può anche insegnarti la collaborazione, poiché puoi unirti a una grande comunità e comunicare con le persone sul forum, condividendo le tue idee e imparando dagli altri. 7. Usa l'apprendimento automatico in modo professionale Devi determinare quali sono i tuoi obiettivi di carriera e creare il tuo portfolio. Se non sei pronto per candidarti per lavori di machine learning, cerca altri progetti che renderanno il tuo portfolio impressionante. Unisciti agli hackathon locali e cerca posizioni relative alla analisi dati a servizio della comunità. Conclusione La comprensione di base dell'intelligenza artificiale e dell'apprendimento automatico diventa sempre più preziosa in qualsiasi area aziendale e in qualsiasi professione. Grazie a vari corsi online, oggi non devi andare all'università per imparare questa tecnologia complessa e interessante. Anche se non hai alcuna esperienza precedente in ingegneria, puoi imparare l'intelligenza artificiale da casa e iniziare ad applicare le tue conoscenze nella pratica, creando semplici soluzioni di apprendimento automatico e facendo i primi passi verso la tua nuova professione.
- Come installare Python
Ecco la guida ufficiale per l'installazione del Linguaggio di programmazione Python. Segui le istruzioni ufficiali per scaricare python Letture consigliate per "Come installare Python" L'Intelligenza Artificiale Spiegata Semplice Come elaborare le immagini con NumPy e Python Riconoscimento facciale con Python Filtro collaborativo cos'è e come implementarlo con python Trucchi Python per la data science Intelligenza Artificiale (IA) e Python Come si Relazionano?
- LA CONCENTRAZIONE
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 La cognizione Un altro esempio che vede come protagonista questa volta la volontà attenzionale è quello che mi viene in mente perché da quando sto scrivendo questo testo lo applico tutti i giorni ed è relativo alla concentrazione, cos’è la concentrazione se non l’applicazione cosciente e prolungata della volontà in riferimento ad un dato engramma o ad un concetto? Questo significa mantenere vividamente presente attenzionalemente una certa cosa, ossia applicare la volontà forzando determinate funzioni come può essere l’immaginazione, quindi possiamo dire, rubando un termine alla matematica, che la concentrazione è una potenza della volontà, come se la volontà si riflettesse su se stessa; anche in questo caso siamo nel contesto della sovrapposizione degli effetti poiché dobbiamo considerare il fatto come l’interconnessione di una grandezza con se stessa e potremmo affermare, sempre in un contesto generale che la relazione venga espressa in termini matematici con una formula che rende bene l’idea: ,dove ’c’ sta per “concentrazione”,’v’ sta per “volontà attenzionale” e ’i’ come al solito è “l’informazione”, in altri termini potremmo dire che la concentrazione diviene una potenza ennesima della volontà, premesso però che adesso stiamo rubando di brutto al linguaggio matematico le sue funzioni classiche. Di importante da notare a questo punto c’è che la concentrazione è una funzione mentale particolarmente interessante in quanto possiamo sentire gli effetti che produce, noi tutti sappiamo che quando si è concentrati su un particolare processo o concetto non prestiamo attenzione alla stessa maniera a quello che ci circonda, il nostro interesse è tutto puntato sull’argomento di cui ci occupiamo, pertanto possiamo dire che la concentrazione è quella funzione che favorisce le elaborazioni mentali a cicli chiusi, cioè, inibendo l’ingresso ai segnali del flusso nel nodo di confronto ’N(i)’ del nostro servomeccanismo. Questi tipi di operazioni sono proprio quelli che permettono delle elaborazioni entalpiche sui costrutti, che rendono quindi possibile quell’innalzamento energetico dovuto agli stati attenzionali riposti su ciò che è soggetto costretto del nostro operare. Pensare intensamente ad una cosa, concentrarsi su di questa non è certamente uno dei più facili processi di lavoro che chiediamo al nostro servomeccanismo in quanto dovremmo anche tener presente che l’immaginazione va condizionata dalla volontà a far entrare soltanto le funzioni elementari in ’B(i)’ che desideriamo, forse è proprio uno dei processi più difficili che si possono richiedere alla nostra mente, ma è vero anche che si tratta di far pratica, ci vuole oltre che una buona predisposizione del sistema mentale, che si può ottenere rilassandosi prima, anche un buon allenamento e delle particolari procedure per ottenere degli ottimi gradi di concentrazione, comunque si tratta sempre di far lavorare il nostro cervello a livello di coscienza, attraverso la volontà e quindi con un po’ di pazienza si potrebbero ottenere dei risultati soddisfacenti, ma parleremo più avanti di questi sistemi di “auto-condizionamento”. Arrivati a questo punto abbiamo tutti i mezzi per andare a parlare di INTELLIGENZA nel prossimo Articolo della serie.
- Computer Vision e Deep Learning - Cosa è la Visione Artificiale e cosa centra il Deep Learning
Vorrei iniziare questo articolo andando a vedere la definizione di computer vision Cosa è la Computer Vision : La computer vision (CV) è il campo scientifico che definisce il modo in cui le macchine interpretano il significato di immagini e video. Gli algoritmi di visione artificiale analizzano determinati criteri in immagini e video, quindi applicano interpretazioni a compiti predittivi o decisionali. Oggi, le tecniche di deep learning sono più comunemente utilizzate per la visione artificiale. Questo articolo esplora diversi modi in cui puoi utilizzare il deep learning per la visione artificiale. In particolare, imparerai i vantaggi dell'utilizzo delle reti neurali convoluzionali (CNN), che forniscono un'architettura multistrato che consente alle reti neurali di concentrarsi sulle caratteristiche più rilevanti nell'immagine. In questo articolo imparerai: Cos'è la visione artificiale? Architetture di deep learning per CV Usi del deep learning nella computer vision Che cos'è la visione artificiale o Computer Vision? La computer vision è una sotto-area di machine learning dedicata all'interpretazione e alla comprensione di immagini e video. Viene utilizzato per insegnare ai computer a "vedere" e a utilizzare le informazioni visive per eseguire attività visive che gli esseri umani possono. I modelli di visione artificiale sono progettati per tradurre i dati visivi in base alle caratteristiche e alle informazioni contestuali identificate durante l'addestramento. Ciò consente ai modelli di interpretare immagini e video e applicare tali interpretazioni a compiti predittivi o decisionali. Sebbene entrambi siano correlati ai dati visivi, l'elaborazione delle immagini non è la stessa della visione artificiale. L'elaborazione delle immagini comporta la modifica o il miglioramento delle immagini per produrre un nuovo risultato. Può includere l'ottimizzazione della luminosità o del contrasto, l'aumento della risoluzione, la sfocatura delle informazioni sensibili o il ritaglio. La differenza tra elaborazione delle immagini e visione artificiale è che la prima non richiede necessariamente l'identificazione del contenuto. Reti neurali convoluzionali: le fondamenta della moderna visione artificiale I moderni algoritmi di visione artificiale si basano su reti neurali convoluzionali (CNN), che forniscono un notevole miglioramento delle prestazioni rispetto ai tradizionali algoritmi di elaborazione delle immagini. Le CNN sono reti neurali con un'architettura multilivello che viene utilizzata per ridurre gradualmente dati e calcoli al set più pertinente. Questo set viene quindi confrontato con dati noti per identificare o classificare l'input dei dati. Le CNN vengono generalmente utilizzate per attività di visione artificiale, sebbene possano essere eseguite anche analisi del testo e analisi dell'audio. Una delle prime architetture della CNN è stata AlexNet (descritta di seguito), che ha vinto la sfida di riconoscimento visivo di ImageNet nel 2012. Come funzionano le CNN Quando un'immagine viene elaborata da una CNN, ogni colore di base utilizzato nell'immagine (ad es. rosso, verde, blu) viene rappresentato come una matrice di valori. Questi valori vengono valutati e condensati in tensori 3D (nel caso di immagini a colori), che sono raccolte di pile di mappe di caratteristiche legate a una sezione dell'immagine. Questi tensori vengono creati facendo passare l'immagine attraverso una serie di strati convoluzionali e di raggruppamento, che vengono utilizzati per estrarre i dati più rilevanti da un segmento di immagine e condensarli in una matrice più piccola e rappresentativa. Questo processo viene ripetuto numerose volte (a seconda del numero di strati convoluzionali nell'architettura). Le caratteristiche finali estratte dal processo convoluzionale vengono inviate a un livello completamente connesso, che genera previsioni. Architetture di deep learning per la visione artificiale Le prestazioni e l'efficienza di una CNN sono determinate dalla sua architettura. Ciò include la struttura dei livelli, come sono progettati gli elementi e quali elementi sono presenti in ogni livello. Sono state create molte CNN, ma i seguenti sono alcuni dei progetti più efficaci. AlexNet (2012) AlexNet è un'architettura basata sulla precedente architettura LeNet. Comprende cinque strati convoluzionali e tre strati completamente connessi. AlexNet utilizza una struttura a doppia pipeline per consentire l'uso di due GPU durante l'addestramento. La principale differenza tra AlexNet e le architetture precedenti è l'uso di unità lineari rettificate (ReLU) invece delle funzioni di attivazione sigmoide o Tanh utilizzate nelle reti neurali tradizionali. ReLU è più semplice e veloce da calcolare, consentendo ad AlexNet di addestrare i modelli più velocemente. GoogleNet (2014) GoogleNet, noto anche come Inception V1, si basa sull'architettura LeNet. È composto da 22 strati formati da piccoli gruppi di circonvoluzioni, detti “moduli di inizio”. Questi moduli di avvio utilizzano la normalizzazione batch e RMSprop per ridurre il numero di parametri che GoogleNet deve elaborare. RMSprop è un algoritmo che utilizza metodi di tasso di apprendimento adattivo. VGGNet (2014) VGG 16 è un'architettura a 16 livelli (alcune varianti avevano 19 livelli). VGGNet ha livelli convoluzionali, un livello di pool, alcuni livelli convoluzionali in più, un livello di pool, molti altri livelli di conv e così via. VGG si basa sulla nozione di una rete molto più profonda con filtri più piccoli: utilizza convoluzioni 3×3 fino in fondo, che è la dimensione del filtro conv più piccola che esamina solo alcuni dei pixel vicini. Utilizza piccoli filtri a causa di un minor numero di parametri, rendendo possibile l'aggiunta di più livelli. Ha lo stesso campo ricettivo effettivo di uno strato convoluzionale 7×7. ResNet (2015) ResNet, acronimo di Residual Neural Network, è un'architettura progettata per avere un gran numero di livelli: le architetture tipicamente utilizzate vanno da ResNet-18 (con 18 livelli) a ResNet-1202 (con 1202 livelli). Questi livelli sono impostati con gated unità o "salta connessioni" che gli consentono di passare informazioni a livelli convoluzionali successivi. ResNet utilizza anche la normalizzazione batch per migliorare la stabilità della rete. Xception (2016) Xception è un'architettura basata su Inception, che sostituisce i moduli di inizio con circonvoluzioni separabili in profondità (convoluzione in profondità seguita da circonvoluzioni puntuali). Funziona catturando prima le correlazioni tra mappe di funzionalità e poi le correlazioni spaziali. Ciò consente un uso più efficiente dei parametri del modello. ResNeXt-50 (2017) ResNeXt-50 è un'architettura basata su moduli con 32 percorsi paralleli. Utilizza la cardinalità per ridurre gli errori di convalida e rappresenta una semplificazione dei moduli di inizio utilizzati in altre architetture. Usi del deep learning nella visione artificiale Lo sviluppo delle tecnologie di deep learning ha consentito la creazione di modelli di computer vision più accurati e complessi. Con l'aumento di queste tecnologie, l'incorporazione di applicazioni di visione artificiale sta diventando più utile. Di seguito sono riportati alcuni modi in cui il deep learning viene utilizzato per migliorare la visione artificiale. Rilevamento di oggetti e Visione Artificiale Esistono due tipi comuni di rilevamento di oggetti eseguiti tramite tecniche di visione artificiale: Rilevamento di oggetti in due fasi : il primo passaggio richiede una rete di proposte regionali (RPN), che fornisce un numero di regioni candidate che possono contenere oggetti importanti. Il secondo passaggio consiste nel passare le proposte della regione a un'architettura di classificazione neurale, comunemente un algoritmo di raggruppamento gerarchico basato su RCNN o un pool di regioni di interesse (ROI) in Fast RCNN. Questi approcci sono abbastanza precisi, ma possono rallentare molto. Rilevamento di oggetti in un solo passaggio : con la necessità di rilevamento di oggetti in tempo reale, sono emerse architetture di rilevamento di oggetti in un solo passaggio, come YOLO, SSD e RetinaNet. Questi combinano la fase di rilevamento e classificazione, regredendo le previsioni del riquadro di delimitazione. Ogni riquadro di delimitazione è rappresentato con poche coordinate, facilitando la combinazione della fase di rilevamento e classificazione e velocizzando l'elaborazione. Localizzazione e rilevamento di oggetti La localizzazione dell'immagine viene utilizzata per determinare dove si trovano gli oggetti in un'immagine. Una volta identificati, gli oggetti sono contrassegnati da un riquadro di delimitazione. Il rilevamento degli oggetti si estende su questo e classifica gli oggetti identificati. Questo processo si basa su CNN come AlexNet, Fast RCNN e Faster RCNN. La localizzazione e il rilevamento di oggetti possono essere utilizzati per identificare più oggetti in scene complesse. Questo può quindi essere applicato a funzionalità come l'interpretazione di immagini diagnostiche in medicina. Segmentazione semantica La segmentazione semantica, nota anche come segmentazione degli oggetti, è simile al rilevamento degli oggetti tranne per il fatto che si basa sui pixel specifici relativi a un oggetto. Ciò consente di definire più accuratamente gli oggetti immagine e non richiede riquadri di delimitazione. La segmentazione semantica viene spesso eseguita utilizzando reti completamente convoluzionali (FCN) o U-Net. Un uso popolare per la segmentazione semantica è per l'addestramento di veicoli autonomi. Con questo metodo, i ricercatori possono utilizzare immagini di strade o passaggi con confini accuratamente definiti per gli oggetti. Stima della posa La stima della posa è un metodo utilizzato per determinare dove si trovano le articolazioni in un'immagine di una persona o di un oggetto e cosa indica il posizionamento di tali articolazioni. Può essere utilizzato sia con immagini 2D che 3D. L'architettura principale utilizzata per la stima della posa è PoseNet, che si basa sulle CNN. La stima della posa viene utilizzata per determinare dove parti del corpo possono apparire in un'immagine e può essere utilizzata per generare posizioni realistiche o movimenti di figure umane. Spesso, questa funzionalità viene utilizzata per la realtà aumentata, il rispecchiamento dei movimenti con la robotica o l'analisi del cammino. Sei Interessato a sapere qualcosa nello specifico sulla Visione Artificiale ? Scrivi un commento qui sotto !
- 5 settori che l'Intelligenza Artificiale sta rivoluzionando
Il tempo della tanto amata intelligenza artificiale è arrivato e proprio sotto in nostri occhi sta completamente rivoluzionando, proprio come la rivoluzione industriale/agricola, determinati settori del nostro lavoro e vita privata. Naturalmente ci tengo a precisare che non è l'intelligenza artificiale in modo autonomo a rivoluzionare il mondo, possiamo dire che è un ottimo aiuto a favore dell'uomo, grazie al quale stiamo creando un "nuovo mondo", vedremo, con il passare del tempo, quali vantaggi o svantaggi porterà. Allora vediamo quali sono questi SETTORI che l'intelligenza artificiale sta rivoluzionando : I.A. e settore automobilistico I primi passi sulle macchine automatiche/guida autonoma sono stati condotti fin dal 1920 😱. I primi risultati con le vetture "autosufficienti" arrivarono circa 60 anni dopo nel 1980 grazie ad una collaborazione tra un Università Americana e la Mercedes-Benz e al progetto EUREKA nel 1987. Dal 1987 ad oggi, sono stati fatti passi da giganti rispetto alle auto autosufficienti. Per farvi capire meglio a che punto dello sviluppo siamo, vi riporto qui una Tabella la quale divide in 5 livelli i sistemi di guida autonoma presenti ad oggi: Livello 0: In questo livello non è presente alcuna automazione, il guidatore ha il pieno controllo dell macchina Livello 1: piccole automazioni come il controllo velocità e il controllo per colpi di sonno o distrazioni Livello 2: parziale automazione, la macchina è in grado di mantenere la corsia per brevi tratti e di parcheggiare da sola in alcune condizioni Livello 3: automazione, la macchina è in grado di fare brevi tratti in città Livello 4: alta automazione, la macchina è in grado di compiere in modo autonomo brevi tragitti dalla partenza all' arrivo Livello 5: automazione completa, la macchina è in grado di compire qualsiasi tragitto senza alcun intervento umano in qualsiasi condizione ( Non spaventarti qui ancora non ci siamo arrivati 😄 ) In Italia sono presenti e registrate alcune vetture di livello 3 I.A. e Salute & Medicina Come sappiamo questi algoritmi di intelligenza artificiale sono molto "bravi" a classificare e organizzare i dati, in modo tale da poterne successivamente fare predizioni basate su dei modelli. Se ci fermiamo a pensare la Medicina e la Salute dipendono da moltissimi valori, vi faccio un esempio veloce: un medico a due pazienti entrambi con gli stessi sintomi, un paziente ha 20 anni e un altro ne ha 84, per i quali deve assegnargli due piani terapeutici diversi in base a molti fattori, come dicevamo prima, tra i quali età, peso, valori del sangue molto altri. Proprio il campo di applicazione degli algoritmi sopra menzionati ! Un altro nuovo campo della medicina riguarda la generazione di nuovi farmaci grazie a programmi, attualmenti sviluppati in Python, chiamati GANs. I.A. e Finanza La Finanza è un mondo molto sensibile all' avvenimento di queste nuove tecnologie. Per farvi capire meglio vi lascio un link ad un video il quale in 6 minuti fa un esempio su come utilizzando il linguaggio di programmazione python è possibili fare predizioni sui mercati Clicca qui. Come potete vedere anche in questo settore l'AI sta portando grandissimi rivoluzioni e novità. I.A. e Science Gli attuali motori di ricerca semantici sono in grado di leggere l’enorme mole di articoli scientifici generati e portare all’attenzione del ricercatore notizie e ricerche che potrebbero sfuggirgli e persino suggerire spunti di ricerca mettendo in relazioni le evidenze emerse. È una metodologia di ricerca e tool attiva in molti campi, dalla medicina alla matematica. Giovanni Colavizza, data scientist operativo all’Istituto Alan Turing a Londra sull’analisi delle pubblicazioni scientifiche, ha scritto sull’International Journal of Science che gli strumenti di IA sono capaci di estrarre informazioni significative da tali pubblicazioni. L’articolo afferma che un enorme numero di pubblicazioni scientifiche sono disponibili su internet con almeno 1 milione di nuovi lavori pubblicati ogni anno. Dati questi numeri è impossibile per un ricercatore mettere in ordine, leggere e analizzare gli articoli che suggeriscono diverse ipotesi. Il problema può essere risolto, almeno parzialmente, utilizzando strumenti di IA che possono aiutare gli scienziati ad estrarre specifici contenuti mettendoli in ordine di importanza, filtrandoli e raggruppandoli. Un esempio di questa tecnologia è rappresentato da Iris.ai, un sistema che assiste il ricercatore nel processo di mappare e acquisire nuova conoscenza scientifica. I.A. e Marketing Si chiama invece Artificial Intelligence Marketing (AI Marketing) il Marketing che usa l’Intelligenza Artificiale per interagire con i clienti, migliorare la comprensione del mercato e delle persone e suggerire più rapidamente dell’uomo le azioni da intraprendere per affinare le tecniche di persuasione. L’Intelligenza Artificiale nel Marketing che sfrutta le più moderne tecnologie che rientrano nell’ambito dell’AI, come Machine Learning e NLP (Natural Language Processing) , integrate a tecniche matematiche/statistiche (come quelle delle reti bayesiane, modello grafico probabilistico che rappresenta un insieme di variabili con le loro dipendenze condizionali) e di Marketing comportamentale (behavioral targeting). Il tutto con un obiettivo molto chiaro e diretto: migliorare la capacità di persuasione per portare gli utenti a “convertire” la “call to action” aziendale, ossia a compiere un’azione che genera valore per l’utente stesso ma che ha un risvolto positivo anche per l’azienda. Letture consigliate per "5 settori che l'Intelligenza Artificiale sta rivoluzionando" 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
- 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.