본문 바로가기

딥러닝 & 머신러닝/프로젝트

머신러닝 수업 프로젝트 (4) : 제안 방법

3. 제안 방법

 

본 연구에선 딥러닝 모델인 DenseNet, Xception, PyramidNet의 파라미터 수를 대회 규정에 맞춰 줄이기 위해, 그 구조를 일부 변경한 모델을 사용하고자 했습니다. 그다음, 같은 조건에서 각 모델을 학습시켜 최고의 테스트 정확도를 나타내는 모델을 선정합니다. 이후 실험을 통해 해당 모델에 맞는 최적의 하이퍼 파라미터 값을 찾아 적용한 후, 데이터 증강, Mish 활성화 함수, 앙상블 기법을 적용하여 더욱 향상된 성능을 얻고자 했습니다.

 

A. 변형 DenseNet

 

원논문에서 제시한 DenseNet-121의 경우 Dense Block은 총 56개, Transition Layer는 총 3개이며, 파라미터 수가 약 1,300만 개에 이릅니다. 우리는 여기서 Dense Block을 18개, Transition Layer는 2개만을 사용하였고, Bottleneck Layer에 Figure 2와 같은 Residual Block을 1 개 추가해 파라미터 수를 약 197만 개로 줄였습니다. 모델 구조는 Table 1과 같습니다. 이때 모든 Convolution Layer 다음에는 항상 Batch Normalization Layer[22]가 이어지며, 모두 ReLU 활성화 함수를 사용했습니다.

 

Table 1. 변형 DenseNet 구조

 

B. 변형 Xception

 

원논문에서 제시한 Xception의 경우 파라미터 수가 약 2,285만 개에 달합니다. 우리는 원본 Xception에 사용되는 구조인 Entry flow, Middle flow, Exit flow에서 사용되는 Convolution 필터의 수를 대부분 절반으로 줄였습니다. 또한, 본래 8개인 Middle flow의 개수를 1개로 줄여 사용함으로써 파라미터 수를 약 198만 개로 줄였습니다. 모델 구조는 Figure 10, 11, 12와 같고, 각각 Entry flow, Middle flow, Exit flow를 나타냅니다. 이때 Depthwise Seperable Convolution Layer를 제외한 모든 Convolution Layer 다음에는 항상 Batch Normalization Layer가 이어지며, 모두 ReLU 활성화 함수를 사용했습니다.

 

Figure 10, 11, 12. Entry, Middle, Exit Flow

 

C. 변형 PyramidNet

 

원논문에서는 feature map의 개수를 얼마나 늘릴지 설정하는 파라미터인 α 와 layer 의 개수를 결정하는 데 쓰이는 파라미터인 k 를 변화시켜가며 여러 버전의 모델을 실험했습니다. 가장 적은 파라미터를 가진 모델의 경우 α가 48, k가 110으로 파라미터 수가 약 170만 개입니다. 한편, 앞서 제시한 모델인 변형 DenseNet과 변형 Xception의 파라미터 수 또한 200만 개에 가까웠습니다. 파라미터 수가 많은 두 모델의 과적합 가능성을 고려해야 했기에, 이번 변형 PyramidNet에서는 파라미터 수가 약 170만 개인 원본 모델보다도 모델 용량을 줄여서 사용하기로 했습니다. 본 연구에서는 α를 48, k 는 60을 사용함으로써 PyramidNet의 파라미터 수를 약 89만 개로 줄일 수 있었습니다. 모델 구조는 Table 2와 같습니다.

 

Table 2. 변형 PyramidNet 구조

 

D. 모델의 성능 향상을 위한 기법

 

똑같은 조건에서 세 모델을 훈련한 후, 가장 성능이 좋은 모델엔 다음의 기법들 또한 적용하여 최고의 성능을 도출하고자 했습니다.

 

Table 3. 데이터 증강 방법

1. 데이터 증강

Table 3에 명시된 torchvision.transforms. 메소드를 활용하여 데이터 증강을 수행하고자 합니다.

 

2. Mish 활성화 함수

ReLU 활성화 함수를 대신하여, 다양한 장점이 있는 Mish 활성화 함수를 사용하고자 합니다.

 

3. 앙상블

성능이 가장 좋은 모델을 여러 하이퍼 파라미터로 훈련시킨 후, 그중에서도 특히 더 결과가 좋은 두 경우를 골라 Fully Connected Layer 하나로 연결하여 앙상블을 수행하고자 합니다. 이때 앙상블 모델의 파라미터 수 역시 200만 개가 넘지 않도록 합니다.