# How to choose proper activation functions for hidden and output layers of a perceptron neural network?

As far as I know choosing an activation function for the input layer is relatively straightforward: I use Sigmoid if the input data domain is (0,1) and TANH if it is (-1,1).

But what activation functions to set for hidden and output layers? Is there any conventional logic for making thish choice reasonably? How do I know/set the domain of a neuron layer output?

• Hidden: the $tanh$ activation used to be the most popular. Now, this role has been taken by the $relu$ (rectified linear unit) activation, which produce sparse activations and better preserve the gradients;