Blog.

Cosa sono Optimization algorithm e Optimizer | Neural Network & Deep Learning


Autore
Andrea Provino
Data
Tempo di lettura
2 minuti
Categoria
AI, machine-learning

optimization-algoritmh-adam-optimizer-deep-learning-neural-network-data-science-machine-learning-guida-italiano-tutorial-blog

Un optimizer è un Optimization algorithm, ovvero un algoritmo di ottimizzazione che permette d’individuare, attraverso una serie d’iterazioni, quei valori dei weight tali per cui la cost function risulti avere il valore minimo.

Allineiamoci un attimo.

Abbiamo realizzato il nostro primo piccolo neurone artificiale.

Sfruttando Google Colab, importando tensorflow 2 e usando keras abbiamo dato vita a una rete neurale capace di convertire i gradi Celsius in Fahrenheit.

Sulla strada abbiamo rinfrescato il concetto di loss function, passando al modello la mean squared error, e scegliendo Adam come optimizer.

C’è solo un problema.

Cosa diamine è un ottimizzatore?

Optimization algorithm

Ragioniamo insieme.

Il deep learning è un processo iterativo con molteplici parametri da settare propriamente, e metodi da testare.

Il nostro obiettivo è uno solo: generare un modello capace di generalizzare, quindi assicurarci che non sia in overfitting, e con un’alta accuratezza, cioè che abbia la minima differenza possibile tra i valori predetti e quelli reali.

Per ottenere la discrepanza, il delta, tra valori predetti e reali usiamo una loss function misurata su ogni osservazione, che ci permette di calcolare la cost function.

Dobbiamo minimizzare la cost function individuando i valori ottimizzati per ogni weight.

Ecco che entrano in gioco gli algoritmi di ottimizzazione.

Attraverso iterazioni multiple questi algoritmi consentono l’individuazione dei weights che minimizzano la cost function.

Ci piace!

Tra i migliori, e più usati, optimization algortihm troviamo:

  • Adam optimizer
  • SGD, Stochastic gradient descent
  • BGD, Batch Gradient Descent (Vanilla Gradient Descent)
  • mini-batch gradient descent

Abbiamo dato un rapido sguardo al concetto di optimization algorithm e definito la sua collocazione all’interno del processo di deep learning.

Ora è arrivato il momento d’iniziare a fare sul serio.

Rispondiamo insieme alla domanda: cos’è il Gradient Descent?

Ti anticipo che saremo delle mucche viola al pascolo in una montagna nebbiosa!

Qualora volessi approfondire l’Adam Optinizer, e non puoi resistere qualche giorno, consulta questa fonte.

Invece, per non perderti nemmeno un update, e avere acceso ai contenuti riservati ricordati d’iscriverti alla news letter!

In questo post, un caldo benvenuto a Monica, Alberto, Antonio e Luca.

Un caldo abbraccio, Andrea

Taggeddeep learningteoria


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