신경망 배우는 중인데 층마다 활성화 함수(activation function)를 넣는다고 하잖아요. ReLU나 시그모이드 이런 거요. 코드로는 그냥 습관처럼 넣고 있긴 한데 왜 넣어야 하는지를 제대로 이해 못 한 것 같아서 질문드려요.
model = nn.Sequential(
nn.Linear(64, 32),
nn.ReLU(),
nn.Linear(32, 10)
)
여기서 저 nn.ReLU()를 빼면 어떻게 되는 거예요? 그냥 Linear 층만 여러 개 쌓으면 더 깊은 모델이 되는 거 아닌가 싶은데, 그렇게 하면 안 된다는 글을 봤어요. 층을 아무리 많이 쌓아도 활성화 함수가 없으면 결국 하나의 선형 층이랑 똑같아진다나요.
이 부분이 잘 이해가 안 돼요. 선형 층 두 개를 이으면 그냥 두 배로 표현력이 늘어나는 거 아니에요? 왜 하나로 합쳐진다는 건지 모르겠어요. 그리고 왜 하필 비선형 함수여야만 하는 건가요? 선형인 활성화 함수를 쓰면 안 되는 이유가 있는 건지도 궁금하고요.
수식으로 빡세게 말고 직관적으로 왜 비선형이 꼭 필요한지 설명해 주실 수 있을까요. 그리고 이왕이면 요즘 왜 ReLU를 기본으로 많이 쓰는지도 살짝 곁들여 주시면 좋겠어요.