Ⅱ. 배경과 관련 연구
2. 딥러닝과 합성곱 신경망
2.2. 합성곱 신경망 (Convolution Neural Network, CNN)
영상패턴 분류를 위한 기존의 인공신경망은 주어진 영상으로부터 분류에 필요 한 특징을 사람이 수작업으로 데이터 전처리 및 가공을 통해 사전에 추출한 후, 이 특징을 입력으로 하여 분류기만을 기계 학습한다. 따라서 학습데이터가 방대 할 경우, 효과적으로 패턴인식 시스템을 설계하는 것이 매우 어려운 일이다. 합 성곱 신경망은 이런 문제점을 해결하기 위해 특징추출과 인식을 통합하여 신경 망이 모두 처리하도록 한 형태를 가진다 (Fig. 2.4). 합성곱 신경망은 입력 영상 을 그대로 입력층에 제공함으로써 별도의 특징추출 과정이 필요하지 않으며, 특 징추출 작업도 학습으로 해결한다 [18, 19].
Fig. 2.4 합성곱 신경망과 고전적 신경망의 비교
Fig. 2.5에서 합성곱 신경망의 구조를 보여준다. 그림에서 보듯이 합성곱 신경 망은 특징추출을 목적으로 하는 다수의 합성곱 층과, 합성곱 층으로부터 추출한 특징을 인식하는 1개의 인식 층 (3층 구조의 MLP)로 구성된다. 개개의 합성곱 층은 입력 영상에 대한 특징추출을 위한 필터연산을 수행하는 단층 신경망과 필 터연산 결과의 크기를 재조정(Subsampling)하는 단층 신경망으로 구성된다. 1개 의 인식 층은 완전연결 층(Full connection) 구조를 가지는 다층 신경망의 구조 를 가진다. 그림에서 보듯이 입력된 영상은 복수의 합성곱 층에 의해서 다양한 형태의 특징으로 변환되며 최종 변환과정을 거친 특징은 완전연결 인식 층에 전 달되어 인식작업에 사용된다. 전체 합성곱 신경망의 학습에는 오류 역전파 알고 리즘이 사용되며, 출력층에서 합성곱 층까지 오류를 역전파 하는 방식으로 학습 을 한다.
Fig. 2.5 합성곱 신경망 구조
통한 자동화된 특징추출을 하는 것이다. 합성곱 층의 각 노드는 입력에 대해서 학습을 통하여 최적의 특징을 추출한다. 합성곱 연산은 영상처리에서의 필터를 이용한 방법을 사용하는 것과 같은 원리이다. 합성곱 연산에서 필터로 표현된 가 중치 값의 행렬을 커널 또는 마스크라고도 하며 일반적으로 높이와 너비가 같은 정사각형 (Square)의 형태를 가진다 (Fig. 2.6). 합성곱의 결과로 얻어지는 결과 를 특징 맵(Feature Map)이라 하며 여러 단계의 합성곱을 거친 최종단계의 특 징 맵이 인식 층의 입력이 된다. 필터는 입력 영상을 왼쪽에서 오른쪽으로 이동 하면서 해당 영역 내의 영상 부분과 합성곱 연산을 수행하는데, 이동 정도는 스 트라이드 값으로 조정이 가능하며, 스트라이드 s의 크기는 합성곱 결과의 크기를 조절하기 위해서 사용한다. 만약 입력 영상과 필터의 크기가 각각 × ,
× 이고 패팅 값 (Padding, 입력 영상의 확장 지수)과 스트라이드 값이 각각 p, s이면 필터 처리된 합성곱 결과 크기는 식(2)과 같이 결정된다.
(2)
합성곱 연산 결과는 일반적으로 풀링 (Pooling) 층에서 샘플링을 통하여 크기 가 조절된다. 풀링이란 일정크기의 대상 영역을 통합해서 한 개의 대푯값으로 표 시하는 연산이다. 풀링은 매번 합성곱 연산이 수행된 후 반복되어 실행된다. 그 리고 풀링 연산은 합성곱 결과에 대해 위치 불변성을 제공하고 데이터양을 축소 해 계산의 효율성을 높일 수 있는 장점을 제공한다 [19].
Fig. 2.6 필터를 통한 합성곱 연산
합성곱 신경망에서는 기존의 인공신경망에서 나타나는 3가지의 문제점인 기울 (Optimization) 알고리즘을 사용한다. 확률적 경사 하강법(Stochastic Gradient Descent, SGD)은 손실함수의 기울기를 계산하여서 이 기울기 값에 학습률
Optimization)이다. 이 방법은 현재시간
그 밖에도 적응 경사법 (Adaptive Gradient, Adagrad), RMSprop (Root Mean Squared propagation), Adam(Adaptive Momentum Estimation)과 같은 다양한 최적화 기법을 이용하여 기존 신경망의 문제점을 해결한다 [20, 21].