활성화 함수(Activation Function)란?

신경망의 각 뉴런에서 입력의 가중합(과 바이어스)에 대해 적용하는 함수. 비선형 함수를 사용함으로써 층을 쌓은 네트워크가 복잡한 관계를 나타낼 수 있게 된다. 은닉층에서는 ReLU가 자주 사용되고, 출력층에서는 2클래스 분류에 시그모이드 함수, 다클래스 분류에 소프트맥스 함수, 회귀에는 항등 함수(아무것도 하지 않는 함수)를 사용하는 경우가 많다.

일본어 명칭: 活性化関数

활성화 함수(Activation Function)은(는) 머신러닝의 기초, AI 하드웨어·소프트웨어 스택 등 2개 분야의 연습 문제 5개에 나와요.

분야: 머신러닝의 기초

왜 비선형 함수가 필요한가

활성화 함수를 사용하지 않으면(항등 함수를 사용하면), 각 층은 행렬의 곱셈과 벡터의 덧셈뿐이 됩니다. 선형 변환은 몇 번을 겹쳐도 하나의 선형 변환으로 정리할 수 있으므로, 층을 아무리 깊게 해도 나타낼 수 있는 것은 입력의 1차식뿐입니다. 비선형 활성화 함수를 끼워 넣음으로써 XOR처럼 1개의 직선으로 나눌 수 없는 관계나 더 복잡한 관계도 나타낼 수 있게 됩니다.

대표적인 함수

시그모이드 함수 σ(z) = 1 ÷ (1 + e^(−z))는 출력이 0에서 1 사이에 들어가므로 확률로 다룰 수 있습니다. tanh는 출력이 −1에서 1 사이에 들어가며, 0을 중심으로 한 값이 됩니다. ReLU(z) = max(0, z)는 양의 입력은 그대로, 0 이하의 입력은 0을 출력하는 단순한 함수로, 계산이 가볍고 기울기가 잘 사라지지 않으므로 깊은 네트워크의 은닉층에서 표준적으로 사용되고 있습니다. ReLU를 매끄럽게 한 GELU 등의 함수도 자주 사용됩니다.

기울기 소실과의 관계

시그모이드 함수나 tanh는 입력의 절댓값이 크면 출력이 일정한 값에 달라붙어 미분이 거의 0이 됩니다. 시그모이드 함수의 미분은 최대라도 0.25이므로, 층을 쌓으면 역전파에서 기울기가 곱셈으로 작아져 입력에 가까운 층이 학습하기 어려워집니다(기울기 소실). ReLU는 양의 범위에서 미분이 1이므로 기울기가 작아지기 어려운 성질이 있습니다. 한편 입력이 늘 음수가 된 뉴런은 기울기가 0인 채로 학습이 멈추므로, 음의 범위에도 작은 기울기를 갖게 한 Leaky ReLU 등도 있습니다.

도전해 보기: 활성화 함수(Activation Function) 관련 문제

많은 층을 쌓은 신경망에서 활성화 함수로 시그모이드 함수를 사용하면 입력에 가까운 층의 학습이 잘 진행되지 않는 이유로 적절한 것은?

  1. A시그모이드 함수의 미분은 최대라도 0.25이므로, 역전파에서 층을 지날 때마다 기울기가 작아져 입력에 가까운 층에서는 거의 0이 되기 때문
  2. B시그모이드 함수는 출력이 0에서 1의 범위에 들어가지 않으므로, 층을 지날 때마다 값이 커져 계산이 넘쳐 버리기 때문
  3. C시그모이드 함수에는 미분할 수 없는 점이 있으므로, 역전파에서 기울기를 구할 수 없는 층이 생기기 때문
정답과 해설 보기

정답: A. 시그모이드 함수의 미분은 최대라도 0.25이므로, 역전파에서 층을 지날 때마다 기울기가 작아져 입력에 가까운 층에서는 거의 0이 되기 때문

역전파에서는 각 층의 활성화 함수의 미분이 기울기에 잇달아 곱해집니다. 시그모이드 함수의 미분은 σ(z)(1 − σ(z))로 최대라도 0.25이므로, 예를 들어 10층을 지나면 0.25¹⁰ ≈ 9.5 × 10⁻⁷로 기울기는 매우 작아집니다. 이를 기울기 소실이라고 부릅니다. 대책으로는 양의 범위에서 미분이 1이 되는 ReLU를 사용하기, 층을 건너뛰어 신호를 전달하는 잔차 연결(스킵 연결)을 넣기, 가중치의 초깃값을 궁리하기, 배치 정규화를 사용하기 등의 방법이 있습니다.

자주 묻는 질문

소프트맥스 함수는 활성화 함수인가요?

다클래스 분류의 출력층에서 사용하는 활성화 함수의 하나로 다루어집니다. 다른 활성화 함수가 뉴런마다 따로 계산하는 데 비해, 소프트맥스 함수는 출력층의 모든 값을 사용하여 합계가 1이 되는 확률로 변환한다는 점이 다릅니다.

반도체 제조 공정의 '활성화'와 관계가 있나요?

관계는 없습니다. 신경망의 활성화 함수는 신경 세포가 흥분하는(발화하는) 모습을 흉내 낸 데서 유래한 용어입니다. 반도체 제조 공정의 활성화는 이온 주입한 불순물을 열처리로 결정 격자의 위치에 넣어, 캐리어를 만들어 내는 상태로 하는 것을 가리킵니다.

해설 속 활성화 함수(Activation Function)

활성화 함수(Activation Function)이(가) 나오는 문제 (5)

  1. 많은 층을 쌓은 신경망에서 활성화 함수로 시그모이드 함수를 사용하면 입력에 가까운 층의 학습이 잘 진행되지 않는 이유로 적절한 것은?
  2. AI 계산에서 사용되는 '연산 융합(오퍼레이터 퓨전)'의 주된 목적은 무엇인가?
  3. AI 프레임워크나 컴파일러에서 사용되는 '계산 그래프'의 설명으로 올바른 것은 무엇인가?
  4. 입력층과 출력층만으로 이루어진 단순 퍼셉트론(임계값으로 0 또는 1을 출력하는 하나의 뉴런)으로 나타낼 수 없는 논리 함수는?
  5. 입력이 x₁ = 1, x₂ = 2인 작은 신경망에서 은닉층의 두 뉴런이 h₁ = ReLU(x₁ + x₂ − 1), h₂ = ReLU(x₁ − 2x₂ + 1)이고, 출력이 y = 2h₁ + 3h₂ + 1이다. y의 값은?

관련 용어

역전파(Backpropagation) 연산 융합(Operator Fusion) 계산 그래프(Computational Graph) 강화 학습(Reinforcement Learning) 경사 하강법(Gradient Descent) 과적합(Overfitting) 교차 검증(Cross-validation) 비지도 학습(Unsupervised Learning) 순환 신경망(RNN) 전이 학습(Transfer Learning)

용어집으로 돌아가기