Pro e Contro Dell'architettura di Rete Neurale

Sommario

#1. Cosa sono le reti neurali
#2. Come funziona una rete neurale
#3. Principali tipi di reti neurali
#4. Vantaggi delle reti neurali
#5. Svantaggi delle reti neurali
#6. Breve conclusione

Avete domande?
Alexander Safonov
scrivi all'autore
Merehead è una società di sviluppo leader

Negli ultimi anni, le reti neurali sono diventate una sorta di nuova elettricità, una tecnologia rivoluzionaria che è penetrata in tutte le sfere dell'attività umana. E questo non sorprende, dal momento che le soluzioni tecnologiche basate sulle reti neurali possono svolgere una gamma estremamente ampia di compiti, dal trattamento delle malattie più complesse alla raccomandazione di una serie TV per la sera. Tuttavia, questa tecnologia non è perfetta, ha i suoi pro e contro che devi conoscere e considerare se decidi di creare il tuo prodotto basato su reti neurali.

Cosa sono le reti neurali

Reti neurali (NN) o reti neurali artificiali (ANN) è un nome generico per modelli e programmi matematici basati sul principio di organizzazione e funzionamento delle reti neurali biologiche - reti di neuroni nel cervello umano. La caratteristica principale delle reti neurali artificiali, grazie alla quale sono diventate così popolari, è la capacità di apprendere e agire in base all'esperienza passata, e non solo secondo algoritmi pre-scritti.

Le reti neurali sono spesso percepite come qualcosa di nuovo e rivoluzionario. Tuttavia, gli sviluppi in quest'area iniziarono nella prima metà del secolo scorso, dopo che Warren McCulloch e Walter Pitts nel 1943 riuscirono a creare il primo modello matematico dei principi del neurone. Nel loro lavoro "Representation of Events in Nerve Nets and Finite Automata", gli scienziati hanno descritto sotto forma di funzioni un semplice modello matematico che funziona come un neurone biologico: prende input, lo elabora e restituisce il risultato.

McCulloch-Pitts neuron model

McCulloch - Modello del neurone di Pitts. Fonte

Nel 1957, Frank Rosenblatt, utilizzando il lavoro di Warren McCulloch e Walter Pitts, così come Donald Hebb (proponendo il primo algoritmo di apprendimento), inventò il perceptron, un automa che percepisce e riconosce. E sebbene questo automa sia stato concepito come una macchina, non un programma, si ritiene che sia lui la prima rete neurale artificiale. Allo stesso tempo, il termine stesso "percettrone" iniziò successivamente ad essere usato come sinonimo della più semplice rete neurale artificiale.

La successiva svolta significativa nel campo delle ANN non si è verificata fino a 60 anni dopo: nel 2006, Geoffrey Hinton ha descritto algoritmi di deep learning per ANN multistrato basati sulla macchina Boltzmann ristretta, o RBM (macchina Boltzmann ristretta). Allo stesso tempo, Hinton ha anche formulato il concetto di base dell'addestramento di algoritmi di rete neurale: per ottenere una soluzione pronta e rapida per risolvere un problema specifico, NN deve essere addestrato su molti esempi reali (ad esempio fotografie di vari gatti in pose diverse e su sfondi diversi).

Neural network architecture (left) and deep learning neural network (right). The circles represent artificial neurons, the lines represent the network of connections between them.

Architettura di una rete neurale (a sinistra) e di una rete neurale di deep learning (a destra). I cerchi rappresentano neuroni artificiali, le linee rappresentano la rete di connessioni tra di loro. Fonte

Grazie al deep learning (e ai big data), le ANN sono diventate veramente addestrabili. Quindi, già nel 2012, la rete neurale è stata in grado di superare gli esseri umani nel riconoscimento delle immagini all'interno della competizione ImageNet. E nel 2015 AlphaGo è diventato il primo programma al mondo a battere un giocatore di scacchi professionista senza handicap (incondizionatamente).

Come funziona una rete neurale

