CNN(Convolution Neural Network) - Image Classification

박지훈·2024년 12월 15일

Convolution Neural Networks and Image Classification

Convolution Neural Network를 통해 이미지 분류 작업을 수행해보자.

같은 분류를 가지고있는 두 이미지를 비교했을 때, 이미지들은 부분적으로 같은 특징을 가지고 있는 것을 볼 수 있다.

Convolution layer

convolution layer는 이미지내에서 특정 패턴을 overlap 하여 곱한 갑을 통헤 해당 패턴이 어떤 위치에, 어느 정확도로 나타나는지 판단한다.

Convolution layer를 통해 추출된 정보를 이미지의 형태로 얻은 것을 Activation Map(활성화 지도)이라고 한다.

이미지의 여러 채널에 대해 각각의 채널에 적용하는 이미지 패치가 하나의 convolution filter를 이루게 되며, 각 채널별 값을 모두 더하면, 하나의 convolution filter를 통해 나온 하나의 값으로 이루어진 한장의 Activation Map이 추출된다.

first layer : 3채널 이미지에 서로 다른 3개의 커널을 사용하여 conv 연산을 수행한다. 각각의 커널은 3개의 채널을 가지고 있으며, 3채널로 구성된 feature map을 얻을 수 있다.

second layer : 3채널로 구성된 feature map에 1개의 커널을 적용하여 conv 연산을 수행한다. 커널은 3개의 채널을 가지고 있으며, 하나의 Activation Map이 나타난다.

Pooling layer

pooling layer는 Feature map의 크기를 감소시키기 위해 사용하며, Feature map의 특정 위치의 값들에서 하나의 대표값을 추출한다.

Recified Linear Units(ReLus)

Activation Map에 활성화 함수를 곱함으로써 보다 유연하게 다양한 패턴을 표현하게끔 만든다. (Relu Function)

Total CNN layer

CNN의 전체적인 구조는 다음과 같다

Convolution + Relu + Pooling을 통해 Feature Map을 추출하며, 이러한 과정을 반복 수행한다.

앞에 위치한 CNN layer는 입력으로 이미지를 받아서 일반적인 특징을 추출하며, 뒤에 위치한 CNN layer는 입력으로 앞에서 추출된 패턴에 기반한 Activation Map을 입력 이미지로 받았을 때 정의할 수 있는 복잡한 특징을 추출한다.

Fully Connected Layer

activation map에 flatten 작업을 수행하여 일차원으로 나타낸 후, Fully connected layer의 입력으로 사용하여 분류를 수행한다.

Backpropagation

Convolution layer에서는 각각의 이미지의 특정 위치들에 적용한 이미지 패치의 convolution filter의 coefficient 혹은 패턴 자체가 convolution filter의 trainable한 가중치가 되며, 이 값들의 gradient를 계산하고, gradient descent를 수행하며 filter의 coefficient를 최적의 값으로 도출한다.

Hyperparameters

profile
안녕하세요

0개의 댓글