Neural Network
신경망(neural network)이란?
신경망은 인간의 뇌 구조를 기반으로 모델링된 것으로 입력과 출력의 패턴을 학습하는 데 있어 기본적인 인공지능 알고리즘이다. 주로 패턴 인식( 숫자 인식 ) 등 그 활용 범위가 대단히 광범위하다. 간단하게는 숫자 인식에서부터 복잡하게는 자동차 운전까지 신경망을 이용해 가능하다. 학습 알고리즘이나 인공지능 관련 알고리즘을 사용할 필요가 있을 때 제일 만만한 셈이다.
신경망의 기본 모델부터 살펴 보면 아래 그림과 같다. 물론 신경망 중에도 가장 일반적인 다층 신경망을 나타낸다. 아래 그림에서 좌측에 해당하는 입력층에 여러 가지 형태의 숫자나 문자 등 입력이 오면 여러 층의 은닉층(hidden layer)을 거쳐 최우측 층에 해당하는 출력층으로 결과를 출력한다. 입력과 출력은 여러 가지 형태가 될 수 있다. 숫자 인식이면, 입력은 비트맵의 각 픽셀값이 입력되고 출력은 0 ~ 9까지의 숫자를 가리키는 출력이 올 수도 있다. 또는 여러 가지 환경에 대한 모델링 입력값에 대한 자동차 핸들을 움직이는 출력값으로 모델링될 수도 있다 신경망을 사용하고자하는 시나리오에 따라 다양하게 기획되고 모델링 가능하다.

그림. 신경망의 기본 구조
Hebbian Learning 개요
신경망은 한 사람에 의해 그 모든 알고리즘이 정립된 것이 아니다. 꽤 긴 시간동안 여러 사람에 의해 수정되고 보완된 것이다. 최초 신경망의 기본 개념을 제시한 학습론이 바로 Hebbian Learning이라 볼 수 있다. Donald Hebb에 의해 1949년에 "Organization of Behavior"라는 출간물에서 다음과 같이 설명하였다.
When an axon of cell A is near enough to excite a cell B and repeatedly or persistently takes part in firing it, some growth process or metabolic change takes place in one or cells such A's efficiently, as one of the cells firing B, is increased.
요약하면, "셀 A가 셀 B를 자극시키는 데 충분하고, 지속적인 원인으로 작용한다면, 셀 B에 대한 셀 A의 작용력이 내부적으로 변화를 일으켜 증가하게 된다." 라고 말할 수 있다. 아래 그림을 보자.

그림. Hebbian learning의 개념
개는 음식을 보기만 하면 침을 흘린다. 이런 신진 대사 과정을 간단히 Hebb는 셀 C (또는 셀들)이 셀 B를 자극한 것으로 도식화한 것이다. 그리고 음식을 줄 때, 종을 울리고 그러한 과정이 지속된다면, 후에는 그 개는 종 소리만 들어도 침을 흘리게 된다. 결국에는 음식을 주지 않고 종만 울려도 침을 흘리게 되는게 셀 A가 셀 B에 작용하기 때문이다. 처음에 개의 뇌 구조는 종 소리와 침을 흘리는 반응과는 전혀 관계가 없었으나, 그렇게 되도록 뇌 구조 또는 뇌를 구성하는 뉴론들의 연결 구조가 바뀐 것이라 할 수 있다. Donald Hebb 은 아마도 언급된 현상을 이론화 체계화 시키고자 하였으며, 이렇게 나온 것이 Hebbian learning 이라고 불리우며 신경망의 시초가 된 것이다.
최초에 그런 행동 패턴을 몇 개의 셀과 그 연결로 간단히 도식화를 시도했다는 점에서 높이 가치를 부여할만 것이 되었고, 이러한 개념이 신경망의 근본을 이루는 개념이 되었던 것이다. Hebbian learning은 알고리즘 측면에서보다 최초 개념 제시라는 측면에서 그 중요성이 있다.
셀 간의 기본적인 연관성을 모델링한 Hebbian learning을 인공신경망적인 입장에서 수식으로 표현하면 아래와 같다.
wij = xixj
단, wij 는 xi와 xj의 가중치(weight)이며 xi, xj 는 셀 A, B의 패턴 값이라 생각할 수 있다.
역전파 알고리즘(BPN)
역전파 알고리즘(Backpropagation)은 신경망을 학습하는 방법 중 자주 거론되는 하나이다.
가령 아래와 같은 간단한 신경망이 있다고 하자. 위와 같은 신경망이 주어질 때 주어진 입력에, 원하는 출력으로 나오게끔 한다고 하자. (예를 들면 숫자 인식 등) 즉, 학습을 시키고자 한다면 적당한 학습 알고리즘으로 중간층에 있는 가중치를 조절해야 한다.

