검수요청.png검수요청.png

"합성곱 신경망"의 두 판 사이의 차이

해시넷
이동: 둘러보기, 검색
(합성곱 연산)
46번째 줄: 46번째 줄:
 
[[파일:합성곱연산2.PNG|500픽셀|섬네일|가운데|합성곱연산 특징]]  
 
[[파일:합성곱연산2.PNG|500픽셀|섬네일|가운데|합성곱연산 특징]]  
  
완전연결 신경망에는 가중치 매개 변수와 편향이 있다. 마찬가지로 합성곱 신경망에는 필터의 매개변수가 완전연결 신경망의 가중치에 해당한다. 즉, 합성곱 신경망을 통해 학습이 거듭되면서 필터의 원소 값이 매번 경신되는 것이다. 편향 역시 합성곱 신경망에도 있지만 이 편향은 필터를 적용한 후 데이터가 더해진다. 이 편향은 언제나 하나만 존재한다.  
+
완전연결 신경망에는 가중치 매개 변수와 편향이 있다. 마찬가지로 합성곱 신경망에는 필터의 매개변수가 완전연결 신경망의 가중치에 해당한다. 즉, 합성곱 신경망을 통해 학습이 거듭되면서 필터의 원소 값이 매번 경신되는 것이다. 편향 역시 합성곱 신경망에도 있지만 이 편향은 필터를 적용한 후 데이터가 더해진다. 이 편향은 언제나 하나만 존재한다. 합성곱 신경망을 실제로 구현할 때는 합성곱을 통해 생성된 행렬 형태의 이미지에  [[비아스]](bias)라는 [[스칼라]] 값을 동일하게 더하도록 구현하기도 한다. 또한 이미지에 대해 필터를 적용할 때는 필터의 이동량을 뜻하는 스트라이드(stride)를 설정해야 한다. 스프라이드는 필터를 적용하는 위치의 간격이기도 하다, 스트라이드가 커지면 출력 크기가 작아지는 등 스트라이드 값에 따라 출력 이미지 크기가 달라진다.
 +
 
 +
 
 +
 
 +
 
  
 
{{각주}}
 
{{각주}}

2019년 9월 20일 (금) 10:29 판

합성곱 신경망(CNN)

합성곱 신경망(Convolutional Neural Network, CNN)은 합성곱(Convolution , 하나의 함수와 또 다른 함수를 반전 이동한 값을 곱한 다음, 구간에 대해 적분하여 새로운 함수를 구하는 연산자) 연산을 사용하는 인공신경망(Artificial Neural Network, ANN) 중의 하나이다. 또한 컨볼루션 신경망이라고도 부른다. 합성곱을 사용하면 3차원 데이터의 공간적인 정보를 유지한 채 다음 레이어로 보낼 수 있다. 대표적인 합성곱 신경망으로는 LeNet(1998)과 AlexNet(2012)가 있으며, VGG, GoodLeNet, ResNet 등은 더 깊은 층을 쌓은 합성곱 신경만 기반의 심층신경망(Depp Neural Network, DNN)이다.[1]

개요

합성곱 신경망(Convolutional neural network, CNN)은 컴퓨터 과학의 일종으로 시각적 이미지를 분석하는 데 쓰이는 인공 신경망의 한 종류이다.[2] 합성곱 신경망은 특히 음성 인식이나 사물 이미지 인식에서 주료 사용한다. 이 신경망은 다차원 배열 데이터를 처리가 가능하다. 따라서 컬러 이미지와 같은 다차원 배열 처리에 특화 되어 있다. 또한 일반적인 신경망은 이미지 데이터를 그대로 처리하는 데 반해 합성곱 신경망은 이미지에서 특징을 추출해 처리한다.[3] 그렇기 때문에 이미지 인식 분야에서 딥러닝을 활용한 기법은 대부분 합성곱 신경망을 기초로 만들어졌다. [4]

필터의 종류와 기능

