학습 자료 글/딥러닝과 llm

[밑바닥부터 시작하는 딥러닝 1] 02. 같은 수식을 왜 a와 h(a)로 나누었을까

cedis 2026. 5. 25. 10:39

밑바닥부터 시작하는 딥러닝 1 - 퍼셉트론에서 신경망으로

퍼셉트론에서 신경망으로 넘어갈 때 책은 같은 계산을 여러 식으로 다시 쓴다. 처음 보면 같은 말을 반복하는 것처럼 보인다.

하지만 이 분리는 중요하다. 입력에 가중치를 곱해 더하는 부분과, 그 결과를 최종 출력으로 바꾸는 부분을 분리해야 활성화 함수를 갈아끼울 수 있기 때문이다.

이번 글에서 잡을 것

  • `a = w1*x1 + w2*x2 + b`는 입력 신호를 모아 점수로 만드는 단계다.
  • `y = h(a)`는 그 점수를 출력 신호로 바꾸는 단계다.
  • 퍼셉트론은 `h` 자리에 계단 함수를 쓴다.
  • 신경망은 `h` 자리에 시그모이드, ReLU 같은 비선형 함수를 쓴다.

수식 분리는 부품을 나누는 일이다

입력
x1, x2
가중합
a = wx + b
활성화
y = h(a)
출력
y

가중합은 입력 신호를 하나의 숫자로 모으는 과정이다. 활성화 함수는 그 숫자를 다음 뉴런으로 보낼 신호로 바꾸는 과정이다. 이 둘을 나누면 앞부분은 그대로 두고, 뒤쪽 변환 함수만 바꿀 수 있다.

계단 함수와 시그모이드 함수

함수 출력 변화 방식 역할
계단 함수 0 또는 1 딱 끊김 퍼셉트론의 판단
시그모이드 0과 1 사이 실수 부드러운 S자 신경망의 연속적인 신호
ReLU 0 이하이면 0, 양수면 그대로 단순하고 빠름 현대 딥러닝에서 자주 사용

시그모이드라는 이름

시그모이드는 그래프가 S자 모양이라 붙은 이름이다. 중요한 것은 이름보다, 0과 1 사이 값을 부드럽게 출력한다는 성질이다.

왜 비선형 함수여야 할까

활성화 함수가 선형 함수라면 층을 여러 개 쌓아도 결국 하나의 선형 함수로 합쳐진다. 예를 들어 `h(x)=cx`라면 `h(h(h(x)))`는 결국 `c*c*c*x`이고, 이것은 `ax` 하나로 표현할 수 있다.

선형 함수

층을 많이 쌓아도 하나의 층처럼 줄어든다.

비선형 함수

층을 쌓을수록 더 복잡한 관계를 표현할 수 있다.

핵심

신경망의 깊이는 비선형 활성화 함수가 있어야 의미가 생긴다.

지금은 여기까지만 잡아도 되는 것

시그모이드의 미분식이나 ReLU의 모든 변형까지 외울 필요는 없다. 지금은 활성화 함수가 가중합을 출력 신호로 바꾸는 부품이고, 이 부품이 비선형이어야 층을 쌓는 의미가 생긴다는 점을 잡으면 된다.

작은 숫자로 직접 비교해보기

계단 함수와 시그모이드 함수의 차이는 말보다 값을 넣어보면 더 빨리 보인다. 같은 입력을 넣어도 계단 함수는 0 또는 1만 내고, 시그모이드는 중간값을 낸다.

입력 a 계단 함수 시그모이드 출력 해석
-2 0 0에 가까움 거의 비활성
0 0 또는 경계 0.5 판단 경계
2 1 1에 가까움 강하게 활성
import numpy as np

def step_function(x):
    return np.array(x > 0, dtype=int)

def sigmoid(x):
    return 1 / (1 + np.exp(-x))

a = np.array([-2.0, 0.0, 2.0])
print(step_function(a))
print(np.round(sigmoid(a), 3))

예상 출력

[0 0 1]
[0.119 0.5   0.881]

ReLU는 왜 단순한데 자주 쓰일까

ReLU는 입력이 0보다 크면 그대로 통과시키고, 0 이하면 0으로 막는다. 시그모이드처럼 모든 값을 0과 1 사이로 눌러 담지 않기 때문에 깊은 신경망에서 계산이 단순하고 기울기 흐름도 비교적 유지하기 쉽다.

시그모이드

부드럽지만 큰 양수/음수에서 출력이 0이나 1 근처로 눌린다.

ReLU

양수는 그대로 통과시켜 계산이 단순하다.

주의

음수 입력은 0으로 막히므로 모든 상황의 만능 답은 아니다.

스스로 점검

  1. `a = wx + b`와 `y = h(a)`가 각각 무슨 역할인지 말할 수 있는가?
  2. 계단 함수와 시그모이드 함수의 차이를 출력값 관점에서 설명할 수 있는가?
  3. 선형 활성화 함수를 쓰면 층을 쌓는 의미가 줄어드는 이유를 말할 수 있는가?

이번 글에서 기억할 것

  • `a = w1*x1 + w2*x2 + b`는 입력 신호를 모아 점수로 만드는 단계다.
  • `y = h(a)`는 그 점수를 출력 신호로 바꾸는 단계다.
  • 퍼셉트론은 `h` 자리에 계단 함수를 쓴다.
  • 신경망은 `h` 자리에 시그모이드, ReLU 같은 비선형 함수를 쓴다.

다음 글로 이어지는 질문

다음 글에서는 여러 뉴런의 계산을 행렬 곱으로 한 번에 처리하는 방법을 본다.

한 줄 정리: 활성화 함수는 퍼셉트론의 판단식을 신경망으로 확장하기 위해 분리해낸 핵심 부품이다.