코딩 다이어리
순전파(Foward Propagation)와 역전파(Back Propagation) 본문
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개
- 인공 신경망이 다수의 샘플을 동시에 처리하는 것을 배치 연산이라고 함
- 여러 개의 층을 쌓은 다층 신경망 역시 행렬곱을 이용해 순전파를 이해할 수 있음
- 각 층의 입력과 출력의 개수는 다음과 같음
- 입력층 : 4개의 입력과 8개의 출력
- 은닉층1 : 8개의 입력과 8개의 출력
- 은닉층2 : 8개의 입력과 3개의 출력
- 출력층 : 3개의 입력과 3개의 출력
2. 역전파(Back Propagation)란?
- 순전파와는 반대 방향으로 연산을 진행하며 가중치를 업데이트
- 예측값과 실제값으로부터 오차를 계산하고, 오차로부터 가중치와 편향을 업데이트
- 경사하강법(Gradient Descent)을 통해서 오차가 최소화되는 방향으로 진행
- 복잡한 계산은 미분의 연쇄법칙(Chain Rule)을 통해서 그 값을 계산
- 노드를 지나칠 때마다 활성함수를 적용(활성함수를 적용하기 이전을 net, 이후를 out이라고 함)
- 역전파 과정
- 기존에 설정되있는 가중치를 이용해 모든 net과 out을 계산(순전파 과정)
- 기존의 가중치에서 전체 오차를 각 가중치로 편미분한 값을 감소시킴(오차를 줄임)
- 즉, 아래의 수식을 이용해 모든 가중치 값을 업데이트 함(W는 가중치, t는 시간, Etotal은 전체 오차)
- 실제 예시를 통해 가중치를 업데이트하는 과정은 아래의 링크 사이트에서 확인
07-05 역전파(BackPropagation) 이해하기
인공 신경망이 순전파 과정을 진행하여 예측값과 실제값의 오차를 계산하였을 때 어떻게 역전파 과정에서 경사 하강법을 사용하여 가중치를 업데이트하는지 직접 계산을 통해 이해해봅시다.…
wikidocs.net
- 역전파 알고리즘의 한계
- 기울기 소실(Vanishing gradient)
- 과적합(Overfitting)
- 은닉층과 노드의 수가 늘어나면서 계산량이 많아짐
- 극소값이 두 개 이상 존재하는 함수에 대해 오차가 가장 작은 최소값을 찾지 못할 수 있음
참고사이트
07-05 역전파(BackPropagation) 이해하기
인공 신경망이 순전파 과정을 진행하여 예측값과 실제값의 오차를 계산하였을 때 어떻게 역전파 과정에서 경사 하강법을 사용하여 가중치를 업데이트하는지 직접 계산을 통해 이해해봅시다.…
wikidocs.net
https://goofcode.github.io/back-propagation
딥러닝 기초 - 오차역전파(back propagation) 알고리즘
1.역전파(back propagation) 알고리즘은 무엇일까? 역전파 알고리즘이라는 것은 인공지능의 한 분야인 인공신경망, artificial neural network, ANN를 학습시키기 위한 가장 기본적이고 일반적인 알고리즘이
goofcode.github.io
딥러닝의 핵심, 역전파
역전파(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