또한 합성곱 신경망은 필터링 기법을 인공 신경망에 적용하여 이미지를 더욱 효과적으로 처리하기 위해 컨볼루션 네트워크 논문](LeCun , 1989)에서 처음 소개 되었다. 시간이 지나 '사물 인식에 적용하는 그라디언트 기반 학습'(LeCun et al., 1998) 논문에서 현재 딥 러닝에서 이용되고 있는 형태의 합성곱 신경망을 제안했다. 기존의 필터링 기법은 옆에 첨부한 그림과 같이 고정된 필터를 이용하여 이미지를 처리했다. 그러나 합성곱 신경망의 기본 개념은 "행렬로 표현된 필터의 각 요소가 데이터 처리에 적합하도록 자동으로 학습되게 하자"는 것이다. 예를 들어, 이미지를 분류 알고리즘을 개발하고자 할 때 필터링 기법을 이용하면 분류 정확도를 향상시킬 수 있다. 그러나 이 경우 한 가지 문제점은 사람의 직관이나 반복적인 실험을 통해 알고리즘에 이용될 필터를 결정해야 한다는 것이다. 이러한 상황에서 합성곱 신경망을 이용하면, 알고리즘은 이미지 분류 정확도를 최대화하는 필터를 자동적으로 학습할 수 있다.[5]

기원

합성곱 신경망의 기본

1958년에서 1959년, 데이비드 H. 허벨(David H. Hubel)과 토스텐 위젤(Torsten Wiesel)은 시각 피질의 구조에 대한 결정적인 힌트를 얻은 고양이 실험을 진행했다. 이들은 이 실험을 통해 시각 피질 안에 있는 수 많은 뉴련이 작은 국부 수용 영역(local receptive field)을 갖고 있다는 것을 화긴했다. 이는 뉴런이 시야에 들어온 일부 범위 안에 들어온 시각 자극에만 반응한다는 뜻이다. 뉴련의 수용 영역은 서로 겹칠 수 있으며, 이렇게 서로 겹친 수용 영역이 어루어져 전체 시야가 이루어진다. 또한 어떤 뉴런은 수직선의 이미지에만 반응하고, 어떤 뉴런은 특정 각도의 선에만 반응하는 반면에 어떤 뉴런은 넓은 수용 영역을 가진 데 반해 저수준의 패턴이 합친 복잡한 패턴(글귀 사물 등)에 반응한다는 것이 밝혀졌다.

이러한 관찰을 통해 허벨과 위젤은 높은 수준을 갖춘 뉴런이 바로 옆에 있는 낮은 수준을 가진 뉴런의 출력에 기반한다는 아이디어를 고안했다. 이 아이디어가 바로 지금의 합성곱 신경망으로 발전해 온 것이다. 이후 1998년에 발표 된 '사물 인식에 적용하는 그라디언트 기반 학습'(LeCun et al., 1998) 논문에서 손글씨 숫자를 인식하는 데 사용한 LenNet-5를 소개하면서 합성곱 신경망이 이 세상에 등장하게 되었다.[6]

특징

합성공 신경망의 구조

기존 신경망 구조

첨부된 그림과 같이 기존 신경망은 서로 인접해 있는 계층의 모든 뉴련이 결합 되어 있는 완전연결(fully-connected) 상태로, 아핀(Affine) 계층으로 구성되어 있다. 이처럼 기존 신경망은 아핀으로 명시된 완전연결 연산과 ReLU(Rectified Linear Unit, ReLU) 함수와 같은 비선형 활성 함수의 결합으로 이루어진 계층을 여러 개 쌓은 구조이다.

기존 신경망 구조

