CNN 기본 전문 용어 모음
1.strides
딥러닝에서 strides(스트라이드)는 convolution(합성곱) 연산에서 필터가 입력 데이터를 이동하는 간격을 나타내는 매개변수입니다.
Convolution 연산은 입력 데이터와 커널(필터) 사이의 곱셈을 수행하고 그 결과를 모두 더한 뒤, 이 값을 출력으로 하는 것입니다. 이때 Stride는 커널이 입력 데이터에서 이동하는 간격을 나타냅니다. 즉, Stride가 1인 경우 커널이 한 칸씩 이동하며, Stride가 2인 경우에는 커널이 두 칸씩 이동하게 됩니다.
Stride가 클수록 출력 데이터의 크기가 작아지게 됩니다. 예를 들어, 입력 데이터가 5x5이고 필터의 크기가 3x3이라면, Stride가 1인 경우 출력 데이터의 크기는 3x3이 되며, Stride가 2인 경우 출력 데이터의 크기는 2x2가 됩니다.
Stride는 Convolutional Neural Networks(CNN)에서 자주 사용되는 매개변수 중 하나이며, 모델의 크기와 성능에 영향을 미칩니다. Stride를 적절하게 선택하면 모델의 크기를 줄일 수 있으며, 더 적은 계산량으로 더 빠른 속도와 더 나은 성능을 달성할 수 있습니다.
2. iou
IOU는 Intersection over Union의 약자로, 딥러닝에서는 물체 검출(object detection) 및 세그멘테이션(segmentation) 작업에서 모델의 성능을 평가하는 지표 중 하나입니다. IOU는 모델이 예측한 바운딩 박스(bounding box)와 실제 바운딩 박스의 겹치는 면적을 비율로 계산한 값입니다. 즉, 예측 바운딩 박스와 실제 바운딩 박스의 교집합 영역을 예측 바운딩 박스와 실제 바운딩 박스의 합집합 영역으로 나눈 값입니다. IOU 값이 1에 가까울수록 모델의 성능이 좋다고 평가됩니다.
3.kernel
딥러닝에서 커널(kernel)은 필터(filter)라고도 불리며, 합성곱(convolution) 연산을 수행하는 데 사용되는 작은 가중치 행렬입니다. 커널 사이즈는 이러한 가중치 행렬의 크기를 나타내며, 일반적으로 정방형으로 표현됩니다. 예를 들어, 3x3 커널은 3행 3열의 정방형 가중치 행렬을 의미하며, 5x5 커널은 5행 5열의 정방형 가중치 행렬을 의미합니다. 커널 사이즈는 모델의 하이퍼파라미터(hyperparameter) 중 하나로, 모델의 성능과 학습 속도에 영향을 미치는 중요한 요소입니다.
4.ROI
딥러닝에서 ROI는 Region of Interest의 약자로, 관심 영역을 의미합니다. 주로 Faster R-CNN, Mask R-CNN 등의 물체 검출(object detection) 모델에서 사용됩니다. 이 모델들은 물체를 검출하기 위해 이미지 내의 모든 위치에서 물체를 탐지하는 것이 아니라, ROI를 먼저 추출하고 해당 ROI 영역에서 물체를 검출하는 방식을 사용합니다.
ROI는 일반적으로 객체가 있을 만한 영역으로, 예를 들어 selective search, edge boxes 등의 방법으로 추출됩니다. 추출된 ROI 영역은 고정된 크기로 변환되어 입력 이미지와 함께 모델에 전달되어 물체 검출 및 분류를 수행합니다. 이를 통해 모델이 물체를 검출하고 분류하는데 필요한 계산 비용을 줄일 수 있으며, 모델의 성능을 향상시킬 수 있습니다.
5.cfg
딥러닝에서 cfg 파일은 모델의 구성(configuration) 정보를 저장하는 파일입니다. cfg는 configuration을 나타내는 약자입니다.
모델의 구성 정보란, 예를 들어 레이어의 수, 각 레이어의 유형 및 파라미터, 입력 및 출력 크기 등 모델의 아키텍처와 구성에 대한 정보를 포함합니다. 이러한 정보는 모델을 학습하기 전에 정의되며, 모델의 아키텍처를 변경하거나 새로운 모델을 만들 때 사용됩니다.
대표적인 딥러닝 프레임워크인 TensorFlow, PyTorch, Caffe 등에서 모두 cfg 파일을 사용합니다. 각각의 딥러닝 프레임워크에서 cfg 파일의 형식이나 내용은 다를 수 있지만, 대부분의 경우 모델의 구성 정보를 일반적인 텍스트 파일 형식으로 저장하며, 사용자가 쉽게 수정할 수 있도록 되어 있습니다.
6.nms
NMS는 "Non-Maximum Suppression"의 약자로 딥러닝 분야에서 일반적으로 객체 검출(object detection)에서 사용되는 기술입니다.
객체 검출에서는 먼저 이미지에서 객체가 존재하는 위치를 찾은 후, 그 객체의 경계상자(bounding box)를 그리는 과정이 필요합니다. 하지만 하나의 객체가 여러 개의 경계상자를 가지는 경우가 있을 수 있습니다. 이러한 중복된 경계상자를 제거하기 위해 NMS가 사용됩니다.
NMS는 객체 검출 결과로 나온 여러 개의 경계상자 중에서 가장 신뢰도가 높은 경계상자를 선택하고, 다른 겹치는 경계상자를 제거하는 알고리즘입니다. 이를 통해 객체 검출 성능을 개선할 수 있습니다.