[업데이트 : 2022-02-17]

논문 : Rethinking on Multi-Stage Networks for Human Pose Estimation

 

2019년에 발표된

Rethinking on Multi-Stage Networks for Human Pose Estimation

논문의 Summary 겸 리뷰를 적어보려고 합니다.

글을 쓰기에 앞서, 공부를 위해 논문을 보며 요약, 작성한 내용이라 간혹 오역이나 잘못된 내용이 있을 수 있습니다.

핵심 키워드는 highlight를 해두었습니다. 틀린 부분은 댓글로 알려주시면 감사하겠습니다^^ 

편의상 경어체를 빼고 작성합니다.


시작하기 전에

내가 뽑은 키워드 : Pose estimation, bottleneck, 단일 단계 (single-stage) , 복합 단계 (multi-stage)

 

Abstract

포즈 추정(pose estimation)은 단일 단계 (single-stage)복합 단계 (multi-stage) 방법으로 나뉘는데 복합 단계단일 단계만큼 성능이 좋지 않다. 이 연구에서는 MS COCO 와 MPII Human Pose 데이터셋을 활용하여 단일 단계 디자인, 교차 단계 기능 집합 및 지도 학습을 활용한 미세한 조정을 통해 성능을 개선하였다.

 

Introduction

 

최근 human pose estimation 분야는 심층 신경망 구조를 사용함으로써 빠른 성장을 해오고 있다. 좋은 성능을 보여주는 방법은 단일 단계 를 백본(back-bone) 네트워크로 사용하고 있다. 예를 들어 최근의 COCO (데이터셋을 활용한) 챌린지의 우승자는 Res-Inception 를 사용하였고 baseline은 ResNet 기반이다. pose estimation은 높은 공간 해상도를 요구하기 때문에 깊은 피처의 공간 해상도를 높이기 위해 백본 네트워크 뒤에 upsamling 또는 deconvolution 하는 과정이 추가된다.

또 다른 방법인 복합 단계 아키텍쳐의 경우 각 단계는 단순한 경량 네트워크이며 자체 다운 샘플링 및 업샘플링 경로를 포함한다. 단계 사이의 feature map (혹은 히트맵) 은 고해상도로 유지된다. 모든 단계는 미세한 지도학습 기반으로 이루어져 있으며, 겉보기에는 multi-stage가 pose estimation에 더 적합해 보인다. 고해상도를 가능하게 하고 더 유연하기 때문인데, 이는 데이터셋마다 다른 결과를 보여준다는 사실을 발견하였다.

이 연구에서는 위의 문제가 발생하는 것이 설계의 부족 때문이라고 지적하며 3가지 개선된 MSPN(Multi-stage Pose Estimationnetwork)을 제안한다.
첫째, 복합 단계 방법의 단일 단계의 모듈이 좋지 않다는 사실을 발견하였다. 예를 들어 Hourglass의 모듈의 경우 모든 블록(업샘플링, 다운샘플링) 에 동일한 폭의 채널을 사용하는데 이것은 ResNet의 아키텍쳐와 완벽히 모순되는 내용이다. 대신에, 이미 존재하는 단일 단계 네트워크 구조 중 좋은 것(CPN사의 GlobalNet)을 발견하는 것만으로도 충분하다고 본다.
둘째, 위아래로 반복되는 샘플링때문에 정보가 손실될 가능성이 더 커지고 최적화가 더 어려워진다. 이를 해결하기 위해 여러 단계에 걸쳐 feature들을 종합할 것을 제안한다.
마지막으로, 복합 단계를 통해 pose localization 정확도(accuracy)가 개선되는 것을 관찰하며 미세한 지도학습을 적용한다. 

Related work

최근의 pose estimation 연구 분야는 심층 신경망(DCNN) 을 사용하며 많은 발전이 있었고, 최근 연구 동향에 따르면 단일 단계복합 단계의 두 범주로 나누어서 접근해야 한다.

◆ Single-Stage Approch

단일 단계 접근 방법은 기본적으로 이미지 분류(image classsification) task 를 해결하기 위한 백본 네트워크로 이루어져있다. 이를테면 VGG, ResNet, Mask R-CNN, CPN(Cascade Pyramid Network) 등. 하지만 이들은 우수한 성능에도 불구하고 공통적으로 병목 현상(bottleneck)을 겪었는데, 단순히 모델 용량을 늘린다고 성능이 개선되지는 않는다는 것이다. 
그림 1과 표 1을 통해 이를 확인할 수 있다.

 

