머신러닝

4-2 뉴럴 네트워크 XOR 로직의 back-propagation 알고리듬

coding art 2021. 7. 4. 13:03
728x90

뉴럴 네트워크의 뉴론 모델링

2개의 웨이트와 1개의 편향(바이어스)을 사용하는 퍼셉트론으로 XOR 논리 문제를 풀 수 없으므로 그 대안으로 다층 뉴럴 네트워크에 의한 해법이 연구되었다. 1개의 퍼셉트론으로 XOR 논리 문제를 풀 수 없다는 것은 쉽게 말해서 웨이트와 편향의 수가 부족하다는 점을 의미한다고도 볼 수 있다. 따라서 제안된 기본적인 뉴럴 네트워크의 구조는 웨이트 수가 2개에서 4개로 편향 수가 1개에서 2개로 늘어남과 아울러 Sigmoid 처리 단을 부가하여 생명체의 뉴론에서 관찰되는 firing 현상을 포함하여 시뮬레이션하게 된다. 하지만 이러한 뉴럴 네트워크 구조는 생명체에서 관찰할 수 있는 즉 하나의 입력에 대해 한 번의 웨이팅이 일어나는 시냅스 신경망 구조와 달라지는 분기점이 되기도 한다. 이 점에 관해서는 다음과 같은 병렬형 뉴럴 네트워크를 참조하도록 하자.

하나의 입력 세트(x1, x2)에 대해서 2개의 독립적인 뉴론들이 병렬로 연결되었다면 결국 4개의 랜덤한 웨이트 값들이 도입되는 셈이므로 아예 인수분해 또는 AND 로직 개념으로 4개의 웨이트를 가지는 하나의 뉴론으로 모델하는 것도 합리 적일 것이다.

 

뉴럴 네트워크 구조와 파이선 코드 구조

다음 페이지의 그림에서 XOR 논리 문제를 풀 수 있는 가장 간단한 구조의 뉴럴 네트워크(NN:Neural Network) 구조와 파이선 코드 xor_nn_01(3.5편에 실려 있음)을 대조해 보자. Sigmoid 가 위치한 곳까지가 layer1 에 해당하며 여기서 생성되는 2개의 중간 입력 데이터가 뒤따르는 layer2 에 입력되는 구조다.

Layer1, Layer2 Backpropagation 계산 알고리듬

layer1에서 합성함수의 형태의 구조를 살펴보자. layer1Z = WX + b를 사용하여 sigmoid 함수인 g(Z)으로 두자.

layer1 layer2가 주어진 learning rate 값과 반복학습 횟수 조건하에서 layer2가 아직 수렴하지 못해 현재의 출력 값과 주어진 출력 값과의 오차가 크면 중간 계산값에 해당하는 layer1도 수렴하지 못한 상태이므로 뒷단 layer2 와 연동하여 웨이트 값들과 바이아스 값들의 업데이트가 필요하다. Minsky Papert 교수 시절에 방법을 몰랐던 웨이트 와 바이아스 업데이트 방법론에 해당하는 내용이다. 즉 합성함수 g(Z)에 관해서 웨이트 와 바이아스에 대한 편미분에 의해서 gradient 성분들을 얻어낼 수 있어야 경사하강법 적용이 가능해진다.

Chain rule을 사용하여 g(Z) sigmoid 함수의 방향별 편미분을 계산해 보도록 하자.

엑스포넨셜 함수를 포함하고 있는 Sigmoid 함수는 선형 함수들에 비해 미분과정이 다소 복잡하겠지만 TensorFlowComputational Graph 구조에 따라 노드와 엣지로 나누어 충분히 계산 가능하다. 아울러 편미분 결과 자체도 웨이트와 바이아스의 함수이므로 계산이 가능하다.

즉 주어진 입력 벡터에 대하여 n번째 steps에서 웨이트와 바이아스를 사용하여 cost 함수 값 계산이 가능하면 동시에 위에서 유도된 편미분 기울기 값들도 계산이 가능하기 때문에 (n+1)번째 steps에서 사용할 웨이트 와 바이아스의 업데이트된 값들을 얻을 수 있다.

웨이트와 바이아스를 업데이트 하기 위한 이 식에서 cost 함수가 Z를 사용하여 합성함수의 형태로 주어지므로 앞에서 Chain rule에 의해 유도해둔 관계식을 사용하도록 한다.

 

layer2에 대해서도 layer1에서처럼 sigmoid 함수 형태의 합성함수이므로 마찬가지 방법으로 편미분을 계산할 수 있다. 이와같이 각 레이어 별로 웨이트와 편향 값 계산이 가능하면 forward backward propagation 차리가 가능해진다. 더 상세한 내용은 상당한 지면 할애를 요하므로 Deep Learning from Scatch 밑바닥부터 시작하는 딥러닝, 한빛미디어를 책 전체를 참고하면 될 듯하다.

 

다음 단계에서는 이와 같이 back-propagation에 의해 연산되는 NN 문제의 최종 hypothesis3차원 그래픽으로 visualization 처리하는 방법을 알아보기로 하자.