Multi-Layer Perceptron 노드의 상세 동작 알아보기(1) - 순전파

2025. 12. 6. 14:36·CS/AI

해당 포스팅은 학부생의 입장에서 강의 내용을 이해하기 쉽게 재구성한 것입니다. 틀린 부분이 있으면 알려주시면 감사하겠습니다. 

 

Source : 오일석 (2017). 기계학습. 한빛아카데미.

먼저 오늘 내용은 2층 퍼셉트론과 3층 퍼셉트론을 주로 예시를 들어 설명하겠습니다.

 

그림에서 보시다시피 각 MLP는 입력 차원이 $d$차원이며 바이어스를 더하여 총 $d + 1$개의 입력 노드가 존재합니다.

 

단층 퍼셉트론과 단연 다른점은 은닉층, 즉 Hidden Layer의 존재입니다. 

은닉층은 특징 벡터를 분류에 더 유리한 새로운 특징 공간으로 변환하는 역할을 수행한다고 볼 수 있겠습니다. 

 

그림에 존재하는 문자들을 간단히 설명드리면,

 

각 노드의 입력 데이터는 $x_1, \cdots, x_d$로 라벨링 되고, 출력노드의 출력 데이터는 $o_1, \cdots, o_2$로 라벨링 됩니다.  

각 노드를 잇는 가중치들은 입력층 - 은닉층을 연결하는 $U^1$, 은닉층 - 출력층을 연결하는 $U^2$로 나타내고 있습니다. 

해당 가중치들은 행렬로 다음과 같이 나타낼 수 있습니다. 

 

$$\mathbf{U}^1 = \begin{pmatrix} u^1_{10} & u^1_{11} & \cdots & u^1_{1d} \\ u^1_{20} & u^1_{21} & \cdots & u^1_{2d} \\ \vdots & \vdots & \ddots & \vdots \\ u^1_{p0} & u^1_{p1} & \cdots & u^1_{pd} \end{pmatrix}, \quad \mathbf{U}^2 = \begin{pmatrix} u^2_{10} & u^2_{11} & \cdots & u^2_{1p} \\ u^2_{20} & u^2_{21} & \cdots & u^2_{2p} \\ \vdots & \vdots & \ddots & \vdots \\ u^2_{c0} & u^2_{c1} & \cdots & u^2_{cp} \end{pmatrix}$$

 

그림에서도 나와있듯이 $u^1_{ji}$를 예로 들어 설명하자면, 위 첨자[$1$]는 어떤 행렬인지($U^1$) 아래 첨자($ji$)는 $i$번째 노드와 $j$번째 노드를 잇는 가중치라는 의미입니다(순서 주의)

 

은닉층의 노드 개수는 p개이며, 해당 노드의 개수는 하이퍼파라미터입니다. 

 

$j$번째 은닉 노드의 출력값을 계산해보겠습니다. 해당 노드에는 $0$부터 $d$번 입력노드까지의 입력값$ (1, x_1, x_2, \cdots, x_d)$)과  각 입력 노드와 $j$번째 은닉노드를 잇는 가중치들의 곱 $\mathbf{u}j^1 \mathbf{x}, \quad \mathbf{u}j^1 = (u{j0}^1, u{j1}^1, \cdots, u_{jd}^1)$ 이 입력됩니다. 이를 $zsum_j$라고 부르겠습니다. 

해당 값은 최종적으로 활성화 함수$\tau$를  거쳐야 하므로 은닉노드 $j$의 출력값은 다음과 같습니다 

$$\tau(zsum_j)$$

 

동일한 방식으로 $k$번째 출력 노드의 출력값도 게산해보면, 

$$o_k = \tau(osum_k), \quad k = 1, 2, \cdots, c$$

$$osum_k = \mathbf{u}^2_k {z}, \quad \mathbf{u}k^2 = (u{k0}^2, u{k1}^2, \cdots, u_{kp}^2), \quad \mathbf{z} = (1, z_1, z_2, \cdots, z_p)^T$$

그렇다면 $o_1, o_2, \cdots, o_3$을 갖는 벡터를  $o$라고 하고, 활성화 함수를 $tau$라고 했을 때, 2-Layer 퍼셉트론의 출력 벡터는 다음과 같이 추상화시켜 나타낼 수 있을 것입니다.

$$ o = \tau ( \mathbf{U}^2 \tau_h (\mathbf{U}^1 \mathbf{x})) $$

여기서 $\tau_h$ 는 은닉층의 활성화 함수라는 뜻입니다.  

지금까지 입력 데이터가 은닉층을 거쳐 출력층으로 전달되며 최종 결과값을 게산하는 과정(순전파)을 살펴보았습니다. 신경망이 제대로 동작하기 위해서는 최종 결과값(예측값)과 정답간의 오차를 줄이도록 가중치 $U$를 조정하는 과정이 필요합니다. 다음 포스팅에서는 순전파가 이루어진 이후 오자를 계산하고 가중치를 갱신하는 역전파 과정을 다뤄보겠습니다.

'CS > AI' 카테고리의 다른 글

Multi-Layer Perceptron 노드의 상세 동작 알아보기(2) - 역전파  (0) 2025.12.06
'CS/AI' 카테고리의 다른 글
  • Multi-Layer Perceptron 노드의 상세 동작 알아보기(2) - 역전파
Kirbyyy
Kirbyyy
개인적인 일상과 회고를 기록하는 블로그입니다.
  • Kirbyyy
    커브볼의 생존일지
    Kirbyyy
  • 전체
    오늘
    어제
    • 분류 전체보기 (53)
      • 우아한테크코스 (8)
      • 프로덕트 빌드 (0)
      • Problem Solving (20)
      • C++ (0)
      • Kotlin (19)
      • Java (3)
      • CS (2)
        • AI (2)
      • 취미생활 (0)
        • 서평 (0)
        • 프라모델 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    백준 11123
    백준 알고리즘
    백준 연속 합
    백준 16174
    너비 우선 탐색
    그리디 알고리즘
    다이나믹 프로그래밍
    백준 파도반 수열
    백준 31575
    C++
    백준 16173
    Problem Solving
    백준 1356
    백준
    ProblemSolving
    백준 RGB 거리
    우테코 8기
    분할 정복
    백준 33272
    BFS
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
Kirbyyy
Multi-Layer Perceptron 노드의 상세 동작 알아보기(1) - 순전파
상단으로

티스토리툴바