본문 바로가기
인공지능 (AI)

32번째 이야기 - 다중퍼셉트론, MLP, 합성곱 신경망, CNN, 다중퍼셉트론 단점

by Ψβ⅓ 2022. 11. 21.

<다층 퍼셉트론(MLP)으로(MLP) 이미지를 다룰 때 나타나는 단점 2가지>

다층 퍼셉트론(MLP)의 학습이 오차 역전파와 ReLU 활성화 함수의 도입으로 수월해지게 되면서 MLP를 활용한 다양한 실생활의 문제 해결 적용의 시도가 시작됩니다.

신경망으로 2차원의 이미지 분류를 하려는 작업 또한 그 시도들 안에 포함되어 있었습니다. 신경망으로 2차원의 이미지를 다루기 위해서는 신경망이 요구하는 형태로 전처리(변환)하는 과정이 필요합니다.

이를 이해하기 위해서는 컴퓨터가 어떻게 이미지를 인식하는지 살펴볼 필요가 있습니다.

 

다중퍼셉트론

 

보시는 바와 같이 여기 28*28 크기의 2차원 이미지가 있습니다. 자세히 보면 각 픽셀의 값은 0~255의 값을 가집니다(0은 검은색, 255는 흰색).

MLP1n열의 1차원 행렬의 벡터만 입력받습니다. 아래 그림과 같이 4개의 행으로 이루어진 왼쪽의 사각형 픽셀 값들을 오른쪽과 같이 한 줄로 변환해주어야만 입력을 받을 수 있다는 의미입니다. 이를 Image flattening(이미지 벡터 변환)이라고 부릅니다.

 
이미지 벡터 변환

 

여기서 픽셀의 검은색이 0, 흰색이 255라면 입력 벡터는 다음과 같습니다.

 
 

이미지 벡터 변환

위의 손글씨 숫자 '3' 이미지가 갖고 있는 픽셀의 수는 몇 개일까요?? 네, 28*28=784개입니다. , 이를 신경망에 넣고 처리하려면 1*784 형태의 1차원 벡터로 변환해주어야 합니다. , 신경망의 입력층에 들어갈 노드는 x1, x2, x3,..... x784가 일렬로 이루어진 784개가 되겠죠.

이러한 이유로 케라스 라이브러리를 사용하여 신경망 코드를 입력할 때, Flatten 층을 임포트합니다.

코딩

그런데 말입니다. 여기서 심각한 문제가 발생합니다. 2차원 벡터의 이미지를 1차원 벡터로 변환하게 되면 어떤 정보가 손실되지 않을까 하는 합리적인 의심이 들 수 있습니다.

, 이 의심은 타당합니다. 사실, 차원의 수를 줄이게 되면 당연히 정보 손실이 일어납니다. 2차원의 정보를 모두 폐기하게 되는 것과 다름없기 때문이죠. 여기에서는 이미지 내 공간적 특징이 손실됩니다.

, 2차원의 이미지를 이렇게 차원 축소해버리면 서로 인접한 픽셀 간의 관계 정보가 사라집니다. MLP는 픽셀들이 서로 어떠한 연결성을 갖고 있었다는 사실을 유추해낼 수 없습니다. 이 점이 MLP로 이미지를 다룰 때의 큰 단점입니다.

 

MLP

위와 같은 그림에서 1이 검은색, 0이 흰색이라고 했을 경우, 위의 왼쪽 그림과 같이 x1, x2, x5, x6이 발화했을 때만 정사각형을 인식할 수 있습니다. 그러나 옆의 2개의 그림과 같이 정사각형의 모양과 위치가 달라지면요? 이미지 내 다양한 자리에 위치한 정사각형을 MLP는 알아차리지 못합니다.

결국 이 MLP가 다양한 자리에 위치한 정사각형을 알아차리는 능력을 가지려면 이미지 내 모든 자리에 위치한 정사각형의 이미지가 필요합니다만 너무 문제가 복잡해지고, 그냥 사람이 분류하는 편이 낫습니다(...)

결국 중요한 건 이미지를 구성하는 픽셀 간의 관계입니다.

또 한 가지 단점은 뭘까요? 다음 글에서 이를 마저 살펴보고, 2가지 단점을 극복하기 위해 등장한 설루션인 CNN(합성곱신경망)CNN(합성곱 신경망)에 대해 살펴보도록 하죠.

 

 

<다층 퍼셉트론(MLP)으로(MLP) 이미지를 다룰 때 나타나는 단점 2가지>

MLP로 이미지를 다루게 되면 나타나는 또 한 가지 단점은 뭘까요? 그것은 바로 계산의 복잡도입니다.

방금 우리가 다뤄본 손글씨 숫자 '3'28*28 크기의 이미지였기 때문에 사실 그렇게 문제가 되지 않습니다. 하지만 큰 이미지일 경우에는 문제가 됩니다.

● 1280*7841280*784 크기의 이미지일 경우 이 입력층에 연결된 은닉층 하나의 노드마다 1,003,520개의 파라미터를 갖게 될 겁니다. 계산 복잡도의 측면에서 실로 우리가 통제할 수 있는 범위를 넘어섭니다

공간적 특징의 손실과 계산 복잡도의 문제는 바로 이미지를 처리할 때 MLP가 갖는 치명적인 단점이었습니다. 그렇다면 해결책은 없을까요?

● 1280*7841280*784 크기의 이미지일 경우 이 입력층에 연결된 은닉층 하나의 노드마다 1,003,520개의 파라미터를 갖게 될 겁니다. 계산 복잡도의 측면에서 실로 우리가 통제할 수 있는 범위를 넘어섭니다

공간적 특징의 손실과 계산 복잡도의 문제는 바로 이미지를 처리할 때 MLP가 갖는 치명적인 단점이었습니다. 그렇다면 해결책은 없을까요?

 

다중 퍼셉트론

 

위의 그림에서 보시는 바와 같이 MLP는 모든 노드가 Fully-connected(전결합) 되어 있습니다. 그러나 CNN은 지역적으로 연결된(locally connected) 구조를 갖습니다. 그러다 보니 전 결합된MLP에 비해 파라미터의 개수가 현저히 적습니다.

정리해봅시다. 2차원의 이미지를 1차원 벡터로 변환하게 되면 반드시 발생하게 되는 공간 정보의 손실과 전 결합층의 특성을 갖는 MLP가 갖는 계산 복잡도를 고려하면 다른 대안을 갖는 신경망이 필요합니다.

, 2차원의 공간적 특징을 간직하면서도 계산 복잡도를 줄여주는 그런 신경망 말이죠.

바로 이 지점이 CNN이 빛을 발하는 지점입니다. 정리하면 CNN2차원의 이미지 백터를 그대로 입력받을 수 있어 공간적 특징을 학습할 수 있도록 설계되었습니다. 또 지역적으로 연결된 구조로 계산 복잡도를 현저히 낮춰줍니다

이렇게 살펴보니 이미지 처리에 특화된 신경망인 CNN이 최초의 딥러닝 알고리즘이라고까지 불리는 그 위상을 이해할 수 있을 것만 같습니다.

 

댓글