페이지

2018년 3월 26일 월요일

CHAPTER 10 여러 노드에서 가중치 학습하기

이 책 앞부분에서 선형함수의 매개변수인 기울기의 값을 조정해감으로써 선형분류자를 업데이트해나갔던 것을 기억할 겁니다. 그때 오차라는 개념을 공부한 바 있습니다.
오차는 예측 값고 ㅏ실제 값(정담)과의 차이를 의미하는데, 우리는 이 오차에 기반을 두고선형 분류자를 정교화해나갔습니다. 오차와 기울기의 관계가 매우 단순했기 때문에 이를 조정해가는 ㅓㄳ은 별로 어려운 과정은 아니였습니ㅏㄷ.
그렇다면 여러 개의 노드가 결과 값과 오차에 영향을 주는 경우에는 가중치를 어떻게 업데이트해야 할까요? 이를 그림으로 표현하면 다음과 같습니다.

                     <---- p="">(1) ->W1.1(3.0)->   (1)  -> 결과 값의 오차
(2) -> W2.1(1.0) ->
                      <---- p="">
결과 노드에 영향을 주는 노드가 한 개인 경우에는 월씬 간단했지만, 이와 같이 2개의 노드를 가지는 경우에는 결과 값의 오차를 어떻게 활용해야 할까요?

오차를 하나의 가중치 업데이트에만 사용하는 것은 합리적이지 못합니다. 나머지 하나의 가중치를 무시하는 것이기 때문이죠. 오차가 발생하는데에는 이 다른 연결 노드분도 공헌을 했다는 사실을 무시할 수 없다는 말입니다.
물론 수많으 연결 중에 단 하나의 연결만 해당 오차의 발생에 영향을 미치느느 경우가 있을 수는 있겠지만, 이런 가능성은 매우 낮습니다. 설령 우리가 이리미 정확한 값을 가지게 된 가중치의 값을 변경해 상황을 악화시키게 된다고 하더라도 이런상황은 다음번의 업데이트를 통해 개선될 것입니다.

한가지 방법은 다음 그리과 같이 모든 연결된 노드에 대해 오차를 균일하게 나누어 분배하는 것입니다.

                     <----1 p="">(1) ->W1.1(3.0)->   (1)  -> 결과 값의 오차
(2) -> W2.1(1.0) ->
                      <----1 p="">
또 다른 방법은 오차를 나누어 분배하지만 차별을 두는 것인데, 더 큰 가중치를 가지는 연결에 더 큰 오차를 분배하는 것입니다. 더 큰 가중치를 가진다는 것은 그만큼 오차의 형성에 더 큰 영향을 줬다는 의미이기 때문입니다. 이를 그림으로 표현하면 다음과 같습니다.

                     <----3 p="">(1) ->W1.1(3.0)->   (1)  -> 결과 값의 오차
(2) -> W2.1(1.0) ->
                      <----1 p="">
이 그림에서 2개의 노드는 한 노드에 서로 다른 가눙치로 영햐응ㄹ 줬습니다. 각 연결의 가중치는 3.0과 1.0 입니다. 만약 오차르 ㄹ이들 가중치에 비례해 나눠준다면 오차의 3/4이 위쪽 가중치를 업데이트하는 데에 사용되고 나머지 1/4이 아래쪽으 ㅣ가중치를 업데이트하는데에 사용될 것입니다.

이방법은 노드가 더 많아지더라도 동일하게 적용 가능합니다. 만약 100개의 노드가 다음 계층의 노드에 연결되어 있다고 한다면 우리는 오차를 100개의 연결에 나누어주되 그 값은 각각의 가중치에 따라, 즉 각각의 견결이 오차에 영향을 주는 정도에 비례해서 전달하면 되는 것입니다.

따라서 우리는 가중치를 두 가지 방법을 ㅗ활용한다는 점을 확인할 수 있습니다. 우선 앞에서 여러 사례를 살펴본 바오 ㅏ같이 신호를 하나의 계층에서 다음 계층으로 전파하는데에 가중치를 이용합니다. 두 번째로 오차를 하나의 계층에서 직전 계층으로, 즉 역으로 전파하는 데에도 가중치를 이요합니다. 첫 번째 방식은 앞에서 이비본 전파법이고 두 번째 방법을 역전파(backprogagation)라고 부릅니다.

만약 출력 계층의 2개의 노드를 가진다면 우리는 두 번째 노드에서 대해서도 동일한 작업을 하게 됩니다. 두 번째 노드의 결과 값 역시 그 자체의 오차를 가지므로 연결되는 노드에 대해 이 오차를 분배해주면 되는 것입니다. 다음 장에서 이에 대해 상세히 살펴보게습니다.

댓글 없음: