brunch

4. 이미지 인식 모델의 기초지식

데이터중심 AI강좌: 데이터세트 구축 및 효율적인 데이터 학습 방법

by AI개발자
data-centric-ai-top.jpg

이미지 인식은 이미지에 무엇이 담겨 있는지를 인식하는 다양한 작업을 의미하며, 로봇, 드론, 자율주행, 의료영상진단 등 애플리케이션 범위가 매우 넓습니다. 이미지 인식 모델을 학습시키기 위해 이상적인 조건은 고품질의 데이터를 대량으로 수집하여 학습에 활용하는 것입니다. 여기서 말하는 데이터는 입력 이미지와 해당 이미지에 대응하는 라벨 정보를 포함하는 데이터세트를 의미합니다. 고품질 데이터란 다음 조건들을 만족하는 데이터를 말합니다.


이미지와 대응하는 지도정보(라벨)의 매핑관계가 올바르다.

모델학습에 유익한 관계를 형성하고 있다.

다양한 상황을 포괄할 수 있는 데이터를 포함하고 있다.


하지만, 데이터양을 충분히 확보하기 어려운 예로는,


이상 탐지와 같이 이상 상태에 해당하는 이미지를 모으기 어려운 경우

의료 영상과 같이 대량의 이미지를 수집할 수 있더라도 어노테이션(라벨링)에 많은 비용이 소요되는 경우


등이 있습니다. 또한, 많은 이미지 인식 데이터의 어노테이션 과정에서는 사용되는 도구나 사람에 따라 어노테이션 품질이 달라지기 때문에 데이터 품질을 보장하는 것이 일반적으로 쉽지 않습니다. 데이터양에 따라 정밀도가 크게 달라지는 딥러닝 모델이 널리 보급되는 현시점에서 데이터세트 설계에 대한 관심을 점점 더 높아지고 있습니다.


이에 이 분야에서 진행되는 연구의 한 방향은 '어떻게 데이터를 효과적으로 수집할 것인가?'에 있습니다. 에이는 다음과 같은 접근법들이 포함됩니다.


1. 데이터 사전 필터링

모델 학습 전에 데이터를 선별하여 품질을 높이는 작업(예: 데이터필터링)을 수행합니다.

2. 어노테이션 품질 및 입력 이미지 특성을 고려한 학습방법설계

능동학습(Active Learning)은 어노테이션할 이미지를 적절히 선택함으로써 어느테이션 비용을 절감하면서도 정확도를 보장하는 것을 목표로 합니다.

반지도학습(Semi-supervised Learning)은 라벨이 부여된 이미지와 그렇지 않은 이미지를 함께 학습하는데 모델 예측 결과나 출력을 활용해 데이터를 필터링하는 메커니즘을 도입합니다.

최근 주목받고 있는 자기지도학습(Self-supervised Learning)은 라벨이 없는 이미지로부터 지도정보를 생성하는 사전학습방법으로 이미지 데이터의 특성을 효과적으로 반영한 접근법이라고 할 수 있습니다.

웹상의 이미지와 텍스트 페어를 이용해 이미지와 텍스트 간 관계를 학습하는 방법에서는 학습 전에 데이터 품질을 높이기 위한 필터링 기법과 품질을 고려한 손실함수 설계가 적용됩니다.


이런 방법들은 이미지 인식 모델 학습에 도입하려면 모델 아키텍처, 학습방법, 그리고 데이터에 대한 모델의 반응등을 면밀히 이해해야 합니다. 또한, 학습 목적이 사전학습(pre-training)인지, 구체적인 식 태스크를 해결하기 위한 학습인지에 따라 전략이 달라집니다.



(1) 이미지 인식 모델의 기초지식

일반적으로 이미지 인식 모델은 RGB형식으로 제공되는 이미지를 입력받아, 태스크에 따라 출력을 생성합니다. RGB형식의 이미지 I는 세개의 채널과 높이 H, 너비 W를 가지며,

data-centric-ai-011-1.png

로 표현됩니다. 여기서 H와 W는 각각 픽셀수를 나타냅니다.

이미지 분류 모델의 경우, 출력은 클래스 라벨이며, 물체 검출 모델의 경우 물체의 위치를 사각형(바운딩 박스)으로 나타낸 값과 해당 물체의 클래스 라벨이 출력됩니다. 이미지 내 콘텐츠를 인식하기 위해서는 RGB픽셀 정보를 의미있는 특징(클래스와 같은 의미적 특성)을 잘 포착한 벡터(특징량)로 변환해야 합니다. 필요한 특징량은 태스크에 따라 달라지며, 최근에는 사람이 직접 정의하는 대신 Neural Network를 통해 태스크에 맞게 데이터로부터 자동으로 학습시키는 것이 주류가 되고 있습니다.


이번에는 대표적인 이미지 인식 태스크와 데이터세트, 이미지 인식 모델 아키텍처, 그리고 모델 평가 방법에 대한 기초지식을 소개합니다.


① 대표적인 이미지 인식 태스크 및 데이터세트

아래 그림에서는 대표적인 이미지 인식 태스크의 출력 예시가 제시되어 있습니다. 이하에서 설명하는 것처럼 이러한 태스크를 해결하기 위해 모델을 학습시키려면 입력이미지와 그에 대응하는 출력(정답정보)이 필요합니다. 이번에는 이미지 분류 태스크를 중심으로 논의를 진행합니다. 이는 이미지 분류 태스크가 이미지 인식에서 가장 일반적인 태스크이며, 나중에 설명하는 사전 학습에도 많이 활용되기 떄문입니다. 그 외의 태스크에 따라 모델구조가 크게 달라져 통일적으로 논의하기 어려우므로 이미지 분류 태스크를 중심으로 설명합니다.

data-centric-ai-012.png 대표적인 이미지 인식작업, 이미지 식별, 의미적 영역분할, 물체검출, 인스턴스 영역분할에서는 클래스 출력을 인덱스로 나타내거나, 어디에 물체가 존재하는지를 바이너리로 표현하거나 설

1. 이미지 분류(Image Classification)

가장 기본적인 태스크로 이미지에 나타난 컨텐츠를 특정 클래스 라벨로 정의하고 해당 라벨을 출력하도록 모델을 학습합니다. 일반적으로 클래스의 인덱스를 출력으로 사용합니다.

2. 물체 검출 (Object Detection)

이미지 내 물체등의 위치와 클래스 라벨을 추론하는 태스크입니다. 물체의 위치는 주로 물체를 둘러싸는 사각형(바운딩박스)으로 표현되며, 하나의 사각형은 두 점으로 나타낼 수 있습니다. 하나의 이미지에서 여러 개의 물체가 있을 수 있으므로, 검출 대상 클래스에 속하는 모든 물체에 대한 사각형 및 해당 클래스 라벨을 어노테이션해야 합니다.

3. 의미적 영역 분할(Semantic Segmentation)

이미지 내 콘텐츠를 픽셀단위로 인식하는 태스크입니다. 각 픽셀에 클래스 라벨을 할당해야 하므로, 준비해야 할 데이터는 이미지와 그에 대응하는 픽셀단위 라벨입니다. 이미지 분류나 물체검출에 비해 어노테이션 비용이 크게 들 수 있습니다.

4. 인스턴스 영역 분할(Instance Segmentation)

이미지 내 물체를 검출한 뒤, 해당 물체가 바운딩박스 내 어느 픽셀에 존재하는지를 인식하는 태스크입니다. 물체 검출에 필요한 바운딩박스 데이터뿐만 아니라, 사각형 내부의 대상 물체가 배경인지, 물체인지를 픽셀 단위로 구분한 데이터도 필요합니다.

5. 설명문 생성(Image Captioning)

이미지의 콘텐츠를 자연어로 서술하는 태스크입니다. 이미지와 그에 대응하는 텍스트문장의 쌍을 이용해 모델을 학습시킵니다.

6. 이미지 기반 질의응답(Visual Question Answering)

이미지의 콘테느에 대한 질문(자연어로 주어짐)에 대해, 자연어로 답변하는 태스크입니다. 즉, 입력은 이미지와 해당 이미지에 대한 질문으로 구성됩니다.

data-centric-ai-013.png 이미지 인식 모델 학습 파이프라인, 풀고 싶은 태스크에 대한 교사첨부학습만으로 학습시키는 경우도 있지만, 사전학습 데이터를 이용하여 사전학습을 실시한 모델을 이용하는 것으로 정밀도


② 사전학습과 다운스트림 태스크 학습

위 그림은 이미지 인식 모델 학습 파이프라인을 나타낸 것입니다. 일반적으로 머신러닝 모델은 해결하고자 하는 태스크에 맞춰 라벨이 포함된 데이터세트를 수집하고, 모델을 학습한 뒤 테스트하는 일련의 과정을 거칩니다. 하지만, 딥러닝 모델을 학습시키려면 일반적으로 라벨이 있는 대규모 데이터가 필요합니다. 필요한 데이터양은 태스크나 모델 구조에 따라 달라지지만, 예를 들어, 분류해야 할 클래스수가 적은 경우에도 수만건 이상의 데이터확보가 권장되며, 1000개 정도의 클래스를 구분하는 문제라면 수백만건 규모의 데이터가 필요하다고 여겨집니다.


이러한 이유로 다른 태스크가 데이터세트로 사전에 학습한 모델을 활용하여 모델 파라미터를 초기화한 뒤, 원하는 태스크에 맞춰 다시 학습하는 2단계 학습 방식이 주목받고 있습니다. 여기서 사전학습 태스크와 구별하여 실제로 해결하고자 하는 태스크를 다운스트림 태스크라고 부릅니다. 또한 특정 다운스트림 태스크에 맞춰 사전학습 모델의 파라미터를 최적화하는 과정을 파인튜닝(Fine-Tuning)이라고 합니다.


사전학습에서는 여러 데이터세트나 태스크를 학습에 활용할 수 있으며, 다양한 다운스트림 태스트에 범용적으로 효과가 있는 사전학습 모델을 만드는 것을 목표로 연구가 진행되고 있습니다. 이후에 다루는 내용에서는 데이터의 질, 양, 필터링 방법등을 포함해 설명하겠지만, 중요한 점은 사전학습과 다운스트림 태스트 학습에서 요구되는 데이터의 양과 질이 크게 다르다는 사실입니다.

data-centric-ai-013-1.png

예를 들어, 앞에서 언급했던 연구결과에 따르면, 대충 모은 사전학습용 데이터라도 사전학습 자체는 잘 동작할 수 있다는 보고가 있습니다. 그러나 다운스트림 태스크에서는 어노테이션(라벨링)의 품질이 모델 정확도에 큰 영향을 미칩니다. 이처럼 사전학습과 다운스트림 태스크 학습은 데이터에 대한 문제의식이 크게 다르다는 점을 염두해 두기 바랍니다.


③ 이미지 인식 데이터세트

위 표에서 대표적인 이미지 인식 데이터세트 예시가 나와 있습니다. 사전학습에서는 범용적 지식을 획득하는 것을 목표로 하기 때문에, COCO와 같은 다운스트림 태스크용 데이터세트보다 더 많은 양의 데이터를 포함하며, 다양한 카테고리를 포괄하는 경향이 있습니다. 한편, 다운스트림 태스크용 데이터세트는 어노테이션 비용을 고려하여 수천에서 수만, 수십만건의 데이터를 보유하는 경우가 많습니다.


자주 언급되는 ImageNet1k는 사진공유 서비스 Flickr를 통해 수집된 1000개 클래스에 대한 이미지 분류 태스크를 정의한 데이터세트로 동물, 가구, 식물 등 다양한 카테고리로 구성되어 있습니다. 대규모 데이터세트 규모와 폭넓은 카테고리 덕분에 사전학습과 다운스트림 태스크 학습평가 양쪽 모두에 사용되며, 이미지 인식 분야에서 가장 널리 쓰이는 데이터세트라고 할 수 있습니다. 또한 딥러닝 열풍을 일으킨 ImageNet Large-Scale VIsual Recognition Challenge(ILSVRC)대회에서 사용된 데이터세트로도 유명합니다.



(2) CNN

이미지 인식 태스크를 해결하기 위해 고안된 Neural Network 모델중 하나가 Convolutional Neural Network(CNN)입니다. CNN은 다음 계층들로 구성됩니다.


Convolution층

Activation층

Subsampling, Pooling층

MLP(Fully Connected)층


전체적인 처리 흐름은 아래 그림처럼,


1. Convolution층이 이미지의 국소영역에서 특징량을 추출하고,

2. Subsampling층이 추출된 국소 특징량들을 압축하여 요약하며,

3. MLP층이 이를 바탕으로 태스크에 특화된 출력을 생성하는 방식입니다.


활성화 함수는 모델에 비선형적 표현력을 부여하기 위해 도입되며, 이 활성화 함수를 포함한 Convolution층과 Subsampling층을 하나의 단위로 묶어 여러 단위를 쌓은 후, 최종적으로 MLP층을 통해 분류등의 태스크를 수행합니다.

data-centric-ai-014.png

세부 구성요소는 다음과 같습니다.


Convolution 층(합성곱):

data-centric-ai-014-1.png

와 같이 일정한 너비와 높이를 가진 가중치를 이미지 내 겹치는 픽셀영역에 곱하는 연산을 수행합니다. 이 작업을 이미지의 가로 및 세로 방향으로 스캔하여 출력을 얻습니다. 이미지에서 엣지(edge) 성분을 추출할지, 혹은 평활화된(smoothing)성분을 추출할지는 Convolution층의 파라미터에 따라 달라지며, 각 층에서 어떤 특징을 추출할지 학습을 통해 결정됩니다. 여기서 k는 커널사이즈(kernel size)를 의미하며, k의 값에 따라 출력생성시 고려하는 픽셀범위(즉, receptive field 수용영역)가 달라집니다. 일반적으로 입력(이미지)에 가까운 층에서는 k값을 크게 설정합니다. k = 1인 경우는 단 한점만을 고려하여 연산을 수행합니다.

Pooling 층: Convolution층에서 얻은 출력을 공간방향으로 압축하여 요약합니다. 이 과정을 통해 중간 특징량의 크기를 줄이고, 보다 컴팩트한 특징량을 얻을 수 있습니다.

활성화 함수(Activation Function): 활성화 함수는 2가지 목적을 가지고 사용됩니다. Convolution층이나 Pooling층만으로는 표현할 수 없는 비선형 특징 추출을 가능하게 하여, 모델의 표현력을 향상시킵니다. 출력값의 범위등에 제한을 두어 안정적인 출력을 얻도록 합니다. 일반적으로 입력 x에 대해 max(0, x)를 반환하는 ReLU(Rectified Linear Unit)함수가 첫번쨰 목적에 주로 사용됩니다. ReLU 변형으로 GELU(Gaussian Error Linear Units)가 최근 발달된 네트워크에서 많이 사용됩니다. 두번째 목적의 예로 입력값을 1에서 1사이로 사영하는 시그모이드(Sigmoid)함수가 있으며, 분류 태스크에서는 출력값을 확률 분포로 변환하기 위해 소프트맥스(Softmax)함수가 많이 활용됩니다.

MLP층(Multi-Layer Perceptron Layer): MLP층은 주로 선형층과 활성화함수의 조합으로 구성됩니다. 공간 방향의 차원이 없는 벡터를 입력받아 벡터를 출력하는 것이 MLP층의 역할입니다. 클래스 분류 태스크에서는 최종 MLP층이 클래스수에 해당하는 차원의 벡터를 출력합니다. 한편 충분한 수의 Convolution층과 활성화함수를 겹친 네트워크에서는 단일 선형 층만을 사용하여 출력을 생성하고 다층 MLP를 사용하지 않는 경우도 있습니다. 또한, 커널사이즈가 1인 Convolution층에 활성화함수를 결합한 경우, 각 점별로 보면 실질적으로 MLP층과 유사하게 동작한다고 볼 수 있습니다.


① 대표적인 모델 아키텍처

다음은 대표적인 CNN 아키텍처 예시입니다. 작성 시점을 기준으로 여전히 많은 태스크에서 사용되는 모델들을 선별했습니다.


ResNet CNN의 기본구조에서는 네트워크층 수를 늘릴 경우, 초기 층(입력에 가까운 층)으로의 기울기(gradient)가 제대로 전파되지 않아 학습이 어려워지는 단점이 있었습니다. 이를 해결하기 위해 Residual Learning개념이 도입되었고, 수백개 층을 가진 깊은 모델도 학습이 가능해졌습니다. 특정층(A층)의 출력만 다음 층으로 전달하는 대신, A층의 입력을 출력에 더해 다음 층으로 전달함으로써 입력이미지에 가까운층의 파라미터를 효과적으로 업데이트할 수 있습니다. 이 모델은 다양한 태스크에서 표준 모델로 쓰이고 있으며, Residual Learning개념은 Transformer를 포함해 여러 모델에 걸쳐 기본 모듈 중 하나로 자리잡았습니다.

EfficientNet 일반적으로 충분한 양의 학습데이터가 있으면 모델규모를 키울수록 정확도가 향상되지만, 계산량과 모델정확도 사이의 트레이드오프를 고려해 모델구조를 탐색한 결과물 중 하나가 바로 아키텍처입니다.

ConvNeXt 나중에 설명할 ViT(Vision Transformer)의 인사이트를 CNN학습에 적용하여 CNN의 기본구조를 유지하면서도 매우 높은 정확도를 달성한 모델입니다. 2025년 1월 기준으로 대규모 학습 데이터와 높은 정확도를 필요로 하는 CNN모델을 구축할 때 자주 사용됩니다.


② 왜 여전히 CNN이 사용될까?

CNN개념자체는 더 이상 새로운 아이디어라고 할 수 없으며, 나중에 설명하는 Transformer와 같은 최신 네트워크 아키텍처가 다양한 태스크에 확산되고 있습니다. 그럼에도 불구하고 여전히 CNN이 이미지 인식분야에서 널리 사용되는 이유는 이미지 인식에 중요한 특성들이 이미 CNN 아키텍처에 내재되어 있기 때문입니다.


예를 들어,

Convolution(합성곱)층은 인접한 픽셀들의 정보를 바탕으로 특징량을 추출하고,

