Sfida: Addestramento del Percettrone
Prima di procedere con l'addestramento del percettrone, è importante ricordare che utilizza la funzione di perdita di entropia incrociata binaria discussa in precedenza. L'ultimo concetto chiave prima di implementare la retropropagazione è la formula per la derivata di questa funzione di perdita rispetto alle attivazioni di output, an. Di seguito sono riportate le formule per la funzione di perdita e la sua derivata:
Ldan=−(ylog(y^)+(1−y)log(1−y^))=y^(1−y^)y^−ydove an=y^
Per verificare che il percettrone si stia addestrando correttamente, il metodo fit() stampa anche la perdita media a ogni epoca. Questa viene calcolata facendo la media della perdita su tutti gli esempi di addestramento in quell'epoca:
for epoch in range(epochs):
loss = 0
for i in range(training_data.shape[0]):
loss += -(target * np.log(output) + (1 - target) * np.log(1 - output))
average_loss = loss[0, 0] / training_data.shape[0]
print(f'Loss at epoch {epoch + 1}: {average_loss:.3f}')
L=−N1i=1∑N(yilog(y^i)+(1−yi)log(1−y^i))Infine, le formule per il calcolo dei gradienti sono le seguenti:
dzldWldbldal−1=dal⊙f′l(zl)=dzl⋅(al−1)T=dzl=(Wl)T⋅dzlI dati di addestramento di esempio (X_train) insieme alle etichette corrispondenti (y_train) sono memorizzati come array NumPy nel file utils.py. Inoltre, anche le istanze delle funzioni di attivazione sono definite lì:
relu = ReLU()
sigmoid = Sigmoid()
Swipe to start coding
- Calcolare i seguenti gradienti:
dz,d_weights,d_biaseseda_prevnel metodobackward()della classeLayer. - Calcolare l'
outputdel modello nel metodofit()della classePerceptron. - Calcolare
da(dan) prima del ciclo, che rappresenta il gradiente della funzione di perdita rispetto alle attivazioni di output. - Calcolare
daed eseguire la retropropagazione nel ciclo chiamando il metodo appropriato per ciascuno degli strati.
Se l'addestramento è stato implementato correttamente, dato il learning rate di 0.01, la perdita dovrebbe diminuire costantemente a ogni epoca.
Soluzione
Grazie per i tuoi commenti!
single
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Awesome!
Completion rate improved to 4
Sfida: Addestramento del Percettrone
Scorri per mostrare il menu
Prima di procedere con l'addestramento del percettrone, è importante ricordare che utilizza la funzione di perdita di entropia incrociata binaria discussa in precedenza. L'ultimo concetto chiave prima di implementare la retropropagazione è la formula per la derivata di questa funzione di perdita rispetto alle attivazioni di output, an. Di seguito sono riportate le formule per la funzione di perdita e la sua derivata:
Ldan=−(ylog(y^)+(1−y)log(1−y^))=y^(1−y^)y^−ydove an=y^
Per verificare che il percettrone si stia addestrando correttamente, il metodo fit() stampa anche la perdita media a ogni epoca. Questa viene calcolata facendo la media della perdita su tutti gli esempi di addestramento in quell'epoca:
for epoch in range(epochs):
loss = 0
for i in range(training_data.shape[0]):
loss += -(target * np.log(output) + (1 - target) * np.log(1 - output))
average_loss = loss[0, 0] / training_data.shape[0]
print(f'Loss at epoch {epoch + 1}: {average_loss:.3f}')
L=−N1i=1∑N(yilog(y^i)+(1−yi)log(1−y^i))Infine, le formule per il calcolo dei gradienti sono le seguenti:
dzldWldbldal−1=dal⊙f′l(zl)=dzl⋅(al−1)T=dzl=(Wl)T⋅dzlI dati di addestramento di esempio (X_train) insieme alle etichette corrispondenti (y_train) sono memorizzati come array NumPy nel file utils.py. Inoltre, anche le istanze delle funzioni di attivazione sono definite lì:
relu = ReLU()
sigmoid = Sigmoid()
Swipe to start coding
- Calcolare i seguenti gradienti:
dz,d_weights,d_biaseseda_prevnel metodobackward()della classeLayer. - Calcolare l'
outputdel modello nel metodofit()della classePerceptron. - Calcolare
da(dan) prima del ciclo, che rappresenta il gradiente della funzione di perdita rispetto alle attivazioni di output. - Calcolare
daed eseguire la retropropagazione nel ciclo chiamando il metodo appropriato per ciascuno degli strati.
Se l'addestramento è stato implementato correttamente, dato il learning rate di 0.01, la perdita dovrebbe diminuire costantemente a ogni epoca.
Soluzione
Grazie per i tuoi commenti!
single