그림. BPN의 계산과 학습 방향
위 그림을 좀 더 자세히 설명하면 다음과 같다. \\먼저, 입력이 주어지면 신경망의 가중치(weights)와 곱하고 더하는 과정을 몇 번 반복하면 출력(y)이 나온다. 이 때 출력(y)은 학습에 의한 최종 결과(기대치 결과, o)와 다르다. 결국, 신경망에서는 (y - o)만큼의 오차(e = y - o)가 발생하며, 오차에 비례하여 출력층의 가중치를 갱신하고, 그 다음 은닉층의 가중치를 갱신한다. 가중치를 갱신하는 방향이 신경망의 처리 방향과는 반대 방향이다. 이런 이유로 역! 전파 알고리즘이라고 한다. 다시 말해, 신경망의 처리는 입력층 → 은닉층 → 출력층의 방향으로 진행되며, 가중치 갱신의 학습방향은 출력층 → 은닉층으로 진행된다.
역전파 알고리즘의 단계를 간단히 정리하면 아래와 같다.
- 신경망에 입력 데이터를 입력 노드에 적용하고, 입력에 따른 출력을 계산한다.
- 입력에 따른 출력과 원하는 출력간의 오차를 계산한다.
- 오차를 줄이기 위한 방법으로 가중치를 갱신(변화)한다. : Generalized Delta Rule(GDR)
- 모든 학습 데이터에 대해 오차가 적정 수준으로 감소하기까지 위 단계를 반복한다.
SOM (Self Organizing Maps)
(참고 : SOM (Self Organizing Maps)개요)
인간의 대뇌 피질은 생각하고, 말하고, 듣고 그리고 판단하는 인간의 중요한 기능을 처리하는 곳이다. 그러한 대뇌피질은 각각의 기능을 맡는 구역(region)이 정해져 있다. 영화에서 본 적이 있을 것이다. 뇌를 다쳐서 다른 건 멀정한데 과거의 기억을 잃어 버린다던가, 혹은 말만 못한다던가 하는 것, 이런 이유는 바로 대뇌피질의 각 구역마다 맡은 기능이 존재하기 때문이다. 이러한 특징을 ordered feature maps이라 한다. SOM의 알고리즘은 바로 이러한 대뇌피질을 의 특징에 기반한다. 역시나 SOM은 신경망(neural network)의 일종이며, 자율(upsupervised)학습과 경쟁 학습 방법을 이용한다. 또 BPN(back propagation network)과는 다르게, 출력 노드의 위상(topology)에 어떤 의미가 있다. 마치 대뇌피질의 구역이 의미가 있는 것처럼...
그렇다면 BPN과 비교를 해보자. 가령 숫자를 인식한다고 보자. BPN은 숫자의 이미지 데이터를 입력으로, 그리고 그 이미지 데이터가 나타내는 숫자를 출력으로 하여 입력, 출력의 쌍으로 하여 지도 학습(supervised leaning)을 시킨다. 그러나 SOM은 자율(upsupervised)과 경쟁(competitive) 학습을 한다. SOM의 출력 노드중에서 다른 출력 노드과 비교해서 가장 강하게 반응하는 노드가 있을 것이며, 그러한 출력 노드를 더욱 더 강하게 반응하게끔 반복적으로 학습시키는 것이다. 다시 말해, SOM에서는 BPN처럼 출력노드를 미리 기능적으로 정하지 않는다는 말이다. 입력에 대해 자연스럽게 반응하는 출력 노드를 선택하여 반복 학습을 시켜면, 후에는 결과적으로 어떤 출력 노드가 반응되는지를 조사하면 거꾸로 입력을 알 수 있게 되는 것이다.
Recent Comments