Pooling(풀링)층은 지역의 특징들을 요약하는 구조를 가지고 있습니다.


이러한 구조는 '서로 인접한 픽셀그룹이 하나의 의미 정보를 전달한다'는 이미지인식에 대한 사전지식을 효과적으로 모델에 반영하고 있습니다. 반면에 Transformer와 같은 네트워크는 다양한 모달리티에 적용가능한 범용성을 제공하지만, 이미지에 특화된 사전지식이 충분히 반영되어 있지 않기 때문에 CNN에 비해 학습에 더 많은 데이터가 필요한 단점이 있습니다. 실제로 Transformer기반 이미지 인식모델 중에도 CNN아이디어를 계승한 모델들이 존재합니다.



(3) ViT

Vision Transformer(ViT)sms 2020년 발표된 모델로 Transformer가 이미지 분류 태스크에 있어서도 유용할 수 있음을 처음으로 입증한 논문입니다. Transformer는 자연어 처리등 시계열 데이터분야에서 큰 성공을 거두었으나, ViT를 통해 Transformer 모델이 이미지 인식에서도 기반 모델로 활용될 수 있음을 시사했습니다. 아래에서는 Transformer와 ViT의 구조에 대해 간단히 설명하고 그 특성에 대해서도 설명합니다.

data-centric-ai-015.png 왼쪽: 자기주의 기구의 개요, 오른쪽: 주의 메커니즘 도입한 Transformer Encoder블록 개요도 (Vaswani논문 인용)


① Transformer

Transformer는 다양한 모달리티를 처리할 수 있는 범용성이 높은 아키텍처입니다. 대부분의 모달리티는 일정 길이의 시퀀스 데이터로 다룰 수 있습니다. Transformer는 주어진 시퀀스 데이터에 대해 아래와 같은 과정을 거쳐 출력을 생성합니다.


토큰화(Tokenization): 입력을 일정단위(토큰)로 분할합니다.

벡터화(Vectorization): 토큰화된 각 단위를 벡터로 변환합니다.

주의매커니즘을 통한 특징추출: 벡터화된 시퀀스 데이터를 주의메커니즘에 입력하여 토큰간 관계를 고려한 특징을 추출합니다.

태스크에 맞게 출력생성: 최종적으로 태스크에 맞는 출력을 산출합니다.


토큰화와 벡터화 과정에서는 모달리티 특성을 고려한 처리가 자주 적용되지만, 이러한 처리 흐름 자체는 다양한 모달리티에 적용가능하므로, Transformer는 여러 종류의 데이터를 처리하는데 활용되고 있습니다. 또한, 입력 데이터로부터 어떤 특징량을 얻는 모델을 '인코더(encoder)', 데이터를 생성하는 메커니즘을 갖춘 모델을 '디코더(decoder)'라고 부릅니다. 아래에서는 ViT(Vision Transformer)에서의 각 작업을 간단히 설명합니다.



② 토큰화와 벡터화

토큰화란, 입력되는 시퀀스 데이터를 여러 단위로 분할하는 작업입니다. 예를 들어, 자연어의 경우 입력이 문장이므로 가장 기본적인 토큰화는 문장을 단어별로 분할하는 것입니다. (영어 기준) 이미지의 경우, 겹치지 않는 동일 크기의 패치로 분할하여 토큰화할 수 있습니다.


다음으로 각 토큰을 벡터화합니다. 자연어의 경우, 토큰 ID를 벡터로 변환하는 선형층을 준비하여 다른 가중치와 함께 학습시 최적화합니다. 이미지의 경우, 하나의 패치는 픽셀값의 배열로 풀 수 있으므로, 픽셀값 배열을 변환하는 선형층을 준비하고 학습시 최적화합니다. 이 과정을 통해 각 토큰에 해당ㄹ하는 벡터열 (

data-centric-ai-015-1.png

)를 얻을 수 있습니다. ViT의 경우, 각 패치에 해당하는 벡터외에도 클래스 분류에 사용되는 학습 가능한 토큰

data-centric-ai-015-2.png

도 시퀀스에 추가합니다. 따라서 최종적으로 얻어지는 벡터열은

data-centric-ai-015-3.png

가 됩니다.


③ 위치 임베딩 (Position Embedding)

이 벡터열에는 각 토큰이 입력 내에서 어느 위치에 있었는지에 대한 정보가 포함되어 있지 않습니다. 예를 들어, 좌측 상단의 패치였는지, 중앙근처의 패치였는지와 같은 정보입니다. 이를 보완하기 위해 Transformer에서는 위치 임베딩이라 불리는 위치에 특화되어 학습가능한 벡터를 각 토큰 벡터에 더해줌으로써 위치정보를 입력에 추가합니다. 즉,