◆ Multi-Stage Approch

복합 단계 접근 방법은 점점 더 정교한 추정을 목표로 하며 이는 상향식 (bottom-up) 방법과 하향식 (Top-down) 방법이 있다. 하지만 단일 단계 방법은 모두 하향식이다.

상향식 방법은 이미지의 개별 관절을 예측한 다음 이 관절을 사람의 instance에 연결한다. 예를 들어 VGG-19 네트워크를 feature encoder로 사용하고 출력 feature은 네트워크를 거쳐 heat map과 key point의 연관성을 생성할 수 있다.

하향식 방법은 먼저 detector를 통해 사람을 찾은 다음 핵심 포인트의 위치를 예측하고, 자세를 추정하기 위해 encoder로 심층 신경망을 사용한다. 이러한 복합 단계의 방법은 MPII 데이터 셋에선 잘 작동하지만 더 복잡한 COCO 데이터 셋에서는 경쟁력이 없다. 최근의 COCO 챌린지 우승자 또한 단일단계 기반의 단순 베이스라인 작업을 진행했고, 이 연구에서는 기존 복합 단계 아키텍처에 몇 가지를 수정하여 다단계(복합단계) 아키텍처가 훨씬 낫다는 것을 보여준다.

 

 

Multi-Stage Pose Network(MSPN)

 

이 연구에서는 두 단계로 하향식(top-down) 접근방식을 채택했는데, 첫번째 단계에서는 기성품인 human detector를 채택하였고, 두번째로는 MSPN을 바운딩 박스에 적용하여 결과를 생성하였다. MSPN은 3가지 개선사항을 제안한다.
먼저, 기존 단일 단계 모듈의 결함을 분석하고 최근(sota)의 단일단계 pose network가 쉽게 사용되는 이유를 설명한다. 다음으로, 정보 손실을 줄이기 위해 초기에서 후기 단계로 정보를 전파하며 기능을 수집하는 전랴을 제안한다. 마지막으로, coarse-to-fine (미세 감독) 지도학습의 사용법을 소개하며 localization 정확도에서 더욱더 세밀하게 적용할 수 있는 방법을 제안한다.

 

[업데이트 : 2022-01-30]

논문 : Dynamical Isometry and a Mean Field Theory of CNNs: How to Train 10,000-Layer Vanilla Convolutional Neural Networks

 

 

2018년에 발표된

Dynamical Isometry and a Mean Field Theory of CNNs:How to Train 10,000-Layer Vanilla Convolutional Neural Networks

논문의 Summary 겸 리뷰를 적어보려고 합니다.

글을 쓰기에 앞서, 공부를 위해 논문을 보며 요약, 작성한 내용이라 간혹 오역이나 잘못된 내용이 있을 수 있습니다.

핵심 키워드는 highlight를 해두었습니다. 틀린 부분은 댓글로 알려주시면 감사하겠습니다^^ 

편의상 경어체를 빼고 작성합니다.


 

 

Abstract

 

최근의 비전 연구들을 보면, cnn의 계층이 더욱 깊어지는 것을 볼 수 있으며 성공적인 모델들은 수백~수천개의 계층을 가지고 있음을 알 수 있다. 병리학에서 exploding/vanishing gradient 와 같은 문제는 더욱 그렇게 만든다. 잔차처리나 배치 정규화(batch normalization)가 이러한 깊이로 훈련을 하는 동안, 과연 그러한 아키텍쳐들이 deep CNN을 학습하는 데 꼭 필요할까?에 대한 불확실성이 제기되었다. 이 과정에서 우리는 정확한 초기화 과정을 통해 일반적인 CNN이 10개 이하의 간결한 레이어를 사용하는 것이 가능하다는 것을 깨달았다.

우리는 신호 전파(propagation)에 대한 평균 필드 이론(mean field theory)을 개발하고 입력-출력 야코비안(Jacobian) 행렬의 특이값의 평형인 동적 등각도(dynamic isometry) 에 대한 조건을 특성화하여 이 초기화 방식을 이론적으로 유도한다.

Isometry 란 육면체를 투영한 때, 3축의 선분이 각각 120℃로 이루어져 윤곽이 정육각형이 되는 투영을 등각투영이라 한다.  이 경우, 좌표축상의 길이는 실제 길이보다 짧게 되지만, 이것을 실제 길이로 묘사한 것을 등각도라 한다. 하나의 투영도로 입체를 나타낼 수 있는 것으로 설명도(說明圖) 등에 이용된다.
 