L'architettura di una rete neurale artificiale è composta da tre o più livelli: input, output e uno o più nodi nascosti. Attualmente , il deep learning viene utilizzato per impostazione predefinita per creare un NN , quindi di solito ci sono diversi nodi nascosti. Ciascun livello NN è costituito da unità di calcolo ("neuroni") che ricevono dati dal livello precedente, li elaborano eseguendo semplici calcoli su di esso e passano questi dati al livello successivo.

Il livello di input accetta input in diversi formati, come luminosità, contrasto, colore, linee o altre caratteristiche di un'immagine se si tratta di una fotografia. Il livello nascosto è responsabile della ricerca di modelli e funzionalità nascosti attraverso semplici calcoli. Il livello di output, per così dire, riassume tutti i calcoli ed emette una risposta sotto forma di conclusione, azione e/o previsione. Se la risposta è corretta o semplicemente al di sopra di una certa soglia di "correttezza", la rete neurale, per così dire, "amplifica" quei calcoli ("neuroni") che l'hanno data. E viceversa.

Funziona come segue. Supponiamo che tu abbia bisogno di un programma per riconoscere se una foto contiene un cane o un lupo. Quindi la tua rete neurale: analizzerà l'immagine in diversi dettagli usando il livello di input, cercherà segni di cani e gatti tra questi dettagli usando i livelli nascosti e riassumerà (c'è un gatto o un lupo nella foto) usando il livello di output.

A simplified model of artificial neural network operation

Un modello semplificato del funzionamento di una rete neurale artificiale. Fonte

Naturalmente, per addestrare la nostra rete neurale alla ricerca di cani o lupi nelle fotografie, avremo bisogno di un numero enorme di foto con e senza cani e lupi: più ce ne sono, più efficace sarà l'addestramento NN.

Principali tipi di reti neurali

A seconda dell'architettura, le reti neurali artificiali sono suddivise in diversi tipi, che vengono utilizzati per scopi diversi. Di seguito sono riportati i tipi più comuni di reti neurali che molto probabilmente incontrerai se desideri sviluppare la tua soluzione basata su NN.

Perceptron . La più antica rete neurale creata da Frank Rosenblatt nel 1957. È costituito da un solo neurone ed è la forma più semplice di una rete neurale artificiale.

Frank Rosenblatt's Perceptron.

Perceptron di Frank Rosenblatt. Fonte

