주제: 1-1 퍼셉트론과 활성함수

분류: foundations

타입: concept

난이도: 입문

선수지식: 있음 - 벡터, 행렬곱, y = Wx + b

문제 설정

신경망의 가장 기본 단위는 퍼셉트론입니다. 퍼셉트론은 입력 벡터를 받아 선형 변환을 수행한 뒤 비선형 함수를 통과시켜 출력 값을 만듭니다.

a=sigma(Wx+b)

직관 비유

1. 퍼셉트론 구조

퍼셉트론은 아래 두 단계로 이루어집니다.

입력 x
  -> 선형 계산 z = Wx + b
  -> 활성함수 a = sigma(z)
  -> 출력 a

즉 퍼셉트론은 선형 변환 + 비선형 변환으로 구성됩니다.

왜 필요한가

선형 계산만으로는 복잡한 패턴을 표현하기 어렵습니다. 활성함수가 들어가야 신경망이 복잡한 함수 형태를 학습할 수 있습니다.

주의점

활성함수가 없다면 여러 층을 쌓아도 결국 하나의 선형 변환과 동일해집니다.

2. 선형 연산

퍼셉트론의 첫 단계는 선형 연산입니다.

z=Wx+b

기호 의미

차원 관계

변수 차원
xd
Wk x d
bk
zk

(k x d)(d x 1) -> (k x 1)

3. 활성함수

선형 계산 결과 z를 비선형 함수에 통과시킵니다.

a=sigma(z)

왜 필요한가

비선형성이 없으면 깊은 신경망도 하나의 선형식으로 합쳐집니다.

W2(Wx + b) + b2
= (W2W)x + (W2b + b2)

주의점

활성함수가 없으면 깊은 신경망의 표현력이 크게 떨어집니다.

4. 대표 활성함수

Sigmoid

sigma(x)=1/(1+e(x))

ReLU

ReLU(x)=max(0,x)

GELU

GELU(x)=x*Phi(x)

코드-수식 연결

수식 PyTorch 코드 설명
z = Wx + b z = W @ x + b 선형 계산
a = sigma(z) a = torch.relu(z) 활성함수 적용 예시
a = sigma(Wx + b) a = torch.relu(W @ x + b) 퍼셉트론 연산

자주 하는 오해 5개

체크리스트 (스스로 설명 가능해야 하는 질문)