이러한 조건은 컨볼루션 연산자가 정상 보존이라는 의미에서 직교 변환(orthogonal Transformation)이어야 한다는 것을 필요로 한다. 우리는 이러한 무작위 초기 orthogonal 컨볼루션 커널을 생성하기 위한 알고리즘을 제시하고 이것이 극도로 깊은 아키텍처의 효율적인 훈련을 가능하게 한다는 것을 경험적으로 보여준다.
 

Introduction

Deep CNN은 딥러닝의 성공에 매우 중요했으며 이를 기반으로 한 아키텍처는 컴퓨터 비전, 음성인식, NLP, 그리고 바둑(알파고)까지 뛰어난 정확도를 달성했다. Deep CNN의 성능은 네트워크가 더 깊어짐에 따라 향상되었으며, 일부 모델은 수백~수천 개의 레이어를 사용했다. 그러나 너무 깊은 아키텍처는 잔여(residual) 연결이나 배치 정규화같은 기술과 사용해야만 훈련할 수 있다.

최근 연구에서는 평균 필드 이론(mean field theory)를 사용하여 랜덤 매개변수가 있는 신경망에 대한 이론적 이해를 구축했다. 이러한 연구는 초기화 시 신호가 전파될 수 있는 최대 깊이를 밝혀냈고, 신호가 모든 경로를 통과할 때 네트워크가 정확하게 학습될 수 있음을 확인했다. 

Fully-connected layer의 초기화 하이퍼파라미터 공간에서 순서대로 정렬됨을 추가적으로 예측할 수 있다. 평균 필드 이론은 "평균"을 포착하지만 경사 하강의 안정성에 중요한 변동의 규모를 정량화하지 않는다.

입출력에서 랜덤 행렬을 사용하여 활성화 함수와 특이값의 분포를 정량화했다. 초기 무작위 가중치 행렬이 그려지는데, 야코비안(Jacobian) 행렬이 잘 조절될 때 네트워크가 가장 효율적으로 훈련될 수 있다. 이미지가 작은 경우에도 채널수가 많다는 한계에서 잘 정의된 평균 필드 이론이 심층신경망에 존대한다는 걸 알 수 있다. 심층 신경망은 Fully-connected layer와 정확히 동일한 순서를 가지며 정렬 단계에서 gradient-vanishing 문제, 그리고 chaos 단계에서 gradient exploding 문제가 발생한다는 것을 알 수 있다. 또한 Fully-connected layer와 마찬가지로 임계값에서 초기화되는 매우 깊은 CNN이 두 단계를 분리하는 것은 상대적으로 쉽게 훈련될 수 있다.

또한 랜덤 행렬(random matrix) 에 대한 분석이 convolution으로 이어지는데, block-circulant 구조가 야코비안 행렬이 신경망 속에서 fine tuning을 할 때 간편하게 할 수 있다. 이 초기화를 사용함으로서 일반적인 컨볼루션 모델보다 훨씬 빠르게 학습할 수 있다.

Fully-connected layer와 심층 신경망의 order-to-chaos는 동일해보이지만, 평균 필드 이론(mean field theory)는 사실 상당히 다르다는 점을 강조한다. 깊은 깊이의 한계에서 신호는 최소한의 공간 구조로 모드를 전파할 수 있다. Delta-orthogonal 초기화에서 orthogonal 커널은 균일하지 않은 분포에서 추출되며 성능 저하 없이 10,000개 이상의 레이어로 구성된 바닐라 CNN을 학습할 수 있다.

 

Theoretical results

 

랜덤 컨볼루션 신경망에서 신호 전파에 대한 평균 필드 이론을 도출할 것이다. 일반적인 방법론을 따르면 야코비안(Jacobian) 행렬의 특이값 분포에 대한 이론에 도달하게 된다. 이 커널은 합성곱 신경망의 motivation을 유도할 수 있도록 해주고, 이러한 커널이 바닐라 CNN에 대한 기존 초기화 방식보다 성능이 좋다는 것을 알 수 있다.

2.1 A mean field theory for CNNs

2.1.1 RECURSION RELATION FOR COVARIANCE

평균 필드 이론은 CNN의 최대 훈련 가능한 깊이를 예측하기 때문에 분산 값이 위와 같은 경우 히트맵은 가중치 분산에 따라 특정 값에 수렴을 하며 깊이의 배수에 따라 달라짐을 알 수 있다.

 

