반응형

-합성곱 신경망(CNN)

이미지 처리에 탁월한 성능을 보이는 신경망이다. 내가 하는 업무가 이미지 처리 관련 분야이므로, 자주 사용하게 될 것.

 

-합성곱 신경망의 구성

합성곱층(Convolution layer)과 풀링층(Pooling layer)으로 구성된다.

 

합성곱층 예시

이 사진에서 CONV는 '합성곱 연산'을 의미 하고, 그 연산의 결과가 활성화 함수 ReLU를 지난다. 이러한 과정을 합성곱층이라고 한다. 그 후에 POOL이라는 구간을 지나는데, 이는 풀링 연산을 의미하며 풀링층이라고 한다. 정리하자면,

CONV : 합성곱 연산

ReLU : 활성화 함수

CONV -> ReLU : 합성곱층

POOL : 풀링 연산

 

-다층 퍼셉트론과 합성곱 신경망의 차이

정자 Y, 악필 Y

위의 사진처럼 알파벳 Y가 정자와 악필로 된 2가지 종류가 있을 경우, 악필 Y도 Y 인지를  판단하기 위해서 다층 퍼셉트론이나 합성곱 신경망을 사용할 수 있다.

그러나 이러한 이미지는 악필 Y처럼 휘어지거나 이동되는 등 다양한 변형이 존재한다. 다층 퍼셉트론으로 변환을 한다면,

다층 퍼셉트론 변환

이미지를 1차원 tensor인 vector로 변환하고, 다층 퍼센트론의 입력층으로 사용해야 한다. 이렇게 되면 몇 가지 픽셀 값만 달라져도 예측에 영향을 받는 단점이 생기게 된다. 즉, 변환 전에 가지고 있던 공간적인 구조 정보가 유실된 상태다.

그러므로, 이 문제를 해결하기 위해 공간적인 구조 정보를 보존함과 동시에 학습을 할 수 있는 방법이 필요해졌고, 그 결과 합성곱 신경망을 사용한다.

 

-채널

채널은 이미지 처리의 기본적인 용어.

이미지는 (높이(h),너비(w),채널(c) 이라는 3차원 텐서이다.

이미지 픽셀

 

여기서 높이는 세로 방향 픽셀 수, 너비는 이미지의 가로 방향 픽셀 수, 채널은 색 성분을 의미한다. 채널이 만약 1일 경우, 흑백 이미지이며, 각 픽셀은 0~255값을 가진다. 정리하자면,

이미지는 높이(세로 픽셀), 너비(가로 픽셀), 채널(색 성분[0~255])로 이루어진 3차원 텐서.

그렇다면 위의 이미지는 흑백 이미지이므로 채널 수가 1 이기때문에 (28 x 28 x 1)의 크기를 가지는 3차원 텐서가 된다.

컬러 이미지

그러나, 이렇게 컬러 이미지의 경우 RGB로 이루어져 채널 수가 총 3개가 된다. 표현해보면 (28 x 28 x 3)의 크기를 가지는 3차원 텐서라고 말할 수 있다. 채널은 깊이(depth)로도 표현한다.

 

-합성곱 연산

합성곱층은 합성곱 연산을 통해서 이미지의 특징을 추출하는 역할을 한다.

-합성곱이란

합성곱은 Convolution이라고도 불리며, 커널(Kernel) 또는 필터(filter)라는 n X m 크기의 행렬로 높이 X 너비 크기의 이미지를 처음부터 끝까지 겹치며 훑으면서 겹쳐지는 부분의 각 이미지와 커널의 원소의 값을 곱해서 모두 더한 값을 출력하느 ㄴ것을 말한다. 순서는 이미지의 가장 왼쪽 위 => 오른쪽 아래까지 순차적으로 훑는다.

            #일반적으로 커널은 3 x 3 또는 5 x 5 를 사용한다.

합성곱 예시

위 사진은 3 x 3 크기의 커널로 5 x 5 이미지 행렬에 합성곱 연산을 수행하는 과정이다. 이러한 방식으로 왼쪽 위 => 오른쪽 아래까지 순서대로 진행하여 출력 값을 모두 구할 수 있다.

출력

위의 입력으로부터 커널을 사용하여 합성곱 연산을 통해 나온 출력 결과를 특성 맵(feature map)이라고 한다.

 

참고 문헌 : https://wikidocs.net/64066

+ Recent posts