Do We Always Need All Information?

이전까지 우리가 살펴본 MLP 는 존재하는 모든 연결에 대한 계산을 진행했다. 이 방법이 항상 최선일까?

2-D Input Data

자동차 사진을 생각해보자. 이 사진을 보고 자동차라는 것을 인지하기 위해 사진들을 구성하는 전체 픽셀들이 필요할까? 바퀴, 사이드미러, 범퍼 등 특징적인 부분 몇 가지만 있으면 우리는 그 사진이 자동차의 사진임을 확신할 수 있다.

Convolutional Neural Network (CNN)

Convolution

image.png

합성곱 (Convolution) 연산은 한 함수의 모양이 다른 함수에 따라 어떻게 바뀌는지를 계산하는 연산

으로, 신호 처리, 이미지 분석, 딥러닝 등에서 정보를 추출하거나 패턴을 인식하는 데 사용된다.

image.png

이를 NN 에 적용하면, MLP 에서와 달리 all to all mapping 을 하지 않고, 모여있는 뉴런들에 대한 계산을 진행하기 때문에 입력 데이터의 Regional Correlation 을 분석하게 된다.

CNN

CNN 은 2차원 이미지 처리에 탁월한 성능을 보이는 신경망이다. 이미지 데이터가 신경망을 통과하는 동안 2D 또는 3D 구조를 유지시키고 중요한 특징들을 추출한다. 이후 Classification 등의 태스크 수행을 위해 MLP 의 입력으로 사용할 수 있도록 1차원으로 데이터를 압축(flatten) 한다.

image.png

CNN 은 크게 Convolution Layer 와 Pooling Layer 로 구성된다. Conv 는 합성곱 연산을 의미하고, 이 결과가 활성화 함수인 ReLU 를 거친다. 이 두 과정을 Convolution Layer (합성곱층) 이라고 한다. 그 후에 Pool 은 Pooling 연산을 의미한다.

그렇다면 왜 이미지 처리에서 MLP 대신 CNN 을 사용하게 되었을까? 알파벳 Y 를 표현한 두 사진을 살펴보자.

image.png

두 그림은 컴퓨터의 입장에서는 픽셀값이 상이하기 때문에, 서로 다른 입력이다. 이미지라는 것은 이처럼 대상의 형태가 변하거나, 다른 방면에서 촬영되는 등 다양한 변형이 존재한다. MLP 는 이런 변형으로 인한 픽셀값 변화에 민감하게 반응해 예측값이 달라질 수 있다는 단점이 있다.

또한, MLP 에 입력되기 위해서는 데이터가 1차원 텐서로 변형되어야 한다. 위 그림을 1차원으로 바꾼 결과를 보자.

image.png