인간의 두뇌는 약
개의 뉴런이 존재하며, 한 개의 뉴런은 평균적으로 약
개의 주변 뉴런과 시냅스를 가지고 있으므로 인공신경회로망은 다층의 구조 로 이루어진다고 할 수 있다. 다층구조의 신경회로망은 입력층(Input layer), 출 력층(Output layer), 은닉층(Hidden layer)으로 구성되며, 입력층은 시스템의 외 부로부터 입력을 받아들이는 층을 말하고, 출력층은 외부로 출력을 내보내는 층 그리고 은닉층은 외부와는 정보를 교환하지 않으며 입력층과 출력층 사이에숨어있는 보이지 않는 층을 의미한다. 입력층과 출력층은 각각 1개이지만 은닉 층은 1개 이상이 존재할 수가 있으며, 이는 학습하고자 하는 시스템이 매우 간 단한 경우 은닉층 1개로도 충분히 처리가 가능하지만 매우 복잡한 경우에는 2 개 이상의 은닉층을 사용해야하기 때문이다. 또한, 은닉층 내부에 있는 노드도 시스템의 복잡도에 따라서 개수를 증감시킬 필요가 있다. Fig. 4.4는 전형적인 다층구조의 신경회로망을 나타낸다.
Fig. 4.4 Structure of multi layer neural network
,
,
는 입력층, 은닉층 및 출력층들의 각 노드의 출력이며, 입력층과 은 닉층 사이의 가중치를
은닉층과 출력층 사이의 가중치를
로 표현하고, 모든 정보는 신경회로망의 가중치에 저장되며 학습과정 동안 가중치 , 의 성분이 끊임없이 조정해 나가는 과정에서 계속적으로 새로운 정보로 변화한다.신경회로망의 학습종류에는 기준에 따라 여러 가지로 분류할 수 있지만 일반 적으로 감독학습(Supervised learning)과 비감독학습 또는 자율학습(Unsupervised learning)이 있다. 감독학습은 입력패턴을 실제시스템과 학습하고자 하는 신경 망에 동시에 가한 다음 각각의 출력값을 비교해서 발생하는 오차값을 줄이는 방향으로 신경망의 가중치를 조정하며, 오차값이 일정 수준으로 감소하게 될 경우 학습이 완료되었다고 판단한다. 즉, 입력패턴에 대한 신경회로망의 출력패
턴의 형태를 지시해 주는 목적패턴을 갖는 것으로써 입력패턴과 목적패턴의 학 습패턴이 쌍으로 구성된다.
감독학습 방법에는 Donald Hebb에 의해 고안된 최초의 신경학습망 학습법인 헤브의 규칙(Hebb's rule), Frank Rosenblatt가 제안한 퍼셉트론 규칙(Perceptron rule), Widrow-Hoff의 희망출력과 실제출력 사이의 값을 사용하는 델타 규칙 (Delta rule), Bernard Widrow가 제안한 LMS(Least Mean Square) 규칙 등이 있 으며, 비감독학습 방법에는 Hecht-Nielsen이 제안한 인스타 규칙(Instar rule)과 Grossberg의 아웃스타 규칙(Outstar ruel) 등이 있다. 여기서, 퍼셉트론 규칙과 LMS 규칙은 단층 신경회로망과 같은 비교적 단순한 신경회로망을 학습시키기 위해 고안되었으며, 논리합(AND)이나 논리곱(OR)과 같은 간단한 논리함수는 해 결이 가능하지만 단계가 더 진행된 배타적 논리합(XOR)과 같은 문제는 해결하 기 어려운 단점을 가진다.
1986년 Rumelhart에 의해 만들어진 일반화된 델타 규칙의 한가지 종류인 오류 역전파 학습알고리즘(Error back propagation learning algorithm)은 이러한 문제 를 해결하기 위한 방법으로 다층 신경회로망을 학습하는데 적합하다. 오류역전 파 학습알고리즘의 기본 원리는 먼저 입력층에 입력패턴을 주면, 이 신호는 변 환되어 은닉층에 전달되고 은닉층의 뉴런들은 각각의 입력층으로부터 입력된 값과 가중치들의 곱을 합산한 다음 활성함수를 통해 연산된 결과를 출력층으로 전송한다. 출력층에서는 은닉층과 같은 뉴런 연산을 수행하여 값을 출력하는데 이때 출력값과 목표값을 비교하여 차이를 줄여나가는 방향으로 연결강도를 조 절하고, 상위층에서 역전파하여 하위층에서는 다시 가중치의 연결강도를 조정 해나간다.
오류역전파 학습과정은 크게 초기화, 전방향 계산, 역방향 가중치 수정, 종료 조건 확인의 네 가지 단계로 구성된다. 초기화는 본격적으로 학습을 수행하기 전에 사용자가 결정해 주어야 할 여러 가지 초기값을 부여하는 단계로 학습용 데이터의 준비, 가중치의 초기화, 학습률의 종료조건 결정 등이 이 단계에서 완 료되어야 한다. 종료조건으로는 원하는 오차수준, 오차가 더 이상 줄지 않을 경 우의 수렴속도나 최대 학습 횟수 등의 제한조건도 함께 정해야 한다. 두 번째 와 세 번째 단계에서는 본격적으로 학습이 진행되는 과정으로 모든 학습데이터
에 대하여 반복적으로 수행된다. 하나의 학습데이터가 선정되었을 때, 전방향 계산단계에서 먼저 해당입력에 대한 신경망의 출력을 계산하는데 주어진 값을 순서대로 계산해서 얻어지므로 전방향 계산이라 한다. 이어서 역방향 가중치 수정 단계에서는 전방향 계산으로 얻어진 출력값과 목표값을 비교하여 오차를 계산한 후, 이를 감소시키는 방향으로 가중치를 수정한다. 이때는 목표값과 바 로 비교할 수 있는 출력노드의 오차가 먼저 계산되고, 이 오차가 역으로 전파 되어 은닉노드의 오차가 계산되므로 역방향 가중치 수정단계라고 한다. 이렇게 모든 학습데이터들에 대해 전방향 계산과 역방향 수정단계를 한 번씩 적용한 것을 한 번의 학습 에포크(Epoch)라고 하며, 한 에포크가 끝나면 마지막단계로 넘어간다.
마지막 단계에서는 지금까지의 학습을 통해 우리가 원하는 신경망이 얻어졌는 지를 확인하기 위해 학습데이터 전체에 대한 오차값을 계산한다. 최급강하법 (Steepest descent method)을 사용해서 매 학습마다 오차값이 줄어들도록 하며, 계산된 오차값이 초기화 단계에서 설정한 희망오차보다 작으면 학습을 완료하 고 그렇지 않은 경우 다시 두 번째 단계부터 시작하여 전체 학습데이터를 한 번 더 학습하게 된다[45-53].
최급강하법의 알고리즘은 Fig. 4.5와 같으며, 함수
의 최적점을 찾기 위해
를 편미분한 다음 기울기를 구한다. 만약 현재의 값이 최적점보다 크다
면 기울기는 양수일 것이고, 값에서 양수를 빼주게 되므로, 업데이트된 값은 이전의 값보다 작아지게 된다. 또는값이 최적점보다 뒤에 있다면 기울기는
음수이고,값에서 음수를 빼주게 되므로 업데이트된 값은 이전의 값보다
커지게 되므로 점점 최적점에 가까워질수록 미분값이 0에 가까워지며 이동거리 도 줄어들어 값은 최적점으로 수렴하게 된다.
(4-3)
(4-4)
(4-5)
여기서, MSE는 평균제곱 오차(Mean Square Error), 는 학습률을 나타낸다.
이렇게 반복적으로 많은 수의 에포크를 수행했음에도 불구하고 학습이 더 이 상 진행되지 않는다면, 학습을 종료하고 초기조건을 바꾸어 다시 시도해야 한 다.
Fig. 4.5 Algorithm of steepest descent method of neural network