{"id":1438,"date":"2020-09-16T14:24:19","date_gmt":"2020-09-16T12:24:19","guid":{"rendered":"https:\/\/www.ipscloudsystem.com\/?p=1438"},"modified":"2020-09-16T17:34:21","modified_gmt":"2020-09-16T15:34:21","slug":"reti-neurali-artificiali-e-machine-learning","status":"publish","type":"post","link":"https:\/\/www.ipscloudsystem.com\/it\/reti-neurali-artificiali-e-machine-learning\/","title":{"rendered":"Reti neurali artificiali e Machine learning"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Vista dall\u2019esterno, una rete neurale artificiale \u00e8 un software eseguito da un computer. La particolarit\u00e0 rispetto al resto dei programmi \u00e8 la sua capacit\u00e0 di apprendere quali sono le relazioni tra i dati in ingresso e i dati in uscita (i risultati), questo attraverso una struttura logica di base che non cambia al variare dei dati e delle relazioni, ma si adatta.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Il nome rete neurale viene dal paragone con quella del nostro cervello. La sua struttura prevede una serie di punti, detti nodi, connessi tra loro, che ricevono un valore numerico da altri nodi, lo aumentano o diminuiscono e restituiscono il risultato a nodi diversi da quelli da cui l\u2019hanno ricevuto. In modo simile, nel nostro cervello i neuroni ricevono un impulso elettrico da una serie di neuroni e a loro volta ritrasmettono o meno questo impulso elettrico ad altri neuroni. Detta cos\u00ec, un neurone non sembra un oggetto molto intelligente. Gli arrivano delle piccole scosse e tutto quello che fa \u00e8 ritrasmetterle o meno ad altri neuroni. Come pu\u00f2 tutta questa corrente che ci gira nella testa trasformarsi nelle cose cos\u00ec complesse che riusciamo a fare? Il segreto sta nella quantit\u00e0. Se ad esempio avessimo 100 neuroni, non solo non saremmo molto intelligenti, ma, per come siamo fatti, non sarebbero sufficienti nemmeno per restare in vita (tuttavia ci sono animali che non hanno alcun neurone, come ad esempio le spugne). E se ne avessimo 1000? Non farebbe molta differenza, pensate che una medusa ne ha circa 6000 e fa parte della categoria di fauna con la pi\u00f9 bassa capacit\u00e0 cerebrale. Un topo ne ha gi\u00e0 circa 70 milioni e noi esseri umani arriviamo a ben 86 miliardi. Ma come fa la quantit\u00e0 a trasformare un processo cos\u00ec basilare e banale nelle sorprendenti abilit\u00e0 che possediamo? Per arrivare alla risposta analizziamo una rete artificiale.<\/span><\/p>\n<h3><b>La rete di neuroni artificiale<\/b><\/h3>\n<div id=\"attachment_1524\" style=\"width: 470px\" class=\"wp-caption alignright\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1524\" class=\" wp-image-1524\" src=\"https:\/\/www.ipscloudsystem.com\/wp-content\/uploads\/2020\/05\/semplice_rete_neurale.jpg\" alt=\"Schema di una rete neurale artificiale\" width=\"460\" height=\"299\" srcset=\"https:\/\/www.ipscloudsystem.com\/wp-content\/uploads\/2020\/05\/semplice_rete_neurale.jpg 847w, https:\/\/www.ipscloudsystem.com\/wp-content\/uploads\/2020\/05\/semplice_rete_neurale-300x195.jpg 300w, https:\/\/www.ipscloudsystem.com\/wp-content\/uploads\/2020\/05\/semplice_rete_neurale-768x499.jpg 768w, https:\/\/www.ipscloudsystem.com\/wp-content\/uploads\/2020\/05\/semplice_rete_neurale-845x550.jpg 845w, https:\/\/www.ipscloudsystem.com\/wp-content\/uploads\/2020\/05\/semplice_rete_neurale-705x458.jpg 705w, https:\/\/www.ipscloudsystem.com\/wp-content\/uploads\/2020\/05\/semplice_rete_neurale-450x292.jpg 450w\" sizes=\"auto, (max-width: 460px) 100vw, 460px\" \/><p id=\"caption-attachment-1524\" class=\"wp-caption-text\">Schema di una rete neurale artificiale semplificata<\/p><\/div>\n<p><span style=\"font-weight: 400;\">Iniziamo a schematizzare un esempio di rete neurale molto semplice per capirne il meccanismo pi\u00f9 nel dettaglio. Come vedete nella figura, abbiamo tre livelli. Uno di input dove in questo caso ci sono tre nodi (cerchi azzurri), questi tre nodi rappresentano tre informazioni in ingresso. Un livello centrale detto nascosto, per il fatto che non comunica direttamente con l\u2019esterno (cerchi bianchi). E un livello a destra che rappresenta i risultati, in questo caso fatto da un solo nodo (cerchio arancione). Le linee grigie mostrano le connessioni tra i vari nodi. Il modo pi\u00f9 semplice per spiegarne il funzionamento \u00e8 con un esempio.<\/span><\/p>\n<h5><b>Un esempio di previsione meteo<\/b><\/h5>\n<p><span style=\"font-weight: 400;\">Usiamo un modello di previsioni meteo estremamente semplificato. Supponiamo di voler capire se fra un\u2019ora piover\u00e0 o meno, basandoci su tre semplici fattori: 1) La quantit\u00e0 di nuvole in cielo, 2) La velocit\u00e0 del vento, 3) L\u2019eventuale quantit\u00e0 di pioggia in questo momento. I nostri tre input saranno dei numeri decimali che possono andare da 0 a 1. Ad esempio per il primo fattore, la quantit\u00e0 di nuvole, avremo uno 0 se non c\u2019\u00e8 alcuna nuvola in cielo, uno 0,5 se le aree annuvolate e quelle serene sono equivalenti, fino ad arrivare a 1 nel caso in cui tutto il cielo \u00e8 coperto di nuvole. Quindi possiamo vedere il nostro valore di nuvolosit\u00e0 come la percentuale di cielo coperta da nuvole. Allo stesso modo faremo per gli altri due fattori, quindi il fattore di vento, che sar\u00e0 0 nel caso di assenza totale fino ad arrivare ad 1 nel caso di velocit\u00e0 massima (verr\u00e0 definita a priori una velocit\u00e0 massima a cui assegnare 1 a seconda della zona geografica in cui stiamo facendo le previsioni). Infine assegniamo il valore della quantit\u00e0 di pioggia, 0 nel caso di totale assenza fino a 1 per l\u2019intensit\u00e0 massima. Per tenere l\u2019esempio pi\u00f9 semplice possibile abbiamo un solo risultato e lo chiamiamo <\/span><i><span style=\"font-weight: 400;\">Piove<\/span><\/i><span style=\"font-weight: 400;\">.<\/span><\/p>\n<h5><b>Il livello nascosto<\/b><\/h5>\n<p><span style=\"font-weight: 400;\">Adesso che abbiamo deciso quali sono gli ingressi e le uscite della nostra rete neurale, possiamo procedere a spiegare cosa fa questo fantomatico livello intermedio. Come potete vedere dalla figura, ognuno dei pallini bianchi (che simboleggiano i neuroni) riceve tutti e tre gli input. Quindi ognuno di questi nodi riceve tre numeri compresi tra 0 e 1. La prima cosa che fa \u00e8 assegnare un \u201cpeso\u201d ad ognuno di questi tre valori. Questo significa che definisce una percentuale per ognuno degli input. Poi calcola queste percentuali e le somma. Vediamo un esempio.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Prendiamo questi tre input: <\/span><i><span style=\"font-weight: 400;\">Nuvole <\/span><\/i><span style=\"font-weight: 400;\">= 0,8 ; <\/span><i><span style=\"font-weight: 400;\">Vento <\/span><\/i><span style=\"font-weight: 400;\">= 0,1 ; <\/span><i><span style=\"font-weight: 400;\">Pioggia<\/span><\/i><span style=\"font-weight: 400;\"> = 0,3. Siamo in una situazione di cielo molto nuvoloso, con pochissimo vento e un po\u2019 di pioggia. Il primo nodo decide di dare alla nuvolosit\u00e0 un peso del 35%, al vento un peso del 52% e alla pioggia un peso del 2%. Quindi i valori di input di questo nodo diventeranno: 0,8 x 0,35 = <\/span><b>0,28 <\/b><span style=\"font-weight: 400;\">; 0,1 x 0,52 = <\/span><b>0,052<\/b><span style=\"font-weight: 400;\"> ; 0,3 x 0,02 = <\/span><b>0,006<\/b><span style=\"font-weight: 400;\">. Dopo aver fatto questi calcoli, il nodo somma i tre risultati: 0,28 + 0,052 + 0,006 = <\/span><b>0.338<\/b><span style=\"font-weight: 400;\">. Immagino che vi stiate ponendo due domande, dov\u2019\u00e8 andato a prendere quelle percentuali per calcolare il peso di ogni input? Per quale motivo fa questa cosa? Iniziamo a rispondere alla prima, per la seconda la risposta arriver\u00e0 pi\u00f9 avanti. Queste percentuali sono a caso. Bene, voi direte, gi\u00e0 il tutto sembrava poco intelligente prima, adesso che si inventa i numeri sembra proprio senza senso. In realt\u00e0 possiamo affermare che a questo punto del processo il nostro sistema \u00e8 ignorante, perch\u00e9 non ha ancora utilizzato l\u2019intelligenza per imparare, ma lo far\u00e0.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Il prossimo passaggio consiste nel definire una soglia, cio\u00e8 un valore minimo oltre il quale questa informazione andr\u00e0 avanti oppure no. In questo caso ad esempio possiamo definire che se il risultato del calcolo di un nodo supera 1,5 allora il segnale viene trasmesso oltre, altrimenti si ferma l\u00ec. Anche per questo valore non sappiamo a priori qual \u00e8 quello corretto per ogni nodo, quindi potremmo impostare un numero qualsiasi. Tuttavia in questo caso ho introdotto il risultato di un mio ragionamento nella rete neurale, scegliendo la media della somma degli input. Nel nostro esempio la somma dei tre input pu\u00f2 andare da 0 (quando sono tutti zero) a 3 (quando sono tutti uno). Ho fatto questo per mostrare come sia possibile far partire una rete neurale con dei parametri che hanno gi\u00e0 un senso, quindi figli di una conoscenza e un ragionamento esterni alla rete neurale. Il vantaggio di fare questo \u00e8 semplicemente quello di diminuire il tempo che la rete impiegher\u00e0 per arrivare ai risultati, ma non \u00e8 assolutamente una cosa necessaria. Per ottenere matematicamente il prosieguo o meno dell\u2019informazione, introduciamo una funzione matematica che genera il valore 0 se il risultato del calcolo precedente \u00e8 minore di 1,5 oppure genera un 1 nel caso il risultato \u00e8 maggiore di questa soglia. Quindi dal nodo uscir\u00e0 uno 0 o un 1.<\/span><\/p>\n<h5><b>I risultati del pensiero artificiale<\/b><\/h5>\n<p><span style=\"font-weight: 400;\">Ora siamo all\u2019ultimo livello, quello dei risultati. Ogni nodo centrale \u00e8 collegato a quello del risultato, che abbiamo chiamato <\/span><i><span style=\"font-weight: 400;\">Piove<\/span><\/i><span style=\"font-weight: 400;\">. Questo nodo riceve uno 0 o un 1 da tutti i nodi centrali, esattamente come prima, applica un peso ad ogni valore in arrivo e ha un valore di soglia, sotto al quale la stessa funzione matematica di prima generer\u00e0 uno 0 e sopra generer\u00e0 un 1. Quindi niente di diverso rispetto al livello precedente. Eravamo rimasti che il primo nodo del livello centrale aveva calcolato il valore 0,338, che \u00e8 minore di 1,5, quindi ha trasmesso al nodo dei risultati uno 0. Pertanto quest\u2019ultimo ha ricevuto uno 0 dal primo nodo centrale, diciamo che gli applica un peso del 71%, quindi ottiene 0 x 0.71 = 0. Allo stesso modo ha ricevuto i valori dagli altri due nodi centrali, quindi ipotizziamo gli altri valori con il loro peso e facciamo la stessa somma che abbiamo fatto per i nodi centrali: 0 x 0,71 + 1 x 0,27 + 1 x 0,95 = <\/span><b>1,22<\/b><span style=\"font-weight: 400;\">. In questo caso, senza fare nessun ragionamento, decidiamo che la soglia di questo nodo \u00e8 2, quindi essendo 1,22 minore di 2 la nostra funzione matematica generer\u00e0 uno <\/span><b>0<\/b><span style=\"font-weight: 400;\">. Cosa significa che il nodo del risultato <\/span><i><span style=\"font-weight: 400;\">Piove <\/span><\/i><span style=\"font-weight: 400;\">\u00e8 uguale a zero? Decidiamo noi cosa significa, e diciamo che se il valore \u00e8 0 allora tra un ora non piover\u00e0, mentre se \u00e8 1 significa che tra un ora piover\u00e0. In questo esempio la nostra rete neurale ci ha detto che la previsione \u00e8 che non piover\u00e0. Se il processo finisse qui avrebbe lo stesso valore di lanciare una moneta e decidere che testa significa che piover\u00e0 e croce no, perci\u00f2 adesso dobbiamo rendere la nostra rete neurale capace di imparare.<\/span><\/p>\n<h3><b>Il machine learning (l\u2019apprendimento della macchina)<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Per permettere alla rete neurale di apprendere quali relazioni ci sono tra le informazioni in ingresso e i risultati, abbiamo bisogno di dati reali. Nel nostro esempio dobbiamo raccogliere i dati della nuvolosit\u00e0, della velocit\u00e0 del vento e dell\u2019intensit\u00e0 della pioggia per un certo periodo di tempo. Con queste informazioni abbiamo sia gli input che i risultati, perch\u00e9, se rileviamo i dati ogni ora, sappiamo che l\u2019intensit\u00e0 di pioggia ad un certo orario \u00e8 quello che avrei dovuto prevedere un\u2019ora prima, quindi vado a correlarlo ai tre parametri dell\u2019ora precedente. Nel nostro caso molto semplice il risultato non \u00e8 nemmeno l\u2019intensit\u00e0, ma semplicemente la presenza o l\u2019assenza di pioggia. Una volta che ho un buon numero di dati (ovviamente pi\u00f9 \u00e8 grande e pi\u00f9 saranno attendibili le previsioni), applico alla rete neurale quella che viene chiamata retropropagazione dell\u2019errore.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Detto in altre parole, non \u00e8 altro che una sorta di apprendimento per tentativi. Quando la rete lavora sulla serie di dati storici, pu\u00f2 fare un confronto tra i risultati da lei ottenuti e quelli reali. In generale tra i due valori ci sar\u00e0 una differenza, quindi un errore. Lo scopo dell\u2019apprendimento \u00e8 lo stesso per un essere umano, smettere di commettere errori, o meglio, ridurli il pi\u00f9 possibile. Nel nostro esempio molto semplificato la rete neurale potrebbe calcolare uno 0 quando il risultato corretto doveva essere un 1, quindi assenza di pioggia quando in realt\u00e0 ha piovuto (e viceversa). Ipotizziamo che su 100 misurazioni reali, in 30 casi il risultato \u00e8 corretto, mentre nei restanti 70 \u00e8 sbagliato. La rete neurale pu\u00f2 modificare i parametri che abbiamo visto prima per ridurre la percentuale di errori: il peso degli input e la soglia che determina se l\u2019uscita dal nodo \u00e8 0 o 1.<\/span><\/p>\n<h5><b>Come ottimizzare i parametri<\/b><\/h5>\n<div id=\"attachment_1498\" style=\"width: 436px\" class=\"wp-caption alignleft\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1498\" class=\" wp-image-1498\" src=\"https:\/\/www.ipscloudsystem.com\/wp-content\/uploads\/2020\/05\/stochastic_gradient_descent.jpg\" alt=\"Esempio di funzione che rappresenta l\u2019errore del risultato in relazione ai pesi e alle soglie, cio\u00e8 ai parametri che la rete neurale pu\u00f2 variare.\" width=\"426\" height=\"347\" srcset=\"https:\/\/www.ipscloudsystem.com\/wp-content\/uploads\/2020\/05\/stochastic_gradient_descent.jpg 478w, https:\/\/www.ipscloudsystem.com\/wp-content\/uploads\/2020\/05\/stochastic_gradient_descent-300x244.jpg 300w, https:\/\/www.ipscloudsystem.com\/wp-content\/uploads\/2020\/05\/stochastic_gradient_descent-450x366.jpg 450w\" sizes=\"auto, (max-width: 426px) 100vw, 426px\" \/><p id=\"caption-attachment-1498\" class=\"wp-caption-text\">Esempio di funzione che rappresenta l\u2019errore del risultato in relazione ai pesi e alle soglie, cio\u00e8 ai parametri che la rete neurale pu\u00f2 variare.<\/p><\/div>\n<p><span style=\"font-weight: 400;\">Una prima ipotesi \u00e8 quella di continuare a modificare questi valori per ogni nodo in modo casuale finch\u00e9 l\u2019errore scende sotto un certo livello che riteniamo accettabile, cos\u00ec facendo avremmo una rete neurale che ha imparato quali sono le correlazioni tra input e risultati. Questo sistema forse potrebbe anche funzionare per il nostro esempio composto da una manciata di neuroni, ma pensate ad una rete fatta da centinaia di migliaia di nodi, sicuramente non ci basterebbe una vita intera per vedere il risultato, non solo, probabilmente andrebbe oltre la durata dell\u2019universo dalla sua nascita ad oggi. Allora dobbiamo pensare a metodi pi\u00f9 furbi per trovare i parametri corretti. Possiamo usare una funzione matematica che contiene i nostri parametri e rappresenta il nostro errore, e quello che dobbiamo fare \u00e8 trovare dove \u00e8 minima (e quindi dove l\u2019errore \u00e8 minimo). Nell\u2019immagine vediamo un esempio di funzione dell\u2019errore in due variabili, quindi una superficie curva con dei massimi e dei minimi (cime ed avvallamenti). Quello che dobbiamo fare \u00e8 modificare i nostri parametri per arrivare sul fondo dell\u2019avvallamento pi\u00f9 basso. In questo caso ipotizziamo che con i parametri iniziali, che causano un errore del 70%, siamo nel punto <\/span><i><span style=\"font-weight: 400;\">A<\/span><\/i><span style=\"font-weight: 400;\">. Dobbiamo trovare la strada che nel minor tempo possibile ci faccia arrivare al punto <\/span><i><span style=\"font-weight: 400;\">B<\/span><\/i><span style=\"font-weight: 400;\">, dove troviamo i parametri che danno l\u2019errore minimo e rendono la nostra rete capace di fare questa previsione meteo. Per fare questo ci sono metodi matematici molto efficaci, come quello chiamato <\/span><a href=\"https:\/\/it.wikipedia.org\/wiki\/Discesa_stocastica_del_gradiente\" target=\"_blank\" rel=\"noopener noreferrer\"><i><span style=\"font-weight: 400;\">discesa stocastica del gradiente<\/span><\/i><\/a><span style=\"font-weight: 400;\">. Comprendere questi metodi implica un approfondimento matematico corposo e lo scopo di questo post \u00e8 quello di spiegare il concetto generale. Ho messo il link di Wikipedia per i lettori pi\u00f9 curiosi e caparbi che desiderano addentrarsi nell\u2019argomento.<\/span><\/p>\n<h5><b>Reti pi\u00f9 complesse<\/b><\/h5>\n<div id=\"attachment_2506\" style=\"width: 501px\" class=\"wp-caption alignright\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2506\" class=\" wp-image-2506\" src=\"https:\/\/www.ipscloudsystem.com\/wp-content\/uploads\/2020\/09\/semplice_rete_neurale_2500_inputs-1.jpg\" alt=\"Esempio di una rete per il riconoscimento di cifre scritte a mano con una risoluzione di 50x50 pixel\" width=\"491\" height=\"414\" srcset=\"https:\/\/www.ipscloudsystem.com\/wp-content\/uploads\/2020\/09\/semplice_rete_neurale_2500_inputs-1.jpg 1200w, https:\/\/www.ipscloudsystem.com\/wp-content\/uploads\/2020\/09\/semplice_rete_neurale_2500_inputs-1-300x253.jpg 300w, https:\/\/www.ipscloudsystem.com\/wp-content\/uploads\/2020\/09\/semplice_rete_neurale_2500_inputs-1-1030x869.jpg 1030w, https:\/\/www.ipscloudsystem.com\/wp-content\/uploads\/2020\/09\/semplice_rete_neurale_2500_inputs-1-768x648.jpg 768w, https:\/\/www.ipscloudsystem.com\/wp-content\/uploads\/2020\/09\/semplice_rete_neurale_2500_inputs-1-705x595.jpg 705w\" sizes=\"auto, (max-width: 491px) 100vw, 491px\" \/><p id=\"caption-attachment-2506\" class=\"wp-caption-text\">Esempio di una rete per il riconoscimento di cifre scritte a mano con una risoluzione di 50&#215;50 pixel, ogni input rappresenta un pixel.<\/p><\/div>\n<p><span style=\"font-weight: 400;\">Adesso la nostra rete ha i parametri corretti, quindi ha imparato quali sono le relazioni tra gli input e i risultati ed \u00e8 in grado di prevedere se tra un\u2019ora piover\u00e0 con un errore contenuto. Questo esempio \u00e8 estremamente semplificato, in realt\u00e0 le reti neurali possono gestire un numero di input molto pi\u00f9 elevato e anche i risultati possono essere formati da pi\u00f9 neuroni. Il livello intermedio pu\u00f2 essere composto da pi\u00f9 livelli, dove ognuno fa una parte del lavoro e passa il risultato parziale al livello successivo. Facciamo l\u2019esempio di una rete che riconosce i numeri scritti a mano, diciamo dove una singola cifra \u00e8 un\u2019immagine composta da 50 x 50 pixel, avrebbe quindi 50 x 50 = <\/span><b>2500 valori in input<\/b><span style=\"font-weight: 400;\">. Ipotizziamo tre livelli intermedi composti ognuno da 1700 neuroni e 10 per i risultati (le dieci possibili cifre da 0 a 9), sarebbero in totale <\/span><b>5110 neuroni<\/b><span style=\"font-weight: 400;\">. Proviamo a calcolare quanti parametri ci sarebbero da ottimizzare con ogni neurone di un livello connesso a tutti i neuroni del livello precedente: 1700 x 2500 (pesi) + 1700 (soglie) + 1700 x 1700 (pesi) + 1700 (soglie) + 1700 x 1700 (pesi) + 1700 (soglie) + 10 x 1700 (pesi) + 10 (soglie) = <\/span><b>10 milioni di parametri <\/b><span style=\"font-weight: 400;\">circa. Un ultimo punto da rimarcare \u00e8 che oltre all\u2019aumento dei neuroni e delle connessioni, le reti neurali artificiali possono lavorare insieme ad altri algoritmi, creando un sistema ibrido pi\u00f9 efficiente.<\/span><\/p>\n<h3><b>Perch\u00e9 la dimensione fa la forza<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Torniamo un attimo alla domanda che ci siamo posti all\u2019inizio. Adesso che abbiamo un\u2019idea del principio di funzionamento di una rete neurale, possiamo anche intuire perch\u00e9 un numero di neuroni maggiore comporta capacit\u00e0 maggiori. In realt\u00e0 dovremmo parlare anche di numero di connessioni. Perch\u00e9 grazie a loro \u00e8 possibile avere mix anche molto complessi di input e quindi la possibilit\u00e0 di manipolare in modo pi\u00f9 raffinato ci\u00f2 che entra in un neurone. In sostanza dobbiamo pensare che un neurone fa un\u2019operazione estremamente semplice, quindi se vogliamo ottenere una capacit\u00e0 complessa, la dobbiamo suddividere in un certo numero di operazioni elementari, che, combinate insieme, riusciranno a dare il risultato. Se ho tanti valori in ingresso, come nell\u2019esempio dell\u2019immagine del numero scritto a mano, per poterli gestire tutti e non perdere informazioni, il numero di neuroni deve essere elevato. Proviamo ad esagerare e mettere un solo neurone nel livello intermedio, gli arriveranno tutte insieme le informazioni dei 2500 pixel. Lui potr\u00e0 solo variare i loro pesi prima di sommarle tutte, in questo modo per\u00f2 avr\u00e0 solo un valore che sar\u00e0 una sorta di media di tutti i singoli valori che non dice proprio nulla sull\u2019immagine. Se invece ho pi\u00f9 neuroni, il primo potr\u00e0 dare pi\u00f9 peso solo a certi pixel e mandare avanti quell\u2019informazione, il secondo ad altri, e cos\u00ec via. In questo modo l\u2019informazione non si perde e viene sempre pi\u00f9 elaborata ad ogni passaggio fino ad arrivare all\u2019ultimo livello, quello dei risultati, dove il neurone corrispondente alla cifra riconosciuta far\u00e0 uscire il valore 1. Questa suddivisione di compiti tra neuroni viene ottenuta con la fase di apprendimento e la relativa ottimizzazione dei parametri come abbiamo visto nel paragrafo precedente.<\/span><\/p>\n<h5><b>Mancanza di intelligenza o di apprendimento?<\/b><\/h5>\n<p><span style=\"font-weight: 400;\">Facciamo questo esempio sul cervello umano. Siete andati all&#8217;estero, in un paese del quale non conoscete assolutamente la lingua. Una persona vi si avvicina e vi parla in questa lingua, il vostro cervello elabora tutte le informazioni sonore ricevute dalle orecchie, ogni neurone viene o meno attivato dall\u2019insieme di impulsi elettrici e a seconda della soglia manda avanti o meno l\u2019informazione ai neuroni successivi e cos\u00ec fino ai risultati. Ma i risultati non avranno senso, saranno solo un guazzabuglio di suoni sconosciuti, sebbene il vostro cervello abbia fatto lo stesso lavoro che fa sempre. La differenza rispetto a quando ascoltiamo un dialogo in una lingua conosciuta \u00e8 che in questo caso \u00e8 mancata la parte di apprendimento, dove tutti i parametri vengono settati per elaborare gli input e dare un risultato utile. Anche in questo caso tutta <\/span><span style=\"font-weight: 400;\">l&#8217;informazione<\/span><span style=\"font-weight: 400;\"> proveniente dalla persona che vi <\/span><span style=\"font-weight: 400;\">parlava<\/span><span style=\"font-weight: 400;\"> \u00e8 andata persa, ma al contrario <\/span><span style=\"font-weight: 400;\">dell&#8217;esempio<\/span><span style=\"font-weight: 400;\"> del singolo neurone, non poteva elaborare da solo le informazioni di 2500 pixel (mancanza di intelligenza), in questa situazione il numero di neuroni sarebbe stato sufficiente, ma \u00e8 mancata la fase precedente di apprendimento.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Nel prossimo post parleremo di quali risultati concreti si possono ottenere con una rete neurale artificiale e delle sue principali applicazioni pratiche con gli enormi benefici che porta.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vista dall\u2019esterno, una rete neurale artificiale \u00e8 un software eseguito da un computer. La particolarit\u00e0 rispetto al resto dei programmi \u00e8 la sua capacit\u00e0 di apprendere quali sono le relazioni tra i dati in ingresso e i dati in uscita (i risultati), questo attraverso una struttura logica di base che non cambia al variare dei [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":1440,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[101,102,112,104],"class_list":["post-1438","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-ia","tag-intelligenza-artificiale","tag-machine-learning","tag-reti-neurali"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.1.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Reti neurali artificiali e Machine learning - IPS Cloud<\/title>\n<meta name=\"description\" content=\"Cos&#039;\u00e8 una rete neurale artificiale? Capiamo quali sono i suoi principi di funzionamento e in che modo riesce ad apprendere.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.ipscloudsystem.com\/it\/reti-neurali-artificiali-e-machine-learning\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Reti neurali artificiali e Machine learning - IPS Cloud\" \/>\n<meta property=\"og:description\" content=\"Cos&#039;\u00e8 una rete neurale artificiale? Capiamo quali sono i suoi principi di funzionamento e in che modo riesce ad apprendere.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.ipscloudsystem.com\/it\/reti-neurali-artificiali-e-machine-learning\/\" \/>\n<meta property=\"og:site_name\" content=\"IPS Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2020-09-16T12:24:19+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-09-16T15:34:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.ipscloudsystem.com\/wp-content\/uploads\/2020\/05\/reti_neurali_IPS.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"646\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"CIE\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"CIE\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.ipscloudsystem.com\/it\/reti-neurali-artificiali-e-machine-learning\/\",\"url\":\"https:\/\/www.ipscloudsystem.com\/it\/reti-neurali-artificiali-e-machine-learning\/\",\"name\":\"Reti neurali artificiali e Machine learning - IPS Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.ipscloudsystem.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.ipscloudsystem.com\/it\/reti-neurali-artificiali-e-machine-learning\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.ipscloudsystem.com\/it\/reti-neurali-artificiali-e-machine-learning\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.ipscloudsystem.com\/wp-content\/uploads\/2020\/05\/reti_neurali_IPS.jpg\",\"datePublished\":\"2020-09-16T12:24:19+00:00\",\"dateModified\":\"2020-09-16T15:34:21+00:00\",\"author\":{\"@id\":\"https:\/\/www.ipscloudsystem.com\/#\/schema\/person\/046f4c0c0dec8a6396b682bdfe28ed6f\"},\"description\":\"Cos'\u00e8 una rete neurale artificiale? Capiamo quali sono i suoi principi di funzionamento e in che modo riesce ad apprendere.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.ipscloudsystem.com\/it\/reti-neurali-artificiali-e-machine-learning\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.ipscloudsystem.com\/it\/reti-neurali-artificiali-e-machine-learning\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/www.ipscloudsystem.com\/it\/reti-neurali-artificiali-e-machine-learning\/#primaryimage\",\"url\":\"https:\/\/www.ipscloudsystem.com\/wp-content\/uploads\/2020\/05\/reti_neurali_IPS.jpg\",\"contentUrl\":\"https:\/\/www.ipscloudsystem.com\/wp-content\/uploads\/2020\/05\/reti_neurali_IPS.jpg\",\"width\":1200,\"height\":646,\"caption\":\"Neural Networks and Machine Learning - IPS Cloud\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.ipscloudsystem.com\/it\/reti-neurali-artificiali-e-machine-learning\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.ipscloudsystem.com\/it\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Reti neurali artificiali e Machine learning\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.ipscloudsystem.com\/#website\",\"url\":\"https:\/\/www.ipscloudsystem.com\/\",\"name\":\"IPS Cloud\",\"description\":\"Industria Digitale e Supervisione da Remoto\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.ipscloudsystem.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.ipscloudsystem.com\/#\/schema\/person\/046f4c0c0dec8a6396b682bdfe28ed6f\",\"name\":\"CIE\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/www.ipscloudsystem.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/978fce6afe2c491beb78438e16c22f1c0969e1fc4e8912b19cabc37519aaa863?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/978fce6afe2c491beb78438e16c22f1c0969e1fc4e8912b19cabc37519aaa863?s=96&d=mm&r=g\",\"caption\":\"CIE\"},\"url\":\"https:\/\/www.ipscloudsystem.com\/it\/author\/renakap6ec\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Reti neurali artificiali e Machine learning - IPS Cloud","description":"Cos'\u00e8 una rete neurale artificiale? Capiamo quali sono i suoi principi di funzionamento e in che modo riesce ad apprendere.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.ipscloudsystem.com\/it\/reti-neurali-artificiali-e-machine-learning\/","og_locale":"it_IT","og_type":"article","og_title":"Reti neurali artificiali e Machine learning - IPS Cloud","og_description":"Cos'\u00e8 una rete neurale artificiale? Capiamo quali sono i suoi principi di funzionamento e in che modo riesce ad apprendere.","og_url":"https:\/\/www.ipscloudsystem.com\/it\/reti-neurali-artificiali-e-machine-learning\/","og_site_name":"IPS Cloud","article_published_time":"2020-09-16T12:24:19+00:00","article_modified_time":"2020-09-16T15:34:21+00:00","og_image":[{"width":1200,"height":646,"url":"https:\/\/www.ipscloudsystem.com\/wp-content\/uploads\/2020\/05\/reti_neurali_IPS.jpg","type":"image\/jpeg"}],"author":"CIE","twitter_card":"summary_large_image","twitter_misc":{"Scritto da":"CIE","Tempo di lettura stimato":"14 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.ipscloudsystem.com\/it\/reti-neurali-artificiali-e-machine-learning\/","url":"https:\/\/www.ipscloudsystem.com\/it\/reti-neurali-artificiali-e-machine-learning\/","name":"Reti neurali artificiali e Machine learning - IPS Cloud","isPartOf":{"@id":"https:\/\/www.ipscloudsystem.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.ipscloudsystem.com\/it\/reti-neurali-artificiali-e-machine-learning\/#primaryimage"},"image":{"@id":"https:\/\/www.ipscloudsystem.com\/it\/reti-neurali-artificiali-e-machine-learning\/#primaryimage"},"thumbnailUrl":"https:\/\/www.ipscloudsystem.com\/wp-content\/uploads\/2020\/05\/reti_neurali_IPS.jpg","datePublished":"2020-09-16T12:24:19+00:00","dateModified":"2020-09-16T15:34:21+00:00","author":{"@id":"https:\/\/www.ipscloudsystem.com\/#\/schema\/person\/046f4c0c0dec8a6396b682bdfe28ed6f"},"description":"Cos'\u00e8 una rete neurale artificiale? Capiamo quali sono i suoi principi di funzionamento e in che modo riesce ad apprendere.","breadcrumb":{"@id":"https:\/\/www.ipscloudsystem.com\/it\/reti-neurali-artificiali-e-machine-learning\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.ipscloudsystem.com\/it\/reti-neurali-artificiali-e-machine-learning\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/www.ipscloudsystem.com\/it\/reti-neurali-artificiali-e-machine-learning\/#primaryimage","url":"https:\/\/www.ipscloudsystem.com\/wp-content\/uploads\/2020\/05\/reti_neurali_IPS.jpg","contentUrl":"https:\/\/www.ipscloudsystem.com\/wp-content\/uploads\/2020\/05\/reti_neurali_IPS.jpg","width":1200,"height":646,"caption":"Neural Networks and Machine Learning - IPS Cloud"},{"@type":"BreadcrumbList","@id":"https:\/\/www.ipscloudsystem.com\/it\/reti-neurali-artificiali-e-machine-learning\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.ipscloudsystem.com\/it\/"},{"@type":"ListItem","position":2,"name":"Reti neurali artificiali e Machine learning"}]},{"@type":"WebSite","@id":"https:\/\/www.ipscloudsystem.com\/#website","url":"https:\/\/www.ipscloudsystem.com\/","name":"IPS Cloud","description":"Industria Digitale e Supervisione da Remoto","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.ipscloudsystem.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Person","@id":"https:\/\/www.ipscloudsystem.com\/#\/schema\/person\/046f4c0c0dec8a6396b682bdfe28ed6f","name":"CIE","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/www.ipscloudsystem.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/978fce6afe2c491beb78438e16c22f1c0969e1fc4e8912b19cabc37519aaa863?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/978fce6afe2c491beb78438e16c22f1c0969e1fc4e8912b19cabc37519aaa863?s=96&d=mm&r=g","caption":"CIE"},"url":"https:\/\/www.ipscloudsystem.com\/it\/author\/renakap6ec\/"}]}},"_links":{"self":[{"href":"https:\/\/www.ipscloudsystem.com\/it\/wp-json\/wp\/v2\/posts\/1438","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ipscloudsystem.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ipscloudsystem.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ipscloudsystem.com\/it\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ipscloudsystem.com\/it\/wp-json\/wp\/v2\/comments?post=1438"}],"version-history":[{"count":101,"href":"https:\/\/www.ipscloudsystem.com\/it\/wp-json\/wp\/v2\/posts\/1438\/revisions"}],"predecessor-version":[{"id":2626,"href":"https:\/\/www.ipscloudsystem.com\/it\/wp-json\/wp\/v2\/posts\/1438\/revisions\/2626"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ipscloudsystem.com\/it\/wp-json\/wp\/v2\/media\/1440"}],"wp:attachment":[{"href":"https:\/\/www.ipscloudsystem.com\/it\/wp-json\/wp\/v2\/media?parent=1438"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ipscloudsystem.com\/it\/wp-json\/wp\/v2\/categories?post=1438"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ipscloudsystem.com\/it\/wp-json\/wp\/v2\/tags?post=1438"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}