안녕하세요.

이번 글에서는 왜 CNN 학습 방법론에 대해 관심을 갖게 됐는지에 대해 설명해보도록 하겠습니다.

 

 

1. CNN 학습 방법론에 주목한 이유 

 

CNN을 연구한다고 했을 때, 대부분 CNN 구조를 모델링하는 것을 연상할 것입니다.

 

(↓↓↓CNN 아키텍처들↓↓↓)

https://89douner.tistory.com/category/Deep%20Learning%20for%20Computer%20Vision

 

'Deep Learning for Computer Vision' 카테고리의 글 목록

#Interest: World History (The past) #Work: Deep Learning (The future) #Hobby: Music, Sports

89douner.tistory.com

 

모델링을 한다는 것은 정말 멋지고 대단한 일이지만, 지나친 CNN 모델링 연구 또한 문제가 될거라고 생각합니다.

 

1-1. 방대한 자원과 시간이 필요

CNN을 모델링 하는 것은 오랜 시간을 요구합니다.

즉, 다양한 모델들을 섭렵하기도 해야하고, 자신만의 창의적인 방법을 적용시키면서 독특한 모델을 만들어야 하기 때문이죠.

 

이미지 출처: https://www.researchgate.net/figure/Architecture-of-building-block-of-MobileNet-7-ShuffleNetV2-9-and-this-work-a-The_fig1_335642305

 

이러한 독창적인 CNN 모델을 만들었다고 끝이 아닙니다. 왜냐하면 방대한 ImageNet을 통해 해당 CNN 모델을 학습시키는 것도 오랜 시간이 걸리기 때문이죠.

 

이미지 출처: https://sherryl93.github.io/training-imagenet-with-caffe/

 

추가적으로, 최적의 Hyper-parameter를 찾는 것도 고려해야 한다면, 모델링 연구는 개인이 하기에 시간/비용적으로 너무 부담이 되는 것도 사실입니다. 

 

이미지 출처: https://blog.floydhub.com/guide-to-hyperparameters-search-for-deep-learning-models/

 

아카데믹(학계)에서는 이러한 연구를 할 수 있는 시간이 충분히 주어지겠지만, 산업현장 같은 곳에서는 빠르게 비지니스 모델을 출시해야 하므로 무작정 모델링 연구를 기다려 주는 것도 어렵습니다. 

 

 

1-2. 다양한 Vision 모델들

2012년 AlexNet의 등장이후 이미지 classifiction, segmentation, detection과 같은 분야에서 대부분 CNN 기반 모델들이 적용되어 왔습니다.

 

학습 방법론에 대해 관심을 갖게 된것은 2019년부터인데, 그 이유는 ResNet이후 다양하게 나온 CNN 모델들을 사용해도 별반 차이가 나지 않았기 때문입니다. 해당 논문들에서는 ResNet 보다 훨씬 뛰어난 performance를 보여줬으나 실제로 transfer learning을 통해 다른 domain에 적용해봤을 때는 생각만큼 뛰어나 보이지 않았기 때문입니다 (물론 좋은 성능을 보인 모델도 있었으나 평균적으로 ResNet 모델과 차이가 나지 않은 경우가 많았습니다)

 

하지만 2020년 Transformer의 등장과, 2021년 MLP로만 구성된 모델이 기존 CNN 기반의 모델들의 성능을 뛰어넘는 모습을 보면서 학습 방법론에 관심갖길 잘했다는 생각을 했습니다.

 

또한, AutoML과 같은 기술이 도입되면서 우리가 적용시키려는 domain에 맞는 모델을 자동적으로 만들어주려는 연구가 진행되는 것을 보면서, 아래와 같은 생각을 했습니다. 

 

 

"CNN 모델을 이해하는 것은 필수적이지만, 모델링을 연구하는건 연구자로써 수명이 그리 길지 않을 수도 있겠구나"

 

"차라리 모델에 치우친 연구를 하기보다는 여러 모델에 적용시켜볼 수 있는 학습 방법론에 대해서 연구하는것이 더 실용적이겠다"

 

 

 

 

2. 여러가지 딥러닝 학습방법론

위와 같은 문제를 않고 여러 딥러닝 학회 논문을 살펴봤습니다.

 

정말 다양한 학습방법론을 다룬 내용들이 많았습니다. 

대충 내용을 정리하면 아래와 같습니다.

 

  1. CNN을 독특하게 학습시키는 방법
  2. Transfer learning 관점에서 CNN을 학습시키는 방법
  3. Fine tuning을 적절하게 하는 방법

 

(b) Partial fine-tuning of pre-trained CNN.  (c) Complete fine-tuning of pre-trained CNN

이미지출처: https://www.mdpi.com/2079-9292/8/3/256/htm

 

이미지 출처: https://velog.io/@chy0428/DL-Transfer-learning

 

사실 위에서 CNN이라고 적시했지만 해당 방법론들은 MLP, Transformer 같은 모델에서도 충분히 적용 가능한 insight를 줄거라고 생각합니다.

 

과거 딥러닝 모델을 개발하는 것에만 몰두했다면, 최근에는 여러 기술들을 접목해 딥러닝 모델을 효과적으로 학습시키려는 노력을 더 많이 하는듯 보입니다. (물론 딥러닝 모델 개발을 게을리 해서도 안되겠죠)

 

 

그럼 다음 글에서부터는 다양한 학습 방법론들을 소개시켜 드리도록 하겠습니다.

 

 

+ Recent posts