본문 바로가기

【2】CNN_합성곱 신경망/Convolutional Neural Networks의 이해

(4)
선생님, Padding은 뭔가요?(2) - 스트라이드 (Stride) 스트라이드는 사전적으로 ‘보폭’이라는 의미를 갖는다. 마찬가지로 입력데이터에 필터를 적용할때를 생각해보자. 아래의 예제는 앞에서 계속 다루었던 (4,4)사이즈의 입력 데이터에 (3,3) 필터를 적용한 예이다. 여기에 우리가 배운 세임 패딩을 적용한다면 다음과 같이 나타낼 수 있다. 패딩을 적용한 입력 데이터에 합성곱 연산을 하면 아래의 그림처럼 진행 될 것이다. 그림에서 필터가 적용되는 보폭을 보자. 지금까지는 보았던 연산들이 그러하듯 왼쪽 위부터 오른쪽 방향으로 한칸씩 전진하며 합성곱 연산이 적용된다. 즉 앞에서 본 예시는 모두 스트라이드가 1이다. 만약 스트라이드가 3이라면 세칸씩 이동하면서 필터를 적용한다. 이를 그림으로 나타내면 다음과 같다. 스트라이드를 1에서 3으로 조정했더니 연산의 출력 데이..
선생님, Padding은 뭔가요? 밸리드 패딩 / 풀 패딩 / 세임 패딩 패딩(padding)의 사용은 앞에서 언급했듯이 출력 크기를 보정하기 위해 사용하며 ‘충전재’라는 의미처럼 입력 데이터의 사방을 특정 값으로 채우는 것을 말한다. 일반적으로 특정 값은 그냥 0을 사용하기에 제로패딩(zero padding)이라고도 한다. 아래의 사진은 (4,4)인 입력데이터에 폭이 1 pixel인 패딩을 적용하여 (6,6) 크기가 된 그림이다. 밸리드 패딩 (valid padding) 우리가 지금까지 다루었던 즉 패딩을 추가 하지 않은 형태는 엄밀히 말하면 밸리드 패딩(valid padding)을 적용했다고 한다. 이렇게 밸리드 패딩을 적용하고 필터를 통과시키면 그 결과는 항상 입력 사이즈보다 작게 된다. 밸리드 패딩은 합성곱 연산시 입력데이터의 모든 원소가 같은 비율로 사용되지 않는 문..
곱셈과 덧셈만 알면 정말 쉬운 ‘합성곱' 합성곱 연산은 CNN의 핵심원리라고 할 만큼 중요하다. 그런데, 합성곱은 곱셈과 덧셈만 이용하면 되는 매우 단순한 작업이다. 그림과 함께 보면 합성곱 연산을 쉽게 이해 할 수 있을 것이다. 아래의 그림을 보자. 먼저 합성곱 연산을 위해서는 재료가 되는 입력 데이터와 필터가 필요하다. 사이즈는 (높이, 너비)로 표현하며 필터는 주로 (3,3) 또는 (5,5) 와 같은 정방행렬을 사용한다. 미리 언급했듯이 CNN의 학습 대상은 필터의 값(weight)이므로 적절한 초기 값을 설정할 필요가 있다. 이때 우리가 1장에서 다루었던 초기화 방법들이 CNN의 필터 값을 초기화 할때에도 사용이 된다. 그럼 그림과 같은 예시가 주어졌을때 어떤 계산 방식으로 피처맵이 구해졌는지 아래의 그림을 보며 살펴보자. 그림에서 보다..
합성곱 신경망(CNN) / 고양이의 눈에서 답을 얻다. 합성곱 신경망(Convolutional Neural network,CNN)은 딥러닝의 역사에서 최초로 상당한 성과를 거둔 신경망이다. 오늘 날 합성곱 신경망은 일부 복잡한 이미지 처리 문제에서 사람을 능가하는 성과를 내고 있다. 이번 장에서는 CNN이 어떻게 등장했고 구성 요소와 동작 원리를 살펴본 후에 발전된 형태의 CNN 구조까지 알아보도록 하겠다. "고양이의 눈에서 답을 얻다." 1950년대 허블(Hubel)과 비셀(Wiesel)은 고양이의 시각 피질 실험에서 고양이 시야의 한 쪽에 자극을 주었더니 전체 뉴런이 아닌 특정 뉴런만이 활성화되는 것을 발견했다. 또한 물체의 형태와 방향에 따라서도 활성화되는 뉴런이 다르며 어떤 뉴런의 경우에는 저수준 뉴런의 출력을 조합한 복잡한 신호에만 반응한다는 것을 ..