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 o cálculo dos 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 continuamente 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
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 o cálculo dos 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 continuamente a cada época.
Solução
Obrigado pelo seu feedback!
single