다양한 깊이의 CNN 중 orthogonal 커널을 사용한 곡선들은 결과적으로 accuracy가 100%에 도달하지만 그렇지 않고 일반적인 초기화를 사용한 곡선들은 깊이가 증가함에 따라 성능이 저하됨을 알 수 있다. 따라서 Delta-orthogonal 초기화는 깊이가 증가함에 따라 테스트 성능이 감소하는 문제를 해결한다.

 

Discussion

CNN에서 신호가 전파될 때 평균 필드 이론에 기반하여 전파되는 연구를 진행했고, 신호가 네트워크를 통해 앞뒤로 흐르기 위한 필요 조건을 연구함으로써 바닐라 CNN의 훈련을 쉽게 훈련하는 초기화 방식을 발견했다. 

연구에서 제시한 방법은 동적 등각도(dynamic isometry)이며 즉, 야코비안(Jacobian) 행렬의 네트워크 입출력을 활성화할 때, 랜덤 orthogonal 커널을 생성하여 초기화할 수 있도록 진행했다. Fully-connected layer와 반대로 CNN의 신호는 다차원이다. 이번 연구에서는 이 신호를 푸리에 모드로 분해하는 방법과 신호 전반에 걸쳐 전파를 촉진하는 것을 연구했고, 10,000개 이상의 레이어로 기본 CNN을 훈련하는 것이 가능하다는 것을 발견했다.

위의 행위를 통해 무작위로 vanilla CNN을 훈련할 때 발생하는 모든 장애물을 제거했으며, 딥러닝 커뮤니티에서 나오는 깊이만으로 성능을 향상시킬 수 있는지에 대한 질문를 다룰 수 있기 위한 토대를 마련했다. 초기 결과는 수십~수백 개의 레이어오 특정 깊이를 지나면 vanilla CNN의 아키텍쳐의 성능이 포화되는 것으로 나타났다.

이를 통해 residual 연결이나 배치 정규화같은 기능이 단순히 '학습을 효율적으로 하는 것'보다 '좋은 모델 클래스를 정의하는 것'에 중요한 역할을 할 가능성이 있다는 점을 시사할 수 있다.

[업데이트 : 2022-01-09]

논문 : Recent Advances in Convolutional Neural Networks

 

 

2015년에 발표된

Recent Advances in Convolutional Neural networks

논문의 Summary 겸 리뷰를 적어보려고 합니다.

글을 쓰기에 앞서, 공부를 위해 논문을 보며 요약, 작성한 내용이라 간혹 오역이나 잘못된 내용이 있을 수 있습니다.

핵심 키워드는 highlight를 해두었습니다. 틀린 부분은 댓글로 알려주시면 감사하겠습니다^^ 

편의상 경어체를 빼고 작성하겠습니다.


 

 

Abstract

 

그동안 nlp, vision 분야에서 딥러닝의 지속적인 발전이 있었고, 이는 컴퓨터 그래픽 프로세서의 발전뿐만 아니라 합성곱신경망의 발전 덕분이기도 하다. 이 논문에서는 CNN의 다양한 양상과 주요 요소들을 살펴보려고 한다. 

 

Introduction

CNN은 시각피질세포가 빛을 감지하는 것에서 영감을 받아 개발한 인공신경망이다. CNN의 프레임워크를 기조로 손으로 쓴 문자(imagenet)를 분류할 수 있는 신경망을 개발했는데, 그것이 LeNet-5이다.

하지만, 그 당시에는 대규모 훈련데이터나 컴퓨팅 성능에 대한 부분이 부족했기 때문에, 대규모 이미지나 이미지 분류와 같은 복잡한 문제에서는 네트워크가 제대로 작동하지 않았다.  이러한 문제를 해결하기 위해 2006년 이후 많은 방법들이 개발되었고, deepCNN에서는 고전적인 CNN 아키텍처를 제안했다.

AlexNet은 LeNet-5와 비슷한 구조를 가졌지만 더 깊다. AlexNet이후 제안된 아키텍처들(ZFNet, VGGNet, GoogleNet, ResNet)을 살피면 네트워크가 더 깊어지는 추세이다. ResNet은 AlexNet보다 20배, VGGNet보다 8배 깊은데, 깊이를 증가시키면 더 나은 피처를 얻을 수 있다.

 

이 논문에서 다룰 구조들이다.

Section 2. CNN의 기본 구성요소 개요

Section 3. Convolutional Layer, Pooling Layer, Activation Function, Loss Function(손실함수), Regularization, Optimization

Section 4. 컴퓨팅기술

Section 5. Applications

 

Section 2. Basic CNN Components

CNN은 다양한 형태의 아키텍처가 있지만, 기본 구성 요소들은 거의 유사하다.

