혼자 아닌 혼자가 되고 싶은 나의 인생

뉴럴 네트워크(Neural Network)란? - 가중치 업데이트 본문

컴퓨터 사이언스/신경망 기초

뉴럴 네트워크(Neural Network)란? - 가중치 업데이트

KanzesT 2022. 1. 6. 18:34

▶가중치 업데이트

 

만일 3개의 노드와 3개의 계층으로 이어진 간단한 신경망이 있다고 가정해보자.

출력 계층 한 노드의 출력값을 0.5 바꾸기 위해서는 앞선 은닉노드의 가중치를 바꾸어야 할 것이다.

하지만 그 결과로는 다른 노드의 출력 결과가 바뀔 것 이므로 이는 결코 간단한 일은 아니다.

 

이를 해결하기 위한 첫번째 방법은 무차별 대입(brute force)법 이 있을 것 이다.

하지만 계층이 많고 노드가 조그만 많아져도 학습 데이터와 그에 따른 가중치가 수 없이 많아지기 때문에 실용적이지 않을 것 이다.

 

이 때문에 가중치를 더 쉽게 구하기 위한 방법이 바로 경사 하강법(gradient descent) 이다.

경사 하강법은 함수의 최저점을 구하기 위한 매우 좋은 접근 방법이며, 함수가 매우 복잡하고 어려워 대수학을 이용해 수학적으로

접근하기 힘들 때도 잘 동작한다. 심지어 매개변수가 많아서 다른 접근 방법이 실패하거나 현실적이지 못할 때 에도 경사하강법은 잘 작동한다. 데이터가 불완전하거나 함수가 완벽히 표현되지 못하거나 잘못된 발걸음을 내디딘 경우에도 탄력적으로 잘 대응한다.

 

오차값은 제곱오차 (squared error) 방식을 사용한다.

 

●제곱 오차 방식은 다양한 장점이 있다.

- 제곱 오차방식은 경사 하강법의 기울기를 구하는 대수학이 간단해진다.

- 부드럽고 연속적이므로 경사 하강법이 잘 동작하게 된다, 갑자기 값이 상승하거나 빈 틈이 존재하는 오류가 생기지 않는다.

- 최저점에 접근함에 따라 경사가 작아지므로 오버슈팅을 방지한다.

 

 

우리의 목표는 신경망의 오차를 최소화 하는 일이며, 이를 만족하는 가장 적합한 가중치를 찾는 일 이다.

해당 그림에서는 조정해야할 1개의 가중치가 존재하므로 2차원의 함수를 가진다.

만일 조정해야할 가중치가 2개라면? 오차를 나타내는 축 1개와 2개의 가중치 축이 존재할 것 이다.

즉 3차원 표면(산맥에서) 최저의 오차(골짜기)를 찾는 것 처럼 보일 것 이다.

그 이상의 가중치를 최적화 하는 것은 시각적으로 매우 힘들지만 경사하강법을 사용해 최저 값을 찾아 간다는 것은 여전히 동일하다.

 

n개의 노드의 모든목표 값과 실제 값의 차이를 구해 이를 모두 제곱하고 더해야 한다.

다음과 같은 3개의 계층에 각각 2개의 노드가 있다고 가정하자.

은닉계층(j) 그리고 출력계층(k)사이의 에러를 모두 구하기 위해서는 다음과 같은 식을 사용해야 한다.

 

노드 n에서의 결과 값인 O_n은 오직 이와 연결 되는 연결 노트로 부터 영향을 받게 된다.

다시 말해서 노드 k의 결과 값인 O_k는 그와 연결되는 가중치 w_jk에 의해서만 영향을 받게 된다.

즉 식에서 n은 필요로 하지 않으며 k로 대체할 수 있다.

이로써 식을 좀더 간단히 하기 위해서 시그마 기호를 제거할 수 있다.

 

이 후 연쇄법칙을 사용해 원래 식을 2 조각으로 나눈다.

 

이후 

임을 기억한다면

 

다음과 같이 미분할 수 있다.

앞서 순전파에서 설명했던 것 처럼,

O_k는 노드k의 결과값 으로, 입력 신호의 가중치 합에 시그모이드 함수를 적용한 값 이다.

따라서 다음과 같이 쓸 수 있다.

 

시그모이드의 미분 값은 상당히 간단하기로 유명한데, 시그모이드가 자주 사용되는 주된 이유이다.

 

시그모이드의 미분을 이용하며, 간소화를 위해 불필요한 2를 제거한다면 최종 결과는 다음과 같다.

 

----------------------------------------------------------------------------------------------------

* 은닉층과 출력층 사이의 오차율

 

여기서 중요한 것은 Sigmoid내부에 있는 값은 j번째 결과 값과 가중치 jk를 곱한 값 이므로 결국엔 k번째 출력 값 이라고 할 수 있다.

 

 

----------------------------------------------------------------------------------------------------

 

 

마찬가지로 은닉층과 입력층 사이의 가중치를 업데이트 하기 위한 오차 함수 또한

은닉 계층에서 재조합된 역전파 오류 e_j 이  (목표 값-실제값)을 대체하여 정의할 수 있다.

 

 

 

 

----------------------------------------------------------------------------------------------------

* 입력층과 은닉층 사이의 오차율

 

----------------------------------------------------------------------------------------------------

Comments