data-centric-ai-015-4.png

와 같이 위치임베딩

data-centric-ai-015-5.png

를 더해줍니다. 이 벡터들이 이후 설명할 주의 메커니즘을 갖춘 인코더에 입력됩니다.


④ 주의 메커니즘

이미지를 포함한 시퀀스 데이터에서 중요한 것은 '어떤 지점에서 다른 지점의 정보를 어떻게 결합해 특징을 추출할 것인가?'입니다. 다른 지점의 정보를 고려하면 특정지점이 어떤 의미정보를 포함하고 있는지 이해할 수 있습니다. 예를 들어, CNN에서는 Convolution(합성곱)층과 Pooling층을 통해 인접한 정보가 반영되도록 설계되어 있습니다. 반면에 Transformer에서는 주의 메커니즘(Attention)을 사용합니다.


주의 메커니즘의 입력으로는 Q(Query), K(Key), V(Value)의 3가지입니다. Key와 Value는 1대1 대응 관계에 있으며, Key와 Query의 유사도에 따라 어느 Value에서 특징을 모을지 결정하고, 그 결과로 해당 Query에 대응하는 지점의 특징을 업데이트하는 것이 주의 메커니즘의 목표입니다. 이미지를 다루는 Transformer에서는 Q, K, V는 각 토큰에 해당하는 벡터 z를 선형층을 통해 변환한 벡터열로 구성됩니다. 이렇게 Q, K, V가 동일한 벡터에서 생성되는 주의 메커니즘을 자기 주의 메커니즘(Self-attension)이라고 부릅니다. 이는 입력 벡터들 간의 상호주의를 계산하여 z를 업데이트하기 위한 것입니다. 한편, Q에 해당하는 입력과 K 및 V에 해당하는 입력이 서로 다를 경우에는 교차 주의 메커니즘(Cross-attention)이라고 하며, 이는 예를 들어 언어를 이미지로 조건화하는 설명문 생성등에서 사용됩니다. 이하에서는 두 경우 모두에 대해 통일된 표기로 논의합니다.


⑤ 주의 메커니즘의 계산

Q, K, V는 차원수 d의 벡터들을 각각 l, n, n개 모은 행렬로 볼 수 있습니다. K와 V는 1대1 대응하므로 같은 길이를 갖습니다. 즉,

data-centric-ai-015-1 (1).png

이며, 각

data-centric-ai-015-2 (1).png

니다. 실제 계산은 다음과 같이 진행합니다.

data-centric-ai-015-3 (1).png

여기서


data-centric-ai-015-6.png

는 K의 전치를 의미합니다. 위 그림 왼쪽에서 위 식의 계산과정이 제시되어 있습니다. softmax는 소프트맥스 함수를 의미하며, Q와 K의 유사도를 0이상, 그리고 합이 1이 되도록 변환합니다. 일부 모델에서는 특정우치에서 볼 수 있는 범위를 제한하기 위해 softmax함수에 입력하기 전

data-centric-ai-015-7.png

의 값을 조정(Mask적용)하는 경우도 있습니다.

data-centric-ai-015-8.png

를 통해 Q와 K의 유사도를 계산하고, 이를 기반으로 V에서 값을 모아 새로운 특징량 Attension(Q, K, V)를 산출합니다.

이처럼 주의 메커니즘을 사용하면 각 지점의 특징량을 기반으로 다른 지점의 특징을 참고하여 업데이트할 수 있습니다. 또한, 모델의 표현력을 높이기 위해 단일 Attension 모듈 대신 여러 다른 주의 메커니즘 모듈의 출력을 통합하는 Multi-Head Attention을 사용하는 것이 일반적입니다. 그리고 위 그림 오른쪽에 제시된 바와 같이, 정규화 층(Norm), 주의 메커니즘(Attention층), 그리고 MLP층을 포함하는 블록을 하나의 단위로 하여 이러한 블록들을 여러번 쌓아 복잡한 특징추출을 가능하게 합니다.


data-centric-ai-016.png ViT 모델 개요 다이어그램, (Dosovitskiy논문 인용) 이미지를 패치로 나누고 토큰화한후 Transformer Encoder에 입력하고 클래스식별에 사용하는 콘을 MLP에

⑥ 출력

마지막으로 인코더로부터 얻은 벡터들을 출력으로 변환합니다. ViT에서는 MLP를 이용하여

data-centric-ai-016-1.png

에 해당하는 토큰을 클래스(분류)를 나타내는 벡터로 변환합니다. 앞서 언급한바와 같이,

data-centric-ai-016-1.png

