top of page

Risultati Ricerca Intelligenza Artificiale Italia

461 risultati trovati per "intelligenza artificiale aziendale"

  • Cos’è un Adversarial Machine Learning Attack o Attacco all'apprendimento automatico

    L'avvento dell'intelligenza artificiale (IA) e del machine learning (ML) ha portato a incredibili progressi Affrontare le Minacce Emergenti nell'Intelligenza Artificiale: Strategie di Difesa contro gli Attacchi Conclusioni Machine Learning, non solo vantaggi Al giorno d’oggi, L’intelligenza artificiale (AI) e il L'Importanza della Consapevolezza sulla Sicurezza dell'IA (Sicurezza nell'intelligenza artificiale) Uno artificiale, contribuendo a proteggere i sistemi e garantire la sicurezza delle operazioni aziendali

  • Apprendimento per rinforzo ( Reinforcement learning )

    supervisionato e non supervisionato dipendono dai dati esistenti raccolti dagli esseri umani e sono limitati all'intelligenza L'apprendimento per rinforzo è più vicino all'intelligenza artificiale generale (AGI), poiché possiede Ma in futuro tutto questo cambierà, combineremo l'apprendimento per rinforzo con visione artificiale,

  • Caratteristiche dei Data Scientists di successo

    Ci abbiamo riflettuto un po' e abbiamo trovato le 5 caratteristiche di quello che crediamo definisca un data scientist di successo. Quali sono alcune delle caratteristiche intrinseche del data scientist di successo? Quelle che accompagnano il data scientist alla professione vera e propria o quelle che possono essere sviluppate dopo aver raggiunto la professione? Ecco le cinque caratteristiche che ci sono venute in mente che aiutano a distinguere il data scientist dalle altre professioni e ti aiutano a definire una carriera di successo. Premettiamo questo facendo notare che tutti i ruoli di data scientist sono diversi, ma hanno tutti alcuni fili di collegamento comuni . Data Scientists di successo 1) Mentalità di analisi predittiva La mentalità dell'analisi predittiva è una delle principali caratteristiche distintive del data scientist, forse più di ogni altra. È l'unica caratteristica distintiva? Certo che no . Avrebbe dovuto essere utilizzato in un diagramma di flusso per separare il data scientist da tutte le altre occupazioni? A posteriori, no, probabilmente no . I data scientist eseguono analisi predittive? Assolutamente SI . Anche i non data scientist? Certo . Non è solo l'applicazione dell'analisi predittiva in situazioni particolari; è una mentalità. E non è solo una mentalità analitica (meno quella predittiva ), ma pensa sempre a come potremmo essere in grado di sfruttare ciò che già sappiamo per scoprire ciò che ancora non sappiamo. Ciò suggerisce che la predizione è parte integrante dell'equazione. I data scientist non hanno solo in mente la previsione, ma, a nostro avviso, lavorare all'interno di questa mentalità è una delle caratteristiche che definiscono il ruolo e che molte altre professioni, legate ai dati o meno, non condividono. Altri che condividono questa caratteristica probabilmente lo collocano più in basso nell'elenco di quelli valutati per la professione in questione. Data Scientists di successo 2) Curiosità Cercare di usare ciò che sappiamo per scoprire ciò che non sappiamo non è abbastanza, ovviamente. I data scientist devono avere una curiosità su di loro che altri ruoli non devono necessariamente avere (nota che non ho detto che altri non hanno assolutamente questa curiosità). La curiosità è quasi il rovescio della medaglia della mentalità dell'analisi predittiva: mentre la mentalità dell'analisi predittiva sta cercando di risolvere X con Y , la curiosità determinerà in primo luogo cosa sia Y. "Come possiamo aumentare le vendite?" "Perché il tasso di abbandono è più alto in alcuni mesi che in altri?" "Perché questo deve essere fatto così ? " "Cosa succede se facciamo da X a Y?" "Come interviene X in quello che succede qui?" "Ci abbiamo provato...?" E così via... Se mentre analizzi i tuoi dati non ti viene spontaneo farti certe domande, molto probabilmente quei dati o quel progetto non ti entusiasmano così tanto. È necessaria una curiosità naturale per essere un utile scienziato dei dati, fine della storia. Se sei il tipo di persona che si sveglia la mattina e passa l'intera giornata senza pensare troppo e senza domandarsi continuamente il perchè di certi eventi, a qualsiasi livello, la scienza dei dati non fa per te. Data Scientists di successo 3) Pensiero sistemico Ecco un pezzo di filosofia che colpisce duramente: il mondo è un luogo complesso. Tutto è connesso in qualche modo, ben oltre l'ovvio, il che porta a strati su strati di complessità del mondo reale. I sistemi complessi interagiscono con altri sistemi complessi per produrre sistemi complessi aggiuntivi propri, e così va fino alla fine dell'universo. Questo gioco di complessità va oltre il semplice riconoscimento del quadro generale: dove si inserisce questo quadro generale nel quadro più ampio, e così via? Ma questo non è solo filosofico. Questa rete infinita di complessità del mondo reale è riconosciuta dai data scientist. Sono interessati a sapere tutto sulle interazioni rilevanti, latenti o meno, mentre affrontano i loro problemi. Cercano elementi noti , incogniti e sconosciuti dipendenti dalla situazione , comprendendo che qualsiasi cambiamento potrebbe avere conseguenze indesiderate altrove. È compito dello scienziato dei dati sapere quanto più possibile sui loro sistemi rilevanti e sfruttare la loro curiosità e la loro mentalità analitica predittiva per tenere conto del maggior numero possibile di operazioni e interazioni di questi sistemi, al fine di mantenerli funzionanti senza intoppi anche quando sono ottimizzato. Se non sei in grado di capire perché nessuna persona è in grado di spiegare completamente come funziona l'economia, la scienza dei dati non fa per te. Data Scientists di successo 4) Creatività Ora siamo arrivati ​​alla nostra caratteristica caratteristica di "pensare fuori dagli schemi". Incoraggiamo tutti a farlo? Certo che lo facciamo. Ma non intendo allo stesso modo qui. Ricorda che i data scientist non lavorano da soli; lavoriamo con tutti i tipi di ruoli diversi e incontriamo tutti i tipi di esperti di domini diversi nei nostri viaggi. Questi esperti di domini hanno modi particolari di guardare ai loro domini particolari, anche quando pensano fuori dagli schemi. In qualità di data scientist, con un insieme unico di abilità e un particolare tipo di mentalità puoi affrontare i problemi dall'esterno vedendo cose che gli esperti di quel dominio non vedono. Puoi essere il nuovo paio di occhi che guarda un problema sotto una nuova luce, a condizione, ovviamente, che tu capisca il problema abbastanza bene. La tua creatività ti aiuterà a evocare nuove idee e prospettive per farlo. Questo non è per sminuire gli esperti di dominio; in effetti, è il contrario. Noi data scientist siamo il loro supporto e, portando un insieme di competenze addestrate a fare ciò che facciamo, siamo (si spera) in grado di portare una nuova prospettiva nel nostro ruolo di supporto per contribuire agli esperti di dominio in grado di eccellere in ciò che fanno . Questa nuova prospettiva sarà guidata dal pensiero creativo del data scientist, una creatività che, se abbinata alla curiosità, porterà a essere in grado di porre domande e cercare risposte. Certo, abbiamo bisogno delle competenze tecniche, statistiche e aggiuntive per poter dare seguito a queste domande, ma queste competenze sono inutili se non abbiamo la creatività per pensare a modi interessanti e non ovvi per poter indagare e infine fornire risposte. Questo è il motivo per cui i data scientist devono essere intrinsecamente creativi. Data Scientists di successo 5) Comunicazione Tutti devono essere in grado di comunicare efficacemente con gli altri, indipendentemente dalla loro posizione nella vita. I data scientist non sono diversi. Ma anche oltre a ciò, i data scientist spesso devono tenersi per mano quando spiegano il loro lavoro ad altre parti interessate che potrebbero non essere completamente immerse nell'Universo dell'Analisi Statistica e della programmazione di Modelli. Un data scientist deve essere in grado di narrare a qualcuno come è arrivato dai dati del punto A a delle risposte per il punto B, anche se quel qualcuno ha poca idea di cosa siano, esattamente, uno di questi punti . In parole povere, lo storytelling è essere in grado di raccontare una narrazione realistica da alcuni dati e dal tuo processo analitico: come siamo passati da questo a questo . Questo non si limita a dichiarare semplicemente i fatti; lo scienziato dei dati deve vedere dove si inserisce lo stakeholder nell'equazione e rendere rilevante il viaggio narrativo, magari con elementi visivi utili o altri oggetti di scena per aiutare a chiudere il proverbiale accordo. Questa narrazione non è come la narrazione di fantasia; è più come "spiegare fantasia" o fornire una spiegazione intuitiva su misura per l'ascoltatore. Non racconteresti una storia di Stephen King a un bambino di cinque anni prima di coricarsi, proprio come non approfondiresti una narrativa secca e prolissa sulle metriche della catena di approvvigionamento a qualcuno che lavora nella ricerca e sviluppo. Sii consapevole del tuo pubblico. Anche questa narrazione non è di natura persuasiva; è esplicativa. Non siamo politici dei dati, siamo scienziati dei dati . Non ne viene mai niente di buono dagli scienziati che travisano le statistiche per piegare gli altri alla loro volontà. Lascia che siano i funzionari eletti. Spero che questo abbia contribuito a dipingere un quadro ricco di quelle che riteniamo essere caratteristiche importanti di un data scientist di successo. Ti auguriamo di riuscire a sviluppare tutte queste skill mentre prosegui nella tua carriera.

  • Apprendimento Automatico e Blockchain tutto quello che devi sapere

    L'Intelligenza Artificiale Spiegata Semplice Migliori IDE Python per il machine learning e data science Trading di dati: le aziende che utilizzano blockchain per il trading di dati in tutto il mondo possono Letture correlate a "Apprendimento Automatico e Blockchain" : Come viene utilizzata l'intelligenza artificiale nel mercato delle crypto Come Utilizzare l' Intelligenza Artificiale nel Settore Finanziario Trading algoritmico e apprendimento automatico con Python Intelligenza Artificiale nelle imprese, come e perchè

  • Scegliere il miglior Algoritmo di Machine Learning per i tuoi dati

    Potremmo buttare fuori alcuni nomi come molti "DataScientist GURU", ma la risposta più intelligente è Regressione Logistica per l'apprendimento automatico Scikit Learn e Python Tutorial Per Creare Modelli di Intelligenza Artificiale Tutorial Pratico Tensorflow , TensorBoard e Python Feature Engineering e Feature Selection

  • Filtro collaborativo cos'è e come implementarlo con python

    Costruire un buon sistema di raccomandazione adatto alle esigenze aziendali è sempre una sfida.

  • Prevedere il prezzo d'affitto di una casa con il Deep Learning e Python

    Il deep learning è una branca dell'intelligenza artificiale che studia l'uso dei computer per imitare il comportamento umano intelligente. Un'applicazione comune dell'intelligenza artificiale è l'uso dell'apprendimento automatico per prevedere

  • Cosa sono le reti neurali convoluzionali CNN? Introduzione alle reti neurali convoluzionali

    Le reti neurali convoluzionali (CNN o ConvNet) sono un tipo di rete neurale artificiale utilizzata per Più strati di neuroni artificiali costituiscono reti neurali convoluzionali . I neuroni artificiali sono funzioni matematiche che calcolano la somma ponderata di vari input e producono Il componente di base delle reti neurali artificiali , il neurone artificiale, ha la struttura seguente

  • Google Gemini 1.5 Pro è pazzesco Cos'è e Come Usarlo - Differenze Tra Gemini1.5 Pro e GPT4

    Introduzione: Nel costante sviluppo dell'intelligenza artificiale, una svolta epocale è stata raggiunta caratteristiche del Gemini 1.5 Pro, delineando come queste innovazioni stiano ridefinendo il panorama dell'intelligenza artificiale.

  • Chatbot una Guida Completa, che cosa sono, come funzionano e come creare il tuo

    Un chatbot è un software di intelligenza artificiale (AI) in grado di simulare una conversazione (o una Chatbot con intelligenza artificiale conversazionale I chatbot conversazionali combinano la potenza dell'apprendimento I chatbot basati sull'intelligenza artificiale aumentano l'efficienza operativa e riducono i costi alle Definisci i tuoi obiettivi aziendali : devi delineare le funzioni aziendali che devono essere automatizzate Eva è il primo chatbot bancario conversazionale abilitato all'intelligenza artificiale dell'India.

  • Come diventare un Data Scientist freelance nel 2023

    ( La mia esperienza da freelance per la maggior parte è stata svolta all'estero ) Di solito sono le aziende di medie e grandi dimensioni che assumono data scientist e queste aziende tendono ad assumere dipendenti Ho lavorato con individui e aziende per raccogliere dati esterni per aiutare con le loro attività di Puoi consultare le aziende e fornire loro consigli in base ai dati che analizzi. Un'altra azienda mi ha assunto a causa di un'analisi che ho pubblicato su linkedin, poiché volevano qualcosa

  • Mito la libreria python per data scientist e data analyst

    Regressione Logistica per l'apprendimento automatico Scikit Learn e Python Tutorial Per Creare Modelli di Intelligenza Artificiale Tutorial Pratico Tensorflow , TensorBoard e Python Feature Engineering e Feature Selection

  • Differenza tra algoritmi e modelli nel Machine Learning

    apprendimento automatico: Regressione lineare Regressione logistica Albero decisionale Rete neurale artificiale interessati all'" apprendimento " eseguito dagli algoritmi di apprendimento automatico nel senso di intelligenza artificiale.

  • Falsi miti sul machine learning

    Non esiste un modo giusto per entrare nell'apprendimento automatico. Impariamo tutti in modi leggermente diversi e abbiamo obiettivi diversi di ciò che vogliamo fare con o per l'apprendimento automatico. Un obiettivo comune è diventare rapidamente produttivi con l'apprendimento automatico. Se questo è il tuo obiettivo, questo post mette in evidenza cinque errori comuni che i programmatori commettono sulla strada per diventare rapidamente professionisti produttivi di machine learning. 1. Il machine learning è cosi potente da sembrare Magia L'apprendimento automatico è solo un altro insieme di tecniche che puoi utilizzare per creare soluzioni a problemi complessi. Poiché è un campo in piena espansione, l'apprendimento automatico viene generalmente comunicato in pubblicazioni accademiche e libri di testo per studenti post-laurea. Questo gli dà l'aspetto che è elitario e impenetrabile. È necessario un cambiamento di mentalità per essere efficaci nell'apprendimento automatico, dalla tecnologia al processo, dalla precisione all'"abbastanza buono", ma lo stesso si potrebbe dire per altri metodi complessi che i programmatori sono interessati ad adottare. 2. Non iniziare scrivendo codice Iniziare con l'apprendimento automatico scrivendo il codice può rendere le cose difficili perché significa che stai risolvendo almeno due problemi anziché uno: come funziona una tecnica in modo da poterla implementare e come applicare la tecnica a un determinato problema. È molto più semplice lavorare su un problema alla volta e sfruttare l'apprendimento automatico, gli ambienti statistici e le librerie di algoritmi per imparare ad applicare una tecnica a un problema. Ciò consente di controllare e mettere a punto una varietà di algoritmi in tempi relativamente brevi e di mettere a punto uno o due che sembrano promettenti piuttosto che investire grandi quantità di tempo nell'interpretazione di documenti di ricerca ambigui contenenti descrizioni di algoritmi. L'implementazione di un algoritmo può essere trattata come un progetto separato da completare in un secondo momento, ad esempio per un esercizio di apprendimento o se il sistema prototipo deve essere messo in funzione. Impara una cosa alla volta, ti consiglio di iniziare con un framework di apprendimento automatico basato su GUI, che tu sia un programmatore o meno. 3. Fare le cose manualmente Un processo circonda l'apprendimento automatico applicato, inclusa la definizione dei problemi, la preparazione dei dati e la presentazione dei risultati, tra le altre attività. Questi processi, insieme al test e alla messa a punto degli algoritmi, possono e devono essere automatizzati. L'automazione è una parte importante dello sviluppo di software moderno per build, test e distribuzione. C'è un grande vantaggio nella preparazione dei dati di script, nel test e nell'ottimizzazione degli algoritmi e nella preparazione dei risultati al fine di ottenere i vantaggi del rigore e della velocità di miglioramento. Ricorda e riutilizza le lezioni apprese nello sviluppo di software professionale. L'impossibilità di iniziare con l'automazione (come Makefiles o un sistema di build simile) è probabilmente dovuto al fatto che molti programmatori arrivano all'apprendimento automatico da libri e corsi che si concentrano meno sulla natura applicata del campo. In effetti, portare l'automazione nell'apprendimento automatico applicato è un'enorme opportunità per i programmatori . 4. Reinventare soluzioni a problemi comuni Centinaia e migliaia di persone hanno probabilmente implementato l'algoritmo che stai implementando prima di te o hanno risolto un tipo di problema simile al problema che stai risolvendo, sfruttando le loro lezioni apprese. Esiste una vasta gamma di conoscenze sulla risoluzione dell'apprendimento automatico applicato. Certo, gran parte di esso potrebbe essere legato a libri e pubblicazioni di ricerca, ma puoi accedervi. Fai i compiti e cerca su Google, Google Libri, Google Scholar e contatta la community di machine learning. Se stai implementando un algoritmo: Devi implementarlo? È possibile riutilizzare un'implementazione di un algoritmo open source esistente in una libreria o in uno strumento? Devi implementare da zero? Puoi rivedere il codice, imparare da o trasferire un'implementazione open source esistente? Devi interpretare la descrizione canonica dell'algoritmo? Ci sono descrizioni di algoritmi in altri libri, articoli, tesi o post di blog che puoi rivedere e da cui puoi imparare? Se stai affrontando un problema: Devi testare tutti gli algoritmi sul problema? Puoi sfruttare studi su questo o simili casi di problema dello stesso tipo generale che suggeriscono algoritmi e classi di algoritmi che funzionano bene? Devi raccogliere i tuoi dati? I loro set di dati o API pubblicamente disponibili che puoi utilizzare direttamente o come proxy per il tuo problema per apprendere rapidamente quali metodi potrebbero funzionare bene? Devi ottimizzare i parametri dell'algoritmo? Sono le euristiche che puoi utilizzare per configurare l'algoritmo presentato in articoli o studi sull'algoritmo? Quale sarebbe la tua strategia in caso di problemi con una libreria di programmazione o un tipo specifico di struttura dati? Usa le stesse tattiche nel campo dell'apprendimento automatico. Contatta la comunità e chiedi risorse che potresti essere in grado di sfruttare per accelerare l'apprendimento e il progresso del tuo progetto. Prendi in considerazione forum e siti di domande e risposte per iniziare e contatta accademici e specialisti come passaggio successivo. 5. Non serve davvero la matematica Non è necessaria la teoria matematica per iniziare, ma la matematica è una parte importante dell'apprendimento automatico. La ragione di ciò è che fornisce forse il modo più efficiente e inequivocabile per descrivere i problemi ei comportamenti dei sistemi. Ignorare i trattamenti matematici degli algoritmi può portare a problemi come avere una comprensione limitata di un metodo o adottare un'interpretazione limitata di un algoritmo. Ad esempio, molti algoritmi di apprendimento automatico hanno un'ottimizzazione al centro che viene aggiornata in modo incrementale. Conoscere la natura dell'ottimizzazione da risolvere (è la funzione convessa) consente di utilizzare algoritmi di ottimizzazione efficienti che sfruttano questa conoscenza. Interiorizzare il trattamento matematico degli algoritmi è lento e viene fornito con padronanza. Soprattutto se stai implementando algoritmi avanzati da zero, inclusi gli algoritmi di ottimizzazione interni, prenditi il ​​tempo necessario per imparare l'algoritmo dal punto di vista matematico. Riepilogo In questo post hai appreso di 5 errori comuni che i programmatori commettono quando iniziano l'apprendimento automatico. Le cinque lezioni sono: Non mettere l'apprendimento automatico su un piedistallo Non scrivere codice di apprendimento automatico per iniziare Non fare le cose manualmente Non reinventare soluzioni a problemi comuni Non ignorare la matematica Condividi l'articolo per supportarci, oppure se pensi di conoscere un altro mito scrivilo nei commenti.

  • Il tuo primo Programma di Deep Learning in Python con Keras Step-By-Step

    In questo articolo andremo a vedere passo passo come creare il tuo primo programma o progetto di deep learning, utilizzando Python e la libreria Keras. Panoramica della guida per la creazione di un programma di apprendimento profondo Non è richiesto molto codice, lo vedremo lentamente in modo che tu sappia come creare i tuoi modelli in futuro. Consigliamo sempre di salvare il post e rileggerlo più volte. I passaggi che vedremo in questo tutorial sono i seguenti: Caricare dati. Definire il modello Keras. Compilare il modello Keras. Allenare il modello Keras. Valutare il modello Keras. Legare tutto insieme. Fare previsioni Questo tutorial Keras ha alcuni requisiti: Se non sai perchè utilizzeremo python, clicca qui Se non hai ancora installato Python, clicca qui Se non sai come scaricare e gestire le librerie, clicca qui Se non sai cosa sia un Dataset, clicca qui Se non sai cosa è un perceptron , clicca qui Sei pronto ? Iniziamo ! Crea un nuovo file chiamato prima_rete_neurale_con_IAITALIA.py e digita o copia e incolla il codice nel file mentre procedi. 1. Carica dati Il primo passo è definire le funzioni e le classi che intendiamo utilizzare in questo tutorial. Useremo la libreria NumPy per caricare il nostro set di dati e useremo due classi della libreria Keras per definire il nostro modello. Le importazioni richieste sono elencate di seguito. # Prima rete neurale con Python e keras from numpy import loadtxt from keras.models import Sequential from keras.layers import Dense Ora possiamo caricare il nostro set di dati. In questo tutorial su Keras, utilizzeremo il set di dati sull'inizio del diabete degli indiani Pima. Questo è un set di dati di machine learning standard dal repository UCI Machine Learning. Descrive i dati delle cartelle cliniche dei pazienti per gli indiani Pima e se hanno avuto un'insorgenza di diabete entro cinque anni. In quanto tale, è un problema di classificazione binaria (inizio del diabete come 1 o non come 0). Tutte le variabili di input che descrivono ciascun paziente sono numeriche. Ciò lo rende facile da usare direttamente con le reti neurali che prevedono valori di input e output numerici e ideali per la nostra prima rete neurale in Keras. Il dataset è disponibile nella sezione progetti, insieme al codice dell'articolo. ma se vuoi scaricarlo singolarmente ecco a te il link Scarica il set di dati e inseriscilo nella tua directory di lavoro locale, nella stessa posizione del tuo file python. Salvalo con il nome del file: pima-indians-diabetes.csv Dai un'occhiata all'interno del file, dovresti vedere righe di dati come le seguenti: 6,148,72,35,0,33.6,0.627,50,1 1,85,66,29,0,26.6,0.351,31,0 8,183,64,0,0,23.3,0.672,32,1 1,89,66,23,94,28.1,0.167,21,0 0,137,40,35,168,43.1,2.288,33,1 Ora possiamo caricare il file come matrice di numeri usando la funzione NumPy loadtxt() . Sono disponibili otto variabili di input e una variabile di output (l'ultima colonna). Impareremo un modello per mappare righe di variabili di input (X) su una variabile di output (y), che spesso riassumiamo come y = f(X) . Le variabili possono essere così riassunte: Variabili di ingresso (X): Numero di volte incinta Concentrazione di glucosio plasmatico a 2 ore in un test di tolleranza al glucosio orale Pressione diastolica (mm Hg) Spessore della piega cutanea del tricipite (mm) Insulina sierica di 2 ore (mu U/ml) Indice di massa corporea (peso in kg/(altezza in m)^2) Funzione genealogica del diabete Età (anni) Variabili di uscita (y): Classe variabile (0 o 1) Una volta che il file CSV è stato caricato in memoria, possiamo dividere le colonne di dati in variabili di input e output. I dati verranno archiviati in un array 2D in cui la prima dimensione è righe e la seconda dimensione è colonne, ad esempio [righe, colonne]. Possiamo dividere l'array in due array selezionando sottoinsiemi di colonne usando l' operatore di NumPy ":" Possiamo selezionare le prime 8 colonne dall'indice 0 all'indice 7 tramite l'espressione 0:8. Possiamo quindi selezionare la colonna di output (la 9a variabile) tramite l'indice 8. ( Perchè ricordiamo che gli indici partono da zero non da 1 ) # Carichiamo il Dataset dataset = loadtxt('pima-indians-diabetes.csv', delimiter=',') # dividiamo le variabili in input (X) e output (y) X = dataset[:,0:8] y = dataset[:,8] Siamo ora pronti per definire il nostro modello di rete neurale. Nota , il set di dati ha 9 colonne e l'intervallo 0:8 selezionerà le colonne da 0 a 7, fermandosi prima dell'indice 8. 2. Definire il modello Keras I modelli in Keras sono definiti come una sequenza di livelli. Creiamo un modello sequenziale e aggiungiamo livelli uno alla volta finché non siamo soddisfatti della nostra architettura di rete. La prima cosa da fare è assicurarsi che il livello di input abbia il giusto numero di funzioni di input. Questo può essere specificato quando si crea il primo livello con l' argomento input_dim e lo si imposta su 8 per le 8 variabili di input. Come facciamo a sapere il numero di strati e i loro tipi? Questa è una domanda molto difficile. In questo esempio, utilizzeremo una struttura di rete completamente connessa con tre livelli. I livelli completamente connessi vengono definiti utilizzando la classe Dense . Possiamo specificare il numero di neuroni o nodi nel livello come primo argomento e specificare la funzione di attivazione utilizzando l' argomento di attivazione . Useremo la funzione di attivazione dell'unità lineare rettificata denominata ReLU sui primi due strati e la funzione Sigmoid nello strato di output. In passato le funzioni di attivazione Sigmoid e Tanh erano preferite per tutti i livelli. Al giorno d'oggi, si ottengono prestazioni migliori utilizzando la funzione di attivazione ReLU. Usiamo un sigmoid sul livello di output per garantire che il nostro output di rete sia compreso tra 0 e 1 e sia facile da mappare su una probabilità di classe 1 o agganciare a una classificazione rigida di una delle classi con una soglia predefinita di 0,5. Possiamo mettere insieme il tutto aggiungendo ogni strato: Il modello prevede righe di dati con 8 variabili (l' argomento input_dim=8 ) Il primo livello nascosto ha 12 nodi e utilizza la funzione di attivazione di relu. Il secondo livello nascosto ha 8 nodi e utilizza la funzione di attivazione relu. Il livello di output ha un nodo e utilizza la funzione di attivazione sigmoidea. # Definiamo il modello di keras model = Sequential() model.add(Dense(12, input_dim=8, activation='relu')) model.add(Dense(8, activation='relu')) model.add(Dense(1, activation='sigmoid')) Nota , la cosa più confusa qui è che la forma dell'input nel modello è definita come un argomento sul primo livello nascosto. Ciò significa che la riga di codice che aggiunge il primo livello Denso sta facendo 2 cose, definendo il livello di input o visibile e il primo livello nascosto. 3. Compila il modello Keras Ora che il modello è definito, possiamo compilarlo . La compilazione del modello utilizza le efficienti librerie numeriche sotto le coperte (i cosiddetti backend) come Theano o TensorFlow. Il backend sceglie automaticamente il modo migliore per rappresentare la rete per l'addestramento e fare previsioni da eseguire sul tuo hardware, come CPU o GPU . Durante la compilazione, è necessario specificare alcune proprietà aggiuntive richieste durante l'addestramento della rete. Ricorda che addestrare una rete significa trovare il miglior set di pesi per mappare gli input sugli output nel nostro set di dati. Dobbiamo specificare la funzione di perdita da utilizzare per valutare un insieme di pesi, l'ottimizzatore viene utilizzato per cercare diversi pesi per la rete ed eventuali metriche facoltative che vorremmo raccogliere e segnalare durante l'allenamento. In questo caso, useremo l'entropia incrociata come argomento di perdita . Questa perdita è per problemi di classificazione binaria ed è definita in Keras come " binary_crossentropy ". Definiremo l' ottimizzatore come l'efficiente algoritmo di discesa del gradiente stocastico “ adam ”. Questa è una versione popolare della discesa in pendenza perché si sintonizza automaticamente e dà buoni risultati in un'ampia gamma di problemi. Infine, poiché si tratta di un problema di classificazione, raccoglieremo e riporteremo l'accuratezza della classificazione, definita tramite l' argomento delle metriche . # compiliamo il modello model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) 4. Alleniamo il modello di deep learning Abbiamo definito il nostro modello e lo abbiamo compilato pronto per un calcolo efficiente. Ora è il momento di eseguire il modello su alcuni dati. Possiamo addestrare o adattare il nostro modello ai nostri dati caricati chiamando la funzione fit() sul modello. L'addestramento avviene in epoche e ogni epoca è suddivisa in lotti. Epoch : un passaggio attraverso tutte le righe nel set di dati di addestramento. batch_size : uno o più campioni considerati dal modello entro un'epoch prima dell'aggiornamento dei pesi. Un'epoch è composta da uno o più lotti in , in base alla batch_size del lotto scelta e il modello è adatto per molte epoch. Il processo di addestramento verrà eseguito per un numero fisso di iterazioni attraverso il set di dati chiamato epochs, che dobbiamo specificare utilizzando l' argomento epochs . Dobbiamo anche impostare il numero di righe del set di dati che vengono considerate prima che i pesi del modello vengano aggiornati all'interno di ogni epoca, chiamata dimensione batch e impostata utilizzando l' argomento batch_size . Per questo problema, eseguiremo un numero limitato di epochh (150) e utilizzeremo una dimensione batch relativamente piccola di 10. Queste configurazioni possono essere scelte sperimentalmente per tentativi ed errori. Vogliamo addestrare il modello a sufficienza in modo che apprenda una buona (o abbastanza buona) mappatura di righe di dati di input alla classificazione di output. Il modello avrà sempre qualche errore, ma la quantità di errore si livellerà dopo un certo punto per una determinata configurazione del modello. Questo si chiama convergenza del modello. # Alleniamo la nostra rete model.fit(X, y, epochs=150, batch_size=10) È qui che avviene il lavoro sulla tua CPU o GPU 5. Valuta il modello Keras Abbiamo addestrato la nostra rete neurale sull'intero set di dati e possiamo valutare le prestazioni della rete sullo stesso set di dati. Questo ci darà solo un'idea di quanto bene abbiamo modellato il set di dati (es. precisione del treno), ma non abbiamo idea di quanto bene l'algoritmo potrebbe funzionare su nuovi dati. Lo abbiamo fatto per semplicità, ma idealmente potresti separare i tuoi dati in set di dati di training e test per il training e la valutazione del tuo modello. Puoi valutare il tuo modello sul tuo set di dati di addestramento usando la funzione Evaluation() sul tuo modello e passargli lo stesso input e output usati per addestrare il modello. Questo genererà una previsione per ogni coppia di input e output e raccoglierà i punteggi, inclusa la perdita media e tutte le metriche che hai configurato, come l'accuratezza. La funzione di evaluate() restituirà un elenco con due valori. Il primo sarà la perdita del modello sul set di dati e il secondo sarà l'accuratezza del modello sul set di dati. Siamo interessati solo a riportare l'accuratezza, quindi ignoreremo il valore della perdita. # Valutiamo le prestazioni della nostra rete _, accuracy = model.evaluate(X, y) print('Accuratezza: %.2f' % (accuracy*100)) 6. Mettiamo tutto insieme Hai appena visto come creare facilmente il tuo primo modello di rete neurale in Keras. Leghiamo tutto insieme in un esempio di codice completo. # la mia prima rete neurale from numpy import loadtxt from keras.models import Sequential from keras.layers import Dense # lCarichiamo il Dataset dataset = loadtxt('pima-indians-diabetes.csv', delimiter=',') # Dividiamo le variabili in input e output X = dataset[:,0:8] y = dataset[:,8] # definiamo il modello model = Sequential() model.add(Dense(12, input_dim=8, activation='relu')) model.add(Dense(8, activation='relu')) model.add(Dense(1, activation='sigmoid')) # Compiliamo il modello model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) # Alleniamo il modello sul dataset model.fit(X, y, epochs=150, batch_size=10) #Vediamo come se la cava _, accuracy = model.evaluate(X, y) print('Accuratezza: %.2f' % (accuracy*100)) Puoi copiare tutto il codice nel tuo file Python e salvarlo come " prima_rete_neurale_con_IAITALIA.py " nella stessa directory del tuo file di dati " pima-indians-diabetes.csv ". È quindi possibile eseguire il file Python come script dalla riga di comando (prompt dei comandi) come segue: python3 prima_rete_neurale_con_IAITALIA.py Eseguendo questo esempio, dovresti vedere un messaggio per ciascuna delle 150 epoche che stampa la perdita e l'accuratezza, seguito dalla valutazione finale del modello addestrato sul set di dati di addestramento. Ci vogliono circa 10 secondi per l'esecuzione sulla mia workstation in esecuzione sulla CPU. Idealmente, vorremmo che la perdita andasse a zero e la precisione andasse a 1,0 (ad es. 100%). Questo non è possibile per nessuno ma per i più banali problemi di apprendimento automatico. Invece, avremo sempre qualche errore nel nostro modello. L'obiettivo è scegliere una configurazione del modello e una configurazione di addestramento che ottengano la perdita più bassa e la massima precisione possibile per un determinato set di dati. 768/768 [==============================] - 0s 63us/step - loss: 0.4817 - acc: 0.7708 Epoch 147/150 768/768 [==============================] - 0s 63us/step - loss: 0.4764 - acc: 0.7747 Epoch 148/150 768/768 [==============================] - 0s 63us/step - loss: 0.4737 - acc: 0.7682 Epoch 149/150 768/768 [==============================] - 0s 64us/step - loss: 0.4730 - acc: 0.7747 Epoch 150/150 768/768 [==============================] - 0s 63us/step - loss: 0.4754 - acc: 0.7799 768/768 [==============================] - 0s 38us/step Accuracy: 76.56 Nota, se provi a eseguire questo esempio in un notebook IPython o Jupyter potresti ricevere un errore. Il motivo sono le barre di avanzamento dell'output durante l'allenamento. Puoi facilmente disattivarli impostando verbose=0 nella chiamata alle funzioni fit() e Evaluation() , ad esempio: # Allenare il modello senza quelle barre di avanzamento fighissime model.fit(X, y, epochs=150, batch_size=10, verbose=0) # evaluate the keras model _, accuracy = model.evaluate(X, y, verbose=0) Nota : i risultati possono variare a causa della natura stocastica dell'algoritmo o della procedura di valutazione, o delle differenze nella precisione numerica. Considera di eseguire l'esempio alcune volte e confrontare il risultato medio. Che punteggio hai ottenuto? Pubblica i tuoi risultati nei commenti qui sotto. Le reti neurali sono un algoritmo stocastico, il che significa che lo stesso algoritmo sugli stessi dati può addestrare un modello diverso con abilità diverse ogni volta che viene eseguito il codice. La varianza nelle prestazioni del modello significa che per ottenere un'approssimazione ragionevole delle prestazioni del modello, potrebbe essere necessario adattarlo più volte e calcolare la media dei punteggi di precisione. Ad esempio, di seguito sono riportati i punteggi di precisione della ripetizione dell'esempio 5 volte: Accuracy: 75.00 Accuracy: 77.73 Accuracy: 77.60 Accuracy: 78.12 Accuracy: 76.17 Possiamo vedere che tutti i punteggi di precisione sono intorno al 77% e la media è del 76,924%. 7. Come Fare previsioni dopo aver allenato il modello La domanda numero uno che ci viene fatta è: Dopo aver addestrato il mio modello, come posso usarlo per fare previsioni su nuovi dati? Ottima domanda. Possiamo adattare l'esempio sopra e usarlo per generare previsioni sul set di dati di addestramento, fingendo che sia un nuovo set di dati che non abbiamo mai visto prima. Fare previsioni è facile come chiamare la funzione predict() sul modello. Stiamo utilizzando una funzione di attivazione sigmoide sul livello di output, quindi le previsioni saranno una probabilità compresa tra 0 e 1. Possiamo facilmente convertirle in una previsione binaria nitida per questa attività di classificazione arrotondandole. Per esempio: # Facciamo previsioni usando il set di dati X predictions = model.predict(X) # round predictions rounded = [round(x[0]) for x in predictions] In alternativa, possiamo convertire la probabilità in 0 o 1 per prevedere direttamente classi nitide, ad esempio: # Creiamo una classe di previsione, che non fa altro di arrotondare a 1 (quindi paziente malato) se la previsione è maggiore allo 0.5 che corrisponde al 50% predictions = (model.predict(X) > 0.5).astype(int) L'esempio completo seguente effettua previsioni per ogni esempio nel set di dati, quindi stampa i dati di input, la classe prevista e la classe prevista per i primi 5 esempi nel set di dati. # la mia prima rete neurale from numpy import loadtxt from keras.models import Sequential from keras.layers import Dense # lCarichiamo il Dataset dataset = loadtxt('pima-indians-diabetes.csv', delimiter=',') # Dividiamo le variabili in input e output X = dataset[:,0:8] y = dataset[:,8] # definiamo il modello model = Sequential() model.add(Dense(12, input_dim=8, activation='relu')) model.add(Dense(8, activation='relu')) model.add(Dense(1, activation='sigmoid')) # Compiliamo il modello model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) # Alleniamo il modello sul dataset model.fit(X, y, epochs=150, batch_size=10) #Vediamo come se la cava _, accuracy = model.evaluate(X, y) print('Accuratezza: %.2f' % (accuracy*100)) # Facciamo un previsione sul set di dati di X predictions = (model.predict(X) > 0.5).astype(int) # Stampiamo le prime 5 for i in range(5): print('%s => %d (expected %d)' % (X[i].tolist(), predictions[i], y[i])) L'esecuzione dell'esempio non mostra la barra di avanzamento come prima poiché abbiamo impostato l'argomento dettagliato su 0. Dopo che il modello è stato adattato, vengono effettuate previsioni per tutti gli esempi nel set di dati e le righe di input e il valore della classe previsto per i primi 5 esempi vengono stampati e confrontati con il valore della classe previsto. Possiamo vedere che la maggior parte delle righe sono previste correttamente. In effetti, ci aspetteremmo che circa il 76,9% delle righe fosse previsto correttamente in base alle prestazioni stimate del modello nella sezione precedente. [6.0, 148.0, 72.0, 35.0, 0.0, 33.6, 0.627, 50.0] => 0 (expected 1) [1.0, 85.0, 66.0, 29.0, 0.0, 26.6, 0.351, 31.0] => 0 (expected 0) [8.0, 183.0, 64.0, 0.0, 0.0, 23.3, 0.672, 32.0] => 1 (expected 1) [1.0, 89.0, 66.0, 23.0, 94.0, 28.1, 0.167, 21.0] => 0 (expected 0) [0.0, 137.0, 40.0, 35.0, 168.0, 43.1, 2.288, 33.0] => 1 (expected 1) Riepilogo tutorial Keras In questo post, hai scoperto come creare il tuo primo modello di rete neurale utilizzando la potente libreria Keras Python per il deep learning. In particolare, hai appreso i sei passaggi chiave nell'utilizzo di Keras per creare una rete neurale o un modello di deep learning, passo dopo passo tra cui: Come caricare i dati. Come definire una rete neurale in Keras. Come compilare un modello Keras utilizzando l'efficiente backend numerico. Come addestrare un modello sui dati. Come valutare un modello sui dati. Come fare previsioni con il modello. Hai domande su Keras o su questo tutorial? Fai la tua domanda nei commenti e faremo del nostro meglio per rispondere. Estensioni del tutorial di Keras Ben fatto, hai sviluppato con successo la tua prima rete neurale utilizzando la libreria di deep learning Keras in Python. Questa sezione fornisce alcune estensioni a questo tutorial che potresti voler esplorare. Accorda il modello. Modificare la configurazione del modello o il processo di addestramento e vedere se è possibile migliorare le prestazioni del modello, ad esempio ottenere una precisione superiore al 76%. Salva il modello . Aggiorna il tutorial per salvare il modello su file, quindi caricalo in un secondo momento e utilizzalo per fare previsioni Set di dati di treno e test separati . Suddividi il set di dati caricato in un treno e un set di test (diviso in base alle righe) e usa un set per addestrare il modello e l'altro per stimare le prestazioni del modello sui nuovi dati. Curve di apprendimento della trama . La funzione fit() restituisce un oggetto cronologia che riassume la perdita e l'accuratezza alla fine di ogni epoca. Crea grafici lineari di questi dati, chiamati curve di apprendimento. Scopri un nuovo set di dati . Aggiorna il tutorial per utilizzare un set di dati tabulare diverso, magari dall'UCI Machine Learning Repository . Grazie per la lettura, qui sotto potrai lasciare commenti o leggere post correlati.

bottom of page