Backpropagation and Neural Networks

·2024년 1월 2일

딥러닝 기초 이론

목록 보기
4/14

Computational graphs

  • 수학적 계산을 시각화하는 도구로, 노드(Node)와 엣지(Edge)를 이용해 연산과 데이터의 흐름을 나타낸다
  • 딥러닝에서는 복잡한 계산 과정을 계산 그래프로 표현하여 모델의 작동 원리를 이해하거나, 그래디언트를 효율적으로 계산하는 데 사용한다
  • 계산 그래프의 노드는 주로 연산을, 엣지는 데이터의 흐름을 나타낸다
  • 딥러닝에서는 계산 그래프를 이용해 역전파(Backpropagation) 알고리즘을 구현한다
  • Computational graphs의 주요 장점은 복잡한 수식을 단순화하고, 미분 계산을 용이하게 한다는 것이다

Backpropagation(역전파)

  • 신경망을 학습시키는데 사용되는 알고리즘
  • 이 알고리즘은 신경망의 출력과 기대 출력 사이의 오차를 계산한 후, 이 오차를 신경망의 각 레이어로 역으로 전파하여 가중치를 업데이트하는 방식으로 작동한다
  • gradient를 얻기위해 computational graph 내부의 모든 변수에 대해 chain rule을 재귀적으로 사용한다

역전파의 주요 단계

  • 순전파(Forward Propagation)
    • 초기 가중치와 입력 데이터를 사용하여 신경망을 통해 데이터를 전파하고 출력 생성
  • 오차 계산
    • 출력과 기대 출력(타겟) 사이의 차이를 계산하여 오차를 얻는다
    • 이 오차는 일반적으로 손실 함수(Loss Function)를 통해 계산된다
  • 역전파(Backward Propagation)
    • 오차를 신경망의 뒤쪽 레이어로 역전파하면서 각 레이어의 가중치에 대한 오차의 기울기(Gradient) 계산
    • 이를 위해 연쇄 법칙(Chain Rule)이 사용된다
  • 가중치 업데이트
    • 계산된 기울기를 사용하여 가중치 업데이트
    • 이 때, 학습률(Learning Rate)이라는 하이퍼파라미터가 사용된다

Chain Rule

  • 딥러닝에서는 연쇄 법칙을 이용해 역전파(Backpropagation) 알고리즘을 구현한다
  • 딥러닝에서 각 레이어의 연산은 이전 레이어의 출력에 기반한 합성 함수로 볼 수 있다
  • Chain Rule은 이런 합성 함수의 미분을 구하기 위한 규칙인데, 이를 통해 출력층에서 입력층으로 오류를 효과적으로 전파할 수 있다
  • 이 과정에서 각 노드에서의 로컬 그래디언트를 계산하고, 이를 곱하여 전체 그래디언트를 얻게 된다
  • 딥러닝 모델의 학습에서는 이 체인 룰을 통해 손실 함수의 그래디언트를 계산하고, 이를 이용해 모델의 가중치를 효과적으로 업데이트하게 된다
  • Chain Rule은 미분학에서 복합 함수의 미분을 계산하는 기본적인 방법이다

Local Gradient

  • 각 노드에서 직접 계산할 수 있는 그래디언트를 의미한다
  • 즉, 해당 노드의 출력이 어떻게 입력에 의존하는지를 나타내는 미분값이다
  • 그래디언트가 전역적인 개념이라면, 로컬 그래디언트는 특정 지점에서의 그래디언트를 의미한다
  • 각 레이어에서의 로컬 그래디언트를 계산하고, 이를 역방향으로 전파하여 각 가중치에 대한 그래디언트를 계산한다

Upstream Gradient

  • 역전파 과정에서 상위 노드로나 레이어에서 전달되어 오는 그래디언트를 의미한다
  • 이는 상위 노드의 출력에 대한 손실 함수의 미분값, 즉 '어떻게 상위 노드의 출력이 전체 손실에 영향을 미치는가?'를 나타낸다
  • 이 업스트림 그래디언트와 현재 레이어에서의 로컬 그래디언트를 곱하여, 현재 레이어의 파라미터에 대한 그래디언트를 계산한다. 이렇게 계산된 그래디언트는 다시 '아래쪽'의 레이어로 전달되어, 전체 네트워크에 대한 그래디언트 계산을 완료한다

Neural Networks

  • 광범위하게 말하면 신경망은 비선형의 복잡한 함수를 만들기 위해서 간단한 함수들을 계층적으로 여러개 쌓아올린 함수들의 집합(class)이다
  • 이는 인간의 뇌를 구성하는 신경 세포인 뉴런의 작동 원리를 모방하여 만들어졌다
  • 신경망은 여러 개의 레이어로 구성되며, 각 레이어는 여러 개의 뉴런으로 이루어져 있다
  • 각 뉴런은 입력을 받아 가중치를 곱하고, 편향을 더한 후 활성화 함수를 통과시켜 출력값을 만든다. 이 출력값은 다음 레이어의 입력으로 사용된다

출처 및 참조

https://youtu.be/d14TUNcbn1k?si=rwFe2M6JOcB6KLpE

profile
공부 기록

0개의 댓글