-
Back Propagation 오차역전법Machine Learning 2024. 6. 8. 15:23
Back Propagation을 이해해보자.
Back Propagation 오차역전법
우리가 관심있는 것은 각 w (weight) 에 대한 L (Loss) 의 편도함수를 전부 구하는 것이다.
이때 naive 하게 일일이 각 w 에 대한 L 편미분을 일일이 구하는 것은 가능하지만 계산 비용이 무척 많이 들게 된다.
그래서 쉽게 계산하기 위해 나온 방법이 Back Propagation
키 포인트는 다음 두 가지가 있음.
1. w에 대한 L의 편미분은 델타값 (편미분 값인데 계산이 용이하도록 치환한 값) 과 연관되어 있음
2. 각 층의 델타값은 내 다음 층의 델타값으로 구할 수 있음. 즉 l+1 -> l
구하는 방법은 다음과 같다.
1. Foward Propagation으로 각 층의 출력을 모두 계산한다.
2. 가장 마지막 레이어의 델타 값을 직접 구하고 구한 값으로 Back 방향으로 각 층의 델타 값을 계산해나감.
3. 모든 델타값을 알게 되므로 모든 w에 대한 L 의 편도함수를 구할 수 있음.


l+1 델타로 l의 델타를 구할 때, s 에 대한 x 의 미분값은 어떻게 계산되는 건가?-> activation fuction을 편미분하고 거기에 해당 s값을 넣으면 되는데 s값을 forward propagation에서 이미 계산이 되니 이걸 저장해놓아야 하는 건가? activation fucn의 입력값 s 와 출력값 x를 둘 다 저장해놓는다?
(ReLU를 쓰면 1이 되므로 계산하지 않아도 된다!)-> activation fucntion으로 sigmoid 도 있고 ReLU도 있는데 ReLU를 쓰면 s에 대한 x의 미분값은 1이 된다.
d/dx sigmoid(x) = sigmoid(x)(1-sigmoid(x)). (안 쓰임. 계산이 느려서?)
ReLU(x) = max(0,x)d/dx ReLU(x) = 0 (x<0) or 1 (x>0)
'Machine Learning' 카테고리의 다른 글
LLM 트랜스포머 동작 흐름 (2) Decoding (0) 2025.06.20 LLM 트랜스포머 동작 흐름 (1) Encoding (0) 2025.05.18