* Convolution (합성곱)

   - 두 함수 또는 배열을 서로 겹치며 곱하고, 그 결과를 적분 또는 합산하는 연산

 

* CNN (Convolutional Neural Network; 합성곱 신경망)

   - 이미지 인식, 영상 분석, 객체 탐지 등 시각적 데이터를 처리하는데 탁월한 성능을 보이는 딥러닝 모델

   - 신경망이 데이터의 공간적 구조를 인식하고, 이를 기반으로 특징을 학습할 수 있도록 설계

 

* Convolution Layer (합성곱 층)

   - 입력 데이터에 작은  Filter(=Kernel=Mask)를 적용 후 Convolution을 수행하여 유용한 특징을 나타내는 Feature Map 을 출력

   - 입력 이미지의 좌상단부터 우하단까지 Sliding 하며, 두 행렬 간의 Element 별 곱셉을 수행한 후 합하여 값을 출력

 

* Filter ( 필터 = Kernel (커널) = Mask (마스크))

   - 특정 패턴을 인식하는 역할

   - 대칭성을 위해 보통 홀수로 크기를 지정

      : 3x3 필터는 작은 지역을 공간적 패턴을 학습하는데 효과적

      : 1x1 필터는 차원 축소 및 비선형 변환을 수행하며, 연산량을 줄이면서 표현력을 높이는데 사용

 

* Padding (패딩)

   - 합성곱 연산으로 출력 Feature Map 의 크기가 줄어드는 것을 방지하거나, 특정한 출력 크기를 유지하기 위해 사용

   - 입력 이미지의 가장자리에 추가적인 픽셀(보통 0)을 채워 넣는 작업

 

* Stride (스트라이드)

   - 필터가 입력 이미지 위를 이동하는 간격

   - 1인 경우 1 픽셀씩 이동

      : 스트라이드가 커지면 필터가 더 빠르게 이동하므로 Feature Map 의 크기가 더 작아짐     

 

* Feature Map (특징 맵)

   - 입력 이미지에 필터를 적용하여 얻는 출력 데이터를 의미

      :  예로, 이미지의 특징(모서리, 질감, 색상 등)을 부각시킨 새로운 2차원 배열

   - Ow (출력 크기 가로) = (W - F + 2P) / S + 1

   - Oh (출력 크기 세로) = (H - F + 2P) / S + 1

      : W, H - 입력 이미지의 너비와 높이

      : F - 필터의 크기

      : P - 패딩 크기

      : S - 스트라이드

 

* Pooling Layer (풀링 층)

   - Feature Map 의 공간적 크기를 줄여주는 역할

   - 신경망의 계산 복잡도를 줄이고, 과적합을 방지 등

      : 중요한 정보는 유지하면서 크기를 축소시켜 연산량을 줄이기 위해 사용

 

*  Max Pooling (최대 풀링)

   - 주어진 Window 내에서 가장 큰 값을 선택하여 출력

      : 이미지의 특징이 강조되고, 작은 변동의 영향이 줄어듦

 

* Average Pooling (평균 풀링)

   - 주어진 Window 내의 값들의 평균을 계산하여 출력

      : 전체적인 흐름이나 배경 정보를 유지하는데 유리

 

* Fully Connected Layer (완전연결 층)

   - 추출된 Feature Map 을 종합하여 최종 예측 결과를 도출

      : 모든 입력 뉴런이 모든 출력 뉴런과 연결됨

   - 2차원 텐서로 입력을 받는다.

      : 합성곱 층과 풀링층을 사용하여 추출된 Feature Map 은 4차원 텐서이다. 따라서, 2차원 텐서로 변환 필요

        (Flatten 함수 이용)

   - 여러 개의 FC Layer 거쳐서 최종 예측 값을 결정

      : 이미지 분류 문제에서는 Sigmoid 혹은 Softmax 활성화 함수를 통해 각 클래스에 대한 확률을 출력

      : 이미지 점수 문제에서는 활성화 함수를 사용하지 않음

 

