I'm new to NN, and trying to understand the foundations. One question that I have is, why the **derivative** of an activation function is important, and is tied to how the network performs learning? For instance, when we say a constant derivative isn't good for learning. What is the intuition behind that? Is the activation function somehow like a **hash function** that need to well differentiate small variance in inputs?