AI 전문가가 되고싶은 사람
(공부용) Going deeper with convolutions 본문
Alexnet 다음 논문인 Inception을 공부해보려고한다.
위 사이트에서 " Inception module에 시작, 모델을 직접 구현해보면서 모델링 코딩을 연습하기에도 좋다. "
이런 말이 있었기에 이번 논문도 공부해본 후에 구현을 해보려고한다.
논문 링크 : https://arxiv.org/pdf/1409.4842v1
서론
논문의 서론에서는 합성곱 신경망(CNN)이 이미지 인식과 객체 탐지 분야에서 가져온 중요한 발전에 대해 설명한다. 특히, 지난 3년간의 발전이 단순히 강력한 하드웨어나 대규모 데이터셋 덕분이 아니라, 새로운 아이디어와 알고리즘, 그리고 개선된 네트워크 아키텍처의 기여로 이루어졌다고 강조하고 있다.
그 중에서도 Inception 아키텍처의 구현 사례인 GoogLeNet을 소개한다. GoogLeNet은 22층 깊이로 설계된 네트워크로, 분류와 탐지 작업에서 높은 성능을 유지하면서도 계산 자원을 효율적으로 사용하는 것이 특징이다. 이 네트워크는 계산 비용을 최소화하면서도 네트워크의 깊이와 너비를 확장할 수 있도록 설계되었다.
이 논문은 효율적인 딥러닝 신경망 아키텍처인 Inception에 초점을 맞추고 있으며, "Inception"이라는 이름은 "Network in Network" 논문과 "we need to go deeper"라는 인터넷 밈에서 유래했다.
관련 연구
합성곱 신경망(CNN)의 기본 구조는 일반적으로 여러 개의 합성곱층이 쌓이고, 그 위에 하나 이상의 완전 연결층이 추가되는 방식이다. 이러한 기본 구조는 MNIST, CIFAR, 그리고 특히 ImageNet 분류 챌린지에서 매우 성공적인 결과를 보여주었다. 대형 데이터셋에서는 레이어의 수와 크기를 증가시키고, 과적합을 방지하기 위해 드롭아웃을 활용하는 것이 일반적이다.
● AlexNet과 Max Pooling
AlexNet에서는 맥스풀링(max pooling)층을 사용했지만, 이는 정확한 공간 정보 손실의 우려가 있다. 그럼에도 불구하고, 지역화, 객체 탐지, 사람 자세 추정 등 다양한 분야에서 성공적으로 적용되었다.
● Serre의 연구와 Inception 모델
Serre 등은 영장류 시각 피질에 기반하여 고정된 가보 필터를 사용해 여러 스케일의 특징을 처리하는 방식을 제안한다. 이 방식은 Inception 모델과 유사하지만, Serre의 모델은 고정된 2층 구조를 사용한 반면, Inception 모델의 모든 필터는 학습을 통해 얻어지며, 여러 번 반복되어 깊이가 22층에 달한다.
● Network-in-Network (NiN)
Lin 등은 NiN 방법을 제안하여 신경망의 표현력을 증가시키기 위한 접근법을 소개했다. 이 방법은 합성곱 층에 1x1 합성곱층을 추가하여, 차원 축소를 통해 계산 병목을 제거하고 네트워크의 크기를 제한한다. 이는 Inception 아키텍처에서도 활용되었다.
● R-CNN과 객체 탐지
Girshick 등이 제안한 R-CNN은 객체 탐지의 주요 접근법으로, 두 가지 하위 문제로 나누어 처리한다.
저수준 신호를 사용하여 잠재적인 객체 제안을 생성하고, CNN 분류기를 통해 객체 카테고리를 식별한다. 이 두 단계 접근법은 경계 상자 분할의 정확성을 높이고, CNN의 강력한 분류 능력을 결합한 것이다.
Motivation and High Level Considerations
딥 신경망의 성능을 개선하는 가장 직관적인 방법은 네트워크의 크기를 늘리는 것이고 이는 네트워크의 깊이(레이어의 수)와 너비(각 레이어의 유닛 수)를 증가시키는 것이 포함된다. 대량의 레이블이 지정된 데이터가 있을 때 효과적이며, 고품질 모델을 학습하는 간단하고 안전한 방법으로 여겨진다. 하지만 이 방법에는 두 가지 주요 단점이 있다.
첫째, 모델의 크기를 늘리면 매개변수의 수가 증가하게 되고, 이는 과적합의 위험을 높인다.
특히 학습 데이터의 양이 제한적일 경우, 과적합은 모델 성능을 크게 저하시킬 수 있다. 또한 고품질 학습 데이터를 만드는 것은 비용과 시간이 많이 들기 때문에 주요 병목 현상이 될 수 있다. 예를 들어 이미지 레이블링 작업에서 수십만 장의 이미지를 학습 데이터로 사용해야 할 때, 각 이미지에 대해 정확한 레이블을 달아야한다. 이를 위해 전문 레이블러를 고용하거나, 여러 명의 작업자가 참여해야한다. 이 과정에서 수개월에서 수년이 걸릴 수 있다.
둘째, 네트워크 크기의 균일한 증가가 계산 리소스의 급격한 증가를 초래한다.
예를 들어, 두 개의 합성곱 레이어가 연결된 네트워크에서 필터 수를 균일하게 증가시키면, 계산량이 제곱으로 증가할 수 있다. 계산 예산이 유한한 상황에서는 무작정 네트워크 크기를 늘리기보다는 계산 리소스를 효율적으로 사용하는 것이 중요하다. 이 문제를 해결하는 근본적인 방법은 희소한 연결 구조를 채택하는 것이다. Arora 등의 연구에 따르면, 데이터 집합의 확률 분포를 희소한 딥 신경망으로 표현할 수 있으며, 최적의 네트워크 구조를 도출할 수 있다. 이 연구는 높은 상관 관계를 가지는 뉴런을 클러스터링하여 계층별로 구성할 수 있는 가능성을 제시한다.
그러나 현재의 컴퓨팅 인프라는 비균일 희소 데이터 구조에 대한 수치 계산이 비효율적이다. 100배 적은 산술 연산 수에도 불구하고, 조회 및 캐시 미스의 오버헤드가 크기 대문에 희소 행렬을 사용하는 것이 효과적이지 않다.
* 희소 행렬 : 대부분의 원소가 0인 행렬, 저장 공간을 절약할 수 있지만 많은 수의 계산이 필요한 연산에서는 오히려 더 많은 조회 작업을 초래하여 캐시 미스를 유발할 수 있다.
필터 수준에서 희소성을 활용하면, 네트워크의 필터가 더 효율적으로 동작할 수 있다. 예를 들어, 필터의 대부분의 가중치를 0으로 설정하면, 계산할 때 불필요한 연산을 줄일 수 있다.
희소 행렬을 밀도가 높은 부분 행렬로 클러스터링하면 실용적인 성능을 제공할 수 있다는 연구 결과가 있다. Inception 아키텍처는 이러한 희소 구조를 근사하기 위해 설계된 고밀도 구성 요소로 네트워크를 구축했다.
초기 연구와 반복적인 테스트를 통해, Inception 아키텍처는 지역적 최적성을 갖추었으며, 로컬라이제이션 및 객체 감지에서 특히 유용하다는 것이 입증되었다.
Architectural Details
● 희소 구조의 활용
Inception 아키텍처는 이미지의 특정 지역에서 중요한 특징만을 효율적으로 추출하기 위해 다양한 크기의 필터를 사용한다. 예를 들어, 1x1, 3x3, 5x5 크기의 필터를 사용하여 각기 다른 스케일의 특징을 추출한다. 이는 네트워크가 이미지의 중요한 부분에 집중하고, 덜 중요한 정보는 처리하지 않도록 돕는다. 특히, 1x1 합성곱 필터는 입력의 채널 수를 줄여서 계산량을 감소시키면서도 중요한 정보는 유지하도록 돕는다. 이렇게 함으로써, 네트워크는 이미지의 핵심적인 특징만을 학습하고, 불필요한 연산을 줄일 수 있다.
● 밀집 구성 요소의 활용
Inception 아키텍처는 밀집 구성 요소를 사용하여 이미지의 모든 정보를 처리하는 동시에 효율적인 연산을 가능하게 한다. Inception 모듈 내에서 1x1, 3x3, 5x5 필터를 동시에 적용하여 다양한 스케일과 형태의 특징을 포괄적으로 추출한다. 이때, 1x1 필터를 사용해 입력 채널의 차원을 줄여서 연산을 효율적으로 수행하고, 더 큰 필터를 통해 넓은 영역의 특징을 캡처한다.
● 변환 불변성의 활용
Inception 아키텍처는 이미지가 회전되거나 크기가 변해도 일관된 특징을 인식할 수 있도록 설계되었다. 이를 위해 다양한 크기의 필터를 사용하여 다양한 크기와 형태의 패턴을 동시에 학습한다.
● 합성곱 빌딩 블록 사용
Inception 아키텍처는 합성곱 빌딩 블록을 사용하여 이미지의 특징을 추출한다. 1x1, 3x3, 5x5 크기의 합성곱 필터를 동시에 적용하여 이미지의 다양한 지역에서 특징을 추출하고, 이를 통해 여러 스케일에서 정보를 얻을 수 있다. 특히, 1x1 합성곱은 차원축소와 정보 통합을 위해 사용되며, 계산 복잡도를 줄이면서도 중요한 정보를 유지할 수 있게 해준다.
GoogLeNet
GoogLeNet는 Inception 아키텍처의 특정 구현을 지칭하는 이름으로, 이 아키텍처는 네트워크의 구조를 최적화하는 데 중점을 둔다. 이 대회에서는 GoogLeNet 외에도 더 깊고 넓은 Inception 네트워크를 실험해보았지만, 성능이 약간 떨어지는 것으로 나타났다. 그럼에도 불구하고, 네트워크를 앙상블 모델에 추가함으로써 결과를 소폭 개선할 수 있었다. 즉 네트워크의 파라미터보다 앙상블 효과가 더 큰 영향을 미쳤음을 보여준다.
GoogLeNet의 모든 합성곱 연산은 ReLU 활성화 함수를 사용하였다. 이 네트워크의 수용 영역 크기는 224x224이며, 이는 RGB 색상 채널을 고려하여 평균값을 빼는 전처리가 적용된 것이다. 이는 모델 학습 시 데이터의 평균값을 제거하여 모델이 색상 채널 간의 상대적인 차이를 더 잘 학습할 수 있도록 도와준다.
네트워크 설계에서 3x3 및 5x5 합성곱 연산이 수행되기 전에 1x1 필터를 사용하여 입력 데이터의 차원을 줄이는 작업을 하였다. 또한, 네트워크의 각 단계에서 최대 풀링 연산 이후에도 1x1 필터를 사용하여 차원을 추가로 축소한다.
이 네트워크는 계산 효율성과 실용성을 고려하여 설계되었다. 따라서, 제한된 계산 자원을 가진 장치, 특히 메모리 사용량이 적은 장치에서도 실행할 수 있도록 최적화되어 있다.
네트워크의 깊이가 깊어짐에 따라, 모든 레이어를 통해 그래디언트를 효과적으로 전달하는 것이 중요한 문제였다. 연구 결과, 비교적 얕은 네트워크가 우수한 성능을 보이는 이유는 중간 레이어에서 생성된 피처들이 매우 유용하기 때문이라는 것을 알 수 있었다. 그래서 중간 레이어에 보조 분류기를 추가하여 더 나은 피처를 추출하고, 그래디언트 신호의 전파를 도왔다. 학습이 완료된 후에는 제거하여 계산 효율성을 높였다.
결론
Inception 아키텍처, 특히 GoogLeNet으로 대표되는 이 구조는 이미지 분류와 객체 감지 작업에서 큰 개선을 보여주었다. 또한 높은 성능을 달성하면서도 계산 자원을 효과적으로 활용할 수 있도록 설계되었다.
희소 네트워크로의 전환이 향후 연구에서 유망한 방향이 될 수 있음을 언급하였다. 이는 전통적인 밀집 네트워크에서 성능을 유지하면서 복잡성을 줄이는보다 정제된 구조로의 이동을 말한다.
이 연구 결과는 컴퓨터 비전 및 딥러닝 분야의 혁신적인 아키텍처 설계의 중요성을 강조한다. 신경망의 능력을 더욱 향상시킬 수 있는 새로운 아이디어와 알고리즘의 탐색을 계속할 것을 권장한다.