합성곱 신경망(Convolutional Neural network,CNN)은 딥러닝의 역사에서 최초로 상당한 성과를 거둔 신경망이다. 오늘 날 합성곱 신경망은 일부 복잡한 이미지 처리 문제에서 사람을 능가하는 성과를 내고 있다. 이번 장에서는 CNN이 어떻게 등장했고 구성 요소와 동작 원리를 살펴본 후에 발전된 형태의 CNN 구조까지 알아보도록 하겠다.
"고양이의 눈에서 답을 얻다."
1950년대 허블(Hubel)과 비셀(Wiesel)은 고양이의 시각 피질 실험에서 고양이 시야의 한 쪽에 자극을 주었더니 전체 뉴런이 아닌 특정 뉴런만이 활성화되는 것을 발견했다. 또한 물체의 형태와 방향에 따라서도 활성화되는 뉴런이 다르며 어떤 뉴런의 경우에는 저수준 뉴런의 출력을 조합한 복잡한 신호에만 반응한다는 것을 관찰했다. 이 실험을 통해 동물의 시각 피질 안의 신경세포(뉴런)들은 일정 범위 안의 자극에만 활성화되는 ‘근접 수용 영역’(local receptive field)을 가지며 이 수용 영역들이 서로 겹쳐져 전체 시야를 이룬 다는 것을 발견했다.
이러한 아이디어에 영향을 받은 얀 르쿤(Yann Lecan) 교수는 인접한 두 층의 노드들이 전부 연결 되어있는 기존의 인공신경망이 아닌 특정 국소 영역에 속하는 노드들의 연결로 이루어진 획기적인 인공신경망을 고안해 냈다. 이것이 바로 합성곱 신경망(Convolutional Neural Network, CNN)이다. CNN은 이미지를 인식하고 처리하는 컴퓨터 비전 분야에서 오늘날까지 인기있는 신경망 모델이다. CNN에 입력으로 자동차 사진을 주면 자동차를 출력한다. 과연 어떻게 인식할 수 있는 것일까?
CNN은 입력으로 받은 자동차 사진을 ‘필터링’과 ‘분류’의 과정을 거쳐 자동차라고 출력하는데 이 과정을 멀리서 본다면 필터링 단계는 입력 받은 원본 데이터를 바로 분류하는 것보다 성능을 좋게 할 무언가를 만드는 단계라고 볼 수 있다. 이때 필터링을 거친 원본 데이터를 피처맵(feature map)이라고 하며 필터를 어떻게 설정할지에 따라 피처맵이 달라지므로 CNN에서 학습시켜야 할 대상은 바로 이 필터가 된다.
※ 자료에 따라 필터(filter)를 커널(Kernel)이라고 부르기도 하며 CNN에서 두 용어는 같은 의미를 가진다.
입력 데이터인 이미지는 대게 (높이, 너비, 채널)로 구성된 3차원의 데이터로 여기서 채널이란 이미지가 가진 색상을 표현하기 위해 필요한 적(red), 녹(green), 청(blue)을 뜻한다. 컬러 사진은 3개의 채널을 가지며 참고로 흑백 사진은 채널이 1 이므로 2차원의 데이터가 된다. 기존에 등장했던 신경망인 완전 연결 신경망의 경우 3차원의 이미지 데이터를 학습시키기 위해 1차원으로 평면화 시키는데 이 과정에서 이미지의 공간 정보가 유실이 되게 된다.
이미지의 공간 정보란 말 그대로 이미지가 가지는 ‘공간적인 정보’를 말한다. 이미지를 이루는 가장 작은 단위를 픽셀(pixel)이라고 하는데 거리가 가까운 픽셀들은 서로 연관을 띠게 된다. 이는 곧 사진에서 음영, 선, 질감 등으로 보여지는 것이며 다시 말하면 이런 픽셀들의 연관성이 이미지가 가지는 공간정보라고 할 수 있다. CNN은 완전 연결 신경망과 다르게 입력 데이터의 원래 구조를 유지해서 입력 받고 다음 단계로 전달할때에도 이 구조를 유지한다. 이렇게 입력 데이터의 공간정보를 잃지 않으므로 이미지 데이터를 잘 이해할 수 있는 것이다.
이제 CNN의 첫번째 단계인 필터링 과정을 보자. 필터링은 입력 받은 이미지를 잘 분류하기 위해 이미지에 필터를 씌워 특징을 찾는 작업이다. ‘필터를 씌우는 것’은 CNN에서 합성곱 연산이라고 하는 계산을 통해 이루어 진다. 다음 글에서 합성곱 연산을 설명해 보겠다.
작성자 홍다혜 ghdek11@gmail.com / 이원재 ondslee0808@gmail.com
'【2】CNN_합성곱 신경망 > Convolutional Neural Networks의 이해' 카테고리의 다른 글
선생님, Padding은 뭔가요?(2) - 스트라이드 (Stride) (0) | 2020.02.06 |
---|---|
선생님, Padding은 뭔가요? 밸리드 패딩 / 풀 패딩 / 세임 패딩 (0) | 2020.02.05 |
곱셈과 덧셈만 알면 정말 쉬운 ‘합성곱' (2) | 2020.02.04 |