합성곱 신경망은 기존 신경망에 합성곱 계층(Conv)와 풀링 계층(Pooling, 풀링 계층은 생략할 수 있다)을 완전연결한 계층 이전에 추가하여 원본 이미지에 필터링 기법을 적용한다. 이어 해당 이미지에 분류 연산을 수행하도록 구성한다. 그러면 합성곱 계층은 이미지에 필터링 기법을 적용하고, 풀링 계층은 각 이미지의 국소적인 부분을 하나의 대표적인 스칼라 값으로 변환하여 이미지 크기를 줄이는 등 다양한 기능을 수행한다. 합성곱 신경망의 또 다른 특징은 합성곱 계층과 풀링 계층을 추가해도 출력과 가까운 층에는 계속해서 사용한 'Affine-ReLU' 계층 구성을 사용할 수 있다는 것이다. 또한 마지막 계층에서는 'Affine-Softmax' 조합을 그대로 사용한다. 이것이 일반적인 합성곱 신경망의 구성이다.

합성곱 계층

완전 연결 계층

여기서 말하는 완전 연결 신경망이란 서로 인접해 있는 계층의 모든 뉴런이 결합 되어 있는 신경망이란 뜻이다. 또한 이는 입력 데이터와 가중치가 1 대 1로 대응한 상태를 완전 연결이라고 말한다. 이는 행력의 내적(Affine)으로 표현 된다. 이 완전 계층의 문제점은 바로 데이터의 형상을 무시한다는 것이다. 입력 데이터가 다차원일 때, 완전 연결 계층에 입력하기 위해서는 이 다차원 데이터를 다차원으로 평탄하게 만든 다음 입력해야 하다. 즉, 이 계층을 이용해 MNIST 데이터셋을 분류하는 모델을 만들 경우, 3차원(세로, 가로, 채널)인 MNIST 데이터(28, 28, 1)를 입력층(input layer)에 넣어주기 위해서 3차원 에서 1차원의 평평한(flat) 데이터로 펼쳐줘서 넣어야만 했다. 다시 말해서 28, 28, 1이라는 3차원 데이터를 ​28×28×1=784 라는 1차원 데이터로 바꾼 다음 입력층에 그대로 적어 넣어야만 한다. 또한 이 계층의 단점인 '데이터 형상'의 무시를 이미지로 표현하면 다음과 같다.

완전연결계층의 단점

위 그림에서도 알 수 있듯이 완전 연결 계층은 공간적으로 가까운 픽셀은 값이 비슷하거나 RGB의 각 채널은 서로 밀접하게 관련되거나 거리가 먼 픽셀끼리는 별 연관이 업성지는 등, 3차원 속 의미를 갖는 본질적인 패턴을 무시한다. 즉, 가장 흔한 다차원 데이터인 이미지를 생각해보면, 한 이미지는 2차원 픽셀 배열에 RGB 채널이 더해져 3차원을 이룬다, RGB의 각 채널들은 서로 밀접하게 연결 되어 있고, 픽셀 간의 거리에 따라서 연결 되어 있는 등 3차원 속에서 의미를 갖는 패턴을 갖고 있다. 그러나 완전 연결 계층은 형상을 무시하고 모든 입력 데이터를 동일 차원으로 취급하기에 형상에 담긴 정보를 살릴 수 없다. 3차원인 이미지를 1차원 데이터로 변형하면서 어떻게 '공간적 정보'를 잃게 되는 지 다음의 그림에서 확인할 수 있다.

완전연결계층의 단점

합성곱 연산

합성곱 계층은 합성곱 신경망에서 가장 중요한 구성요고이자, 완전연결 계층과는 다르게 데이터의 형상을 유지한다. 즉, 이미지와 같은 3차원 데이터를 입력하면 그 다음 계층에도 3차원 데이터로 전달한다. 따라서 합성곱 신경망은 이미지처럼 형상을 가진 데이터를 제대로 이해할 수 있다. 그렇기 때문에 합성공 신경망은 이미지 데이터처럼 형상을 갖고 있느 데이터를 제대로 학습할 수 있다고 볼 수 있다. 합성곱 신경망에서 합성곱 계층의 입출력 데이터는 다차원이라 이것을 특징 맵(Feature Map)이라고 한다. 또한 입력 데이트를 입력 특징 맵, 출력 데이터를 출력 특징 맵이라고 한다. 여기서 말하는 합성곱이란 특정 높이나 너비를 갖고 있는 필터(Filter, Kernel)를 일정 간격(Stride)으로 이동해가며 입력 데이터에 적용하는 것을 뜻한다. 합성곱 계층의 뉴런은 입력 이미지가 모든 픽셀에 연결 되는 것이 아니라 합성곱 계층 뉴런의 수용 영역 안에 있는 픽셀에만 연결 되기 때문에, 낮은 합성곱 계층에서는 저수준 특성에 집중하고, 그 다음으로 올라갈 수록 합성곱 계층은 고수준 특성으로 만들어가도록 한다.

