글 작성자: 만렙개발자

딥러닝/인공신경망에 관련된 문서나 논문을 읽다보면 vanilla model이라는 단어가 나올 때가 있습니다. 특히 Kaggle과 같이 기준이 되는 base model이 제안되고, 고득점을 하기 위해, 그리고 성능을 높이기 위해 모델이 자주 변형되는 경우에 많이 사용됩니다.

 

아이스크림을 생각해봅시다.

가장 기본적인 아이스크림 맛은 무엇인가요?

 

바닐라입니다!

(어떤 분에겐 우유나 초코일수도...)

 

따라서, 가장 '순수한' 상태의 모델을 바닐라 모델이라고 합니다.

 

예를들어서 ResNet-50 이라는 모델이 있다고 했을 때, 그 안에서 변형될 수 있는 요소는 매우 많습니다! 그 오리지널의 상태가 바닐라 모델입니다. 

 

그럼 바닐라 모델은 어떨 때 사용될까요?

 

1. 어떤 모델을 사용할지 결정하기 위해서

연구/개발 초기 단계에는 모델의 세부적인 부분을 고치기보다는, 어떠한 모델을 사용할지 결정해야합니다. 그럴 때에는 바닐라 모델을 사용하는 것이 가장 좋습니다. 바닐라 모델은 코드도 많이 공유가 되어있고(미리 확보를 해두면 좋습니다.) 학습된 파라미터를 갖고있을 확률도 높기 때문입니다. 또한 그 모델에 대한 이론적인 구현이 가장 순수하게 되어있기 때문에 의도가 분명합니다. 따라서 연구/개발 초기 단계에는 다양한 바닐라 모델들을 사용하여 어떤 모델 아키텍처를 중심으로 연구해야할지 방향성을 설정할 수 있습니다.

 

2. 기준이 되는 모델(baseline model)로 사용하기 위해서

연구/개발이라는 것은 이전에 있던 것을 그저 그대로 사용하는 copy/paste가 아니라, 현재 내게 주어진 문제에 맞게 무언가를 향상시켜서 연구/개발하는 것이라고 생각합니다. 그러면 어떠한 방식으로 적용했는지 성능을 비교하기 위해서는 기준이 되는 모델이 필요합니다. 성능의 기준이 되는 모델을 baseline model(베이스라인 모델)이라고 합니다. 그러한 baseline 모델로 가장 적합한 것이 바로 vanilla 모델입니다.