강몬드의 프로그래밍 이야기

신경망과 딥러닝 3.신경망의 구조 본문

학습/딥러닝

신경망과 딥러닝 3.신경망의 구조

강몬드 2016. 1. 25. 11:04

신경망의 구조

   이번에 신경망을 소개한다. 그림 1.4.1은 신경망 구조의 예이다.



<그림 1.4.1. 신경망의 구조의 예>

   이 전에 언급했듯이 맨 왼쪽 뉴런들의 집합을 입력 층, 맨 오른쪽을 출력 층이라고 부른다. 그리고 입력 층과 출력 층 사이에 집합들을 히든 층이라고 한다. 처음 히든 층을 듣고선 무언가 중요하고 깊은 철학이 담겨있을까 생각을 했지만 히든 층은 단지 입력 층과 출력 층 사이를 가리키는 말일 뿐이다. 그리고 위의 신경망은 히든 층이 하나로 되어있는데 여러 개의 히든 층으로 이루어질 수도 있다. 그림 1.4.2는 두 개의 히든 층을 갖는 신경망의 구조이다.



<그림 1.4.2. 다중 히든 층을 갖는 신경망의 구조>

   각각의 시그모이드 뉴런으로 이뤄진 다중 히든 층을 갖는 신경망의 구조를 다층 퍼셉트론(Multilayer perceptrons) 또는 MLPs라고 부르기도 한다. 신경망의 역사적인 이유로 퍼셉트론이라는 이름이 붙어서 불려지기도 하는데 여기선 다층 퍼셉트론이라고 부르진 않는다.


   입력 층과 출력 층의 설계는 간단하다. 예를 들어 우리가 손 글씨 문자를 ‘9’인지 아닌지를 결정한다고 하자. 간단한 방법은 입력 층의 뉴런들을 이미지 픽셀 값들로 넣어주는 방법이다. 이미지가 64 x 64크기의 흑백이미지라면 우리는 4,096 = 64 x 64 개의 0~1사이의 값으로 정규화 된 입력 뉴런을 갖는다. 입력이 ‘9’인지 ‘9’가 아닌지를 목표 출력으로 갖기 때문에 출력 뉴런은 하나면 충분하다. 출력 뉴런의 값이 0.5보다 크면 “입력 이미지가 9이다.” 0.5보다 작다면 “입력 이미지가 9가 아니다.”로 표현 할 수 있다.


   입력 층과 출력 층이 간단하게 설계될 수 있는데 반해 히든 층은 꽤나 설계하기 복잡하다. 히든 층의 역할을 간단하게 정의할 수는 없지만 많은 신경망 연구자들이 목적에 맞는 신경망의 히든 층을 잘 설계하기 위한 휴리스틱(어림짐작[heuristics])한 기술들을 개발하였다.  


   위에서 신경망은 보통 이전 층의 출력이 현재 층의 입력으로 사용되어졌다. 이런 신경망을 전방향 신경망(Feedforward neural network)이라 한다. 이는 반복되지 않고 정보가 항상 앞으로 전달되어지는 것을 의미한다. 정보가 재사용되는 인공 신경망 모델도 있다. 이를 순환 신경망(Recurrent neural networks)이라 부른다.


   순환 신경망은 인공신경망을 구성하는 유닛 사이의 연결이 Directed cycle을 구성하는 신경망을 말한다. 순환 신경망은 전방향 신경망과 달리, 임의의 입력을 처리하기 위해 신경망 내부의 메모리를 활용할 수 있다. 이러한 특성에 의해 순환 신경망은 필기체 인식(Handwriting recognition)과 같은 분야에 활용되고 있고, 높은 인식률을 나타낸다. 하지만 순환 신경망은 많은 수의 뉴런 유닛이나 많은 수의 입력 유닛이 있는 경우에 훈련이 쉽지 않은 스케일링 이슈를 가지고 있다.


   여기서 순환 신경망을 다루진 않는다. 순환 신경망은 이 부분에선 아직까지 영향력있지 않다. 그러나 순환 신경망은 매우 흥미롭고 우리의 뇌가 어떻게 일을 하는지에 대한 개념이 전 방향 신경망보다 유사하다. 그리고 전 방향 신경망이 해결할 수 있는 문제들을 순환 신경망도 해결할 수 있다.


출처 : http://neuralnetworksanddeeplearning.com/index.html


Comments