* Transfer Learning (전이 학습)

   - 이미 학습된 모델을 활용하여 새로운 작업에 적응시키는 기법

      : 주로 대규모 데이터 세트에서 학습된 CNN 모델 (ImageNet, VGG, ResNe, Inception 등) 을 활용함

      : 기존 모델의 가중치를 Freeze 하고 (Conv Layer 는 재사용. 새로운 데이터에서 특징 추출하는 역할만 수행),

         새로 학습할 데이터 세트에서 마지막의 분류 계층 (FC Layer)의 가중치만 재학습

   - Fine-Tuning 은 전이학습의 한 단계

     : 기존에 학습된 모델의 일부를 새로운 데이터에 맞게 재학습 시키는 과정 (Conv Layer 도 일부 재학습)

     : 새로운 데이터 세트가 원래 데이터 세트와 크게 다르지 않건, 더 나은 성능이 필요할 때 주로 사용

 

* ILSVRC (ImageNet Large Scale Visual Recognition Challenge, 2010~2017)

   - 컴퓨터 비전 분야에서 가장 권위 있는 대회였으나, 사람의 인식 에러율이라고 알려진 5%보다 더 낮은 2.3% 에러율을 가진

      SENet 등장으로 인해 2017년을 마지막으로 대회가 중단됨

 

* AlexNet (2012)

   - 기존 방식과 다르게 CNN 을 사용하여 큰 성능 개선을 이뤄냄 (최초의 딥러닝 기반 이미지 분류 네트워크)

   - 5개의 Conv Layer 와 3개의 FC Layer, 총 8개로 구성

      : ReLU 활성화 함수를 사용하여 비선형성을 도입하고, 모델의 학습 속도를 크게 향상

      : Dropout 기법을 도입하여 모델의 과적합을 방지하여 일반화 성능을 향상

      : GPU 를 사용하여 대규모 데이터 셋을 빠르게 처리하고 학습시간을 단축

   - 단점

      : 파라미터가 많고 계산 비용이 큼

 

* VGG Net (Visual Geometry Group, 2014)

   - VGG 에서 개발한 모델로 깊이 있는 네트워크 구조 (VGG16, VGG19) 를 통해 이미지 인식 성능을 크게 향상

      : 여러 개의 연속된 Conv Layer 를 사용하여 복잡한 패턴을 학습할 수 있도록 함

      : 모든 Conv Layer 는 3x3 필터를 사용, Pooling Layer 는 2x2 필터를 사용하여 신경망 복잡도를 줄이고 깊이를 증가시킴

   - 단점

      : 매우 큰 모델 사이즈

      : 메모리 및 계산 Cost 가 큼

 

* ResNet (Residual Networks, 2015)

   - MS Research 에서 발표한 딥러닝 모델로 깊이를 효율적으로 확장할 수 있도록 Residual Learning 도입

   - 단점

      : 파라미터 수가 여전히 많음

 

* Residual (잔차)

   - 입력(x)과 출력의 차이

      : F(x) = H(x) - x

 

* Residual Learning (잔차 학습)

   - 딥러닝에서 신경망이 원하는 출력(H(x))을 학습하는 대신, 잔차를 학습하도록 하는 방식

      : 깊은 네트워크에서 Degradtaion Problem (성능 저하 문제) 완화

   - 기존 방식

      : x -> H(x) 를 직접 맵핑하도록 학습

   - 개선 방식

      : x -> F(x) 를 학습

        // F(x) 만 0으로 만들어주면 항등 함수가 되는데 이게 학습이 더 쉽다

        // 최종 출력으로 F(x) + x 를 사용

 

* Residual Block (잔차 블록)

   - 입력 값을 네트워크의 여러 층을 통과시킨 후, 원래의 입력값과 더하는 구조를 가진 딥러닝 네트워크의 기본 단위

      : 기본 구성 요소는 2개의 3x3 Conv Layer 를 가지고 있으며 입력값과 출력을 더하는 shortcut 연결을 포함

 

* Identity Mapping

   - 입력값을 어떤 변환 없이 그대로 출력으로 전달하는 함수 또는 경로를 의미

      : h(x)=x와 같은 항등함수

 

* Skip connections (=Shortcut connection = residual connection; 스킵 연결)

   - 이전 층의 출력을 여러 층을 건너뛰어(스킵해서) 이후 층의 입력에 직접 더하거나 연결하는 구조

      : 학습이 제대로 이뤄지지 않더라도 최소 이전 수준의 성능 유지

      : 역전파 과정에서 기울기가 소실 문제를 완화시켜 깊은 층까지 전달

 

* ViTs (Vision Transformers)

 

