본문 바로가기

머신러닝/[기타]

뉴럴 네트워크의 일반적인 디자인 원칙(General Design Principles of Neural Network)

이는 유명한 CNN 아키텍쳐 중 하나인 Inception Architecture(GoogLeNet)의 논문 "Rethinking the Inception Architecture for Computer Vision" 중 2. General Design Priciples 을 번역 및 해석한 것입니다. 처음 모델을 만들어 나갈 때 좋은 참고자료가 될 것 같습니다.

정리(Theory)

  • "There is a single hidden layer feedforward network that approximates any measurable function to any desired degree of accuracy on some compact set K"
  • 간단히 말하면, 일반적인 Neural Network는 모든 함수를 모방할 수 있다. 

용어 정리

  • Feed-forward Neural Network, FFNN: 이는 가장 간단한 형태의 Neural Network로, RNN 등이 아닌 일반적인 Artificail Neural Network를 생각하시면 됩니다.  첫 번째는 input layer를, 중간에는 hidden layer를, 마지막에는 output layer를 갖는 형태로, 데이터(정보)가 input layer에서 output layer방향으로, 단방향으로 이동하게 됩니다. feed는 영어로 먹이를 주다라는 뜻이며, forward는 순방향으로 보내다라는 뜻을 가지고 있으니 어느정도 그럴듯합니다. 만약 hidden layer가 둘 이상인 경우를 Deep Neural Network라고 부릅니다. 
  • Recurrent Neural Network, RNN: FFNN에서 데이터가 단방향으로 이동했다면, RNN은 데이터가 방향성을 가지게끔 구성한 것입니다. Recurrent, 반복되는 이라는 이름이 붙은 이유는 RNN이 directed cycle을 갖기 때문입니다. 이를 통해 시계열 데이터를 모델링할 수 있습니다.
  • Bottleneck, 병목: 전체 시스템의 성능이나 용량이 하나의 구성요소로 인해 제한을 받는 현상. FFNN에서는 hidden layer1이 10차원인데 hidden layer2가 100차원인 등, 데이터가 축약되었다가 다시 확장되는 구조를 말한다. ResNetdml bottleneck block과는 다른 개념.

본문

  1. Avoid represntational bottlenecks, especially early in the network. 병목구간은 없어야한다. 특히나 네트워크 구조의 초기에는. FFNN는 input layer에서 output layer(classifier 또는 regressor)로 가는 acyclic graph로써 표현될 수 있는데, 이는 데이터의 흐름의 방향성이 명확하다. 이 때 NN의 구조는 전체적인 차원이 서서히 줄어드는 방향으로 표현되어야한다.
  2. Higher dimensional representations are easier to process locally within a network. 고차원의 데이터는, 네트워크 내에서 지역적으로 처리하는것이 더 쉽다. 때문에 convolution layer를 통한 중요한 정보를 추출하는 행위가 가능하고, 효율적인 것. 또한 이는 네트워크 학습을 가속시킨다.
  3. Spatial aggregation can be done over lower dimensional embeddings without much or any loss in representational power. 어떤 데이터를 낮은 차원의 임베딩으로 통합하는 과정에서는 손실이 거의 일어나지 않는다. 예를 들어, inception architecture에서는 3x3 convolution filter를 통과하기전, 1x1 convolution filter를 사용하는데, 이로 얻는 파라미터 수 감소의 장점을 의미합니다.
  4. Balance the width and deppth of the network. 네트워크의 폭과 깊이의 균형을 맞춰라. 폭과 깊이를 늘려나가는 것은 모델을 개선할 여지를 주지만, 같은 계산비용으로 최고의 효율을 내기 위해서는 폭과 길이의 밸런스가 중요하다.