Transformers and LLM - 1.1 Neural networks

2025. 5. 17. 21:45·ML

딥러닝을 배우기 시작할 때 가장 먼저 접하게 되는 주제가 바로 뉴럴 네트워크이다.

뉴럴 네트워크가 어떻게 동작하고, 어떻게 학습하며, 어떻게 성능을 평가하는지를 알아보자.


1.1.1 Overview

Neural Network

 

뉴럴 네트워크(Neural Network)는 뇌의 작동 방식을 모방해 만든 모델이다.

뇌가 수많은 뉴런들이 연결되어 신호를 주고받으며 학습하듯, 뉴럴 네트워크도 '노드'라는 인공 뉴런들이 층을 이루며 연결되고, 이들 간의 상호작용을 통해 데이터를 학습한다.

 

Feed-Forward Neural Network

 

Feed-Forward Neural Network(FFNN)는 순방향으로만 정보가 흐르는 신경망을 말하며, 3개의 레이어로 구성되어 있다.

  • Input Layer: 입력을 받는 레이어. 숫자 벡터 형태의 데이터를 입력받는다.
  • Hidden Layers: 입력 데이터를 곱셈, 덧셈, 비선형성(nonlinearity)으로 변환한다.
  • Output Layer: 최종 결과를 출력하는 레이어. 예측 결과를 나타낸다.

입력 \(i\)가 들어오면 여러 개의 hidden layer(\(h_1\), $h_2$, ... ,$h_k$)를 거쳐 출력 \(o\)로 정보가 흐르는 구조를 볼 수 있다.

 

신경망의 깊이는 hidden layer의 개수로 결정된다. 

Hidden layer가 많을수록 Deep Network(깊은 신경망)이라고 부르며, 더 복잡한 문제를 해결할 수 있다.

반대로 hidden layer가 적으면 (보통 $k≤3$), Shallow Network(얕은 신경망)이라고 부른다.


1.1.2 Components

 

Input (입력)

FFNN의 입력은 $i \in \mathbb{R}^m$ 형태의 임베딩 벡터(embedding vector)로 표현된다.

 

$i \in \mathbb{R}^m$ 식을 살펴보자.

$i$는 하나의 데이터 포인트 또는 엔티티를 나타내는 벡터로 단어, 문장, 이미지, 사용자 ID 등이 될 수 있다.

$\mathbb{R}^m$는 $m$차원 실수 공간을 의미한다. 즉, $i$는 $m$개의 실수값으로 이루어진 벡터라는 뜻이다.

 

임베딩(embedding)은 추상적인 개념, 객체, 또는 데이터 포인트를 수치화(벡터로 표현)한 것을 말한다.

벡터 임베딩을 통해 임베딩 간의 내적 또는 거리를 계산해 유사성을 측정하여 사용할 수 있다.

아래와 같은 사용 방법을 임베딩의 예시로 들 수 있다.

  • "단어" → Word2Vec, GloVe 등의 단어 임베딩
  • "이미지" → CNN을 통해 추출한 이미지 임베딩
  • "사용자 ID" → 추천 시스템에서 사용자의 행동을 기반으로 한 사용자 임베딩
  • "문장" → BERT에서 추출한 문장 임베딩

입력 데이터의 모달리티에 따라 입력 형식이 달라진다.

모달리티 설명 예시
Text 단어를 벡터로 표현 'a', 'cute', 'teddy bear'
Audio 오디오 신호를 시간 구간별로 나누어 특징 추출 Mel-spectrogram
Image 픽셀마다 RGB 값 벡터 이미지의 각 픽셀

 

Hidden Layer (은닉층)

 

은닉층은 입력 데이터를 변환하고 복잡한 패턴을 학습할 수 있도록 하는 부분이다.

구성 요소는 다음과 같다:

  • Weights $w$: 학습을 통해 결정되며 입력과 곱해지는 파라미터.
  • Biases $b$: 학습을 통해 결정되며 곱셈 결과에 더해지는 파라미터.
  • Activation Function $A$: 곱셈과 덧셈 후 결과에 적용되는 함수

 

활성화 함수(Activation function)

활성화 함수를 통해 비선형성을 추가하여 모델이 복잡한 패턴을 학습할 수 있도록 한다.

 

은닉층 $h_l$의 출력 $o_{h_l}$은 다음 과정을 통해 계산된다:

 

1. 이전 은닉층 $h_{l-1}$의 출력 $o_{h_{l-1}}$를 가져온다.
2. 현재 은닉층의 가중치 행렬 $W_{h_l}$과 곱한다.
3. 현재 은닉층의 바이어스 $b_{h_l}$을 더한다.
4. 그 결과를 활성화 함수 $A$에 통과시켜 비선형성을 적용한다.

 

이를 한 줄의 수식으로 나타내면 다음과 같다.

\[o_{h_l} = A(W_{h_l} \cdot o_{h_{l-1}} + b_{h_l})\]

 

활성화 함수의 주요 함수와 수식은 다음과 같다:

