코딩 다이어리

순전파(Foward Propagation)와 역전파(Back Propagation) 본문

머신러닝/딥러닝

순전파(Foward Propagation)와 역전파(Back Propagation)

yc7764 2022. 12. 18. 15:32

1. 순전파(Foward Propagation)란?

  • 인공 신경망에서 입력층에서 출력층 방향으로 연산을 진행하는 과정
  • 즉, 주어진 입력이 입력층으로 들어가서 은닉층을 지나 출력층에서 예측값을 얻는 과정
  • 신경망의 순전파는 결과적으로 행렬의 곱셈으로 이해할 수 있으며, 학습 가능한 매개변수인 가중치 w와 편향 b의 개수를 추정할 수 있음

  • 왼쪽의 그림과 같은 인공 신경망이 있다고 가정할 때, 학습가능한 매개변수인 w b의 개수는 총 합해서 8개
  • 행렬곱 관점으로 보면 입력의 차원이 3, 출력의 차원이 2이고, 3차원 벡터에서 2차원 벡터가 되기 위해서 3 × 2 행렬을 곱한 것
  • 편향 b의 개수는 항상 출력의 차원을 기준으로 개수가 같음

  • y1과 y2를 구하는 과정을 수식으로 나타내면 위의 수식으로 표현할 수 있음
  • 입력 x1, x2, x3을 벡터 X로 w1, w2, w3, w4, w5, w6를 원소로 하는 3 × 2 행렬을 가중치 행렬 W로 편향 b1, b2를 원소로하는 벡터를 B로 y1, y2를 원소로하는 출력 벡터를 Y 정의하면 Y = XW + B로 나타낼 수 있음

행렬곱의 병렬 연산

  • 위의 그림에서는 1개가 아닌 4개의 sample을 병렬 연산하고 있으며,학습 가능한 매개변수의 수는 여전히 8개
  • 인공 신경망이 다수의 샘플을 동시에 처리하는 것을 배치 연산이라고 함

다층 신경망의 순전파

  • 여러 개의 층을 쌓은 다층 신경망 역시 행렬곱을 이용해 순전파를 이해할 수 있음
  • 각 층의 입력과 출력의 개수는 다음과 같음
    1. 입력층 : 4개의 입력과 8개의 출력
    2. 은닉층1 : 8개의 입력과 8개의 출력
    3. 은닉층2 : 8개의 입력과 3개의 출력
    4. 출력층 : 3개의 입력과 3개의 출력

2. 역전파(Back Propagation)란?

  • 순전파와는 반대 방향으로 연산을 진행하며 가중치를 업데이트
  • 예측값과 실제값으로부터 오차를 계산하고, 오차로부터 가중치와 편향을 업데이트
  • 경사하강법(Gradient Descent)을 통해서 오차가 최소화되는 방향으로 진행
  • 복잡한 계산은 미분의 연쇄법칙(Chain Rule)을 통해서 그 값을 계산

  • 노드를 지나칠 때마다 활성함수를 적용(활성함수를 적용하기 이전을 net, 이후를 out이라고 함)
  • 역전파 과정
    • 기존에 설정되있는 가중치를 이용해 모든 net과 out을 계산(순전파 과정)
    • 기존의 가중치에서 전체 오차를 각 가중치로 편미분한 값을 감소시킴(오차를 줄임)
    • 즉, 아래의 수식을 이용해 모든 가중치 값을 업데이트 함(W는 가중치, t는 시간, Etotal은 전체 오차)

  • 실제 예시를 통해 가중치를 업데이트하는 과정은 아래의 링크 사이트에서 확인

https://wikidocs.net/37406

 

07-05 역전파(BackPropagation) 이해하기

인공 신경망이 순전파 과정을 진행하여 예측값과 실제값의 오차를 계산하였을 때 어떻게 역전파 과정에서 경사 하강법을 사용하여 가중치를 업데이트하는지 직접 계산을 통해 이해해봅시다.…

wikidocs.net

  • 역전파 알고리즘의 한계
    • 기울기 소실(Vanishing gradient)
    • 과적합(Overfitting)
    • 은닉층과 노드의 수가 늘어나면서 계산량이 많아짐
    • 극소값이 두 개 이상 존재하는 함수에 대해 오차가 가장 작은 최소값을 찾지 못할 수 있음

참고사이트

https://wikidocs.net/37406

 

07-05 역전파(BackPropagation) 이해하기

인공 신경망이 순전파 과정을 진행하여 예측값과 실제값의 오차를 계산하였을 때 어떻게 역전파 과정에서 경사 하강법을 사용하여 가중치를 업데이트하는지 직접 계산을 통해 이해해봅시다.…

wikidocs.net

https://goofcode.github.io/back-propagation

 

딥러닝 기초 - 오차역전파(back propagation) 알고리즘

1.역전파(back propagation) 알고리즘은 무엇일까? 역전파 알고리즘이라는 것은 인공지능의 한 분야인 인공신경망, artificial neural network, ANN를 학습시키기 위한 가장 기본적이고 일반적인 알고리즘이

goofcode.github.io

https://re-code-cord.tistory.com/entry/%ED%95%B4%EB%AC%BC%ED%8C%8C%EC%A0%84%EB%A7%90%EA%B3%A0-%EC%97%AD%EC%A0%84%ED%8C%8C

 

딥러닝의 핵심, 역전파

역전파(Back Propagation)란 무엇일까? 역전파의 의미 우선 역전파의 정의에 대해서 알아보자. 역전파는 신경망의 각 노드가 가지고 있는 가중치(Weight)와 편향(Bias)을 학습시키기 위한 알고리즘으로,

re-code-cord.tistory.com

 

'머신러닝 > 딥러닝' 카테고리의 다른 글

RNN(Recurrent Neural Network, 순환 신경망)  (1) 2023.01.19
CNN  (0) 2022.12.23
경사하강법  (0) 2022.12.22
활성화 함수(Activation Function)  (0) 2022.12.08
퍼셉트론(Perceptron)  (0) 2022.12.07
Comments