CNN(Convolutional Neural Network)은 이미지 인식 및 처리를 위해 아주 효과적인 딥러닝 알고리즘이다. CNN은 응용하기에 따라 여러 가지 구성요소로 구성되어있는데 기본적으로는 Convolutional layer와 Pooling, Fully Connected layer로 이루어져있다.
Convolutional Layer: 이미지의 픽셀 값에서 특징을 추출하는 계층이다. 여러 개의 필터 (또는 커널)을 사용하여 이미지 위를 슬라이딩하면서 이미지의 다양한 부분에서 특징을 학습한다.
Pooling (Sub-sampling) Layer: CNN의 구조에서 각 Convolutional Layer 다음에 위치하는데, 이는 이미지 데이터의 차원을 줄이고 (예: 이미지 크기 축소) 연산량을 감소시키는 데 도움이 된다. 이렇게 하면 모델이 더 큰 범위의 특징을 파악하는 데 도움이 되며, 오버피팅을 방지한다.
Fully Connected Layer: 이전 계층에서 추출된 모든 특징들이 이 계층에 연결되며, 여기에서 최종적으로 분류 또는 회귀가 이루어진다.
기본적으로 CNN은 다양한 이미지에 포함된 특징을 학습하기 위해 동작하며, Convolutional Layer와 Pooling Layer를 통해 이미지의 다양한 특징을 추출하고 학습하는 과정을 반복한다. 일반적인 심층 신경망과 달리, CNN은 지역적인 픽셀 패턴을 학습하기 때문에 이미지의 공간적인 구조를 이해하는 데 효과적이다. 이는 이미지의 픽셀 간의 관계와 패턴을 학습하는 데 중요한 특징이다.
Convolutional layer
Convolutional Neural Network (CNN)의 핵심 구성 요소 중 하나로, 이미지와 같은 공간 데이터에서 지역적인 특징을 추출하는 역할을 한다. 입력 데이터에 일련의 필터 (또는 커널)를 적용함으로써 새로운 특징 맵(Feature Map)을 생성하게 된다.
과정은 보통 다음과 같이 진행된다.
1. 필터 적용: 각 Convolutional Layer는 여러 개의 필터를 가지고 있다. 이 필터들은 일반적으로 작은 크기의 2D 행렬로, 각 필터는 입력 이미지의 서로 다른 부분을 슬라이딩하며 적용된다.
2. 특징 맵 생성: 필터가 이미지 위를 슬라이딩하면서 각 위치에서 입력 데이터와 필터 사이의 합성곱 (각 요소의 곱의 합)을 계산한다. 이렇게 계산된 값들이 모여서 새로운 특징 맵을 형성한다. 이 과정을 통해 필터는 입력 이미지에서 특정한 패턴이나 특징을 찾아내게 된다.
3. 활성화 함수 적용: 필터에 의해 생성된 특징 맵에 비선형 활성화 함수 (예: ReLU)가 적용된다. 이는 네트워크가 복잡한 패턴을 학습하는 데 필요한 비선형성을 추가해준다.
Convolutional Layer의 장점 중 하나는 학습해야 하는 매개변수의 수를 크게 줄여준다는 것이다. 이는 각 필터가 전체 이미지에 걸쳐 공유되기 때문에 가능한데, 이러한 특성 때문에, CNN은 이미지의 지역적인 특징을 효과적으로 학습할 수 있으며, CNN이 다양한 이미지 인식 문제에서 뛰어난 성능을 보이는 주요 이유 중 하나다.
Pooling
보통 convolutional layer 다음에 pooling을 하는데, pooling은 feature map의 크기와 convolutional layer의 출력을 줄이는 역할을 한다. pooling은 두 가지 기능을 한다.
1. 처리할 데이터의 크기를 줄인다.
2. 알고리즘이 이미지 위치의 작은 변화에 집중하지 않도록 한다.
보통 MaxPooling을 많이 사용하는데, MaxPooling은 입력에서 가장 큰 값을 취해서 출력으로 내보낸다. 이 방법은 해당 커널 내에서 가장 두드러진 특징을 추출하게된다. MaxPooling 이외에 많이 사용되는 방법은 평균 풀링(Average Pooling)이 있다 Average Pooling은 입력 값들의 평균을 취해서 출력으로 내보낸다. 이 방법은 주어진 커널의 전체적인 특징을 요약한다.
Fully Connected layer
Fully Connected layer는 Dense layer라고도 불리며, 일반적으로 CNN의 마지막 부분에 위치해있다. 이 layer는 모든 뉴런이 이전 계층의 모든 뉴런과 연결되어 있다. 이전 계층에서 추출된 모든 특징들을 종합적으로 고려하고, 각각의 출력 뉴런은 모든 입력에 대해 가중치를 가지게 된다. 따라서 Fully Connected Layer의 주된 역할은 앞선 계층들을 통해 추출된 복잡한 특징 정보를 종합하여, 그 정보를 기반으로 최종적인 분류나 예측 결정을 내리는 것이다. 이 계층에서 학습되는 가중치들은 이 결정을 내리는데 사용되는 특징들의 중요도를 결정하게 된다. Fully Connected layer는 모든 뉴런이 연결되어 있기 때문에 파라미터가 많아서 다른 layer보다 용량이 크다.
'Computer Vision' 카테고리의 다른 글
Text Detection : DPTNet 논문 리뷰 (0) | 2023.07.06 |
---|---|
카메라 캘리브레이션 (Camera Calibration) (0) | 2023.07.04 |
PP-OCR 기술 리뷰 (0) | 2023.07.03 |
Text Detection : DPText-DETR (0) | 2023.06.28 |
CLIP : Contrastive Language-Image Pre-Training 리뷰 (0) | 2023.06.23 |