1. 개념이해(예시1) 끝없이 긴 사다리가 있다고 상상해봅시다. 사다리의 맨아래에서는 나무가 다양한 색을 가지고 있다는 것을 볼 수 있습니다. 하지만 사다리의 높은 곳으로 올라갈 수록 우리는 그 나무를 다양한 색이 아닌 하나의 녹색점으로 표현하게 됩니다.이러한 과정을 추상화라고 하고, cnn은 이러한 원리를 이용합니다.
2. 개념이해(예시2) 다른 예로 초등학교 2학년 수학 시간에 처음 삼각형을 배웠을 때를 떠올려봅시다.사각형이 뭔지는 몰랐지만 다양한 사각형들을 보고 생각하는 활동을 합니다.그 활동 속에서 여러 사각형들의 다른 성질들은 빼고, 공통된 성질을 찾습니다.즉 색깔이나 크기와 같은 요소들은 빼버리고 네 선분으로 둘러싸여 있다는 공통된 요소를 찾는 과정을 갖습니다.이 과정은 말로하면 어려워보이지만 실제로 우리 머릿속에서 자연스럽게 일어나는 과정입니다. 다시 말해 추상화라는 과정을 통해 사각형의 대표적인 특징을 찾아 사각형이라는 개념을 갖게 됩니다.
2) CNN 제대로 이해하기(Convolution Neural Network)
출처 : 파워포인트 제작
ANN(artificial neural network), DNN(Deep Neural Network)과 같은 기존의 신경망은 데이터에서 지식을 추출하여 학습이 이뤄졌습니다. 하지만 CNN(Convolution Neural Network, 합성곱신경망)은 데이터의 특징을 추출하여 데이터의 패턴을 파악하는 구조입니다. CNN(Convolution Neural Network) 알고리즘에서는 컨볼루션(Convolution) 과 풀링(Pooling) 이라는 중요한 과정이 있습니다. 컨볼루션은 필터를 통해 특징을 찾는 방법이고 풀링은 컨볼루션 과정 중에 찾은 가장 중요한 특징만 남기고 차원을 줄이는 방법입니다.
여러분의 이해를 위해 아래 그림에서 직사각형의 패턴을 파악하는 과정을 예로 들어보겠습니다.
출처 : 파워포인트 제작
주어진 직사각형 그림에 노란색 가로 필터를 사용한다고 가정해봅시다. 이 필터는 가로선의 존재 유무만 판단하는 필터이며 번호순으로 하나씩 직사각형 이미지를 필터의 기준에 맞게 판단합니다. 이 필터를 통해 1번에서 4번까지는 가로 선이 있다는 것을 알아낼 것입니다. 그리고 5번에서 12번까지는 가로선이 없다는 것을 알아낼 것이고 13번에서 16번까지는 가로선 이 있다는 것을 알아낼 것입니다. 결국 가로 필터는 주어진 직사각형에는 가로선이 존재한다는 특징을 추출해 낼 것입니다. 여기까지의 과정이 컨볼루션(Convolution)과정입니다.
출처 : 파워포인트 제작
이제 풀링(pooling)과정도 알아봅시다. 파란색 네모가 그려진 1번, 2번, 3번, 6번의 데이터를 살펴보겠습니다. 4개의 데이터 중 가로선이라는 특징에 가장 적합한 데이터는 몇 번일까요? 바로 2번이 가장 적합하다고 할 수 있습니다. 그렇게 각각의 네모 안에 있는 4개의 값 중에 가장 적합한 정보만 남기면 결국 파란색 별표가 그려진 2번, 3번, 14번, 15번만 뽑아냅니다. 이것이 풀링 과정이고 조금 더 정확히 표현하면 최댓값만 찾아내는 맥스 풀링(Max pooling)이라고 합니다.
출처 : 파워포인트 제작
풀링 과정이 필요한 이유는 무엇일까요? 컨볼루션 신경망은 필터의 개수만큼 다층의 필터로 구성되어 있습니다. 필터의 종류가 많을수록 추출하는 특징이 많아지므로 이미지를 인식하는 성공률이 올라가지만 필터가 많아지면 데이터가 쉽게 커질 수 있습니다. 이것은 과적합을 일으킬 수 있는 이유가 됩니다. 다시말해서 인식성공률은 좋아지는 만큼 인식하고 판단하는 데에 걸리는 시간이 오래 걸릴 수 있다는 뜻이기도 합니다. 그래서 풀링 과정이 필요합니다. 풀링 과정은 주어진 이미지의 모양을 바꾸지 않고 이미지의 크기를 줄이기 때문에자세한 정보는 사라지고 이미지의 대략적인 특징만 남기게 됩니다. 결국 전체 데이터양은 줄어들어서 인식하는데 걸리는 시간이 적게 들어갑니다.
컨볼루션과 풀링이 레이어로 반복되며 최적화된 샘플을 뽑아 이미지를 구별하는 것이 CNN의 대표적인 분야입니다. 그렇다면 이러한 CNN이 활용된 사례는 무엇이 있을까요? 우리가 잘 알고 있는 알파고 역시 13개의 은닉층(숨겨진 레이어)으로 이루어진 CNN으로 학습시킨 머신 러닝 프로그램입니다. 그리고 의료분야에서 암세포와 정상 세포를 구별하는 프로그램을 만드는데에도 쓰이고 있습니다. colorized photo라는 사이트는 흑백사진을 입력하면 그 사진과 어울리는 색을 입혀주는 사이트입니다. 이 사이트 역시 딥러닝이 알아서 어울리는 색을 찾아 칠해줍니다. (https://demos.algorithmia.com/colorize-photos)
Part3. CNN(합성곱신경망)이란? OX Quiz
1. 합성곱신경망에서 중요한 과정인 컨볼루션은 데이터의 공간적인 크기를 축소하는 과정이다.
Correct!Wrong!
-데이터의 공간적인 크기를 줄이는 것은 풀링과정이다.
-컨볼루션 과정은 특징을 추출한다.
2. CNN은 데이터의 특징을 추출하여 데이터들의 패턴을 파악하는 구조이다.
Correct!Wrong!
-ANN과 같은 기존의 신경망은 데이터에 지식을 추출하여 학습이 이루어졌다.
3. CNN에서 컨볼루션과 풀링 과정 중 하나만 있어도 딥러닝이 가능하다.
Correct!Wrong!
-합성곱신경망은 두 과정이 반복되며 이루어지며 그 결과 최적화되 샘플을 뽑아 주어진 이미지를 구별하는 것이 대표적인 분야이다.
4. 풀링 과정에서 최대값을 찾아내는 것을 맥스풀링(Max pooling)이라고 한다.
Correct!Wrong!
- 평균값을 찾는 것은 평균풀링(average pooling)이라고 합니다.
5. 합성곱신경망에서 필터의 양이 많을수록 인식 성공률이 좋아지므로 필터는 최대한 확보하는 것이 좋다.
Correct!Wrong!
-컨볼루션 신경망은 다층의 필터로 추출되는 특징이 많아져 이미지 인식률이 좋아지지만 데이터가 커져 과적합을 일으킬 수 있는 이유가 된다.