인공지능 응용 공학

AlexNet Architecture 요약

coding art 2023. 1. 23. 18:10
728x90

본격적인 Image Classification의 시작이랄 수 있는 AlexNet 이후 성능이 비약적으로 개선된 네트워크들이 지속적으로 출현할 수 있었던 요인은 2012ILSVRC에서 발표된 AlexNet의 아키텍추어를 대상으로 파라메터 규모를 축소하기 위한 아키텍추어 개선에 크게 힘입은 듯하다. 아키텍츄어 관점에서, AlexNet에서부터 ResNet에 이르는 본격적인 이미지분석 네트워크에서의 아키텍추어는 소수의 CNN 레이어를 사용하는 MNIST 예제에 비해 그 규모 면에서 비교가 되지 않을 정도로 크며 세부 네트워크에서도 다양성이 포함되어 있다.

 

아래 그림에서처럼 ResNet18 기준으로 작성된 PyTorch 예제코드를 AlexNet으로 수정하여 인식률을 계산 체크해 보기로 한다. 지금 현재 사용되고 있는 이미지 분석 네트워크들은 MNIST 예제를 풀기위한 네트워크의 규모에 비해 그 레이어수에 있어서 엄청난 차이가 있으므로 반드시 GPU 컴퓨팅이 뒷받침되는 환경하에서도 학습에 수주일 이상이 걸림에 유의하자.

 

따라서 같은 작업을 장시간에 걸쳐서 연산할 필요 없이 현재 PyTorch에서 제공하는 AlexNetResNet에 대한 사전 학습(pretrained)돤 가중치 데이터를 이진법(binary) 파일 형태로 불러 쓸 수 있도록 class 명령을 제공하므로 그 사용하는 법을 다음 절의 예제를 통해서 알아보기로 한다.

AlexNet의 파라메터 규모를 정확하게 평가해 보도록 하자.

227X227X3 RGB 이미지 데이타 하나에 대해서 96개의 11X11 필터로 Stride=4 로 설정하여 컨볼류션 처리하면 55X55로 필터링 된 이미지 데이타들이 얻어진다.

한 번의 컨볼루션 작업에 대해서 11X11X3X96=34,848 개의 웨이트 값과 96개의 바이아스 값이 도입되므로 총 34,944 개의 파라메터가 도입되어 사용되는 셈이다.

그림에서는 총 필터 수가 96개이지만 48개짜리를 합쳐서 그래픽 처리하면 너무 두껍게 보일 수 있으므로 그림 상으로는 마치 48개짜리가 2벌 있는 것처럼 도시하였다.

컨볼루션 처리 후 ReLU를 적용하고 다시 3X3 kernelStride=2로 설정하여 pooling 작업을 하면 96개의 27X27 사이즈로 처리된 이미지 데이타들이 얻어진다.

다시 27X27 이미지 데이타를 얻을 수 있도록 5X5 크기 필터를 256개 사용하며, padding=‘same’조건 하에서 Stride=1로 처리하면 동일한 크기의 27X27 이미지가 얻어진다.

 

컨볼루션 작업에서 디지털 필 수를 늘린다는 것은 뉴럴 네트워크에서 Depth를 늘려 잡는 개념과 유사하므로 그만큼 도입되는 웨이트 수가 5X5X96X256 = 614,400개이며, 256개의 바이아스 수가 추가된다. 즉 파라메터 수가 614,656개로 늘어난다.

 

이와같이 AlexNet 전체로 도입되는 파라메터들을 다음 페이지의 표로 정리하여 보자. MNIST60,000개 수준임에 비해 60,000,000개 이상의 파라메터들이 사용되고 있음을 알 수 있다.

AlexNet에 이어 개발된 보다 높은 인식률을 보여주는 모델들에서는 각 레이어 별로 채택하는 컨볼루션 디지털 필터 크기와 갯수 Stride 값 및 레이어 수들이 아주 다르게 설정되고 있으며 보다 인식률을 높일 수 있도록 앙상블 기법이라든지 또는 GRU(Gated Recurrent Unit)와 유

다시 27X27 이미지 데이타를 얻을 수 있도록 5X5 크기 필터를 256개 사용하며, padding=‘same’조건 하에서 Stride=1로 처리하면 동일한 크기의 27X27 이미지가 얻어진다.

 

이와같이 AlexNet 전체로 도입되는 파라메터들을 다음 페이지의 표로 정리하여 보자. MNIST60,000개 수준임에 비해 60,000,000개 이상의 파라메터들이 사용되고 있음을 알 수 있다.

AlexNet에 이어 개발된 보다 높은 인식률을 보여주는 모델들에서는 각 레이어 별로 채택하는 컨볼루션 디지털 필터 크기와 갯수 Stride 값 및 레이어 수들이 아주 다르게 설정되고 있으며 보다 인식률을 높일 수 있도록 앙상블 기법이라든지 또는 GRU(Gated Recurrent Unit)와 유사한 형태의 알고리듬이 채택되기도 한다.