(LeNet-5를 예시를 들어서 설명하겠다.) Convolutional Layer, Pooling Layer, Full-Connected Layer 의 세가지 유형의 계층으로 구성된다.

Convolutional Layer는 Input의 feature를 학습하는 것을 목표로 한다. 그림 2(a)에서 볼 수 있듯이 컨볼루션 레이어는 여러 가지 feature map을 계산하는 데 사용되는 여러 컨볼루션 커널로 구성된다. 이 feature map의 뉴런은 이전 layer의 뉴런 영역과 연결된다. 먼저 학습된 input을 Convolution한 후, 결과값을 Activation Function을 통해 Feature Map을 얻을 수 있다.

Activation Function(활성화함수)은 CNN에 비선형성을 도입하여, 다층 네트워크가 비선형 특징을 감지하는 데 적합하다. 일반적인 활성화함수는 sigmoid, tanh, ReLU등이 있다.

Pooling Layer는  Feature Map의 resolution을 줄여 shift-invariance를 달성하는 것을 목표로 하며, 일반적으로 두개의 Convolutional Layer 사이에 배치된다. 일반적인 Pooling Layer는 Average Pooling과 Max Pooling이 있다.

CNN의 마지막 레이어는 출력 레이어이다. 분류(classficiation) 작업의 경우, 일반적으로 softmax 연산자가 사용된다. θ는 CNN의 모든 매개변수를 나타낸다. 최적의 매개변수는 Loss Function(손실함수)를 최소화하여 얻을 수 있다. CNN 학습은 Optimization(최적화)의 문제이다. loss function를 최소화함으로써 최적의 매개변수 집합을 찾을 수 있다. SGD(경사하강법)은 CNN 네트워크 최적화를 위한 일반적인 솔루션이다.

 

Section 3. Improvements on CNNs

2012년 AlexNet의 성공 이후 많은 발전이 있었다. 그 개선점들을 여섯가지 측면에서 설명할 예정이다.

3.1. Convolutional Layer 

컨볼루션 필터는 일반화 선형 모델이다. instance가 선형으로 분리할 수 있는 경우 추상화에 적합하다.

3.1.1. Tiled Convolution

Weight를 공유함으로써 매개변수의 수를 크게 줄일 수 있다. 이를 통해 동일한 레이어에서 별도의 커널을 학습하고, 인접 유닛에 대한 풀링을 통해 복잡한 불변성을 학습할 수 있다.

3.1.2 Transposed Convolution 

Transposed Convolution은 전통적인 Convolutional Network의 역방향으로서 deconvolution이라는 용어를 사용하기도 한다. 그림3(d)에서 처럼 스트라이드와 패딩을 사용하여 4x4 입력에 대한 3x3 커널의 deconvolutional 연산을 볼 수 있다. 최근 visualization, 혹은 super-resolution, recognition, segmentaion 등의 분야에서 널리 사용되고 있다.

3.1.3 Dilated Convolution

이는 Convolution layer에 hyper-parameter를 추가한 것이다. 필터 요소 사이에 0을 삽임함으로써 receptive field의 크기를 늘리고 네트워크가 더 관련성 높은 정보를 다루도록 할 수 있다. 이는 예측할 때 큰 receptive field가 필요한 작업에 유용할 수 있다. 보통 기계번역, 음성합성/인식 분야에서 널리 사용된다.

3.1.4 Network In Network

Network In Network(NIN)은 선형 필터를 다층 퍼센트론 컨볼루션 레이어와 같은 네트워크로 대체하여, 보다 추상화에 용이하도록 한다. 최종 레이어의 feature map을 평균화하는 global average pooling을 적용하여 출력한 vector를 softmax레이어에 직접 공급한다. Fully-connected Layer와 비교했을 때, Global average Pooling은 매개변수가 훨씬 적기 때문에 과적합이나 계산 부하 부분에서 훨씬 자유롭다.

3.1.5 Inception Module

 

3.2 P

3.2.1 Lp Pooling

3.2.2 Mixed Pooling

3.2.3 Stochastic Pooling

3.2.4 Spectral Pooling

3.2.5 Spatial Pyramid Pooling

3.2.6 Multi-scale Orderless Pooling

 

3.3 A

3.3.1 ReLU

3.3.2 Leaky ReLU

3.3.3 Parametric ReLU

3.3.4 Randomized ReLU

3.3.5 ELU

3.3.6 Maxout

3.3.7 Probout

 

3.4 Loss

