Desafio: Treinamento do Perceptron
Antes de prosseguir com o treinamento do perceptron, lembre-se de que ele utiliza a função de perda de entropia cruzada binária discutida anteriormente. O conceito-chave final antes de implementar o backpropagation é a fórmula para a derivada dessa função de perda em relação às ativações de saída, an. Abaixo estão as fórmulas para a função de perda e sua derivada:
Ldan=−(ylog(y^)+(1−y)log(1−y^))=y^(1−y^)y^−yonde an=y^
Para verificar se o perceptron está sendo treinado corretamente, o método fit()
também exibe a perda média em cada época. Isso é calculado pela média da perda em todos os exemplos de treinamento naquela época:
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))Por fim, as fórmulas para calcular os gradientes são as seguintes:
dzldWldbldal−1=dal⊙f′l(zl)=dzl⋅(al−1)T=dzl=(Wl)T⋅dzlOs dados de treinamento de exemplo (X_train
) juntamente com os rótulos correspondentes (y_train
) estão armazenados como arrays NumPy no arquivo utils.py
. Além disso, as instâncias das funções de ativação também estão definidas lá:
relu = ReLU()
sigmoid = Sigmoid()
Swipe to start coding
- Calcule os seguintes gradientes:
dz
,d_weights
,d_biases
eda_prev
no métodobackward()
da classeLayer
. - Calcule o
output
do modelo no métodofit()
da classePerceptron
. - Calcule
da
(dan) antes do loop, que é o gradiente da função de perda em relação às ativações de saída. - Calcule
da
e realize a retropropagação no loop, chamando o método apropriado para cada uma das camadas.
Se o treinamento for implementado corretamente, dado o learning rate de 0.01
, a perda deve diminuir progressivamente a cada época.
Solução
Obrigado pelo seu feedback!
single
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Can you explain how the derivative of the binary cross-entropy loss is used in backpropagation?
What is the purpose of printing the average loss at each epoch?
Can you clarify how the gradients are computed using the provided formulas?
Awesome!
Completion rate improved to 4
Desafio: Treinamento do Perceptron
Deslize para mostrar o menu
Antes de prosseguir com o treinamento do perceptron, lembre-se de que ele utiliza a função de perda de entropia cruzada binária discutida anteriormente. O conceito-chave final antes de implementar o backpropagation é a fórmula para a derivada dessa função de perda em relação às ativações de saída, an. Abaixo estão as fórmulas para a função de perda e sua derivada:
Ldan=−(ylog(y^)+(1−y)log(1−y^))=y^(1−y^)y^−yonde an=y^
Para verificar se o perceptron está sendo treinado corretamente, o método fit()
também exibe a perda média em cada época. Isso é calculado pela média da perda em todos os exemplos de treinamento naquela época:
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))Por fim, as fórmulas para calcular os gradientes são as seguintes:
dzldWldbldal−1=dal⊙f′l(zl)=dzl⋅(al−1)T=dzl=(Wl)T⋅dzlOs dados de treinamento de exemplo (X_train
) juntamente com os rótulos correspondentes (y_train
) estão armazenados como arrays NumPy no arquivo utils.py
. Além disso, as instâncias das funções de ativação também estão definidas lá:
relu = ReLU()
sigmoid = Sigmoid()
Swipe to start coding
- Calcule os seguintes gradientes:
dz
,d_weights
,d_biases
eda_prev
no métodobackward()
da classeLayer
. - Calcule o
output
do modelo no métodofit()
da classePerceptron
. - Calcule
da
(dan) antes do loop, que é o gradiente da função de perda em relação às ativações de saída. - Calcule
da
e realize a retropropagação no loop, chamando o método apropriado para cada uma das camadas.
Se o treinamento for implementado corretamente, dado o learning rate de 0.01
, a perda deve diminuir progressivamente a cada época.
Solução
Obrigado pelo seu feedback!
single