는 이미지의 패치로부터 얻은 토큰이 아니라, 학습가능한 파라미터입니다. 이는 다른 토큰들과 함께 인코더에 입력되므로, 다양한 패치로부터 정보를 모아 분류에 유용하도록 학습될 것으로 기대됩니다.



(4) 모델 평가 방법

CNN과 ViT의 구조에 대해 간단히 설명하였는데, 학습된 모델을 어떻게 평가해야 할까요? 평가방법은 다운스트림 태스크에 대한 학습인지, 아니면 사전학습인지에 따라 크게 달라집니다.


① 다운스트림 태그크에 대한 평가

다운스크림 태스크 학습의 경우, 평가방법은 비교적 단순합니다. 해당 태스크에 적합한 평가지표를 사용합니다. 예를 들어,


이미지 분류에서는 주로 정답률 (Accuracy),

물체검출에서는 Average Precision 또는 Average Recall,

의미적 영역 분할에서는 IoU(Intersection over Union)등을 사용합니다.


다운스트림 태스크는 해결하고자 하는 문제가 명확하므로, 태스크를 결정한 단계에서 평가방법도 자연스럽게 결정됩니다.


② 사전학습에 대한 평가

사전학습 모델의 평가는 다운스트림 태스크 평가보다 명확하지 않습니다. 사전학습 단계에서는 학습된 모델을 어던 태스크에 적용할지 미리 정해져 있지 않기 때문입니다. 일반적으로 사전학습 모델의 평가는 '다양한 태스크에 대해 범용적인 특징을 얼마나 잘 학습했는가?'를 중점으로 합니다. 이를 위해 다양한 데이터세트와 태스크에 적용할 수 있는 다음과 같은 평가 방법들이 주로 사용됩니다.


선형 분류기 평가 (Linear Evaluation, Linear Probe): 학습된 모델의 가중치를 고정한 상태에서 추출된 특징량에 대해 선형 분류기를 학습시켜 정답률을 평가합니다. 이를 통해 모델이 얼마나 범용적인 특징을 학습했는지를 분석합니다.

소수의 라벨로 평가 (Few-shot Evaluation): 각 클래스당 2~10개의 라벨이 있는 소수의 샘플을 사용하여 사전학습 모델을 파인튜닝한 후 정답률을 평가합니다. 예를 들어, "10-shot"이라면 각 클래스에 10개의 샘플을 사용하는 것입니다. 범용적인 특징을 학습했다면 소수의 데이터만으로도 높은 정확도를 달성할 수 있다는 가정에 기반합니다.

제로샷 평가 (Zero-shot Evaluation): 다운스트림 태스크에 맞춰 파라미터를 업데이트하지 않고 평가하는방식을 의미합니다. 주로 이미지와 언어간의 관련성을 학습한 Vision-Language 모델(예: CLIP)에 대해 사용되며, 해당 모델은 별도의 튜닝없이도 일정수준의 정확도를 보입니다.

전체라벨을 활용한 파인튜닝 평가: 소수의 라벨이 아니라, 다운스트림 태스크 데이터세트의 모든 학습 샘플을 사용하여 모델을 학습시킨 후 평가합니다. 이를 통해 학습 샘플이 충분할 때도 사전학습의 장점이 유지되는지를 평가할 수 있습니다.


평가대상으로 ImageNet 이미지 분류 태스크가 널리 사용되지만, ImageNet은 사전 학습 데이터로도 활용되는 경우가 많아 단순히 ImageNet에서 학습 및 평가한다고 해서 범용성을 정확히 평가했다고 보기는어렵습니다. 따라서 많은 논문에서는 여러 태스크와 데이터세트를 대상으로 위와 같은 평가방법을 적용하고 있습니다.



(5) 모델 및 데이터 스케일

지금까지 CNN과 ViT의 구조에 대해 소개했는데 이들 각각의 모델은 어떤 특성을 가지고 있을까요?

CNN과 ViT 모두 다양한 모델이 제안되고 있지만, 가장 큰 차이점은 'Convolution(합성곱)층'과 '자기주의 메커니즘(Self-attention)'에 있다고 할 수 있습니다. 이 두 모듈은 서로 다른 지점의 특징을 고려한 특징 추출을 가능하게 합니다.


Convolution층은 어느 지점을 고려할지 커널사이즈에 의해 결정되며, 일반적으로 인접한 픽셀들만을 대상으로 특징을 추출합니다.

반면에 자기주의 메커니즘은 이론상 한 지점에서 다른 모든 지점을 참조할 수 있으므로 더 글로벌한 특징추출이 가능합니다.


