본문 바로가기
  • 비둘기다
  • 비둘기다
  • 비둘기다
AI/Deep learning from Scratch

[머신러닝, 딥러닝] 오차역전파법 (1) - 역전파와 계산법칙

by parzival56 2023. 2. 14.

이전 장에서는 신경망에서의 가중치 매개변수의 기울기를 수치 미분을 이용하여 구했습니다. 그러나 이 방법의 단점이라고 한다면 오래 걸린다는 것입니다. 그래서 나오는 개념이 이를 보완한 오차역전파법입니다.

 

오차역전파법은 크게 수식과 그래프로 이해할 수 있습니다. 이번 페이지에서는 계산 그래프 형태를 다룰 것입니다.

 

계산 그래프는 계산 과정을 그래프로 나타낸 것입니다. 그래프는 자료 구조의 일종으로 복수의 노드와 에지로 표현됩니다. (에지는 노드 사이의 직선을 의미합니다.)

 

예를 들어 문제가 있습니다.

"나는 슈퍼에서 1개에 100원인 사과를 2개 샀다. 이때 지불 금액을 구하시오. 단, 소비세가 10% 부과됩니다."

 

계산 그래프는 위와 같은 형태로 나올 것입니다. 화살표 위에 적힌 내용은 현재까지의 결과를 나타내고 있고 원 안에 들어가는 것들은 계산 부호입니다. 한 줄로 x2, x1.1이라고 적을 수 있지만 위와 같이 적는 이유는 연산과정과 외부 영향에 대한 변수들을 따로 분리하기 위해서입니다. 당연히 계산 부호이기 때문에 +, -, / 또한 들어갈 수 있습니다. 

근본적인 계산 이외의 것들인 사과의 개수와 소비세는 따로 분리해 준 것을 볼 수 있습니다.

 

예를 들어 또 위의 문제에 귤을 추가한다고 해도 같을 것입니다. 사과는 그대로 두고 150원짜리 귤을 3개를 더 산다고 할 때의 지불 금액을 구한다면 다음과 같을 것입니다.

사과와 귤의 금액을 합산한거에 소비세의 비율을 고려해야 하기 때문에 +를 기준으로 에지가 모입니다.

 

매우 간단하지만 이렇게 그래프의 왼쪽에서 오른쪽으로 향하는 방향을 순전파, 반대를 역전파라고 합니다.

역전파는 미분을 계산할 때 매우 중요한 역할을 합니다. 

 

계산 그래프는 '국소적 계산'에 집중합니다. 국소적 계산이란, 자신과 직접적으로 관계된 작은 범위의 속한 정보 이외에는 상관하지 않는다는 것입니다. 

예를 들어 위 그림처럼 사과를 샀고 이외에 여러 식품을 구입하여 최종금액이 사과 제외 4000원이 나왔습니다. 그래서 내가 수박을 샀든 계란을 샀든 관계없이 사과 이외의 식품들의 가격을 합했더니 4000원이라는 사실만이 중요한 게 되는 것입니다. 

계산 그래프를 사용하는 이유는 국소적 계산뿐만 아닙니다. 바로 전체적인 과정이 한 눈에 보여 역으로 과정을 되감는 역전파에서 미분을 할 때 요소들을 한 번에 체크할 수 있다는 점입니다. 

 

역전파는 위 사진처럼 굵은 선으로 표시합니다. 아래의 숫자에는 국소적 미분을 한 값을 적어줍니다.


순전파와 반대인 역전파에서는 국소적 미분을 전달하는데 이 원리는 연쇄법칙을 따릅니다.

먼저 계산 그래프에서의 역전파를 살펴보면 다음과 같습니다.

y=f(x)라는 계산을 역전파로 전달한다고 했을 때 역전파의 계산 절차는 신호 E에 국소적 미분을 곱하여 전달합니다. 

예를 들어 y = x**2 (x제곱)의 국소적 미분이라면 2x가 되는 것입니다. 

 

연쇄법칙은 합성함수에 대한 미분의 성질 중 하나입니다. 합성함수란 여러 개의 함수로 구성된 함수입니다. 

이 중 합성함수의 연쇄법칙이란 "합성함수의 미분은 구성 함수의 미분의 곱으로 나타낼 수 있다."입니다.

 

연쇄법칙을 계산 그래프로 나타내면 다음과 같습니다.

위에서 에지에 적힌 식을 약분하면 더욱 간단하게 표현할 수 있을 것입니다. 과정은 간단하게 z부터 시작해서 새로운 기호가 나타나면 해당 기호로 출력이 이루어지기 때문에 해당 기호에 대한 편미분을 하고 이전의 값을 곱해주는 과정입니다.


역전파

 

먼저 덧셈 노드의 역전파입니다. z=x+y가 있을 때 z을 x에 대해 미분한 것과 y에 대해 미분한 것 모두 1입니다.

그래서 덧셈 노드 같은 경우에는 어느 방향으로 가도 *1이 나옵니다. 이전 노드에서의 기호로 미분한 값이 1이기 때문에 가장 처음에 등장하는 미분식의 값에 *1 한 값이 나머지에 나오는 것입니다.

다음은 곱셈 노드의 역전파입니다. z=xy라는 식이 있을 때 x와 y에 대한 미분은 각각 y와 x입니다.

원리는 위와 동일하지만 *1이 들어가는 자리에 해당 미분값이 들어가게 됩니다.

 

위의 두 가지 노드들을 활용한 예시입니다.


이상으로 역전파에 대한 기본적인 계산에 관한 개념들을 알아봤습니다.

댓글