이름 함수 $A(z)$ 출력 범위
Sigmoid $ \displaystyle \frac{1}{1 + e^{-z}} $ $ (0, 1) $
Tanh $ \displaystyle \frac{e^z - e^{-z}}{e^z + e^{-z}} $ $ (-1, 1) $
ReLU $ \max(0, z) $ $ [0, +\infty) $
Leaky ReLU $ \max(\epsilon z, z) $ $ (-\infty, +\infty) $
GELU $ zP(X \leq z), \quad X \sim \mathcal{N}(0,1) $ $ (-0.17, +\infty) $
ELU $ \max(\alpha(e^z-1), z), \quad \alpha \approx 1 $ $ (-\alpha, +\infty) $

 

 

Gated Linear Units(GLU) 계열의 활성화 함수

 

게이트(Gate) 기법이란 입력 $z$에 대해 두 개의 함수 $A_1(z)$, $A_2(z)$를 만든 다음, 두 결과를 원소별 곱셈으로 결합하는 방식을 말한다.

게이트 기법은 단일 활성화 함수보다 더 복잡한 표현력과 비선형성을 제공하고, 정보의 흐름을 부분적으로 선택(통과/차단)할 수 있어 모델의 성능을 향상시킬 수 있다.

 

게이트 기법을 수식으로 나타내면 다음과 같다:

\[A(z)=A1​(z)⊙A2​(z)\]

여기서 $\odot$는 원소별 곱(elementwise product)를 의미한다.

 

보통 $A_2(z)$는 선형 변환으로 $A2(z)=zV+c$으로 변환하여 사용한다.

이때 $V$는 가중치 행렬, $c$는 바이어스를 의미한다.

 

$A_1(z)$는 다양한 활성화 함수로 변형할 수 있다:

이름 정의 설명
GLU (Gated Linear Unit) $ \sigma(zW + b) $ 시그모이드로 게이트 생성
SwiGLU (Swish Gated Linear Unit) $ (zW + b) \odot \sigma(\beta(zW + b)) $ Swish 함수를 게이트에 적용
ReGLU (Rectified Gated Linear Unit) $ \text{ReLU}(zW + b) $ ReLU를 게이트에 사용

 

SwiGLU는 Transformer 아키텍처 (예: PaLM, GPT-NeoX 등)에서 사용되며, ReLU 기반 활성화 함수는 $0$에서 미분이 불가하다.

 

출력층 (Output Layer)

출력층(output layer)은 모델의 최종 예측 결과를 반환하는 레이어이다.

출력 벡터는 $o \in \mathbb{R}^n$와 같이 표현되며, 각 출력 요소는 $o_1, o_2, \dots, o_n$으로 표시된다.

출력의 유형에 따라 처리 방식이 달라진다.

 

분류(Classification)

 

분류 문제에서는 최종 출력 벡터 $o$를 softmax 함수에 통과시켜서 확률 분포로 변환해야 한다.

softmax 함수의 정의는 다음과 같다.

\[p_i \triangleq \mathrm{softmax}(o)_i = \frac{e^{o_i}}{\sum_{j=1}^n e^{o_j}}\]

$p_i$는 클래스 $i$에 대한 확률을 나타내며, $p_1 + p_2 + \dots + p_n$의 값은 항상 1이 되며, 각 $p_i$은 0 또는 1의 값을 갖는다.

softmax를 적용한 후, 모델의 출력은 각 클래스에 대한 예측 확률이 된다.

 

회귀(Regression)

 

회귀 문제에서는 softmax 같은 변환을 사용하지 않고, $o \in \mathbb{R}^n$ 형태의 그대로의 실수 벡터를 출력한다.

예측 결과는 각 출력 노드 $o_i$의 값 자체로 해석된다.

'ML' 카테고리의 다른 글
  • [NLP] Words and Token
  • But what is a neural network? | Deep learning chapter 1 정리
  • [졸프] 아이디어 회의부터 지도 교수님, 한이음 공모전까지
  • AI가 그리지 못하는 것
단축키실행해보세요
단축키실행해보세요
공대생
  • 단축키실행해보세요
    Ctrl + Shift + ESC
    단축키실행해보세요
  • 전체
    오늘
    어제
    • 분류 전체보기 (171)
      • 외부 활동 (4)
      • BOJ (36)
        • Python (24)
        • C++ (12)
        • Java (0)
      • Hacking (91)
        • Crypto (4)
        • Forensics (2)
        • Mobile Hacking (5)
        • Reversing (21)
        • System (21)
        • Web Hacking (38)
      • Cloud (14)
        • Serverless (1)
        • AWS (8)
      • ML (5)
      • Data Structure (16)
      • Git (0)
      • DevOps (0)
        • Terraform (0)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    basicrce3
    cloud
    백준
    pwnable
    python
    System
    CodeEngn
    c
    Redis
    AI
    htmlinjection
    SISS
    Systemhacking
    backjoon
    beebox
    AWS
    EC2
    유석종교수님
    acc
    ML
    datastructure
    bWAPP
    자료구조
    XPath
    Dreamhack
    부하테스트
    S3
    Reversing
    SAA
    Reflected
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
단축키실행해보세요
Transformers and LLM - 1.1 Neural networks
상단으로

티스토리툴바