본문 바로가기
ML&DL

CNN, 인간의 이미지 인식 과정을 흉내낸 방식 - 딥러닝, 컴퓨터 비전

by Back2Baek 2024. 2. 26.

CNN, Convolutional Neural Network

▶ MLP의 문제

MLP는 비교적 간단한 구조를 통해, 복잡한 비선형성 데이터를 학습할 수 있다는 장점이 있다.

하지만 이미지 분야에서는 뛰어난 성능을 보이지 않는다.

 

이미지 데이터란, 색이라는 값을 가진 픽셀이 모여, 사물, 동물과 같은 의미를 가지는 객체를 보여주는 데이터를 의미한다.

 

사람은 이 이미지 데이터에서 모든 데이터, 즉 모든 픽셀 하나하나를 의미있게 보지 않는다.

특정 위치나 특정 모양, 그 이미지가 가진 특징의 조합을 중요하게 여기고, 그들을 통해 이 이미지는 '사람이겠구나..' 하고 인지하게 된다.

 

하지만 MLP는 이 과정에서 사람의 인지과정과 차이가 생긴다.

MLP는 모든 픽셀을 중요한 데이터로 여기게 된다.

또한 MLP의 Fully-connected한 특성 상 이미지 상의 특정 객체의 위치, 혹은 특정 픽셀의 위치가 반영되지 않는다.

그렇다면 이를 이미지 인식이라고 할 수 있을까?

 

다시말해, 픽셀의 위치를 마구잡이로 바꾸어도 MLP가 학습하기에 문제가 없고 모든 픽셀이 단순히 무슨 값인지만 중요하게 된다.

 

▶ 인간의 인지과정을 흉내낸, Convolutional Neural Network 

위에서 언급한 문제들로 인해, MLP는 이미지 분야에서 좋은 성능을 거두지 못하였고, 새로운 방식이 필요한 상황이었다.

 

인간과 유사하게 일부 중요한 픽셀을 포착하고, 주요한 신경망을 잘 끊어내고, 위치와 모양에 대한 특징을 잘 추출할 수 있는 방식인 CNN이 이미지 분야에서 좋은 성능을 거두기 시작했다.

 

 

▶ CNN, 특징 추출 방법

CNN의 입력부터 이미지 분류까지 과정을 살펴보며 어떤식으로 주요 특징을 추출하는지 살펴보겠다.

 

Convolutional neural network - Wikipedia

 

  • 입력

이번 입력은 흑백 이미지, 즉, 채널 개수가 한 개인 이미지가 입력으로 들어왔다고 가정하겠다.

 

  • 특징 추출, Convolution 단계

- CNN에서 특징을 추출하기 위해, 필터 혹은 커널이라 불리는 개념이 도입된다.

- 커널은 여러 개가 존재하며, 이 개수는 모델을 설계하는 과정에서 정해진다. 즉, 학습해야될 파라미터는 아닌 것이다.

- 커널의 개수는 특징의 개수가 되며, 각 필터가 어떤 특징을 추출할지, 그를 위해 어떤 값을 가질지학습의 대상이 된다.

- 각 커널은 물체의 가로선, 세로선 등을 추출하기 위한 값을 가진다. (하단 이미지)

CS231n Convolutional Neural Networks for Visual Recognition. Example filters learned by Krizhevsky et al.

 

 

특정 크기(3x3, 5x5...) 의 커널은 입력된 이미지를 전부 스캔(정해진 stride, 이동크기)하며 해당 커널이 찾고자하는 특징을 찾는다.

 

MLP였다면 각 픽셀에 해당하는 노드들과 그 다음 레이어의 노드들이 Fully-connected 되어 데이터가 전

달되겠지만, CNN은 원본 이미지에 커널을 슬라이딩해가며 일부 노드를 하나의 노드로 압축하여 전달하게 된다.

이 과정에서 위치별 특징을 추출하며 필요한 신경망만을 연결하여 적은 파라미터를 가질 수 있게 된다.

cs.cmu.edu/~bhiksha/courses/deeplearning/Spring.2019/archive-f19/www-bak11-22-2019/document/note/hwnotes/hw2/hw2.html

 

 

  • 피쳐맵

각 커널로 추출한 특징을 depth 방향으로 쌓아 여러 개의 피쳐맵을 가지게 된다.

원본 이미지 전체를 다음 레이어에 전달하는 것이 아닌, 주요 특징만을 추출하여 전달하게 된다.

그리고 레이어를 거치면서, 여러 특징들이 또 하나의 특징으로 조합되며, 갈수록 피쳐맵 상의 하나의 값이 원본 이미지 상의 넓은 범위의 데이터를 압축하여 가지고 있게 된다.

 

  • 이미지 분류

추출한 특징을 1차원 벡터로 flatten하여 최종 이미지 분류를 위한 FC에 전달하고, softmax 함수 등을 적용하여 해당 이미지가, 해당 특징들의 집합이 어떤 이미지인지 분류한다.

 

▶ 정리

  • CNN은 인간의 인지 방식을 흉내
  • 필요한 특징만을 추출하여 전달
  • 적절히 신경 다발을 끊어냄
  • 해당 이미지에서 위치 정보를 유지하고 패턴을 인식
  • 여러 특징들이 또 하나의 특징으로 조합되며, 피쳐맵의 하나의 값이 원본 이미지 상의 넓은 범위의 데이터를 가지고 있게된다.