top of page

Risultati Ricerca Intelligenza Artificiale Italia

331 risultati trovati per "ChatGPT business"

  • Progetti di machine learning per potenziare il curriculum

    Transformers, Facebook Blender Bot, la gestione dei dati di conversazione e la creazione di interfacce chatbot A parte questo, puoi migliorare il chatbot per il tuo caso d'uso specifico. Il chatbot ha bisogno di conoscenze tecniche e comprende il sentimento del paziente. 6° Progetti di machine

  • Machine Learning nel Trading usando NEURAL NETWORK-PROPHET

    "Produrre previsioni di alta qualità non è un problema facile né per le macchine né per la maggior parte degli analisti. Abbiamo osservato due temi principali nella pratica della creazione di una varietà di previsioni aziendali: Le tecniche di previsione completamente automatiche possono essere fragili e sono spesso troppo inflessibili per incorporare ipotesi o euristiche utili. Gli analisti che possono produrre previsioni di alta qualità sono abbastanza rari perché la previsione è un'abilità specializzata nella scienza dei dati che richiede una notevole esperienza. " Dal sito web di Facebook Prophet. In questo progetto utilizzeremo l’algoritmo Neural Prophet per la previsione del cross EUR/CHF. Per la trattazione dell’argomento si farà uso del software di programmazione Python in ambiente Jupiter Notebook. Un mondo di profeti Quando nel mio primo articolo Introduzione al Machine Leanring per il Trading, inizio di questa avventura divulgativa, abbiamo voluto introdurre i concetti di previsione abbiamo fatto riferimento, con approccio provocatorio, a coloro che soprattutto nel passato pretendevano di prevedere il future basandosi su presunte doti magiche, segno di benevolenza divina, che gli permetteva di affermarsi nelle società del tempo incutendo rispetto e timore. Con il tempo e con il progresso scientifico si è dimostrato che tali poteri paranormali previsionali erano fallimentari per almeno due motivi. Uno, erano statisticamente non affidabili, razionalmente non giustificabili e pertanto instabili, due, allorquando validi, erano dimostrati tali da una predisposizione mentale che rendeva quelle previsioni vere o verosimili. Fare previsioni significa considerare tutte le caratteristiche (nello spazio e nel tempo) di un fenomeno passato, assegnare ad ognuna di esse un peso di influenza, combinarle tra loro e contestualizzarle ed adattarle in una nuova circostanza. Posso prevedere con certezza pressochè assoluta che domani avremo un alba e un tramonto, abbastanza accurata se la giornata sarà piovosa, nuvolosa o soleggiata, un po’ meno se devo prevedere dove trovare parcheggio in centro città (tanto piu’ se non conosco la zona). Le previsione é imprescindibile dall’esperienza passata, ma la stessa non ne è garanzia di accuratezza. Come nei teoremi matematici potremmo dire che, a meno di essere sicuro di aver considerato tutte (ma proprio tutte) le variabili, l’esperienza passata è condizione necessaria ma non sufficiente per la bontà della previsione. Questo é vero a tutti i livelli, dai nostri comportamenti di fronte a determinate situazioni di cui abbiamo esperienza, alle strategie geopolitiche che prendono spunto dalla storiografia, dalle analisi e previsioni di vendita di un attività commerciale, al classico esempio noto a tutti gli studiosi di machine learning sulla potenziale solvibilità di un cliente bancario. Quando parliamo di previsioni di prezzo e andamento di un prodotto finanziario tentiamo di dare una interpretazione di come quel fenomeno, già prodotto risultante di previsoni fatte nel passato (il mercato), possa evolversi sulla base di pattern storici. Un problema fondamentale é quello di determinare quale é il migliore intervallo temporale tra il presente e il passato per elaborare la previsione, e fino a quando. Se per esempio il trader graficista vuole una previsione giornaliera, deve considerare l’andamento dell’ultimo mese, dell’ultima settimana o dell’ultimo anno? FACEBOOK PROPHET Facebook ha sviluppato il software previsionale Prophet disponibile per applicazioni sia in Python che in R. Fornisce parametri intuitivi che sono facili da modulare per cui anche chi non ha una profonda esperienza nei modelli di previsione in serie temporali può usarlo per generare previsioni significative per una vasta varietà di problemi. Un modello di regressione su modelli che presentano carattere stagionale particolarmente robusto in caso di dati mancanti, spostamenti di tendenza, e nella gestione degli outlier. Prophet utilizza un modello di serie temporale scomponibile in tre elementi principali del modello: tendenza, stagionalità e interruzioni, combinati nella seguente equazione: y(t)= g(t) + s(t) + h(t) + εt g(t): curva di crescita lineare o logistica per modellare i cambiamenti non periodici nelle serie temporali s(t): cambiamenti periodici (es. stagionalità settimanale/annuale) h(t): effetti delle interruzioni (per esempio week end e vacanze) εt: il termine di errore tiene conto di qualsiasi cambiamento insolito non contemplato dal modello. Usando il tempo come regressore, Prophet inquadra il problema della previsione come un esercizio di adattamento della curva piuttosto che guardare esplicitamente la dipendenza basata sul tempo di ogni osservazione all'interno di una serie temporale. Prophet e la sua evoluzione Neural Prophet vengono considerati come il ponte di collegamento tra le pure tecniche di analisi delle serie temporali e il deep learning (Figura 1) NEURAL PROPHET su EUR/CHF Seguendo il solito principio di costruzione di un codice di machine learning​ ( se ti interessa ne ho parlato dettagliatamente in un articolo ), partiamo con l’importazione delle librerie di gestione tabelle e grafica : digita i seguenti comandi sul terminale per scaricare le librerie necessarie Se hai python < 3 pip install yfinance pip install neuralprophet Se hai python >= 3 pip3 install yfinance pip3 install neuralprophet Se stai usando google Colab !pip install yfinance !pip install neuralprophet Ora crea un nuovo file e iniziamo a scrivere codice. import pandas_datareader.data as web import pandas as pd import matplotlib.pyplot as plt import numpy as np STEP 1 – IMPORTAZIONE E LETTURA DATI Procediamo con l’impostazione delle funzioni che ci permettono di leggere I valori del cross Euro – Franco Svizzero con ticker EURCHF=X che vogliamo analizzare : from datetime import datetime start = datetime (2015,3,8) end= datetime (2022,3,8) data = yf.download(tickers = EURCHF, start=start, end=end) Che da l’output Figura 2 STEP 2 – ELABORAZIONE, TRASFORMAZIONE E ORGANIZZAZIONE DATI In questa fase trasformiamo I dati in maniera tale che gli stessi possano essere gestiti dall’algoritmo neuralprophet che utilizzeremo. closecolumn=data.iloc[:,3] closecolumn L’ultima riga di codice ci darà la possibilità di visualizzare la nuova struttura dati (Figura 3) e il suo andamento grafico con le funzioni di plotting (Figura 4) Per utilizzare NeuralProphet dobbiamo operare una ulteriore trasformazione del nostro dataframe eseguendo le seguenti linee di codice : neuralproheptdataset = closecolumn.reset_index() dataprophet = neuralprophetdataset.rename(columns = {“Date”:”ds”, “Close”:”y”}) dataprophet Che restituisce l’output (F5) STEP 3 – DEFINIZIONE DEL MODELLO Importiamo la libreria che ci permetterà di implementare neuralprophet ed eseguire le operazioni per esso necessarie con le seguenti istruzioni from neuralprophet import NeuralProphet STEP 4 – ADDESTRAMENTO DEL MODELLO Con NeuralProphet l’addestramento del modello viene compiuto con le semplici line di codice che seguono dove indichiamo I nostri parametri (tra gli altri notiamo il periodo in cui vogliamo la previsione con n_forecast = periodo previsionale di 30 giorni), m = NeuralProphet( n_forecasts=30, n_lags=60, n_changepoints=50, yearly_seasonality=True, weekly_seasonality=False, daily_seasonality=False, batch_size=64, epochs=100, learning_rate=1.0, ) STEP 5 – VALUTAZIONE AFFIDABILITA’ DEL MODELLO Come sempre dobbiamo valutare la bontà del nostro modello e capire quando dopo diverse iterazioni di addestramento i valori convergono e diventano stabili per iterazioni successive metrics = m.fit(dataprophet, freq="D") metrics In Figura 6 vediamo il riassunto delle metriche. Di cui possiamo vedere anche una rappresentazione grafica (F7) STEP 6 - PREVISIONE Avendo costruito il modello ed avendo appurato la sua precisione, se accettabile, procediamo con la previsione futura, a 30 giorno dopo l’ultima data disponibile nel nostro dataset chiamato dataprophet e cioé 7 marzo 2022. future = m.make_future_dataframe(dataprophet, periods=30, n_historic_predictions=len(roughdata)) #noi dobbiamo specificare il numero di GIORNI da prevedere prediction = m.predict(future) in questo modo, operando alcune trasformazioni e lanciando la funzione di plotting abbiamo il grafico in F8. possiamo a questo punto azzardare anche una previsione a 100 giorni semplicemente cambiando il parametro n_forecast ottenenendo con la stessa serie di istruzioni per il plotting da Figura 9 che zoommato da il grafico di Figura 10. Conclusioni A proposito di futuro, si pensa che in 50 anni le capacità di calcolo delle macchine siano grado di emulare il ragionamento umano; é chiamata AGI, Artificial General Intelligence. C’é chi pensa ad essa come un opportunità, altri come una minaccia. La macchina dovrebbe in teoria sosituire l’uomo nelle cose “complesse” che la macchina riesce a fare bene e meglio (calcoli, gestione dei dati) ma quando lo sostituisce nelle attività comuni (la guida di un autoveicolo) o semplici (servire il caffè, fare il check in in hotel, passare l’aspirapolvere) entriamo in un discorso che affronta una tematica socio culturale simile a quella che ci viene raccontata dei tempi della rivoluzione industriale. Come ricollocheremo gli addetti (presumiamo non altamente qualificati) che oggi sono impiegati in quei settori? Per la risposta a questa domanda credo neanche la macchina piu’ avanzata possa aiutarci. Anzi quando entriamo nel campo della fantasia e creatività forse siamo ancora superiori e ancora per un po’ irraggiungibili. Come umani, siamo meno dipendenti da dati di input strutturati rispetto alla macchina perchè abbiamo immaginazione, abbiamo ispirazione, abbiamo sensazioni. Non confondiamo la capacità di progredire con la semplice capacità di fare previsione. Ricordiamo che alla base dell’intelligenza artificiale c’é l’idea di trovare dei pattern storici semplicemente sulla base di un enorme quantità di dati passati. In passato facevamo previsioni dopo aver compreso il fenomeno oggetto di studio ma le stesse non erano accurate quanto quelle che facciamo oggi con AI. D’altra parte possiamo affermare che l’algoritmo pur analizzando bene i dati e le correlazioni, non comprende in maniera intelligente e consapevolmente quello che sta facendo. Un sistema a guida autonoma riesce a decidere razionalmente, sulla base della sua codifica se in una situazione di pericolo deve proteggere i suoi passeggeri, il bambino che attraversa la strada. E se oltre al passeggero, il bambino ci fosse anche un ladro che scappa? Chi codifica il livello di priorità e in base a quale criterio? C’é un grande dibattito sull’etica dei sistemi AI e sulla responsabilità dei vari attori, a partire dai softwaristi agli utilizzatori, fino a quella dello stesso sistema. Per chi fosse interessato ad ottenere il codice completo e strutturato per un plug and play in ambiente Jupiter Notebook, richiedetelo pure all’autore all’indirizzo email nicola.matarese73@gmail.com. NON PERDERTI I PROSSIMI ARTICOLI Nicola Matarese classe 1973, ha conseguito una laurea magistrale in ingegneria meccanica ed ha ricoperto ruoli manageriali all’interno di realtà industriali in ambito aerospazio e difesa. E’ appassionato di trading e opera sui mercati dal 2001. Da qualche anno lavora a sistemi di trading supportati da teorie sui Big Data e Intelligenza Artificiale. Collegati o manda un messaggio a Nicola Matarese su LINKEDIN

  • Come fare un chat bot robotico

    Un chatbot robotico è un robot reale, che possiede, oltre ad una gestione software di interazione colloquiale Non serve necessariamente che il robot abbia delle sembianze umane, per essere un piccolo chatbot, per esempio Q.bo STEM è un esempio di chatbot che coniuga bene alcuni aspetti del chatbot. Se il chatbot è dotato di un touchscreen, è l’ideale per la presentazione dei dati. Nltk Ma, il chatbot robotico, per essere all’altezza del suo nome, deve implementare degli algoritmi

  • Come Migliorare la precisione di un modello di M.L. con il PreProcessing o pre-elaborazione dei dati

    In questo post scoprirai i passaggi di pre-elaborazione dei dati che puoi utilizzare per migliorare la capacità predittiva dei tuoi modelli. Cosa è la pre-elaborazione dei dati? È necessario pre-elaborare i dati grezzi prima di modellare il problema. La preparazione specifica può dipendere dai dati che hai a disposizione e dagli algoritmi di machine learning che desideri utilizzare. A volte, la pre-elaborazione dei dati può portare a miglioramenti imprevisti nell'accuratezza del modello. Ciò può essere dovuto al fatto che una relazione nei dati è stata semplificata o non oscurata. La preparazione dei dati è un passaggio importante e dovresti sperimentare i passaggi di pre-elaborazione dei dati appropriati per i tuoi dati per vedere se puoi ottenere l'incremento desiderabile nella precisione del modello. Esistono tre tipi di pre-elaborazione che puoi considerare per i tuoi dati: Aggiungi attributi ai tuoi dati Rimuovi gli attributi dai tuoi dati Trasforma gli attributi nei tuoi dati Analizzeremo ciascuno di questi tre tipi di pre-processo ed esamineremo alcuni esempi specifici di operazioni che è possibile eseguire. Come Migliorare la precisione di un modello di M.L. : 1) Aggiungere attributi di dati I modelli avanzati possono estrarre le relazioni da attributi complessi, sebbene alcuni modelli richiedano che tali relazioni siano esplicitate in modo chiaro. La derivazione di nuovi attributi dai dati di addestramento da includere nel processo di modellazione può darti un impulso nelle prestazioni del modello. Attributi fittizi : gli attributi categoriali possono essere convertiti in n attributi binari, dove n è il numero di categorie (o livelli) dell'attributo. Questi attributi denormalizzati o scomposti sono noti come attributi fittizi o variabili fittizie. Attributo trasformato : una variazione trasformata di un attributo può essere aggiunta al set di dati per consentire a un metodo lineare di sfruttare le possibili relazioni lineari e non lineari tra gli attributi. È possibile utilizzare trasformazioni semplici come log, quadrato e radice quadrata. Dati mancanti : gli attributi con dati mancanti possono avere i dati mancanti imputati utilizzando un metodo affidabile, ad esempio k-neiest neighbors. 2) Rimuovere gli attributi dei dati Alcuni metodi funzionano male con attributi ridondanti o duplicati. Puoi aumentare la precisione del modello rimuovendo gli attributi dai tuoi dati. Proiezione : i dati di addestramento possono essere proiettati in spazi dimensionali inferiori, ma caratterizzano comunque le relazioni intrinseche nei dati. Un approccio popolare è l'analisi dei componenti principali (PCA) in cui i componenti principali trovati dal metodo possono essere presi come un insieme ridotto di attributi di input. Segno spaziale : una proiezione del segno spaziale dei dati trasformerà i dati sulla superficie di una sfera multidimensionale. I risultati possono essere utilizzati per evidenziare l'esistenza di valori anomali che possono essere modificati o rimossi dai dati. Attributi correlati : alcuni algoritmi degradano di importanza con l'esistenza di attributi altamente correlati. È possibile identificare attributi a coppie con alta correlazione e rimuovere dai dati gli attributi più correlati. 3) Trasformare gli attributi dei dati Le trasformazioni dei dati di addestramento possono ridurre l'asimmetria dei dati e l'importanza dei valori anomali nei dati. Molti modelli prevedono che i dati vengano trasformati prima di poter applicare l'algoritmo. Centratura : trasforma i dati in modo che abbiano una media di zero e una deviazione standard di uno. Questo è in genere chiamato standardizzazione dei dati. Ridimensionamento : una trasformazione di ridimensionamento standard consiste nel mappare i dati dalla scala originale a una scala compresa tra zero e uno. Questo è in genere chiamato normalizzazione dei dati. Rimuovi outliers : i dati distorti sono dati che hanno una distribuzione che viene spostata da una parte o dall'altra (valori maggiori o minori) anziché essere normalmente distribuiti. Alcuni metodi presuppongono dati normalmente distribuiti e possono funzionare meglio se viene rimossa l'inclinazione. Prova a sostituire l'attributo con il log, la radice quadrata o l'inverso dei valori. Box-Cox : è possibile utilizzare una trasformata o una famiglia di trasformazioni Box-Cox per regolare in modo affidabile i dati per rimuovere l'inclinazione. Binning : i dati numerici possono essere resi discreti raggruppando i valori in bin. Questo è in genere chiamato discretizzazione dei dati. Questo processo può essere eseguito manualmente, sebbene sia più affidabile se eseguito in modo sistematico e automatico utilizzando un'euristica che abbia senso nel dominio. Letture consigliate per mettere in pratica ciò che hai letto : Manipolazione Dati con Python e Pandas Come preparare i dati per il Machine Learning o apprendimento automatico Una Guida Semplice e Completa per passare da Excel a Python Feature Engineering e Feature Selection per Principianti e non Introduzione a Scikit Learn con esempio pratico in Python Analisi esplorativa dati con Python Come rimuovere e gestire i valori anomali con python nel machine learning Trucchi Python per la data science Conclusione sul Come Migliorare la precisione di un modello di M.L. Il pre-processing dei dati è un passaggio importante che può essere richiesto per preparare i dati grezzi per la modellazione, per soddisfare le aspettative dei dati per algoritmi di apprendimento automatico specifici e può fornire miglioramenti imprevisti nell'accuratezza del modello. In questo post abbiamo scoperto tre gruppi di metodi di pre-elaborazione dei dati: Aggiunta di attributi Rimozione degli attributi Attributi di trasformazione La prossima volta che cercherai un aumento della precisione del modello, considera quali nuove prospettive puoi progettare sui tuoi dati affinché i tuoi modelli possano esplorare e sfruttare.

  • Prevedere le Malattie Cardiache con il Machine Learning Python tutorial

    In questo articolo, studiamo, in dettaglio, gli iperparametri, il codice e le librerie utilizzati per la previsione delle malattie cardiache utilizzando la regressione logistica sul set di dati delle malattie cardiache. Prerequisiti : Guida Completa Algoritmi di Machine Learning La crescita dell'Intelligenza Artificiale nel settore Medico Come costruire modelli predittivi sanitari utilizzando PyHealth? Come funzionano gli algoritmi di machine learning? L'Intelligenza Artificiale Spiegata Semplice Falsi miti sul machine learning Cos'è la Statistica e che Correlazione c'è con il Machine Learning ? Qual è la differenza tra Intelligenza Artificiale, Machine Learning, Deep Lear... La scienza dei dati Principali Linguaggi di Programmazione per la Data Science Machine Learning per Prevedere le malattie L'uso dell'apprendimento automatico nelle operazioni sanitarie può essere estremamente vantaggioso per l'azienda. L'apprendimento automatico è stato creato per gestire set di dati di grandi dimensioni e i file dei pazienti sono esattamente questo: molti punti dati che richiedono un'analisi e un'organizzazione approfondite. Inoltre, mentre un operatore sanitario e un algoritmo di apprendimento automatico molto probabilmente raggiungeranno la stessa conclusione sulla base dello stesso set di dati, l'utilizzo dell'apprendimento automatico otterrà risultati molto più velocemente, consentendo di iniziare il trattamento prima. Un altro punto per l'utilizzo delle tecniche di apprendimento automatico nell'assistenza sanitaria è l'eliminazione in una certa misura del coinvolgimento umano, il che riduce la possibilità di errore umano. Ciò riguarda in particolare le attività di automazione dei processi, poiché il lavoro di routine noioso è il luogo in cui gli esseri umani sbagliano di più. Iniziamo l'esempio con Python sulla previsione delle malattie cardiache. Partiamo importando le librerie necessarie. import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns Numpy : Numpy è una libreria Python open source per la gestione di array n-dimensionali, scritta nel linguaggio di programmazione C. Python è anche scritto nel linguaggio di programmazione C. Il caricamento di Numpy nella memoria consente all'interprete Python di lavorare con l'array computing in modo rapido ed efficiente. Numpy offre l'implementazione di varie funzioni matematiche, routine algebriche e trasformate di Fourier. Numpy supporta diverse tecnologie hardware e informatiche ed è adatto per GPU e calcolo distribuito. Il linguaggio di alto livello utilizzato fornisce facilità d'uso rispetto alle varie funzionalità di Numpy. Pandas : Pandas è un veloce strumento di analisi dei dati open source basato su Python. I panda consentono varie attività di manipolazione dei dati utilizzando gli oggetti Pandas DataFrame. I diversi metodi Panda utilizzati in questo studio verranno spiegati in dettaglio più avanti. Matplotlib : Matplotlib è una libreria Python che consente di tracciare grafici di qualità di pubblicazione, grafici statici e interattivi utilizzando Python. I grafici Matplotlib possono essere esportati in vari formati di file, possono funzionare con pacchetti di terze parti e possono essere incorporati nei notebook Jupyter. I metodi Matplotlib utilizzati sono spiegati in dettaglio man mano che li incontriamo. Seaborn : Seaborn è uno strumento di visualizzazione di dati statistici per Python costruito su Matplotlib. La libreria ci consente di creare visualizzazioni di alta qualità in Python. Esplorazione e visualizzazione dei dati Scarica il set di dati dataframe = pd.read_csv('heart_disease_dataset_UCI.csv') Il metodo read_csv della libreria Pandas ci consente di leggere il set di dati sulle malattie cardiache in formato file *.csv (comma-separated value) pubblicato da UCI nel dataframe. L'oggetto DataFrame è la struttura dati principale di Pandas che è una tabella bidimensionale con assi etichettati, lungo le righe e insieme alle colonne. Varie operazioni di manipolazione dei dati possono essere applicate al dataframe Pandas lungo righe e colonne. dataframe.head(10) Il metodo Pandas dataframe head(10) ci consente di dare un'occhiata alle prime 10 righe del dataframe. Questo ci aiuta a ottenere una panoramica delle varie colonne e un'idea del tipo e dei valori dei dati archiviati nel dataframe. dataframe.info() Il metodo Pandas dataframe info() fornisce informazioni sul numero di voci di riga nel dataframe e sul numero di colonne nel dataframe. Viene inoltre fornito il conteggio delle voci non nulle per colonna, il tipo di dati di ciascuna colonna e l'utilizzo della memoria del frame di dati. dataframe.isna().sum() I metodi Pandas dataframe isna().sum() forniscono il conteggio dei valori null in ogni colonna. dataframe.hist figsize=(12,12)) Il metodo Pandas dataframe hist traccia l'istogramma delle diverse colonne, con dimensioni di fig pari a 12 pollici di larghezza e 12 pollici di altezza. Ridimensionamento standard X = dataframe.iloc[:,0:13] y = dataframe.iloc[:,13] Successivamente, dividiamo il nostro dataframe in caratteristiche (X) e variabile di destinazione (y) utilizzando la proprietà dataframe 'iloc' di indicizzazione basata sulla posizione intera. Selezioniamo tutte le righe e le prime 13 colonne come variabile X e tutte le righe e la 14a colonna come variabile target. X = X.values y = y.values Estraiamo e restituiamo una rappresentazione Numpy dei valori X e y utilizzando la proprietà dei valori dataframe per il nostro studio di apprendimento automatico. from sklearn.preprocessing import StandardScalerX_std=StandardScaler().fit_transform(X) Usiamo la libreria scikit-learn (sklearn) per i nostri studi sull'apprendimento automatico. La libreria scikit-learn è una libreria Python open source per l'analisi predittiva dei dati e l'apprendimento automatico ed è basata su Numpy, SciPy e Matplotlib. L'ecosistema SciPy viene utilizzato per il calcolo scientifico e fornisce moduli ottimizzati per l'algebra lineare, il calcolo, i solutori ODE e le trasformazioni Fast Fourier, tra gli altri. Il modulo di preelaborazione sklearn implementa funzioni come il ridimensionamento, la normalizzazione e la binarizzazione dei dati. StandardScaler standardizza le caratteristiche rendendo la media uguale a zero e la varianza uguale a uno. Il metodo fit_transform() raggiunge il duplice scopo di : (i) il metodo fit() adattando un algoritmo di ridimensionamento e scoprendo i parametri per il ridimensionamento (ii) il metodo di trasformazione, dove la trasformazione di ridimensionamento effettiva viene applicata utilizzando i parametri trovati nel metodo fit(). Molti algoritmi di apprendimento automatico sono progettati sulla base del presupposto di aspettarsi dati normalizzati/ridimensionati e il ridimensionamento standard è quindi uno dei metodi che aiutano a migliorare l'accuratezza dei modelli di apprendimento automatico. Train-Test Split from sklearn.model_selection import train_test_split X_train,X_test,y_train,y_test=train_test_split(X_std,y,test_size=0.25,random_state=40) La classe sklearn model_selection implementa diverse classi di data splitter (divise in treno e set di test, treno KFold e set di test ecc.), ottimizzatori di iperparametri (cerca su una griglia per trovare iperparametri ottimali) e funzionalità di validazione del modello (valuta le metriche del modello con convalida incrociata ecc.). NB – La convalida incrociata KFold (K=10) significa dividere il treno in 10 parti. 9 parti vengono utilizzate per l'allenamento mentre l'ultima parte viene utilizzata per i test. Successivamente, un altro set di 9 parti (diverso dal set precedente) viene utilizzato per l'allenamento mentre la parte rimanente viene utilizzata per i test. Questo processo viene ripetuto finché ogni parte non forma un set di prova. La media dei 10 punteggi di precisione su 10 set di test è il KFold cross_val_score. Il metodo train_test_split della classe sklearn model_selection viene utilizzato per suddividere le nostre funzionalità (X) e gli obiettivi (y) in set di training e test. La dimensione del test = 0,25 specifica che il 25% dei dati deve essere mantenuto nel set di test mentre l'impostazione di random_state = 40 garantisce che l'algoritmo generi lo stesso set di dati di addestramento e test ogni volta che viene eseguito l'algoritmo. Gli algoritmi di apprendimento automatico sono casuali per natura e l'impostazione di un random_state garantisce che i risultati siano riproducibili. Fitting e previsione del modello from sklearn.linear_model import LogisticRegression from sklearn.metrics import confusion_matrix lr=LogisticRegression(C=1.0,class_weight='balanced',dual=False, fit_intercept=True, intercept_scaling=1,max_iter=100,multi_class='auto', n_jobs=None,penalty='l2',random_state=1234,solver='lbfgs',tol=0.0001, verbose=0,warm_start=False) model1=lr.fit(X_train,y_train) prediction1=model1.predict(X_test) cm=confusion_matrix(y_test,prediction1) sns.heatmap(cm,annot=True,cmap='winter',linewidths=0.3, linecolor='black',annot_kws={"size":20}) TP=cm[0][0] TN=cm[1][1] FN=cm[1][0] FP=cm[0][1] print('Testing Accuracy for Logistic Regression:',(TP+TN)/(TP+TN+FN+FP)) l modulo sklearn.metrics include funzioni di punteggio, metriche delle prestazioni e metriche della distanza, tra le altre. Il metodo confusion_matrix fornisce l'accuratezza della classificazione in un formato a matrice. 34 righe che possono salvare e prevenire tantissime morti causate dalle malattie cardiache Se vuoi provare anche tu segui questi passaggi: Vai su https://www.intelligenzaartificialeitalia.net/onlinepythoneditor Scarica il File Dataset che ti abbiamo messo sopra Segui le Indicazioni per caricare il file nell'editor Copia e incolla questo codice nella cella import numpy as np import pandas as pd import matplotlib.pyplot as plt dataframe = pd.read_csv('heart_disease_dataset_UCI.csv') X = dataframe.iloc[:,0:13] y = dataframe.iloc[:,13] X = X.values y = y.values from sklearn.preprocessing import StandardScaler X_std=StandardScaler().fit_transform(X) from sklearn.model_selection import train_test_split X_train,X_test,y_train,y_test=train_test_split(X_std,y,test_size=0.25,random_state=40) from sklearn.linear_model import LogisticRegression from sklearn.metrics import confusion_matrix lr=LogisticRegression(C=1.0,class_weight='balanced',dual=False, fit_intercept=True, intercept_scaling=1,max_iter=100,multi_class='auto', n_jobs=None,penalty='l2',random_state=1234,solver='lbfgs',tol=0.0001, verbose=0,warm_start=False) model1=lr.fit(X_train,y_train) prediction1=model1.predict(X_test) cm=confusion_matrix(y_test,prediction1) TP=cm[0][0] TN=cm[1][1] FN=cm[1][0] FP=cm[0][1] print('Testing Accuracy for Logistic Regression:',(TP+TN)/(TP+TN+FN+FP)) 5. Premi SHIFT+INVIO oppure premi il bottoncino verde in basso a destra La classe sklearn linear_model implementa una varietà di modelli lineari come la regressione lineare, la regressione logistica, la regressione Ridge, la regressione lazo ecc. Importiamo la classe LogisticRegression per i nostri studi di classificazione. Viene creata un'istanza di un oggetto LogisticRegression. Dettagli degli iperparametri Il parametro C specifica la forza di regolarizzazione. La regolarizzazione implica penalizzare il modello per overfitting. C=1.0 è il valore predefinito per LogisticRegressor nella libreria sklearn. Il metodo class_weight='balanced' fornisce pesi alle classi. Se non specificato, il peso_classe predefinito è = 1. Peso classe = 'bilanciato' assegna i pesi delle classi utilizzando la formula (n_campioni/(n_classi*np.bin_count(y))). es. se n_campioni =100, n_classi=2 e ci sono 50 campioni appartenenti a ciascuna delle classi 0 e 1, peso_classe = 100/(2*50) = 1 dual = False è preferibile quando n_samples > n_features. la doppia formulazione è implementata solo per il regolarizzatore L2 con solutore liblinear. NB Il solutore liblinear utilizza l'algoritmo di discesa delle coordinate invece degli algoritmi di discesa del gradiente per trovare i parametri ottimali per il modello di regressione logistica. Ad esempio, negli algoritmi di discesa del gradiente, ottimizziamo tutti i parametri contemporaneamente. Mentre la discesa delle coordinate ottimizza solo un parametro alla volta. Nella discesa delle coordinate, inizializziamo prima il parametro vector (theta = [theta 0 , theta 1 …….. theta n ]). Nell'iterazione kth, solo theta i k viene aggiornato mentre (theta 0 k … theta i-1 k e theta i+1 k-1 …. theta n k-1 ) sono fissi. fit_intercept = True Il valore predefinito è True. Specifica se è necessario aggiungere una costante alla funzione di decisione. intercept_scaling = 1 Il valore predefinito è 1. È applicabile solo quando il risolutore è liblinear e fit_intercept = True. [X] diventa [X, intercept_scaling]. Una caratteristica sintetica con valore costante = intercept_scaling viene aggiunta a [X]. L'intercetta diventa, intercetta il ridimensionamento * peso della caratteristica sintetica. Il peso delle caratteristiche sintetiche è modificato dalle regolarizzazioni L1/L2. Per ridurre l'effetto della regolarizzazione sui pesi delle caratteristiche sintetiche, è necessario scegliere un valore di intercept_scaling elevato. max_iter = 100 (predefinito). Viene preso un numero massimo di iterazioni per far convergere i risolutori. multi_class = 'ovr', 'multinomiale' o auto (predefinito). auto seleziona 'ovr' cioè problema binario se i dati sono binari o se il risolutore è liblineare. In caso contrario, auto seleziona multinomiale che riduce al minimo la funzione di perdita multinomiale anche quando i dati sono binari. n_jobs (predefinito = Nessuno). Un certo numero di core della CPU viene utilizzato durante la parallelizzazione dei calcoli per multi_class='ovr'. Nessuno significa che viene utilizzato 1 core. -1 significa che tutti i core vengono utilizzati. Ignorato quando il risolutore è impostato su liblinear. penalità : specifica la norma della penalità (default = L2). random_state = imposta lo stato casuale in modo che gli stessi risultati vengano restituiti ogni volta che viene eseguito il modello. risolutore = la scelta dell'algoritmo di ottimizzazione (default = 'lbfgs') tol = Tolleranza per i criteri di arresto (default = 1e-4) verbose = 0 (per sopprimere le informazioni durante l'esecuzione dell'algoritmo) warm_start = (predefinito = Falso). quando è impostato su True, usa la soluzione del passaggio precedente come inizializzazione per il passaggio attuale. Questo non è applicabile per il risolutore liblinear. Successivamente, chiamiamo il metodo fit sull'oggetto regressore logistico utilizzando (X_train, y_train) per trovare i parametri del nostro modello di regressione logistica. Chiamiamo il metodo predict sull'oggetto regressore logistico utilizzando X_test e i parametri previsti utilizzando il metodo fit() in precedenza. Possiamo calcolare la matrice di confusione per misurare l'accuratezza del modello utilizzando i valori previsti e y_test. I parametri per la heatmap sns (seaborn) sono stati spiegati in precedenza. Il parametro linecolor specifica il colore delle linee che divideranno ciascuna cella. Il parametro annot_kws passa gli argomenti delle parole chiave al metodo matplotlib, in questo caso fontsize. Infine, calcoliamo l'accuratezza del nostro modello di regressione logistica utilizzando la matrice di confusione (Vero Positivo + Vero Negativo)/a Numero totale di campioni di prova = 89,47%. Conclusione Questo ci porta alla fine dell'articolo. In questo articolo, abbiamo sviluppato un modello di regressione logistica per la previsione delle malattie cardiache utilizzando un set di dati dal repository UCI. Ci siamo concentrati sull'acquisizione di una comprensione approfondita degli iperparametri, delle librerie e del codice utilizzati durante la definizione di un modello di regressione logistica attraverso la libreria scikit-learn. Vuoi mettere in pratica quello che hai letto ? Scarica Progetti già pronti Lavora con il nostro editor online senza dover installare librerie Usa i nostri set di Dati Oppure segui i tutorial correlati : Tutorial di Regressione Logistica per l'apprendimento automatico Riconoscimento facciale con Python, in meno di 25 righe di codice Tutorial di Regressione Logistica per l'apprendimento automatico Scikit Learn e Python Tutorial Per Creare Modelli di Intelligenza Artificiale Tutorial Pratico Tensorflow , TensorBoard e Python Feature Engineering e Feature Selection per Principianti e non Spiegazione della più semplice rete neurale per principianti PyScript, come usare Python nel browser! Il tuo Primo Programma di Machine Learning con Python e Google Colab Il tuo primo Programma di Deep Learning in Python con Keras Step-By-Step Come costruire modelli predittivi sanitari utilizzando PyHealth? Esempio pratico Rilevamento Di Veicoli In Tempo Reale Come implementare l'algoritmo Perceptron da zero in Python Implementare le reti neurali ricorrenti (RNN) con Python e Keras Deep learnign e python : Object Recognition e Object Predict esempio Come salvare e caricare il tuo modello di deep learning

  • Filtro collaborativo cos'è e come implementarlo con python

    cos'è il Il filtraggio collaborativo ? Il filtraggio collaborativo può essere considerato una tecnica per fornire consigli in un sistema o motore di suggerimenti. In sostanza, possiamo dire che è un modo per trovare somiglianze tra utenti e oggetti. I sistemi di raccomandazione hanno un'ampia gamma di applicazioni in tutti i domini. Costruire un buon sistema di raccomandazione adatto alle esigenze aziendali è sempre una sfida. Un buon sistema può essere sviluppato solo quando c'è una buona comprensione del suo funzionamento. In questo articolo, discuteremo come creare da zero un sistema di raccomandazione , in particolare basato su filtri collaborativi. Inizieremo con i dati casuali e costruiremo un sistema di raccomandazione per generare raccomandazioni. Indice Che cos'è il filtro collaborativo? Uso della correlazione Implementazione del filtraggio collaborativo basato sugli elementi Implementazione del filtraggio collaborativo basato sull'utente Iniziamo con la comprensione del filtro collaborativo. Che cos'è il filtro collaborativo? Il filtraggio collaborativo può essere considerato una tecnica per fornire consigli in un sistema o motore di suggerimenti. In sostanza, possiamo dire che è un modo per trovare somiglianze tra utenti e oggetti. Utilizzandolo possiamo calcolare le valutazioni in base alle valutazioni di utenti simili o articoli simili. I sistemi di raccomandazione basati sul filtraggio collaborativo possono essere classificati nei seguenti modi: Basato sul prodotto: questo tipo di sistema di raccomandazione aiuta a trovare somiglianze tra gli articoli oi prodotti. Questo viene fatto generando dati sul numero di utenti che hanno acquistato due o più articoli insieme e se il sistema trova una correlazione elevata, presume la somiglianza tra i prodotti. Ad esempio, ci sono due prodotti X e Y che sono altamente correlati quando un utente acquista X, il sistema consiglia di acquistare anche Y. Basato sull'utente: questo tipo di sistema aiuta a trovare utenti simili in base alla loro natura di selezione degli articoli. Ad esempio, un utente utilizza un casco, una ginocchiera e una protezione per i gomiti e il secondo utilizza solo un casco e una protezione per i gomiti al momento della guida in bicicletta, il sistema di raccomandazione basato sull'utente consiglierà al secondo utente di utilizzare una protezione per le ginocchia. In questo articolo cercheremo di comprendere da zero il filtraggio collaborativo. Per prima cosa creeremo un esempio di dati e cercheremo di trovare somiglianze tra gli elementi. Trovare la somiglianza tra gli elementi è correlato alla ricerca della correlazione tra gli elementi in base ai dati che abbiamo. Prima di passare all'implementazione ci viene richiesto di capire qual è la correlazione. Uso della correlazione La correlazione può essere considerata come la relazione tra due variabili. Questo può essere di tre tipi positivo, negativo o neutro. Se due variabili sono correlate positivamente, possiamo dire che i cambiamenti in una variabile in direzione positiva o negativa possono fornire un cambiamento nella seconda variabile in direzione positiva o negativa. Se la correlazione è negativa, un cambiamento in una variabile può causare un cambiamento nella direzione opposta. Se le variabili sono correlate in modo neutro, le modifiche in una variabile non provocano una modifica nell'altra. La misurazione della correlazione può essere effettuata utilizzando il coefficiente di correlazione. Il calcolo del coefficiente di correlazione può essere effettuato calcolando prima la covarianza della variabile e poi dividendo per la quantità di covarianza per il prodotto delle deviazioni standard di tali variabili. Matematicamente, Dove, r = coefficiente di correlazione x i = valori di x variabile in un campione x = media dei valori della variabile x y i = valori della variabile y in un campione y = media dei valori della variabile y E' veramente molto semplice, potresti quasi calcolarla con un foglio di carta e una calcolatrice Esistono molti tipi di coefficienti di correlazione utilizzati nell'analisi statistica, utilizziamo principalmente la correlazione di Pearson per i sistemi di raccomandazione perché è una misura della forza e della direzione della relazione lineare tra due variabili. Passiamo all'implementazione di un sistema di raccomandazione. Implementazione del filtraggio collaborativo basato sui prodotti 1. Importiamo le librerie #Importiamo le libreire import pandas as pd import numpy as np import matplotlib.pyplot as plt 2. Set di dati In questo articolo, implementeremo un sistema di raccomandazione utilizzando l'approccio di filtraggio collaborativo a tale scopo lavoreremo su dati semplici. Diciamo che abbiamo alcuni utenti, prodotti e valutazioni di quel prodotto fornite dall'utente. Possiamo creare un tale set di dati utilizzando il codice di seguito #creiamo un dataset finto molto semplice per farti capire come funziona un filtro collaborativo, #successivamente per te sarà facile implementarlo con i tuoi dati data2 = {'user_id':[1, 2, 3, 1, 2], 'product_id':[1, 2, 1,2,3], 'product_name':['product_1', 'product_2', 'product_1','product_2','product_3'], 'rating':[3,3,3,2,2] } items_df = pd.DataFrame(data2) items_df Output: 3. Tabella pivot Creiamo una tabella pivot utilizzando questi dati in base a user_id e product_name. #Creiamo una tabella Pivot tra il voto e i prodotti pivot = pd.pivot_table(items_df,values='rating',columns='product_name',index='user_id') pivot Output: Qui nell'output sopra, possiamo vedere la nostra tabella pivot. Questo formato di tabella può essere utilizzato per calcolare la correlazione. Poiché la correlazione sarà maggiore, possiamo usarli come nostra raccomandazione. Generazione di raccomandazione Per comprendere chiaramente il processo, abbiamo utilizzato un set di dati molto semplice e possiamo dire, vedendo la tabella sopra, che i prodotti 1, 2 e 3 hanno valutazioni simili e il prodotto 1 ha due recensioni. Quindi potrebbe esserci la possibilità che i prodotti 2 e 3 siano consigliati con il prodotto 1. Verifichiamo i nostri risultati. #generiamo una raccompandazione in base a prodotti e rating print('Il prodotto da consigliare quando viene acquistato il product_2 è :') print( pivot.corr()['product_2'].sort_values(ascending=False).iloc[1:2]) Output : Il prodotto da consigliare quando viene acquistato il product_2 è : product_name product_1 NaN Utilizzando le righe di codici sopra, calcoliamo la correlazione tra i prodotti e ordiniamo i valori. Quindi abbiamo stampato 1 valore e abbiamo scoperto che il nostro sistema ci consiglia di acquistare o utilizzare il prodotto 2 con il prodotto 1. Implementazione del filtraggio collaborativo basato sull'utente Nella sezione precedente, abbiamo esaminato il processo di creazione di dati e tabelle pivot. In questa sezione, utilizzeremo dati simili per implementare il filtraggio collaborativo basato sull'utente. 1. Tabella pivot Iniziamo con la creazione di una tabella pivot per il filtraggio collaborativo basato sull'utente. A questo scopo, ci viene richiesto di invertire la nostra vecchia tabella pivot, il che significa che ora stiamo creando una tabella pivot basata sugli utenti come colonne. #Creiamo una tabella Pivot tra il voto e gli utenti pivot1 = pd.pivot_table(items_df,values='rating',columns='user_id',index='product_name') pivot1 Output: Nella tabella sopra, possiamo vedere che abbiamo user-id come colonna e prodotti come riga. 2. Generazione di raccomandazione In questa sezione, troveremo utenti simili in base alle valutazioni fornite. In modo da poter filtrare gli utenti e fornire consigli simili su elementi diversi oppure possiamo anche fornire consigli a un utente in base a una cronologia utente simile. #generiamo una raccompandazione in base a utenti e rating print('Gli utenti simili a user_2 sono :') print( pivot1.corr()[2].sort_values(ascending=True).iloc[1:2]) Output: Gli utenti simili a user_2 sono : user_id 1 NaN Nell'output sopra, possiamo vedere che l'utente 1° è più simile all'utente 2°, ed è perché hanno fornito valutazioni quasi simili nel nostro set di dati principale. Conclusione In questo articolo, abbiamo esaminato le intuizioni di base alla base della creazione di sistemi di raccomandazione utilizzando tecniche di filtraggio collaborativo e abbiamo imparato questo approccio da zero. Condividi l'articolo se ti è piaciuto :)

  • Come vengono utilizzati i dati nel calcio

    È difficile immaginare che ai giorni nostri il calcio sia ancora nei secoli bui in termini di capacità di utilizzare i dati per aiutare il gioco e, a sua volta, aiutare lo sport. Ma non è così. Mentre molti team esteri utilizzano i dati nel mondo del calcio, pochi in Italia sanno a cosa servono realmente i dati nel gioco. Con i rapidi progressi della tecnologia, i dati stanno diventando uno strumento essenziale per gli sviluppatori di metodi di coaching e per gli appassionati di questo sport. I dati nel mondo del calcio I dati vengono utilizzati in vari modi nel calcio, sia per dare maggiori opportunità a un giocatore o per ottenere un vantaggio rispetto alla concorrenza. I dati sono uno degli aspetti più importanti del calcio e vengono utilizzati per aiutare le squadre. In questo post del blog noi di Soccerment, vi spiegheremo gli utilizzi dei dati nel calcio e come anche voi potete iniziare ad approcciarvi a questo mondo. Il calcio è uno degli sport più popolari al mondo. Questo sport molto divertente ha un ruolo molto significativo nella società. - curiosità Il mondo del calcio è in continua evoluzione. Nel corso degli anni, club, giocatori e manager hanno utilizzato i dati a proprio vantaggio, per aiutare nel processo decisionale, nello scouting, nella tattica e nella selezione dei giocatori. Man mano che il gioco si evolve, aumenta anche il ruolo dei dati nel calcio. Adesso entriamo nelle specifico e vediamo punto punto come relamente come vengono utilizzati i dati nel calcio Come vengono utilizzati i dati nel calcio ? Le applicazioni dei dati nel mondo del calcio sono molteplici ed in particolare sono suddivisibili in tre macro aree: Scouting: utilizzo di dataset permette di visionare i calciatori in modo più efficiente rispetto ai metodi tradizionali. I dati sono usati come collo largo di un processo di selezione a “imbuto” che verranno filtrati secondo gli obiettivi dello scout, fino alla creazione di una shortlist. Questi calciatori verranno poi osservati tramite una fase di scouting più tradizionale. Team/opposition analysis: analisi tecnico-tattica delle prestazioni della propria squadra per individuare punti di forza e punti di debolezza e per valutare in modo più oggettivo trend recenti. Il medesimo approccio si può applicare all’avversario in preparazione della partita. Valutazione di performance atletica e tecnica in allenamento: l’utilizzo dei dati atletici in allenamento ha un raggio di applicazione più esteso, grazie alle pettorine GPS. Anche questo campo presenta innovazioni, come ad esempio l’innovativo Smart Wearables come XSEED di Soccerment, che permette la raccolta di dati sia atletici che tecnici, garantendo un'analisi ancora più profonda delle performance del calciatore. Chi si occupa di analizzare i dati nel calcio ? Il Football Data Analyst I data analyst sono figure professionali sempre più ricercate all’interno delle squadre di calcio. Inserito in un team specializzato questa figura avrà l’obiettivo di focalizzarsi sulla parte di data science sfruttando le proprie conoscenze di Machine Learning e di Data Visualization. A livello pratico un Football Data Analyst dovrà essere in grado di tradurre domande e problemi calcistici in data problems, valutarne la fattibilità e comunicarne i risultati, questo ri-traducendoli dal linguaggio macchina al linguaggio calcistico. L’analista deve quindi avere anche una buona conoscenza dello sport di riferimento, infatti la domain knowledge è fondamentale in ogni processo di Machine Learning o Data Science. Sfruttare i dati nel calcio usando il Machine Learning Dopo aver visto, come i dati possono cambiare il mondo del calcio, tramite il loro utilizzo e grazie alle nuove figure professionali, noi di Soccerment vogliamo spiegarvi di più. Ad oggi, nel mondo del calcio, ci sono 3 principali metodologie per sviluppare un Machine Learning efficiente: Modelli di regressione logistica (supervised learning): le metriche avanzate più note, come ad esempio gli xG, sono basati su modelli di regressione logistica binaria, dove le variabili predittive sono principalmente date dalla posizione del tiro, da informazioni contestuali come la situazione di gioco e dal tipo di assist se presente. Nella pratica questi modelli vengono implementati con diversi strumenti a seconda del contesto, dalla regressione logistica classica a strumenti come alberi decisionali, metodi di ensemble (random forest, gradient boosting), fino alle reti neurali. Modelli di clustering per classificazione (unsupervised learning): il clustering è una tecnica utilizzata principalmente per classificare giocatori e squadra in base allo stile di gioco. Tipicamente questo processo consiste in questi passaggi: Creazione di un dataset con un certo numero di statistiche Preprocessing, ossia standardizzazione o normalizzazione seguita da riduzione di dimensionalità tramite metodi come PCA, UMAP o altri Creazione di un modello di clustering con vari possibili scelte di algoritmo, dal semplice KMeans a modelli più complessi come Gaussian Mixture (usato da Soccerment) . Data Visualization: una componente fondamentale della football analytics è la fase di comunicazione dei risultati, e quindi traduzione dell’analisi, e del suo esito, dai termini matematici, statistici e informatici a quelli calcistici. È sempre consigliabile utilizzare la forma grafica per rendere fin da subito i risultati intuitivi e fruibili. Proprio per questo le capacità di data visualization sono assolutamente necessarie, nonostante siano tra le meno tecniche presenti nel machine learning. Nel libro The Clustering Project pubblicato da Soccerment troviamo un interessante esempio di utilizzo di questo algoritmo per classificare i giocatori in base alla loro funzione in campo, discostandosi definitivamente da concetti obsoleti basati unicamente sulla loro posizione sul terreno di gioco (terzino, punta, etc.). Esempi di utilizzo dei dati nel calcio Ecco qualche esempio di lavori prodotti dai Football Data Analyst di Soccerment: Esempio dinamico prodotto dai Football Data Analyst di Soccerment: Vuoi imparare a usare i dati nel calcio ? Le singole conoscenze tecniche di statistica, di matematica e di programmazione sono solo una parte degli strumenti must-have affinchè un Football Data Analyst possa applicare questi metodi con profitto all’interno di una squadra di calcio.Proprio per questo Soccerment ha lanciato, in collaborazione con SICS, un corso di “Football Data Intelligence” dedicato alla formazione e certificazione del Data Analyst, con al suo interno docenti di spicco come Antonio Gagliardi (ex Head of Match Analysis Nazionale Italiana, FIGC, Assistant Coach), Francesco Bordin (Match Analyst e coach UEFA A) e Roberto Angioni (Head of Data Science di Soccerment). Il corso avrà come finale un esame attraverso il quale verranno individuati i migliori tre talenti che avranno la possibilità di svolgere uno stage in una Squadra di serie A, presso SICS e presso Soccerment. Chi è soccerment ? Soccerment è un'azienda Italiana specializzata in Football Data Intelligence. Attraverso lo sviluppo di strumenti per raccogliere e analizzare le prestazioni calcistiche, ha l’obiettivo di accelerare l’adozione dei dati nel calcio, con la convinzione che un approccio data-driven possa rivoluzionare lo sport più amato del mondo, rendendolo più meritocratico ed inclusivo per i giovani talenti e più efficiente ed economicamente sostenibile per club e talent scout. Grazie alla piattaforma di Football analytics, lo sviluppo di metriche avanzate proprietarie, una data visualization immediata ed accessibile e le innumerevoli pubblicazioni e ricerche, Soccerment sta diventando un punto di riferimento internazionale per club, scout, media e per la crescente community di Football Data Analytics. Grazie per aver letto l'articolo, a presto.

  • Esempi e Applicazioni dell' Apprendimento Automatico nella Sicurezza Informatica

    La sicurezza informatica è una parte fondamentale di qualsiasi azienda. Non solo le aziende, ma anche i governi hanno bisogno di una sicurezza informatica di prima classe per assicurarsi che i loro dati rimangano privati ​​e non vengano violati o divulgati a tutto il mondo! Introduzione Apprendimento Automatico nella Sicurezza Informatica Con la crescente popolarità dell'intelligenza artificiale e dell'apprendimento automatico, queste tecnologie stanno persino diventando attori chiave nel campo della sicurezza informatica. Il Machine Learning ha molte applicazioni nella sicurezza informatica, tra cui l' identificazione delle minacce informatiche , il miglioramento dei software antivirus disponibili , la lotta alla criminalità informatica che utilizza anche le capacità dell'IA e così via. L'ultimo punto è estremamente rilevante poiché molti criminali informatici utilizzano anche l'intelligenza artificiale e l'apprendimento automatico per migliorare e potenziare i loro attacchi informatici. Secondo uno studio condotto dal Capgemini Research Institute, l'IA è necessaria per la sicurezza informatica perché gli hacker la stanno già utilizzando per gli attacchi informatici. Il 75% dei dirigenti intervistati ritiene inoltre che l'IA consenta una risposta più rapida alle violazioni della sicurezza. Pertanto, il software di sicurezza informatica basato su Machine Learning sta rapidamente diventando una necessità e non solo un lusso. Esempi e applicazioni di Machine Learning nella sicurezza informatica Vediamo quindi le 5 migliori applicazioni di Machine Learning nella sicurezza informatica che le aziende possono utilizzare in modo che siano sicure e protette. Le aziende possono farlo facilmente implementando prima l'IA nei loro protocolli CyberSecurity esistenti e quindi passando a fornitori specializzati di AI e ML Cybersecurity. Questo può essere fatto utilizzando l'analisi predittiva per rilevare minacce e attività dannose, utilizzando l'elaborazione del linguaggio naturale per la sicurezza, migliorando le tecniche di accesso basate sulla biometria, ecc. 1. Identificazione delle minacce informatiche La sicurezza informatica è una componente molto importante di tutte le aziende. Dopotutto, se un hacker riesce a entrare nei loro sistemi, è un brindisi! La componente più difficile della sicurezza informatica è scoprire se le richieste di connessione al sistema sono legittime e qualsiasi attività dall'aspetto sospetto, come la ricezione e l'invio di grandi quantità di dati, è opera di professionisti dell'azienda o di alcune minacce informatiche. Questo è molto difficile da identificare per i professionisti della sicurezza informatica, specialmente nelle grandi aziende in cui le richieste variano continuamente a migliaia e gli esseri umani non sono sempre accurati. È qui che l'apprendimento automatico può fornire molto aiuto ai professionisti. Un sistema di identificazione delle minacce informatiche basato su AI e ML può essere utilizzato per monitorare tutte le chiamate in uscita e in entrata, nonché tutte le richieste al sistema per monitorare le attività sospette. Versive è un fornitore di intelligenza artificiale che fornisce software di sicurezza informatica in combinazione con l'IA. 2. Software antivirus basato sull'intelligenza artificiale Si consiglia comunemente di installare l'antivirus prima di utilizzare qualsiasi sistema. Questo perché l'antivirus protegge il tuo sistema scansionando tutti i nuovi file sulla rete per identificare se potrebbero corrispondere a una firma nota di virus o malware. Tuttavia, questo antivirus tradizionale richiede aggiornamenti costanti per stare al passo con tutti gli aggiornamenti dei nuovi virus e malware creati. Ecco dove l'apprendimento automatico può essere estremamente utile. Il software antivirus integrato con l'apprendimento automatico tenta di identificare qualsiasi virus o malware in base al suo comportamento anomalo anziché alla sua firma. In questo modo, può gestire le minacce comuni e incontrate in precedenza e anche le nuove minacce da virus o malware che sono stati creati di recente. Ad esempio, Cilance una società di software ha creato un antivirus intelligente che impara a rilevare virus o malware da zero e quindi non dipende dall'identificazione delle loro firme per rilevarli. 3. Modellazione del comportamento dell'utente Alcune minacce informatiche possono attaccare una particolare azienda rubando le credenziali di accesso di uno qualsiasi dei suoi utenti e quindi accedendo illegalmente alla rete. Questo è molto difficile da rilevare da un normale antivirus poiché le credenziali dell'utente sono autentiche e l'attacco informatico potrebbe anche verificarsi senza che nessuno lo sappia. In questo caso, gli algoritmi di apprendimento automatico possono fornire aiuto utilizzando la modellazione del comportamento degli utenti. L'algoritmo di apprendimento automatico può essere addestrato per identificare il comportamento di ciascun utente, come i modelli di login e logout. Quindi ogni volta che un utente si comporta al di fuori del suo normale metodo comportamentale, l'algoritmo di apprendimento automatico può identificarlo e avvisare il team di sicurezza informatica che qualcosa è fuori dall'ordinario. Naturalmente, alcuni cambiamenti nei modelli di comportamento degli utenti sono del tutto naturali, ma ciò aiuterà comunque a catturare più minacce informatiche rispetto ai metodi convenzionali. Darktrace che utilizza l'apprendimento automatico per identificare i normali schemi comportamentali di tutti gli utenti in un sistema analizzando le informazioni sul traffico di rete. 4. Combattere le minacce dell'IA Molti hacker stanno ora sfruttando la tecnologia e utilizzano l'apprendimento automatico per trovare le falle nella sicurezza e nei sistemi di hacking. Pertanto, è molto importante che le aziende combattano il fuoco con il fuoco e utilizzino l'apprendimento automatico anche per la sicurezza informatica. Questo potrebbe persino diventare il protocollo standard per difendersi dagli attacchi informatici man mano che diventano sempre più esperti di tecnologia. Prendi in considerazione il devastante attacco NotPetya che ha utilizzato EternalBlue, un buco software nel sistema operativo Windows di Microsoft. Questi tipi di attacchi possono diventare ancora più devastanti in futuro con l'aiuto dell'intelligenza artificiale e dell'apprendimento automatico, a meno che anche il software di sicurezza informatica non utilizzi la stessa tecnologia. Un esempio di questo è Crowdstrike, una società di tecnologia di sicurezza informatica che utilizza Falcon Platform, un software di sicurezza imbevuto di intelligenza artificiale per gestire vari attacchi informatici. 5. Monitoraggio e-mail È molto importante monitorare gli account e-mail ufficiali dei dipendenti di un'azienda per prevenire attacchi alla sicurezza informatica come il phishing. Gli attacchi di phishing possono essere effettuati inviando e-mail fraudolente ai dipendenti e chiedendo loro informazioni private come informazioni riservate relative al loro lavoro, dettagli bancari e della carta di credito, password aziendali, ecc. Per evitarli è possibile utilizzare software di sicurezza informatica insieme all'apprendimento automatico trappole di phishing monitorando le e-mail professionali dei dipendenti per verificare se alcune funzionalità indicano una minaccia alla sicurezza informatica. L'elaborazione del linguaggio naturale può essere utilizzata anche per scansionare le e-mail e vedere se c'è qualcosa di sospetto, come alcuni schemi e frasi che potrebbero indicare che l'e-mail è un tentativo di phishing. Ad esempio, Tessianoè una famosa azienda di software che fornisce software di monitoraggio della posta elettronica che può essere utilizzato per verificare se un'e-mail è un tentativo di phishing o una violazione dei dati. Questo viene fatto utilizzando l'elaborazione del linguaggio naturale e le tecnologie di rilevamento delle anomalie per identificare le minacce. Futuro dell'apprendimento automatico e della sicurezza informatica L'apprendimento automatico è ancora un'aggiunta relativamente nuova al campo della sicurezza informatica. Tuttavia, le 5 applicazioni sopra indicate di Machine Learning in Cybersecurity sono un buon inizio in questo campo. L'unica cosa da tenere a mente è che gli algoritmi di apprendimento automatico dovrebbero ridurre al minimo i loro falsi positivi, ovvero le azioni che identificano come dannose o parte di un attacco informatico, ma non lo sono. Le aziende devono assicurarsi di consultare i propri specialisti di sicurezza informatica che possono fornire le migliori soluzioni per identificare e gestire nuovi e diversi tipi di attacchi informatici con ancora più precisione utilizzando l'apprendimento automatico. Vuoi mettere in pratica quello che hai letto ? Scarica Progetti già pronti Lavora con il nostro editor online senza dover installare librerie Usa i nostri set di Dati Oppure segui i tutorial correlati : Tutorial di Regressione Logistica per l'apprendimento automatico Riconoscimento facciale con Python, in meno di 25 righe di codice Tutorial di Regressione Logistica per l'apprendimento automatico Scikit Learn e Python Tutorial Per Creare Modelli di Intelligenza Artificiale Tutorial Pratico Tensorflow , TensorBoard e Python Feature Engineering e Feature Selection per Principianti e non Spiegazione della più semplice rete neurale per principianti PyScript, come usare Python nel browser! Il tuo Primo Programma di Machine Learning con Python e Google Colab Il tuo primo Programma di Deep Learning in Python con Keras Step-By-Step Come costruire modelli predittivi sanitari utilizzando PyHealth? Esempio pratico Rilevamento Di Veicoli In Tempo Reale Come implementare l'algoritmo Perceptron da zero in Python Implementare le reti neurali ricorrenti (RNN) con Python e Keras Deep learnign e python : Object Recognition e Object Predict esempio Come salvare e caricare il tuo modello di deep learning

  • Intelligenza Artificiale nelle imprese, come e perchè applicarla

    Introduzione Intelligenza Artificiale nelle imprese L'IA aziendale sta guidando il business in una nuova dall'IA e aggiungere valore umano per migliorare i processi e, in definitiva, gestire meglio il proprio business L'automazione fa risparmiare tempo, gli algoritmi ML forniscono informazioni dettagliate sul business In che modo Data Scientist e Business Analyst possono migliorare la pianifi... corretto uso dei dati 8 Modi per Potenziare il tuo E-Commerce con l'Intelligenza Artificiale Cosa è la business

  • Come utilizzare la visione artificiale nello sport?

    Ti alleni per essere in forma o forse sei un tifoso di calcio? Alcuni praticano sport per mantenere la salute e la consapevolezza, altri si divertono a guardare le partite con gli amici. Indipendentemente dal nostro stile di vita e dalle nostre preferenze, lo sport è sicuramente parte integrante della nostra realtà. Come ogni altro ambito significativo della nostra vita quotidiana e dell'economia mondiale, lo sport è inevitabilmente soggetto ai progressi tecnologici. Una delle tecnologie in più rapida crescita nell'intelligenza artificiale è la visione artificiale. La dimensione del mercato della sola visione artificiale è stata stimata a 7,04 miliardi di dollari nel 2020 e si prevede che raggiungerà i 18,13 miliardi di dollari entro il 2028. Oggi, nel 2022, l'analisi del calcio in tempo reale o le auto di F1 dotate di sensori non sono più fantasie tecnologiche lontane. In effetti, il progresso va ben oltre: le aziende più sviluppate hanno già impiegato l'intelligenza artificiale e la computer vision nello sport per affrontare diverse sfide. Dato il grande impatto che la tecnologia ha portato nello sport, non c'è dubbio che l'intelligenza artificiale e l'apprendimento automatico continueranno a spingere in avanti questo campo. Inoltre, non c'è dubbio che tecnologie come la computer vision stiano giocando un ruolo cruciale nel cambiare il volto dello sport, con applicazioni utilizzate nell'allenamento e nell'analisi per portare le prestazioni degli atleti ai massimi livelli. Questo articolo ti elencherà i vantaggi dell'utilizzo della visione artificiale negli sport e metterà in luce alcuni affascinanti casi d'uso. Principali vantaggi della visione artificiale nello sport: La visione artificiale svolge un ruolo in ogni aspetto dello sport, dall'esperienza visiva all'allenamento al modo in cui gli arbitri prendono le decisioni. Diamo un'occhiata a quattro casi d'uso tipici nel mondo dello sport. 1. Migliorare l'esperienza dello spettatore Cosa sarebbe lo sport senza i tifosi che incitano le loro squadre ad ogni partita? Ora, grazie alla visione artificiale, le emittenti possono migliorare l'esperienza dei fan. In primo luogo, le telecamere ora sanno dove mettere a fuoco, trovando automaticamente l'azione invece di offrire semplicemente una vista panoramica dell'intero campo. In secondo luogo, i club possono monitorare i tifosi durante le partite e analizzare le loro emozioni, che possono utilizzare per creare statistiche sul coinvolgimento dei tifosi, aiutandoli a capire se hanno bisogno di migliorare l'esperienza dei tifosi. 2. Migliorare le sessioni di allenamento Per fare miglioramenti, i giocatori devono essere in grado di imparare dagli errori: i loro tanto quanto quelli degli avversari. Ecco perché l'analisi sportiva automatica e l'analisi basata sugli insight sono essenziali per il processo di allenamento. Nessuno può individuare gli errori se si allena senza un allenatore, mentre gli allenatori possono facilmente perdere dettagli importanti la prima volta. La visione artificiale può aiutarli ad analizzare le prestazioni dei giocatori. Nel frattempo, il software di riconoscimento degli oggetti può seguire un atleta ed evidenziare eventuali punti deboli nella sua tecnica. Sulla base di questo, atleti e squadre lavorano per eliminare una volta per tutte le cattive abitudini. 3. Controllo delle decisioni dell'arbitro Ripensa all'ultima volta che hai visto giocatori circondare l'arbitro, arrabbiati per una presunta decisione "cattiva". Se solo ci fosse un modo per verificare se l'arbitro ha fatto la chiamata giusta. Grazie alla visione artificiale, possiamo fare proprio questo utilizzando simulazioni 3D e ispezioni video per controllare cose come fuorigioco, out, goal e fotofinish nelle gare. Dimentica le chiamate controverse; la tecnologia è qui per garantire che ogni decisione sia quella giusta. 4. Mantenere gli atleti al sicuro Come tutti sappiamo, lo sport è un ottimo modo per mantenersi in salute, ma non è privo di rischi. Ma grazie alla visione artificiale, possiamo aiutare a prevenire gli incidenti o persino a salvare vite (ne parleremo più avanti nell'articolo su un esempio particolare). Gli algoritmi possono analizzare grandi set di dati, comprese informazioni sulla posizione del giocatore, tipo di gioco, attrezzatura utilizzata, superficie di gioco, fattori ambientali e infortuni del giocatore, quindi aiutare a migliorare il trattamento degli infortuni e la riabilitazione, consentendo in definitiva la prevenzione degli infortuni. Inoltre, comprendendo i fattori che provocano lesioni, i funzionari possono introdurre modifiche per proteggere meglio gli atleti. È interessante notare che i dati hanno influenzato le regole d'inizio della NFL, determinando una diminuzione del 38% delle commozioni cerebrali al riavvio. Dopotutto, ci saranno sempre occasioni in cui le persone non vedono tutto, o potremmo non individuare una situazione fino a quando non sarà troppo tardi. La tecnologia è spesso un passo avanti, quindi può avvisarci del pericolo e impedire che si verifichi una catastrofe. Esempi di utilizzo della visione artificiale nello sport: Abbiamo visto come la visione artificiale può migliorare l'esperienza sportiva. No, è ora di passare ad alcuni nuovi casi d'uso. Ecco sei modi in cui puoi utilizzare la visione artificiale nello sport oggi: 1. Mappatura delle posizioni degli atleti Eventi come maratone e gare ciclistiche possono coinvolgere migliaia di partecipanti. Quindi, come puoi trovare il tuo atleta preferito tra le masse? La visione artificiale può analizzare i filmati e identificare le persone in base ad attributi come il numero di maglia. Questo può anche aiutare gli organizzatori ad aggiornare automaticamente gli spettatori sui risultati. 2. Monitoraggio del giocatore in tempo reale L'analisi sportiva potrebbe aiutarti a migliorare le tue prestazioni nel prossimo evento, ma il monitoraggio in tempo reale può migliorarle immediatamente. Ad esempio, Sentio è un sistema di tracciamento dei giocatori di calcio che utilizza algoritmi di visione artificiale e apprendimento automatico. E può monitorare le prestazioni di giocatori e squadre in tempo reale collegando ogni cella nel filmato a un punto di terra univoco, rappresentato da una patch di immagine fissa. Inoltre, ogni squadra ha il proprio colore di cella, facilitando la distinzione l'una dall'altra. Un'altra applicazione utilizzata nelle partite di calcio consente agli spettatori di visualizzare statistiche di base, come il possesso di ciascuna squadra o la distanza percorsa. E tutto questo è possibile grazie al tracciamento e all'analisi in tempo reale dei dati raccolti. 3. Tracciamento della palla Se sei un appassionato di tennis, siamo sicuri che conoscerai HawkEye . La tecnologia di tracciamento della pallina è ovunque, aiutando gli arbitri di tennis a sapere da che parte della linea è caduta la pallina. Il tracciamento della palla è ora una delle applicazioni di IA sportive più popolari, offrendo due casi d'uso principali: Mostrare rotazione e direzione: aiutare gli atleti a capire in che modo la loro posizione influisce sul colpo della palla; Supportare le chiamate dell'arbitro: non sei sicuro che la palla fosse dentro o fuori? 4. Analisi degli avversari Una strategia ben ponderata è uno dei fattori più importanti per vincere. Ma come possono gli allenatori inventarne uno? Di solito si basano su filmati dei loro avversari e software come GAMEFACE possono essere d'aiuto. Il processo di analisi di GAMEFACE consiste in tre semplici passaggi: Carica il filmato della partita GAMEFACE lo analizza utilizzando l'intelligenza artificiale I report personalizzati evidenziano le informazioni chiave Il software consente agli allenatori di analizzare gli avversari, quindi formulare una strategia di partita efficace basata su dati concreti. 5. Riconoscimento dell'azione Il riconoscimento dell'azione nella visione artificiale è un problema fondamentale nell'analisi dei video sportivi. Ma può aiutare allo stesso modo allenatori, analisti e spettatori. Da un lato, offre agli allenatori un modo per valutare le prestazioni dei giocatori. Dall'altro, consente alle emittenti di seguire l'azione. Analizzando i movimenti di un atleta, gli allenatori possono migliorare la tecnica di un giocatore. Allo stesso tempo, il riconoscimento della posa aiuta gli operatori della telecamera a giudicare dove un giocatore si sposterà successivamente e a seguire l'azione in modo più accurato. 6. Prevenzione del rischio di annegamento SwimEye è un sistema di rilevamento del rischio di annegamento basato sull'intelligenza artificiale che individua i nuotatori in difficoltà e lancia l'allarme. Funziona grazie a telecamere subacquee che monitorano la piscina, utilizzando un software di riconoscimento degli oggetti per individuare i segnali di pericolo. Se le telecamere vedono qualcosa, i bagnini ricevono un avviso e possono agire immediatamente per prevenire una tragedia. Sfide e limiti della computer vision nello sport La visione artificiale negli sport dipende fortemente dai sistemi di telecamere per ottenere e successivamente elaborare filmati sportivi. In genere, diverse telecamere vengono posizionate vicino al luogo in cui si svolge l'evento, ad esempio a bordo campo di un campo di allenamento o sugli spalti di uno stadio durante una partita. L'angolazione, il posizionamento, l'hardware e altre impostazioni di tiro differiscono in modo significativo da sport a sport e persino all'interno della stessa partita. Ciò rappresenta una certa sfida per i sistemi di visione artificiale perché devono anche essere regolati e adattati a corrispondenze specifiche e stili di acquisizione di filmati. Alcune altre sfide includono: L'attrezzatura per le riprese avanzate non è disponibile per molti club sportivi e dipartimenti di analisi delle prestazioni. Le telecamere di trasmissione spesso cambiano la loro panoramica, inclinazione e zoom, il che presenta ulteriori sfide per i sistemi di elaborazione video di visione artificiale per adattarsi ai dati che cambiano dinamicamente che ricevono. In determinate circostanze, può essere difficile per i sistemi di elaborazione video di visione artificiale distinguere tra sfondo e giocatori, giocatori e oggetti, giocatori con lo stesso abbigliamento e altro ancora. La visione artificiale ha affrontato queste carenze in una certa misura. Ad esempio, i computer sono ora in grado di distinguere tra il terreno, i giocatori e altri oggetti in primo piano grazie all'elaborazione delle immagini . Oppure, gli algoritmi di segmentazione basati sul colore consentono di rilevare l'erba in base al suo colore verde, facilitando il rilevamento della zona del campo, il monitoraggio dei giocatori in movimento e l'identificazione della palla. Set di dati o dataset sportivi Per coloro che sono interessati ad approfondire l'argomento e sperimentare la visione artificiale nello sport, ecco un elenco di set di dati pubblici già pronti . 1. Set di dati di classificazione delle immagini di posa yoga Il set di dati contiene un totale di 5994 file suddivisi in 107 directory (cartelle), ciascuna delle quali rappresenta un tipo di yoga distinto. Questo set di dati può aiutare a risolvere le attività di stima della posa nelle applicazioni per lo yoga. 2. Set di dati OpenTTGames OpenTTGames è un set di dati pubblico con cinque video di formazione e sette di test per attività di visione artificiale nel tennis da tavolo. Ogni video include file di markup delle coordinate della palla, una cartella con maschere di segmentazione e un totale di 4271 eventi annotati manualmente di 3 classi: rimbalzi della palla, colpi netti ed eventi. 3. NBA SportVU Il set di dati NBA SportVU è pubblicamente disponibile su GitHub . Contiene le traiettorie dei giocatori e della palla per 631 partite della stagione NBA 2015-2016. I dati di tracciamento sono in formato JSON e ogni momento include informazioni sulle identità dei giocatori in campo, sulle identità delle squadre, sul periodo, sul cronometro di gara e sul cronometro dei 24 secondi. 4. Pose Track PoseTrack è un set di dati open source per la stima della posa umana e il tracciamento articolato in video. Con set di addestramento e test, PoseTrack copre: 1356 sequenze video 46K fotogrammi video annotati 276.000 annotazioni sulla posa del corpo 5. KTH Multiview Football Dataset II Aperto alla ricerca accademica, il KTH Multiview Football Dataset II è costituito da due set principali con dati di stima della posa della verità sul terreno 3D e 2D. Il solo set 3D include 800 time frame, catturati da 3 visualizzazioni (2400 immagini), 2 giocatori diversi e due sequenze per giocatore con 14 giunti annotati. Conclusione computer vision nello sport L'intelligenza artificiale si sta facendo strada in tutti i tipi di sport diversi, dal baseball al calcio e persino al golf. In questo articolo, abbiamo toccato alcuni dei casi d'uso più comuni della visione artificiale nello sport e illustrato esempi di applicazioni esistenti. Le attività di visione artificiale più popolari nello sport includono il monitoraggio del giocatore e della palla, la stima della posa per la prevenzione degli infortuni, la segmentazione per differenziare lo sfondo dai giocatori e altro ancora. Poiché la visione artificiale riguarda il modo in cui elabori i dati visivi, ti suggeriamo di sfruttare i set di dati sportivi pubblici e sperimentare i tuoi progetti.

  • Intelligenza Artificiale nel marketing digitale

    Dai chatbot alle auto a guida autonoma, l'IA è entrata comodamente nelle nostre vite. Ecco alcuni modi in cui puoi utilizzare l'IA per aumentare la tua attività: Chatbot: i chatbot sono uno I chatbot vengono utilizzati anche per raccogliere feedback. I software per il servizio clienti come i chatbot possono gestire ogni sorta di cose, tra cui rispondere

  • Apprendimento per rinforzo ( Reinforcement learning )

    Una semplice guida all'apprendimento per rinforzo per un principiante assoluto. l'articolo include definizioni con esempi, applicazioni reali, concetti chiave e vari tipi di risorse di apprendimento. Introduzione all' apprendimento per rinforzo L'apprendimento per rinforzo è un'area del Machine Learning. Si tratta di intraprendere un'azione adeguata per massimizzare la ricompensa in una situazione particolare. Viene utilizzato da vari software e macchine per trovare il miglior comportamento o percorso possibile da intraprendere in una situazione specifica. L'apprendimento per rinforzo differisce dall'apprendimento supervisionato in modo che nell'apprendimento supervisionato i dati di addestramento hanno la chiave di risposta con sé, quindi il modello viene addestrato con la risposta corretta stessa mentre nell'apprendimento per rinforzo non c'è risposta ma l'agente di rinforzo decide cosa fare per svolgere il compito assegnato. In assenza di un set di dati di addestramento, è destinato a imparare dalla sua esperienza. Esempio: il problema è il seguente: abbiamo un agente e una ricompensa, con molti ostacoli nel mezzo. L'agente dovrebbe trovare il miglior percorso possibile per raggiungere la ricompensa. Il problema seguente spiega il problema più facilmente. L'immagine sopra mostra il robot, il diamante e il fuoco. L'obiettivo del robot è ottenere la ricompensa che è il diamante ed evitare gli ostacoli che vengono lanciati. Il robot impara provando tutti i percorsi possibili e quindi scegliendo il percorso che gli dà la ricompensa con il minor numero di ostacoli. Ogni passo giusto darà al robot una ricompensa e ogni passo sbagliato sottrarrà la ricompensa del robot. La ricompensa totale verrà calcolata quando raggiunge la ricompensa finale che è il diamante. Punti principali nell'apprendimento per rinforzo : Prendi questo esempio come una base da cui partire, durante l'articolo approfondiremo tutti i punti. Input: l'input dovrebbe essere uno stato iniziale da cui partirà il modello Output: ci sono molti possibili output in quanto vi sono una varietà di soluzioni per un problema particolare Formazione: la formazione si basa sull'input, il modello restituirà uno stato e l'utente deciderà di premiare o punire il modello in base al suo output. Il modello continua a imparare. La soluzione migliore viene decisa in base alla ricompensa massima. Tipi di apprendimento per rinforzo: Esistono due tipi di rinforzo: Positivo – Il rinforzo positivo è definito come quando un evento, si verifica a causa di un particolare comportamento, aumenta la forza e la frequenza del comportamento. In altre parole, ha un effetto positivo sul comportamento. I vantaggi dell'apprendimento per rinforzo sono: Massimizza le prestazioni Sostieni il cambiamento per un lungo periodo di tempo Troppo Rinforzo può portare a un sovraccarico di stati che può diminuire i risultati Negativo – Il rinforzo negativo è definito come il rafforzamento del comportamento perché una condizione negativa viene fermata o evitata. Vantaggi dell'apprendimento per rinforzo: Aumenta il comportamento Fornire sfida a uno standard minimo di prestazioni Fornisce solo abbastanza per soddisfare il comportamento minimo Cos'è l'apprendimento per rinforzo? L'apprendimento per rinforzo (RL) è un modello di apprendimento automatico in cui l'agente impara da tentativi ed errori per raggiungere l'obiettivo. È un algoritmo orientato all'obiettivo in cui un agente riceve una ricompensa quando esegue l'azione corretta. Questi premi aiutano gli agenti a navigare in un ambiente complesso per raggiungere l'obiettivo finale. Proprio come un bambino che impara a camminare da solo per tentativi ed errori. Allo stesso modo, una macchina impara a svolgere compiti complessi senza l'intervento umano. L'apprendimento per rinforzo è abbastanza diverso da altri algoritmi di apprendimento automatico. Impara dall'ambiente e ottiene prestazioni migliori rispetto agli esseri umani. Mentre i modelli di apprendimento supervisionato e non supervisionato dipendono dai dati esistenti raccolti dagli esseri umani e sono limitati all'intelligenza umana. Ad esempio, AlphaGo di Deepmind ha imparato da solo varie strategie per sconfiggere il campione del mondo del gioco da tavolo Go. Come funziona l'apprendimento per rinforzo? Prendiamo un esempio di un gioco di Mario. All'inizio del gioco l'agente (Mario) è allo stato zero, in base al suo stato l'agente eseguirà un'azione. In questo caso, Mario andrà avanti. Ora l'agente è in un nuovo stato (nuovo frame). L'agente riceverà una ricompensa poiché è sopravvissuto andando avanti. L'agente continuerà a fare mosse fino a quando non avrà terminato la fase o non sarà morto nel processo. L'obiettivo principale dell'apprendimento per rinforzo è massimizzare la raccolta delle ricompense adottando misure minime. Vantaggi dell'apprendimento per rinforzo L'apprendimento per rinforzo è applicabile a un'ampia gamma di problemi complessi che non possono essere affrontati con altri algoritmi di apprendimento automatico. L'apprendimento per rinforzo è più vicino all'intelligenza artificiale generale (AGI), poiché possiede la capacità di cercare un obiettivo a lungo termine esplorando varie possibilità in modo autonomo. Alcuni dei vantaggi dell'apprendimento per rinforzo includono: Si concentra sul problema nel suo insieme. Gli algoritmi di apprendimento automatico convenzionali sono progettati per eccellere in sottoattività specifiche, senza una nozione del quadro generale. L'apprendimento per rinforzo, invece, non divide il problema in sottoproblemi; funziona direttamente per massimizzare la ricompensa a lungo termine. Ha uno scopo ovvio, comprende l'obiettivo ed è in grado di scambiare ricompense a breve termine con benefici a lungo termine. Non necessita di una fase di raccolta dati separata. Nell'apprendimento per rinforzo, i dati di addestramento vengono ottenuti tramite l'interazione diretta dell'agente con l'ambiente. I dati di addestramento sono l'esperienza dell'agente di apprendimento, non una raccolta separata di dati che devono essere forniti all'algoritmo. Ciò riduce notevolmente l'onere per il supervisore responsabile del processo di formazione. Funziona in ambienti dinamici e incerti. Gli algoritmi di apprendimento per rinforzo sono intrinsecamente adattivi e costruiti per rispondere ai cambiamenti nell'ambiente. Nell'apprendimento per rinforzo, il tempo conta e l'esperienza che l'agente raccoglie non è distribuita in modo indipendente e identico (iid), a differenza degli algoritmi di apprendimento automatico convenzionali. Applicazioni dell'apprendimento per rinforzo: Al momento, le applicazioni di machine learning sono limitate a una singola attività e dipendono dai dati esistenti. Ma in futuro tutto questo cambierà, combineremo l'apprendimento per rinforzo con visione artificiale, traduzione automatica e vari tipi di modelli per ottenere prestazioni sovrumane, ad esempio: Auto a guida autonoma : viaggiare diventa più sicuro e veloce Automazione del settore : gestione del magazzino Trading e finanza : previsione del prezzo delle azioni NLP (Natural Language Processing) : sintesi del testo, risposta alle domande e traduzione automatica Sanità : individuazione e cura efficaci delle malattie Engineering : ottimizzare la produzione su larga scala Sistemi di raccomandazione: notizie migliori, film e consigli sui prodotti. Gioco : migliorare i livelli di gioco per ottimizzare il coinvolgimento dei giocatori Marketing e pubblicità : identifica le persone e indirizzale con annunci in base alle esigenze. Robotica : esecuzione di compiti complessi e ripetitivi. Componenti dell'apprendimento per rinforzo : Ci sono così tante cose da imparare sull'apprendimento per rinforzo prima di iniziare a costruirne una nostra. In questa sezione, impareremo i componenti chiave dell'apprendimento per rinforzo e come ogni componente interagisce tra loro. Agente : può essere un personaggio del gioco, un robot o un'auto. Un agente è un algoritmo che esegue un'azione. Nella vita reale l'agente è un essere umano. Azione (A) : è un insieme di tutte le possibili mosse che un agente può eseguire. Ad esempio, Mario può saltare, spostarsi a sinistra, a destra e chinarsi. Fattore di sconto : le ricompense future sono ridotte, quindi vale meno di un'azione immediata per imporre un edonismo a breve termine all'agente. Ambiente: è un mondo che interagisce con gli agenti. In Mario, l'ambiente è la mappa. Prende lo stato corrente e l'azione dell'agente come input e restituisce la ricompensa e lo stato successivo. Stato (S) : è come una cornice. Quando un agente esegue un'azione, lo stato viene modificato dal frame corrente al frame successivo in un gioco di Mario. Lo stato attuale e successivo è fornito dall'ambiente. Ricompensa (R) : è un feedback o un premio assegnato a un agente in base all'azione precedente. Può essere positivo se l'agente ha completato l'attività e negativo se non riesce. I premi possono anche essere immediati e ritardati. Politica (?) : è una strategia che gli agenti dipendenti per ottenere le ricompense più alte possibili in base allo stato e all'azione. In parole semplici, definisce come un agente agirà in base allo stato corrente. Valore (V) : è un rendimento atteso a lungo termine con uno sconto. Traiettoria : è una sequenza di stati e azioni influenzate da quegli stati. Episodio : un ciclo completo di un agente, dall'inizio alla fine. Ad esempio, Mario inizia dall'inizio e, quando la fase corrente è completata, il primo episodio è completato. L'episodio è completato anche quando Mario muore. Sfruttare : intraprendere l'azione migliore per massimizzare la raccolta di ricompense. Esplora l'azione casuale intrapresa per esplorare l'ambiente senza considerare le ricompense. Algoritmi di apprendimento per rinforzo : Piuttosto che fare riferimento a un algoritmo specifico , il campo dell'apprendimento per rinforzo è costituito da diversi algoritmi che adottano approcci leggermente diversi. Le differenze sono dovute principalmente alle loro strategie per esplorare i loro ambienti. Stato-azione-ricompensa-stato-azione (SARSA). Questo algoritmo di apprendimento per rinforzo inizia fornendo all'agente ciò che è noto come una politica . La politica è essenzialmente una probabilità che le dice le probabilità di determinate azioni che si traducono in ricompense o stati benefici. Q-learning. Questo approccio all'apprendimento per rinforzo adotta l'approccio opposto. L'agente non riceve alcuna politica, il che significa che la sua esplorazione del suo ambiente è più autodiretta. Deep Q-Reti. Questi algoritmi utilizzano le reti neurali oltre alle tecniche di apprendimento per rinforzo. Utilizzano l'esplorazione dell'ambiente autodiretto dell'apprendimento per rinforzo. Le azioni future si basano su un campione casuale di azioni benefiche passate apprese dalla rete neurale. In che modo l'apprendimento per rinforzo è diverso dall'apprendimento supervisionato e non supervisionato? L'apprendimento per rinforzo è considerato il ramo a sé stante dell'apprendimento automatico, sebbene abbia alcune somiglianze con altri tipi di apprendimento automatico, che si suddividono nei seguenti quattro domini: Apprendimento supervisionato. Nell'apprendimento supervisionato, gli algoritmi si addestrano su un corpo di dati etichettati. Gli algoritmi di apprendimento supervisionato possono apprendere solo gli attributi specificati nel set di dati. Le applicazioni comuni dell'apprendimento supervisionato sono i modelli di riconoscimento delle immagini. Questi modelli ricevono una serie di immagini etichettate e imparano a distinguere gli attributi comuni dei moduli predefiniti. Apprendimento senza supervisione. Nell'apprendimento non supervisionato, gli sviluppatori liberano gli algoritmi su dati completamente privi di etichetta. L'algoritmo apprende catalogando le proprie osservazioni sulle caratteristiche dei dati senza che gli venga detto cosa cercare. Apprendimento semi-supervisionato. Questo metodo adotta un approccio di mezzo. Gli sviluppatori inseriscono un set relativamente piccolo di dati di addestramento etichettati, nonché un corpus più ampio di dati senza etichetta. L'algoritmo viene quindi incaricato di estrapolare ciò che apprende dai dati etichettati ai dati non etichettati e trarre conclusioni dall'insieme nel suo insieme. Insegnamento rafforzativo. Questo richiede un approccio completamente diverso. Situa un agente in un ambiente con parametri chiari che definiscono l'attività benefica e l'attività non benefica e un obiettivo generale da raggiungere. È simile in qualche modo all'apprendimento supervisionato in quanto gli sviluppatori devono dare agli algoritmi obiettivi chiaramente specificati e definire ricompense e punizioni. Ciò significa che il livello di programmazione esplicita richiesta è maggiore rispetto all'apprendimento non supervisionato. Ma, una volta impostati questi parametri, l'algoritmo funziona da solo, rendendolo molto più autodiretto rispetto agli algoritmi di apprendimento supervisionato. Per questo motivo, le persone a volte si riferiscono all'apprendimento per rinforzo come a una branca dell'apprendimento semisupervisionato, ma in verità è spesso riconosciuto come un tipo a sé stante di apprendimento automatico. Librerie Python per l'apprendimento per rinforzo 1. KerasRL KerasRL è unalibreria Python di Deep Reinforcement Learning . Implementa alcuni algoritmi RL all'avanguardia e si integra perfettamente con lalibreria di Deep Learning Keras . Inoltre, KerasRL funziona immediatamente con OpenAI Gym . Ciò significa che puoi valutare e giocare con diversi algoritmi abbastanza facilmente. Per installare KerasRL usa semplicemente un comando pip: pip install keras-rl Vediamo se KerasRL soddisfa i criteri: Numero di algoritmi SOTA RL implementati Ad oggi KerasRL ha implementato i seguenti algoritmi: Deep Q-Learning ( DQN ) e suoi miglioramenti ( Doppio e Duello ) Gradiente di policy deterministico profondo ( DDPG ) DQN continuo ( CDQN o NAF ) Metodo dell'entropia incrociata ( CEM ) SARSA profonda Come avrai notato, a KerasRL mancano due agenti importanti: metodi Actor-Critic e Proximal Policy Optimization (PPO).Docume.ntazione ufficiale, disponibilità di tutorial ed esempi. Il codice è facile da leggere ed è pieno di commenti, il che è abbastanza utile. Tuttavia, la documentazione sembra incompleta poiché manca la spiegazione dei parametri e dei tutorial. Inoltre, gli esempi pratici lasciano molto a desiderare. Codice leggibile e facile da personalizzare Molto facile. Tutto quello che devi fare è creare un nuovo agente seguendo l'esempio e quindi aggiungerlo a rl.agents . Numero di ambienti supportati KerasRL è stato creato per funzionare solo con OpenAI Gym . Pertanto è necessario modificare l'agente se si desidera utilizzare qualsiasi altro ambiente. Supporto per strumenti di registrazione e monitoraggio Il supporto degli strumenti di registrazione e monitoraggio non è implementato. Caratteristica dell'ambiente vettorizzato Include una funzione di ambiente vettorizzato. Aggiornamenti regolari La libreria sembra non essere più mantenuta in quanto gli ultimi aggiornamenti risalgono a più di un anno fa. Per riassumere, KerasRL ha una buona serie di implementazioni. Sfortunatamente, mancano punti preziosi come strumenti di visualizzazione, nuove architetture e aggiornamenti. Probabilmente dovresti usare un'altra libreria. 2. Pyqlearning Pyqlearning è una libreria Python per implementare RL. Si concentra su Q-Learning e Deep Q-Network multi-agente. Pyqlearning fornisce componenti per i progettisti, non per scatole nere all'avanguardia per gli utenti finali. Pertanto, questa libreria è difficile da usare. Puoi usarlo per progettare l'algoritmo di ricerca delle informazioni, ad esempio GameAI o web crawler. Per installare Pyqlearning è sufficiente utilizzare un comando pip: pip installa pyqlearning Vediamo se Pyqlearning soddisfa i criteri: Numero di algoritmi SOTA RL implementati Ad oggi Pyqlearning ha implementato i seguenti algoritmi: Deep Q-Learning ( DQN ) e suoi miglioramenti ( Epsilon Greedy e Boltzmann ) Come avrai notato, Pyqlearning ha un solo agente importante. La libreria lascia molto a desiderare. Documentazione ufficiale, disponibilità di tutorial ed esempi Pyqlearning ha un paio di esempi per vari compiti e due tutorial con Maze Solving e il gioco di evasione degli inseguimenti di Deep Q-Network . Puoi trovarli nella documentazione ufficiale . La documentazione sembra incompleta in quanto si concentra sulla matematica e non sulla descrizione e sull'utilizzo della libreria. Codice leggibile e facile da personalizzare Pyqlearning è una libreria open source. Il codice sorgente può essere trovato su Github . Il codice manca di commenti. Può essere un compito complicato personalizzarlo. Tuttavia, i tutorial potrebbero aiutare. Numero di ambienti supportati Poiché la libreria è agnostica, è relativamente facile aggiungerla a qualsiasi ambiente. Supporto per strumenti di registrazione e monitoraggio L'autore utilizza un semplice pacchetto di registrazione nei tutorial. Pyqlearning non supporta altri strumenti di registrazione e monitoraggio, ad esempio TensorBoard . Caratteristica dell'ambiente vettorizzato Pyqlearning non supporta la funzionalità dell'ambiente vettorizzato. Aggiornamenti regolari La biblioteca è mantenuta. L'ultimo aggiornamento è stato effettuato due mesi fa. Tuttavia, il processo di sviluppo sembra essere lento. Per riassumere, Pyqlearning lascia molto a desiderare. Non è una libreria che utilizzerai comunemente. Quindi, probabilmente dovresti usare qualcos'altro. 3. Tensorforce Tensorforce è una libreria Deep RL open source basata sul framework Tensorflow di Google. È semplice nel suo utilizzo e ha il potenziale per essere una delle migliori librerie di apprendimento per rinforzo . Tensorforce ha scelte di progettazione chiave che lo differenziano dalle altre librerie RL: Design modulare basato sui componenti: le implementazioni delle funzionalità, soprattutto, tendono ad essere il più generalmente applicabili e configurabili possibile. Separazione dell'algoritmo RL e dell'applicazione: gli algoritmi sono indipendenti dal tipo e dalla struttura degli input (stati/osservazioni) e degli output (azioni/decisioni), nonché dall'interazione con l'ambiente dell'applicazione. Per installare Tensorforce usa semplicemente un comando pip: pip install tensorforce Vediamo se Tensorforce soddisfa i criteri: Numero di algoritmi SOTA RL implementati Ad oggi, Tensorforce ha implementato il seguente set di algoritmi: Deep Q-Learning ( DQN ) e suoi miglioramenti ( Doppio e Duello ) Gradiente della politica vaniglia ( PG ) Gradiente di policy deterministico profondo ( DDPG ) DQN continuo ( CDQN o NAF ) Attore critico ( A2C e A3C ) Ottimizzazione della politica della regione di fiducia ( TRPO ) Ottimizzazione delle politiche prossimali ( PPO ) Come avrai notato, Tensorforce non ha implementato l' implementazione Soft Actor Critic ( SAC ). Oltre a questo è perfetto. Documentazione ufficiale, disponibilità di tutorial ed esempi È abbastanza facile iniziare a utilizzare Tensorforce grazie alla varietà di semplici esempi e tutorial. La documentazione ufficiale sembra completa e comoda da navigare. Codice leggibile e facile da personalizzare Tensorforce trae vantaggio dal suo design modulare. Ogni parte dell'architettura, ad esempio reti, modelli, corridori è distinta. Pertanto, puoi modificarli facilmente. Tuttavia, il codice manca di commenti e questo potrebbe essere un problema. Numero di ambienti supportati Tensorforce funziona con più ambienti, ad esempio OpenAI Gym , OpenAI Retro e DeepMind Lab . Ha anche documentazione per aiutarti a collegarti ad altri ambienti. Supporto per strumenti di registrazione e monitoraggio La libreria supporta TensorBoard e altri strumenti di registrazione/tracciamento. Caratteristica dell'ambiente vettorizzato Tensorforce supporta la funzionalità dell'ambiente vettorizzato. Aggiornamenti regolari Tensorforce viene aggiornato regolarmente. L'ultimo aggiornamento risale a poche settimane fa. Per riassumere, Tensorforce è un potente strumento RL. È aggiornato e contiene tutta la documentazione necessaria per iniziare a lavorarci. Qual è il futuro dell'apprendimento per rinforzo? Negli ultimi anni sono stati compiuti progressi significativi nell'area dell'apprendimento per rinforzo profondo. L'apprendimento per rinforzo profondo utilizza reti neurali profonde per modellare la funzione del valore (basata sul valore) o la politica dell'agente (basata sulla politica) o entrambi (critico dell'attore). Prima del successo diffuso delle reti neurali profonde, è stato necessario progettare funzionalità complesse per addestrare un algoritmo di apprendimento per rinforzo. Ciò significava una ridotta capacità di apprendimento, limitando l'ambito dell'apprendimento per rinforzo ad ambienti semplici. Con il deep learning, i modelli possono essere costruiti utilizzando milioni di pesi addestrabili, liberando l'utente dalla noiosa progettazione delle funzionalità. Le funzionalità rilevanti vengono generate automaticamente durante il processo di formazione, consentendo all'agente di apprendere le politiche ottimali in ambienti complessi. Tradizionalmente, l'apprendimento per rinforzo viene applicato a un'attività alla volta. Ogni attività viene appresa da un agente di apprendimento per rinforzo separato e questi agenti non condividono la conoscenza. Questo rende l'apprendimento di comportamenti complessi, come guidare un'auto, inefficiente e lento. I problemi che condividono una fonte di informazioni comune, hanno una struttura sottostante correlata e sono interdipendenti possono ottenere un enorme aumento delle prestazioni consentendo a più agenti di lavorare insieme. Più agenti possono condividere la stessa rappresentazione del sistema addestrandoli contemporaneamente, consentendo di sfruttare i miglioramenti nelle prestazioni di un agente da parte di un altro. A3C (Asynchronous Advantage Actor-Critic) è uno sviluppo entusiasmante in quest'area, in cui le attività correlate vengono apprese contemporaneamente da più agenti. Questo scenario di apprendimento multi-tasking sta avvicinando l'apprendimento per rinforzo all'AGI, dove un meta-agente impara a imparare.

  • Falsi miti sul machine learning

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

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

    Se sapessi quale algoritmo o configurazione dell'algoritmo utilizzare, non avresti bisogno di utilizzare l'apprendimento automatico Non esiste il miglior algoritmo di apprendimento automatico o parametri dell'algoritmo. Vogliamo curarti da questo tipo di mentalità, vediamo spesso queste domande, anche quotidianamente: Qual è il miglior algoritmo di apprendimento automatico? Qual è la mappatura tra algoritmi e problemi di machine learning? Quali sono i parametri migliori per un algoritmo di apprendimento automatico? C'è uno schema per queste domande. In genere non conosci e non puoi conoscere le risposte a queste domande in anticipo. Devi scoprirlo attraverso uno studio accurato. Ci sono alcune tecniche generali per rispondere a queste domande, ma anche queste possono portarti fuori stratda se stai cercando di ottenere il massimo da un algoritmo o da un problema. In questo post, voglio incoraggiarti a liberarti da questa mentalità e ad adottare un approccio basato sui dati che cambierà il modo in cui ti avvicini all'apprendimento automatico. Miglior algoritmo di machine learning Alcuni algoritmi hanno più " potenza " di altri. Sono non parametrici o altamente flessibili e adattivi, o altamente autoregolanti o tutto quanto sopra. In genere questa potenza ha un costo per la difficoltà di implementazione, la necessità di set di dati molto grandi, la scalabilità limitata o un numero elevato di coefficienti che possono risultare in un adattamento eccessivo. Con set di dati più grandi, c'è stato un interesse per metodi più semplici che scalano e funzionano bene. Qual è l'algoritmo migliore, l'algoritmo che dovresti sempre provare e dedicare più tempo all'apprendimento? Potremmo buttare fuori alcuni nomi come molti "DataScientist GURU", ma la risposta più intelligente è " nessuno " e " tutti ". Nessun algoritmo di machine learning è migliore Non puoi sapere a priori quale algoritmo sarà più adatto al tuo problema. Leggi di nuovo la riga sopra. E pensaci un po sopra. Puoi applicare il tuo algoritmo preferito. Puoi applicare l'algoritmo consigliato in un libro o in un documento. Puoi applicare l'algoritmo che sta vincendo il maggior numero di competizioni Kaggle in questo momento. Questi sono pregiudizi. Sono scorciatoie nel pensare che fanno risparmiare tempo. Per definizione, i pregiudizi limiteranno le soluzioni che puoi ottenere, l'accuratezza che puoi ottenere e, in definitiva, l'impatto che puoi avere. Mappatura degli algoritmi di machine learning ai problemi Esistono classi generali di problemi , ad esempio problemi supervisionati come classificazione e regressione e problemi non supervisionati come apprendimento multiplo e raggruppamento. Esistono casi più specifici di questi problemi nei sottocampi dell'apprendimento automatico come Computer Vision, Natural Language Processing e Speech Processing. Possiamo anche andare dall'altra parte, più astratto e considerare tutti questi problemi come istanze di approssimazione di funzioni e ottimizzazione di funzioni. È possibile associare algoritmi a classi di problemi, ad esempio esistono algoritmi in grado di gestire problemi di regressione supervisionata e problemi di classificazione supervisionata ed entrambi i tipi di problemi. Puoi anche costruire cataloghi di algoritmi e ciò potrebbe essere utile per ispirarti su quali algoritmi provare. Puoi gareggiare con algoritmi su un problema e riportare i risultati. A volte questo è chiamato bake-off ed è popolare in alcuni atti di conferenze per la presentazione di nuovi algoritmi. Trasferibilità limitata dei risultati dell'algoritmo Un problema chiave con gli algoritmi è che non è possibile trasferire facilmente i risultati da un problema all'altro. Se ritieni che questa affermazione sia vera, leggere degli algoritmi su giornali e blog non ti informa su quale algoritmo provare per il tuo problema. Se l'algoritmo A uccide l'algoritmo B sul problema X , cosa ti dice sull'algoritmo A e B sul problema Y ? Devi lavorare per mettere in relazione i problemi X e Y . Hanno proprietà uguali o simili (attributi, distribuzioni di attributi, forma funzionale) che vengono sfruttate dagli algoritmi in studio? È un duro lavoro. Non abbiamo una comprensione approfondita di quando un algoritmo di apprendimento automatico funziona meglio di un altro. I migliori parametri dell'algoritmo Gli algoritmi di apprendimento automatico sono parametrizzati in modo da poter adattare il loro comportamento e i risultati al tuo problema. Il problema è che raramente viene spiegato il “ come ” manipolare gli iperparametri degli algoritmi di machine learning. Spesso è poco compreso, anche dagli stessi sviluppatori di algoritmi. Generalmente, gli algoritmi di machine learning con elementi stocastici sono sistemi complessi e come tali devono essere studiati. Il primo ordine: può essere descritto quale effetto ha il parametro sul sistema complesso. Nessun parametro algoritmo migliore I nuovi insiemi di configurazioni di algoritmi sono essenzialmente nuove istanze di algoritmi con cui puoi sfidare il tuo problema (sebbene relativamente vincolati o simili nei risultati che possono ottenere). Non puoi conoscere a priori i migliori parametri dell'algoritmo per il tuo problema . È possibile utilizzare i parametri utilizzati nel documento seminale. È possibile utilizzare i parametri in un libro. Puoi utilizzare i parametri elencati in un post di kaggle " come l'ho fatto ". Buone regole pratiche. Forse sì forse no. Approccio basato sui dati per scegliere il migliore algoritmo di machine learning Non abbiamo bisogno di cadere in un cumulo di disperazione. Diventiamo scienziati. Hai pregiudizi che possono abbreviare le decisioni per la selezione dell'algoritmo e la selezione dei parametri dell'algoritmo. Cambiamo mentalità Invece di scegliere il tuo algoritmo preferito, prova 10 o 20 algoritmi. Segnati quelli che mostrano segni di miglioramento in termini di prestazioni, robustezza, velocità o qualsiasi cosa ti interessi di più. Invece di selezionare i parametri comuni, cerca nella griglia decine, centinaia o migliaia di combinazioni di parametri. Diventa lo scienziato obiettivo, lasciati alle spalle aneddoti e studia l'intersezione di complessi sistemi di apprendimento e osservazioni di dati dal tuo dominio problematico. Approccio basato sui dati in azione Questo è un approccio potente che richiede meno conoscenze iniziali, ma molto più calcolo e sperimentazione di back-end. Pertanto, molto probabilmente ti verrà richiesto di lavorare con un campione più piccolo del tuo set di dati in modo da poter ottenere risultati rapidamente. Avrai bisogno di un'imbracatura di prova in cui puoi avere completa fiducia. Come puoi avere completa fiducia? Sviluppi fiducia selezionando le opzioni di test in un modo basato sui dati che ti dà la certezza oggettiva che la configurazione scelta è affidabile. Il tipo di metodo di stima (split, boosting, k-fold cross validation, ecc.) e la sua configurazione (dimensione di k, ecc.). Risultati rapidi e robusti Ottieni buoni risultati, velocemente. Se la foresta casuale è il tuo algoritmo preferito, potresti passare giorni o settimane cercando invano di ottenere il massimo dall'algoritmo sul tuo problema, che potrebbe non essere adatto al metodo in primo luogo. Con una metodologia basata sui dati, puoi scontare in anticipo i (relativi) scarsi risultati. Puoi fallire velocemente. Ed è il miglior modo per ottenere successo velocemente. Ci vuole disciplina per non ricadere su pregiudizi e algoritmi e configurazioni preferiti. È un duro lavoro per ottenere risultati buoni e robusti. Non ti preoccupi più se ti stai perdendo non usando l'algoritmo X o Y o la configurazione A o B ( paura della perdita ), li butti nel mix. Sfrutta l'automazione L'approccio basato sui dati è un problema di ricerca. Puoi sfruttare l'automazione. Puoi scrivere script riutilizzabili per cercare il cablaggio di test più affidabile per il tuo problema prima di iniziare. Niente più supposizioni ad hoc. Puoi scrivere uno script riutilizzabile per provare automaticamente 10, 20, 100 algoritmi in una varietà di librerie e implementazioni. Niente più algoritmi o librerie preferiti. La linea tra i diversi algoritmi è sparita. Una nuova configurazione dei parametri è un nuovo algoritmo. Puoi scrivere script riutilizzabili per grigliare o eseguire ricerche casuali in ogni algoritmo per campionarne veramente le capacità. Aggiungi l'ingegneria delle funzionalità in modo che ogni " vista " sui dati sia un nuovo problema per gli algoritmi da sfidare. Riepilogo sul migliore algoritmo di machine learning In questo post, abbiamo esaminato l'approccio e le best practice comuni per la scelta di un algoritmo e alla selezione dei parametri dell'algoritmo. Abbiamo considerato che questo approccio porta a limitazioni nel nostro pensiero. Desideriamo ardentemente i migliori algoritmi per uso generale e le migliori configurazioni di algoritmi, quando non esistono cose del genere. Non esiste il miglior algoritmo di apprendimento automatico per uso generale. Non ci sono migliori parametri dell'algoritmo di apprendimento automatico per uso generale. La trasferibilità della capacità di un algoritmo da un problema all'altro è discutibile. La soluzione è diventare lo scienziato e studiare algoritmi sui nostri problemi. Dobbiamo prendere un problema basato sui dati, per controllare gli algoritmi, per cercare i parametri dell'algoritmo di ricerca e per trovare rapidamente metodi che producano buoni risultati, in modo affidabile e veloce. Vuoi mettere in pratica quello che hai letto ? Scarica Progetti già pronti Lavora con il nostro editor online senza dover installare librerie Usa i nostri set di Dati Oppure segui i tutorial correlati : Tutorial di Regressione Logistica per l'apprendimento automatico Riconoscimento facciale con Python, in meno di 25 righe di codice Tutorial di Regressione Logistica per l'apprendimento automatico Scikit Learn e Python Tutorial Per Creare Modelli di Intelligenza Artificiale Tutorial Pratico Tensorflow , TensorBoard e Python Feature Engineering e Feature Selection per Principianti e non Spiegazione della più semplice rete neurale per principianti PyScript, come usare Python nel browser! Il tuo Primo Programma di Machine Learning con Python e Google Colab Il tuo primo Programma di Deep Learning in Python con Keras Step-By-Step Come costruire modelli predittivi sanitari utilizzando PyHealth? Esempio pratico Rilevamento Di Veicoli In Tempo Reale Come implementare l'algoritmo Perceptron da zero in Python Implementare le reti neurali ricorrenti (RNN) con Python e Keras Deep learnign e python : Object Recognition e Object Predict esempio Come salvare e caricare il tuo modello di deep learning

  • IA e Amore - Può l’intelligenza artificiale imparare ad amare – e noi possiamo imparare ad amarla?

    Chatbot come ChatGpt sono progettati per offrire supporto emotivo e compagnia, portando le persone a Applicazioni come Replika, un chatbot progettato per essere un'amica virtuale, stanno dimostrando che

bottom of page