Ciao. Complimenti per i tuoi video sul machine learning: molto chiari e ben fatti. Dalle tue spiegazioni e da quello che ho visto in giro sul web ho capito che in una rete con più layer hidden abbiamo vari pesi iniziali random da applicare nei passaggi da sinistra a destra della rete; in tutti i passaggi per la prima epoca i pesi sono random da ogni livello al successivo. Domanda 1: non sarebbe meglio partire con dei pesi random solo nel passaggio da input a primo layer hidden, minimizzare subito la funzione Loss (cioè l’errore) per determinare dei pesi migliori e usare questi pesi (già migliorati) nel successivo layer hidden? Domanda 2: lavorando con i batch (costituiti da più elementi del dataset di training) l’errore da considerare si ottiene come errore medio dei singoli componenti del batch? Scusa se le domande sono poco pertinenti o mal poste… sto iniziando in questi giorni a studiare l’argomento. Grazie
Grazie dei complimenti! Per la 1: non si può calcolare l'errore senza aver calcolato prima l'output completo, quindi i pesi devono essere già decisi tutti per forza prima! Cerca tra i miei video quello sulla backpropagation e sarà più chiaro come funziona matematicamente :) Per la 2: i batch servono solo a far elaborare più immagini (o dati in generale) contemporaneamente, gli errori sono comunque calcolati singolarmente!
@@WiLLyRS89 Grazie della risposta fulminea! Per la 1: Giusto, hai ragione. Ed è corretta la seguente procedura relativamente a un problema di regressione (ad esempio per trovare una funzione lineare y=w1x1+w2x2+…+wnxn per determinare il valore di un immobile tipo Boston housing)? “Ho un dataset di N elementi (magari il dataset è un file CSV, quindi chiamiamoli righe). Do in input alla rete la prima riga del dataset. Trovo l’errore, lo minimizzo e determino dei pesi migliori. Utilizzo poi questi pesi migliori sulla seconda riga del dataset, che ora do in pasto alla rete, e così via, finché non ho esaurito il dataset. Alla fine avrò dei buoni pesi che costituiranno i coefficienti della funzione che descrive il fenomeno” E se la funzione che descrive il fenomeno non è lineare cosa succede? Leggo che le funzioni di attivazione hanno anche il ruolo di introdurre una caratteristica di non linearità… Grazie. Ciao
Si, il procedimento è corretto! Quando hai fatto passare tutte le righe hai concluso un'epoca e puoi ricominciare dalla prima, così quante volte vuoi. Se il problema non è lineare basta usare una funzione di attivazione non lineare, come relu, sigmoid o tanh
Ottima spiegazione. Chiara e pratica. Complimenti.
Bravo!!
Bravo!!
Ciao scusami, ma il valore di attivazione oltre al prodotto scalare tra pesi e ingressi non dovrebbe contenere anche la somma del bias?
Non ricordo il video perché è un po' vecchio, in linea generali sì. Però se il problema è semplice funziona anche senza
Bravo spiegazione molto chiara, avresti un libro da consigliarmi per approfondire?
In università abbiamo usato Neural Networks and Deep Learning di Charu!
@@WiLLyRS89 grazie ;-)
Ciao. Complimenti per i tuoi video sul machine learning: molto chiari e ben fatti.
Dalle tue spiegazioni e da quello che ho visto in giro sul web ho capito che in una rete con più layer hidden abbiamo vari pesi iniziali random da applicare nei passaggi da sinistra a destra della rete; in tutti i passaggi per la prima epoca i pesi sono random da ogni livello al successivo.
Domanda 1: non sarebbe meglio partire con dei pesi random solo nel passaggio da input a primo layer hidden, minimizzare subito la funzione Loss (cioè l’errore) per determinare dei pesi migliori e usare questi pesi (già migliorati) nel successivo layer hidden?
Domanda 2: lavorando con i batch (costituiti da più elementi del dataset di training) l’errore da considerare si ottiene come errore medio dei singoli componenti del batch?
Scusa se le domande sono poco pertinenti o mal poste… sto iniziando in questi giorni a studiare l’argomento.
Grazie
Grazie dei complimenti! Per la 1: non si può calcolare l'errore senza aver calcolato prima l'output completo, quindi i pesi devono essere già decisi tutti per forza prima! Cerca tra i miei video quello sulla backpropagation e sarà più chiaro come funziona matematicamente :)
Per la 2: i batch servono solo a far elaborare più immagini (o dati in generale) contemporaneamente, gli errori sono comunque calcolati singolarmente!
@@WiLLyRS89 Grazie della risposta fulminea!
Per la 1: Giusto, hai ragione.
Ed è corretta la seguente procedura relativamente a un problema di regressione (ad esempio per trovare una funzione lineare y=w1x1+w2x2+…+wnxn per determinare il valore di un immobile tipo Boston housing)?
“Ho un dataset di N elementi (magari il dataset è un file CSV, quindi chiamiamoli righe). Do in input alla rete la prima riga del dataset. Trovo l’errore, lo minimizzo e determino dei pesi migliori. Utilizzo poi questi pesi migliori sulla seconda riga del dataset, che ora do in pasto alla rete, e così via, finché non ho esaurito il dataset. Alla fine avrò dei buoni pesi che costituiranno i coefficienti della funzione che descrive il fenomeno”
E se la funzione che descrive il fenomeno non è lineare cosa succede? Leggo che le funzioni di attivazione hanno anche il ruolo di introdurre una caratteristica di non linearità…
Grazie. Ciao
Si, il procedimento è corretto! Quando hai fatto passare tutte le righe hai concluso un'epoca e puoi ricominciare dalla prima, così quante volte vuoi. Se il problema non è lineare basta usare una funzione di attivazione non lineare, come relu, sigmoid o tanh
Grazie!
Chiarissimo,essenziale. Grazie!