Reti neurali feedforward . Tali reti sono costituite da un livello di input, un livello di output e uno o più livelli nascosti. E nonostante siano anche chiamati percettron multistrato (MLP), è importante notare che sono costituiti da neuroni sigmoidi, non da perceptron (i primi sono più bravi nell'elaborazione di problemi non lineari). Le reti neurali feedforward vengono utilizzate per la visione artificiale, l'elaborazione del linguaggio naturale e altre attività simili.

Neural network architecture with direct connection

L'architettura di una rete neurale con feedforward. Fonte

Reti neurali ricorrenti (RNN). Sono identificati da circuiti di feedback. Questo tipo di reti neurali viene utilizzato per compiti ordinali o temporali, ad esempio per prevedere risultati futuri: previsioni del mercato azionario o previsioni di vendita della catena di negozi. Oltre a questo, funzionano bene anche con la traduzione linguistica, l'elaborazione del linguaggio naturale (NLP) o il riconoscimento vocale, motivo per cui sono inclusi in Siri e Google Translate.

The architecture of recurrent neural networks.

Architettura di reti neurali ricorrenti. Fonte

Reti neurali convoluzionali (ConvNets o CNN). Sono costituiti da uno strato convoluzionale, uno strato unito e uno strato completamente connesso (FC). Queste reti neurali utilizzano i principi dell'algebra lineare (come la moltiplicazione di matrici) per trovare schemi nascosti in un'immagine, un video o un audio. Inoltre, le CNN lavorano con tali dati a una velocità incredibile, quindi vengono spesso utilizzate per attività in cui è necessario riconoscere immagini e immagini in tempo reale.

Vantaggi delle reti neurali

Autoapprendimento . Questa è la caratteristica principale e il vantaggio delle reti neurali artificiali, così apprezzate da programmatori e uomini d'affari di tutto il mondo. Devi semplicemente creare un algoritmo di base, quindi fornirgli degli esempi da addestrare (ad esempio, foto di persone, se vuoi che la tua rete neurale cerchi persone in una foto) e guardare i risultati. Allo stesso tempo, l'algoritmo stesso decide come raggiungere l'obiettivo desiderato, trovando spesso soluzioni non ovvie (per le persone).

Inoltre, la rete neurale non è solo autoapprendimento, è progettata per autoapprendere continuamente e migliorarne i risultati. Una volta che il sistema è stato addestrato, il programma o l'applicazione diventano più facili da usare man mano che vengono utilizzati. Ecco perché il sistema di consigli di Google Translate, Netflix o TikTok migliora ogni anno.

Efficiente filtraggio del rumore nei dati . Immagina un luogo ragionevolmente rumoroso, come un mercato o uno stadio. Le persone parlano in giro, la musica suona ad alto volume, le macchine passano da qualche parte e gli uccelli urlano: c'è rumore ovunque, ma nonostante ciò, puoi comunicare tranquillamente con le persone nelle vicinanze. Le tue orecchie raccolgono tonnellate di suoni non necessari, ma il tuo cervello li filtra e percepisce solo ciò che dice il tuo interlocutore. Questa proprietà si trova anche nelle reti neurali artificiali. Dopo l'allenamento, sono in grado di isolare solo le informazioni di cui hanno bisogno da un enorme flusso continuo di dati, ignorando tutti i rumori estranei.

Questa è una funzionalità molto utile se devi cercare modelli in enormi quantità di dati eterogenei, come la ricerca medica non clinica, le previsioni meteorologiche, l'analisi del mercato economico o la traduzione di testi.

Adattarsi al cambiamento . Un altro vantaggio delle reti neurali artificiali è la capacità di adattarsi ai cambiamenti nei dati di input. Per analogia, possiamo fare un esempio con l'aggiornamento delle applicazioni. Diciamo che sei stato offline per molto tempo e durante quel periodo Instagram e TikTok sono stati aggiornati con alcune nuove funzionalità. Dopo aver preso un paio di minuti per leggere le istruzioni, acquisirai familiarità con tutte le nuove funzionalità e continuerai a utilizzare Instagram e TikTok. Lo stesso accadrà con le reti neurali. Dopo un breve periodo di adattamento ai cambiamenti, continuerà a funzionare con la stessa efficienza.

Tolleranza ai guasti . Le soluzioni basate su reti neurali restano operative anche dopo il guasto di parte dei neuroni. Sì, ciò può influire sull'accuratezza e/o sulla velocità dell'algoritmo, ma le sue risposte saranno comunque logiche, razionali e corrette. Questa è una proprietà molto utile se un dispositivo con una rete neurale a bordo deve funzionare in un ambiente aggressivo (zone radioattive, in guerra, in edifici o spazi distrutti).

Grandi opportunità . Un altro vantaggio chiave delle RNA è la loro vasta gamma di applicazioni. Le reti neurali funzionano come un cervello umano, il che significa che una volta addestrate, possono svolgere una varietà di compiti in una varietà di aree, dall'aumento delle conversioni in un negozio online alla ricerca di pianeti simili alla Terra nello spazio. La cosa principale è che ci sono abbastanza serie di dati reali o sintetici per l'allenamento.

Velocità di lavoro . Un altro importante vantaggio delle reti neurali è la loro enorme velocità, sia rispetto agli algoritmi dei computer convenzionali che rispetto al cervello umano. Le reti neurali artificiali non si stancano e non fanno pause pranzo. La velocità del loro lavoro è determinata solo dalla potenza di calcolo a loro disposizione (scheda video, cloud server o data center). Questo di solito significa che emettono una soluzione quasi istantaneamente.

Svantaggi delle reti neurali

Il problema della scatola nera . Forse il difetto più noto di tutti i NN è la loro natura di "scatola nera". In poche parole, non sai come e perché la tua rete neurale arriva a un certo risultato. Ad esempio, quando metti la foto di un gatto in una rete neurale e ti dice che si tratta di un aeroplano, è molto difficile capire cosa lo abbia portato a questa conclusione. Semplicemente non sai cosa sta succedendo all'interno del "cervello" della rete neurale.

Neither the creators of neural networks nor other experts can say how they come to one conclusion or another, so we can say there is a magic going on

Né i creatori di reti neurali né altri specialisti possono dire come arrivano a questa o quella conclusione, quindi possiamo dire che lì avviene la "magia". Fonte

Questo è un grosso problema per imparare come funziona una rete neurale. Ed è anche una grande sfida integrare questa tecnologia in alcune aree di business. Ad esempio, è per questo motivo che molte banche non utilizzano NN per prevedere l'affidabilità creditizia: devono spiegare ai clienti perché non hanno ricevuto un prestito, altrimenti una persona potrebbe sentirsi ingiustamente offesa o addirittura discriminata in base a razza, sesso e / o nazionalità (questi casi con IA sono già accaduti e più di una volta).

Lo stesso vale per siti come YouTube, Facebook, TikTok o Quora. Se un algoritmo di machine learning cancella un account utente, la piattaforma dovrà spiegarne il motivo. È improbabile che sia soddisfatto della frase: "Ce l'ha detto il computer". Questo è pieno di cause legali.

Natura probabilistica delle risposte . Ma non è tutto. Se inserisci un'immagine in una rete neurale e poi le chiedi: "È un gatto, un cane o qualcos'altro?", probabilmente vorrai che la risposta sia: è un gatto, o un cane, o qualcos'altro . Ma in realtà, anche una rete neurale molto ben addestrata non produrrà risultati così puliti. Molto probabilmente, sarà qualcosa del tipo: gatto - 0,97, cane - 0,01, qualcos'altro - 0,02. Questi risultati possono essere interpretati come probabilità. Nel nostro caso, ciò significa che la probabilità che la foto mostri un gatto è del 97%, per un cane questa probabilità è dell'1%, per qualcos'altro - 2%.

An example of a black response of an artificial neural network.

Un esempio di risposta "scatola nera" di una rete neurale artificiale. Fonte

Quando si hanno funzioni interpretate dall'uomo, è molto più facile capire la causa dell'errore. In confronto, algoritmi come gli alberi decisionali sono facili da interpretare. Questo è importante perché in molte aree l'interpretabilità è fondamentale. Puoi immaginare il CEO di una grande azienda, che prende milioni di dollari di decisioni, che deve prendere una decisione importante, ma non può, perché l'IA non ha dato una risposta definitiva a una domanda apparentemente semplice. Oppure puoi immaginare un generale che deve decidere un attacco missilistico, ma non può, poiché la foto con una probabilità dell'1% o del 10% potrebbe non essere terroristi, ma bambini piccoli.

Durata dello sviluppo . Sebbene ci siano molte librerie come NeuroLab, ffnet, SciPy, TensorFlow, Scikit-Neural Network, Lasagne, pyrenn, NumPy, Spark MLlib, Scikit-Learn, Theano, PyTorch, Keras che aiutano a risparmiare tempo e fatica nello sviluppo di reti neurali artificiali , non sono sempre applicabili. Ad esempio, se è necessario creare una soluzione nuova o piuttosto complessa che richieda un maggiore controllo sui dettagli dell'algoritmo.

An algorithm for developing artificial neural networks.

Algoritmo per lo sviluppo di reti neurali artificiali. Fonte

Inoltre, più il tuo compito è unico e complesso , più tempo e risorse dovrai spendere. E non si tratta solo di scrivere il codice dell'algoritmo della rete neurale, ma anche di raccogliere dati per il suo addestramento. Spesso questi dati sono molto difficili da raccogliere, ad esempio se si tratta di informazioni su incidenti stradali o sul funzionamento di un reattore nucleare in condizioni critiche. In alcuni casi, il processo di sviluppo può essere accelerato ed economico con l'aiuto di dati sintetici, ma sono tutt'altro che sempre applicabili e tali dati saranno sempre molto condizionali, corrispondenti solo approssimativamente alla realtà.

La quantità di dati . Il prossimo svantaggio delle reti neurali è che la loro formazione di solito richiede molti più dati rispetto ai tradizionali algoritmi di apprendimento automatico. E come abbiamo detto prima, se si tratta di dati unici o difficili da raccogliere, allora questa può essere una seria sfida per gli sviluppatori. E spesso molto di più che scrivere il codice di una rete neurale artificiale.

Ecco perché ora le nuove reti neurali artificiali (soluzioni AI) vengono sviluppate principalmente da grandi aziende (Google, Microsoft, IBM), che non solo hanno molti soldi e hanno accesso a programmatori di alta classe, ma anche a big data. Le piccole e medie imprese non sono il loro concorrente qui.

Computazionalmente costoso . I moderni algoritmi di deep learning basati su reti neurali artificiali richiedono diverse settimane, e talvolta anni, per imparare da zero. Mentre la maggior parte degli algoritmi di apprendimento automatico tradizionali richiedono molto meno tempo per l'addestramento: da alcuni minuti a diverse ore. Ad esempio, una rete neurale con 50 strati sarà molto più lenta di un algoritmo Random Forest (un metodo di apprendimento d'insieme per la classificazione, la regressione e altri problemi) con solo 10 alberi.