예를 들어, CNN의 경우 얕은 층에서는 이이지의 왼쪽 끝에 위치한 픽셀의 특징을 추출할 때 오른쪽 끝의 정보를 반영하기 어렵습니다. 그러나 자기주의 메커니즘은 이러한 대국적(global) 특징추출도 충분히 가능하게 합니다. 물론, CNN은 Pooling층과 Convolution층을 여러 겹 쌓아 깊은 층에서는 멀리 떨어진 픽셀들의 정보도 반영할 수 있도록 만들어지지만, 얇은 층에서는 여전히 글로벌한 특징을 포착하기 어렵습니다. 이러한 설명을 듣고 ViT가 CNN보다 더 우수한 성능을 보일것이라고 생각할 수도 있지만 반드시 그렇지만은 않습니다.


① 학습샘플 수에 따른 ViT와 CNN의 정확도 비교

일반적으로 ViT는 CNN보다 학습에 더 많은 샘플을 필요로 한다고 알려져 있습니다. 아래 그림은 학습 샘플수와 모델정확도를 비교한 그래프입니다. 그래프에서 네모모양은 CNN아키텍처인 ResNet을 나머지는 ViT를 나타냅니다. 학습에 사용되는 샘플수가 적을 경우 ResNet이 더 높은 정확도를 보이며 샘플수를 늘림에 따라 ViT의 정확도가 크게 개선되는 것을 확인할 수 있습니다.


이 문제의 원인 중 하나는 자기주의 메커니즘의 특성에 있다고 볼 수 있습니다. Convolution층은 '각 지점은 일정범위 내의 인접한 지점만 보면 된다'는 제약을 가지고 있지만, 자기주의 메커니즘은 이러한 제약이 없기 때문에 상대적으로 학습샘플이 적은 경우 과적합(overfitting)을 일으키기 쉽습니다. 실제로 자기주의 메커니즘의 참조범위에 제한을 두는 Swin Transformer는 ViT보다 훨씬 높은 정확도를 보이며, 현재 대표적인 ViT아키텍처중 하나로 자리잡고 있습니다.


또한, ViT의 이러한 문제는 최적화 방법, 데이터확장(data augmentation), 모델증류(model distillation)등 다양한 기법에 의해 점차 해결되고 있지만, 기본적으로 ViT아키텍처는 학습 샘플이 적은 경우 과적합하는 경향이 있다는 점은 인지해야 할 중요한 사실입니다.


data-centric-ai-017.png 가로축: 사전학습에 사용한 샘플수, 세로축: ImageNet의 Top-1 Accuracy (Dosovitskiy논문인용)

② 모델 크기와 학습 효율

아래 그림은 ViT의 모델크기와 데이터세트 크기의 관계를 자세히 조사한 결과를 보여줍니다.


가로축: 학습 중 모델이 본 샘플수 (배치수 x 이터레이션 수로 계산됨)

세로축: 각 설정에서 ImageNet에 대한 오분류율


여기서 학습 중 샘플수는 단순히 학습데이터의 전체양이 아니라, 모델이 실제로 학습에 활용한 샘플수를 의미합니다. 모델 파라미터 크기는 Ti < B < L순으로 커집니다. 왼쪽부터 순서대로,


ImageNet의 각 클래스에서 10개 샘플을 사용한 선형 분류기 평가 결과,

ImageNet1k 데이터를 이용해 파인튜닝한 결과,

ImageNet V2 데이터를 이용해 파인튜닝한 결과


를 보여줍니다. 이 그림에서 도출할 수 있는 결론은 '충분한 양의 학습 데이터를 사용했을 경우, 모델 크기가 큰 모델이 더 빠르게 학습할 수 있다'는 점입니다. 즉, 동일한 샘플수를 관측하더라도 모델이 클수록 정확도가 높아지고, 더 질 높은 특징량을 더 빠르게 획득하ㅏ는 것으로 나타납니다.


그러나, 모델 크기가 커지면 학습비용이 증가하고 한 이털리에션당 소요되는 시간도 일반적으로 길어지므로, 시간관점에서 보았을 때 반드시 큰 모델이 더 빠르게 학습된다고 보기는 어렵습니다.


data-centric-ai-018.png 학습시에 본 이미지 매수(x축)와 정밀도 비교, 큰 모델이 적은 매수로 높은 정밀도를 따라서 학습효율이 좋다는 견해가 있음 (Zhai논문 인용)

©2024-2025 GAEBAL AI, Hand-crafted & made with Damon Jaewoo Kim.

GAEBAL AI 개발사: https://gaebalai.com

AI 강의 및 개발, 컨설팅 문의: https://talk.naver.com/ct/w5umt5


keyword
이전 03화3. 데이터품질의 중요성