Risultati Ricerca Intelligenza Artificiale Italia
475 elementi trovati per ""
- Come implementare l'algoritmo Perceptron da zero in Python esempio pratico machine learning
L'algoritmo Perceptron è il tipo più semplice di rete neurale artificiale. Se non conosci la storia del Perceptron, Clicca qui. È un modello di un singolo neurone che può essere utilizzato per problemi di classificazione a due classi e fornisce le basi per lo sviluppo successivo di reti molto più grandi. In questo tutorial scoprirai come implementare l'algoritmo Perceptron da zero con Python. Dopo aver completato questo tutorial, saprai: Come addestrare i pesi di rete per il Perceptron. Come fare previsioni con il Perceptron. Come implementare l'algoritmo Perceptron per un problema di classificazione del mondo reale. Adesso vediamo come implementare l'algoritmo di Perceptron da zero in Python. Indice: Descrizione Algoritmo di Perceptron Set di dati del sonar Tutorial con Python Estensioni Conclusioni Descrizione Questa sezione fornisce una breve introduzione all'algoritmo di Perceptron e al dataset del Sonar a cui lo applicheremo in seguito. Algoritmo di Perceptron Il Perceptron si ispira all'elaborazione delle informazioni di una singola cellula neurale chiamata neurone. Un neurone accetta segnali in ingresso tramite i suoi dendriti, che trasmettono il segnale elettrico al corpo cellulare. In modo simile, il Perceptron riceve segnali di input da esempi di dati di allenamento che pesiamo e combinati in un'equazione lineare chiamata attivazione. activation = sum(weight_i * x_i) + bias L'attivazione viene quindi trasformata in un valore di output o previsione utilizzando una funzione di trasferimento, come la funzione di trasferimento a gradini. prediction = 1.0 if activation >= 0.0 else 0.0 In questo modo, il Perceptron è un algoritmo di classificazione per problemi con due classi (0 e 1) in cui è possibile utilizzare un'equazione lineare (simile o iperpiano) per separare le due classi. È strettamente correlato alla regressione lineare e logistica che fanno previsioni in modo simile (ad esempio una somma ponderata di input). I pesi dell'algoritmo Perceptron devono essere stimati dai dati di allenamento utilizzando la discesa del gradiente stocastico. Discesa stocastica del gradiente Gradient Descent è il processo di minimizzazione di una funzione seguendo i gradienti della funzione di costo. Ciò implica conoscere la forma del costo oltre che la derivata in modo che da un dato punto si conosca la pendenza e ci si possa muovere in quella direzione, ad esempio in discesa verso il valore minimo. Nell'apprendimento automatico, possiamo utilizzare una tecnica che valuta e aggiorna i pesi ogni iterazione chiamata discesa del gradiente stocastico per ridurre al minimo l'errore di un modello sui nostri dati di addestramento. Il modo in cui funziona questo algoritmo di ottimizzazione è che ogni istanza di addestramento viene mostrata al modello una alla volta. Il modello effettua una previsione per un'istanza di addestramento, l'errore viene calcolato e il modello viene aggiornato per ridurre l'errore per la previsione successiva. Questa procedura può essere utilizzata per trovare l'insieme di pesi in un modello che risulta nell'errore più piccolo per il modello sui dati di addestramento. Per l'algoritmo di Perceptron, ad ogni iterazione i pesi ( w ) vengono aggiornati utilizzando l'equazione: w = w + learning_rate * (expected - predicted) * x Dove w è il peso in fase di ottimizzazione, learning_rate è un tasso di apprendimento che è necessario configurare (ad esempio 0,01), (previsto - previsto) è l'errore di previsione per il modello sui dati di addestramento attribuito al peso e x è il valore di input. Set di dati del sonar Il set di dati che useremo in questo tutorial è il set di dati Sonar. Questo è un set di dati che descrive i ritorni del sensore del sonar che rimbalzano su diversi servizi. Le 60 variabili di input sono la forza dei rendimenti a diverse angolazioni. È un problema di classificazione binaria che richiede un modello per differenziare le rocce dai cilindri di metallo. È un set di dati ben compreso. Tutte le variabili sono continue e generalmente nell'intervallo da 0 a 1. Pertanto non dovremo normalizzare i dati di input, il che è spesso una buona pratica con l'algoritmo Perceptron. Puoi saperne di più su questo set di dati nel repository UCI Machine Learning . È possibile scaricare gratuitamente il set di dati e inserirlo nella directory di lavoro con il nome file sonar.all-data.csv . Tutorial Questo tutorial è suddiviso in 3 parti: Fare previsioni. Allenamento pesi del Perceptron. Modellazione del set di dati del sonar. Questi passaggi forniranno le basi per implementare e applicare l'algoritmo Perceptron ai propri problemi di modellazione predittiva di classificazione. 1. Fare previsioni Il primo passo è sviluppare una funzione che possa fare previsioni. Ciò sarà necessario sia nella valutazione dei valori dei pesi candidati nella discesa del gradiente stocastico, sia dopo che il modello è stato finalizzato e si desidera iniziare a fare previsioni su dati di test o nuovi dati. Di seguito è riportata una funzione denominata prediction () che prevede un valore di output per una riga dato un insieme di pesi. Il primo peso è sempre il bias in quanto è autonomo e non è responsabile di un valore di input specifico. # Facciamo la previsione utilizzando i Pesi(weights) def predict(row, weights): activation = weights[0] for i in range(len(row)-1): activation += weights[i + 1] * row[i] return 1.0 if activation >= 0.0 else 0.0 Possiamo escogitare un piccolo set di dati per testare la nostra funzione di previsione. X1 X2 Y 2.7810836 2.550537003 0 1.465489372 2.362125076 0 3.396561688 4.400293529 0 1.38807019 1.850220317 0 3.06407232 3.005305973 0 7.627531214 2.759262235 1 5.332441248 2.088626775 1 6.922596716 1.77106367 1 8.675418651 -0.242068655 1 7.673756466 3.508563011 1 Possiamo anche utilizzare pesi preparati in precedenza per fare previsioni per questo set di dati. Mettendo tutto insieme possiamo testare la nostra funzione predict() di seguito. # Facciamo la previsione utilizzando i Pesi(weights) def predict(row, weights): activation = weights[0] for i in range(len(row)-1): activation += weights[i + 1] * row[i] return 1.0 if activation >= 0.0 else 0.0 # Test Predizione dataset = [[2.7810836,2.550537003,0], [1.465489372,2.362125076,0], [3.396561688,4.400293529,0], [1.38807019,1.850220317,0], [3.06407232,3.005305973,0], [7.627531214,2.759262235,1], [5.332441248,2.088626775,1], [6.922596716,1.77106367,1], [8.675418651,-0.242068655,1], [7.673756466,3.508563011,1]] weights = [-0.1, 0.20653640140000007, -0.23418117710000003] for row in dataset: prediction = predict(row, weights) print("Aspettato=%d, Previsto=%d" % (row[-1], prediction)) Sono disponibili due valori di input ( X1 e X2 ) e tre valori di peso ( bias , w1 e w2 ). L'equazione di attivazione che abbiamo modellato per questo problema è: activation = (w1 * X1) + (w2 * X2) + bias Oppure, con i valori di peso specifico abbiamo scelto manualmente come: activation = (0.206 * X1) + (-0.234 * X2) + -0.1 Eseguendo questa funzione otteniamo previsioni che corrispondono ai valori di output attesi ( y ). Expected=0, Predicted=0 Expected=0, Predicted=0 Expected=0, Predicted=0 Expected=0, Predicted=0 Expected=0, Predicted=0 Expected=1, Predicted=1 Expected=1, Predicted=1 Expected=1, Predicted=1 Expected=1, Predicted=1 Expected=1, Predicted=1 Ora siamo pronti per implementare la discesa del gradiente stocastico per ottimizzare i nostri valori di peso. 2. Training Network Weights Possiamo stimare i valori di peso per i nostri dati di allenamento utilizzando la discesa del gradiente stocastico. La discesa del gradiente stocastico richiede due parametri: Tasso di apprendimento : utilizzato per limitare la quantità di correzione di ogni peso ogni volta che viene aggiornato. Epoche : il numero di volte per eseguire i dati di allenamento durante l'aggiornamento del peso. Questi, insieme ai dati di addestramento, saranno gli argomenti della funzione. Ci sono 3 loop che dobbiamo eseguire nella funzione: Ripeti ogni Epoche. Ripeti ogni riga nei dati di addestramento per un'Epoche. Fai un giro su ogni peso e aggiornalo per una riga in un'Epoche. Come puoi vedere, aggiorniamo ogni peso per ogni riga nei dati di allenamento, ogni Epoche. I pesi vengono aggiornati in base all'errore commesso dal modello. L'errore viene calcolato come la differenza tra il valore di output atteso e la previsione effettuata con i pesi candidati. C'è un peso per ogni attributo di input e questi vengono aggiornati in modo coerente, ad esempio: w(t+1)= w(t) + learning_rate * (expected(t) - predicted(t)) * x(t) Il bias viene aggiornato in modo simile, tranne che senza un input in quanto non è associato a un valore di input specifico: bias(t+1) = bias(t) + learning_rate * (expected(t) - predicted(t)) Ora possiamo mettere insieme tutto questo. Di seguito è riportata una funzione denominata train_weights () che calcola i valori di peso per un set di dati di allenamento utilizzando la discesa del gradiente stocastico. # Stimiamo i pesi del Perceptron usando la discesa del gradiente stocastico def train_weights(train, l_rate, n_epoch): weights = [0.0 for i in range(len(train[0]))] for epoch in range(n_epoch): sum_error = 0.0 for row in train: prediction = predict(row, weights) error = row[-1] - prediction sum_error += error**2 weights[0] = weights[0] + l_rate * error for i in range(len(row)-1): weights[i + 1] = weights[i + 1] + l_rate * error * row[i] print('>epoch=%d, lrate=%.3f, error=%.3f' % (epoch, l_rate,sum_error)) return weights Puoi vedere che teniamo anche traccia della somma dell'errore al quadrato (un valore positivo) ogni epoca in modo da poter stampare un bel messaggio ogni ciclo esterno. Possiamo testare questa funzione sullo stesso piccolo set di dati artificioso dall'alto. # Facciamo la previsione utilizzando i Pesi(weights) def predict(row, weights): activation = weights[0] for i in range(len(row)-1): activation += weights[i + 1] * row[i] return 1.0 if activation >= 0.0 else 0.0 # Stimiamo i pesi del Perceptron usando la discesa del gradiente stocastico def train_weights(train, l_rate, n_epoch): weights = [0.0 for i in range(len(train[0]))] for epoch in range(n_epoch): sum_error = 0.0 for row in train: prediction = predict(row, weights) error = row[-1] - prediction sum_error += error**2 weights[0] = weights[0] + l_rate * error for i in range(len(row)-1): weights[i + 1] = weights[i + 1] + l_rate * error * row[i] print('>epoch=%d, lrate=%.3f, error=%.3f' % (epoch, l_rate,sum_error)) return weights # Calcoliamo i Pesi per le previsioni dataset = [[2.7810836,2.550537003,0], [1.465489372,2.362125076,0], [3.396561688,4.400293529,0], [1.38807019,1.850220317,0], [3.06407232,3.005305973,0], [7.627531214,2.759262235,1], [5.332441248,2.088626775,1], [6.922596716,1.77106367,1], [8.675418651,-0.242068655,1], [7.673756466,3.508563011,1]] l_rate = 0.1 n_epoch = 5 weights = train_weights(dataset, l_rate, n_epoch) print(weights) Usiamo un tasso di apprendimento di 0,1 e addestriamo il modello solo per 5 epoche o 5 esposizioni dei pesi all'intero set di dati di addestramento. L'esecuzione dell'esempio stampa un messaggio ogni epoche con la somma al quadrato dell'errore per quell'epoche e il set finale di pesi. >epoch=0, lrate=0.100, error=2.000 >epoch=1, lrate=0.100, error=1.000 >epoch=2, lrate=0.100, error=0.000 >epoch=3, lrate=0.100, error=0.000 >epoch=4, lrate=0.100, error=0.000 [-0.1, 0.20653640140000007, -0.23418117710000003] Puoi vedere come il problema viene appreso molto rapidamente dall'algoritmo. Ora, applichiamo questo algoritmo su un set di dati reale. 3. Modellazione del dataset del sonar In questa sezione, addestreremo un modello Perceptron utilizzando la discesa del gradiente stocastico sul set di dati del Sonar. L'esempio presuppone che una copia CSV del set di dati si trovi nella directory di lavoro corrente con il nome file sonar.all-data.csv . Il set di dati viene prima caricato, i valori di stringa convertiti in numerici e la colonna di output viene convertita da stringhe a valori interi da 0 a 1. Ciò si ottiene con le funzioni di supporto load_csv () , str_column_to_float () e str_column_to_int () per caricare e preparare il set di dati. Useremo la validazione incrociata k-fold per stimare le prestazioni del modello appreso su dati invisibili. Ciò significa che costruiremo e valuteremo k modelli e stimeremo le prestazioni come errore medio del modello. L'accuratezza della classificazione verrà utilizzata per valutare ogni modello. Questi comportamenti sono forniti nella cross_validation_split () , accuracy_metric () e evaluate_algorithm () funzioni di supporto. Useremo le funzioni prediction () e train_weights () create sopra per addestrare il modello e una nuova funzione perceptron () per legarli insieme. Di seguito è riportato l'esempio completo. # Implementiamo l'algoritmo Perceptron su un set di dati from random import seed from random import randrange from csv import reader # Carico il CSV def load_csv(filename): dataset = list() with open(filename, 'r') as file: csv_reader = reader(file) for row in csv_reader: if not row: continue dataset.append(row) return dataset # Converto colonne da stringhe a Float def str_column_to_float(dataset, column): for row in dataset: row[column] = float(row[column].strip()) # Converto colonne da stringhe a Intere def str_column_to_int(dataset, column): class_values = [row[column] for row in dataset] unique = set(class_values) lookup = dict() for i, value in enumerate(unique): lookup[value] = i for row in dataset: row[column] = lookup[row[column]] return lookup # Divido il dataset in k "sottogruppi" def cross_validation_split(dataset, n_folds): dataset_split = list() dataset_copy = list(dataset) fold_size = int(len(dataset) / n_folds) for i in range(n_folds): fold = list() while len(fold) < fold_size: index = randrange(len(dataset_copy)) fold.append(dataset_copy.pop(index)) dataset_split.append(fold) return dataset_split # Valutiamo l'accuratezza del modello def accuracy_metric(actual, predicted): correct = 0 for i in range(len(actual)): if actual[i] == predicted[i]: correct += 1 return correct / float(len(actual)) * 100.0 # Valuto l'algoritmo usando il cross validation split def evaluate_algorithm(dataset, algorithm, n_folds, *args): folds = cross_validation_split(dataset, n_folds) scores = list() for fold in folds: train_set = list(folds) train_set.remove(fold) train_set = sum(train_set, []) test_set = list() for row in fold: row_copy = list(row) test_set.append(row_copy) row_copy[-1] = None predicted = algorithm(train_set, test_set, *args) actual = [row[-1] for row in fold] accuracy = accuracy_metric(actual, predicted) scores.append(accuracy) return scores # Facciamo def predict(row, weights): activation = weights[0] for i in range(len(row)-1): activation += weights[i + 1] * row[i] return 1.0 if activation >= 0.0 else 0.0 # Stimiamo i pesi del Perceptron usando la discesa del gradiente stocastico def train_weights(train, l_rate, n_epoch): weights = [0.0 for i in range(len(train[0]))] for epoch in range(n_epoch): for row in train: prediction = predict(row, weights) error = row[-1] - prediction weights[0] = weights[0] + l_rate * error for i in range(len(row)-1): weights[i + 1] = weights[i + 1] + l_rate * error * row[i] return weights # Perceptron con Stochastic Gradient Descent def perceptron(train, test, l_rate, n_epoch): predictions = list() weights = train_weights(train, l_rate, n_epoch) for row in test: prediction = predict(row, weights) predictions.append(prediction) return(predictions) # Test the Perceptron algorithm on the sonar dataset seed(1) # carico e preparo dati filename = 'sonar.all-data.csv' dataset = load_csv(filename) for i in range(len(dataset[0])-1): str_column_to_float(dataset, i) # converto string class a integers str_column_to_int(dataset, len(dataset[0])-1) # VIA !!! n_folds = 3 l_rate = 0.01 n_epoch = 500 scores = evaluate_algorithm(dataset, perceptron, n_folds, l_rate, n_epoch) print('Scores: %s' % scores) print('Mean Accuracy: %.3f%%' % (sum(scores)/float(len(scores)))) Un valore k di 3 è stato utilizzato per la convalida incrociata, dando a ciascuna piega 208/3 = 69,3 o poco meno di 70 record da valutare a ogni iterazione. Un tasso di apprendimento di 0,1 e 500 epoche di formazione sono stati scelti con un po 'di sperimentazione. Puoi provare le tue configurazioni e vedere se riesci a battere il mio punteggio. L'esecuzione di questo esempio stampa i punteggi per ciascuna delle 3 pieghe di convalida incrociata, quindi stampa l'accuratezza della classificazione media. Possiamo vedere che la precisione è di circa il 72%, superiore al valore di base di poco più del 50% se prevedessimo solo la classe di maggioranza utilizzando l'algoritmo della regola zero. Scores: [76.81159420289855, 69.56521739130434, 72.46376811594203] Mean Accuracy: 72.947% Estensioni Questa sezione elenca le estensioni di questo tutorial che potresti voler considerare di esplorare. Sintonizza l'esempio . Regola la velocità di apprendimento, il numero di epoche e persino il metodo di preparazione dei dati per ottenere un punteggio migliore sul set di dati. Discesa gradiente stocastica in batch . Modificare l'algoritmo di discesa del gradiente stocastico per accumulare gli aggiornamenti in ogni epoca e aggiornare i pesi in un batch solo alla fine dell'epoca. Ulteriori problemi di regressione . Applicare la tecnica ad altri problemi di classificazione nel repository di machine learning UCI. Hai esplorato qualcuna di queste estensioni? Fatemelo sapere nei commenti qui sotto. Revisione In questo tutorial, hai scoperto come implementare l'algoritmo Perceptron utilizzando la discesa del gradiente stocastico da zero con Python. Hai imparato. Come fare previsioni per un problema di classificazione binaria. Come ottimizzare un insieme di pesi utilizzando la discesa del gradiente stocastico. Come applicare la tecnica a un problema di modellazione predittiva di classificazione reale. Hai qualche domanda? Fai la tua domanda nei commenti qui sotto e faremo del nostro meglio per rispondere.
- LE FUNZIONI ATTENZIONALI
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 Si pensi innanzitutto che il nostro cervello assolve tutti i compiti a cui è predisposto in quanto centro dell'attività nervosa del nostro corpo e quindi la nostra mente, ovvero tutti i processi di input-output che sono alla base del nostro pensiero e delle nostre facoltà di carattere informazionale, assolve tutte le operazioni di trattamento dell'informazione in quanto tale, con questo per ritornare un attimo a fare una considerazione e cioè che la grandezza di ingresso è costituita da un flusso di informazioni che sono tutte soggette alla nostra attività attenzionale, infatti noi riusciamo a sviluppare o costituire un pensiero e contemporaneamente ascoltiamo della musica tocchiamo degli oggetti vediamo delle cose, questo ci porta ad una prima supposizione che consiste nel dare la possibilità all'attenzione di lavorare in parallelo multiplo, in sostanza la nostra funzione attenzionale riesce a prendere in considerazione più cose contemporaneamente senza per questo farci fare confusione di concetti, allora bisogna che vi siano delle altre grandezze che si sommino all'attenzione per rendere possibile l'attività mentale, tali grandezze possono essere perlomeno due: una che si può identificare nella "volontà" e una che può essere "l'immaginazione", la prima si potrebbe esprimere come volontà attenzionale, ossia una grandezza funzione che interviene per dare origine al pensiero attenzionale cosciente, quello che prendiamo in considerazione e che è al di sopra del livello della consapevolezza, mentre l'immaginazione interviene a tutto campo, quindi anche al di sotto del livello della consapevolezza costituendo una delle forze basilari per i vari processi mentali. Ma ritorniamo per un attimo a rivedere il processo costitutivo della percezione, ossia di che cosa è composta questa funzione mentale complessa che identifica il nostro comportamento in fase di ricezione per poter approfondire quanto è possibile, con le mie conoscenze e le teorizzazioni che ne derivano, il funzionamento del "servomeccanismo" che costituisce la nostra mente. Ritorniamo alla base del nostro ragionamento rispondendo alla frase "attento...ecco...", la prima cosa che ci viene spontanea chiederci è attento a "cosa"? Questo mi fa pensare al concetto di "cosa" perché lo ritengo un concetto "funzione" di fondamentale importanza, infatti noi classifichiamo qualsiasi cosa col concetto di "cosa", lo usiamo dappertutto dove non è definibile l’oggetto del nostro discorrere o dove introduciamo dei nuovi concetti su un nostro ragionamento, il Professor Silvio Ceccato che è una fra le più illustri autorità in materia,(nota dell’autore:era il 1986-87) identifica questo concetto con una sequenza di due stati attenzionali espressi in serie di attenzione rilassata, comunque sia, tralasciando la composizione attenzionale del concetto stesso, poiché in questo momento mi interessa di più una sua altra caratteristica, posso ipotizzare che serva per dare origine ad una espansione, a quella energia che è stata accumulata con l’eccitazione attenzionale, quindi potrebbe benissimo essere intesa come una delle funzioni associabili alla scatola nera ’A(i)’, mentre una funzione che può essere identificata in questo caso per la ’B(i)’ è quella di "uguale", che serve per favorire la riparametrazione simmetrica tra gli stati attenzionali che si sviluppano in y(i) e quelli relativi a z(i) facendo in modo che con una serie di cicli di operazioni dove intervengono tutte le grandezze espresse nello schema di base, vi sia la e(i) che riporta le variazioni attenzionali dovute alle varie riparametrazioni fra stati di lavoro, nella fase di costituzione figurativa quindi sarà un segnale che viene ad individuare dove vi è una variazione di colore o di pendenza o di regione spaziale ecc., più in generale dovrei puntualizzare che le funzioni presenti in ’A(i)’ servono per dare una conformazione attenzionale ai vari costrutti e invece quelle presenti in ’B(i)’ servono per controreazionare gli stati attenzionali costituenti questi costrutti derivandone altri che sono il frutto di una residenzialità ipotetica dal punto di vista armonico attenzionale, quelli che sopra, nelle spiegazioni generali delle grandezze espresse nello schema di base, venivano definiti come concetti dato di primo e di secondo livello. In questo momento ritengo superfluo tentare di stereotipare ulteriormente le operazioni costitutive della percezione anche perché in ogni soggetto possono suscitare una variazione di funzioni che dipenderà da fattori contingenti alla situazione mentale del soggetto e alla sua relazione con il mondo esterno, pertanto vorrei adesso esprimere alcune riflessioni sull’argomento sin qui esposto. La prima riflessione riguarda gli stati attenzionali e consiste soltanto nel fatto che si può ipotizzare che esista una relazione fra energia utilizzata e stati attenzionali in quanto noi possiamo sentire gli effetti che questi producono quando sono messi in azione nel senso che proviamo un certo fastidio quando non si trova il modo per espandere questa energia convogliandola tramite una determinata controreazione in una sequenza di operazioni che fornisce un processo costitutivo di un engramma e al contrario possiamo sentire un sollievo quando queste operazioni sono soddisfatte, questo lo si nota bene nella applicazione della percezione pura, anche se poi subentra in ogni caso il fattore teleologico del nostro meccanismo che ci può provocare comunque dei fastidi attenzionali, qualora per esempio che ciò che è oggetto della nostra attenzione non corrisponda ad una nostra riparametrazione o raffronto con una immagine che abbiamo ipotizzato della cosa stessa. La seconda riflessione riguarda l’intervento di questo particolare servomeccanismo nella costituzione delle funzioni di percezione, possiamo notare che è quasi impossibile stabilire una sequenza ben determinata di operazioni semplici ed assegnare delle funzioni definibili con dei concetti correnti alle varie grandezze espresse nello schema di base, si può ipotizzare soltanto che nel caso del processo costitutivo della percezione subentrino tutte le varie grandezze espresse con delle funzioni elementari e quello che noi possiamo dire è soltanto che avviene una trasformazione energetica informazionale che si sviluppa tramite un complesso sistema di interazioni e interconnessioni fra funzioni fisiche dovute agli organi ricettori e funzioni mentali che daranno origine ad un complicato gioco armonico continuo fruitore di engrammi attenzionali. Per tentare di chiarire ulteriormente quanto sopra esposto si potrebbe fare un esperimento con un "campo informazionale" costituito da una semplice immagine come nel disegno che segue. Logotipo di quadrupede. Quello che ci ricorda questa figura è indubbiamente un animale quadrupede, ma facciamo attenzione a come la nostra mente costituisce questa immagine, sforzandoci a rallentare il processo percettivo come se fossimo costretti a lavorare a rallentatore. Presupponiamo di partire dalla coda, le informazioni che noi riceviamo sono un continuo informazionale invariato a partire dalla estremità fino al punto di congiunzione con il “rettangolo” che identifica il corpo, i nostri occhi si fermeranno a focalizzare l’attenzione prima sulla estremità del segmento e poi “nell’angolo” in alto a destra del “rettangolo”, questo significa che durante questo tempo non ci sono state delle variazioni di segnale percepito, se dovessimo procedere per punti, a partire dalla estremità, ogni punto preso in considerazione dalla nostra attenzione è uguale a quello precedente, in altri termini il segnale d’ingresso del sistema ’x(i)’ è rimasto costante ed è stata soddisfatta la simmetria fra ’y(i)’ e ’z(i)’, da cui si può pensare che ’B(i)’ soddisfi la funzione di ’=’, mentre il "motore" ’A(i)’ sposta la nostra attenzione lungo la linea; le stesse operazioni avvengono poi quando l’oggetto della nostra attenzione sarà il rettangolo che raffigura il corpo, ovvero l’area da esso inclusa, i segmenti che raffigurano le zampe e l’ellisse che rappresenta la testa. Il lettore che si è sforzato di rallentare il proprio pensiero si accorgerà che esistono degli altri punti dove gli occhi si soffermano di più e saranno dei punti chiave dove si verificheranno delle variazioni di segnale percepito. E‘ ovvio che il gioco attenzionale proposto da questa immagine sia simile a quello che viene esercitato dalla nostra mente ogni volta che l’oggetto della nostra attenzione sia un quadrupede. La terza riflessione prende in considerazione l’intervento dell’attività della volontà e consiste nel definire una grandezza funzione che si comporta come coordinatrice degli stati attenzionali che interviene tramite una particolare sequenza o combinazione di stati attenzionali e raggruppa gli stessi secondo delle modalità di concetti finiti, è la grandezza che ci consente di affrontare e definire delle operazioni coscienti di pensiero. Prendendo ancora spunto dalla figura sopra esposta si potrebbe dire che noi sappiamo riconoscere le varie parti costitutive della figura appunto perché vengono "classificati" tutti i continui informazionali. A questo punto abbiamo la possibilità di capire che il concetto di "parte" è una derivata del concetto di volontà e sta ad indicare che la volontà prende come concetto percettivo finito un “continuo informazionale”. La quarta riflessione è dettata dalla ipotesi di considerare come coordinatrice del sistema di controreazioni la grandezza funzione immaginazione che consiste nel dare delle variazioni endoniche o meno dal punto di vista attenzionale alle varie funzioni che parteciperanno alla costituzione degli engrammi mentali, fornendoci la possibilità di poter diversificare le operazioni che influenzeranno il sistema di sviluppo dei processi di categorizzazione e correlazione sia a livello di consapevolezza o meno. Sarà questa grandezza che farà scattare tutte le funzioni elementari di controreazione tali per cui noi giungeremmo a classificare quella figura spora esposta come lo stereotipo di un animale quadrupede. Nel prossimo articolo, della serie, andremo a spiegare il concetto di Variabile. Grazie per la lettura.
- GLI STATI ATTENZIONALI
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 Cominciamo dunque con l’identificare che cos’è lo stato attenzionale o perlomeno che cosa io intenda per “stato attenzionale”, in quanto ci permette di vedere fin da questo momento l’importanza della concezione mentale dell’attenzione che esprime un concetto "funzione" di capitale importanza. La difficoltà di spiegare in termini correnti questo concetto mi porta a far partecipare il lettore a degli esperimenti di applicazione dell’attenzione con alcuni esempi che rendono possibile il "sentire" gli stati attenzionali come dei momenti di funzionamento della mente. Per rendere l’idea di che cosa si tratti, basta pensare a quello che si prova quando ci si pone di fronte ad una situazione di attenzione applicata, ovvero, supponiamo che un vostro amico vi dica questa frase: "attento... ecco!" e lasci sospeso il discorso, l’esperimento funziona anche se ci ripetiamo da soli questa frase e con un po’ di sensibilità, ci si accorge che effettivamente succede qualcosa, una volta un bambino mi ha risposto che era come se si rizzassero le orecchie, in effetti succede che noi suscitiamo una “eccitazione attenzionale” che se si potesse esprimere con un segnale potrebbe avrebbe una forma di questo genere: Il grafico ci illustra che nel tempo ’x’, ossia quando viene pronunciata la parola "ecco", si ha uno stato "logico" a livello "1" (indicato con “R”) dell’attenzione e questo stato viene mantenuto per un certo periodo non specificato, in realtà penso sia un fatto soggettivo, si potrebbe trattare di alcuni secondi, ma comunque credo che non dipenda soltanto dal soggetto, ma anche dal contesto, quindi dal momento e da altri fattori contingenti. Che cosa significa quanto sopra? Soltanto che la nostra attenzione e‘ cambiata di stato: si è per così dire eccitata, per un determinato periodo si è portata al livello 'Q-S' che corrisponde al livello logico alto del segnale espresso nel grafico riportato, si potrebbe parlare di uno stato riflesso, ossia che l’attenzione si sia riposizionata su se stessa. A questo punto si può notare che esistono due stati di attenzione, ovvero uno stato di coscienza attenzionale, che nel caso in esame si identifica al momento di dire "attenzione", dove per l’appunto l’attenzione si presenta rilassata a livello "0" e uno stato di eccitazione dove l’attenzione si presenta a livello "1" che corrisponde all’accumulo di energia pronta per essere utilizzata nelle operazioni costitutive della percezione. E‘ chiaro che nell’esperimento sopra enunciato il sistema mentale era stato posto come ricevente o in input e quindi il suo operare consiste nel predisporsi a decifrare un’informazione analogamente al caso, che ci è sicuramente capitato a tutti, di assistere durante un viaggio in treno allo spettacolo offertoci dal paesaggio in movimento relativo attraverso il finestrino, i nostri occhi guizzano alla ricerca di fermare un’immagine che ci coglie attenzionalmente per renderla stabile e decifrabile, ancora una volta l’attenzione sviluppa la sua funzione in base alla quale noi scegliamo l’argomento per cui questa si eccita e il nostro guizzare con gli occhi avanti serve per cogliere proprio attenzionalmente una data immagine, tale scelta di solito sembra spontanea, sembra non dipendere dal nostro pensiero corrente ma da qualcosa che sta al di sotto del livello di soglia della consapevolezza, sono dunque dei fattori esterni che colgono la nostra attenzione, come qualche cosa di particolare, qualche colore o qualche forma geometrica, durante questo nostro operare con gli occhi è come se qualcuno ci dicesse tanti "ecco..." che eccitano la nostra attenzione e ci costringono a soffermarci onde decifrare l’immagine, il ché equivale a dire che “l’energia trattenuta dallo stato di eccitazione attenzionale si espande in un engramma composto di armonie di stati attenzionali che daranno vita alla percezione della stessa immagine.” Quante volte ci è capitato di fare una passeggiata per la strada, di sentire un rumore o un suono strano ed ecco che i nostri occhi guizzano a cercare di cogliere una particolare immagine nel luogo presunto come fonte del rumore, la nostra attenzione questa volta è stata sollecitata dall’apparato uditivo e di conseguenza il nostro riflesso è quello di espandere l’energia attenzionale andando a cogliere con gli occhi l’immagine che ha provocato in noi una variazione di stato attenzionale, succede la stessa cosa se per esempio vedendo transitare una macchina che ci sembra appartenere ad un nostro conoscente ci mettiamo a seguire quell’immagine per controllare se era effettivamente ciò che ha destato in noi quel particolare interesse attraverso un processo questa volta di carattere cognitivo, succede sempre la stessa cosa, la nostra attenzione si eccita e dobbiamo scaricare questa energia applicando gli occhi e la mente sul soggetto che ha destato la nostra disponibilità attenzionale. Vi sono degli esempi che possono chiarire ancor meglio la funzione degli stati attenzionali quando il nostro operare mentale è in ricezione e sono per così dire delle immagini da laboratorio che riporto nei disegni seguenti: Ecco un simpatico disegno che può raffigurare a seconda che la nostra attenzione sia colta dal nero o dal bianco all'interno del rettangolo una vecchia o una ragazza, ma quello che è interessante notare consiste nel fatto che per raffigurarci queste due immagini la nostra attenzione si comporta in un modo complesso, ossia, non appena si è eccitata, viene messo in moto un processo che comporta l'entrata in opera di quelle funzioni che abbiamo rappresentato nello schema di base, in sostanza si può pensare che dal primo istante nel quale vi è stato un accumulo di energia con l'eccitazione attenzionale, questa venga controreazionata attraverso l'anello costituito dalle funzioni rappresentate con 'A(i)' e 'B(i)', il sistema di controreazione consiste nel costituire un primo engramma attenzionale attraverso le funzioni presenti in 'A(i)' che forse identificherà in blocco il colore, la spazialità e altre caratteristiche dell'oggetto o della cosa che sta per essere analizzata e va poi arricchendosi tramite la controreazione 'B(i)' in modo da costituire una serie di operazioni attenzionali che portano all’acquisizione dell’immagine, tale acquisizione viene costruita tramite delle successive frequenze di stati attenzionali dettate dalle variazioni del profilo considerato, mantenendo sempre presenti attenzionalmente le successioni del ritmo attraverso il quale viene a costituirsi l'immagine; troveremmo così, che la grandezza espressa come 'y(i)', si va arricchendo in 'z(i)' di stati che vengono sollecitati con la variazione, il nostro sistema di controreazione fa eccitare l'attenzione ogniqualvolta alla ripetizione di un ciclo di informazione trovi una variazione instaurando in modo sommativo queste informazioni in un codice attenzionale o engramma che ci dà la possibilità di incamerare in memoria la strutturazione dell'immagine percepita senza per questo dover ricordare tutte le informazioni attenzionali che sono servite per costituirla, quindi quello che è il concetto ricordato si forma attraverso delle informazioni attenzionali che esprimono il modo costitutivo dell'immagine e non tutti gli stati attenzionali che sono stati alla base della costituzione percettiva dell'immagine stessa. In questo esempio possiamo pensare che siano intervenute nell'azione percettiva delle funzioni come il concetto di "cosa" il concetto di "singolare" quello di "plurale", quello di "tutto" e di "parte", la riparametrazione simmetrica attenzionale negata, in questo caso, la strutturazione del ritmo attenzionale dovuta alle variazioni del profilo di divisione delle superfici e l'attività associativa ai profili di entità conosciute, si può quindi immaginare che il concetto di questo disegno sia costituito dalla sequenza logica delle funzioni che sono intervenute ed elaborato dalla mente in parallelo. Un esempio analogo a quello sopra esposto è quello espresso da quest'altro disegno ormai classico: Anche in questo caso si possono distinguere due immagini diverse in riferimento all’orientamento: è un'altra figura alternante dove il gioco attenzionale del "tenere" e del "lasciare" è particolarmente attivo, dove il processo di costituzione delle immagini è lo stesso di cui sopra con la differenza che questa volta è verificata la riparametrazione simmetrica e quindi il concetto si formerà allo stesso modo ma con questa sola differenza. Un simbolo invece che ci può fornire un bellissimo esempio per esercitare la nostra capacità intrinseca di riparametrazione simmetrica è quello che i cinesi chiamano "T'ai-chi T'u" o "Diagramma della Realtà Ultima",rappresentante le polarità opposte yin e yang : Come si può notare è un simbolo simmetrico complementare a simmetria rotazionale, il gioco attenzionale che sviluppa mette bene in evidenza le operazioni elementari che la nostra mente compie per percepire le immagini,si tratta in definitiva di compiere delle operazioni estremamente semplici e di abbinarle tra loro,nel caso della riparametrazione simmetrica in effetti la nostra mente ricerca le "informazioni" che possono essere ritenute uguali, per immetterle in un contenitore, fornito dall'attività di concettualizzazione che serve per identificare dei "continui informazionali ". Ovviamente questo non accade soltanto per le percezioni visive,ma anche per quelle che riguardano gli altri sensi; proviamo ora ad immaginare che cosa succede se abbiamo alcuni oggetti su un tavolo e ad occhi chiusi si tenta di toccarli: noteremmo con stupore che la nostra attenzione si comporta in modo analogo ossia si eccita al contatto delle nostre dita con l'oggetto e poi ci si aspetta con movimenti simili di trovare gli altri oggetti che vi sono posti, ancora una volta interviene quindi il meccanismo della controreazione che ci porta alla riparametrazione simmetrica dei movimenti e dei risultati che ci aspettiamo da questi, in altre parole significa che le operazioni che noi facciamo con la mente partono sempre da una carica energetica iniziale dovuta all’eccitazione attenzionale e si espandono, trasformando l’energia accumulata in reazioni a catena con una metodologia che ricerca l’uguaglianza di ritmo attenzionale, cosa analoga se ascoltiamo una musica, la nostra attenzione si eccita su di una nota e poi attraverso il ritmo musicale si aspetta la nota successiva tenendo presente e riparametrando la prima con la seconda,a questo punto possiamo ipotizzare che la costituzione attenzionale dei concetti percettivi o concetti "dato" viene a formarsi passando attraverso due stadi di elaborazione attenzionale, un primo stadio nel quale il servomeccanismo intrinseco della nostra mente sviluppa la sua funzione ricercando le simmetrie e le variazioni,riconducendo queste operazioni a dei ritmi attenzionali e un secondo stadio nel quale si immagazzinano o si incamerano le operazioni costitutive del processo attraverso la codificazione attenzionale dei concetti "funzione" di base che sono intervenuti, dando così origine ad un engramma che verrà riportato in memoria e che servirà per i processi cognitivi. A questo punto invito il lettore a provarsi con degli altri esempi che può scoprire utilizzando l'immaginazione, per condurlo a fare delle ulteriori ipotesi sul funzionamento attenzionale della nostra mente per esempio scoprendo che cosa succede quando squilla il telefono o suona una sveglia o nota una macchia su una superficie o tocca accidentalmente qualcosa. Lo vedremo nel Prossimo articolo, grazie per la lettura...
- Robotic Process Automation (RPA) e Ottimizzazione dei Processi
La Robotic Process Automation consiste nell’introduzione di una forza lavoro software mediante bot che automatizzano totalmente o parzialmente l’operatività dell’utente. Uno strumento potente e versatile che consente di sostituire le attività fisiche che non richiedono conoscenza, comprensione o intuizione. Task ripetitivi e semplici vengono codificati e, mediante la programmazione di algoritmi, vengono fornite le istruzioni per agire. Generalmente i processi di automazione vengono realizzati sfruttando sorgenti di dati strutturati come un foglio excel o un database. I sistemi di RPA, invece, sono in grado di gestire dati non strutturati come documenti scannerizzati, immagini e video, anche nei casi in cui non sia disponibile un API adatta allo scopo. I sistemi RPA osservano un operatore mentre svolge una determinata attività nella GUI, Graphical User Interface, e hanno la capacità di apprendere e ripetere i vari task in autonomia. Sono infatti in grado simulare comandi di input manuali eseguiti utilizzando mouse o tastiera e possono interagire con i vari applicativi informatici, esattamente come fanno gli esseri umani nello svolgimento di un compito all'interno di un processo. Maggiore efficienza e riduzione dei costi Automatizzare attività semplici e ripetitive fa risparmiare tempo e denaro. Una forza lavoro RPA è precisa, accurata e può svolgere il proprio compito 24 ore su 24, per 7 giorni alla settimana, senza mai perdere la concentrazione. Migliora la precisione del lavoro svolto e i tempi di esecuzione sono notevolmente ridotti. Altro aspetto non trascurabile è il fatto che un sistema RPA ben progettato e implementato, pur gestendo un imponente mole di informazioni, riduce notevolmente i tassi di errore dei task, arrivando quasi ad azzerarli. La tecnologia RPA trasforma il modo in cui viene gestito il lavoro Automatizzare i processi mediante la Robotic Process Automation semplifica i flussi di lavoro e rende le organizzazioni più redditizie, flessibili e reattive e permette di avere un notevole contenimento dei costi relativi alla manodopera. Tuttavia l’obiettivo non è solo la riduzione dei costi legati al personale, ma soprattutto liberare i dipendenti dallo svolgere task manuali ripetitivi, aumentando la loro efficienza e permettendo di concentrare l’attenzione su priorità aziendali che richiedono lavoro creativo, abilità, innovazione. Liberare tempo permette inoltre di svolgere con maggiore impegno azioni commerciali e attività strategiche come l’analisi dei dati. Anche riguardo la gestione dei clienti è possibile evadere rapidamente le richieste, aumentando la loro soddisfazione. Una tecnologia adatta a molteplici settori L’utilizzo di sistemi RPA si sta rapidamente diffondendo in molteplici settori: i servizi finanziari, l’assistenza legale e sanitaria, il marketing, la gestione delle risorse umane e dei processi di produzione e vendita, il servizio clienti. Alcuni esempi pratici dell’impiego della Robotic Process Automation sono: L’accesso e la navigazione nei sistemi per estrapolare dati e compilare moduli. Si possono utilizzare i dati contenuti in una fattura inviata tramite un messaggio di posta elettronica per copiarli e inserirli in un ordine o in un sistema di prenotazione; Valutare profili dei candidati attraverso la lettura dei loro curriculum; Completare analisi e report; Recuperare informazioni dai profili dei clienti per inserirli in sistemi e applicazioni che gestiscono ordini e spedizioni; Comprendere immagini e completare le sequenze mancanti. Differenze fra Robotic Process Automation e AI Spesso si confonde RPA con l'intelligenza artificiale AI. Tra le principali differenze l'RPA tradizionale utilizza input e logica strutturati, l'AI utilizza input non strutturati e sviluppa una propria logica e un proprio metodo di attuare un processo. La loro combinazione dona alla forza lavoro robotica la capacità di prendere decisioni complesse simili a quelle umane. Sfruttando alcune tecnologie tipiche dell’intelligenza artificiale, la Robotic Process Automation è in grado di apprendere e di adeguarsi all’ambiente nel quale viene inserita. Viceversa, la RPA consente di raccogliere dati che permettono ai modelli di AI di allenare le capacità di apprendimento perfezionando la loro azione con maggiore precisione. L’unione fra Intelligenza artificiale e soluzioni di RPA permette di superare l’automazione di compiti ripetitivi o la corretta lettura e comprensione di un testo e un’immagine. L’obiettivo è quello di realizzare software che siano in grado di agire in modo adattivo, e quindi di apprendere mediante le esperienze, e contestualmente di operare in modo predittivo, ovvero di prevedere quale sarà il risultato di un’azione in modo da prendere decisioni autonome o semi-autonome in tempo reale. Come realizzare sistemi di Robotic Process Automation L'automazione dei processi robotici è in continuo aumento perché permette a molteplici tipologie di aziende di risolvere in modo innovativo e risolutivo specifiche problematiche operative. I bot, osservando il modo in cui i dipendenti svolgono i processi, possono gestire correttamente notevoli quantità di dati. Per questo motivo, sono la soluzione ottimale per analizzare ed elaborare grandi set di informazioni, dando maggiore valore ai big data che vengono raccolti. In numerosi settori è possibile sfruttare al meglio queste potenzialità grazie a Imita, un’azienda specializzata in IT che fornisce soluzioni personalizzate in grado di aumentare la produttività e di migliorare l’efficienza. Vuoi saperne di più su di noi ?
- Applicazione SVM per la classificazione automatica su Iris dataset - Esempi pratici Machine Learning
Conoscenze necessarie per leggere questo post. Se vuoi trovarti a tuo con questa lettura, ti consiglio di leggerti prima i seguenti articoli introduttivi: Conoscenza delle caratteristiche di un problema di classificazione. Conoscenza dell’algoritmo SVM. Ricapitolando Ho introdotto nei precedenti post le nozioni necessarie per valutare un primo caso di studio. Nello specifico analizzerò il problema di classificazione dei fiori fra Iris Setosa, Virginica e Versicolor. Come già accennato, il dataset è composto da 150 istanze. Per ognuna di esse vengono fornite più features utili per la classificazione: lunghezza, larghezza del sepalo e del petalo. Per maggiori info sul dataset visita il sito ufficiale. Suddivisione del dataset Ho suddiviso il dataset in train e test: l’80% delle istanze le ho inserite nel training set e il rimanente 20% le ho inserite nel test set. Ho deciso di utilizzare l’algoritmo presentato nel post precedente ovvero SVM, il quale si occuperà di definire una funzione che permetta di dividere correttamente le istanze delle classi. Come fa a farlo? Tramite i dati di training etichettati. Ovviamente all’aumentare dei dati a disposizione le performance saranno migliori. Inoltre, all’aumentare delle classi le performance saranno peggiori perché aumenterà la probabilità di sbagliare la classificazione. Risultati L’accuratezza di classificazione ottenuta è stata pari a 83.33%. Questa metrica misura la percentuale di corrette classificazioni svolte dall’algoritmo utilizzato. Nel caso in esame significa che su 30 immagini presenti nel test set 25 sono classificate correttamente, mentre 5 sono errate. Per incrementare questo valore possono essere necessari: maggiori elementi nel training set; l’utilizzo di un set diverso di features; l’adozione di una strategia più efficace per la risoluzione del problema. La matrice di confusione mostra in forma tabellare la suddivisione delle classificazioni per classe. Aiuta quindi il data scientist a capire in quali classi l’algoritmo commette errori di classificazione. La matrice di confusione risultante è stata la seguente: Da questa tabella si evince che per la classe Iris Setosa il metodo usato non commette nessun errore di classificazione (10 classificazioni su 10 corrette → 100%). Per quanto riguarda la classe Iris Virginica vengono commessi 4 errori perché 4 istanze della classe Iris Virginica vengono classificate come Iris Versicolor (7 classificazioni su 11 corrette → 63.6%). Infine, per l’ultima classe viene commesso un solo errore di classificazione (8 classificazioni corrette su 9 → 88.8%). Da ciò si può quindi evincere che la classe che presenta maggiori difficoltà ad essere correttamente individuata è Iris Virginica. Un’interessante analisi è quella che si può fare su come le istanze del dataset siano suddivise in training e test set. La regola aurea è che il numero di istanze di ogni classe dovrebbe essere lo stesso. Serve per evitare problemi in fase di addestramento che si ripercuotono poi in fase di classificazione. Se il metodo di classificazione vede più esempi in fase di addestramento, ci saranno poi maggiori possibilità che classifichi gli elementi del test con l’etichetta della classe più popolosa del training set. In questo caso le istanze sono state suddivise in questa maniera: Dalla tabella si evince che relativamente alla classe con meno istanze in fase di training si commettono poi più errori in fase di test. Come migliorare le performance? Avevo utilizzato solo le prime 2 features a disposizione. Usando, invece, tutte e 4 le features ottengo risultati nettamente migliori: accuratezza di classificazione pari a 93.33%. Ciò determina che la scelta delle features può influenzare molto il risultato del modello di Intelligenza Artificiale. Solo due errori nella classificazione dell’Iris Virginica. Davvero niente male questo SVM! Come Implementare l' SVM con Python su questo Dataset? Vi lascio il codice completo, con diversi kernel SVM, e le relative aree di classificazione, scritto in Python. Buon Divertimento ! Sono appassionato di Intelligenza Artificiale e nel 2020 ho ricevuto il Ph.D. in Visione Artificiale presso l'Università degli Studi di Parma. Se vuoi ricevere maggiori informazioni sull'articolo o sui progetti che sto svolgendo visita il mio sito web.
- Come Creare Un Dataset per il tuo Progetto Di Machine Learning ( ML ) o Deep Learning ( DL )
Stai pensando all'IA per la tua organizzazione? Hai identificato un caso d'uso ? Perfetto! ma non così veloce ... hai un set di dati ? Bene, la maggior parte delle aziende sta lottando per creare un set di dati pronto per l'intelligenza artificiale o forse semplicemente ignora questo problema, ho pensato che questo articolo potrebbe aiutarti un po '. Cominciamo con le basi ... Un set di dati è una raccolta di dati . In altre parole, un set di dati corrisponde al contenuto di una singola tabella di database, o un singolo statistica dei dati della matrice, dove ogni colonna della tabella rappresenta una particolare variabile, ed ogni corrisponde riga per un dato membro del set di dati in questione . Nei progetti di Machine Learning, abbiamo bisogno di un set di dati di addestramento . È il set di dati effettivo utilizzato per addestrare il modello per l'esecuzione di varie azioni. Perché ho bisogno di un set di dati? Il machine learning dipende fortemente dai dati, senza dati è impossibile che un "AI" apprenda. È l'aspetto più cruciale che rende possibile l'addestramento degli algoritmi ... Non importa quanto sia grande il tuo team di intelligenza artificiale o la dimensione del tuo set di dati, se il tuo set di dati non è abbastanza buono, l'intero progetto AI fallirà! Ho visto progetti fantastici fallire perché non avevamo un buon set di dati nonostante avessimo il caso d'uso perfetto e scienziati dei dati molto qualificati. Un'intelligenza artificiale supervisionata viene addestrata su un corpus di dati di addestramento. Durante uno sviluppo di intelligenza artificiale, ci affidiamo sempre ai dati. Dall'addestramento, alla messa a punto, dalla selezione del modello al test, utilizziamo tre diversi set di dati: il set di addestramento, il set di convalida e il set di test.Per tua informazione, i set di convalida vengono utilizzati per selezionare e ottimizzare il modello ML finale. Potresti pensare che la raccolta dei dati sia sufficiente ma è il contrario. In ogni progetto di IA, classificare ed etichettare i set di dati richiede la maggior parte del nostro tempo, in particolare i set di dati sufficientemente accurati da riflettere una visione realistica del mercato / mondo. Voglio presentarti i primi due set di dati di cui abbiamo bisogno: il set di dati di addestramento e il set di dati di test perché vengono utilizzati per scopi diversi durante il tuo progetto AI e il successo di un progetto dipende molto da loro. Il set di dati di addestramento è quello utilizzato per addestrare un algoritmo a capire come applicare concetti come le reti neurali, per apprendere e produrre risultati. Include sia i dati di input che l'output previsto. I set di formazione costituiscono la maggior parte dei dati totali, circa il 70%. Durante i test, i modelli si adattano ai parametri in un processo noto come regolazione dei pesi. Il set di dati di test viene utilizzato per valutare il livello di addestramento del tuo algoritmo con il set di dati di addestramento. Nei progetti AI, non possiamo utilizzare i dati di addestramento impostati in fase di test perché l'algoritmo conoscerà già in anticipo l'output atteso che non è il nostro obiettivo. I set di test rappresentano il 30% dei dati. Il set di test è garantito come i dati di input raggruppati insieme agli output corretti verificati, generalmente mediante verifica umana. Sulla base della mia esperienza, è una cattiva idea tentare ulteriori aggiustamenti dopo la fase di test. Probabilmente porterà a un overfitting. Cos'è l'overfitting? Un problema ben noto per i data scientist ... L' overfitting è un errore di modellazione che si verifica quando una funzione è troppo vicina a un insieme limitato di punti dati. Quanti dati sono necessari? Tutti i progetti sono in qualche modo unici, ma direi che hai bisogno di 10 volte più dati del numero di parametri nel modello in costruzione. Più complicata è l'attività, più dati sono necessari. Di che tipo di dati ho bisogno? Inizio sempre progetti di intelligenza artificiale ponendo domande precise al decisore aziendale. Cosa stai cercando di ottenere con l'IA? Sulla base della tua risposta, devi considerare di quali dati hai effettivamente bisogno per affrontare la domanda o il problema su cui stai lavorando. Fai alcune ipotesi sui dati di cui hai bisogno e fai attenzione a registrarle in modo da poterle testare in seguito, se necessario. Di seguito sono riportate alcune domande per aiutarti: Quali dati puoi utilizzare per questo progetto? Devi avere un'immagine chiara di tutto ciò che puoi usare. Quali dati non disponibili vorresti avere? Mi piace questa domanda poiché possiamo sempre in qualche modo simulare questi dati. Ho un set di dati, e adesso? Non così in fretta! Dovresti sapere che tutti i set di dati sono imprecisi. In questo momento del progetto, dobbiamo fare un po 'di preparazione dei dati, un passaggio molto importante nel processo di apprendimento automatico. Fondamentalmente, la preparazione dei dati consiste nel rendere il tuo set di dati più adatto per l'apprendimento automatico. È un insieme di procedure che consumano la maggior parte del tempo dedicato a progetti di machine learning. Anche se disponi dei dati, puoi comunque riscontrare problemi con la loro qualità, nonché pregiudizi nascosti nei tuoi set di addestramento. In parole povere, la qualità dei dati di addestramento determina le prestazioni dei sistemi di apprendimento automatico. Hai sentito parlare dei pregiudizi dell'IA? Un'intelligenza artificiale può essere facilmente influenzata ... Nel corso degli anni, i data scientist hanno scoperto che alcuni popolari set di dati utilizzati per addestrare il riconoscimento delle immagini includevano pregiudizi di genere. Di conseguenza, la creazione delle applicazioni di intelligenza artificiale richiede più tempo perché stiamo cercando di assicurarci che i dati siano corretti e integrati correttamente. E se non ho abbastanza dati ? Può succedere che ti manchino i dati necessari per integrare una soluzione AI. Non ti mentirò, ci vuole tempo per costruire un set di dati pronto per l'intelligenza artificiale se ti affidi ancora a documenti cartacei o. csv file. Ti consiglierei di dedicare prima del tempo a costruire una moderna strategia di raccolta dei dati. Se hai già determinato l'obiettivo della tua soluzione ML, puoi chiedere al tuo team di dedicare del tempo alla creazione dei dati o esternalizzare il processo. Nel mio ultimo progetto, l'azienda voleva creare un modello di riconoscimento delle immagini ma non aveva immagini. Di conseguenza, abbiamo trascorso settimane a scattare foto per creare il set di dati e trovare modi per i futuri clienti di farlo per noi. Hai una strategia sui dati? Creare una cultura basata sui dati in un'organizzazione è forse la parte più difficile dell'essere uno specialista di intelligenza artificiale. Quando cerco di spiegare perché l'azienda ha bisogno di una cultura dei dati, posso vedere la frustrazione negli occhi della maggior parte dei dipendenti. In effetti, la raccolta dei dati può essere un'attività fastidiosa che grava sui tuoi dipendenti. Tuttavia, possiamo automatizzare la maggior parte del processo di raccolta dei dati! Un altro problema potrebbe essere l'accessibilità e la proprietà dei dati ... In molti dei miei progetti, ho notato che i miei clienti avevano dati sufficienti, ma che i dati erano bloccati e di difficile accesso. È necessario creare connessioni tra silos di dati nella propria organizzazione. Per ottenere approfondimenti speciali, è necessario raccogliere dati da più origini. Per quanto riguarda la proprietà, la conformità è anche un problema con le fonti di dati: solo perché un'azienda ha accesso alle informazioni, non significa che abbia il diritto di usarle! Non esitate a chiedere informazioni al vostro team legale (il GDPR in Europa è un esempio). Qualità e quantità! L'apprendimento automatico non riguarda solo grandi set di dati. In effetti, non si alimenta il sistema con tutti i punti dati noti in alcun campo correlato. Vogliamo alimentare il sistema con dati attentamente curati, sperando che possa apprendere, e forse estendere, ai margini, la conoscenza che le persone già possiedono. La maggior parte delle aziende ritiene che sia sufficiente raccogliere tutti i dati possibili, combinarli e lasciare che l'IA trovi intuizioni. Quando crei un set di dati, dovresti mirare a una varietà di dati. Consiglio sempre alle aziende di raccogliere dati sia interni che esterni. L'obiettivo è creare un set di dati unico che sarà difficile da copiare per i tuoi concorrenti. Le applicazioni di machine learning richiedono un numero elevato di punti dati, ma questo non significa che il modello debba considerare un'ampia gamma di funzionalità. Vogliamo dati significativi relativi al progetto. Potresti possedere dati ricchi e dettagliati su un argomento che semplicemente non è molto utile. Un esperto di intelligenza artificiale ti farà domande precise su quali campi contano davvero e in che modo tali campi saranno probabilmente importanti per la tua applicazione delle intuizioni che ottieni. Pre-elaborazione dei dati Va bene, torniamo al nostro set di dati. In questa fase, hai raccolto i tuoi dati che giudichi essenziali, diversi e rappresentativi per il tuo progetto AI. La pre-elaborazione include la selezione dei dati corretti dal set di dati completo e la creazione di un set di addestramento. Il processo di mettere insieme i dati in questo formato ottimale è noto come trasformazione delle caratteristiche . Formato: i dati potrebbero essere distribuiti in file diversi. Ad esempio, i risultati delle vendite di diversi paesi con valute, lingue, ecc. Differenti, che devono essere raccolti insieme per formare un set di dati. Pulizia dei dati: in questa fase, il nostro obiettivo è gestire i valori mancanti e rimuovere i caratteri indesiderati dai dati. Estrazione delle funzionalità: in questa fase ci concentriamo sull'analisi e l'ottimizzazione del numero di funzionalità. Di solito, un membro del team deve scoprire quali caratteristiche sono importanti per la previsione e selezionarle per calcoli più veloci e basso consumo di memoria. La perfetta strategia per i dati I progetti di IA di maggior successo sono quelli che integrano una strategia di raccolta dati durante il ciclo di vita del servizio / prodotto. In effetti, la raccolta dei dati non può essere una serie di esercizi una tantum. Deve essere integrato nel prodotto principale stesso. Fondamentalmente, ogni volta che un utente interagisce con il tuo prodotto / servizio, desideri raccogliere dati dall'interazione. L'obiettivo è utilizzare questo nuovo flusso di dati costante per migliorare il tuo prodotto / servizio. Quando raggiungi questo livello di utilizzo dei dati, ogni nuovo cliente che aggiungi rende il set di dati più grande e quindi il prodotto migliore, il che attira più clienti, il che rende migliore il set di dati e così via. È una sorta di cerchio positivo. I progetti ML migliori e orientati a lungo termine sono quelli che sfruttano set di dati dinamici e costantemente aggiornati. Il vantaggio di costruire tale strategia di raccolta dati è che diventa molto difficile per i tuoi concorrenti replicare il tuo set di dati. Con i dati, l'IA migliora e in alcuni casi, come il filtraggio collaborativo, è molto prezioso. Il filtraggio collaborativo fornisce suggerimenti basati sulla somiglianza tra gli utenti, migliorerà con l'accesso a più dati; più dati utente si hanno, più è probabile che l'algoritmo possa trovare un utente simile. Ciò significa che è necessaria una strategia per il miglioramento continuo del set di dati fintanto che esiste un vantaggio per l'utente per una migliore precisione del modello. Se puoi, trova modi creativi per sfruttare anche i segnali deboli per accedere a set di dati più grandi. Grazie mille per la lettura, condividi l'articolo con i tuoi colleghi
- BrainControl : Intelligenza Artificiale al Servizio Della Disabilità
BrainControl BCI, unico software brevettato che opera sulle onde cerebrali, traduce i pensieri dei pazienti in comandi ed azioni sui dispositivi portatili. Si stima che nel mondo ci siano oltre 3.000.000 di persone affette da paralisi e problemi di comunicazione, ma con abilità cognitive sufficientemente integre: è per dare loro un aiuto che nasce BrainControl. Rispondere a domande quali “Come stai?”, “Ti senti bene?” può rappresentare per molte famiglie e caregiver una sfida difficilissima da vincere perché un loro famigliare o paziente è affetto da una malattia che impedisce qualsiasi tipo di movimento volontario. Parliamo di persone alle quali, nei casi più gravi, sono preclusi anche i movimenti residui di pupille, zigomo o dita: sono i pazienti locked-in, imprigionati di fatto in un corpo completamente immobile ma dotati di capacità cognitive. Con BrainControl BCI è possibile comunicare con l’esterno grazie al pensiero. Un Software e un caschetto EEG, unitamente a un training personalizzato, sono in grado di trasformare in comandi i pensieri del paziente, dando modo di rispondere a semplici domande e di comunicare. Una risposta di poche lettere che cambia la vita a tantissime persone. BrainControl BCI è la soluzione ideata da LiquidWeb, PMI senese, che si prefigge di aiutare le persone con gravi disabilità, le loro famiglie e caregiver a migliorare la qualità di vita. Roberto Zanco, Presidente di Liquidweb dichiara: “Alla base del nostro lavoro c’è laconvinzione che le persone sono più importanti della tecnologia e che, grazie a quest’ultima, è possibile aiutare chi è colpito da gravi patologie a riavere fiducia nella vita e una connessione con il mondo.” BrainControl BCI - tramite dei sensori indossabili - interpreta e classifica le onde cerebrali generate dal movimento immaginato, attraverso un software basato sull’IA, dopo aver intercettato l’attività elettrica sulla corteccia cerebrale. Grazie al training, il paziente impara ad usare pensieri “decodificabili” per selezionare la risposta voluta sul dispositivo. BrainControl BCI è un dispositivo medico CE di classe I brevettato in Italia e in attesa di ottenere la stessa certificazione in altri Paesi EU, US, Canada, Giappone e Cina; ha vinto nel 2020 ilBando Horizon per la Ricerca e l’Innovazione dell’Unione Europea. L’utilizzatore di BrainControl BCI è una persona con gravissime disabilità ma con abilità cognitive sufficientemente integre, persone quindi colpite da patologie quali tetraplegia, SLA, sclerosi multipla, distrofie muscolari e anche coloro che hanno subito danni cerebrali di origine ischemica o traumatica. “Il software e il caschetto costituiscono il cuore di BrainControl ma, senza un training personalizzato, i risultati non sarebbero soddisfacenti. – spiega Tommaso Capresi, BrainControl Specialist - Infatti, ogni situazione è differente e le variabili talmente sensibili che richiedono necessariamente una personalizzazione 1to1.” Attualmente BrainControl BCI, oltre ad essere stato adottato da diversi pazienti privati, è in uso presso diverse strutture pubbliche, tra cui l’Ospedale San Jacopo di Pistoia, Asur Marche, Asl Lecce, ASST Melegnano. BrainControl BCI fa parte di una gamma di dispositivi che comprende anche BrainControl Sensory e Avatar: tre diverse soluzioni, compatibili con i differenti gradi di mobilità e interazione del paziente. BrainControl Sensory è pensato per pazienti con movimenti residui volontari di qualsiasi parte del corpo (movimenti oculari, movimenti della mano, delle dita, dello zigomo, ecc.). Grazie a una serie di sensori, quali puntatori oculari, sensori di movimento, emulatori mouse, è possibile sfruttare i movimenti residui del paziente per creare un’interazione con il mondo esterno. BrainControl Avatar è pensato per persone con difficoltà motorie, permette di visitare da remoto istallazioni, musei, spazi espositivi ed eventi in genere. In maniera del tutto indipendente, è possibile comandare un alter ego robotico, regolando audio, video e altezza del campo visivo. David Landi, R&D Manager di Liquidweb afferma che: “Grazie al nostro Avatar l’esperienza sarà immersiva e reale, come se si stesse visitando di persona l’ambiente prescelto.” Inoltre, il monitor e gli altoparlanti di cui è dotato l’avatar consentono di rendersi visibile a distanza, se lo si desidera, dando spazio a una personificazione dell’Avatar che permette alle persone intorno di interagire con esso, stabilendo una comunicazione nuova e vivace fra le persone in loco e la persona connessa. Contatti Sito Web Twitter Facebook Instagram Linkedin Per informazioni email: info@braincontrol.eu telefono: 0577 1916187
- In che modo Data Scientist e Business Analyst possono migliorare la pianificazione strategica ?
La Data Science si occupa di dati ed è molto utile in questi giorni nell'analisi e nell'apprendimento automatico. I metodi di Data Science e Business Intelligence aiutano a scoprire modelli e osservazioni utili e produttivi. EDA esplora i dati e ci aiuta a scoprire aspetti completamente nuovi dei dati. Nel campo degli affari, l'equazione principale è massimizzare i profitti e aumentare l'efficienza del business. La business intelligence si occupa di elaborare attraverso i dati e di trarre utili conoscenze e intelligenze manageriali. I dati e le conclusioni, utilizzati in modo efficiente, possono aumentare molte volte la redditività di un'azienda. La corretta implementazione aiuta a trasformare il piano statico in un sistema non solo efficiente ma anche pronto per il futuro. Questo è il vantaggio dell'utilizzo della scienza dei dati. Il sistema/modello non è solo predisposto, ma è anche predisposto con dati ed esperienze del passato che gli consentono di funzionare in modo efficiente e di adattarsi secondo le esigenze richieste. Perché la scienza dei dati? Sappiamo che la scienza dei dati è una miscela di strumenti, logiche, tecniche e algoritmi di apprendimento automatico che hanno l'obiettivo di decodificare schemi nascosti e arrivare a conclusioni da dati grezzi. La Data Science può essere utilizzata per spiegare cosa sta succedendo elaborando la cronologia dei dati. La scienza dei dati ha trovato impiego in molti aspetti della nostra vita quotidiana, viene utilizzata per prevedere il tempo, nella previsione del mercato azionario, nelle scienze della salute, nella finanza, nella logistica, nella previsione delle vendite e molti altri. L'uso della scienza dei dati e dell'apprendimento automatico migliorerà sicuramente l'implementazione della business intelligence. Ciò porterà a una maggiore efficienza delle imprese ea una migliore pianificazione strategica. L'analisi può essere definita come il processo di modellazione e trasformazione dei dati per trarre conclusioni e prendere decisioni migliori. Spesso è facile raccogliere una grande quantità di dati, ma applicarli per scopi significativi rimane una sfida. In un articolo del 2015 di McKinsey, hanno affermato che i rivenditori che utilizzano Data Analytics su larga scala all'interno dell'organizzazione potrebbero aumentare i propri margini operativi di oltre il 60%. Microsoft Power BI ha ora milioni di utenti, il che spiega che c'è una tendenza crescente all'utilizzo dei dati per sfruttare le decisioni aziendali. Processo decisionale basato sui dati La scienza dei dati consiste in vari metodi e processi che supportano e guidano l'estrazione di informazioni e conoscenze dai dati grezzi. La Data Science, se utilizzata correttamente, ha vaste applicazioni nel mondo degli affari. Un analista aziendale lavorerà con l'amministrazione aziendale e prenderà parte all'EDA, che è un approccio per analizzare i set di dati, riassumerne le caratteristiche principali, lavorare con i dati e perfezionare i dati in modo che possano essere utilizzati in modo produttivo. Con grandi quantità di dati a nostra disposizione, le aziende possono prendere migliori decisioni commerciali, finanziarie e di marketing. Se un'azienda dispone di dati precedenti su quale prodotto ha venduto bene in quale momento o in quali località, può lavorare in modo da aumentare le vendite. I Big Data aiutano molto i punti vendita al dettaglio e i venditori di beni di consumo in rapida evoluzione. Con dati corretti, possono essere prese varie decisioni importanti che possono migliorare i profitti. Il processo decisionale basato sui dati ha molte applicazioni. Ad esempio, in Finanza, potrebbe essere trovare il modo più conveniente per utilizzare i servizi cloud o assumere nuovo personale. Oppure potrebbe essere il modo più economico per promuovere un nuovo prodotto. Nel caso del marketing, con un processo decisionale basato sui dati, possiamo capire quali media promozionali hanno la migliore portata e ritorno sull'investimento (ROI). In caso di crescita complessiva dell'azienda, i dati possono essere utilizzati per monitorare la fedeltà dei clienti. I dati passati sui clienti possono essere portati e analizzati per scoprire i dati demografici dei clienti più fedeli. Scienza dei dati in azione La scienza dei dati viene applicata ampiamente in tutte le aree funzionali delle aziende. Le società finanziarie lo utilizzano per il punteggio del credito, il trading, il rilevamento delle frodi e la gestione del database. Grandi aziende come Amazon e Walmart utilizzano la scienza dei dati in vari campi: dal marketing alla gestione della catena di approvvigionamento, dalla previsione delle richieste alle risorse umane. Molte aziende sono diventate società di data mining dedicate che si occupano solo di data science. Facciamo un esempio. Supponiamo che sia un periodo festivo in India, il periodo festivo in India mostra una tendenza molto alta dello shopping di moda nei clienti indiani. Diciamo ora che Myntra vuole aumentare le sue vendite in questa stagione. Quindi prenderanno i dati dei precedenti, diciamo 5 anni, e controlleranno quali prodotti o quale tipo di prodotti sono stati venduti di più e li sovraccaricheranno in modo che non si esauriscano, aumentando così le loro vendite. Quindi, qual è la tabella di marcia per analizzare grandi quantità di dati? Possiamo isolare 6 passaggi. Raccolta dati Archivio dati Pulizia dei dati Analisi dei dati Visualizzazione Il processo decisionale Raccolta dati, per le aziende passerà le vendite, i dati dei clienti passati, il database di prodotti o servizi, il rendimento di un particolare prodotto o servizio e simili. Data Storage terrà traccia di tutti i dati, le grandi aziende lo fanno continuamente e per qualsiasi azienda emergente, qualsiasi azienda di data mining può farlo per loro. La pulizia dei dati comprenderebbe la rimozione di dati e voci errati che causerebbero problemi negli algoritmi di apprendimento automatico. Sono disponibili vari metodi e tecniche di pulizia dei dati. Le parti più importanti, l'analisi e la visualizzazione dei dati, vengono utilizzate per decodificare i modelli nei dati e trovare elementi conclusivi. I passaggi finali sarebbero raccogliere conclusioni rilevanti dai dati e arrivare a una decisione. L'obiettivo di utilizzare decisioni basate sui dati nel Business deve massimizzare i profitti e migliorare l'efficienza del business. Come viene implementato nel settore I dati sono presenti ovunque, i team di dati e analisi delle aziende raccolgono dati da varie fonti. Potrebbe essere Web Analytics, database di applicazioni, moduli di feedback dei clienti, piattaforme di BI e molti altri. Ad esempio, ogni volta che valutiamo un acquisto Amazon e forniamo una recensione, generiamo 2 tipi di dati: uno è la valutazione che è un dato categorico e il testo della recensione che aiuterà nell'analisi del testo, nell'analisi del sentimento e in altre attività di PNL. Allo stesso modo, supponiamo di utilizzare un servizio di consegna di cibo come Zomato, stiamo generando una grande quantità di dati. Ciò include i dati sulla posizione, il prezzo, i nostri interessi alimentari, le abitudini di pagamento (carta, Netbanking, contrassegno, ecc.). Tutti questi dati sono estremamente vantaggiosi per le aziende. Con tutti i dati che le aziende possiedono, si tratta di un'implementazione efficace. Un esempio di vita reale sarebbe come Walmart fa scorta prima di qualsiasi probabile calamità naturale. Prima dell'uragano Frances nel 2004, i dirigenti di Walmart volevano scoprire quali tipi di articoli avrebbero dovuto tenere alla rinfusa. I loro team di dati hanno esaminato i dati passati degli acquisti per scoprire che tipo di articoli avrebbero venduto di più. Si è scoperto che le crostate alla fragola e la birra sono i prodotti alimentari più acquistati negli articoli sich. Dopo i temporali, spesso c'è la possibilità di interruzioni di corrente e disturbi alla linea del gas per lunghi periodi, le crostate alla fragola sono molto popolari in quanto non hanno bisogno di riscaldamento e durano a lungo. E birra solo per rilassarsi. Walmart ha reso felici i floridiani mantenendo un'ampia scorta di pop-tarts e birra e loro stessi hanno realizzato buoni profitti. UPS è una delle più grandi società di consegna pacchi al mondo. UPS sfrutta anche i dati per ottimizzare il trasporto dei pacchi. I loro strumenti di pianificazione della rete (NPT) utilizzano l'apprendimento automatico per risolvere le sfide logistiche e di trasporto, come il modo in cui i pacchi devono essere instradati, pianificati e quando devono essere consegnati. L'IA suggerisce anche i percorsi da sola. Secondo quanto riferito, la piattaforma ha risparmiato milioni di dollari per UPS. Un buon EDA aiuta molto Dopo che i dati sono stati elaborati e perfezionati, è possibile eseguire l'EDA su tali dati. Viene utilizzato per eseguire indagini sui dati, trovare schemi, scoprire anomalie, utilizzare le statistiche per arrivare a conclusioni. I miglioramenti nel calcolo hanno portato a sviluppi nell'EDA. Display a risoluzione migliore, interfacce utente sofisticate, display 4K hanno reso EDA un'esperienza più piacevole. Sono finiti i giorni in cui dovevi tracciare un grafico a barre su carta millimetrata. Ora puoi semplicemente condividere il dashboard di Power BI con il team. Grafici, grafici e dati visivi forniscono preziose conclusioni su come procedere. I dati abbondanti disponibili in questi giorni possono essere applicati e scoperte e approfondimenti possono essere ottenuti dai dati altamente dettagliati. EDA è molto prezioso dal punto di vista della scienza dei dati, per assicurarsi che i risultati che vengono prodotti siano validi e applicabili ai contesti aziendali desiderati. L'EDA consente la valutazione sistematica del contenuto di un campo dati e la sua interazione con altri campi dati, che è spesso la metrica chiave che rappresenta il comportamento o i dati che l'azienda vuole analizzare o prevedere (es. età del cliente, spesa del cliente, vendita di un particolare prodotto in una determinata area, ecc.). Questi metodi aiutano a identificare potenziali cause di comportamento, identificare punti dati potenzialmente problematici o spuri e sviluppare ipotesi da testare che modelleranno la loro analisi e la strategia di sviluppo del modello. Attraverso i metodi EDA, le ipotesi vengono convalidate e vengono identificati i modelli, il che aiuta a comprendere il problema e la selezione del modello. Ciò garantisce un'analisi di alta qualità e convalida che i dati sono stati generati nel modo previsto. Migliorare la pianificazione strategica nelle organizzazioni Il successo del data mining e del lavoro con i dati porterà a un'EDA efficiente, che fornirà migliori strategie di business alle aziende, aiutando nella gestione strategica, nel processo decisionale efficiente, nella gestione della catena di fornitura e quindi darà all'azienda un vantaggio competitivo rispetto alle altre. Ciò si rifletterà nella performance netta dell'economia in termini di profitti. La pianificazione strategica di successo nelle organizzazioni mira al futuro desiderato, agli obiettivi o al raggiungimento dell'obiettivo desiderato. Si tratta di dare uno sguardo al quadro più ampio e ottimizzare il corso delle azioni. Armati di dati, numeri, statistiche, previsioni e altri approfondimenti, i preparativi vengono effettuati dall'aspetto della Data Science. Questo dà senza dubbio un ulteriore vantaggio. Diciamo ad esempio, in un'azienda se sono previsti tutti i parametri del mercato e le vendite dei suoi prodotti, sono in grado di aggregare i loro metodi in un unico piano aziendale centralizzato, struttura organizzativa e budget predefinito. Tutto questo si conclude nella gestione efficiente dell'azienda. Grazie mille per la lettura, condividi l'articolo al tuo collega
- Algoritmo Support Vector Machine (SVM) Spiegazione - Algoritmo di Classificazione Machine Learning
Dopo aver parlato dei dataset per i problemi di IA e di come i dati contenuti nei dataset siano oro colato per i data scientist, in questo post proverò quindi a presentare uno degli algoritmi più noti e diffusi di apprendimento automatico utilizzato per risolvere i problema di classificazione e regressione: il SVM (Support Vector Machine). Spiegazione Algoritmo Support Vector Machine (SVM) Definizione SVM “Le macchine a vettori di supporto utilizzano i dati etichettati per definire un iperpiano con cui suddividere e classificare gli elementi presenti nel dataset.” oppure come proposto su wikipedia "Le macchine a vettori di supporto (SVM, dall'inglese support-vector machines) sono dei modelli di apprendimento supervisionato associati ad algoritmi di apprendimento per la classificazione. Dato un insieme di esempi per l'addestramento, ognuno dei quali etichettato con la classe di appartenenza fra le due possibili classi, un algoritmo di addestramento per le SVM costruisce un modello che assegna i nuovi esempi a una delle due classi, ottenendo quindi un classificatore lineare binario non probabilistico. Un modello SVM è una rappresentazione degli esempi come punti nello spazio, mappati in modo tale che gli esempi appartenenti alle due diverse categorie siano chiaramente separati da uno spazio il più possibile ampio. I nuovi esempi sono quindi mappati nello stesso spazio e la predizione della categoria alla quale appartengono viene fatta sulla base del lato nel quale ricade." Che vuol dire? Per spiegarvi meglio la definizione precedente voglio valutare il problema di classificazione binaria (ovvero fra due classi). Ancora più nello specifico, consideriamo che siano solo 2 le features utilizzate per classificare le istanze del dataset. È quindi possibile rappresentare le istanze in un spazio cartesiano 2D. L’algoritmo traccerà una retta (nel caso lineare) per suddividere le istanze delle due classi in base alla classe a cui appartengono. Questa retta servirà quindi per classificare le istanze non etichettate. Nella Figura sopra sono riportate le istanze del dataset suddivise in base alle features scelte per la classificazione x1 e x2. SVM definisce quindi una linea che suddivida equamente le istanze delle due classi. Nuovi elementi non etichettati saranno quindi classificati nella seguente maniera: se si troveranno al di sopra della linea rossa saranno classificati appartenenti alla classe blue; se si troveranno al di sotto della linea rossa saranno classificati appartenenti alla classe verde. Esistono vari kernel: noi abbiamo visto quello lineare, che il più semplice, ma sono disponibili per l’uso anche il kernel polinominale, quello esponenziale oppure è possibile crearne uno personalizzato. Cambiando kernel sarà quindi possibile utilizzare altre funzioni matematiche più complesse (come iperboli e parabole) per suddividere le istanze del dataset. È importante notare che non sempre è possibile suddividere tutte le istanze del dataset nella maniera corretta come nel primo esempio presentato. In questa seconda Figura viene mostrato come l’utilizzo di un kernel lineare non permetta di risolvere il problema. Probabilmente utilizzando un altro kernel si potrebbero ottenere risultati migliori. Non sempre ciò è possibile! Prima di terminare voglio mostrare con una terza Figura l’utilizzo di SVM nel caso in cui vengano utilizzate 3 features per la classificazione. In questo caso anziché tracciare una retta, viene utilizzato un piano. In conclusione, il suddetto algoritmo è molto utilizzato perché efficiente ed efficace (ovvero produce buoni risultati di classificazione) ed esistono varie implementazioni, tra cui vi consiglio la versione presente nella libreria sklearn. Spoiler Nel prossimo post presenterò un caso di studio relativo ad un semplice problema di classificazione, in cui utilizzerò SVM. Sono appassionato di Intelligenza Artificiale e nel 2020 ho ricevuto il Ph.D. in Visione Artificiale presso l'Università degli Studi di Parma. Se vuoi ricevere maggiori informazioni sull'articolo o sui progetti che sto svolgendo visita il mio sito web.
- 8 Modi per Potenziare il tuo E-Commerce con l'Intelligenza Artificiale Usando il Machine Learning
La tecnologia sta avanzando a una velocità vertiginosa. "Intelligenza artificiale", "Realtà aumentata" e "Apprendimento automatico" sono le parole d'ordine del giorno. È sbalorditivo come siano in grado di fare ciò che pensavamo potessimo solo noi esseri mortali. Non solo fanno queste cose, le fanno anche meglio. È sorprendente vedere quanto valore stanno creando per le aziende oggi. Parliamo di come l'apprendimento automatico, un tipo di intelligenza artificiale (AI), ha rivoluzionato il settore dell'e-commerce. In poche parole, l'apprendimento automatico è un metodo che utilizza l'esperienza per migliorare le prestazioni per un periodo di tempo. I computer migliorano e adattano automaticamente i propri processi senza alcuna programmazione mirata da parte dell'uomo. Puoi sempre saperne di più su questo argomento Iscrivendoti al sito e sfruttando tutte le risorse rese gratis e disponibili . Il machine learning sta aiutando le società di sviluppo di e-commerce a portare l'esperienza del cliente a un livello completamente nuovo. Li rende anche più agili. Li aiuta a generare entrate in modi che non avrebbero mai potuto fare in precedenza. Esistono diversi modi in cui il potere dell'apprendimento automatico può liberare il pieno potenziale di un'attività di e-commerce. Sembra che l'e-commerce sia in un costante stato di reinvenzione. Sono cambiate così tante cose nel corso degli anni e l'apprendimento automatico sembra essere un solido punto di svolta. Giusto per mettere le cose in prospettiva, ecco alcune statistiche che gettano luce sullo stato attuale del settore dell'e-commerce e su come l'apprendimento automatico lo sta influenzando: Statista prevede che le entrate derivanti dalle vendite di e -commerce al dettaglio in tutto il mondo ammonteranno a $ 4,88 trilioni di dollari . Mostra che l'e-commerce crescerà al tasso del 20% ogni anno. L'e-commerce mobile sta crescendo a un ritmo ancora più rapido. È stato stimato che entro la fine del 2022 rappresenterebbe oltre il 70% del traffico e-commerce totale . Gartner prevede che entro il 2021 l'AI gestirà oltre l' 80% di tutte le interazioni con i clienti . Entro la fine del 2021, la realtà aumentata genererà oltre 120 miliardi di dollari di entrate. 1 ) Segmentazione dei clienti, personalizzazione dei servizi e campagne Quando un cliente entra in un negozio fisico, un venditore di solito si avvicina al cliente e gli chiede cosa sta cercando. Inoltre, effettua ulteriori indagini per comprendere i gusti e le preferenze del cliente. Inoltre, il venditore osserva anche il comportamento del cliente, il linguaggio del corpo e altri segnali non verbali che lo aiutano a servire meglio il cliente. Quando il cliente ha un dubbio, una domanda o una preoccupazione, il venditore lo affronta immediatamente e incoraggia il cliente a effettuare l'acquisto. In altre parole, il venditore segmenta il cliente e offre un servizio mirato e personalizzato. I siti di e-commerce non hanno questo lusso. I clienti di solito acquistano online per comodità piuttosto che per esperienza. Di solito hanno in mente un prodotto specifico. Se lo trovano facilmente, possono acquistarlo. Una volta trovato il prodotto, qualora avesse dei dubbi in merito, non c'è nessuno a quel punto che possa rispondere immediatamente a quei dubbi e spingere il cliente verso l'acquisto. Pertanto, a differenza dei negozi offline, i negozi online offrono un ambito limitato per fornire un'esperienza cliente ottimizzata in grado di guidare le vendite e aumentare le entrate. Per fornire un'esperienza simile a quella che un cliente avrebbe in negozio, i rivenditori di e-commerce devono raccogliere enormi quantità di dati e dar loro un senso. È qui che l'apprendimento automatico può aiutare. Può aiutare i rivenditori di e-commerce a eseguire campagne mirate in grado di convertire potenziali acquirenti in effettivi. 2 ) Prezzi ottimizzati Gli acquirenti online sono generalmente molto sensibili al prezzo. Se un prodotto costa quanto quello che fa in negozio, i clienti potrebbero sentirsi più a loro agio ad andare in negozio e valutarlo in prima persona prima di acquistarlo. Inoltre, non è raro che gli acquirenti confrontino i prezzi dei prodotti su varie piattaforme di e-commerce per trovare l'offerta migliore. Le attività di e-commerce hanno riscontrato molto successo implementando prezzi dinamici. L'apprendimento automatico può modificare e riadattare i prezzi tenendo conto di vari fattori contemporaneamente. Questi fattori includono i prezzi della concorrenza, la domanda del prodotto, il giorno della settimana, l'ora del giorno, il tipo di cliente, ecc. Ti rendi conto di quanto la possibilità di cambiare un prezzo "Real Time" a livello marketing quanto sia Potente ? Come un commesso che vuole farti uno sconto o alzarti il prezzo ma Virtuale ! 3 ) Protezione dalle frodi I chargeback sono l'incubo di ogni rivenditore di e-commerce. La maggior parte degli acquirenti, soprattutto quelli alle prime armi, ha l'impressione che le aziende di e-commerce non siano abbastanza sicure. Le società di e-commerce sono vulnerabili ad attività fraudolente. i rivenditori di e-commerce devono stare molto attenti. Non è raro che le aziende, soprattutto quelle online, chiudano i negozi a causa di una cattiva reputazione. Le aziende non devono quindi tagliare gli angoli quando si tratta di rilevare e prevenire qualsiasi tipo di frode. L'apprendimento automatico può eliminare in modo significativo l'ambito delle attività fraudolente. Può elaborare rapidamente risme di dati esaustivi e ripetitivi e può stroncare attività fraudolente sul nascere, rilevando proattivamente eventuali anomalie. 4 ) Risultati di ricerca ottimizzati Non tutti gli acquirenti sono bravi con le parole chiave. Non tutta la ricerca è intelligente. Per effettuare un acquisto, gli acquirenti devono essere in grado di trovare ciò che stanno cercando. Non solo, devono essere in grado di farlo facilmente. Potresti avere tutti i prodotti sotto il sole sul tuo sito di e-commerce. Tuttavia, ciò non ti farà bene se il cliente non riesce a trovare ciò che sta effettivamente cercando, convenientemente. I risultati della ricerca non possono essere basati solo sulle parole chiave. L'apprendimento automatico può rivelare modelli di ricerca, acquisti e preferenze che consentono risultati di ricerca ottimali. I risultati di ricerca basati su questi fattori possono mostrare ai clienti esattamente quello che stanno cercando e suggerire anche articoli simili . 5 ) Raccomandazioni sul prodotto Gli acquirenti possono entrare in un negozio sapendo cosa vogliono. Tuttavia, un eccellente venditore può anticipare le esigenze dei clienti e consigliare i prodotti anche prima che i clienti si rendano conto di averne bisogno. I consigli sui prodotti possono aumentare notevolmente le entrate. Questo diventa difficile da ottenere su una piattaforma online in quanto richiede l'identificazione di modelli di comportamento di vendita e acquisto. Molti rivenditori di e-commerce hanno sfruttato l'apprendimento automatico per creare con successo un motore di raccomandazione del prodotto. Sono in grado di identificare le tendenze nel comportamento di acquisto per suggerire prodotti adatti a un acquirente. McKinsey and Company ha rilevato che il 75% di ciò che i clienti hanno guardato su Netflix si basava sui consigli sui prodotti. Il 35% degli acquisti effettuati su Amazon è dovuto ai consigli sui prodotti. 6 ) Servizio Clienti In questo ambiente aziendale competitivo, i clienti non si aspettano solo un buon prodotto. Valutano anche la qualità dell'assistenza clienti. La maggior parte dei clienti teme di chiamare quei numeri verdi gratuiti, ascoltare infinite opzioni di menu e lottare per connettersi a una persona reale che possa aiutarli. Nessuno attende con impazienza risposte e-mail in ritardo e impersonali ricevute dagli ID dell'assistenza clienti. Per la maggior parte delle organizzazioni, rimanere al passo con le richieste del servizio clienti può essere molto impegnativo. L'automazione dell'assistenza clienti e l'abilitazione del self-service possono aiutare sia il rivenditore che il cliente. L'apprendimento automatico può essere utilizzato in molti modi per aiutare i clienti e migliorare la soddisfazione dei clienti. Un ottimo esempio è l' uso dei chatbot . I chatbot possono identificare e risolvere i problemi conversando con il cliente in modo naturale. Il machine learning può aiutare le aziende a offrire un'assistenza clienti di qualità superiore e personalizzata su larga scala. 7 ) Gestione della domanda e dell'offerta Tutte le aziende ricorrono alla previsione per abbinare domanda e offerta. Per prevedere bene, i rivenditori di e-commerce devono basare le loro decisioni principalmente sui dati, tra le altre cose. Per prendere solide decisioni basate sui dati, le aziende devono elaborare quanti più dati possibile. È anche importante assicurarsi che i dati siano accurati e che vengano elaborati correttamente. L'apprendimento automatico può elaborare quantità esaustive di dati in modo accurato e molto più veloce. L'apprendimento automatico può anche studiare i dati per fornire quante più informazioni possibili. Ciò consente non solo la previsione, ma aiuta anche le aziende online a migliorare i propri prodotti e servizi. 8 ) Marketing omnicanale potenziato dal machine learning Sappiamo già che il marketing omnicanale garantisce una maggiore fidelizzazione dei clienti, un tasso di acquisto più elevato e un maggiore coinvolgimento . Non si può negare cosa può fare per l'e-commerce. Tuttavia, dato che il marketing omnicanale è incentrato sui dati dei clienti, più dati possono solo migliorare il modo in cui funziona per il tuo negozio online. Dato che l'apprendimento automatico funziona in base alla raccolta di dati e al miglioramento degli algoritmi nel tempo man mano che vengono aggiunti più dati, la tua strategia di marketing omnicanale può essere resa più potente solo con questi dati in costante aggiornamento. Ad esempio, immagina di mettere in atto un flusso di lavoro di automazione del marketing omnicanale e di avere i canali selezionati automaticamente in base a come il cliente si è impegnato con loro in passato. O forse un flusso di lavoro che si riordina automaticamente per inviare il messaggio perfetto che risuonerà meglio con il tuo cliente in base a come ha fatto acquisti o navigato di recente. Non solo, i tuoi dati si aggiorneranno automaticamente e apprenderanno in base a come si comporta il tuo cliente nel tempo, più dati compila, meglio diventa. Conclusione L'apprendimento automatico nell'e-commerce è destinato a restare. Come abbiamo discusso, ha alcune potenti applicazioni nell'e-commerce. Sempre più rivenditori di e-commerce stanno abbracciando l'apprendimento automatico e traendo molto valore da esso. Per le aziende che cercano di automatizzare processi manuali noiosi, laboriosi e costosi, l'apprendimento automatico può essere una risorsa enorme. Può fornire ai rivenditori online informazioni significative sui propri clienti. Possono aiutare le aziende online a generare più clic, convertire potenziali clienti in clienti, trattenerli e persino costruire solide relazioni con i clienti. Grazie mille per la lettura, se questo articolo ti è stato utile condividilo per supportarci
- Le Differenze tra Machine Learning (ML) e Deep Learning (DL) e Intelligenza Artificiale
Questi termini sono spesso usati in modo intercambiabile, ma quali sono le differenze che li rendono ciascuno una tecnologia unica? La tecnologia sta diventando sempre più incorporata nella nostra vita quotidiana di minuto in minuto e, per stare al passo con il ritmo delle aspettative dei consumatori, le aziende fanno sempre più affidamento su algoritmi di apprendimento per rendere le cose più facili. Puoi vedere la sua applicazione nei social media (tramite il riconoscimento degli oggetti nelle foto) o parlando direttamente ai dispositivi (come Alexa o Siri). Queste tecnologie sono comunemente associati con l'intelligenza artificiale , machine learning , apprendimento profondo , e le reti neurali, e mentre lo fanno tutto il gioco un ruolo, questi termini tendono ad essere utilizzati in modo intercambiabile nella conversazione, che porta a una certa confusione intorno alle sfumature tra di loro. Si spera di poter utilizzare questo post del blog per chiarire alcune delle ambiguità qui. Come si relazionano intelligenza artificiale, apprendimento automatico, reti neurali e apprendimento profondo? Forse il modo più semplice per pensare all'intelligenza artificiale, all'apprendimento automatico, alle reti neurali e all'apprendimento profondo è pensarli come bambole russe che nidificano. Ciascuno è essenzialmente un componente del termine precedente. Cioè, l'apprendimento automatico è un sottocampo dell'intelligenza artificiale. Il deep learning è un sottocampo del machine learning e le reti neurali costituiscono la spina dorsale degli algoritmi di deep learning. In effetti, è il numero di strati di nodi, o profondità, di reti neurali che distingue una singola rete neurale da un algoritmo di apprendimento profondo, che deve averne più di tre. Cos'è una rete neurale? Le reti neurali, e più specificamente le reti neurali artificiali (ANN), imitano il cervello umano attraverso una serie di algoritmi. A livello di base, una rete neurale è composta da quattro componenti principali: input, pesi, un bias o soglia e un output. Simile alla regressione lineare , la formula algebrica sarebbe simile a questa: Da lì, appliciamolo a un esempio più tangibile, ad esempio se dovresti ordinare o meno una pizza per cena. Questo sarà il nostro risultato previsto, o y-capello. Supponiamo che ci siano tre fattori principali che influenzeranno la tua decisione: Se risparmierai tempo ordinando (Sì: 1; No: 0) Se perdi peso ordinando una pizza (Sì: 1; No: 0) Se risparmierai denaro (Sì: 1; No: 0) Quindi, supponiamo quanto segue, dandoci i seguenti input: X 1 = 1, dal momento che non stai preparando la cena X2 = 0, poiché stiamo ottenendo TUTTI i condimenti X 3 = 1, poiché stiamo ottenendo solo 2 fette Per semplicità, i nostri input avranno un valore binario di 0 o 1. Questo tecnicamente lo definisce come un perceptron poiché le reti neurali sfruttano principalmente i neuroni sigmoide, che rappresentano valori dall'infinito negativo all'infinito positivo. Questa distinzione è importante poiché la maggior parte dei problemi del mondo reale non sono lineari, quindi abbiamo bisogno di valori che riducano l'influenza che ogni singolo input può avere sul risultato. Tuttavia, riassumere in questo modo ti aiuterà a capire la matematica sottostante in gioco qui. Andando avanti, ora dobbiamo assegnare alcuni pesi per determinare l'importanza. Pesi maggiori rendono il contributo di un singolo input all'output più significativo rispetto ad altri input. W 1 = 5, poiché dai valore al tempo W 2 = 3, poiché apprezzi restare in forma W 3 = 2, visto che hai soldi in banca Infine, assumeremo anche un valore di soglia di 5, che si tradurrebbe in un valore di bias di –5. Poiché abbiamo stabilito tutti i valori rilevanti per la nostra somma, ora possiamo inserirli in questa formula. Utilizzando la seguente funzione di attivazione, possiamo ora calcolare l'output (ovvero la nostra decisione di ordinare la pizza): In sintesi: Y-cappello(il nostro risultato previsto) = Decidi se ordinare o meno la pizza Y-cappello = (1 * 5) + (0 * 3) + (1 * 2) - 5 Y-cappello = 5 + 0 + 2-5 Y-cappello = 2, che è maggiore di zero. Poiché Y-cappello è 2, l' uscita dalla funzione di attivazione sarà 1, il che significa che ci sarà da ordinare la pizza (Cioè, che non fa la pizza amore). Se l'uscita di un singolo nodo è superiore al valore di soglia specificato, quel nodo viene attivato, inviando i dati al livello successivo della rete. In caso contrario, nessun dato viene passato al livello successivo della rete. Ora, immagina che il processo di cui sopra venga ripetuto più volte per una singola decisione poiché le reti neurali tendono ad avere più livelli "nascosti" come parte degli algoritmi di apprendimento profondo. Ogni livello nascosto ha una propria funzione di attivazione, che potenzialmente passa le informazioni dal livello precedente a quello successivo. Una volta generati tutti gli output dagli strati nascosti, vengono utilizzati come input per calcolare l'output finale della rete neurale. Ancora una volta, l'esempio sopra è solo l'esempio più semplice di una rete neurale; la maggior parte degli esempi del mondo reale sono non lineari e molto più complessi. La principale differenza tra la regressione e una rete neurale è l'impatto del cambiamento su un singolo peso. Nella regressione, è possibile modificare un peso senza influire sugli altri input in una funzione. Tuttavia, questo non è il caso delle reti neurali. Poiché l'output di uno strato viene passato allo strato successivo della rete, una singola modifica può avere un effetto a cascata sugli altri neuroni della rete. La differenza tra Reti Neurali e Deep Learning? Sebbene fosse implicito nella spiegazione delle reti neurali, vale la pena sottolinearlo in modo più esplicito. Il "profondo" nell'apprendimento profondo si riferisce alla profondità degli strati in una rete neurale. Una rete neurale composta da più di tre livelli, che includerebbero gli input e l'output, può essere considerata un algoritmo di deep learning. Questo è generalmente rappresentato utilizzando il diagramma seguente: La maggior parte delle reti neurali profonde sono feed-forward, nel senso che fluiscono in una sola direzione dall'input all'output. Tuttavia, puoi anche addestrare il tuo modello tramite backpropagation; ovvero, spostarsi in direzione opposta dall'output all'input. La backpropagation ci consente di calcolare e attribuire l'errore associato a ciascun neurone, permettendoci di regolare e adattare l'algoritmo in modo appropriato. Differenze tra Machine Learning e Deep Learning ? Come spieghiamo nel nostro articolo sull'hub di apprendimento sul deep learning , il deep learning è semplicemente un sottoinsieme del machine learning. Il modo principale in cui differiscono è nel modo in cui ogni algoritmo apprende e nella quantità di dati utilizzati da ciascun tipo di algoritmo. Il deep learning automatizza gran parte del processo di estrazione delle funzionalità, eliminando parte dell'intervento umano manuale richiesto. Consente inoltre l'uso di grandi set di dati, guadagnandosi il titolo di " apprendimento automatico scalabile " in questa conferenza del MIT. Questa capacità sarà particolarmente interessante quando inizieremo a esplorare maggiormente l'uso di dati non strutturati, in particolare perché si stima che l'80-90% dei dati di un'organizzazione non sia strutturato . L'apprendimento automatico classico o "non profondo" dipende maggiormente dall'intervento umano per l'apprendimento. Gli esperti umani determinano la gerarchia delle funzionalità per comprendere le differenze tra gli input di dati, che di solito richiedono dati più strutturati per l'apprendimento. Ad esempio, supponiamo che ti mostri una serie di immagini di diversi tipi di fast food, "pizza", "hamburger" o "taco". L'esperto umano di queste immagini determinerebbe le caratteristiche che distinguono ogni immagine come il tipo specifico di fast food. Ad esempio, il pane di ogni tipo di cibo potrebbe essere una caratteristica distintiva in ogni immagine. In alternativa, potresti semplicemente utilizzare etichette, come "pizza", "hamburger" o "taco", per semplificare il processo di apprendimento attraverso l'apprendimento supervisionato. L'apprendimento automatico "profondo" può sfruttare set di dati etichettati, noti anche come apprendimento supervisionato, per informare il suo algoritmo, ma non richiede necessariamente un set di dati etichettato. Può importare dati non strutturati nella sua forma grezza (ad esempio testo, immagini) e può determinare automaticamente l'insieme di caratteristiche che distinguono "pizza", "hamburger" e "taco" l'una dall'altra. Osservando i modelli nei dati, un modello di apprendimento profondo può raggruppare gli input in modo appropriato. Prendendo lo stesso esempio di prima, potremmo raggruppare le immagini di pizze, hamburger e tacos nelle rispettive categorie in base alle somiglianze o alle differenze identificate nelle immagini. Detto questo, un modello di apprendimento profondo richiederebbe più punti dati per migliorarne l'accuratezza, mentre un modello di apprendimento automatico si basa su meno dati data la struttura dei dati sottostante. Il deep learning viene utilizzato principalmente per casi d'uso più complessi, come assistenti virtuali o rilevamento di frodi. Cos'è l'intelligenza artificiale AI o Artificial Intelligence AI ? Infine, l'intelligenza artificiale è il termine più ampio utilizzato per classificare le macchine che imitano l'intelligenza umana. Viene utilizzato per prevedere, automatizzare e ottimizzare le attività che gli esseri umani hanno svolto storicamente, come il riconoscimento vocale e facciale, il processo decisionale e la traduzione. Esistono tre categorie principali di AI: Artificial Narrow Intelligence (ANI) Intelligenza generale artificiale (AGI) Super Intelligenza Artificiale (ASI) L'ANI è considerata AI "debole", mentre gli altri due tipi sono classificati come AI "forti". L'intelligenza artificiale debole è definita dalla sua capacità di completare un'attività molto specifica, come vincere una partita a scacchi o identificare un individuo specifico in una serie di foto. Man mano che ci spostiamo verso forme più forti di IA, come AGI e ASI, l'incorporazione di più comportamenti umani diventa più prominente, come la capacità di interpretare il tono e le emozioni. Chatbot e assistenti virtuali, come Siri, stanno grattando la superficie di questo, ma sono ancora esempi di ANI. L'intelligenza artificiale forte è definita dalla sua capacità rispetto agli esseri umani. L'Intelligenza Generale Artificiale (AGI) si esibirebbe alla pari di un altro essere umano mentre la Super Intelligenza Artificiale (ASI), nota anche come iperintelligenza, supererebbe l'intelligenza e l'abilità di un essere umano. Nessuna delle due forme di IA forte esiste ancora, ma la ricerca in corso in questo campo continua. Poiché quest'area dell'IA è ancora in rapida evoluzione, il miglior esempio che posso offrire su come potrebbe apparire è il personaggio Dolores nello show della HBO Westworld . Grazie mille per la lettura, condividi e commenta l'articolo.
- Una Guida Semplice e Completa per passare da Excel a Python Usando le Librerie Pandas e Numpy
So che l'idea di imparare cose che puoi già fare in Excel / VBA in un ambiente completamente nuovo come Python non sembra così eccitante, tuttavia, i vantaggi offerti da Python, le molte librerie disponibili e l'alta richiesta delle aziende di data scientist rende ancora più interessante questo " switch ". Per questo motivo, ho pensato a un utile e semplice guida che avrei voluto avere quando sono passato da Excel a Python. In questo articolo, utilizzeremo le librerie Panda e Numpy di Python per sostituire molti Excel funzioni che probabilmente hai usato in passato. Sommario Importare i dati Somma, Media, Max, Min, Count Sostituiamo l' IF Pulizia dei dati di base Sostituiamo i grafici di Excel con Matplotlib di Python Prima di iniziare : 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 quali sono le migliori librerie per l'I.A. , clicca qui IMPORTARE I DATI In questa guida, utilizzeremo un file Excel con formato .csv, ma non preoccuparti, un vantaggio di Python è la possibilità di poter leggere quasi ogni tipo di file, txt, json, xml, html e i vari formati excel. Ti lascio il link per vedere come importare i diversi tipi di file. Nel caso in cui vuoi solo esercitarti e non sai che dataset usare ti lascio questo link per vedere dove trovare dataset gratis a scaricare. Se vuoi seguire passo passo l'intero articolo ti lascio il file .csv che utilizzeremo in questa guida. Per iniziare con questa guida, importiamo le librerie Pandas, Numpy e Matplotlib. #importiamo le librerie import matplotlib.pyplot as plt import pandas as pd import numpy as np Con questo, possiamo dare una prima occhiata ai dati. Per farlo, usiamo pd.read_csv (). Assicurati che il CSV e il tuo script Python si trovino nella stessa cartella. dataset = pd.read_csv("EsempioPython.csv") print(dataset) Una volta letto questo file CSV, gli diamo un nome. In questo caso, l'ho chiamato dataset. Come consuetudine si usa df che sta per dataframe ed è il nome tipico dato dopo aver letto un file CSV. Dopo eseguendo il codice sottostante, otteniamo il seguente output. Nel nostro caso stiamo usando jupyter notebook per scrivere il codice quindi se stai utilizzando il terminale o altri editor sarà stampato in modo diverso. Sembra simile a un foglio di calcolo Excel, ma in questo formato sarà più facile lavorare i dati i dati. Ora ti mostrerò in Python come eseguire alcune funzioni comuni che probabilmente utilizzato in Excel. SOMMA, MEDIA, MAX, MIN e COUNT Le popolari funzioni di Excel possono essere facilmente sostituite con i metodi Pandas. Prima di farti vedere le singole funzioni, ci tengo a dirti che Se vogliamo ottenere la maggior parte delle funzioni elencate sopra, utilizziamo il metodo .describe(). Diamo un'occhiata. print(dataset.describe()) Output: Come puoi vedere per ogni colonna ne verranno calcolate le principali operazioni statistiche di base. Ora procediamo nel vedere come sommare due o più colonne. Per specificare su quali colonne operare utilizzeremo le parentisi subito dopo la nostra variabile contenente tutti i dati, con all'interno i nomi delle colonne che vuoi selezionare. Ne vediamo subito un esempio. #Vogliamo calcolare le vendite totali dei negozi vendite_totali = dataset["Quantity"].sum() print(vendite_totali) Output: Quindi, se vogliamo selezionare una colonna specifica, selezioniamo prima con parentesi quadre ["colonna"] e poi usa il metodo di cui abbiamo bisogno (.sum (), .mean (), .count (), ecc.). Ad esempio, calcoliamo la media, il max e il min delle quantità vendute dei negozi. print("media : " + str( dataset["Quantity"].mean() ) ) print("MAX : " + str( dataset["Quantity"].max() ) ) print("MIN : " + str( dataset["Quantity"].min()) ) Output: media : 780.5861655834982 MAX : 67875.0 MIN : 1.0 Come puoi vedere è veramente semplice, quasi più di Excel dopo che ci avrai preso mano. Nel caso in cui desideriamo contare il numero di dati specifici all'interno di una colonna, possiamo usare il .value_counts () metodo. Ora vediamo un esempio dove contiamo quale tipi di metodi sono stati usati negli ordini. print(dataset["Order_method_type"].value_counts()) Output: Web 69181 Sales visit 7168 Telephone 5814 E-mail 3092 Fax 1664 Mail 1024 Special 532 Name: Order_method_type, dtype: int64 Come puoi vedere anche la gestione delle variabili di testo non è minimamente un problema per Python. Ora facciamo un salto di livello e vediamo come implementare l' IF di Excel con numpy, utilizzando sempre semplici funzioni. SOSTITUIAMO L' IF Possiamo facilmente sostituire la funzione IF di Excel utilizzando Numpy. Immaginiamo di voler sapere quali vendite sono superiori ad una quantità di 200 pezzi e creare quindi un nuovo attributo per ogni riga la dove la vendita risulta maggiore o minore di questa quantità. Possiamo farlo facilmente con quanto segue codice. dataset["Vendite_all_ingrosso"] = np.where(dataset['Quantity'] > 500, 'vendita ad un negozio', 'vendita per privato') print("dataset") Output: Come puoi vedere np.where () necessita di 3 argomenti: la condizione, il valore se la condizione è Vera e il valore se la condizione è Falsa. Supponiamo ora di avere una condizione più complessa, la quale richiede di classificare nello specifico a che tipo di struttura è stato l'acquisto basandosi sulle quantità. In questo case, abbiamo più di 2 valori, quindi usiamo np.select () necessita di argomenti: un elenco di condizioni un elenco di valori Un elenco in Python è rappresentato dalle parentesi quadre []. Vediamo come si fa in modo pratico. condizioni = [(dataset['Quantity']>=900), (dataset['Quantity']>=800)&(dataset['Quantity']<900), (dataset['Quantity']>=700)&(dataset['Quantity']<800), (dataset['Quantity']>=600)&(dataset['Quantity']<700), (dataset['Quantity']>=500)&(dataset['Quantity']<600), (dataset['Quantity']<500) ] valori= ['Negozio vendita ingrosso', 'Centro commerciale', 'Catena di negozi', 'Negozio Grande', 'Negozio medio-piccolo', 'Ptivato-Retailer'] dataset["Acquirente"] = np.select(condizioni, valori) print("dataset") Output: Come puoi vedere manipolare colonne o righe con Python non è molto difficile, ma andiamo avanti e vediamo quali altre funzioni possiamo replicare da Excel. Immaginiamo di voler le vendite di prodotti solo di uno specifico Paese. Per farlo, in primo luogo, scrivi la condizione dataset ["Retailer_country"] == "Italy" e poi selezioniamo quella condizione all'interno del frame dataset utilizzando parentesi quadre [] dataset_italia = dataset[dataset["Retailer_country"]=="Italy"] dataset_italia Output: Abbiamo selezionato solo le vendite avvenute in italia e le abbiamo inserite dentro un nuovo dataframe dataset_italia . Adesso possiamo eseguire qualsiasi calcolo che abbiamo visto prima "Sum, Average, Max, Min, Count" . Se abbiamo due o più condizioni, il codice sarà simile a quello sopra, ma con alcuni cambiamenti. Immaginiamo di voler creare un ulteriore dataframe contenente solo le vendite fatte in Spagna nel 2014. dataset_spagna_2014 = dataset[(dataset["Retailer_country"]=="Spain") & (dataset["Year"]==2014)] dataset_spagna_2014 Output: Poiché ci sono 2 condizioni, potremmo usare & | che rappresenta e / o rispettivamente. Tieni a mente che ogni condizione dovrebbe essere tra parentesi. PULIZIA DAI DI BASE Vedremo alcuni metodi utilizzati per la pulizia dei dati. Continueremo a utilizzare il frame df_excel che abbiamo definito in precedenza. STANDARDIZZAZIONE DEL TESTO Potrebbe capitare, soprattutto se si opera con dati correlati a variabili non numeriche, di dover standardizzare il testo in modo da poterlo successivamente convertire in una variabile categorica numerica. Cambia il faromato del testo con .str.lower, .str.upper o .str.title Per accedere alle stringhe contenute in una colonna, usiamo .str possiamo quindi cambiare maiuscole e minuscole di testo con quanto segue . dataset["Product"].str.title() dataset["Product"].str.upper() dataset["Product"].str.lower() Output: Per sovrascrivere la colonna ti basterà assegnare il comando precedente sulla colonna. Questo è il codice. dataset['Product'] = dataset['Product'].str.lower() RIMOZIONE VALORI NULLI Ora vediamo come eliminare i valori nulli presenti nel dataset la sintassi della funzione dropna () è: dropna(self, axis=0, how="any", thresh=None, subset=None, inplace=False) axis : i valori possibili sono {0 o "indice", 1 o "colonne"}, valore predefinito 0. Se 0, rilascia le righe con valori nulli. Se 1, rilascia le colonne con valori mancanti. how : i valori possibili sono {'any', 'all'}, il valore predefinito 'any'. Se "any", rilascia la riga / colonna se uno dei valori è nullo. Se "all", rilascia la riga / colonna se mancano tutti i valori. thresh : un valore int per specificare la soglia per l'operazione di eliminazione. subset : specifica le righe / colonne in cui cercare valori nulli. inplace : un valore booleano. Se True, il DataFrame di origine viene modificato e viene restituito None. Per sovrascrivere il Dataset, senza valori nulli, ci basterà utilizzare questa riga di codice. SOSTITUIAMO I GRAFICI DI EXCEL CON MATPLOTLIB DI PYTHON Questa parte dell'articolo ti introdurrà alla rappresentazione grafica in Python con Matplotlib, che è probabilmente la libreria di rappresentazione grafica e di visualizzazione dei dati più popolare per Python. Installazione Il modo più semplice per installare matplotlib è usare pip. Digita il seguente comando nel terminale: pip install matplotlib #python2 pip install matplotlib #python3 OPPURE, puoi scaricarlo da qui e installarlo manualmente. Per iniziare (tracciamo una linea) Il codice sembra autoesplicativo. Sono stati seguiti i seguenti passaggi: Definisci i valori dell'asse x e corrispondenti dell'asse y come Liste. Stampali usando la funzione .plot () . Assegna un nome all'asse x e all'asse y usando le funzioni .xlabel () e .ylabel () . Dai un titolo alla tua trama usando la funzione .title () . Infine, per visualizzare il grafico, utilizziamo la funzione .show () . Tracciare due o più linee sullo stesso grafico Qui, tracciamo due linee sullo stesso grafico. Li differenziamo dando loro un nome ( etichetta ) che viene passato come argomento della funzione .plot (). La piccola casella rettangolare che fornisce informazioni sul tipo di linea e sul suo colore è chiamata legenda. Possiamo aggiungere una legenda al nostro grafico usando la funzione .legend () . Customizzazione dei grafici Qui, discutiamo alcune personalizzazioni elementari applicabili su quasi tutti i grafici. Come puoi vedere, abbiamo effettuato diverse personalizzazioni come : impostazione della larghezza della linea, dello stile della linea, del colore della linea. impostazione del pennarello, colore del viso del pennarello, dimensione del pennarello. sovrascrivendo l'intervallo degli assi x e y. Se l'override non viene eseguito, il modulo pyplot utilizza la funzione di scala automatica per impostare l'intervallo e la scala dell'asse. Grafico a barre Qui, usiamo la funzione plt.bar () per tracciare un grafico a barre. Le coordinate x del lato sinistro delle barre vengono trasmesse insieme alle altezze delle barre. puoi anche dare un nome alle coordinate dell'asse x definendo tick_labels Istogramma Qui, usiamo la funzione plt.hist () per tracciare un istogramma. le frequenze vengono passate come elenco delle età . L'intervallo può essere impostato definendo una tupla contenente il valore minimo e massimo. Il passaggio successivo consiste nel " raggruppare " l'intervallo di valori, ovvero dividere l'intero intervallo di valori in una serie di intervalli, quindi contare quanti valori rientrano in ciascun intervallo. Qui abbiamo definito bin = 10. Quindi, ci sono un totale di 100/10 = 10 intervalli. Trama a dispersione Qui, usiamo la funzione plt.scatter () per tracciare un grafico a dispersione. Come una linea, qui definiamo anche i valori dell'asse xe corrispondenti. L' argomento marker viene utilizzato per impostare il carattere da utilizzare come marker. La sua dimensione può essere definita utilizzando il parametro s . Grafico a torta Qui, tracciamo un grafico a torta usando il metodo plt.pie () . Prima di tutto, definiamo le etichette utilizzando un elenco chiamato attività . Quindi, una parte di ciascuna etichetta può essere definita utilizzando un altro elenco chiamato slice . Il colore per ciascuna etichetta viene definito utilizzando un elenco chiamato colori . shadow = True mostrerà un'ombra sotto ogni etichetta nel grafico a torta. startangle ruota l'inizio del grafico a torta di determinati gradi in senso antiorario dall'asse x. explode viene utilizzato per impostare la frazione di raggio con cui compensiamo ogni cuneo. autopct viene utilizzato per formattare il valore di ciascuna etichetta. Qui, l'abbiamo impostato per mostrare il valore percentuale solo fino a 1 cifra decimale. Tracciare curve di una data equazione Per impostare i valori dell'asse x, usiamo il metodo np.arange () in cui i primi due argomenti sono per l'intervallo e il terzo per l'incremento graduale. Il risultato è un array numpy. Per ottenere i valori dell'asse y corrispondenti, usiamo semplicemente il metodo np.sin () predefinito sull'array numpy. Infine, tracciamo i punti passando gli array xey alla funzione plt.plot () . Quindi, in questa parte, abbiamo discusso i vari tipi di grafici che possiamo creare in matplotlib. Come hai potuto vedere python offre le stesse se non più funzionalità di excel, spero che questa quida ti possa essere d'aiuto nella transizione. Per qualsiasi tipo di domanda o dubbio non esitare a lasciare un commento. Grazie mille per la lettura, condivi l'articolo !
- Utilizzare il Machine Learning per Prevedere Le Vendite e Anticipare la Domanda dei tuoi Clienti IA
Quante persone dovrebbero essere assunte? Quanto stock dovrebbe essere ordinato? Quante entrate ci si può aspettare ad agosto? Tutte queste domande mostrano quanto sia centrale la previsione delle vendite per la pianificazione aziendale. Senza una corretta previsione delle vendite, molte decisioni aziendali si basano su stime o istinti inaffidabili , il che porta a molte inefficienze e opportunità perse. In questo contesto, una rigorosa previsione delle vendite ha un grande potenziale per generare valore. Questo post del blog descriverà come sfruttare l' apprendimento automatico per prevedere con precisione le vendite e pianificare di conseguenza . Invece di applicare presupposti e un insieme complesso di regole in una cartella di lavoro di Excel ingombrante, i modelli di Machine Learning apprendono modelli dai dati per generare previsioni. In questo modo, se le tendenze sottostanti cambiano, il modello può essere riqualificato e apprendere questi cambiamenti. Inoltre, l'algoritmo di apprendimento statistico può scoprire modelli persi dagli analisti aziendali. L'utilizzo di Machine Learning invece di un modello Excel rende il processo di previsione molto più tracciabile . L'algoritmo di previsione può essere eseguito su un ambiente di Machine Learning cloud o su una macchina virtuale e scrivere previsioni direttamente su un database. Queste previsioni potrebbero quindi essere distribuite agli utenti aziendali tramite dashboard interattivi. In questo modo, c'è un'unica fonte di verità per l'intera azienda. Un algoritmo gestito e gestito centralmente è più sicuro, più adattabile e più efficiente. Cos'è la previsione delle vendite? Una previsione di vendita è una stima delle vendite future. Questa stima può essere basata su valori passati, indicatori economici, stagionalità, previsioni meteorologiche ... Esistono due tipi principali di previsione delle vendite: Previsione basata su regole: nella previsione basata su regole, le previsioni vengono generate utilizzando una serie di regole e ipotesi sviluppate manualmente sulla base di dati passati e tendenze note. Ad esempio, se gli analisti aziendali notano che le vendite sono aumentate costantemente del 5% ogni anno, potrebbero applicare la seguente regola di previsione: Vendite di domani = Vendite dello scorso anno * 1.05. Questo è un esempio semplificativo, la previsione basata su regole potrebbe diventare rapidamente molto complessa, opaca e difficile da controllare. Inoltre, se il tasso di crescita salta improvvisamente dal 5% al 15%, l'utilizzo di questo tipo di regole potrebbe portare a stime fuorvianti e opportunità di business perse. Previsione basata sull' apprendimento automatico : gli algoritmi di apprendimento automatico apprenderebbero le regole che dovrebbero essere progettate manualmente nella previsione basata su regole. Questo viene fatto attraverso un processo chiamato apprendimento supervisionato. L'apprendimento supervisionato è il compito di apprendere la relazione tra output (vendite) e input (vendite passate, indicatore economico, calendario delle festività ecc.) Gli algoritmi di Machine Learning trovano queste relazioni minimizzando l'errore di previsione, ovvero trovando le relazioni e i parametri che massimizzano l'accuratezza della previsione. Come utilizzare l'apprendimento automatico per prevedere le vendite? Nel mondo del machine learning, la previsione delle vendite è un problema di regressione di serie temporali. Una regressione è qualsiasi attività riguardante la stima di una quantità continua (cioè le vendite). Le regressioni di serie temporali sono un caso particolare di regressione, con una dimensione temporale aggiuntiva. Esistono due tipi principali di modelli di regressione delle serie temporali: 1. Modelli regressivi automatici: questi modelli prevedono le vendite future esclusivamente sulla base dei valori delle vendite passate. Questi modelli includono ARIMA, SARIMAX e il livellamento esponenziale. Generano previsioni individuando tendenze e modelli di stagionalità . 2. Modelli multivariati: i modelli multivariati si basano su una varietà di input, comprese le vendite passate, i calendari delle festività o persino gli indicatori economici. Questi modelli includono regressioni lineari, reti neurali, metodi basati su albero decisionale e macchine a vettori di supporto. La scelta del modello dipende in ultima analisi dal problema aziendale in questione, dalla disponibilità dei dati e da un rigoroso processo di test del modello. Case Study: Parkdean Resorts Parkdean Resorts, il più grande operatore di parchi vacanze nel Regno Unito, ha contattato TrueCue per sviluppare un modello che generi previsioni di vendita oraria di cibo e bevande in oltre 180 sedi. Nel settore dell'ospitalità, il personale in eccesso può essere un driver di costo sostanziale e la carenza di personale può avere un impatto significativo sulla soddisfazione del cliente. Una previsione oraria affidabile potrebbe quindi aiutare a combattere questi problemi. Un modello di previsione basato su regole per 180 sedi molto diverse, con una frequenza oraria, non sarebbe mai stato gestibile. Inoltre, i dati sulle vendite cambiano ogni giorno, un modello basato su regole progettato nel 2018 potrebbe non essere valido nel 2019. Per rispondere a questo problema, il nostro team ha sviluppato un modello di previsione multivariata che sfrutta i metodi basati sull'albero decisionale (XGBoost). Questo modello è stato addestrato sui dati di vendita recenti, apprendendo modelli di stagionalità e relazioni di vendita con prenotazioni, vacanze e altre variabili esogene. L'algoritmo è stato eseguito su una macchina virtuale, leggendo e scrivendo su un database SQL. Le previsioni sono state quindi condivise con i gestori della sede utilizzando dashboard interattivi di Power BI per informare le loro decisioni di pianificazione. Quali sono i vantaggi delle previsioni e dei rapporti basati su cloud? Passare da previsioni locali basate su Excel a una soluzione basata su cloud presenta diversi vantaggi chiave: Unica fonte di verità: l'algoritmo di previsione viene eseguito centralmente e scritto nel database. In questo modo, esiste un'unica previsione affidabile per l'intera attività. Processo verificabile e sicuro: qualsiasi guasto o errore è molto più facile da individuare e correggere in una soluzione gestita centralmente. All'interno di un'architettura basata su cloud, è possibile applicare la sicurezza del controllo degli accessi basato sui ruoli (RBAC). In questo modo, gli utenti aziendali avranno accesso solo alle risorse con cui sono autorizzati a interagire (ad es. Sviluppo di modelli, amministrazione dell'ambiente cloud, visualizzazioni di previsioni). Reportistica unificata e interattiva: l' utilizzo di strumenti di reportistica automatizzati come Power BI e Tableau apre un nuovo mondo di possibilità. Utilizzando queste piattaforme, le previsioni possono essere distribuite agli utenti aziendali in dashboard aggiornati automaticamente . Questi report possono includere sia indicatori di alto livello che analisi dettagliate per informare al meglio le decisioni aziendali quotidiane. Quali sono i prerequisiti per la previsione delle vendite di Machine Learning? Proprio come gli esseri umani, gli algoritmi di Machine Learning apprendono dai dati di vendita passati . Di conseguenza, il prerequisito principale per sviluppare modelli ML è la disponibilità dei dati di addestramento. Questi dati possono essere ricavati da sistemi di vendita, database aziendali, file di archivio locali e fonti esterne. Conclusioni Le possibilità delle previsioni di vendita basate sull'apprendimento automatico sono infinite. Sempre più aziende stanno ora realizzando i vantaggi del passaggio dalla previsione basata su regole di Excel all'analisi predittiva unificata. Per sfruttare il progresso tecnico del machine learning e dell'intelligenza artificiale per informare la pianificazione aziendale, parla con uno dei membri del team! Scrivici un messaggio ! Grazie mille per la lettura, commenta l'articolo, facci sapere cosa ne pensi.
- Il Servomeccanismo Mentale, Come e Quali meccanismi segue la nostra mente
Questa Spiegazione è appartenente ad una Serie di Articoli. Prima di iniziare a leggere ti consigliamo di guardale l'articolo precedente : Lo Strumento "mente" Facendo riferimento allo schema dell'articolo precedente, che riporto qui sotto, iniziamo a capire cosa rappresenta e a fare qualche osservazione. Come si può notare non sono cambiate molte cose apparentemente, ma nella sostanza vedremmo che si tratta di definire con questa tipologia grafica un qualcosa di complesso che però è sempre riconducibile alle relazioni delle grandezze che sono presenti in questo schema. Passiamo ora ad analizzare una ad una le grandezze e le relazioni che sono sopra identificate: 1) “x(i)” rappresenta l’ingresso del sistema, il flusso di informazioni che la mente riceve dall’ambiente esterno sia tramite gli organi, ovvero tutto quanto può essere fonte di percezione, quindi immagini, suoni o rumori, parole, odori o profumi e sapori, tutto quello che si può toccare sentire e vedere per quello che riguarda i sensi comuni, sia tramite le attività mentali di percezione normale e paranormale. 2) “h(i)” rappresenta l’uscita del sistema: il comportamento del soggetto e quindi tutti gli atteggiamenti che questo può o meno assumere, è un flusso di informazioni come l’ingresso, è nella sostanza una grandezza omogenea all’ingresso se consideriamo per esempio una relazione di una diade, isolando quindi il sistema che questa esprime, altrimenti si può considerare semplicemente come una sorgente di informazione che quindi comunica con il mondo esterno. 3) “y(i)” rappresenta i concetti percettivo-cognitivi, quindi tutti i concetti che possiamo definire di primo livello derivanti dalle funzioni applicate nella scatola nera espressa come “A(i)” che in sostanza ci permette di indicare tutto quanto accade una volta che si è effettuata una operazione mentale di trasformazione di informazione derivante dal mondo esterno o da cicli ripetitivi di teorizzazioni, astrazioni o impressioni di immagini mentali. 4) “z(i)” rappresenta anche in questo sistema una grandezza di confronto che deriva dalla applicazione delle funzioni espresse nella scatola nera rappresentata da “B(i)” che in sostanza esprime tutte le operazioni di comparazione, astrazione e teorizzazione dei concetti di primo livello trasformandoli in concetti di secondo livello che vengono appunto resi comparabili con la realtà percepita, in sostanza rappresenta quei concetti o quelle immagini mentali che sono il frutto delle applicazioni delle funzioni che intervengono a modificare i concetti di primo livello. 5) “e(i)” rappresenta in questo caso un segnale analogo al segnale errore ma preferisco chiamarlo segnale di simmetria o di armonia attenzionale in quanto è la grandezza che ci permette di esprimere di quanto si scosti il concetto percepito dal segnale di ingresso preso in attenzione o nel caso di cicli chiusi permette di riportare dei concetti di teorizzazione o di secondo livello a dei concetti riconducibili ai concetti di percezione. 6) “N(i)” rappresenta ancora il nodo di confronto fra i concetti di secondo livello e la realtà percepita e identificata nel flusso di informazioni prese in attenzione in un dato momento, ma può anche inibire in parte il flusso di informazioni in ingresso permettendo l’avvio di cicli mentali chiusi che sono alla base delle operazioni di astrazione o teorizzazione complesse e che permettono quegli interventi sull’informazione che ho espresso come trasformazioni entalpiche od entropiche, ovvero altre tipologie di intervento su dei concetti, sono in definitiva le operazioni mentali che rendono possibile l’attività creativa o l’applicazione intellettiva più generale. 7) “A(i)” come sopra accennato rappresenta una scatola nera che esprime le funzioni che si possono applicare alle informazioni percepite trasformandole in concetti, saranno espresse quindi tutte quelle funzioni che ci permettono di far compiere un salto energetico da segnali a informazioni complesse ed esprimibili con il linguaggio, è dunque l’espressione delle operazioni che ci permettono di acquisire la conoscenza delle cose, siano queste frutto di attività percettive o tramite cicli chiusi frutto di teorizzazioni successive e se riferita alle applicazioni cognitive, frutto di “comparametrazioni attenzionali”. 8) “B(i)” come sopra accennato esprime tutte le operazioni di comparazione fra i concetti di primo livello e se si considera un ciclo chiuso, i concetti di secondo livello dando origine a situazioni di trasformazioni energetiche sulle informazioni percepite, fornendo la possibilità di acquisire una conoscenza sulle cose, in altre parole, rappresenta tutte le funzioni derivanti dalla teorizzazione o astrazione che permettono di fornire dei "segnali" comparabili nel nodo di confronto. 9) “C(i)” rappresenta un’altra scatola nera che esprime tutte le funzioni intellettivo-comportamentali, nella sostanza è la parte più importante di tutto il processo che subisce l’informazione su un sistema complesso rappresentato da questo schema, definisce la riconversione da concetti ad espressioni di comunicazione a comportamento, ad atteggiamenti. Possiamo a questo punto tradurre i concetti sopra esposti con l’ausilio del linguaggio matematico in formule che ci permettono ancora una volta di stabilire le relazioni fra le grandezze prese in considerazione, il sistema è del tutto analogo a quello esposto nell’articolo precedente per quanto riguarda il concepimento teorico del funzionamento dei sistemi controreazionati, la differenza sostanziale riguarda l’elasticità dovuta alla conformazione e ai tipi logici delle variabili che sono qui rappresentate, in quanto le grandezze possono essere, come nel caso di quelle rappresentate in ingresso e in uscita dei flussi di informazione, mentre per quanto riguarda le variabili che rappresentano le scatole nere, dobbiamo pensare che abbiano la possibilità di raffigurare dei processi o delle funzioni che appunto variano e non sono quindi delle grandezze fisse, avranno beninteso un loro campo di esistenza che si può esprimere dalla “quantità di funzioni” che possono rappresentare e saranno quindi concepite sotto un aspetto comunque complesso. Non ritengo necessario riprendere la dimostrazione già fatta nel capitolo precedente per proporre delle formule basta pensare che la grandezza “h(i)” è messa in relazione con “y(i)” attraverso questa espressione: “h(i)”=C(i)*y(i). Una prima considerazione che mi sembra opportuno fare in questo momento riguarda l’indice espresso fra le parentesi: ’i’ che rappresenta la relazione esistente fra le variabili rappresentate e l’informazione, ’i’ sta dunque per “informazione” e indica che tutte le grandezze e le funzioni rappresentabili sono "funzioni" dell’informazione intesa come “energia pura” in quanto ogni cosa che noi possiamo percepire, ogni cosa che esiste e che sappiamo esprimere, che conosciamo o che non conosciamo è sempre fonte di informazione, tutto è informazione, è informazione la materia animata quella che noi consideriamo inanimata, è informazione l’energia in tutte le sue forme, sono informazioni le “interconnessioni” tra le cose e anche se queste interconnessioni fossero solo dei “campi di interconnessioni” come stabiliscono le analisi della matematica quantistica, anche questi campi sarebbero informazione; l’informazione è l’unica "cosa" che non interagisce sui sistemi quando questi sono nelle condizioni naturali della loro esistenza e l’esistenza delle cose è soltanto esprimibile con l’informazione, ma vedremmo nell’ultima parte di questo lavoro che cosa significa una possibile comprensione del concetto di informazione. Un’altra affermazione che adesso è utile approfondire, è quella che non si può esprimere attraverso lo schema sopra esposto in quanto si tratta soltanto di capire che essendo tutte le funzioni e le grandezze rappresentate a loro volta funzioni dell’informazione, sono tra loro interagenti ossia non si può guardare lo schema come una entità di rappresentazione rigida ma bisogna sforzare la nostra immaginazione nel tentativo di comprendere che è tutto l’insieme che si modifica in una armonia imposta dalla interazione dell’informazione sulle varie cose rappresentate, non si può pensare ad una variazione dei processi di una scatola nera senza pensare a quali possano essere le variazioni riportate anche nelle altre, in verità, la difficoltà che abbiamo è quella di oltrepassare la classica immagine meccanicistica dei processi di causa-effetto introducendo una nuova concezione degli stessi che rientri in una espressione organicistica dell’universo; io mi rendo conto che a questo punto il ragionamento sia diventato veramente complicato ma d'altronde non poteva che essere così, la rappresentazione schematica della mente non può di sicuro essere riportata con delle semplici affermazioni a dei concetti rigidi, basti pensare a quali potenzialità si possa arrivare con i processi mentali, da quelle più normali come i processi di teorizzazione, di correlazione associazione e dissociazione oppure deduttivi o induttivi, inferenziali, di comparazione o relazionali, comportamentali e tutto quanto faccia parte delle attività comuni, ma bisogna pensare anche alle trasformazioni che si possono instaurare quando si parla di intuizioni meditative, di attività extrasensoriali o paranormali che derivano da una interazione complessa del sistema rappresentato dallo schema con l'informazione, in quanto si può definire una completezza umana per l'appunto nella interazione delle tre entità operative che la compongono: quella fisica che noi sappiamo conoscere molto bene in quanto è quella che più adottiamo per vivere, quella mentale che ci permette di avere una attività che rappresenta le possibilità di interazione con quella spirituale che è strettamente legata alla concezione assolutistica della costituzione energetica dell'informazione; il mondo mentale è dunque quello che si può slegare dal contesto fisico spazio-temporale attraverso la costituzione del pensiero che non conosce confini in quanto proprio derivante dalla interazione dell'informazione con il contesto fisico. Scende da ciò che parlare di interazione fra la costituzione del pensiero e l'informazione in quanto energia, comporta una dualità di concepimento delle attività mentali, dualità che va individuata nel considerare sotto un aspetto di processo tutta la situazione inerente al formarsi dei ragionamenti e dei pensieri siano essi consci o inconsci, razionali o intuitivi, sia per quanto riguarda la forma seriale logico-attenzionale di base della polifonia del processo costitutivo del linguaggio, sia per quanto riguarda la forma parallela immediata costitutiva delle immagini mentali comuni o extrasensoriali o trascendentali e sotto un altro aspetto, ossia quello strutturale, quindi di costituzione fisico-chimica o bio-fisiologica, la situazione inerente alle attività cerebrali, individuando quali siano le parti del cervello preposte alle varie operazioni che costituiscono l'operare mentale. Lo schema di base sopra esposto pertanto risponde a quelle che sono sostanzialmente le esigenze di processo della conformazione del pensiero e sarà estremamente difficile fare delle comparametrazioni con la strutturazione fisica dell'attività cerebrale, mi rendo conto che questo può essere un limite non indifferente per questo lavoro ma tenterò comunque di fare un collegamento di principio per quanto riguarda l'interazione fra la costituzione dei processi mentali e la strutturazione fisica cerebrale che consiste nel dare uno sguardo alla costituzione neurologica del cervello, in sostanza noi la dobbiamo pensare come una strutturazione a reti incrociate di punti nevralgici collegati fra loro tramite le sinapsi ed altri tipi di legami fisici che possiamo individuare come tanti fili conduttori di energia, ci sono inoltre delle zone del cervello che sono predisposte alle varie operazioni che regolano tutta l'attività nervosa del sistema, ma per quanto ci riguarda possiamo far riferimento soltanto al fatto che le informazioni energetiche coinvolgono delle catene neuroniche e che queste catene a loro volta si comportano come dei supporti fisici di trasformazione energetica in un modo simile al trasferimento delle informazioni all’interno di un qualsiasi computer, non ha alcuna importanza quindi conoscere esattamente la strutturazione fisica e chimica del supporto sul quale è stato implementato un sistema operativo, anche perché il livello di analisi che posso condurre non mi porta molto in profondità sotto questo punto di vista, non si tratta di valutare da una posizione biologica o fisiologica la possibilità di strutturazione degli “engrammi” o “tracce mnestche”, o di condurre un’analisi approfondita sui corrispettivi “engrammi” che sono alla base delle attività attenzionali, ma soltanto di individuare al meglio appunto queste attività per riuscire a comprendere il più possibile quella che è la strutturazione costitutiva del pensiero. Nel prossimo Articolo faremo un’analisi approfondita sui corrispettivi “engrammi” Grazie mille per la lettura, commenta l'articolo per qualsiasi domanda.
- Come l' Intelligenza Artificiale è in Grado di Fornire un Sostegno Alle Persone con Disabilità
L'intelligenza artificiale (AI) è lo sviluppo di sistemi informatici in grado di eseguire attività che normalmente richiedono intelligenza umana come la percezione visiva, il riconoscimento vocale, il processo decisionale e la traduzione. Molte persone potrebbero pensare all'IA e considerare un mondo con robot e tecnologia futuristica, ma per chi ha disabilità, la tecnologia AI apre un mondo di accessibilità. L'intelligenza artificiale ha già fatto passi da gigante nel campo della comunicazione, dell'accessibilità e della vita indipendente per le persone con disabilità. Qualcuno che non ha disabilità può considerare il proprio Alexa o Echo come un modo conveniente per cercare una ricetta o riprodurre una canzone, ma per qualcuno con disabilità visiva, è un pezzo di tecnologia che cambia la loro vita. Questo è solo un esempio di come l'intelligenza artificiale stia facendo una grande differenza nella vita di molte persone. Comunicazione crescente La tecnologia AI assistita dalla voce, come quella di Alexa, Echo o smartphone, è uno dei principali progressi nella comunicazione. Per le persone con disabilità visive, questa tecnologia è fondamentale per il modo in cui comunicano con i loro dispositivi intelligenti. Esistono anche sistemi cognitivi che imparano a descrivere le immagini per le persone con disabilità visive. In aggiunta a ciò, la tecnologia di sintesi vocale e di sintesi vocale consente una maggiore comunicazione per coloro che si stanno riprendendo da lesioni cerebrali, persone affette da paralisi cerebrale o persone con altre condizioni croniche. Anche i programmi di sottotitoli per persone con difficoltà di udito vengono perfezionati con algoritmi di intelligenza artificiale. Il potere dell'intelligenza artificiale sta toccando quasi tutti i settori , ma la sua capacità di migliorare l'accessibilità sta aumentando la comunicazione in più di un modo conveniente. Più accessibilità Condizioni genetiche, complicazioni durante il parto e traumi precoci possono portare un individuo che necessita di tecnologie assistive per la maggior parte della sua vita. In altri casi, una persona può acquisire una disabilità - sia che si tratti di incidenti sul posto di lavoro che portano all'amputazione o di un incidente stradale - e queste persone possono sentirsi sopraffatte dal reimparare a navigare nella vita di tutti i giorni. In entrambi i casi, la tecnologia assistita dall'intelligenza artificiale può semplificare la vita quotidiana e consentire a queste persone di vivere in modo più indipendente. L'accessibilità è una preoccupazione senza fine per molte persone nella comunità dei disabili. Un passo verso l'accessibilità include l' annuncio da parte di Microsoft di un'intelligenza artificiale per un programma di accessibilità volto ad aiutare le persone con disabilità con la mobilità, forgiare connessioni umane e navigare sul posto di lavoro. Alcune delle tecnologie assistite dall'intelligenza artificiale per aiutare le persone con disabilità visive sono progettate per riconoscere il testo su segnali e scenari, consentendo loro di essere mobili in modo più indipendente. Le auto a guida autonoma sono un altro aspetto dell'intelligenza artificiale che viene spesso discusso per quanto riguarda le persone con disabilità. La cosa grandiosa della tecnologia AI è quanto tende ad essere inclusiva, aiutando le persone che richiedono sistemazioni a sentirsi più incluse nei progressi tecnologici. I veicoli, come il Concept-I RIDE , sebbene non a guida autonoma, creano una maggiore indipendenza automobilistica per le persone che utilizzano una sedia a rotelle. Le auto a guida autonoma utilizzano l'intelligenza artificiale per aiutare molte persone diverse, comprese quelle con problemi di udito e vista, coloro che usano una sedia a rotelle, persone con difficoltà di apprendimento e così via. Essere in grado di uscire di casa e guidare da soli al negozio è un grande progresso per le persone con disabilità in termini di accessibilità e vita indipendente. Consentire una vita indipendente a casa Molte persone che vivono con una disabilità si affidano ad altri per l'assistenza nel muoversi in casa, cucinare o portare a termine altre attività quotidiane. La tecnologia assistita dall'intelligenza artificiale, combinata con i progressi nell'Internet delle cose, ha aperto nuove possibilità per quanto riguarda l'accessibilità. La tecnologia della casa intelligente consente una vita indipendente con le sue capacità di intelligenza artificiale. Ci sono molti esempi di come l'intelligenza artificiale stia cambiando la vita di molti a casa. Usare la tecnologia vocale per dire alla tua casa di accendere / spegnere le luci, regolare il riscaldamento o l'aria condizionata o spegnere i fornelli sono tutte cose che aiutano a rendere più facile la vita indipendente. Gli hub domestici intelligenti possono persino apprendere la tua routine nel tempo e anticipare le tue esigenze, accendendo luci o altri elettrodomestici secondo necessità. Alcuni sistemi possono regolare il termostato tenendo conto dei dati delle previsioni del tempo. Questi esempi dimostrano come la tecnologia AI nei prodotti per la casa intelligente stia rimuovendo gli ostacoli della vita quotidiana. La tecnologia AI in casa è ottima anche in termini di sicurezza. È possibile configurare una casa intelligente per sapere se una persona cade e può avvisare una persona cara o i servizi di emergenza per aiutare. Queste preoccupazioni per la sicurezza aggiungono un altro elemento al motivo per cui la vita indipendente per le persone con disabilità può essere difficile. Tuttavia, l'intelligenza artificiale consente alle persone di comunicare, accedere alla propria casa e sentirsi al sicuro in modo indipendente. Qual è il prossimo? L'intelligenza artificiale cambierà il campo IT , l'industria ingegneristica, i big data e molti altri campi legati alla tecnologia. Tuttavia, l'intelligenza artificiale cambierà anche il mondo per le persone su base giornaliera. Con l'avanzare dell'IA, diventerà più accessibile alle persone comuni. Gli assistenti AI diventeranno la norma e la tecnologia AI continuerà ad essere più efficiente. In termini di intelligenza artificiale e persone con disabilità, ogni progresso sarà più inclusivo. Farà progressi più grandi nella tecnologia medica e aiuterà più persone a raggiungere l'indipendenza in modi che non avrebbero mai potuto immaginare. Cosa c'è nel futuro dell'IA ? Più tecnologia e più accesso ad essa per le persone con disabilità. La tecnologia AI sta cambiando il modo in cui le persone vivono in un modo o nell'altro. Questi cambiamenti non sono solo convenienti: ci aiutano a comunicare, ad accedere a più cose e a vivere in modo più indipendente. Dal software di riconoscimento del linguaggio, alle auto a guida autonoma, alla tecnologia per la casa intelligente, ai progressi tecnologici all'orizzonte, l'IA aiuta le persone con disabilità ad avere più libertà d'azione nelle loro vite in modo profondo. Grazie mille per la lettura, ci teniamo a ringraziare un nostro Utente per la richiesta di un Articolo dedicato a questa area di applicazione dell'Intelligenza Artificiale Condividi o commenta l'articolo se anche tu vorresti che in Italia venissero rilasciati maggiori fondi per la ricerca e l'applicazione delle nuove tecnologie per chi ha una disabilità !