Risultati Ricerca Intelligenza Artificiale Italia
331 risultati trovati per "ChatGPT business"
- Intelligenza artificiale nello sviluppo del software il suo ruolo
Una piattaforma non è tutto, ma piuttosto una piattaforma basata sull'intelligenza artificiale (AI Chatbot Quasi tutti i siti Web del servizio clienti, come IRCTC, BookMyShow, MakeMyTrip , ecc., sono basati su chatbot
- 5 Casi d'Uso di Generative AI da Implementare Subito per Aziende
per ottimizzare i flussi di lavoro, automatizzare processi laboriosi e sbloccare nuove opportunità di business All'inizio del 2023, istituzioni di Wall Street come Goldman Sachs e Citigroup vietarono famosamente ChatGPT Incorporando la ricerca semantica nei chatbot di base e nei flussi di lavoro, i team di dati possono Quando un cliente ha una conversazione infruttuosa con il chatbot front-end esistente, la trascrizione Coinvolgi Tutti i Reparti L'AI Generativa può trasformare praticamente ogni aspetto del tuo business.
- Cosa è Docker e come funziona, la guida completa fino all'istallazione
Non è difficile creare un modello di machine learning che funzioni sui nostri computer. È più difficile quando si lavora con un cliente che desidera utilizzare il modello su larga scala, ovvero un modello in grado di scalare ed eseguire su tutti i tipi di server in tutto il mondo. Dopo aver finito di progettare il tuo modello, potrebbe funzionare senza problemi sul tuo laptop o server, ma non così bene su altre piattaforme, come quando lo sposti nella fase di produzione o su un altro server. Molte cose possono andare storte, come problemi di prestazioni, arresto anomalo dell'applicazione o l'applicazione non ottimizzata in modo efficace. È stato sviluppato un modello di apprendimento automatico utilizzando un unico linguaggio di programmazione come Python , ma quasi sicuramente dovrà connettersi con più linguaggi di programmazione per l'acquisizione dei dati, la preparazione dei dati, il front-end, ecc. Docker semplifica la gestione di tutte queste interazioni perché ogni microservizio può essere costruito in un linguaggio distinto, consentendo la scalabilità e l'aggiunta rapida, l'eliminazione di servizi indipendenti. Riproducibilità, portabilità, facilità di implementazione, aggiornamenti granulari, leggerezza e semplicità sono tutti vantaggi di Docker. A volte non è il modello il problema, ma il requisito per ricreare l'intero stack. Docker ti consente di replicare facilmente l'ambiente di training e di esecuzione per il modello di machine learning da qualsiasi posizione. Docker ti consente di impacchettare il codice e le dipendenze in contenitori che possono essere trasferiti a host diversi, indipendentemente dall'hardware o dal sistema operativo. Gli sviluppatori possono utilizzare Docker per tenere traccia delle diverse versioni di un'immagine del contenitore, vedere chi l'ha prodotta con cosa e tornare alle versioni precedenti. Infine, anche se uno dei servizi dell'applicazione di machine learning è in fase di aggiornamento, correzione o down, l'applicazione di machine learning può continuare a essere eseguita. Per aggiornare un messaggio di output integrato nell'applicazione, non è necessario aggiornare l'intera applicazione e interrompere altri servizi. Cosa è Docker e quando è nato ? È una piattaforma software che semplifica lo sviluppo, l'esecuzione, la gestione e la distribuzione di applicazioni. Ciò è stato possibile virtualizzando il sistema operativo del computer che aveva installato. La prima edizione di Docker era stata lanciata nel 2013. Il linguaggio di programmazione GO è stato utilizzato per creare Docker. Considerando il ricco set di funzionalità che Docker ha da offrire, è stato ampiamente accettato da alcune delle principali organizzazioni e università del mondo, come Visa, PayPal, Cornell University e Indiana University (solo per citarne alcune) per gestire e gestire i propri applicazioni che utilizzano Docker. Ora proviamo a capire il problema e la soluzione offerta da Docker Problema Immaginiamo di voler ospitare tre applicazioni separate basate su Python su un singolo server (che potrebbe essere una macchina fisica o virtuale). Una versione diversa di Python utilizzata da questi programmi, librerie e dipendenze varia da applicazione ad applicazione. Non siamo in grado di ospitare tutte e tre le applicazioni sulla stessa workstation poiché diverse versioni di Python non possono essere installate sulla stessa macchina, Soluzione offerta da Docker Vediamo cosa potremmo fare se non usassimo Docker per affrontare questo problema. In questo caso, potremmo risolvere il problema con l'aiuto di tre macchine fisiche o utilizzando un singolo computer fisico abbastanza potente da ospitare ed eseguire tre macchine virtuali. Entrambi gli approcci ci aiuterebbero a installare varie versioni di Python e le relative dipendenze su ciascuna di queste macchine. Indipendentemente dalla soluzione che abbiamo scelto, i costi di acquisto e manutenzione dell'hardware sono notevoli. Diamo un'occhiata a come Docker potrebbe essere una soluzione praticabile ed economica a questo problema. Per comprenderlo, dobbiamo prima esaminarne la funzionalità. In termini semplici, il sistema con Docker installato e in esecuzione viene chiamato Docker Host o semplicemente Host. Di conseguenza, ogni volta che si desidera distribuire un'applicazione sull'host, verrà creata un'entità logica per ospitare tale applicazione. Questo oggetto logico è noto come Container o Docker Container nella nomenclatura Docker. Non è presente alcun sistema operativo installato o in esecuzione su un Docker Container. Tuttavia, verrebbe inclusa una replica virtuale della tabella del processo, delle interfacce di rete e del punto di montaggio del file system. Viene passato ulteriormente dal sistema operativo host su cui è ospitato ed è in esecuzione il contenitore. Il kernel del sistema operativo dell'host, invece, è condiviso da tutti i container in esecuzione su di esso. Consente a ciascun container sullo stesso host di essere isolato dagli altri. Di conseguenza, consente l'esecuzione sullo stesso host di numerosi contenitori con vari requisiti applicativi e dipendenze, purché i requisiti del sistema operativo siano gli stessi. La parte successiva, che affronta i vantaggi e gli svantaggi dell'adozione di Docker, ti aiuterà a capire come Docker aiuta a risolvere questa sfida. In altre parole, invece di virtualizzare i componenti hardware, Docker virtualizzerebbe il sistema operativo dell'host su cui era installato e in esecuzione. Pro e contro dell'utilizzo di Docker Pro dell'utilizzo di Docker Docker consente a numerosi programmi con requisiti e dipendenze diversi di essere ospitati sullo stesso host purché utilizzino lo stesso sistema operativo. I contenitori hanno in genere una dimensione di pochi megabyte e occupano relativamente poco spazio su disco, consentendo molte applicazioni ospitate sullo stesso host. Robustezza, non vi è alcun sistema operativo installato su un container. Di conseguenza, utilizza una memoria estremamente ridotta rispetto a una macchina virtuale (che avrebbe un sistema operativo completo installato e in esecuzione su di essa). Riduce il tempo di avvio a pochi secondi, mentre sono necessari diversi minuti per avviare una macchina virtuale. Il costo è inferiore quando si tratta dell'hardware necessario per eseguire Docker ed è meno impegnativo. Contro dell'utilizzo di Docker Sullo stesso Docker Host, non possiamo ospitare insieme applicazioni che hanno diverse esigenze del sistema operativo. Facciamo finta di avere quattro programmi separati, tre dei quali richiedono un sistema operativo basato su Linux e uno dei quali richiede un sistema operativo basato su Windows. Le tre app che richiedono un sistema operativo basato su Linux possono trovarsi su un singolo Docker Host. L'applicazione che richiede un sistema operativo basato su Windows deve trovarsi su un Docker Host separato. Componenti principali Docker Docker Engine è uno dei componenti principali ed è responsabile del funzionamento generale. È un'applicazione basata su client-server con tre componenti principali. Server Rest API Client Il server esegue il demone dockerd (Docker Daemon), che non è altro che un processo. Sulla piattaforma Docker, è responsabile della creazione e della gestione di immagini, contenitori, reti e volumi Docker. L' API REST definisce come le applicazioni possono interfacciarsi con il server e indica come completare le proprie attività. Il client è un'interfaccia a riga di comando che consente agli utenti di comunicare con Docker emettendo comandi. Terminologie Docker Diamo un'occhiata ad alcuni dei termini usati nel mondo Docker. Le immagini Docker e i contenitori Docker sono i due elementi più importanti che incontrerai lavorando regolarmente con Docker. In parole povere, un'immagine Docker è un modello che include il programma, le dipendenze necessarie per eseguirlo su Docker. Un Docker Container, invece, è un'entità logica, come indicato in precedenza. È un'istanza funzionante dell'immagine Docker in termini più tecnici. Docker Hub Docker Hub è il repository online ufficiale in cui possiamo trovare tutte le Docker Images che possiamo utilizzare. Se lo desideri, possiamo anche utilizzare Docker Hub per archiviare e distribuire le nostre immagini personalizzate. Potremmo anche renderli pubblici o privati, a seconda delle nostre esigenze. Nota: gli utenti gratuiti possono mantenere privata un'immagine Docker. Più di uno richiede un abbonamento a pagamento. Installazione Docker Prima di sporcarci le mani con Docker, un'ultima cosa che dobbiamo sapere è che dobbiamo averlo installato. Le istruzioni di installazione ufficiali di Docker sono qui sotto. Per installare Docker clicca il link relativo al tuo sistema operativo. CentOS Linux Debian Linux Fedora Linux Ubuntu Linux Microsoft Windows MacOS Vuoi saltare l'installazione e iniziare a esercitarti su Docker? Se non ti va di installare Docker o non hai abbastanza risorse sul tuo PC, non farti prendere dal panico: c'è una soluzione al tuo problema. Gioca con Docker, un parco giochi online per Docker, è il miglior punto di partenza. Consente agli utenti di esercitarsi immediatamente con i comandi Docker senza la necessità di installare nulla sul proprio PC. La parte migliore è che è facile da usare e completamente gratuito. Comandi Docker È finalmente giunto il momento di sporcarci le mani con i comandi Docker, come tutti stavamo aspettando creazione della finestra mobile Il comando di creazione della finestra mobile sarà il primo comando che esamineremo Possiamo usare questo comando per costruire un nuovo contenitore. Quella che segue è la sintassi per questo comando: docker create [options] IMAGE [commands] [arguments] Tieni presente che tutto ciò che viene inserito tra parentesi quadre è facoltativo. Vale per tutte le istruzioni presentate in questa guida. Di seguito sono riportati alcuni esempi di come utilizzare questo comando: $ docker create fedora 02576e880a2ccbb4ce5c51032ea3b3bb8316e5b626861fc87d28627c810af03 Il comando docker create nell'esempio precedente creerebbe un nuovo contenitore usando l'immagine Fedora più recente. Verificherà se l'ultima immagine ufficiale di Fedora è disponibile su Docker Host prima di costruire il container. Se l'immagine più recente non è accessibile sul Docker Host, il contenitore è stato avviato utilizzando l'immagine Fedora scaricata dal Docker Hub. Se l'immagine Fedora è già presente sul Docker Host, il contenitore usa quell'immagine per la creazione. Docker restituisce l'ID del contenitore in caso di creazione riuscita del contenitore. L'ID contenitore restituito da Docker è nell'esempio precedente. Un ID contenitore è stato assegnato a ciascun contenitore. Quando si eseguono varie attività sul contenitore, come l'avvio, l'arresto, il ripristino e così via, si fa riferimento ad esso con il relativo ID contenitore. Diamo un'occhiata a un altro esempio del comando docker create, questa volta con parametri e comando forniti. $ docker create -t -i ubuntu bash 30986b73dc0022dbba81648d9e35e6e866b4356f026e75660460c3474f1ca005 Il comando docker create nell'esempio precedente crea un contenitore usando l'immagine Ubuntu (se l'immagine non è disponibile nell'host Docker, scaricherà l'immagine più recente dall'hub Docker prima di creare il contenitore). Le opzioni -t e -i indicano a Docker di assegnare un terminale al container in modo che l'utente possa interagire con esso. Dice inoltre a Docker di eseguire il comando bash ogni volta che si avvia il contenitore. docker ps Il comando docker ps è il prossimo che esamineremo Possiamo usare il comando docker ps per vedere tutti i container attualmente in esecuzione sull'host Docker. $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES30986b73dc00 ubuntu "bash" 45 minutes ago Up About a minute elated_franklin Mostra solo i contenitori in esecuzione sull'host Docker in questo momento. Per visualizzare i contenitori creati su questo host Docker, indipendentemente dalla loro condizione attuale, in esecuzione o meno, è necessario utilizzare l'opzione -a, che elenca tutti i contenitori creati su questo host Docker. $ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES30986b73dc00 ubuntu “bash” About an hour ago Up 29 minutes elated_franklin02576e880a2c fedora “/bin/bash” About an hour ago Created hungry_sinoussi Cerchiamo di capire l'output sopra del comando docker ps. CONTAINER ID: è costituito da una stringa univoca con caratteri alfanumerici collegata a ciascun contenitore. IMMAGINE: Docker Immagine utilizzata per creare il contenitore. COMANDO: dopo l'avvio del contenitore, esegue tutti i comandi specifici dell'applicazione. CREATO: Fornisce il tempo trascorso dalla creazione del contenitore. STATUS: fornisce lo stato corrente del container. Se il container è in esecuzione, visualizzerà Up insieme al tempo trascorso. (fino a circa un'ora o fino a 5 minuti) Se il container non è in esecuzione, lo stato sarà Exited, con il codice dello stato di uscita racchiuso tra parentesi tonde e il tempo scaduto. (Uscita (0) 2 settimane fa o Uscita (137) 10 secondi fa) PORTS: fornisce le mappature delle porte descritte per il container. NOMI: oltre all'ID CONTAINER, ogni container aveva un nome univoco. Un container può essere identificato dal suo ID container o dal suo nome univoco. Ogni contenitore Docker genera e assegna un nome univoco per impostazione predefinita. Se desideri modificare il contenitore con un nome univoco, usa l'opzione –name con i comandi di creazione mobile o esecuzione mobile. Spero che questo ti aiuti a capire meglio cosa restituisce il comando docker ps. inizio della finestra mobile Il comando aiuta ad avviare eventuali contenitori fermi. docker start [options] CONTAINER ID/NAME [CONTAINER ID/NAME…] Per avviare il contenitore, puoi specificare i primi caratteri univoci dell'ID contenitore o il suo nome. Di seguito puoi guardare l'esempio. $ docker start 30986 $ docker start elated_franklin riavvio della finestra mobile Il comando aiuta a riavviare tutti i contenitori in esecuzione. docker restart [options] CONTAINER ID/NAME [CONTAINER ID/NAME…] Allo stesso modo, possiamo riavviare specificando i primi caratteri univoci dell'ID contenitore o il suo nome. Guarda gli esempi usando questo comando $ docker restart 30986 $ docker restart elated_franklin Stop della finestra Il comando aiuta a fermare tutti i contenitori in esecuzione. docker stop [options] CONTAINER ID/NAME [CONTAINER ID/NAME…] È correlato al comando di avvio. È possibile specificare i primi caratteri univoci dell'ID contenitore o il relativo nome per interrompere il contenitore. Dai un'occhiata agli esempi qui sotto $ docker stop 30986 $ docker stop elated_franklin avvia una finestra mobile Prima crea il contenitore e poi lo avvia. In sintesi, è una combinazione dei comandi di creazione e avvio della finestra mobile. Ha una sintassi simile alla creazione della finestra mobile. docker run [options] IMAGE [commands] [arguments] $ docker esegui ubuntu 30fa018c72682d78cf168626b5e6138bb3b3ae23015c5ec4bbcc2a088e67520 Nell'esempio sopra, crea un contenitore usando l'ultima immagine di Ubuntu, avvia il contenitore e lo interrompe immediatamente. Non possiamo avere la possibilità di interagire con esso. Per interagire con il contenitore, dobbiamo specificare le opzioni -it nel comando docker run, quindi possiamo interagire con il contenitore. $ docker run -it ubuntu root@e4e633428474:/# Digita exit nel terminale per uscire dal container. Docker rm Usiamo questo comando per eliminare un contenitore. docker rm [options] CONTAINER ID/NAME [CONTAINER ID/NAME...] $ docker rm 30fa elated_franklin Nell'esempio sopra, stiamo indicando alla finestra mobile di eliminare due contenitori in un unico comando. Specifichiamo l'ID per il primo e il nome per il secondo contenitore per l'eliminazione. Il contenitore deve essere in uno stato di arresto per eliminarlo. immagini della finestra mobile Il comando elenca tutte le immagini della finestra mobile presenti sull'host della finestra mobile. $ docker images REPOSITORY TAG IMAGE CREATED SIZEmysql latest 7bb2586065cd 38 hours ago 477MBhttpd latest 5eace252f2f2 38 hours ago 132MBubuntu 16.04 9361ce633ff1 2 weeks ago 118MBubuntu trusty 390582d83ead 2 weeks ago 188MBfedora latest d09302f77cfc 2 weeks ago 275MBubuntu latest 94e814e2efa8 2 weeks ago 88.9MB REPOSITORY: Descrive il nome univoco dell'immagine della finestra mobile. TAG: Ad ogni immagine è associato un tag univoco che rappresenta una versione dell'immagine. Un tag era rappresentato utilizzando una parola o un insieme di numeri o caratteri alfanumerici. IMMAGINE: È una stringa di caratteri alfanumerici associata a ciascuna immagine. CREATO: Fornisce il tempo trascorso da quando l'immagine è stata creata. DIMENSIONE: Fornisce la dimensione dell'immagine. Docker rmi Questo comando ci consente di rimuovere le immagini dall'host della finestra mobile. docker rmi [options] IMAGE NAME/ID [IMAGE NAME/ID...] docker rmi mysql Il comando rimuove l'immagine mysql dall'host della finestra mobile. Il comando seguente rimuove le immagini httpd e fedora dall'host Docker. docker rmi httpd fedora Il comando seguente rimuove l'immagine con ID 94e81 dall'host Docker. docker rmi 94e81 Il comando seguente rimuove l'immagine ubuntu con tag trusty. docker rmi ubuntu:trusty Questi sono alcuni dei comandi di base che incontri. Ci sono numerose altre istruzioni da esplorare. Conclusioni Sebbene la containerizzazione sia in circolazione da molto tempo, solo di recente ha ricevuto l'attenzione che merita. Google, Amazon Web Services (AWS), Intel, Tesla sono solo alcune delle principali aziende tecnologiche con i loro motori di container specializzati. Si affidano in modo significativo a loro per sviluppare, eseguire, amministrare e distribuire il loro software. Docker è un motore di containerizzazione estremamente potente e ha molto da offrire quando si tratta di creare, eseguire, gestire e distribuire le applicazioni in modo efficiente. Avevi visto Docker ad alto livello. C'è molto da studiare su Docker, tipo Comandi (comandi più potenti) Le immagini Docker sono un tipo di contenitore (crea le tue immagini personalizzate) Rete con Docker (configurazione della rete) Stack di Docker (servizi di raggruppamento richiesti da un'applicazione) Docker Compose è uno strumento che consente di creare un container (strumento per la gestione e l'esecuzione di più container) Sciame di Dockers (raggruppamento e gestione di una o più macchine su cui è in esecuzione Docker) L'utilizzo di docker È un'abilità a prova di futuro che solo ora sta guadagnando terreno. Investire tempo e denaro nello studio di Docker non è qualcosa di cui ti pentirai.
- Come elaborare le immagini con NumPy e Python
Una guida per principianti all'elaborazione delle immagini utilizzando NumPy. Poiché le immagini possono anche essere considerate come costituite da array, possiamo utilizzare NumPy per eseguire diverse attività di elaborazione delle immagini anche da zero. In questo articolo, impareremo le attività di elaborazione delle immagini che possono essere eseguite solo utilizzando NumPy. Per lo più troviamo gli usi di NumPy nei problemi in cui ci viene richiesto di eseguire operazioni matematiche e logiche su diverse dimensioni di array. Poiché le immagini possono anche essere considerate come costituite da array, possiamo utilizzare NumPy per eseguire diverse attività di elaborazione delle immagini anche da zero. In questo articolo, impareremo le attività di elaborazione delle immagini che possono essere eseguite solo utilizzando NumPy. Questo sarà utile per i principianti per comprendere l'elaborazione delle immagini dalle sue basi. Qui sotto troverai un sommario che ricapitola tutto ciò di cui parleremo in questo articolo Sommario di Come elaborare le immagini con NumPy e Python Caricamento dell'immagine Ritaglio dell'immagine Separazione dei colori Trasformazione Conversione in scala di grigi Segmentazione dell'immagine Questi 6 step solitamente sono i più comuni e quotidianamente usati da chi lavora in ambito computer vision. Come sempre oltre alla parte teorica ci teniamo che tu segua passo passo l'articolo, per questo cliccando su questo Link (poi clicca in basso a destra "crea nuovo blocco note") e copiando e incollando il codice passo passo potrai seguirci senza difficoltà. Che altro dire, iniziamo con l'importazione delle librerie e il caricamento di un'immagine casuale. Caricamento dell'immagine import numpy as np import urllib.request as url stream = url.urlopen("http://matplotlib.sourceforge.net/_static/logo2.png") import matplotlib.pylab as plt %matplotlib inline image = plt.imread(stream) print(image) Output: [[0. 0. 0. 0.] [0. 0. 0. 0.] [0. 0. 0. 0.] ... [0. 0. 0. 0.] [0. 0. 0. 0.] [0. 0. 0. 0.]] ... [[0. 0. 0. 0.] [0. 0. 0. 0.] [0. 0. 0. 0.] Qui possiamo vedere la forma grezza dell'immagine. Poiché matematicamente le immagini sono costituite da valori di pixel nell'output sopra, possiamo vedere che abbiamo alcuni numeri che definiscono i colori nell'immagine e l'immagine è fondamentalmente un array o un array NumPy. Possiamo anche mostrare l'immagine usando la libreria matplotlib . imgplot = plt.imshow(image) Output: Ritaglio dell'immagine Dopo aver caricato l'immagine siamo pronti per eseguire azioni sull'immagine. Come molto semplice, possiamo eseguire operazioni di ritaglio di base sulla nostra immagine. Per NumPy, l'operazione di ritaglio può essere eseguita tagliando l'array. crop_img = image[20:199,:200,:] imgplot = plt.imshow(crop_img) Output : Qui possiamo vedere che abbiamo ritagliato la nostra immagine. Ora possiamo passare alla nostra prossima fase di elaborazione delle immagini. Separazione dei colori Poiché sappiamo che ogni immagine è composta da valori di pixel e questi valori di pixel rappresentano tre numeri interi noti come valore RGB del suo colore . Per separare l'immagine in questi colori è necessario estrarre la fetta corretta dell'array di immagini. fig, axs = plt.subplots(nrows=1, ncols=3, figsize=(20,8)) for c, ax in zip(range(3), axs): rgb_img = np.zeros(image.shape, dtype="uint8") rgb_img[:,:,c] = image[:,:,c] ax.imshow(rgb_img) ax.set_axis_off() Qui nell'output, potremmo vedere che abbiamo separato l'RGB dell'immagine per questo abbiamo mappato i valori nell'intervallo da 0 a 1 e cast per digitare uint8. Passiamo alla fase successiva dell'elaborazione delle immagini. Trasformazioni In questo passaggio, eseguiremo la trasformazione del colore. A questo scopo, possiamo trattare il pixel dell'immagine come un punto nello spazio. Trattare in questo modo i pixel dell'immagine ci consente di eseguire una trasformazione nel punto di colore. La rotazione del punto di colore può essere un esempio dell'affermazione precedente. Qui stiamo applicando la funzione di notazione di Einstein di Numpy, che è un metodo per applicare una matrice di rotazione, in pixel, all'immagine. def do_normalise(image): return -np.log(1/((1 + image)/257) - 1) def undo_normalise(image): return (1 + 1/(np.exp(-image) + 1) * 257).astype("uint8") def rotation_matrix(theta): return np.c_[ [1,0,0], [0,np.cos(theta),-np.sin(theta)], [0,np.sin(theta),np.cos(theta)] ] img_norm = do_normalise(image) img_rot = np.einsum("ijk,lk->ijl", img_norm, rotation_matrix(np.pi)) img = undo_normalise(img_rot) imgplot = plt.imshow(img_norm) #copiando e incollando questa trasformazione su un altra immagine a caso potresti avere degli errori, ma non preoccuparti presto pubblicheremo guide complete anche sulla traformazione Qui nell'output, potrete vedere che il sigmoid applicato allo spazio colore ha funzionato e stiamo applicando continuamente la rotazione del colore dei pixel. Ora, nel passaggio successivo, vedremo come convertire un'immagine in un'immagine in scala di grigi. Conversione in scala di grigi Possiamo anche usare NumPy per trasformare l'immagine in un'immagine in scala di grigi. Prendendo la media ponderata del valore RGB dell'immagine possiamo eseguire questo. rgb_weights = [0.2989, 0.5870, 0.1140] grayscale_image = np.dot(image[...,:3], rgb_weights) imgplot = plt.imshow(grayscale_image) Output: Ecco l'immagine dell'output del nostro processo di conversione in scala di grigi. Passiamo alla fase successiva dell'elaborazione delle immagini. Segmentazione dell'immagine Questo è uno dei passaggi di elaborazione delle immagini più utilizzati in cui segmentiamo diverse regioni di immagini. Esistono vari modi per farlo, ad esempio in primo piano e in background. Ad esempio, in questo articolo vedremo come possiamo eseguire la segmentazione convertendo l'immagine in scala di grigi e trovando una soglia. I pixel nell'immagine che si trovano al di sopra della soglia si trovano in una regione e gli altri in un'altra regione. def simple_threshold(image, threshold=128): return ((image > threshold) * 255).astype("uint8") def rgb2gray(rgb): r, g, b = rgb[:,:,0], rgb[:,:,1], rgb[:,:,2] gray = 0.2989 * r + 0.5870 * g + 0.1140 * b return gray thresholds = [100,120,128,138,150] fig, axs = plt.subplots(nrows=1, ncols=len(thresholds), figsize=(20,5)); gray_im = rgb2gray(image) for t, ax in zip(thresholds, axs): ax.imshow(simple_threshold(gray_im, t), cmap='Greys'); ax.set_title("Threshold: {}".format(t), fontsize=20); ax.set_axis_off(); Nell'output che vi uscirà, potrete vedere che abbiamo segmentato l'immagine in due regioni usando diversi valori di soglia. Conclusione In questo articolo, abbiamo discusso le diverse attività di elaborazione delle immagini che abbiamo eseguito utilizzando la libreria NumPy. Inoltre, abbiamo utilizzato la libreria matplotlib per la visualizzazione delle immagini dopo l'elaborazione. Osservando i punti precedenti, possiamo dire che possiamo eseguire anche altri compiti semplicemente usando qualche altra logica.
- Prevedere il prezzo d'affitto di una casa con il Deep Learning e Python
L'affitto di una casa dipende da molti fattori. Con dati appropriati e tecniche di deep Learning, molte piattaforme immobiliari trovano le opzioni abitative in base al budget del cliente. Quindi, se vuoi imparare come utilizzare il deep Learning per prevedere il prezzo d'affitto di una casa, questo articolo è per te. In questo articolo, ti guiderò attraverso l'attività di previsione dell'affitto di case con l'apprendimento profondo utilizzando Python. Quali sono i fattori che incidono sul costo di una casa? Il costo di una casa può variare a seconda della posizione, delle dimensioni e del numero di stanze. Un altro fattore che può cambiare il costo di una casa è il tipo di materiale da costruzione. Ad esempio, le case in mattoni costeranno di più rispetto alle case in legno. Il costo di una casa può dipendere anche dal numero di camere da letto e bagni. Ad esempio, una casa con due camere da letto costerà più di una casa con una camera da letto. Il costo di una casa varierà anche a seconda del tipo di finestre e della quantità di isolamento. Ad esempio, una casa con molte finestre sarà più costosa di una con poche finestre. Il costo di una casa varierà anche a seconda della vista. Come si può utilizzare il deep learning per prevedere il costo futuro di una casa? Il deep learning è una branca dell'intelligenza artificiale che studia l'uso dei computer per imitare il comportamento umano intelligente. È utilizzato in molti settori, come il servizio clienti, l'e-commerce, l'istruzione e l'assistenza sanitaria. Un'applicazione comune dell'intelligenza artificiale è l'uso dell'apprendimento automatico per prevedere il costo futuro di una casa. L'idea è quella di creare un modello in grado di utilizzare i dati di mercato attuali per prevedere il costo futuro di una casa. Questo tipo di modello è chiamato modello di regressione. Il modello utilizzerà i dati attuali per prevedere il valore futuro di una casa. Ad esempio, il modello può utilizzare il numero medio di giorni in cui le case restano sul mercato prima di vendere per prevedere per quanto tempo le case rimarranno sul mercato prima di vendere. Prevedere l' affitto della casa con Python L'affitto di una proprietà abitativa dipende da molti fattori come: numero di camere da letto, ingresso e cucina dimensione della proprietà il pavimento della casa tipo di zona località della zona Città stato d'arredo della casa Per costruire un sistema di previsione dell'affitto di una casa, abbiamo bisogno di dati basati sui fattori che influenzano l'affitto di una proprietà abitativa. Ho trovato un set di dati di Kaggle che include tutte le funzionalità di cui abbiamo bisogno. È possibile scaricare il set di dati da qui . NON ABBIAMO TROVATO DATASET ITALIANI, ma se ne conoscete qualcuno postatelo nei commenti ! Previsione dell'affitto di una casa utilizzando Python Inizierò l'attività di previsione dell'affitto della casa importando le librerie Python necessarie e il set di dati : import pandas as pd import numpy as np import matplotlib.pyplot as plt import plotly.express as px import plotly.graph_objects as go data = pd.read_csv("House_Rent_Dataset.csv") print(data.head()) Output: Posted On BHK Rent Size Floor Area Type \ 0 2022-05-18 2 10000 1100 Ground out of 2 Super Area 1 2022-05-13 2 20000 800 1 out of 3 Super Area 2 2022-05-16 2 17000 1000 1 out of 3 Super Area 3 2022-07-04 2 10000 800 1 out of 2 Super Area 4 2022-05-09 2 7500 850 1 out of 2 Carpet Area Area Locality City Furnishing Status Tenant Preferred \ 0 Bandel Kolkata Unfurnished Bachelors/Family 1 Phool Bagan, Kankurgachi Kolkata Semi-Furnished Bachelors/Family 2 Salt Lake City Sector 2 Kolkata Semi-Furnished Bachelors/Family 3 Dumdum Park Kolkata Unfurnished Bachelors/Family 4 South Dum Dum Kolkata Unfurnished Bachelors Bathroom Point of Contact 0 2 Contact Owner 1 1 Contact Owner 2 1 Contact Owner 3 1 Contact Owner 4 1 Contact Owner Prima di andare avanti, controlliamo se i dati contengono valori null o meno: print(data.isnull().sum()) Output: Posted On 0 BHK 0 Rent 0 Size 0 Floor 0 Area Type 0 Area Locality 0 City 0 Furnishing Status 0 Tenant Preferred 0 Bathroom 0 Point of Contact 0 dtype: int64 Diamo un'occhiata alle statistiche descrittive dei dati: print(data.describe()) BHK Rent Size Bathroom count 4746.000000 4.746000e+03 4746.000000 4746.000000 mean 2.083860 3.499345e+04 967.490729 1.965866 std 0.832256 7.810641e+04 634.202328 0.884532 min 1.000000 1.200000e+03 10.000000 1.000000 25% 2.000000 1.000000e+04 550.000000 1.000000 50% 2.000000 1.600000e+04 850.000000 2.000000 75% 3.000000 3.300000e+04 1200.000000 2.000000 max 6.000000 3.500000e+06 8000.000000 10.000000 Ora diamo un'occhiata all'affitto medio, mediano, più alto e più basso delle case: print(f"Mean Rent: {data.Rent.mean()}") print(f"Median Rent: {data.Rent.median()}") print(f"Highest Rent: {data.Rent.max()}") print(f"Lowest Rent: {data.Rent.min()}") Output: Mean Rent: 34993.45132743363 Median Rent: 16000.0 Highest Rent: 3500000 Lowest Rent: 1200 Analisi grafica Modello di previsione dell'affitto della casa Ora diamo un'occhiata all'affitto delle case nelle diverse città in base al numero di camere da letto, corridoi e cucine: figure = px.bar(data, x=data["City"], y = data["Rent"], color = data["BHK"], title="Rent in Different Cities According to BHK") figure.show() Ora diamo un'occhiata agli affitti delle case nelle diverse città a seconda della tipologia di zona: figure = px.bar(data, x=data["City"], y = data["Rent"], color = data["Area Type"], title="Rent in Different Cities According to Area Type") figure.show() Diamo un'occhiata all'affitto delle case nelle diverse città in base allo stato di arredo della casa: figure = px.bar(data, x=data["City"], y = data["Rent"], color = data["Furnishing Status"], title="Rent in Different Cities According to Furnishing Status") figure.show() Ora diamo un'occhiata all'affitto delle case nelle diverse città in base alle dimensioni della casa: figure = px.bar(data, x=data["City"], y = data["Rent"], color = data["Size"], title="Rent in Different Cities According to Size") figure.show() Diamo un'occhiata al numero di case disponibili in affitto in diverse città in base al set di dati: cities = data["City"].value_counts() label = cities.index counts = cities.values colors = ['gold','lightgreen'] fig = go.Figure(data=[go.Pie(labels=label, values=counts, hole=0.5)]) fig.update_layout(title_text='Number of Houses Available for Rent') fig.update_traces(hoverinfo='label+percent', textinfo='value', textfont_size=30, marker=dict(colors=colors, line=dict(color='black', width=3))) fig.show() Ora diamo un'occhiata al numero di case disponibili per i diversi tipi di inquilini: # Preferenza dell'inquilino tenant = data["Tenant Preferred"].value_counts() label = tenant.index counts = tenant.values colors = ['gold','lightgreen'] fig = go.Figure(data=[go.Pie(labels=label, values=counts, hole=0.5)]) fig.update_layout(title_text='Preference of Tenant in India') fig.update_traces(hoverinfo='label+percent', textinfo='value', textfont_size=30, marker=dict(colors=colors, line=dict(color='black', width=3))) fig.show() Modello di previsione dell'affitto della casa Ora convertirò tutte le caratteristiche categoriali in caratteristiche numeriche di cui abbiamo bisogno per addestrare un modello di previsione dell'affitto di una casa: data["Area Type"] = data["Area Type"].map({"Super Area": 1, "Carpet Area": 2, "Built Area": 3}) data["City"] = data["City"].map({"Mumbai": 4000, "Chennai": 6000, "Bangalore": 5600, "Hyderabad": 5000, "Delhi": 1100, "Kolkata": 7000}) data["Furnishing Status"] = data["Furnishing Status"].map({"Unfurnished": 0, "Semi-Furnished": 1, "Furnished": 2}) data["Tenant Preferred"] = data["Tenant Preferred"].map({"Bachelors/Family": 2, "Bachelors": 1, "Family": 3}) print(data.head()) Output: Posted On BHK Rent Size Floor Area Type \ 0 2022-05-18 2 10000 1100 Ground out of 2 1 1 2022-05-13 2 20000 800 1 out of 3 1 2 2022-05-16 2 17000 1000 1 out of 3 1 3 2022-07-04 2 10000 800 1 out of 2 1 4 2022-05-09 2 7500 850 1 out of 2 2 Area Locality City Furnishing Status Tenant Preferred \ 0 Bandel 7000 0 2 1 Phool Bagan, Kankurgachi 7000 1 2 2 Salt Lake City Sector 2 7000 1 2 3 Dumdum Park 7000 0 2 4 South Dum Dum 7000 0 1 Bathroom Point of Contact 0 2 Contact Owner 1 1 Contact Owner 2 1 Contact Owner 3 1 Contact Owner 4 1 Contact Owner Ora dividerò i dati in set di allenamento e test: from sklearn.model_selection import train_test_split x = np.array(data[["BHK", "Size", "Area Type", "City", "Furnishing Status", "Tenant Preferred", "Bathroom"]]) y = np.array(data[["Rent"]]) xtrain, xtest, ytrain, ytest = train_test_split(x, y, test_size=0.10, random_state=42) Ora formiamo un modello di previsione dell'affitto di una casa utilizzando un modello di rete neurale LSTM : from keras.models import Sequential from keras.layers import Dense, LSTM model = Sequential() model.add(LSTM(128, return_sequences=True, input_shape= (xtrain.shape[1], 1))) model.add(LSTM(64, return_sequences=False)) model.add(Dense(25)) model.add(Dense(1)) model.summary() Model: "sequential" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= lstm (LSTM) (None, 7, 128) 66560 lstm_1 (LSTM) (None, 64) 49408 dense (Dense) (None, 25) 1625 dense_1 (Dense) (None, 1) 26 ================================================================= Total params: 117,619 Trainable params: 117,619 Non-trainable params: 0 _________________________________________________________________ Alleniamo il modello model.compile(optimizer='adam', loss='mean_squared_error') model.fit(xtrain, ytrain, batch_size=1, epochs=21) Output: Epoch 1/21 4271/4271 [==============================] - 35s 7ms/step - loss: 7038080512.0000 Epoch 2/21 4271/4271 [==============================] - 31s 7ms/step - loss: 6481502720.0000 Epoch 3/21 4271/4271 [==============================] - 31s 7ms/step - loss: 6180754944.0000 Epoch 4/21 4271/4271 [==============================] - 31s 7ms/step - loss: 5968361472.0000 Epoch 5/21 4271/4271 [==============================] - 30s 7ms/step - loss: 5770649088.0000 Epoch 6/21 4271/4271 [==============================] - 29s 7ms/step - loss: 5618835968.0000 Epoch 7/21 4271/4271 [==============================] - 30s 7ms/step - loss: 5440893952.0000 Epoch 8/21 4271/4271 [==============================] - 29s 7ms/step - loss: 5341533696.0000 Epoch 9/21 4271/4271 [==============================] - 30s 7ms/step - loss: 5182846976.0000 Epoch 10/21 4271/4271 [==============================] - 31s 7ms/step - loss: 5106288128.0000 Epoch 11/21 4271/4271 [==============================] - 30s 7ms/step - loss: 5076118528.0000 Epoch 12/21 4271/4271 [==============================] - 30s 7ms/step - loss: 5001080320.0000 Epoch 13/21 4271/4271 [==============================] - 31s 7ms/step - loss: 4941253120.0000 Epoch 14/21 4271/4271 [==============================] - 33s 8ms/step - loss: 4904356864.0000 Epoch 15/21 4271/4271 [==============================] - 29s 7ms/step - loss: 4854262784.0000 Epoch 16/21 4271/4271 [==============================] - 30s 7ms/step - loss: 4855796736.0000 Epoch 17/21 4271/4271 [==============================] - 36s 8ms/step - loss: 4764052480.0000 Epoch 18/21 4271/4271 [==============================] - 30s 7ms/step - loss: 4709226496.0000 Epoch 19/21 4271/4271 [==============================] - 31s 7ms/step - loss: 4702300160.0000 Epoch 20/21 4271/4271 [==============================] - 31s 7ms/step - loss: 4670900736.0000 Epoch 21/21 4271/4271 [==============================] - 31s 7ms/step - loss: 4755582976.0000 Facciamo previsioni dell'affitto di una casa conil Deep Learning usando Python Ora ecco come prevedere l'affitto di un immobile utilizzando il modello addestrato: print("Enter House Details to Predict Rent") a = int(input("Number of BHK: ")) b = int(input("Size of the House: ")) c = int(input("Area Type (Super Area = 1, Carpet Area = 2, Built Area = 3): ")) d = int(input("Pin Code of the City: ")) e = int(input("Furnishing Status of the House (Unfurnished = 0, Semi-Furnished = 1, Furnished = 2): ")) f = int(input("Tenant Type (Bachelors = 1, Bachelors/Family = 2, Only Family = 3): ")) g = int(input("Number of bathrooms: ")) features = np.array([[a, b, c, d, e, f, g]]) print("Predicted House Price = ", model.predict(features)) Output: Enter House Details to Predict Rent Number of BHK: 3 Size of the House: 1100 Area Type (Super Area = 1, Carpet Area = 2, Built Area = 3): 2 Pin Code of the City: 1100 Furnishing Status of the House (Unfurnished = 0, Semi-Furnished = 1, Furnished = 2): 1 Tenant Type (Bachelors = 1, Bachelors/Family = 2, Only Family = 3): 3 Number of bathrooms: 2 Predicted House Price = [[34922.3]] Conclusione sulla previsione dell'affitto di una casa con Deep Learning usando Python Ecco come utilizzare il Deep Learning per prevedere l'affitto di una proprietà abitativa. Con dati appropriati e tecniche di Deep Learning, molte piattaforme immobiliari trovano le opzioni abitative in base al budget del cliente. Spero ti sia piaciuto questo articolo sulla previsione dell'affitto di una casa con deep Learning usando Python. Sentiti libero di porre domande preziose nella sezione commenti qui sotto.
- I migliori generatori di arte con Intelligenza Artificiale IA gratis
strumento può essere utilizzato per creare illustrazioni, progettare prodotti e generare nuove idee per il business
- Intelligenza Artificiale e il Futuro del Lavoro
L'intelligenza artificiale ha il potere di cambiare il modo in cui viviamo, quali lavori saranno disponibili e come affrontiamo la vita. È difficile credere che molti dei compiti di base che svolgevano i nostri genitori siano già stati sostituiti dall'intelligenza artificiale. L'intelligenza artificiale (AI) sostituirà presto la forza lavoro umana e cambierà il mondo per sempre. La vera domanda è : Che tipo di lavoro rimarranno? Cosa accadrà alla società? La vita come la conosciamo cesserà di esistere? Introduzione all'Intelligenza Artificiale e il Futuro del Lavoro L'introduzione dell'intelligenza artificiale sul posto di lavoro è diventata una delle principali preoccupazioni per molte persone. La verità è che l'intelligenza artificiale non sostituirà tutti i lavori. È un processo che verrà attuato gradualmente in quanto non rappresenta un rischio per il lavoro di tutti. La chiave per il futuro del lavoro è la formazione dei dipendenti sul campo. Se vengono forniti sbocchi ai lavoratori per migliorare le proprie competenze, la paura di perdere il lavoro non emergerà. Quali sono i rischi di perdere il lavoro a causa dell'IA e quali sono le soluzioni? Questo articolo esplorerà il futuro del lavoro e i rischi di perdita di posti di lavoro legati all'IA, nonché come prepararsi per il futuro. Indice Intelligenza Artificiale e il Futuro del Lavoro Intelligenza artificiale e futuro del lavoro Quali sono i rischi di perdere il lavoro a causa dell' I.A.? Quali sono le soluzioni? Formazione per il futuro su I.A. e il Futuro del Lavoro Conclusione Intelligenza Artificiale e il Futuro del Lavoro Intelligenza artificiale e futuro del lavoro Secondo un rapporto della Banca Mondiale, le persone in India hanno il rischio più alto di essere sostituite dall'IA: il 30%. Il rischio è più alto nei paesi con bassi livelli di istruzione, secondo un rapporto della Banca Mondiale. Tuttavia, questi paesi hanno la possibilità di utilizzare l'IA in modo vantaggioso. L'uso dell'IA nell'istruzione ne è un esempio. L'IA può essere utilizzata per insegnare ai bambini le abilità della vita reale. Viene anche utilizzato per aiutare le persone con disabilità. Il rapporto della Banca Mondiale ha anche rilevato che gli Stati Uniti hanno il rischio più basso che l'IA sostituisca i lavoratori, con l'8%. Questo perché gli Stati Uniti hanno una forza lavoro altamente istruita. Il rapporto ha anche rilevato che il rischio che l'IA sostituisca i lavoratori è più alto nell'Asia meridionale, al 21%. Questo perché questi paesi hanno una forza lavoro non qualificata. Quali sono i rischi di perdere il lavoro a causa dell'IA? La paura di perdere il lavoro a causa dell'Intelligenza Artificiale è reale. È una realtà che ha avvolto le vite di molte persone a causa del crescente progresso dell'IA. Ci sono molti fattori che entrano in gioco quando si considera il rischio di perdere il lavoro a causa dell'IA. Il fattore principale è il progresso dell'IA. Questo progresso è una realtà e sta accadendo proprio ora. Sta succedendo così velocemente che è difficile tenere il passo. Ci sono molte cose che possono essere fatte per aiutare a mitigare il rischio di perdere il lavoro a causa dell'IA. Una cosa che è importante fare è iniziare ad allenarsi e studiare l'Intelligenza Artificiale. Ciò contribuirà a prevenire qualsiasi perdita di lavoro e contribuirà anche a mantenere aggiornate le tue abilità e la tua conoscenza sull'IA. Quali sono le soluzioni per Intelligenza Artificiale e il Futuro del Lavoro ? L'intelligenza artificiale è un argomento complesso che probabilmente sarà un argomento di cui si parlerà negli anni a venire. L'intelligenza artificiale può essere utilizzata per molte cose, ma per ora viene utilizzata principalmente per lo sviluppo di algoritmi più efficienti o per l'automazione di determinati compiti. Questo può essere un rischio per le persone che cercano lavoro. Quali sono le soluzioni per questo? Una soluzione è assicurarsi di disporre di un piano di riserva e di apprendere sempre nuove competenze. Un'altra soluzione è assicurarsi di essere sempre alla ricerca di nuove opportunità. Puoi anche cercare un lavoro che non sarà sostituito dall'IA. Questo potrebbe non essere un compito facile, ma è possibile. L'automazione ha creato nuovi tipi di lavoro per molto tempo e l'IA non è diversa. L'IA è in grado di portare a termine con successo molti compiti che tradizionalmente sono stati svolti dagli esseri umani. Ciò potrebbe comportare la perdita di posti di lavoro per alcune persone. Tuttavia, la soluzione è creare nuovi tipi di lavoro per queste persone. Tipi di lavoro potrebbero essere la creazione di nuovi tipi di intelligenza artificiale o la manutenzione e il collaudo delle attuali. Formazione del futuro L'intelligenza artificiale è stata un argomento controverso per molti anni ed è spesso vista come la prossima grande minaccia per l'umanità. L'intelligenza artificiale viene utilizzata in molti campi diversi, come quello medico, quello automobilistico e quello finanziario. Viene anche utilizzato nel campo della cura personale e della gestione domestica. Ci sono molte persone che temono l'intelligenza artificiale perché credono che porterà alla perdita del lavoro. Tuttavia, la verità è che l'intelligenza artificiale creerà effettivamente più opportunità di lavoro per le persone. Il rischio di perdita del posto di lavoro è in realtà il risultato del fatto che la forza lavoro non viene formata per il futuro. La forza lavoro oggi non viene formata per essere in grado di lavorare in futuro. In futuro, l'intelligenza artificiale consentirà alle persone di lavorare da qualsiasi luogo, il che renderà più facile trovare lavoro. Conclusione Intelligenza artificiale e futuro del lavoro Ci auguriamo che il nostro post sul blog ti sia piaciuto sul futuro del lavoro e su come l'Intelligenza Artificiale svolgerà un ruolo in questo ambito. Pensiamo che sia importante avere un dialogo più aperto sul futuro del lavoro in modo da poter essere più preparati per ciò che verrà. L'IA è già nelle nostre vite in tanti modi e continuerà ad espandersi nei prossimi anni.
- Come creare un API per un modello di machine learning in 5 minuti
Perchè creare un API per un modello di machine learning ? In qualità di consulente di data science, voglio avere un impatto con i miei modelli di machine learning. Per avere un impatto intendo di riuscire a farli arrivare a più persone o aziende possibile. Comunque, è più facile a dirsi che a farsi. Quando si avvia un nuovo progetto, si inizia a giocare con i dati in un notebook Jupyter. Una volta che hai una piena comprensione di quali dati hai, di che fare e ti sei allineato con il cliente su quali passi intraprendere, uno dei risultati può essere la creazione di un modello predittivo. Dopo aver sentito il torni al tuo notebook Jupyter per allenare il miglior modello possibile. Il modello e i risultati vengono presentati e tutti sono contenti. Il cliente desidera eseguire il modello nella propria infrastruttura per verificare se può davvero creare l'impatto previsto. Ma come possiamo farlo rapidamente, dato che con un'infrastruttura complicata potresti non avere familiarità? Anche se ne avessi familiarità sei sicuro di saper creare un infrastruttura per centinaia di dipendenti con poche competenze informatiche ? Per questo scopo è necessario uno strumento che possa adattarsi alla loro complicata infrastruttura, preferibilmente con il linguaggio che preferiscono. Prorpio per questo motivo la soluzione migliore per distribuire i modelli di Machine learning è quello di creare un'API REST che consente di inviare dati e ricevere una previsione come risposta. Così facendo si potrà utilizzare qualsiasi linguaggio per fare all'api una richiesta di GET. Qui è dove useremo Flask . Flask è un micro framework web scritto in Python. Cosa sono le API? In parole semplici, un'API è un contratto (ipotetico) tra 2 software che dice : "se il software utente fornisce un input in formato predefinito, il successivo estenderà le sue funzionalità e fornirà il risultato al software utente". In sostanza, le API sono molto simili alle applicazioni web, ma invece di darti una pagina HTML ben disegnata, le API tendono a restituire i dati in un formato di scambio dati standard come JSON, XML, ecc. Una volta che uno sviluppatore ha l'output desiderato, possono modellarlo come vogliono. Esistono anche molte API ML popolari, ad esempio, l'API ML di IBM Watson che è in grado di eseguire quanto segue: Traduzione automatica - Aiuta a tradurre il testo in diverse coppie di lingue. Risonanza del messaggio – Per scoprire la popolarità di una frase o parola con un pubblico predeterminato. Domande e risposte: questo servizio fornisce risposte dirette alle domande che vengono attivate da fonti di documenti primarie. Modellazione utente: per fare previsioni sulle caratteristiche sociali di qualcuno da un determinato testo. Anche l' API di Google Vision è un eccellente esempio che fornisce servizi dedicati per le attività di Computer Vision. Fai clic qui per avere un'idea di cosa è possibile fare utilizzando l'API di Google Vision. Fondamentalmente ciò che accade è la maggior parte dei fornitori di cloud e le aziende più piccole focalizzate sull'apprendimento automatico forniscono API pronte per l'uso. Soddisfano le esigenze di sviluppatori/aziende che non hanno esperienza in ML, che desiderano implementare ML nei loro processi o suite di prodotti. Esempi popolari di API di machine learning adatte in modo esplicito allo sviluppo web sono DialogFlow , Cognitive Toolkit di Microsoft , TensorFlow.js , ecc. Ora che hai una buona idea di cosa sono le API, vediamo come puoi racchiudere un modello di apprendimento automatico (sviluppato in Python) in un'API in Python. Passaggi per creare un API su modello di machine learning in 5 minuti Allena e salva il tuo modello Crea l'API con Flask Interrogalo all'infinito Creare un API su modello di machine learning - Allena e salva il tuo modello A scopo dimostrativo, addestrerò un semplice modello DecisionTreeClassifier su un set di dati di esempio che può essere caricato dal pacchetto scikit-learn . Lo scopo di questo articolo non è quello di ottimizzare o scoprire nuovi modelli di machine learning. Dobbiamo soltanto allenare e salvare un modello per poi interrogarlo. Naturalmente nel caso in cui tu hai già dei modelli allenati puoi tranquillamente saltare questo passaggio. Copia e incolla il seguente codice in un file .py import numpy as np import pandas as pd from sklearn import tree from sklearn.datasets import load_wine from sklearn.metrics import accuracy_score #carichiamo i dati wine=load_wine() data = pd.DataFrame(data= np.c_[wine['data'], wine['target']],columns= wine['feature_names'] + ['target']) #separiamo dati train e test X_train = data[:-20] X_test = data[-20:] y_train = X_train.target y_test = X_test.target X_train = X_train.drop('target',1) X_test = X_test.drop('target',1) #definisco e alleno il modello clf = tree.DecisionTreeClassifier() clf = clf.fit(X_train, y_train) #accuratezza print("accuracy_score: %.2f"% accuracy_score(y_test, y_pred)) #accuracy_score: 0.89 #salviamo il modello in un file import pickle pickle.dump(clf, open('models/final_prediction.pickle', 'wb')) Una volta che il cliente è soddisfatto del modello che hai creato, puoi salvarlo come file pickle . È quindi possibile usare questo file pickle in un secondo momento e chiamare la funzione predict per ottenere una previsione per i nuovi dati di input. Questo è esattamente ciò che faremo in Flask. Creare un API su modello di machine learning - Crea l'API con Flask Ora, potresti pensare che cos'è un servizio web? Il servizio Web è solo una forma di API che presuppone che un'API sia ospitata su un server e possa essere utilizzata. API Web, Servizio Web: questi termini sono generalmente usati in modo intercambiabile. Venendo a Flask, è un framework di sviluppo di servizi Web in Python. Non è l'unico in Python, ce ne sono anche altri come Django, Falcon, Hug, ecc. Se hai scaricato la distribuzione Anaconda, hai già installato Flask. Altrimenti, dovrai installarlo da solo con: pip install flask Flask è molto minimale. Flask è il preferito dagli sviluppatori Python per molte ragioni. Il framework Flask viene fornito con un server Web leggero integrato che richiede una configurazione minima e può essere controllato dal tuo codice Python. Questo è uno dei motivi per cui è così popolare. Il codice seguente dimostra la minimalità di Flask in un modo carino. Il codice viene utilizzato per creare una semplice Web-API che alla ricezione di un determinato URL produce un output specifico. from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "Benvenuto sull API di Machine Learning!" if __name__ == '__main__': app.run(debug=True) Una volta eseguito, è possibile navigare all'indirizzo web (inserire l'indirizzo su un browser web), che viene visualizzato sul terminale, e osservare il risultato. Alcuni note sul Creare un API su modello di machine learning: I notebook Jupyter sono ottimi per tutto ciò che riguarda i markdown, R e Python. Ma quando si tratta di costruire un server web, potrebbe mostrare un comportamento incoerente. Quindi, è una buona idea scrivere i codici Flask in un editor di testo come Sublime ed eseguire il codice dal terminale/prompt dei comandi . Assicurati di non nominare il file come flask.py . Flask funziona sulla porta numero 5000 per impostazione predefinita. A volte, il server Flask viene avviato correttamente su questo numero di porta, ma quando si preme l'URL (che i server restituiscono sul terminale) in un browser Web o in qualsiasi client API come Postman. Secondo Flask, il suo server è stato avviato correttamente sulla porta 5000, ma quando l'URL è stato attivato nel browser, non ha restituito nulla. Quindi, questo può essere un possibile caso di conflitto di numero di porta. In questo caso, modificare la porta predefinita 5000 con il numero di porta desiderato sarebbe una buona scelta. Puoi farlo semplicemente facendo quanto segue: app.run(debug=True,port=12345) Ora basta chiacchere e scriviamo il codice del nostr Server Api from flask import Flask, request, redirect, url_for, flash, jsonify import numpy as np import pickle as p import json app = Flask(__name__) @app.route('/api/', methods=['POST']) def makecalc(): data = request.get_json() prediction = np.array2string(model.predict(data)) return jsonify(prediction) if __name__ == '__main__': modelfile = 'models/final_prediction.pickle' model = p.load(open(modelfile, 'rb')) app.run(debug=True, host='0.0.0.0') NON SALVARE QUESTO FILE con il nome flask.py Creare un API su modello di machine learning - Richiedi previsioni Le previsioni vengono effettuate passando una richiesta POST JSON al server Web Flask creato che si trova sulla porta 5000 per impostazione predefinita. In app.py questa richiesta viene ricevuta e una previsione si basa sulla funzione di previsione già caricata del nostro modello. Restituisce la previsione in formato JSON. import requests import json url = 'http://0.0.0.0:5000/api/' data = [[14.34, 1.68, 2.7, 25.0, 98.0, 2.8, 1.31, 0.53, 2.7, 13.0, 0.57, 1.96, 660.0]] j_data = json.dumps(data) headers = {'content-type': 'application/json', 'Accept-Charset': 'UTF-8'} r = requests.post(url, data=j_data, headers=headers) print(r, r.text) Ora, tutto ciò che devi fare è chiamare il server web con la sintassi corretta dei punti dati. Corrisponde al formato del set di dati originale per ottenere questa risposta JSON delle tue previsioni. Per esempio: python request.py -> “[1.]" Per i dati che abbiamo inviato abbiamo ottenuto una previsione di classe 1 come output del nostro modello. In realtà tutto ciò che stai facendo è inviare i dati in un array a un endpoint, che viene trasformato in formato JSON. L'endpoint legge il post JSON e lo trasforma nell'array originale. Con questi semplici passaggi puoi facilmente consentire ad altre persone di utilizzare il tuo modello di apprendimento automatico e avere rapidamente un grande impatto. Conclusioni su Come creare un API per un modello di machine learning in 5 minuti In questo articolo, non ho tenuto conto di eventuali errori nei dati o altre eccezioni. Questo articolo mostra come distibuire semplicemente dei modelli, ma necessita di molti miglioramenti prima che sia pronto per essere messo in produzione. Questa soluzione può essere resa scalabile durante la creazione di un file Docker con l'API e l'hosting su Kubernetes in modo da poter bilanciare il carico su diverse macchine. Ma questi sono tutti passi da compiere quando si passa da un proof of concept a un ambiente di produzione. Comunque dopo questo artcolo hai tutte le informazioni per creare un api sul tuo modello di machine learning. Se sei un bravo sviluppatore ci metterai poco a farti pagare per ogni chiamata all'API
- TensorFlow la libreria Python per il Deep Learning
TensorFlow è una libreria Python per il calcolo numerico veloce creata e rilasciata da Google. In questo post scoprirai la libreria TensorFlow per Deep Learning. È una libreria di base che può essere utilizzata per creare modelli di Deep Learning direttamente o utilizzando librerie wrapper che semplificano il processo basato su TensorFlow . Cos'è TensorFlow? Creata dal team di Google Brain e inizialmente rilasciata al pubblico nel 2015, TensorFlow è una libreria open source per il calcolo numerico e l'apprendimento automatico su larga scala. TensorFlow raggruppa una serie di modelli e algoritmi di machine learning e deep learning ( alias reti neurali ) e li rende utili tramite metafore programmatiche comuni. Utilizza Python o JavaScript per fornire una comoda API front-end per la creazione di applicazioni, mentre esegue tali applicazioni in C++ ad alte prestazioni. TensorFlow, che compete con framework come PyTorch e Apache MXNet, può addestrare ed eseguire reti neurali profonde per la classificazione delle cifre scritte a mano, il riconoscimento di immagini, l'incorporamento di parole, le reti neurali ricorrenti, i modelli da sequenza a sequenza per la traduzione automatica, l'elaborazione del linguaggio naturale e Simulazioni basate su PDE (equazione differenziale parziale). Soprattutto, TensorFlow supporta la previsione della produzione su larga scala, con gli stessi modelli utilizzati per la formazione. TensorFlow ha anche un'ampia libreria di modelli pre-addestrati che possono essere utilizzati nei propri progetti. Puoi anche utilizzare il codice di TensorFlow Model Garden come esempi di best practice per addestrare i tuoi modelli. Come funziona TensorFlow ? TensorFlow consente agli sviluppatori di creare grafici del flusso di dati , strutture che descrivono come i dati si spostano attraverso un grafico o una serie di nodi di elaborazione. Ogni nodo nel grafico rappresenta un'operazione matematica e ogni connessione o spigolo tra i nodi è una matrice di dati multidimensionale, o tensore . Le applicazioni TensorFlow possono essere eseguite sulla maggior parte di qualsiasi device : una macchina locale, un cluster nel cloud, dispositivi iOS e Android, CPU o GPU. Se utilizzi il cloud di Google, puoi eseguire TensorFlow sul silicio TensorFlow Processing Unit (TPU) personalizzato di Google per un'ulteriore accelerazione. I modelli risultanti creati da TensorFlow, tuttavia, possono essere implementati sulla maggior parte dei dispositivi in cui verranno utilizzati per fornire previsioni. TensorFlow 2.0, rilasciato nell'ottobre 2019, ha rinnovato il framework in molti modi in base al feedback degli utenti, per renderlo più semplice da utilizzare (ad esempio, utilizzando l' API Keras relativamente semplice per l'addestramento del modello) e più performante. La formazione distribuita è più facile da eseguire grazie a una nuova API e il supporto per TensorFlow Lite consente di distribuire modelli su una maggiore varietà di piattaforme. Tuttavia, il codice scritto per le versioni precedenti di TensorFlow deve essere riscritto, a volte solo leggermente, a volte in modo significativo, per sfruttare al massimo le nuove funzionalità di TensorFlow 2.0. Utilizzare TensorFlow con Python TensorFlow fornisce tutto questo al programmatore tramite il linguaggio Python. Python è facile da imparare e lavorare e fornisce modi convenienti per esprimere come le astrazioni di alto livello possono essere accoppiate insieme. TensorFlow è supportato su Python versioni da 3.7 a 3.10 e, sebbene possa funzionare su versioni precedenti di Python, non è garantito che lo faccia. I nodi e i tensori in TensorFlow sono oggetti Python e le applicazioni TensorFlow sono esse stesse applicazioni Python. Le effettive operazioni matematiche, tuttavia, non vengono eseguite in Python. Le librerie di trasformazioni disponibili tramite TensorFlow sono scritte come binari C++ ad alte prestazioni. Python dirige semplicemente il traffico tra i pezzi e fornisce astrazioni di programmazione di alto livello per collegarli insieme. Il lavoro di alto livello in TensorFlow, la creazione di nodi e livelli e il loro collegamento tra loro, utilizza la libreria Keras . L'API Keras è apparentemente semplice; un modello base con tre livelli può essere definito in meno di 10 righe di codice e il codice di addestramento per lo stesso richiede solo poche righe di codice in più. Ma se vuoi "sollevare il cofano" e fare un lavoro più fine, come scrivere il tuo ciclo di allenamento , puoi farlo. Utilizzare TensorFlow con JavaScript Python è il linguaggio più popolare per lavorare con TensorFlow e l'apprendimento automatico in generale. Ma JavaScript è ora anche un linguaggio di prima classe per TensorFlow e uno degli enormi vantaggi di JavaScript è che funziona ovunque ci sia un browser web. TensorFlow.js, come viene chiamata la libreria JavaScript TensorFlow, utilizza l'API WebGL per accelerare i calcoli tramite qualsiasi GPU disponibile nel sistema. È anche possibile utilizzare un back-end WebAssembly per l'esecuzione ed è più veloce del normale back-end JavaScript se si esegue solo su una CPU, anche se è meglio utilizzare GPU quando possibile. I modelli predefiniti ti consentono di iniziare a lavorare con progetti semplici per darti un'idea di come funzionano le cose. Cos'è TensorFlow Lite ? I modelli TensorFlow addestrati possono anche essere implementati su dispositivi mobili o edge computing, come sistemi iOS o Android. Il set di strumenti TensorFlow Lite ottimizza i modelli TensorFlow per funzionare bene su tali dispositivi, consentendo di fare compromessi tra dimensioni e precisione del modello. Un modello più piccolo (vale a dire, 12 MB contro 25 MB, o anche 100+ MB) è meno accurato, ma la perdita di precisione è generalmente piccola e più che compensata dalla velocità e dall'efficienza energetica del modello. Perché usare TensorFlow ? Il più grande vantaggio offerto da TensorFlow per lo sviluppo del deep learning è l'astrazione . Invece di occuparsi dei dettagli essenziali dell'implementazione di algoritmi o di trovare modi corretti per collegare l'output di una funzione all'input di un'altra, lo sviluppatore può concentrarsi sulla logica generale dell'applicazione. TensorFlow si prende cura dei dettagli dietro le quinte. TensorFlow offre ulteriori comodità per gli sviluppatori che hanno bisogno di eseguire il debug e ottenere un'introspezione nelle app TensorFlow. Ogni operazione sul grafico può essere valutata e modificata separatamente e in modo trasparente, invece di costruire l'intero grafico come un singolo oggetto opaco e valutarlo tutto in una volta. Questa cosiddetta "modalità di esecuzione desiderosa", fornita come opzione nelle versioni precedenti di TensorFlow, è ora standard. La suite di visualizzazione TensorBoard ti consente di ispezionare e profilare il modo in cui i grafici vengono eseguiti tramite un dashboard interattivo basato sul Web. Un servizio, Tensorboard.dev (ospitato da Google), ti consente di ospitare e condividere esperimenti di machine learning scritti in TensorFlow. È gratuito con spazio di archiviazione per un massimo di 100 milioni di scalari, 1 GB di dati tensore e 1 GB di dati di oggetti binari. (Si noti che tutti i dati ospitati in Tensorboard.dev sono pubblici, quindi non utilizzarli per progetti sensibili.) TensorFlow ottiene anche molti vantaggi dal sostegno di un gruppo commerciale di prima qualità su Google. Google ha alimentato il rapido ritmo di sviluppo alla base del progetto e ha creato molte offerte significative che semplificano l'implementazione e l'utilizzo di TensorFlow. Il suddetto silicio TPU per prestazioni accelerate nel cloud di Google è solo un esempio. Come installare TensorFlow L'installazione di TensorFlow è semplice se si dispone già di un ambiente Python SciPy. TensorFlow funziona con Python 3.3+. È possibile seguire le istruzioni per il download e l'installazione sul sito Web di TensorFlow. L'installazione è probabilmente la più semplice tramite PyPI e le istruzioni specifiche del comando pip da utilizzare per la tua piattaforma Linux o Mac OS X si trovano nella pagina Web di download e configurazione. Nel caso più semplice, devi solo inserire quanto segue nella tua riga di comando: pip install tensorflow Un'eccezione sarebbe sul nuovo Mac con una CPU Apple Silicon. Il nome del pacchetto per questa specifica architettura è tensorflow-macos invece: pip install tensorflow-macos Ci sono anche virtualenv e immagini docker che puoi usare se preferisci. Per utilizzare la GPU, è necessario che sia installato anche Cuda Toolkit. Esempi in TensorFlow Il calcolo è descritto in termini di flusso di dati e operazioni nella struttura di un grafo orientato. Nodi (NODE) : i nodi eseguono il calcolo e hanno zero o più input e output. I dati che si spostano tra i nodi sono noti come tensori, che sono array multidimensionali di valori reali. Bordi (EDGE): il grafico definisce il flusso di dati, ramificazioni, cicli e aggiornamenti allo stato. È possibile utilizzare bordi speciali per sincronizzare il comportamento all'interno del grafico, ad esempio in attesa del completamento del calcolo su un numero di input. Operazione : un'operazione è un calcolo astratto denominato che può accettare attributi di input e produrre attributi di output. Ad esempio, è possibile definire un'operazione di aggiunta o moltiplicazione. Calcolo con TensorFlow Questo primo esempio è una versione modificata dell'esempio sul sito Web TensorFlow . Mostra come definire valori come tensori ed eseguire un'operazione. import tensorflow as tf a = tf.constant(10) b = tf.constant(32) print(a+b) L'esecuzione di questo esempio mostra: tf.Tensor(42, shape=(), dtype=int32) Regressione lineare con TensorFlow Il prossimo esempio deriva dall'introduzione nel tutorial di TensorFlow . Questo esempio mostra come definire le variabili (ad es. W e b) così come le variabili che sono il risultato del calcolo (y). Abbiamo la sensazione che TensorFlow separi la definizione e la dichiarazione del calcolo. Sotto, c'è la differenziazione automatica sotto il cofano. Quando utilizziamo la funzione mse_loss() per calcolare la differenza tra ye y_data, viene creato un grafico che collega il valore prodotto dalla funzione alle variabili TensorFlow We b. TensorFlow utilizza questo grafico per dedurre come aggiornare le variabili all'interno della funzione minimize(). import tensorflow as tf import numpy as np # Creiamo100 dati fittizzi x, y con NumPy, y = x * 0.1 + 0.3 x_data = np.random.rand(100).astype(np.float32) y_data = x_data * 0.1 + 0.3 # Proviamo a trovare il valor di W e b che calcola y_data = W * x_data + b W = tf.Variable(tf.random.normal([1])) b = tf.Variable(tf.zeros([1])) # Funzione per calcolare mean squared error tray_data e la y calcolata def mse_loss(): y = W * x_data + b loss = tf.reduce_mean(tf.square(y - y_data)) return loss # Minimizziamo il mean squared errors. optimizer = tf.keras.optimizers.Adam() for step in range(5000): optimizer.minimize(mse_loss, var_list=[W,b]) if step % 500 == 0: print(step, W.numpy(), b.numpy()) # il best FIT è W: [0.1], b: [0.3] L'esecuzione di questo esempio stampa il seguente output: 0 [-0.35913563] [0.001] 500 [-0.04056413] [0.3131764] 1000 [0.01548613] [0.3467598] 1500 [0.03492216] [0.3369852] 2000 [0.05408324] [0.32609695] 2500 [0.07121297] [0.316361] 3000 [0.08443557] [0.30884594] 3500 [0.09302785] [0.3039626] 4000 [0.09754606] [0.3013947] 4500 [0.09936733] [0.3003596] Puoi saperne di più sulla meccanica di TensorFlow nella guida all'utilizzo di base . TensorFlow contro PyTorch, CNTK e MXNet TensorFlow compete con una sfilza di altri framework di apprendimento automatico. PyTorch, CNTK e MXNet sono tre framework principali che soddisfano molte delle stesse esigenze. Chiudiamo con una rapida occhiata a dove si distinguono e non sono all'altezza di TensorFlow: PyTorch è costruito con Python e ha molte altre somiglianze con TensorFlow: componenti con accelerazione hardware sotto il cofano, un modello di sviluppo altamente interattivo che consente di lavorare in base al progetto e molti componenti utili già inclusi. PyTorch è generalmente una scelta migliore per lo sviluppo rapido di progetti che devono essere operativi in breve tempo, ma TensorFlow vince per progetti più grandi e flussi di lavoro più complessi. CNTK , il Microsoft Cognitive Toolkit, è come TensorFlow nell'usare una struttura a grafo per descrivere il flusso di dati, ma si concentra principalmente sulla creazione di reti neurali di deep learning. CNTK gestisce più rapidamente molti lavori di rete neurale e dispone di un set più ampio di API (Python, C++, C#, Java). Ma attualmente non è facile da imparare o distribuire come TensorFlow. È inoltre disponibile solo con la licenza GNU GPL 3.0, mentre TensorFlow è disponibile con la licenza Apache più liberale. E CNTK non è sviluppato in modo così aggressivo; l'ultima major release risale al 2019. Apache MXNet , adottato da Amazon come il principale framework di deep learning su AWS, può scalare in modo quasi lineare su più GPU e più macchine. MXNet supporta anche un'ampia gamma di API di linguaggio—Python, C++, Scala, R, JavaScript, Julia, Perl, Go—sebbene le sue API native non siano così piacevoli da lavorare come quelle di TensorFlow. Ha anche una comunità molto più piccola di utenti e sviluppatori. Conclusione su TensorFlow la libreria Python per il Deep Learning TensorFlow è uno strumento di intelligenza artificiale di primo piano e se vuoi lavorare nell'intelligenza artificiale o nell'apprendimento automatico, dovresti conoscerlo. L'apprendimento automatico e l'intelligenza artificiale sono due esempi di applicazioni tecnologiche che stanno giocando un ruolo importante nel progresso mondiale. Cose che prima sembravano una trama di un film di fantascienza ora sono una realtà. L'apprendimento automatico influisce su tutti gli aspetti della nostra vita, dal suggerimento di film Netflix e assistenti virtuali alle auto a guida autonoma. TensorFlow, la libreria open source è senza dubbio vantaggiosa per gli sviluppatori e gli aspiranti professionisti che lavorano su tecnologie basate sull'apprendimento automatico. Diventare un Master nel campo del deep learning è uno dei compiti più difficili. Tuttavia, un grande ringraziamento a Google per lo sviluppo di un toolkit come TensorFlow, la raccolta di dati, la creazione di modelli e la previsione nel campo dell'apprendimento automatico è diventato più facile che mai grazie a TensorFlow e aiuta anche a ottimizzare le possibili tendenze, che in precedenza era uno dei lavori più impegnativi. Risorse TensorFlow Homepage ufficiale di TensorFlow Progetto TensorFlow su GitHub Esercitazioni su TensorFlow
- Videogiochi e intelligenza artificiale
Mentre alcuni videogiochi sono dotati di un'IA poco brillante, altri portano le cose al livello successivo incorporando l'intelligenza artificiale che supera in astuzia il giocatore. In questo articolo vedremo i migliori videogiochi con intelligenza artificiale. Introduzione Videogiochi e intelligenza artificiale I mondi dei videogiochi hanno bisogno di qualcosa di più dei semplici giocatori. Hanno bisogno di nemici, alleati, civili e altro ancora. Gli NPC sono tutti guidati dall'intelligenza artificiale, che dice loro come agire, come rispondere e come rendere il mondo di gioco più simile a un luogo reale. Nonostante la sua crescente complessità, l'intelligenza artificiale è ancora molto carente rispetto agli esseri umani reali. La maggior parte dei videogiochi è troppo complessa perché l'IA possa coglierne veramente ogni parte, per non parlare di imparare, adattarsi o migliorare. Molti sviluppatori utilizzano scorciatoie e soluzioni alternative per migliorare le prestazioni dell'IA. Tuttavia, alcuni giochi possono davvero sorprendere i giocatori con quanto possa essere efficace, complessa e reattiva la loro Intelligenza artificiale. A cosa serve l'intelligenza artificiale nei Videogiochi? L'intelligenza artificiale nei videogiochi consiste nel creare giochi più reattivi, adattivi e stimolanti attraverso l'uso dell'intelligenza artificiale. E anche se gli accademici sostengono che l'IA dei giochi non è una vera IA ma semplicemente regole e scenari decisi dai programmatori, il clamore intorno alla tecnologia è in continua crescita da un po' di tempo. È diventato un concetto importante in molti giochi. Basta guardare Cortana in Halo (sì, Microsoft ha chiamato il suo assistente virtuale dopo questo personaggio e siamo qui per questo!). E questo non è l'unico gioco sull'intelligenza artificiale. Molti altri giochi (come Detroit: Becoming Human) ruotano principalmente attorno all'Intelligenza artificiale e agli androidi. Perché l'intelligenza artificiale è importante nei videogiochi? Con l'IA, i videogiochi sono in grado di fornire un'esperienza migliore ai loro giocatori. La creazione di sviluppi situazionali realistici per progredire nei giochi aggiunge eccitazione al gameplay. La crescente complessità nei giochi con l'IA assicura che i giocatori siano agganciati al gioco. Con l'ascesa di diversi dispositivi di gioco ( VR, tute da gioco, etc..), i giocatori si aspettano di vivere un'esperienza coinvolgente su vari dispositivi. I vantaggi dell'IA nei videogiochi: L'intelligenza artificiale porta un'enorme quantità di vantaggi all'industria dei giochi. Alcuni di questi sono: 1. I videogiochi diventano più intelligenti e realistici Utilizzando tecniche come il pattern learning, gli NPC nei giochi si evolvono mediante l'autoapprendimento dalle loro azioni. I giochi diventano anche piuttosto realistici perché interpretano e rispondono anche alle azioni del giocatore. Ci sono anche molti programmi che non necessitano di interfacce umane e sono in grado di creare mondi virtuali automaticamente. 2. Risparmia su costi e tempo Normalmente, lo sviluppo di un gioco richiede molto tempo e denaro da investire in esso. E non sei nemmeno sicuro di quanto bene il mercato accetterà il gioco. L'IA può aiutare a ridurre drasticamente il tempo necessario per costruire un gioco e risparmiare molte risorse che verrebbero spese per lo sviluppo del gioco. 3. Rende più facile per l'utente giocare L'uso dell'IA nei giochi aiuta a rendere i giochi più intuitivi. Oltre a questo, il gioco può utilizzare l'IA per capire l'abilità e l'esperienza dell'utente con il gioco e regolare il livello di difficoltà del gioco in tempo reale per abbinarlo. 4. Elimina la prevedibilità del videogioco Il gioco diventa imprevedibile quando viene utilizzato un comportamento non deterministico. Ciò significa che ciò che accade nel gioco non può nemmeno essere previsto dallo sviluppatore del gioco. Questo crea un'esperienza nuova e rinfrescante e aumenta la vita di gioco del gioco poiché il gioco non diventa prevedibile e noioso dopo averlo giocato alcune volte. L'Intelligenza Artificiale può creare videogiochi? Sì, può. L'intelligenza artificiale ha svolto un ruolo enorme nello sviluppo di videogiochi e nell'adattamento alle preferenze dei giocatori. La tecnica più comunemente usata per questo è l'apprendimento automatico. Fondamentalmente, potresti fare in modo che il sistema di intelligenza artificiale impari da molti giochi, crei rappresentazioni approssimative dei giochi e quindi proceda a ricombinare le conoscenze da queste rappresentazioni e utilizzare l'espansione concettuale per creare nuovi giochi. Storia dell'Intelligenza Artificiale nei videogiochi I videogiochi sono nati senza IA. Il primo gioco in assoluto è stato creato nel 1958 da William Higinbotham che ha lavorato al Brookhaven National Laboratory. Il gioco si chiama "Tennis for Two" ed è stato realizzato collegando un oscilloscopio a un computer analogico. Il primo gioco ad essere eseguito su un computer è stato Spacewar di Steve Russell del MIT. Spacewar è considerato il primo gioco per computer poiché è stato realizzato su computer mainframe PDP-1. Nessuno di questi due giochi includeva l'IA. Durante i primi giorni dei videogiochi, l'IA non era una caratteristica. Questo perché quei giochi sono relativamente semplici e per la maggior parte del tempo riguardavano il completamento tra persone reali. Nessun avversario del computer è stato aggiunto al gioco. Nel 1970, Atari pubblicò il primo videogioco arcade, "Computer Space". E fu solo allora che i game designer iniziarono il loro primo tentativo di incorporare l'IA nei loro giochi. Le IA sono state progettate principalmente per i giochi arcade con lo scopo di garantire che le persone continuassero a nutrire quarti nella macchina da gioco. (Tozour) Pong, Space Invaders e Donkey Kongerano tra i giochi seminali. Questi giochi venivano eseguiti con regole molto semplici e azioni con script. Gli agenti non avevano la capacità di prendere decisioni. A volte le decisioni erano progettate per essere prese in modo casuale in modo che i comportamenti apparissero più imprevedibili. Pertanto, la cosiddetta Intelligence è stata effettivamente codificata nel gioco e non è stata in grado di agire in fase di esecuzione. La prima IA è apparsa sotto forma di schemi memorizzati. Un esempio di tale IA codificata è il design degli alieni in "Space Invaders". In questo gioco, il giocatore deve sparare agli alieni prima che raggiungano la parte inferiore dello schermo. Il modo in cui questi alieni si muovono è pre-codificato nel gioco. Erano il modello memorizzato. Sono stati creati più giochi basati su questo tipo di IA, ma l'evoluzione dell'IA era appena iniziata. L'apparizione dell'avversario del computer in "Pong" ha fatto credere alla gente che il computer stesse pensando. Era anche considerata la prima vera intelligenza artificiale nei giochi. Il modo in cui va il gioco Pong ha reso impossibile lo script dei comportamenti di oggetti non umani. I paddle devono prendere decisioni in base alle azioni dei giocatori umani. Le decisioni potrebbero non essere così difficili da prendere: è un semplice calcolo di dove devono andare i paddle, ma questo ha fatto provare alle persone la stessa sensazione di giocare contro un vero giocatore umano. (Wexler) L'idea che ci fosse un Intelligenza Artificiale in PacMan era molto popolare nelle sale da gioco ai tempi. Questo classico gioco arcade fa credere al giocatore che i nemici nel gioco lo stiano inseguendo, ma non in modo rozzo. I fantasmi stanno inseguendo il giocatore (o eludendolo) in un modo diverso come se avessero una personalità individuale. Questo dà alle persone l'illusione di giocare contro 4 o 5 singoli fantasmi piuttosto che contro copie dello stesso computer nemico. Verso la fine degli anni '80, la mania dei videogiochi arcade stava cominciando a svanire. Con lo sviluppo dell'industria dei computer, i computer domestici sono diventati disponibili. I computer domestici e le console hanno guidato la nuova direzione dello sviluppo dei videogiochi. I nuovi giochi progettati per questi dispositivi sono diventati più complessi a causa della maggiore capacità dei moderni processori. Anche se è necessario applicare più risorse ai contenuti e prestazioni grafiche di qualità superiore, l'IA ha comunque trovato la propria necessità di svilupparsi. Durante gli anni '80 sono emersi rapidamente più generi di giochi. Il vecchio stile del design dell'IA non era aggiornato. I progettisti hanno dovuto trattare seriamente l'IA dei giochi. Un'intelligenza artificiale altamente competente e divertente era ciò che questo genere di gioco significa per i giocatori. Tale IA era impegnativa e aveva requisiti esigenti. Da allora, il design dell'IA nei giochi RTS è diventato eccezionale e si è sviluppato come un nuovo campo di ricerca. Half-Life di Valve Software ha ricevuto elogi per il suo design AI nel campo degli sparatutto in prima persona. SimCity è stata la prima a dimostrare il potenziale degli approcci alla vita artificiale ("A-LIFE"). Siamo ancora nell'evoluzione dell'IA di gioco. I videogiochi hanno fatto molta strada dagli anni '50, così come le tecniche di intelligenza artificiale che li accompagnano. Gli ultimi anni sono stati testimoni di idee sempre più nuove e metodi per l'IA dei giochi si sono uniti al processo di sviluppo del gioco. ORA VEDIAMO I MIGLIORI VIDEOGIOCHI CON INTELLIGENZA ARTIFICIALE. Migliori Videogiochi con intelligenza artificiale: Alien: Isolation's Xenomorph The Last Of Us Bioshock Infinite Star Wars: Republic Commando Dwarf Fortress Resident Evil 2 Stellaris Left 4 Dead 2 Half-Life Metal Gear Solid V Migliori Videogiochi con intelligenza artificiale n°10 I nemici di Metal Gear Solid V rispondono alle tattiche preferite del giocatore I giochi Metal Gear Solid hanno spesso un'intelligenza artificiale intelligente, rispetto ai loro tempi. Come giochi stealth, devono avere un'IA in grado di sfidare il giocatore. Tuttavia, l'intelligenza artificiale della serie è di gran lunga migliore in Metal Gear Solid V: The Phantom Pain . In The Phantom Pain , i giocatori hanno molti modi per completare ogni missione. Se fanno troppo affidamento sui soliti modi, l'IA implementerà contromisure. Se un giocatore spara costantemente ai nemici alla testa, i loro nemici inizieranno a indossare caschi più forti. Se i giocatori attaccano di notte, il nemico porterà più luci. Se i giocatori sparano a distanza, i soldati schiereranno i mortai. I nemici di Metal Gear Solid V sono inaspettatamente bravi a tenere un giocatore all'erta, costringendolo a cambiare tattica. Migliori Videogiochi con intelligenza artificiale n°9 L'IA di Half-Life è rivoluzionaria per l'epoca Per gli standard contemporanei, l'IA di Half-Life non è niente di speciale. Per gli standard del 1998, tuttavia, è notevole. Half-Life è stato celebrato per molte ragioni al suo lancio, ma l'intelligenza dei marines HECU è stata un grande punto di forza. Non si limitano a caricare verso il giocatore; si muovono come una vera unità militare. I marines dell'HECU si forniscono reciprocamente fuoco di copertura. Cercano di stanare Gordon Freeman con le granate. Si spostano persino da una copertura all'altra, limitando la frequenza con cui il giocatore può sparare. Queste cose sono tutte standard ora, ma data l'età di Half-Life , il comportamento esibito dai suoi nemici rimane rivoluzionario. Migliori Videogiochi con intelligenza artificiale n°8 L'IA di Left 4 Dead 2 controlla attentamente il gioco Left 4 Dead 2 ha una forte componente giocatore contro giocatore. Tuttavia, indipendentemente dal fatto che i giocatori si affrontino o stiano facendo una campagna cooperativa, L'IA è una presenza costante. L'IA sceglie quando e dove si generano i mob di nemici, quali oggetti sono disponibili per il giocatore e quanti Infetti Speciali devono affrontare. L'IA è straordinariamente capace in questo senso. È accuratamente bilanciato per mantenere i giocatori tesi e minacciati, piuttosto che affogarli con i nemici. Garantisce che non ci siano due playthrough di una singola campagna uguali. L'IA è intelligente e mantiene le cose abbastanza varie da lasciare i giocatori indovinare come funziona. Migliori Videogiochi con intelligenza artificiale n°7 L'intelligenza artificiale di Stellaris è notevole per essere funzionale I giochi di strategia presentano molti esempi di un'IA che non riesce a tenere il passo con i giocatori. Questi tipi di giochi sono abbastanza complessi e variabili che è quasi impossibile creare un'IA in grado di offrire una vera sfida. I giochi spesso devono compensare barando. A volte l'IA ottiene un vantaggio come informazioni aggiuntive, a volte è palese come risorse extra. Stellaris è uno dei giochi di strategia più complessi e ha un forte focus economico. I giocatori devono raccogliere risorse e poi convertirle in altre risorse, sviluppando il loro impero. L'IA non riesce a tenere il passo alla fine del gioco e si basa su bonus a difficoltà più elevate. Tuttavia, la sua capacità di gestirlo è una testimonianza per gli sviluppatori. L'IA riceve frequenti aggiornamenti per renderla ancora più capace, grazie alla Custodian Initiative di Paradox Entertainment. Migliori Videogiochi con intelligenza artificiale n°6 L'IA di Mr. X di Resident Evil 2 è paurosa La maggior parte dei nemici in Resident Evil 2 non sono molto intelligenti. Inciampano verso il giocatore, sperando solo di entrare nel raggio di mischia. Ha senso, dato che sono zombi. Tuttavia, tutto cambia con Mr. X . È una minaccia ricorrente durante il gioco, che insegue Leon Kennedy e Claire Redfield attraverso il dipartimento di polizia di Raccoon City. Mr. X di Resident Evil 2 tende a prendere il percorso diretto verso il giocatore e può essere facilmente kitato. Tuttavia, questo è solo per rendere il gioco sopravvissuto. Il comportamento generale del signor X come cacciatore è molto più sofisticato. Cerca metodicamente il giocatore se lo perde e risponde a rumori come spari o combattimenti. Osserverà persino uno zombi che feroce il giocatore, piuttosto che limitarsi a caricare e interrompere il combattimento. Migliori Videogiochi con intelligenza artificiale n°5 Dwarf Fortress modella la vita per i suoi numerosi personaggi La Dwarf Fortress è famigerata per la sua complessità. Il gioco replica accuratamente molte parti dell'ingegneria e della fisica, tutte al servizio di un gioco di strategia ASCII. La sua attenzione ai dettagli lo porta ad essere assolutamente realistico in alcune aree e completamente privo di senso in altre. I nani sono lo strumento del giocatore per portare a termine le cose, ma sono autonomi. Il giocatore non ha il controllo diretto. Invece, ogni nano ha una vita personale interiore complessa. Le loro preferenze, relazioni, umore e altro influenzano il loro comportamento e la funzionalità di una fortezza. I risultati non hanno sempre senso, ma Dwarf Fortress incorpora ancora una notevole quantità di dettagli per ogni personaggio Migliori Videogiochi con intelligenza artificiale n°4 Star Wars: Gli alleati di Republic Commando sono soldati eccellenti I nemici sono solitamente al centro dell'IA nei giochi. Sono essenziali per dare a un videogioco la sua sfida, quindi devono essere intelligenti e in grado di rispondere alle azioni del giocatore. Star Wars: Republic Commando mostra che altri NPC non dovrebbero essere trascurati. I suoi nemici sono più che competenti, ma i suoi cloni alleati sono straordinari. Il giocatore dà ordini alla Delta Squad mentre combattono e li realizzano straordinariamente bene. Combatteranno per raggiungere buone posizioni senza che il giocatore debba supervisionarli, reagire al pericolo o al rischio schiacciante e combattere per proteggere il giocatore se perde i sensi. Star Wars: Republic Commando fa sentire i giocatori come se fossero veramente parte di un'unità militare capace. Migliori Videogiochi con intelligenza artificiale n°3 Elizabeth di Bioshock Infinite si sente come una persona reale Elizabeth di Bioshock Infinite evita tutti i problemi con un compagno NPC essendo competente e utile in combattimento, scegliendo di non combattere direttamente al fianco del protagonista Booker DeWitt. Elizabeth usa i suoi poteri per ottenere munizioni e altri oggetti utili per Booker e glieli lancia. È un supporto inestimabile, anche quando il giocatore non la usa per evocare altre cose tramite Tears. L'IA fuori dal combattimento di Elizabeth è ancora più impressionante, comportandosi come una persona reale. Si muove con Booker come una compagna, non come una seguace, e reagisce agli eventi del gioco. Migliori Videogiochi con intelligenza artificiale n°2 The Last Of Us The Last of Us offre furtività e combattimento come opzioni e l'IA gestisce bene entrambi. I suoi nemici umanoidi possono eseguire la maggior parte degli stessi trucchi di Joel Miller in combattimento . Usano la copertura, si spostano in posizioni migliori per combattere e chiamano i loro alleati quando hanno inchiodato Joel. Di nascosto, non si rilassano mai completamente una volta che trovano Joel. La loro ricerca diventa più veloce e più difficile da prevedere. Non è tutto contro il giocatore, però. Ellie Williams è progettata per essere un utile compagno di intelligenza artificiale. In The Last of Us , Ellie sceglie posizioni ragionevoli in cui nascondersi durante il combattimento, si tiene fuori pericolo e può persino lanciare mattoni contro i nemici per dare a Joel un'apertura. Migliori Videogiochi con intelligenza artificiale n°1 Lo xenomorfo di Alien: Isolation è intelligente quanto quello del film Il punto di forza di Alien: Isolation è lo xenomorfo che perseguita il giocatore durante il gioco. È un mostro horror iconico dei film, il predatore perfetto. Il gioco riesce a ricreareil terrore dell'edificio di Alien , poiché il giocatore si rende conto di quanto sia intelligente un nemico contro cui devono confrontarsi . La caratteristica più impressionante dello xenomorfo è che impara. Diventa saggio per i trucchi del giocatore e li punisce. Se il giocatore usa troppo un certo nascondiglio, lo xenomorfo inizierà a controllare quel punto ogni volta. Se i giocatori usano gli stessi tipi di distrazioni troppo spesso, li ignorerà. Nel tempo, lo xenomorfo imparerà i limiti del lanciafiamme e costringerà il giocatore a sprecare carburante allontanandolo.
- Data engineer vs data scientist: quale carriera devi scegliere ?
Può aiutare a comprendere gli obiettivi di business dell'organizzazione e fornire soluzioni basate su
- Migliori progetti Open Source Python di Intelligenza Artificiale da provare nel 2023
Se sei interessato a imparare Python, ecco i migliori progetti open source Python dedicati all' I.A. da provare nel 2023 Lavorando come data scientist o data engineer, Python è un linguaggio di programmazione che non puoi permetterti di non conoscere . Forse non c'è modo migliore per imparare Python che lavorare su progetti open source. Ti aiuterà a diventare più abile nella programmazione, soprattutto in ambito di I.A. Ecco i migliori progetti open source Python da provare: Teano Scikit-learn Chainer Caffè Gensim PyTorch Shogun Pylearn2 Nilearn Numenta Teano Theano ti consente di ottimizzare, valutare e definire espressioni matematiche che coinvolgono array multidimensionali. È una libreria Python e ha molte funzionalità che la rendono un must per qualsiasi professionista dell'apprendimento automatico. È ottimizzato per stabilità e velocità e può generare codice C dinamico per valutare rapidamente le espressioni. Theano ti consente di utilizzare NumPy.ndarray anche nelle sue funzioni, in modo da poter utilizzare le capacità di NumPy in modo efficace. Scikit-learn Scikit-learn è una libreria di strumenti basata su Python che puoi utilizzare per l'analisi dei dati e il data mining. Puoi riutilizzarlo in numerosi contesti. Ha un'eccellente accessibilità, quindi anche usarlo è abbastanza facile. I suoi sviluppatori lo hanno costruito su matplotlib, NumPy e SciPy. Alcune attività per le quali è possibile utilizzare Scikit-learn includono Clustering, Regression, Classification, Model Selection, Preprocessing e Dimensionality Reduction. Per diventare un vero professionista dell'IA, devi essere in grado di utilizzare questa libreria. Chainer Chainer è un framework basato su Python per lavorare su reti neurali. Supporta più architetture di rete, comprese reti ricorrenti, convnet, reti ricorsive e reti feed-forward. A parte questo, consente il calcolo CUDA in modo da poter utilizzare una GPU con pochissime righe di codice. Puoi eseguire Chainer anche su molte GPU, se necessario. Un vantaggio significativo di Chainer è che rende molto semplice il debug del codice, quindi non dovrai fare molti sforzi in tal senso. Su Github, Chainer ha più di 12.000 commit, quindi puoi capire quanto è popolare. Caffè Caffe è un prodotto di Berkeley AI Research ed è un framework di deep learning incentrato su modularità, velocità ed espressione. È tra i progetti di intelligenza artificiale open source più popolari in Python. Ha un'architettura e una velocità eccellenti in quanto può elaborare più di 60 milioni di immagini in un giorno. Inoltre, ha una fiorente comunità di sviluppatori che lo utilizzano per applicazioni industriali, ricerca accademica, multimedia e molti altri domini. Gensim Gensim è una libreria Python open source in grado di analizzare file di testo normale per comprenderne la struttura semantica, recuperare file semanticamente simili a quello ed eseguire molte altre attività. È scalabile e indipendente dalla piattaforma, come molte delle librerie e dei framework Python di cui abbiamo discusso in questo articolo. Se hai intenzione di utilizzare la tua conoscenza dell'intelligenza artificiale per lavorare su progetti NLP (Natural Language Processing), allora dovresti sicuramente studiare questa libreria. PyTorch PyTorch aiuta a facilitare la prototipazione della ricerca in modo da poter distribuire i prodotti più velocemente. Ti consente di passare da una modalità grafica all'altra tramite TorchScript e fornisce una formazione distribuita che puoi scalare. PyTorch è disponibile anche su più piattaforme cloud e ha numerose librerie e strumenti nel suo ecosistema che supportano la NLP, la visione artificiale e molte altre soluzioni. Per eseguire implementazioni AI avanzate, dovrai acquisire familiarità con PyTorch. Shogun Shogun è una libreria di apprendimento automatico (open-source) e fornisce molti metodi ML unificati ed efficienti. Non è basato esclusivamente su Python, quindi puoi usarlo anche con molti altri linguaggi come Lua, C#, Java, R e Ruby. Consente la combinazione di più classi di algoritmi, rappresentazioni dei dati e strumenti in modo da poter prototipare rapidamente pipeline di dati. Ha una fantastica infrastruttura per i test che puoi utilizzare su varie configurazioni del sistema operativo. Ha anche diversi algoritmi esclusivi, inclusi i metodi Krylov e Multiple Kernel Learning, quindi conoscere Shogun ti aiuterà sicuramente a padroneggiare l'IA e l'apprendimento automatico. Pylearn2 Basato su Theano, Pylearn2 è tra le librerie di machine learning più diffuse tra gli sviluppatori Python. Puoi usare espressioni matematiche per scrivere i suoi plugin mentre Theano si occupa della loro stabilizzazione e ottimizzazione. Su Github, Pylearn2 ha più di 7k commit e sono ancora in crescita, il che dimostra la sua popolarità tra gli sviluppatori ML. Pylearn2 si concentra sulla flessibilità e fornisce un'ampia varietà di funzionalità, inclusa un'interfaccia per i media (immagini, vettori, ecc.) e implementazioni multipiattaforma. Nilearn Nilearn aiuta nei dati di neuroimaging ed è un popolare modulo Python. Utilizza scikit-learn (di cui abbiamo discusso in precedenza) per eseguire varie azioni statistiche come la decodifica, la modellazione, l'analisi della connettività e la classificazione. La neuroimaging è un'area importante nel settore medico e può aiutare a risolvere molteplici problemi come una migliore diagnosi con una maggiore precisione. Se sei interessato a utilizzare l'IA in campo medico, allora questo è il punto di partenza. Numenta Numenta si basa su una teoria della neocorteccia chiamata HTM (Hierarchical Temporal Memory). Molte persone hanno sviluppato soluzioni basate su HTM e sul software. Tuttavia, c'è molto lavoro in corso in questo progetto. HTM è un framework di intelligenza artificiale basato sulla neuroscienza. Condividi l'articolo se ti è piaciuto : )
- Robotica e Intelligenza Artificiale Un'Integrazione Rivoluzionaria per il Futuro
Il Rivoluzionario Robot Figure 01 con ChatGPT In un'era in cui l'intelligenza artificiale e la robotica Dotato dell'iconico ChatGPT di OpenAI, Figure 01 non è solo in grado di comprendere il linguaggio umano
- Come funzionano gli algoritmi di machine learning? La spiegazione Completa
Come funzionano gli algoritmi di apprendimento automatico? Una delle classiche domande che vengono fatte ai colloqui, quindi leggi attentamente tutto l'articolo Iniziamo, Su che principio sono basati gli algoritmi di Machine Learning? Esiste un principio comune alla base di tutti gli algoritmi di apprendimento automatico supervisionati per la modellazione predittiva. In questo post scoprirai come funzionano effettivamente gli algoritmi di machine learning comprendendo il principio comune che sta alla base di tutti gli algoritmi. La Base del Machine Learning: Gli algoritmi di apprendimento automatico sono descritti come l'apprendimento di una funzione target (f) che mappa al meglio le variabili di input (X) su una variabile di output (Y). Y = f(X) Questo è un compito di apprendimento generale in cui vorremmo fare previsioni in futuro (Y) dati nuovi esempi di variabili di input (X). Non sappiamo che aspetto abbia la funzione (f) o la sua forma. Se lo facessimo, lo useremmo direttamente e non avremmo bisogno di impararlo dai dati usando algoritmi di apprendimento automatico. È più difficile di quanto pensi. C'è anche l'errore (e) che è indipendente dai dati di input (X). Y = f(X) + e Questo errore potrebbe essere un errore come non avere abbastanza attributi per caratterizzare sufficientemente la migliore mappatura da X a Y. Questo errore è chiamato errore irriducibile perché non importa quanto siamo bravi a stimare la funzione target (f), non possiamo ridurre questo errore. Vale a dire che il problema dell'apprendimento di una funzione dai dati è un problema difficile e questo è il motivo per cui esistono il campo del machine learning e degli algoritmi di machine learning. Come funzionano gli algoritmi di Machine learning ? Il tipo più comune di machine learning consiste nell'apprendere la mappatura Y=f(X) per fare previsioni di Y per il nuovo X. Questo è chiamato modellazione predittiva o analisi predittiva e il nostro obiettivo è rendere le previsioni più accurate possibili. In quanto tale, non siamo realmente interessati alla forma e alla forma della funzione (f) che stiamo imparando, solo che fa previsioni accurate. Potremmo imparare la funzione di Y=f(X) per saperne di più sulla relazione nei dati e questo è chiamato inferenza statistica. Se questo fosse l'obiettivo, useremmo metodi più semplici e apprezzeremmo la comprensione del modello appreso e della forma di (f) sopra facendo previsioni accurate. Quando apprendiamo una funzione (f) ne stimiamo la forma dai dati che abbiamo a disposizione. In quanto tale, questa stima avrà un errore. Non sarà una stima perfetta per l'ipotetica migliore mappatura sottostante da Y data X. Molto tempo nell'apprendimento automatico applicato viene dedicato al tentativo di migliorare la stima della funzione sottostante e, a termine, migliorare le prestazioni delle previsioni fatte dal modello. Tecniche per l'apprendimento di una funzione Gli algoritmi di apprendimento automatico sono tecniche per stimare la funzione target (f) per prevedere la variabile di output (Y) date le variabili di input (X). Rappresentazioni diverse fanno ipotesi diverse sulla forma della funzione appresa, ad esempio se è lineare o non lineare. Diversi algoritmi di apprendimento automatico fanno ipotesi diverse sulla forma e la struttura della funzione e sul modo migliore per ottimizzare una rappresentazione per approssimarla. Questo è il motivo per cui è così importante provare una suite di algoritmi diversi su un problema di apprendimento automatico, perché non possiamo sapere in anticipo quale approccio sarà il migliore per stimare la struttura della funzione sottostante che stiamo cercando di approssimare. Conclusione In questo post hai scoperto il principio alla base che spiega l'obiettivo di tutti gli algoritmi di apprendimento automatico per la modellazione predittiva. Hai imparato che gli algoritmi di apprendimento automatico funzionano per stimare la funzione di mappatura (f) delle variabili di output (Y) date le variabili di input (X) o Y=f(X). Hai anche appreso che diversi algoritmi di apprendimento automatico fanno ipotesi diverse sulla forma della funzione sottostante. E che quando non sappiamo molto sulla forma della funzione target, dobbiamo provare una suite di algoritmi diversi per vedere cosa funziona meglio. Hai domande su come funzionano gli algoritmi di machine learning o su questo post? Lascia un commento e fai la tua domanda e faremo del nostro meglio per rispondere.
- Cos'è il Machine Learning in 3 minuti! Spiegato in modo semplice
Ecco! Questo articolo è destinato esclusivamente al pubblico che non sa che cavolo è il Machine Learning (ML) o in italiano apprendimento automatico? Per quelli che si sentono esclusi quando vedono persone che ne parlano. Non è necessario che tu provenga affatto da un background TECH. Ti assicuro che dopo aver letto questo articolo avrai abbastanza informazioni per partecipare a discorsi casuali sul Machine Learning. Cos'è il Machine Learning ? A partire da una definizione ampia, il Machine Learning è... Una sotto area dell'Intelligenza Artificiale , ed è definito come la capacità di una macchina di imitare il modo umano intelligente di apprendere dai dati. ( Noi utilizziamo il cervello biologico, le macchine utilizzano capacità di calcolo è tantissimi dati elaborati da algoritmi e modelli statistici ) Semplice ! Esempio Pratico di Machine Learning ? Per fare un esempio, lascia che ti faccia un quiz... Il tuo obiettivo è quello di indovinare il numero associato al 9 seguendo lo schema dei numeri precedenti. Per favore affinchè tu capisca questo articolo c'è bisogno che non leggi la soluzione senza prima aver provato a capire il numero abbinato a 9. 3 – 9 4 – 16 8 – 64 9 – ? ( Indovina il prossimo senza scorrere ) Non scorrere ... Scorri solo se hai trovato la risposta... Non barare.... Come sei arrivato a 81 ??? Questo è esattamente il tipo di comportamento che stiamo cercando di insegnare alle macchine. Stiamo cercando di insegnare alle macchine a "Imparare dall'esperienza" . Gli algoritmi di apprendimento automatico utilizzano metodi computazionali per "apprendere" le informazioni direttamente dai dati senza fare affidamento su un'equazione predeterminata come modello. Gli algoritmi migliorano in modo adattivo le loro prestazioni all'aumentare del numero di campioni disponibili per l'apprendimento. I famigerati algoritmi ML trovano schemi naturali all'interno dei dati, ottengono approfondimenti e predicono l'ignoto per prendere decisioni migliori. Quali sono i tipi di tecniche di Machine Learning? Esistono vari tipi di tecniche ML ma a te basta conoscere questi due : Apprendimento supervisionato Apprendimento senza supervisione Non preoccuparti e non spaventarti! Un passo alla volta. Apprendimento supervisionato: Trova modelli (e sviluppa modelli predittivi) utilizzando sia i dati di input che i dati di output. Quindi inizialmente saremmo noi stessi ad abbinare gli Input agli output. Tutte le tecniche di apprendimento supervisionato sono sotto forma di classificazione o regressione . Classificazione : La classificazione viene utilizzata per prevedere le risposte discrete. Se un'e-mail è SPAM o NONSPAM? Se l'Italia vincerà i mondiali ? Vince, Perde, SPAM, NONSPAM sono le classi predefinite. E l'output deve rientrare tra questi a seconda dell'input. Regressione : La regressione viene utilizzata per prevedere le risposte continue, per esempio: Andamento dei prezzi di borsa, previsioni del tempo, prezzo degli immobili, numero acquisti prossimo mese sul nostro e-commerce, ecc. Ti potrebbe interessare anche : Classificatore vs Regressione quale usare? Machine learning esempi pratici Apprendimento senza supervisione: Trova i modelli basati solo sui dati di input. Questa tecnica è utile quando non sei sicuro di cosa cercare. Spesso utilizzato per l'analisi esplorativa di dati grezzi. La maggior parte delle tecniche di apprendimento senza supervisione sono una forma di analisi dei cluster. Analisi di gruppo: In Cluster Analysis, si raggruppano elementi di dati che hanno una certa misura di somiglianza basata su valori caratteristici. Alla fine quello che avrai è un insieme di diversi gruppi (supponiamo che A — Z tali gruppi). Un Data Item (d1) in un gruppo (A) è molto simile ad altri Data Item (d2 — dx) nello stesso gruppo (A), ma d1 è significativamente diverso dai Data Item appartenenti a gruppi diversi (B — Z) . Tornando al nostro esempio... Il nostro quiz è stato un esempio di apprendimento supervisionato — tecnica di regressione. Alcune applicazioni comuni di Machine Learning a cui puoi fare riferimento: Il tuo assistente personale Siri o Google utilizza ML. Le previsioni meteorologiche per la prossima settimana vengono fornite utilizzando ML. Win Predictor in un torneo sportivo utilizza ML. La diagnosi medica utilizza prevalentemente ML. E qualcosa con cui saresti familiare, ti sei mai chiesto come mai i siti multimediali ti mostrano consigli e annunci che corrispondono strettamente ai tuoi interessi? Anche loro usano Machine Learning. Per altri esempi clicca qui Spero che questo articolo ti sia piaciuto. Condividi le tue opinioni e dubbi nella sezione commenti qui sotto. Grazie per averlo letto tutto :)