* 응용 분야

   - Single Object

     1. Classification

     2. Classification + Localization

   - Multiple Objects

     3. Object Detection

     4. Segmentation

 

* Classification (분류)

   - 이미지에서 객체의 종류를 인식하는 기술

 

* Localization

   - 이미지 내에서 객체가 위치한 영역 (Bounding Box) 을 식별

 

* Bounding Box (바운딩 박스)

   - 객체의 위치를 나타내는 직사각형

      : (x_min, y_min, x_max, y_max)

 

* Object Detection (객체 탐지)

   - 이미지나 비디오에서 특정 객체를 인식하고 그 위치를 탐지하는 기술

      = Classfication + Localization

   - One-Stage

      : 객체의 위치와 클래스를 한 번이 전파로 동시에 예측하는 방법

      : YOLO (You Only Look Once), SSD (Single Shot MultiBox Detector), RetinaNet 등

   - Two-Stage

      : 객체 탐지 파이프라인을 두 단계로 나누어 처리하는 방법

      : R-CNN (Regions with CNN features), Fast R-CNN, Faster R-CNN 등

 

* Semantic Segmentation (의미론적 분할)

   - 이미지의 각 픽셀에 대해 해당 픽셀이 어떤 클래스에 속하는지 분류

      : 각 객체들을 정확히 구분하는 것이 목표

 

* Encoding (인코딩)

   - CNN 모델의 여러 합성곱 및 Pooling Layer 를 통해 이미지가 점점 작은 크기의 FeatureMap 으로 다운샘플링 되는 과정

     : 즉, 점점 더 추상적이고 중요한 Feature를 추출하고 공간정보를 압축하는 과정을 의미

     : 이미지의 전체적인 문맥을 파악하게 되지만 공간적 해상도는 낮아짐

   - 일반적으로 깊이가 깊어질수록 채널은 많아지고 너비와 높이는 줄어든다

      : 서로 다른 각각의 필터들은 특정 Feature 값을 추출하도록 학습됨

 

* Decoding (디코딩)

   - 업샘플링을 디컨볼루션 (Transposed Convoution) or 인터폴레이션 (Interpolation) 기법을 사용하여 수행하는 과정

      1. 이미지의 공간적 해상도를 복원

          : 업샘플링된 FeatureMap 은 다수의 채널(N = 클래스 개수)로 구성된 벡터 형태로 표현되어 있음

      2. 따라서, Softmax 함수를 사용하여 각 픽셀이 속하는 클래스의 확률을 계산하여 픽셀 단위의 클래스 예측을 수행

      3. 이를 바탕으로 Sementation Map (분할 맵) 생성

   - 대표적인 모델로는, FCN (Fully Convolutional Networks), U-Net, DeepLab, PSPNet 등이 있다

 

* Upsampling (업샘플링)

   - 다운샘플링된 FeatureMap 을 원래 크기로 복원하는 과정

 

* Super-Resolution (SR; 초해상도)

   - 저해상도 이미지를 고해상도 이미지로 변환하는 기술

      : 세부사항을 복원하고 더 높은 해상도로 확대할 때 이미지의 품질을 유지하거나 개선

   - SISR, MISR, VSR 로 구분

 

* SISR (Single Image Super-Resolution; 단일 이미지 초해상도)

   - 하나의 저해상도 이미지를 입력받아 고해상도 이미지를 출력

 

* MISR (Multi-Image Super-Resolution; 다중 이미지 초해상도)

   - 여러 장의 저해상도 이미지를 입력받아, 각 이미지에서 서로 다른 정보를 통합하여 고해상도 이미지를 출력

      : 다양한 각도나 시간대에 찍힌 저해상도 이미지를 결합하여 더 많은 세부 정보를 추출

 

* VSR (Video Super-Resolution; 비디오 이미지 초해상도)

   - 비디오의 여러 프레임을 활용하여 고해상도 프레임을 생성함

     : 시간적 정보 (이전 및 이후 프레임 정보) 를 사용하여 공간적 해상도를 개선

'SW > AI (인공지능)' 카테고리의 다른 글

ViTs (Vision Transformers)  (0) 2025.06.22
Transformer (트랜스포머)  (0) 2025.06.22
Overfitting (과대적합)  (0) 2025.06.22
ANN (Artificial Neural Network; 인공신경망)  (0) 2025.06.21
Dying ReLU Problem  (0) 2025.06.21

+ Recent posts