@@@ 인공지능/수학·통계를 몰라도 이해할 수 있는 쉬운 딥러닝

2 - 1. 이미지 분류(Classification) 기법 활용하기(3)

HTG 2021. 7. 14. 20:00
728x90

2-1-3. 시각적 정보 학습의 달인, CNN을 소개합니다!

 

●딥러닝, 인간의 뇌를 따라하는 인공지능

퍼셉트론은 인간의 뇌세포를 흉내 내는 기계이며, 퍼셉트론 레이어를 여러 층 쌓아 올리는 것은 인간의 뇌를 모방하기 위한 것.

딥러닝이 다른 인공지능에 비해 효과가 뛰어난 것은 인간의 뇌를 모방했기 때문일지도..

앞서 FNN으로 이미지 분류에 실패

사실 퍼셉트론은 인간의 뇌가 시각적 정보를 처리하는 방식을 모사하기에는 적절치 않음.

영상 정보를 잘 학습하려면 사람의 뇌가 영상을 처리하는 방식을 따라 하는 것이 좋을 것이다.

그렇다면 우리의 뇌는 어떻게 시각적 정보를 처리할까?

 

●인간의 뇌가 시각 정보를 처리하는 방법

- 시각 정보가 흘러가는 경로

시각적 정보는 안구와 시신경을 거쳐 뇌의 외측슬상핵을 통해 시각피질로 이동.

시각피질은 대뇌의 양쪽 후두엽에 존재.

시각피질은 입력받은 정보를 처리하여 측두엽의 아랫부분에 있는 IT(아래관자피질)와 두정엽으로 전달.

안구로부터 흘러온 정보가 아래관자피질까지 전달되는 경로를 살펴보자.

시각피질은 V1, V2, V3, V4, V5, V6 등 다양한 영역으로 나뉨. 이 중 V1, V2, V4를 살펴보자.

 

- 경계선을 인식하는 'V1'

'V1'은 시각 피질에서 가장 연구가 많이 된 분야. 외측 슬상핵으로부터 전달받은 시각적 정보를 분석하여 중요한 정보를 강조하는 것이 주된 역할.

V1은 시각적 정보에서 방향과 색의 작은 변화를 구분. 또한, 시각 정보의 공간적 정보보다는 '선'과 '모서리', '가장자리'를 주로 탐지.

 

- 모양을 인식하는 'V2'

'V2'는 모양이나 형태, 양쪽 눈으로 입력된 정보의 불균형(원근감) 등의 정보를 처리.

 

- 형상을 인식하는 'V4'

'V4'는 'V1'이나 'V2'만큼 연구가 진행되지는 않지만 기하학적 도형과 같이 복잡성이 있는 개체 또는 물체를 인식하는 역할을 수행.

 

- 최종적으로 정보를 처리하는 'IT'

'V4'가 출력한 정보는 측두엽의 하방에 있는 'IT'로 전달.

'IT'는 최종적으로 시각적 정보를 처리하여 인간의 눈으로 들어온 시야에 대한 정보를 해석하여 물체를 인식.

 

- 시각 정보의 처리 과정 요약

인간의 뇌는 선이나 모서리같이 간단한 피쳐를 먼저 처리하고, 모양과 물체의 형태, 얼굴 등 복잡하고 추상화된 정보는 나중에 처리.

 

●인간의 시각 정보 처리를 모사한 신경망, CNN

- CNN의 정의

CNN - Convolutional Neural Network의 약자, '합성곱 신경망'

FNN의 주된 재료가 퍼셉트론이라면, CNN의 주된 재로는 '필터(filter)'.

카메라 앱에서 사진에 필터를 적용하면 사진의 분위기가 편하는 것 처럼, CNN의 필터 또한 비슷한 개념.

이미지에 필터를 씌워 원본 데이터를 변형하고, 변형된 데이터를 다음 층으로 출력하는 것이 CNN의 주된 작동 원리.

 

- CNN의 계산 방법 (필터의 적용 방법)

원본 데이터에 필터를 씌워 연산을 하면 우리가 원하는 정보가 나온다.

원하는 부분만 볼 수 있도록 필터를 적용.

이것은 앞서 살펴본 'V1'의 기능과 유사.

 

- CNN의 계산 방법 (필터의 이동)

원본 데이터의 크기가 필터보다 클 때는 여러번 적용시켜 결과물을 생성.

예를 들어 4 X 4의 데이터에 3 X 3의 필터를 적용시키려면 총 4번을 적용시켜 결과물을 2 X 2의 결과물을 생성.

 

- 이미지 크기의 감소

CNN 적용 결과 이미지의 크기가 감소한 것을 확인.

세로 방향 필터를 적용하면 가로 방향 정보가 모두 사라지는 것을 확인.

 

- 제로 패딩

제로 패딩 - 필터를 적용하면서도 이미지의 크기를 축소하지 않는 기법. 이미지의 가장자리에 숫자 0을 빙 두르는 기법.

마치 이미지가 더욱 넓어진 것과 같은 효과가 발생하므로 필터를 적용한 결과물의 사이즈가 원본 사이즈와 동일.

 

●CNN도 신경망인가요?

필터의 적용 방법은 퍼셉트론과 많이 다름. 그래서 CNN이 신경망처럼 보이지 않지만 신경망임.

CNN의 가중치는 필터에 들어있는 숫자. 3 X 3 필터는 총 9개의 가중치를 지님.

FNN에서 한 층에 들어가는 퍼셉트론의 개수를 정할 수 있었듯, 한 층의 CNN에도 여러 개의 필터가 들어갈 수 있음.

3 X 3사이즈 필터를 총 10개 사용하는 CNN 층은 90개의 가중치를 가진 것.

 

●CNN의 학습

FNN의 학습이 가중치를 변화시키는 과정이었듯, CNN의 학습 역시 가중치를 변화시키는 과정이라는 점이 동일.

CNN의 가중치는 초기에 모두 무작위로 선택되지만, 학습이 진행되며 조금씩 그 값이 달라짐.

결과적으로 학습이 끝날 무렵이 되면 각각의 필터가 서로 다른 정보를 추출하게 됨.

어떤 필터는 가로, 어떤 필터는 세로, 어떤 필터는 대각선 정보를 잘 뽑아내도록 학습.

그리고 이 정보들은 다음 층에서 취합되어 조금 더 추상적이고 복잡한 형태 정보를 처리.

마치 인간의 시작 피질처럼 활동.

 

Hierarchical Feature Map (FMP)

 

CNN을 여러 층 쌓아 올리면 인간의 시각 피질과 마찬가지로 아래층일수록 단순한 정보를, 위층으로 올라갈수록 추상화되고 복잡한 정보를 처리하도록 학습.

이때, 각각의 층에서 처리하는 정보를 정리하여 그림으로 표현한 것을 "Hierarchical Feature Map" 이라고 부른다.

예를 들어, 사람의 얼굴을 학습한 CNN은 (가로,세로,대각선) - (눈,코,입,귀) - (얼굴 윗부분,얼굴 아랫부분,얼굴 윤곽) 등의 순서로 정보를 학습하고 처리.