활성화 함수Activation Function

더한 값을 내보낼지 정하는 문턱 달린 함수

핵심 정리
  • 활성화 함수는 뉴런이 곱하고 더해서 만든 값을 내보낼지 말지, 얼마나 세게 내보낼지 정하는 마지막 관문이에요.
  • 핵심은 직선이 아니라는 점이에요. 이 굽은 구석이 있어야 곧은 선으로는 못 가르는 복잡한 경계를 만들 수 있어요.
  • 이 함수가 없으면 층을 아무리 쌓아도 결국 한 층과 똑같아져요. 깊이가 의미를 갖게 해 주는 장치예요.
  • 가장 널리 쓰는 것은 문턱 아래는 전부 0으로 눌러 버리고, 넘은 만큼은 그대로 흘려보내는 방식이에요.
  • 어떤 함수를 쓰느냐에 따라 학습 속도와 안정성이 크게 달라져요. 층 중간과 맨 마지막에 쓰는 함수도 서로 달라요.
목차

1비유로 이해하기

아파트 복도 센서등은 늘 꺼져 있어요. 사람이 지나가도 저 끝에서 살짝 움직인 정도면 반응하지 않아요. 어느 정도 가까이 다가와야 그제야 탁 켜져요. 켜지고 나면 밝기가 다시 어두워질 때까지 복도를 환하게 비춰요.

이 등에는 정해진 기준이 있어요. 기준보다 약한 움직임은 아무리 여러 번 있어도 등을 켜지 못해요. 반대로 기준을 넘으면 곧바로 반응해요. 약한 신호를 무시하기 때문에 바람에 흔들리는 그림자마다 등이 켜졌다 꺼졌다 하지 않아요.

활성화 함수가 이 센서등의 판단 규칙이에요. 뉴런이 앞에서 받은 값들을 무게에 맞춰 더한 결과가 기준을 넘지 못하면 아무 신호도 내보내지 않고, 넘으면 넘은 만큼 다음 뉴런에게 전달해요. 신호를 그냥 통과시키지 않고 한 번 걸러 주는 문지기 역할이에요.

2자세히 알아보기

문턱 아래는 눌러 버리고, 위는 흘려보내요

요즘 층 중간에서 가장 많이 쓰는 방식은 아주 단순해요. 들어온 값이 0보다 작으면 전부 0으로 만들고, 0보다 크면 손대지 않고 그대로 내보내요. 이 방식을 렐루라고 불러요.

단순한데도 잘 통하는 이유가 있어요. 계산이 비교 한 번이라 아주 빠르고, 값이 커져도 신호가 줄지 않고 그대로 전달돼요. 한 층에서 많은 뉴런이 0을 내보내니 실제로 계산에 참여하는 뉴런만 남아 전체가 가벼워지는 효과도 있어요.

예전에는 부드럽게 눕히는 방식을 썼어요

한동안은 들어온 값이 아무리 커도 결과를 0과 1 사이로 밀어 넣는 함수를 많이 썼어요. 시그모이드가 대표적이에요. 출력이 0에서 1 사이라서 확률처럼 읽기 좋다는 장점이 있었어요.

문제는 학습할 때 드러났어요. 값이 조금만 크거나 작아지면 함수가 거의 평평해져서, 입력이 달라져도 출력이 거의 안 변해요. 정답과의 오차를 앞쪽 층으로 되돌려 보낼 때 이 평평한 구간을 지날 때마다 신호가 잘게 줄어들어, 앞쪽 층은 배울 거리가 거의 남지 않아요. 이것이 기울기 소실이에요. 층을 깊게 쌓기 시작하면서 이 방식이 층 중간에서 밀려난 이유예요.

없으면 깊이가 헛수고가 돼요

활성화 함수를 빼고 곱하고 더하기만 이어 붙이면 어떻게 될까요. 곱셈과 덧셈만 아무리 여러 번 반복해도 그 전체는 다시 하나의 곱셈과 덧셈으로 정리돼요. 열 층을 쌓든 백 층을 쌓든 표현할 수 있는 것은 한 층짜리 모델과 똑같아져요.

