티스토리 뷰

다음 차례에서는 손글씨를 꽤 잘 인식할 수 있는 뉴런 네트워크를 소개해 드릴겁니다. 그 전에, 네트워크의 각 부분을 부르는 몇 개의 전문 용어들을 설명하는 것이 도움이 되겠군요. 우리가 아래와 같은 네트워크를 가지고 있다고 해봅시다.


앞서 언급했듯이, 가장 왼쪽에 위치한 층은 입력 층이라고 불리고, 그 안에 있는 뉴런들은 입력 뉴런이라고 불립니다. 가장 오른쪽에 있는 출력층은 출력 뉴런들을 가지고 있습니다. 위 예시에서는 하나의 뉴런만을 가지고 있군요. 가운데 있는 층은 입력 뉴런 또는 출력 뉴런을 가지고 있지 않으므로 은닉층이라고 불립니다. "은닉"이라는 용어는 이상하게 들릴 수 있습니다. (제가 처음 이 단어를 들었을때는 이 은닉층이 꽤 깊은 철학적 의미 또는 수학적 중요성을 가지고 있는줄 알았습니다.) 하지만 은닉층은 정말 "입력 또는 출력이 아님" 이라는 의미 그 이상, 그 이하도 아닌 그 자체를 의미합니다. 위에 있는 네트워크는 단 하나의 은닉 레이어만을 가지고 있지만 몇몇 네트워크들은 여러개의 은닉층을 가지고 있습니다. 예를 들면, 다음의 4층 네트워크는 두개의 은닉층을 가지고 있습니다.


혼란스럽게도, 어떤 역사적인 이유로 인해 다층 네트워크들은 시그모이드 뉴런으로 이루어져 있음에도 불구하고 다층 퍼셉트론 또는 MLPs(Multi Layer Percptrons)라고 불립니다. 저는 이 책에서 MLP라는 전문용어를 사용하진 않을테지만, 여러분에게 이런 용어가 있음을 알려드리고 싶었습니다.


네트워크에서 이런 입력과 출력층의 구조는 일반적으로 일방통행적입니다. 예를 들어, 우리가 손글씨 이미지가 "9"를 나타내는지 아닌지를 결정하려고 한다고 합시다. 이 네트워크를 디자인 하는 일반적 방법은 입력층에 들어갈 이미지의 픽셀들의 명도를 변환하는것 입니다. 이미지의 크기가 $64\times 64$ 인 흑백 이미지라면, 우리는 $4096=64\times 64$개의 입력 뉴런들을 가지게 되고, 명도값들은 0과 1 사이의 값을 가지게 됩니다. 출력층은 단 한개의 출력뉴런만을 가지게 되고 0.5 보다 작은 값은 "이 이미지는 9가 아닙니다"를, 0.5보다 큰 값은 "이 이미지는 9 입니다"를 나타내게 됩니다.


뉴런 네트워크의 입력과 출력층들의 구조가 일반적으로 일방통행적 이지만, 은닉층의 디자인에 꽤나 예술적인 면이 있을 수 있습니다. 이러한 상황에서는, 단지 몇개의 간단한 규칙만으로 은칙층의 계산과정을 줄일 수 없습니다. 대신, 뉴런 네트워크 연구자들은 네트워크에서 이끌어 내고자 하는 행동을 얻게 도와주는 은닉층을 위한 많은 간편한(heuristic, 어림짐작의) 구조를 개발해 냈습니다. 예를 들면, 어떤 간편한 방법은 어떻게 네트워크를 학습시키기 위해 필요한 시간에 대해 은닉층의 수를 결정할 것인지 도와줍니다. 우리는 나중에 이 책에서 몇개의 경험적 방법들을 배워볼 겁니다.


지금까지 우리는 한 층의 출력이 다음 레이어의 입력으로써 쓰이는, 일방통행적 뉴런 네트워크에 대해서 이야기 해 왔습니다. 이런 네트워크들은 feedforward 뉴런 네트워크라고 불리는데, 이는 네트워크에 어떠한 재귀도 존재하지 않음을 의미합니다. 정보는 항상 앞으로 이동합니다. 절대로 뒤로 영향을 주지 않습니다. 만약 우리가 재귀를 가지게 된다면, 우리는 시그모이드 함수로 들어가는 입력값에 따라 출력값이 달라지는 상황과는 다른 상황을 맞이하게 될 것입니다. 이에 대한 개념을 배우기는 어려우니, 우리는 그러한 재귀를 만들지 않을 것 입니다.


그러나, 뒤로 영향을 주는 재귀가 가능한 가상 뉴런 네트워크의 다른 모델들 또한 존재합니다. 이런 모델들은 회귀적 뉴런 네트워크라고 불립니다. 이러한 모델의 개념은 활성화 된 상태가 끝나기 전에 일정시간 동안 발화하는 뉴런이 있다는 것 입니다. 이러한 발화는 다른 뉴런들에 영향을 주어서 일정시간 간격을 두고 일정시간 동안 발화하게 할 수 있습니다. 이는 또한 더 많은 뉴런들을 발화하게 할 수 있고, 시간이 지남에 따라 계속 진행되는 뉴런의 발화를 볼 수 있을 것 입니다. 루프는 이러한 모델에서 뉴런의 출력은 즉시 이루어 지지 않고 일정 시간 간격을 두고 자신의 입력에만 영향을 미치기 때문에 어떠한 문제도 일으키지 않습니다.


회귀적 뉴런 네트워크는 학습 알고리즘이 다른 네트워크 모델보다 강력하지 않기 때문에 feedforward 네트워크 보다는 적은 영향력을 행사하고 있습니다. 하지만 이런 회귀적 네트워크는 여전히 흥미로운 모델입니다. 이는 우리의 뇌가 작동하는 방법과 feedforward 네트워크보다 비슷합니다. 또한 회귀적 네트워크는 feedforward 네트워크로는 굉장히 어렵게 풀어야 하는 문제들을 풀 수 있습니다. 그러나, 우리의 능력의 한계로 인해, 이 책에서는 더 자주 사용되는 feedforward 네트워크에만 집중 하려고 합니다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday