Binary Cross Entropy with Simple Python
Binary Cross Entropy Simulation (No Libraries)
import math
# Define a simple cross-entropy loss function
def cross_entropy_loss(y_true, y_pred):
# Clamp predictions to avoid log(0)
epsilon = 1e-15
y_pred = max(min(y_pred, 1 - epsilon), epsilon)
return - (y_true * math.log(y_pred) + (1 - y_true) * math.log(1 - y_pred))
# Test cases: (actual, predicted)
data = [
(1, 0.9), # good prediction
(1, 0.1), # bad prediction
(0, 0.1), # good prediction
(0, 0.9), # bad prediction
]
# Display loss for each prediction
for actual, predicted in data:
loss = cross_entropy_loss(actual, predicted)
print(f"Actual: {actual}, Predicted: {predicted:.2f} → Loss: {loss:.4f}")
Output Example
Actual: 1, Predicted: 0.90 → Loss: 0.1054
Actual: 1, Predicted: 0.10 → Loss: 2.3026
Actual: 0, Predicted: 0.10 → Loss: 0.1054
Actual: 0, Predicted: 0.90 → Loss: 2.3026
What This Shows
- Smaller loss when the prediction is closer to the actual label.
- Larger loss when the prediction is confident but wrong.
Binary Cross Entropy relevancy in Neural Network – Basic Math Concepts
