Blog.

Cos’è il weight in una rete neurale artificiale | Towards Machine Learning


Autore
Andrea Provino
Data
Tempo di lettura
3 minuti
Categoria
machine-learning

weight-loss-function-bias-perceptron-machine-learning-towards-data-science

Per processare che entrano in un neurone artificiale si usano spesso due paraetri: il bias e il weight. Oggi vediamo l’importanza del weight in una rete neurale artificiale! Towards Machine Learning!

Perceptron

Nel 1943 McCulloch and Pitts rappresentarono matematicamente (dunque in modo artificiale) un neurone. Questo modello prese il nome di perceptron.

L’obiettivo era quello di creare un modello artificiale, sufficientemente semplice ma al contempo efficacemente esplicativo, di un neurone biologico.

Nel 1958 Rosenblatt ideò un sistema per allenare il perceptron.

Il perceptron è spesso considerato la più basica forma di una rete neurale artificiale (Artificial neural network), ed è quindi particolarmente utile per fini didattici, come il nostro.

Un perceptron su singolo layer, come quello nell’immagine, agisce da classificatore binario lineare.

Cosa significa? Che lavora con 0 e 1, e produce un output che può essere 0 o 1.

Per computare un output, sono ammesse diverse tipologie di azioni:

  1. somma degli input O = [x1, x2, x3, xn]
  2. applicazione di un’operazione lenare O = [(x1*x2)+x3]

Ed ecco che iniziano le difficoltà.

Ricordi che poco fa abbiamo definito il perceptron come un semplice ed essenziale classificatore binario? Cosa succede se applichiamo un’operazione matematica come il prodotto e lavoriamo con lo zero?

Casini. Succedono casini.

Prendendo in considerazione la seconda tipologia di operazione tra quelle presentate, l’output sarà x3 anche se solo uno tra x1 e x2 è zero.

Tradotto, è possibile incorrere in perdita di informazioni. Spesso, questo non è ammissibile.

Si potrebbe pensare che per eludere il problema sia sufficiente abbandonare la moltiplicazione in favore di una meno problematica somma.

La soluzione è parziale, il problema di fondo resta:

il peso degli input, in termini di importanza non è quantificato.

Il Weight: dare un peso ai dati

Consideriamo un semplice esempio.

Vogliamo creare un perceptron per fare una previsione meteorologica. Definiamo il dato:

  • x1 come indicatore di umidtà: umido (1), non umido (0);
  • x2 sarà invece 1 se indossi un cappello verde e 0 se non lo indossi

Come il buono senso consiglia, x2 non ha valore nella nostra previsione.

Come facciamo però a dire al nostro perceptron che il valore dell’informazione trasmessa da x2 è basso?

Ecco che entra in gioco il weight!

In questo modo, se è umido e indossiamo un cappello verde:

[ex 1] O = x1+w2*x2 = 1+0.1*1 = 1.1 

Oppure, se è umido ma non indossiamo il cappello:

[ex 2] O = x1+w2*x2 = 1+0.1*0 = 1

Così facendo, l’informazione è preservata ma la sua importanza viene ponderata. Dal momento che pesiamo l’informazione, nel senso che diamo più o meno peso al valore di un dato in input, definiamo il parametro weight.

Il Bias: la threshold

In questo precedente post abbiamo visto insieme quale sia l’importanza di avere un parametro come il bias.

Riprendo il discorso e mi collego a quanto detto poco fa per chiarire ulteriormente il concetto di bias!

Se osservi [es 1], puoi notare una stranezza.

Abbiamo detto che il perceptron è un classificatore binario, ma la nostra somma resituisce 1.1 . Come gisutifichiamo questo valore se i soli possibili sono 1 e 0 ?

Che ne dici, impostiamo una threshold? Metti! Metti! E impostiamola!

Quindi:

[ex 3] O = 1 => se (x1 + x2*w2) >= 1
[ex 4] O = 0 => se (x1 + x2*w2) < 1

Ora generalizziamo il tutto:

E semplifichiamo la notazione matematica per chiarificare il tutto:

  • b, comunemente usato in riferimento al bias, è l’opposto della threshold

[fonte]

Taggeddata sciencedeep learningneural network


Ultimi post

Patricia Merkle Trie

Il Practical Algorithm To Retrieve Information Coded In Alphanumeric Merkle Trie, o Patricia Merkle Trie è una struttura dati chiave-valore usatada Ethereum e particolarmente efficiente per il salvataggio e la verifica dell’integrità dell’informazione. In questo post ne studieremo le caratteristiche. Prima di procedere, ci conviene ripassare l’introduzione al Merkle Tree nella quale abbiamo chiarito il […]

Andrea Provino
ethereum-patricia-merkle-tree
Tree Data Structure: cos’è un Merkle Tree

Un Merkle Tree è una struttura dati efficiente per verificare che un dato appartenga a un insieme esteso di elementi. È comunemente impiegato nelle Peer to Peer network in cui la generazione efficiente di prove (proof) contribuisce alla scalabilità della rete. Capire i vantaggi di questa struttura ci tornerà utile nel nostro percorso di esplorazione […]

Andrea Provino
merkle-tree-cover
UTXO: come funziona il modello Unspent Transaction Outputs

Per tenere traccia dei bilanci utente, la blockchain di Bitcoin sfrutta un modello di contabilità definito UTXO o Unspent Transaction Outputs. In questo articolo ne esaminiamo le caratteristiche. Ogni blockchain è dotata di un sistema di contabilità, un meccanismo attraverso cui tenere traccia dei bilanci di ciascun utente. I due grandi modelli di riferimento nel […]

Andrea Provino
bitcoin-utxo
Cos’è Ethereum

Possiamo definire Ethereum come una macchina a stati distribuita che traccia le transizioni di un archivio dati general-purpose (i.e. una memoria in grado di registrare qualsiasi dato esprimibile come coppia di chiave e valore o key-value) all’interno della Ethereum Blockchain. È arrivato il momento di esplorare uno dei progetti tecnologici più innovativi e interessanti degli […]

Andrea Provino
ethereum