두 함수를 결합해 튜브를 만드는 과정
input image는 이진 이미지(1:흰, 0:흑)로 아무의미없는 흑백 이미지로 생각하고
filter는 input image와 곱해 출력 또는 기능 맵(feature Map)을 생성하기 위한 필터이다.
다시, 1은 흰색 0은 검은색 실제로 흑백 사진은 0~255 까지 나타난다.
자세히 보면 값이 낮아질수록 여러 가지 회색 톤으로 변하는 걸 볼 수 있다.
가운데는 0으로 검은색이다.
수학적인 관점에서의 convolution operation 을 보자
곱셈과 덧셈만 하면 된다.
첫 번째 계산은 각 지도의 왼쪽 상단 첫 번째 숫자를 어떻게 계산하는지 보자
input image에 filter를 곱했을때의 이미지이다.
...
input image와 filter를 곱했을때의 출력,기능맵이 나오는데, 덧셈과 곱셈만 사용을 했다.
위는 에지 검출기(Edge Detector) 중 Prewitt 필터를 곱한 흐름이다.
에지 검출기 특성으로 이미지의 특징을 강조하고, 에지를 부각시키는 데 사용되므로
검은색이 더 커진 모습이다.
아래는 하드코딩 할 수 있는 다른 기능 감지기의 몇 가지 예이다.
여태 공부했던 것중에서 봤던 기능들이다.
참고로 말씀드리자면 CNN은 하드코딩이 아닌 임의로 초기화하여 훈련 과정에서 필터의 가중치(또는 파라미터)를 데이터로부터 자동으로 학습한다.
위 사진에 나와있는것들이 모두 기능 감지기, filter 이다.
이제 개나 고양이가 무엇인지 감지하기 위해 이들의 다양한 기능 조합을 모두 사용하고 있다고 상상해 보자.
다시말해 CNN은 저런 뭔지도 모르는것들을 이용해서 개와 고양이를 감지한다는 것이다.
아까 위에서 filter를 수학적 관점으로 계산한 내용을 deep learning 하는 모습으로 가져왔다.
우측 하단의 filter가 왼쪽 상단부터 훑으면서 연산해 Output인 Feature Map 을 만들어 냈고
두개 위의 보여준 많은 필터들을 하나의 input image와 계속 연산을 하면서 학습을 하는것이다.