def sigmoid(x): """Sigmoid activation function""" return 1 / (1 + np.exp(-np.clip(x, -500, 500))) # Clip to prevent overflow # Test sigmoid on different inputs test_values = np.array([-10, -1, 0, 1, 10]) sigmoid_values = sigmoid(test_values) print("Sigmoid function behavior:") for i, val in enumerate(test_values): print(f" sigmoid({val:3.0f}) = {sigmoid_values[i]:.3f}") # Visualize sigmoid x_range = np.linspace(-10, 10, 100) y_sigmoid = sigmoid(x_range) plt.figure(figsize=(8, 4)) plt.plot(x_range, y_sigmoid, 'b-', linewidth=2) plt.title('Sigmoid Activation Function') plt.xlabel('x') plt.ylabel('sigmoid(x)') plt.grid(True, alpha=0.3) plt.show()