🌏 CNN의 등장 배경
Convolutional Neural Networks(CNN)가 등장하기 전에는 Artificial Neural Networks(ANN)가 주로 이미지 인식과 같은 작업에 사용되었습니다. 하지만 ANN은 이미지 처리에서 심각한 문제를 가지고 있었고, 이로 인해 CNN이 등장하게 되었습니다. 이번 글에서는 ANN이 이미지 처리에서 가졌던 문제와, CNN이 이를 어떻게 해결했는지에 대해 알아보겠습니다.
✅ ANN에서의 문제점: 이미지 처리의 어려움
ANN은 일반적으로 완전 연결층(Fully Connected Layer)을 사용하여 입력을 처리합니다. 이는 입력의 모든 뉴런이 다음 층의 모든 뉴런과 연결된다는 의미입니다. 하지만 이미지와 같은 복잡한 데이터에서는 여러 가지 문제점이 발생합니다.
1. 매우 많은 파라미터 수
이미지의 각 픽셀은 입력 데이터의 하나로 간주됩니다. 예를 들어, 100x100 크기의 흑백 이미지라면, 입력 뉴런은 10,000개가 됩니다.
ANN에서 이 10,000개의 입력 뉴런을 다음 층의 뉴런과 연결하려면 막대한 수의 가중치(파라미터)를 학습해야 합니다. 예를 들어, 첫 번째 은닉층에 100개의 뉴런이 있다면, 10,000x100 = 1,000,000개의 가중치를 학습해야 합니다.
이러한 파라미터 수는 입력 이미지의 크기가 커질수록 기하급수적으로 증가하며, 이는 모델의 학습 속도와 메모리 요구량에 큰 부담을 줍니다.
2. 공간 정보의 손실
- ANN은 이미지의 공간적 구조(즉, 픽셀 간의 위치 관계)를 고려하지 않습니다. 이미지에서 픽셀 간의 위치는 매우 중요한 정보인데, ANN은 각 픽셀을 독립적인 입력으로 취급하여 이 정보가 손실됩니다.
- 예를 들어, 동일한 물체가 이미지의 다른 위치에 있으면 ANN은 이를 완전히 다른 데이터로 인식할 수 있습니다.
3. 지역적 특징을 인식하지 못함
- ANN은 이미지에서 지역적 특징(예: 모서리, 선, 텍스처)을 인식하는 데 비효율적입니다. 이미지의 작은 부분에서 중요한 특징이 있을 수 있지만, ANN은 입력의 모든 부분을 동일하게 취급하기 때문에 이러한 지역적인 정보를 효과적으로 처리하지 못합니다.
✅ CNN의 등장과 해결 방법
CNN은 이러한 ANN의 문제점을 해결하기 위해 설계된 신경망 구조입니다. CNN은 이미지의 공간적 구조를 고려하며, 필터(커널)를 사용해 지역적 특징을 인식하고, 파라미터 수를 효율적으로 줄입니다.
1. 필터(커널)와 합성곱 연산으로 파라미터 수 감소
CNN에서는 필터(또는 커널)를 사용하여 이미지의 일부분만을 처리합니다. 예를 들어, 3x3 크기의 필터는 입력 이미지의 작은 부분(3x3 영역)에만 적용됩니다.
이렇게 하면 ANN에서처럼 이미지의 모든 픽셀과 뉴런이 연결되는 것이 아니라, 각 필터가 이미지의 일부를 처리하여 파라미터 수를 크게 줄일 수 있습니다.
예시:
만약 100x100 크기의 이미지에 ANN을 적용하면, 10,000개의 입력 뉴런이 필요하지만, CNN은 3x3 크기의 필터를 사용하여 이를 처리합니다. 필터의 수가 10개라면, 총 3x3x3(채널 수) x 10(필터 수) = 270개의 파라미터만 학습하면 됩니다. 이는 ANN과 비교했을 때 파라미터 수를 크게 줄여주는 효과가 있습니다.
2. 공간 정보 보존과 위치 불변성(Translation Invariance)
- CNN은 합성곱 연산을 통해 이미지의 공간적 구조를 보존합니다. 이는 필터가 이미지의 다른 위치에서도 동일한 패턴을 찾을 수 있음을 의미합니다.
- 예를 들어, CNN이 이미지의 왼쪽 상단에서 학습한 패턴(예: 고양이의 귀)을 이미지의 다른 위치에서도 찾아낼 수 있습니다. 이를 위치 불변성(Translation Invariance)이라고 하며, ANN에서는 이러한 능력이 부족했습니다.
3. 지역적 특징 추출과 계층적 학습
- CNN의 필터는 이미지의 작은 부분에서부터 큰 특징을 인식하는 방식으로 작동합니다. 첫 번째 층에서는 모서리나 선과 같은 작은 특징을 학습하고, 더 깊은 층으로 갈수록 점점 더 복잡한 패턴(예: 얼굴, 물체)을 학습합니다.
- 이와 같이 CNN은 이미지의 지역적 특징을 효과적으로 학습하며, 이 특징들을 계층적으로 결합하여 복잡한 이미지를 인식할 수 있습니다.
✅ ANN과 CNN의 차이점
구분 | ANN(인공신경망) | CNN(합성곱 신경망) |
---|---|---|
파라미터 수 | 이미지 크기에 비례해 기하급수적으로 증가 | 필터를 사용해 파라미터 수를 크게 줄임 |
공간 정보 | 공간적 구조를 고려하지 않음 | 필터를 통해 이미지의 공간 정보를 보존 |
특징 인식 | 지역적 특징을 인식하지 못함 | 작은 지역적 특징을 인식하고 계층적으로 학습 |
위치 불변성 | 물체의 위치가 달라지면 인식이 어려움 | 물체의 위치가 달라도 동일한 패턴을 인식 가능 |
CNN은 ANN의 한계를 극복하며 이미지 처리에 매우 효과적인 신경망 구조로 자리 잡았습니다. 필터와 합성곱 연산을 통해 파라미터 수를 줄이고, 이미지의 공간 정보를 보존하며, 다양한 위치에서 패턴을 인식하는 능력을 갖추었습니다. 이러한 특성 덕분에 CNN은 이미지 분류, 객체 인식, 영상 처리 등 다양한 분야에서 중요한 역할을 하고 있습니다.