본문 바로가기
필기 노트/처음 배우는 딥러닝 수학

[딥러닝 기초] 합성곱 신경망(CNN) - 1

by misconstructed 2020. 7. 11.
728x90

안녕하세요 :)

오늘은 신경망의 여러가지 종류 중 합성곱 신경망(Convolutional Neural Network, CNN)에 대해서 이야기해보겠습니다.

합성곱 신경망(CNN)

합성곱 신경망은 기존에 배운 신경망과는 다르게 은닉층이 여러개의 합성곱(convolution)층풀링(pooling)층으로 이루어져 있습니다.

합성곱층에서는 이미지 데이터에 비교하는 패턴과 일치하는 부분이 얼마나 포함되어 있는지 확인합니다.

원하는 패턴이 많이 포함되어 있으면 정보를 적극적으로 다음 층으로 전달합니다.

전달하는 정보는 합성곱층의 유닛에 기록합니다.

풀링층에서는 합성곱층의 활동 정보를 묶어서 정리합니다.

기존의 신경망과 다른 합성곱 신경망의 장점은 다음과 같습니다.

  1. 복잡한 패턴인식 문제도 간결한 신경망으로 해결할 수 있습니다.
  2. 유닛 수가 전체적으로 적기 때문에 계산이 편하고 비용이 적습니다.

합성곱 신경망의 동작 과정

합성곱 신경망의 동작 과정을 간단하게 알아보겠습니다.

우선, 입력으로 주어진 이미지 A와, 이미지와 비교할 패턴 S가 있다고 가정해보겠습니다.

A는 5×5의 크기로 숫자 3이 적혀있고, S에는 3×3의 패턴이 기록되어 있다고 가정하겠습니다.

가장 먼저 해야 하는 것은, 이미지 A와 패터 S가 얼마나 일이차는지 확인해야 합니다.

이미지를 패턴과 동일한 크기인 3×3로 잘라서 일치하는 만큼 유사도를 지정합니다.

이미지와 패턴의 유사도가 높으면 패턴과 더 비슷하다고 이해할 수 있습니다.

패턴과의 유사도

이렇게 구한 합성곱의 결과(유사도)를 특징맵(feature map)이라고 합니다.

다음으로, 각 특징맵의 고유한 편향을 더해서 가중입력을 생성합니다.

기존에 배운 신경망과 동일하게 가중입력을 활성화함수의 입력으로 사용해서 해당 유닛의 출력을 생성합니다.

출력 생성까지의 과정

합성곱층에서 출력되는 유닛 수가 많기 때문에, 정보를 압축하는 과정이 필요합니다.

풀링층에서 정보를 압축하는 역할을 수행합니다.

풀링층에서는 입력 데이터를 일정 영역으로 나눠서 대표값을 계산하는 역할을 수행합니다.

대표값을 계산하는 방법으로는 최대풀링, 평균풀링, L2풀링 등이 있습니다.

풀링층에서 압축한 유닛의 출력이 크면, 해당 영역이 패턴 S의 부분과 많이 유사하다는 뜻입니다.

마지막 출력층은 풀링층의 정보를 조합해서 최종 결과를 예측하게 됩니다.

합성곱 변수 명칭

합성곱 신경망도 다른 신경망과 마찬가지로 다양한 변수들이 사용되는데, 변수들의 명칭과 표기법을 정리해보겠습니다.

합성곱층 (convolution layer)

합성곱층에 대해서 조금 더 이야기해보겠습니다.

합성곱층의 필터는 보통 3×3 또는 5×5의 크기로 사용합니다.

3×3 크기의 필터를 사용한다고 가정하면, 합성곱 값은 다음과 같이 구할 수 있습니다.

합성곱에 대해서 i, j에 의존적이지 않은, 각 필터의 고유한 편향 b를 더해서 가중입력 z를 생성합니다.

합성곱의 가중입력

마지막으로 활성화함수 a()에 가중입력을 입력으로 사용해서 유닛의 출력을 생성합니다.

유닛의 출력

풀링층 (pooling layer)

압축한 유닛의 모임으로 풀링층을 형성합니다.

최대 풀링으로 예를 들면 다음과 같습니다.

출력층

출력층은 풀링층의 모든 유닛과 연결된 완전연결층(fully-connected layer)을 형성합니다.

활성화함수를 a()라고 할 때, 가중입력과 출력은 다음과 같이 정의할 수 있습니다.


처음 배우는 딥러닝 수학
국내도서
저자 : 와쿠이 요시유키,와쿠이 사다미 / 박광수역
출판 : 한빛미디어 2018.02.01
상세보기

<처음 배우는 딥러닝 수학>을 읽으면서 개인적으로 정리한 내용입니다.

제가 잘못 이해했거나, 수정이 필요한 부분에 대한 피드백은 언제든지 환영입니다.

감사합니다 :)

728x90

댓글