이유 있는 activation menu
ReLU — max(0, x). 2012 년 이후 CNN 과 대부분의 MLP hidden layer default. 싸고, sparse, gradient 가 1 또는 0 — backprop 쉬워. 실패 모드: dead neuron (bias 가 collapse 해서 영원히 0 에 갇힌 unit).
GELU — Gaussian Error Linear Unit, ReLU 보다 0 근처 부드러움. Transformer (BERT, GPT, ViT) default. 약간 비싸지만 scale 에서 더 잘 train. x * Φ(x).
SiLU / Swish — x * sigmoid(x). EfficientNet, LLaMA, modern image-generation model 에 사용. GELU 처럼 부드럽고 약간 더 싸.
Sigmoid — (0,1) 로 squash. Binary classification output activation 으로 OK (BCE loss 와 pair). Deep network hidden activation 으로는 나쁨 — gradient saturate, training 멈춰.
Tanh — (-1, 1) 로 squash, zero-centered. RNN (LSTM, GRU) 안에 쓰임. Deep stack 에는 sigmoid 와 같은 saturation 문제.
Softmax — logit vector 를 probability distribution 으로 변환. 거의 항상 cross-entropy loss 직전의 마지막 step. PyTorch CrossEntropyLoss 가 이미 numerically stable softmax 포함 — 쌓지 마.
왜 activation 이 trainability 를 결정하는가
Activation 이 gradient flow 를 통제. ReLU 는 active 한 곳마다 gradient 1 (그 외 0) 을 전달, deep stack trainable 유지. Sigmoid 와 tanh 는 tail 에서 saturate, gradient 죽임. 잘못된 activation 선택이 textbook architecture 가 진짜 dataset 에서 아무것도 학습 못 하는 가장 흔한 이유.