합성곱(Convolution)은 예전부터 컴퓨터 비전(Computer Vision, CV) 분야에서 많이 쓰이는 이미지 처리 방식이다. 입력데이터와 필터의 각각의 요소를 서로 곱한 후 다 더하면 출력값이 된다.
보통 [입력 데이터]는 2차원이나 3차원인 경우가 많은데, 2차원이라 가정한다.
[필터]는 앞으로 학습시켜야 하는 “가중치(Weight)”이다
개념만 알면 계산은 컴퓨터가 해준다^^
이러한 합성곱을 1998년 르쿤 교수의 논문으로 딥러닝에 활용하게 된다.
그림에 특성을 잘 반영한 feeture map 을 뽑아내고 > 차원을 축소시켜 핵심만 뽑아낸다 > 1차 Convolution subsampling> 2차 Convolution subsampling 반복 > 덴스레이어로 연결 > OUTPUT
이렇게 출력값을 뽑아내면 굉장히 성능이 좋다 논문을 발표하게 된다.
합성곱을 이용한 이 신경망 디자인을 합성곱 신경망(CNN)이라고 명칭했고 이미지 처리에서 엄청난 성능을 보이는 것을 증명했다. CNN의 발견 이후 딥러닝은 전성기를 이루었다. 이 후 CNN은 얼굴 인식, 사물 인식 등에 널리 사용되며 현재도 이미지 처리에서 가장 보편적으로 사용되는 네트워크 구조이다.
Filter만 사용하게 되면 입력값과 필터를 사용해서 얻은 feeture map의 크기가 입력값과 달라진다.
이러한 형상을 방지하기 위해 사용하는 방법이 Padding이다
위에서는 1개의 필터를 사용하여 연산을 하였지만 여러개의 필터를 이용하여 합성곱 신경망의 성능을 높일 수 있다. 그리고 이미지는 3차원(가로, 세로, 채널)이므로 아래와 같은 모양이 된다.
3차원 이미지에서 이렇게 Convolution 연산이 가능하다.