중간에 굽은 구석이 하나 들어가면 이야기가 완전히 달라져요. 각 층이 앞 층의 결과를 접고 자른 뒤 다시 조합하기 때문에, 층이 늘어날수록 만들 수 있는 경계의 모양이 훨씬 복잡해져요. 곧은 칼로는 못 가르는 데이터신경망이 갈라내는 힘이 여기서 나와요.

맨 마지막 층은 쓰는 함수가 달라요

층 중간의 함수는 신호를 다음 층으로 잘 넘기는 것이 목적이지만, 마지막 층의 함수는 사람이 읽을 수 있는 형태로 답을 다듬는 것이 목적이에요. 그래서 하는 일이 달라요.

둘 중 하나를 고르는 문제라면 결과를 0과 1 사이 확률처럼 만들어 주는 함수를 쓰고, 여러 후보 중 하나를 고르는 문제라면 후보 전체의 값을 합이 1이 되도록 나눠 주는 소프트맥스를 써요. 반대로 집값처럼 숫자 자체를 맞히는 문제에서는 마지막에 아무 함수도 걸지 않고 계산된 값을 그대로 내보내요.

고르는 기준은 결국 학습이 잘되느냐예요

새 함수가 나올 때마다 사람들이 확인하는 것은 같은 조건에서 학습이 더 빠르고 안정적인가예요. 0 아래를 완전히 0으로 만들지 않고 아주 조금 남겨 두는 변형, 문턱 근처를 부드럽게 다듬은 변형처럼 조금씩 다른 방식이 여럿 나와 있어요.

차이는 크지 않은 경우가 많아요. 그래서 특별한 이유가 없으면 층 중간에는 가장 단순하고 빠른 방식을 쓰고, 학습이 잘 안 될 때 다른 후보를 시험해 보는 순서로 접근해요.

3조금 더 정확하게

활성화 함수는 뉴런의 계산 마지막에 적용되는 비선형 함수예요. 가중치를 곱해 더하고 편향값을 더하는 과정은 모두 선형이라, 이 단계가 없으면 여러 층을 합친 결과도 하나의 선형 변환으로 정리돼요. 신경망이 곡선 경계를 만들 수 있는 것은 이 비선형성 덕분이에요.

센서등 비유가 어긋나는 지점도 있어요. 센서등은 켜짐과 꺼짐 두 상태뿐이지만, 많이 쓰는 활성화 함수는 켜진 뒤의 세기까지 함께 전달해요. 문턱을 크게 넘은 값은 크게, 살짝 넘은 값은 작게 나가요. 또 센서등에는 기준이 하나뿐이지만, 뉴런이 켜지는 지점은 함수 자체가 아니라 편향값이 옮겨 놓아요.

학습이 되려면 이 함수에 또 하나의 조건이 필요해요. 오차를 되돌려 보내려면 함수의 기울기를 알 수 있어야 해요. 0에서 꺾이는 함수는 그 지점의 기울기가 정의되지 않지만, 실제 구현에서는 한쪽 값을 쓰기로 정해 두고 넘어가요. 값이 정확히 0에 떨어지는 경우가 드물어서 학습에는 문제가 되지 않아요.

4직접 해보기

5흔한 오해

  • 활성화 함수가 뉴런을 켜고 끄는 스위치일 뿐이라고 생각하기 쉽지만, 실제로는 켜진 뒤 얼마나 세게 내보낼지까지 함께 정해요.

  • 어떤 함수를 쓰든 결과는 비슷하다고 여기기 쉽지만, 실제로는 깊은 모델에서 함수 선택 하나로 학습이 아예 진행되지 않기도 해요.

  • 활성화 함수가 뉴런이 켜지는 문턱 위치를 정한다고 생각하기 쉽지만, 실제로 그 위치를 앞뒤로 옮기는 것은 편향값이에요.

7한 줄 요약

그러니까활성화 함수는 뉴런이 더해 놓은 값을 내보낼지 정하는 문턱 달린 관문이고, 이 굽은 구석이 있어야 층을 쌓는 일이 의미를 가져요.

잘못된 내용이나 더 좋은 비유가 있나요? 수정 제안 보내기 · 마지막 수정2026-09-02