AI-For-Beginners/translations/ko/lessons/3-NeuralNetworks/04-OwnFramework
localizeflow[bot] fbfb0a8047 chore(i18n): sync translations with latest source changes (chunk 1/1, 205 changes) 2026-01-30 01:32:15 +00:00
..
lab chore(i18n): sync translations with latest source changes (chunk 1/1, 205 changes) 2026-01-30 01:32:15 +00:00
OwnFramework.ipynb 🌐 Update translations via Co-op Translator 2025-08-31 14:13:46 +00:00
README.md chore(i18n): sync translations with latest source changes (chunk 1/1, 205 changes) 2026-01-30 01:32:15 +00:00

README.md

신경망 소개: 다층 퍼셉트론

이전 섹션에서는 가장 간단한 신경망 모델인 단일 계층 퍼셉트론, 즉 선형 이진 분류 모델에 대해 배웠습니다.

이번 섹션에서는 이 모델을 확장하여 더 유연한 프레임워크를 만들어 보겠습니다. 이를 통해 다음을 수행할 수 있습니다:

  • 이진 분류 외에 다중 클래스 분류 수행
  • 분류 외에 회귀 문제 해결
  • 선형적으로 분리되지 않는 클래스 구분

또한, 다양한 신경망 아키텍처를 구성할 수 있는 자체 모듈식 프레임워크를 Python으로 개발할 것입니다.

강의 전 퀴즈

머신러닝의 공식화

먼저 머신러닝 문제를 공식화해 봅시다. 훈련 데이터셋 X와 레이블 Y가 주어졌다고 가정하고, 가장 정확한 예측을 수행할 모델 f를 만들어야 합니다. 예측의 품질은 손실 함수 ℒ로 측정됩니다. 다음과 같은 손실 함수가 자주 사용됩니다:

  • 숫자를 예측해야 하는 회귀 문제의 경우, 절대 오차i|f(x(i))-y(i)| 또는 제곱 오차i(f(x(i))-y(i))2를 사용할 수 있습니다.
  • 분류 문제의 경우, 0-1 손실(모델의 정확도와 본질적으로 동일) 또는 로지스틱 손실을 사용합니다.

단일 계층 퍼셉트론의 경우, 함수 f는 선형 함수 f(x)=wx+b로 정의되었습니다. 여기서 w는 가중치 행렬, x는 입력 특징 벡터, b는 편향 벡터입니다. 다른 신경망 아키텍처에서는 이 함수가 더 복잡한 형태를 가질 수 있습니다.

분류의 경우, 네트워크 출력으로 해당 클래스의 확률을 얻는 것이 바람직할 때가 많습니다. 임의의 숫자를 확률로 변환(즉, 출력을 정규화)하기 위해 소프트맥스 함수 σ를 자주 사용하며, 함수 f는 *f(x)=σ(wx+b)*가 됩니다.

위 정의에서 wb파라미터 θ=⟨w,b⟩라고 불립니다. 데이터셋 ⟨X,Y⟩가 주어지면, 전체 데이터셋에 대한 전체 오류를 파라미터 θ의 함수로 계산할 수 있습니다.

신경망 훈련의 목표는 파라미터 θ를 조정하여 오류를 최소화하는 것입니다.

경사 하강법 최적화

경사 하강법이라는 함수 최적화의 잘 알려진 방법이 있습니다. 이 방법은 손실 함수의 파라미터에 대한 도함수(다차원에서는 기울기라고 함)를 계산하고, 오류가 감소하도록 파라미터를 조정하는 아이디어입니다. 이를 다음과 같이 공식화할 수 있습니다:

  • 파라미터를 임의의 값으로 초기화: w(0), b(0)
  • 다음 단계를 여러 번 반복:
    • w(i+1) = w(i)-η∂ℒ/∂w
    • b(i+1) = b(i)-η∂ℒ/∂b

훈련 중 최적화 단계는 전체 데이터셋을 고려하여 계산되어야 합니다(손실은 모든 훈련 샘플을 통해 합산하여 계산됨을 기억하세요). 그러나 실제로는 데이터셋의 작은 부분인 미니배치를 사용하여 기울기를 계산합니다. 매번 무작위로 부분 집합을 선택하기 때문에, 이러한 방법을 확률적 경사 하강법(SGD)이라고 합니다.

다층 퍼셉트론과 역전파

앞서 본 단일 계층 네트워크는 선형적으로 분리 가능한 클래스를 분류할 수 있습니다. 더 풍부한 모델을 구축하려면 네트워크의 여러 계층을 결합할 수 있습니다. 수학적으로 이는 함수 f가 더 복잡한 형태를 가지며, 여러 단계로 계산됨을 의미합니다:

  • z1=w1x+b1
  • z2=w2α(z1)+b2
  • f = σ(z2)

여기서 α는 비선형 활성화 함수, σ는 소프트맥스 함수이며, 파라미터는 θ=<w1,b1,w2,b2>입니다.

경사 하강법 알고리즘은 동일하게 유지되지만, 기울기를 계산하는 것이 더 어려워집니다. 연쇄 미분 법칙에 따라, 도함수를 다음과 같이 계산할 수 있습니다:

  • ∂ℒ/∂w2 = (∂ℒ/∂σ)(∂σ/∂z2)(∂z2/∂w2)
  • ∂ℒ/∂w1 = (∂ℒ/∂σ)(∂σ/∂z2)(∂z2/∂α)(∂α/∂z1)(∂z1/∂w1)

연쇄 미분 법칙은 손실 함수의 파라미터에 대한 도함수를 계산하는 데 사용됩니다.

위 표현식의 가장 왼쪽 부분은 동일하므로, 손실 함수에서 시작하여 계산 그래프를 "역방향"으로 따라가며 도함수를 효과적으로 계산할 수 있습니다. 따라서 다층 퍼셉트론을 훈련하는 방법을 역전파(backpropagation) 또는 '백프롭'이라고 합니다.

계산 그래프

TODO: 이미지 출처

역전파에 대해서는 노트북 예제에서 훨씬 더 자세히 다룰 것입니다.

결론

이번 강의에서는 자체 신경망 라이브러리를 구축하고, 이를 사용하여 간단한 2차원 분류 작업을 수행했습니다.

🚀 도전 과제

첨부된 노트북에서 다층 퍼셉트론을 구축하고 훈련하는 자체 프레임워크를 구현해 보세요. 이를 통해 현대 신경망이 어떻게 작동하는지 자세히 살펴볼 수 있습니다.

OwnFramework 노트북으로 이동하여 작업을 진행하세요.

강의 후 퀴즈

복습 및 자기 학습

역전파는 AI와 ML에서 널리 사용되는 알고리즘으로, 더 자세히 공부할 가치가 있습니다.

과제

이번 강의에서 구축한 프레임워크를 사용하여 MNIST 손글씨 숫자 분류 문제를 해결하세요.