Desafío: Entrenamiento del Perceptrón
Antes de proceder con el entrenamiento del perceptrón, tenga en cuenta que utiliza la función de pérdida de entropía cruzada binaria discutida anteriormente. El último concepto clave antes de implementar la retropropagación es la fórmula para la derivada de esta función de pérdida con respecto a las activaciones de salida, an. A continuación se muestran las fórmulas para la función de pérdida y su derivada:
Ldan=−(ylog(y^)+(1−y)log(1−y^))=y^(1−y^)y^−ydonde an=y^
Para verificar que el perceptrón se está entrenando correctamente, el método fit()
también imprime la pérdida promedio en cada época. Esto se calcula promediando la pérdida sobre todos los ejemplos de entrenamiento en esa é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))Finalmente, las fórmulas para calcular los gradientes son las siguientes:
dzldWldbldal−1=dal⊙f′l(zl)=dzl⋅(al−1)T=dzl=(Wl)T⋅dzlLos datos de entrenamiento de ejemplo (X_train
) junto con las etiquetas correspondientes (y_train
) se almacenan como arreglos de NumPy en el archivo utils.py
. Además, las instancias de las funciones de activación también se definen allí:
relu = ReLU()
sigmoid = Sigmoid()
Swipe to start coding
- Calcular los siguientes gradientes:
dz
,d_weights
,d_biases
yda_prev
en el métodobackward()
de la claseLayer
. - Calcular la
output
del modelo en el métodofit()
de la clasePerceptron
. - Calcular
da
(dan) antes del bucle, que es el gradiente de la función de pérdida respecto a las activaciones de salida. - Calcular
da
y realizar la retropropagación en el bucle llamando al método correspondiente para cada una de las capas.
Si la implementación del entrenamiento es correcta, dado el valor de la tasa de aprendizaje 0.01
, la pérdida debería disminuir de forma constante en cada época.
Solución
¡Gracias por tus comentarios!
single
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
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
Desafío: Entrenamiento del Perceptrón
Desliza para mostrar el menú
Antes de proceder con el entrenamiento del perceptrón, tenga en cuenta que utiliza la función de pérdida de entropía cruzada binaria discutida anteriormente. El último concepto clave antes de implementar la retropropagación es la fórmula para la derivada de esta función de pérdida con respecto a las activaciones de salida, an. A continuación se muestran las fórmulas para la función de pérdida y su derivada:
Ldan=−(ylog(y^)+(1−y)log(1−y^))=y^(1−y^)y^−ydonde an=y^
Para verificar que el perceptrón se está entrenando correctamente, el método fit()
también imprime la pérdida promedio en cada época. Esto se calcula promediando la pérdida sobre todos los ejemplos de entrenamiento en esa é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))Finalmente, las fórmulas para calcular los gradientes son las siguientes:
dzldWldbldal−1=dal⊙f′l(zl)=dzl⋅(al−1)T=dzl=(Wl)T⋅dzlLos datos de entrenamiento de ejemplo (X_train
) junto con las etiquetas correspondientes (y_train
) se almacenan como arreglos de NumPy en el archivo utils.py
. Además, las instancias de las funciones de activación también se definen allí:
relu = ReLU()
sigmoid = Sigmoid()
Swipe to start coding
- Calcular los siguientes gradientes:
dz
,d_weights
,d_biases
yda_prev
en el métodobackward()
de la claseLayer
. - Calcular la
output
del modelo en el métodofit()
de la clasePerceptron
. - Calcular
da
(dan) antes del bucle, que es el gradiente de la función de pérdida respecto a las activaciones de salida. - Calcular
da
y realizar la retropropagación en el bucle llamando al método correspondiente para cada una de las capas.
Si la implementación del entrenamiento es correcta, dado el valor de la tasa de aprendizaje 0.01
, la pérdida debería disminuir de forma constante en cada época.
Solución
¡Gracias por tus comentarios!
single