Questo complica ancora una volta lo sviluppo di soluzioni basate su reti neurali e complica la loro integrazione nel business, e ancor di più nel settore no profit.

Breve conclusione

Le reti neurali artificiali sono ottime per alcuni compiti e non così buone per altri. Tuttavia, poche persone capiscono quando possono effettivamente apportare valore reale alla tua attività e quando è meglio rivolgersi ad altre opzioni per implementare l'intelligenza artificiale. Merehead è una tale compagnia. Siamo esperti nello sviluppo di soluzioni basate su intelligenza artificiale, machine learning e reti neurali, quindi se hai intenzione di lanciare un progetto simile, contattaci, saremo felici di aiutarti.

Avete domande?

Nome *
Email *
Telefono
Messaggio
Recensione di Merehead. Vleppo è una piattaforma di scambio di risorse digitali per startup basata sul protocollo blockchain di Komodo.

  Categoria: Neural Networks 01/05/2022
Come creare una criptovaluta da zero e avviare una ICO
Probabilmente hai notato quanto il mondo digitale sia cambiato negli ultimi anni. L'industria della criptovaluta, la blockchain e le ICO - sono tutti venuti alla ribalta. In effetti, lo sviluppo e la creazione di bitcoin implica un drammatico allontanamento dalla comunità bancaria centralizzata controllata dai burocrati... verso qualcosa dove la libertà, la semplicità, l'accessibilità e l'anonimato, uniti alle basse commissioni di transazione, sono diventati l'ideologia prevalente. Creare la propria criptovaluta, la blockchain e persino avviare una ICO, sono tutte attività accessibili in questo nuovo mondo coraggioso.
  Categoria: Neural Networks 03/12/2020
Software di Scambio di Criptovaluta e Software di Piattaforma di Trading Bitcoin
Questo articolo ti mostrerà gli elementi principali, i passaggi, le componenti e i minimi particolari per far partire una piattaforma exchange di bitcoin e criptovaluta. Si raccomanda la lettura di questo articolo ad investitori, imprenditori, manager ma anche per cripto-appassionati e commercianti.
  Categoria: Neural Networks 03/12/2020
Script di Scambio di Criptovaluta e Script di Sito Web di Scambio Bitcoin
L'attività exchange di Bitcoin, Ethereum, Litecoin e altre criptovalute e altcoin si sta sviluppando rapidamente non solo di anno in anno, ma anche ad ogni trimestre. Investitori, commercianti, sono tutti seduti ai monitor che guardano con grande aspettative le schede del tasso di cambio. Ma come gestire da soli l’exchange di criptovaluta? Vale la pena considerare l’exchange di criptovaluta in white label, o è meglio pensare di investire e comprare uno script di exchange di criptovaluta/bitcoin? Per sapere su cosa è bene prestare attenzione quando stai per acquistare e scaricare, continua a leggere il nostro articolo.