3.4.1 Hinge Loss

3.4.2 Softmax Loss

3.4.3 Contrastive Loss

3.4.4 Triplet Loss

3.4.5 Kullback-Leibler Divergence

 

3.5 Regularization

3.5.1 lp-norm Regularization

3.5.2 Dropout

3.5.3 DropConnect

 

3.6 Op

3.6.1 Data Augmentation

3.6.2 Weight Initialization

3.6.3 Stochastic Gradient Descent

3.6.4 Batch Normalization

3.6.5 Shortcut Connections

 

4. Fast Processing of CNN

4.1 FFT

4.2 Structured Transforms

4.3 Low Precision

4.4 Weight Compression

4.5 Sparse Convolution

 

 

 

 

5. Applications of CNNs

5.1 Image Classfication

5.2 Object Detection

5.3 Object Tracking

5.4 Pose Estimation

5.5 Text Detection and Recognition

5.5.1 Text Detection

5.5.2 Text Recognition

5.5.3 End-to-end Test Spotting

5.6 Visual Saliency Detection

5.7 Action Recognition

 

6. Conclusions and Outlook

CNN은 이미지, 비디오, 음성, 텍스트 등 다양한 형태의 데이터를 다루는 것에 있어서 중요한 역할을 했고, 그러한 작업들을 함에 있어 layer, activation function, loss function, optimization 등 중요한 개념들을 더 자세하게 다뤄야 한다는 점을 깨달았다.

하지만 여전히 해결해야 하는 문제들이 남아있다. 학습을 위해서는 대규모 데이터 셋과 뛰어난 컴퓨터 성능이 필요하다. 라벨링된 데이터를 수집하려면 많은 인력이 필요하기 때문에, CNN의 비지도 학습을 따르는 것이 바람직하다. 또한 SGD 알고리즘이 이미 합리적일지라도, 더 나은 계산 속도와 메모리를 위해 지속적으로 개발해야 한다.

학습률, 커널 크기, 레이어 수 같은 하이퍼파라미터를 적절하게 선택하는 것은 많은 기술과 경험이 필요할뿐더러 튜닝 비용이 많이 든다. 따라서, 학습을 위한 최적화 기술도 더욱 발전해야 할 것이다.

 

 

[업데이트 : 2022-01-02]

논문 : Bag of Tricks for Image Classification with Convolutional Neural Networks

 

 

2019년에 발표된

Bag of Tricks for Image Classification with Convolutional Neural Networks

논문의 Summary 겸 리뷰를 적어보려고 합니다.

글을 쓰기에 앞서, 공부를 위해 논문을 보며 요약, 작성한 내용이라 간혹 오역이나 잘못된 내용이 있을 수 있습니다.

핵심 키워드는 highlight를 해두었습니다. 틀린 부분은 댓글로 알려주시면 감사하겠습니다^^ 

편의상 경어체를 빼고 작성하겠습니다.

 


 

Abstract

이미지 분류에서 최근 이뤄진 data augmentation이나 최적화같은 연구는 훈련 절차를 개선했다. 그러나 대부분 간단하게 언급되거나 소스코드에서만 볼 수 있다. 우리는 이 논문에서 해당 부분을 조사하고 깊게 연구하여 그들이 모델 정확도에 최종적으로 미치는 영향을 평가하려고 한다.

이러한 개선사항들을 결합하여 CNN 모델들을 개선할 수 있다. 예를 들어 ResNet50의 경우 75.3%의 정확도에서 79.29%로 개선되었으며, 이는 객체감지나 같은 작업 도메인에서는 더 나은 성능을 보여주기도 한다.

 

 

1. Introduction

2012년 AlexNet의 발견 이후 컨볼루션 신경망을 활용한 접근 방식이 지배적이었으며, VGG를 포함한 NiN, Inception, ResNet, DenseNet, NASNet등의 새로운 아키텍쳐들이 제안되었다.

이들은 성능 향상을 가져왔으며 이는 단순히 개선된 아키텍처로 인한 결과물이라기보다는 다양한 요소들도 함께 개선되었기 때문에 얻은 결과이다. (Loss Functions, Data Processing, Optimization Methods). 하지만 이들은 큰 주목을 받지 못해왔고 대부분은 아주 작은 수정이나 변경과 같은 '트릭'으로 보인다. 여러 네트워크를 사용하여 그들을 평가할 것이다.

 

Paper Outline

Section 2. 기본 훈련학습 절차

Section 3. 유용한 몇가지 트릭들

Section 4. 3가지 모델 아키텍처 조정 요소들