합성곱연산 특징

합성곱 계층에서는 위 그림과 같은 합성곱 연산을 수행한다. 이 연산은 이미지 처리에서 말하는 필터(마스크) 연산에 해당한다. 위 그림과 같이 2차원의 입력 데이터가 들어오면 필터(커널)의 윈도우를 일정 간격으로 이동해 가며 데이터에 적용한다. 그 후, 입력과 필터에서 대응하는 원소끼리 곱한 후 그 총합을 구한 뒤 그 결과가 출력 되낟. 이 과젇을 모든 장소에서 수행하면 합성곱 연산의 출력이 완성 된다. 하나의 합성곱 계층에는 입력하는 이미지의 채널 개수 만큼의 필터가 조냊하며, 각 채널에 할당 된 필터를 적용함으로 합공 계층의 출력 이미지가 생성 된다. 예를 들어, 높이×너비×채널이 4×4×1인 텐서 형태의 입력 이미지에 대해 3×3 크기의 필터를 적용하는 합성곱 계층에서는 이미지와 필터에 대한 합성곱 연산을 통해 2×2×1 텐서 형태의 이미지가 생성된다.

합성곱연산 특징

완전연결 신경망에는 가중치 매개 변수와 편향이 있다. 마찬가지로 합성곱 신경망에는 필터의 매개변수가 완전연결 신경망의 가중치에 해당한다. 즉, 합성곱 신경망을 통해 학습이 거듭되면서 필터의 원소 값이 매번 경신되는 것이다. 편향 역시 합성곱 신경망에도 있지만 이 편향은 필터를 적용한 후 데이터가 더해진다. 이 편향은 언제나 하나만 존재한다. 합성곱 신경망을 실제로 구현할 때는 합성곱을 통해 생성된 행렬 형태의 이미지에 비아스(bias)라는 스칼라 값을 동일하게 더하도록 구현하기도 한다. 또한 이미지에 대해 필터를 적용할 때는 필터의 이동량을 뜻하는 스트라이드(stride)를 설정해야 한다. 스프라이드는 필터를 적용하는 위치의 간격이기도 하다, 스트라이드가 커지면 출력 크기가 작아지는 등 스트라이드 값에 따라 출력 이미지 크기가 달라진다.



각주

  1. 박희경,〈밑바닥부터 시작하는 딥러닝 Chapter7. 합성공 신경망(CNN)〉, 《모두의 연구소 DeepLap》
  2. 합성공 신경망〉, 《위키백과》
  3. 김콜리, 〈#6-(1) 합성곱 신경망(CNN) : 소개 및 구조〉, 《'브콜리의 집' 티스토리 블로그》, 2018-03-16
  4. 합성곱신경망 CNN (Convolutional Neural Network)]〉, 《'Practical Understanding of Data& Dex' 티스토리 블로그》, 2017-06-02
  5. 불, 〈[머신 러닝/딥 러닝 합성곱 신경망 (Convolutional Neural Network, CNN)과 학습 알고리즘]]〉, 《'Untitled' 티스토리 블로그》, 2019-02-16
  6. Excelsior-JH,〈06. 합성곱 신경망 - Convolutional Neural Networks]〉, 《'EXCELSIOR' 티스토리 블로그》, 2018-10-19

동영상

참고자료

같이 보기


  검수요청.png검수요청.png 이 합성곱 신경망 문서는 알고리즘에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.