느리지만 꾸준히, 코딩

역전파 본문

프로그래밍/AI

역전파

slowin 2025. 2. 10. 19:01

여러 층으로 구성된 뉴럴 네트워크(Neural Network)의 구조를 이해하기 쉽게 정리해봄

📌 뉴럴 네트워크를 학생들이 여러 줄로 서 있는 구조로 이해하기

👉 상황

  • 4명의 학생(A, B, C, D)한 줄로만 서 있는 것이 아니라 여러 층(줄)으로 서 있음.
  • 즉, 한 줄이 아니라 입력층(첫 번째 줄), 은닉층(중간 줄), 출력층(마지막 줄)으로 구성됨.
  • 각 학생(뉴런)은 자신이 받은 정보를 가공해서 다음 층으로 전달함.

⏳ Step 1: 순전파 (Forward Propagation)

학생들이 여러 줄(층)로 서 있음

💡 예제:
문제 = "5 + 3 = ?"을 풀어라

입력층 (Input Layer) 은닉층 (Hidden Layer) 출력층 (Output Layer)
A1: "5를 입력" B1: "이걸 2배 해야겠어!" C1: "이제 1을 빼야겠어!"
A2: "3을 입력" B2: "이건 그냥 놔둘래!" C2: "그대로 전달!"

1️⃣ A층(입력층)

  • A1: "나는 5를 입력할게!"
  • A2: "나는 3을 입력할게!"

2️⃣ B층(첫 번째 은닉층)

  • B1: "A1이 5라고 했으니까, 2배 해서 10으로 만들자!"
  • B2: "A2가 3이라고 했으니 그냥 놔둘래."

3️⃣ C층(출력층)

  • C1: "B1이 10이라고 했으니, 1을 빼서 9로 만들자!"
  • C2: "B2가 3이라고 했으니 그대로 전달!"

🎯 출력층의 최종 답: 9 (틀림)
→ 이제 역전파를 진행해서 고쳐야 함!


🔄 Step 2: 역전파 (Backward Propagation)

선생님(정답 제공자): "정답은 8인데, 너희가 9라고 했어! 어디서 틀렸는지 확인하자!"

1️⃣ C층(출력층) 피드백

  • C1: "아! 내가 1을 빼는 게 아니라 2를 빼야 했어!"
  • C2: "내가 준 정보는 문제 없네!"
    C층이 값을 수정하고 B층에 피드백 전달

2️⃣ B층(은닉층) 피드백

  • B1: "아, 2배 하는 게 아니라 1.5배만 해야겠네!"
  • B2: "나는 잘했으니까 수정할 필요 없어."
    B층이 값을 수정하고 A층에 피드백 전달

3️⃣ A층(입력층) 피드백

  • A1: "5를 입력할 때, 더 신경 써야겠다!"
  • A2: "나는 문제 없었네!"

🔄 Step 3: 수정된 데이터로 다시 학습

🔹 시간: 2초

  • 모든 학생들이 피드백을 반영하여 다시 답을 만들어 봄.
  • 반복할수록 점점 정답에 가까워짐! 🎯

📌 뉴럴 네트워크 정리

💡 뉴럴 네트워크는 여러 층이 존재하며, 각 층이 정보를 조금씩 변형해서 다음 층으로 전달하는 방식!

개념 설명 예시
입력층 문제의 입력 값을 받음 5와 3을 입력
은닉층 데이터를 변형해서 처리함 "2배 하기" → "빼기 1"
출력층 최종 답을 계산 9 (틀림)
역전파 틀린 값을 수정하면서 다시 전달 "2배가 아니라 1.5배!"

🔥 결론

  • 뉴럴넷은 한 줄이 아니라 여러 줄(층)이 존재함.
  • 순전파: 입력층 → 은닉층 → 출력층 순서로 정보 전달
  • 역전파: 출력층 → 은닉층 → 입력층으로 틀린 부분을 수정
  • 반복 학습: 여러 번 수정하면서 점점 정답을 찾아감

'프로그래밍 > AI' 카테고리의 다른 글

업스테이지 CV 경진대회 정리  (0) 2025.03.02
tensor: dim 이해하기  (0) 2025.02.11
머신 러닝 발전 5단계  (0) 2025.02.10
딥러닝 학습노트  (0) 2025.02.10
upstage: mlops 프로젝트  (0) 2025.02.03