Section 5. 4가지 추가 절차 개선사항들

Section 6. 모델 전이학습

이 구현 모델과 스크립트들은 GluonCV 1에 공개되어있기 때문에 사용이 가능하다.

https://github.com/dmlc/gluon-cv

 

GitHub - dmlc/gluon-cv: Gluon CV Toolkit

Gluon CV Toolkit. Contribute to dmlc/gluon-cv development by creating an account on GitHub.

github.com

 

2. Traning Procedures

미니배치 경사하강법을 사용하여 훈련하는 템플릿이다. 각 iteration(반복) 에서 무작위로 b 이미지를 샘플링하여 기울기를 계산한다음 매개변수를 업데이트한다. K가 데이터셋을 통과한 후 중지된다.

 

 

2.1.  Baseline Training Procedure

ResNet의 기본 파이프라인을 따른다.

 

2.2.  Experiment Results

ResNet-50, InceptionV3, MobileNet의 세 가지 CNN을 평가할 것이며, 이미지는 299x299의 사이즈를 사용할 것이다. ISLVRC2012의 데이터셋을 사용하였다.

ResNet-50이 아주 근소한 차이로 가장 나은 결과를 보여줬으며 InceptionV3와 MobileNet은 다른 훈련절차로 인해 정확도가 약간 낮았다.

 

3.  Efficient Training

하드웨어, 특히 GPU는 빠르게 발전하고 있으며 결과적으로 최근 몇 년동안 성능 관련 trade-off가 변경되었다. 예를 들어, 더 낮은 수치 정밀도와 더 큰 사이즈의 배치사이즈를 사용하는 것이 훈련에 더 효율적이다. 

이번 섹션에서는 정확도를 낮추지 않으면서 대규모 배치 훈련을 가능하게 하는 기술들에 대해 검토한다.

 

3.1.  Large-batch Training

미니배치 경사하강법은 병렬 처리의 성능을 높이고 커뮤니케이션에 따른 비용을 줄이기 위해 병렬 그룹화 한다. 하지만 사이즈가 큰 배치를 사용하면 속도가 느려질 수 있다.

볼록(convex)문제의 경우, 배치 크기가 증가함에 따라 수렴비율이 감소한다. 즉, 큰 배치로 훈련하는 모델은 작은 배치로 훈련한 모델보다 동일한 수의 epoch동안 정확도가 저하된다. 이를 해결하기 위해 휴리스틱을 제안한다. 총 4가지의 휴리스틱 방법을 제시할 것이다.

 

  • Linear scaling learning rate

미니배치 경사하강법은 무작위 프로세스를 진행하고 있고, 배치 사이즈의 증가는 기울기의 기대치를 변경하지 않으면서 분산을 줄일 수 있다. 즉, 큰 배치는 기울기의 노이즈를 줄여주므로 학습률/학습속도(learning late)가 개선될 수 있다.

  • Learning rate warmup

훈련 초기에는 매개변수들이 임의의 값이기 때문에 최종 솔루션에서 멀리 떨어져있다. 너무 빠른 학습률은 불안정성을 초래할 수 있다. 워밍업 단계에서는 처음에는 작은 학습률을 사용하고 훈련 단계에서는 다시 처음의 안정적인 학습률을 사용한다. 즉, 점진적으로 워밍업을 하며 학습률을 0에서 초기까지 증가시키는 선형 학습률을 사용한다.

  • Zero γ

ResNet 여러 가지 잔여(residual) 블록으로 구성되어 있고, 각 블록은 여러개의 Convolutional Layer로 구성된다. 입력 x 가 주어질 때 출력값이 block(x)라고 가정하면, 마지막 레이어에서 잔여블록은 x+block(x)를 출력한다. 이 마지막 레이어는 배치 정규화 레이어(Batch Normalization Layer)가 된다. 각 요소들이 초기화되는 매개변수들이다.

따라서 모든 잔여 블록들은 인풋을 반환하고, 계층수가 적고 더 쉬운 네트워크가 초기 단계 훈련에서 훨씬 쉽다는 것을 확인할 수 있다.

  • No bias decay

weight를 감소시키는 것은 모든 학습 가능한 가중치(weight)와 편향(bias)를 포함하는 매개변수에 적용된다. 모든 매개변수에 L2 정규화를 적용하여 값을 0으로 만드는 것과 같다. 하지만 과적합을 피하기 위해 가중치에만 정규화를 적용하는 것이 좋다.

 

3.2.  Low-precision Training

신경망은 주로 32비트에서 훈련이 된다. FP32는 FP16 로 바꿨을 때 2-3배 정도 더 빨라진다(?). 기울기 범위를 FP16에  맞추는 것도 실용적이다.

 

3.3.  Experiment Results

 

신경망

 

 

 

작성중(---ing )

 

7.  Conclusion

논문에서는 모델의 정확도를 개선하기 위한 다양한 트릭들을 조사했다. 약간의 수정을 통해 ResNet-50, InceptionV3, MobileNet의 정확도가 개선됨을 확인하였다. 이 모든것을 함께 쌓으면 정확도가 훨씬 높아진다. 이번 연구를 통해 이를 통해 더 넓은 영역으로 확장될 수 있다고 믿으며 객체 탐지(Object detection) 분야나 분류(Segmentation) 분야에서는 큰 이점을 얻을 수 있을 것이다.

 

[업데이트 : 2021-12-08]

논문 : Gradient-Based Learning Applied to Document Recognition

 

1998년에 발표된 Gradient-Based Learning Applied to Document Recognition 논문의 Summary 겸 리뷰를 적어보려고 한다. 글을 쓰기에 앞서, 공부를 위해 논문을 보며 요약, 작성한 내용이라 간혹 오역이나 잘못된 내용이 있을 수 있다. 핵심 키워드는 highlight를 해두었다. 틀린 부분은 댓글로 알려주시면 감사하겠습니다^^ 

CNN 의 아키텍쳐가 시작된 논문이다. 이 논문에서 구현한 모델은 LeNet으로, 이 모델을 기조로 향후의 CNN모델이 발달했다고 할 수 있다.

 

 

0. 들어가기 전에 핵심 키워드 살펴보기

 

1. Abstract

 

역전파 알고리즘으로 훈련된 다층 신경망이 Gradient-Based 학습 기술의 성공적인 사례임을 알리고 있다. Gradient-Based Learning 알고리즘은 최소한의 전처리로도 손글씨같은 복잡한 고차원의 패턴을 잘 분류한다고 한다. Convolutional Neural Network(CNN)은 특히 2D형태의 데이터를 다루는 데 용이하다.

 

2. Introduction

 

---ing 

[업데이트 : 2021-12-06]

논문 : Network In Network

 

2014년에 발표된 Network In Network 논문의 Summary 겸 리뷰를 적어보려고 한다.

글을 쓰기에 앞서, 공부를 위해 논문을 보며 요약, 작성한 내용이라 간혹 오역이나 잘못된 내용이 있을 수 있다.

핵심 키워드는 highlight를 해두었다. 틀린 부분은 댓글로 알려주시면 감사하겠습니다^^ 

 

 

 

 

Abstract

저자는 수용 영역 내에서 모델의 판별 가능성을 향상시키기 위해 Network In Network 라는 새로운 심층 네트워크 구조를 제시한다. (이하 NIN)

기존의 Covolutional 모델은 비선형 활성화 함수와 함께 선형 필터를 사용한다.

반면, NIN은 기존의 Covolutional 모델보다 수용 영역내에서 데이터를 더 복잡하게 추상화할 수 있는 micro neural network를 사용한다. 다층 퍼셉트론을 사용하였으며, feature map도 기존 모델과 유사한 방식으로 추출한다.

앞서 사용한 micro neural network를 통해 향상된 모델을 통해 global average pooling을 활용한다. global average pooling을 통한 이점은 해석이 쉽다는 점과 전통적인 fully connected layer에 비해 과적합(overfitting)이 될 가능성이 적다는 점이다.

CIFAR-10, CIFAR-100의 데이터를 사용하여 classification 하였고 SVHN과 MNIST 데이터셋을 활용하였다.

 

 

Introduction

기존 CNN모델에 대해 설명하고 있다. CNN모델은 Convolution layer와 pooling layer로 구성되어 있다. 앞서 말했듯, 비선형 활성화 함수와 선형 필터를 사용하여 나온 결과를 feature map이라고 한다.

CNN의 convolution filter는 데이터 패치에 대한 일반화된 선형 모델(GLM : Generated Linear Model)이다. 저자는 GLM에서 추상화 수준이 낮다고 주장한다. 이 GLM을 더 강력한 비선형 함수 approximator로 대체한다면 훨씬 성능을 향상시킬 수 있다고 주장한다.

GLM은 숨겨져있는 샘플들이 선형화되었을 때 잘 추상화된 GLM에 의해 

 

Convolutional Neural Networks

---ing

+ Recent posts