순방향 신경망의 펼쳐진 1차원 벡터 형태에서는 모니터의 특징을 찾기가 쉽지않음(공간 데이터를 1차원으로 전환하면 형상 정보가 분산되기 때문에 패턴을 찾기 어려워짐)
이미지 내의 특정한 영역에 대해 원래의 이미지가 가지는 기하적 관계를 유지한채로 살펴보는 것이 필요
합성곱 신경망 :
컨벌루션 계층 : 컨벌루션 연산을 통해 이미지의 특정한 영역을 각각의 특징으로 변환
서브 샘플링 계층 : 플링 연산을 통해 이미지의 크기를 줄여 특징의 이동에 대한 위치 불변성 부여
합성곱신경망(CNN; Convolutional Neural Network – 합성곱 신경망은 이미지 처리에 탁월한 성능을 보이는 신경망이다. 다층 퍼셉트론은 이미지 처리에서 한계를 보인다. – 완전히 상호연결된(dense) DNN에서는 층이깊어질수록 학습효과가 감소하는경향이있으며,특히 이미지의 분류를 수행할 때 원래 데이터의 형상이 무시된다는 문제가있다. – 합성곱 신경망은 데이터가 가진 부분들의 특징들의 패턴을 학습하는 알고리즘으로 컴퓨터 비전 분야에서 많이 활용된다. – 대표적으로 이미지 분류(Image Classification), 객체 탐지(Object Detection), 스타일 전이(Style Transfer) 등이 있다. – 합성곱신경망은 합성곱(convolution)과 풀링(pooling)을 통해 이미지 데이터의 형상정보를 유지하면서 학습하여 이미지 인식 및 이미지 처리의 성능을 높인 신경망이다. (이미지의 어떤 영역에 어떠한 특징과 패턴이 있는지 파악)
합성곱 신경망의 구성
합성곱층(convolutional layer) -> 활성화 함수 적용 -> 풀링층(pooling layer)이 반복된 후에 완전히 상호 연결된 결합 은닉층이 추가된 형태가 되며, 최종적으로 출력층이 배치된다.
합성곱 연산은 기하학적 특징을 최적화하는 가중치를 학습하는 FEATURE LEARNING 층[(CONV)와 플링층(POOLIN) 반복]과, 분류를 위해서 하는 CLASSFICATION 하는 분류층으로 구성해야만 한다.
합성곱층 :
이미지 데이터의 특성을 추출하는 역할
합성곱 연산을 의미하는 CONV와 합성곱 연산의 결과는 활성화 함수 ReLU를 지나며 이 두 정을 합성곱층이라고함
플링층
합성곱층을 지나온 정보를 다시 POOL이라는 구간에서 풀링연산을 수행함
추출된 특성 정보를 축소하는 역할
출력층 직전의 은닉층 : 2차원 이상의 형상 특성 정보들을 1차원 형태로 변환/전개하는 역할을 수행함
합성곱 신경망의 구성(필터, 커널)
합성곱 연산(Convolution operation)
합성곱 연산이란 입력 이미지에 대하여 정방형 크기(3X3, 5X5)를 가지는 필터(또는 컬러)를 사용하여 가중치를 주고 입력 이미지에 대한 특성을 추출하는 방법이다.
합성곱 연산을 통해 추출된 이미지를 특성맵(feature map)이라고 하며, 이렇게 추출된 특성맵을 딥러닝 모델에 사용하면 훨씬 더 좋은 성능을 보인다.
필터 행렬을 이미지의 처음부터 끝까지 차례로 훑으면서 겹쳐지는 부분의 각 이미지와 커널의 원소의 값을 곱해서 모두 더한 값을 출력으로 한다.
합성곱층(convolution layer)
합성곱 연산(컨볼루션) : 현재 p5 위치의 픽셀 값을 필터가 적용된 이미지의 p로 바꾸는 연산. 수식과 같이 필터와 원본 이미지의 대응되는 값들을 서로 곱한 뒤에 모두 더하여 새로운 이미지의 픽셀값 p를 구하는 것
필터를 통해 이미지를 변형하는 것은 그림과 같은 방식을 사용
필터는 F로 표시된 작은 크기의 파란색 행렬이며, 이 영역을 원본 이미지에 덮었을 때 필터가 덮이는 영역을 표시하는 부분 행렬 R
합성곱 연산과 특성맵
하나의 필터만으로는 이미지의 특징을 다양하게 추출할 수 없음
그림과 같이 32개의 필터를 모델의 파라미터로 두고 학습한다고 가정했을 때, 이미지 하나에 대해 모두 32장의 특징 추출 결과를 얻으며 특성맵(feature map)이라 함
합성곱과 필터
이미지 처리 관점에서의 합성곱은 일종의 필터링(filtering) 또는 마스킹(masking) 기능이다.
다수의 채널을 가질 경우의 합성곱 연산
컬러 이미지는 하나의 채널이 아니라 다수의 채널로 구성된 이미지
그 외의 다양한 이유로 이미지를 표현할 때, 2차원 행렬 하나가 아니라 복수로 제공될 수 있으며 이런 다중채널(multi-channel) 이미지에 대해 합성곱 신경망 모델이 필터를 적용하는 방식은 그림과 같음
합성곱 신경망의 구성(스트라이드)
스트라이드는 입력 데이터에 필터가 적용될 때 필터가 이동하는 간격이다. 다시 말하면 미끄러지는 배열의 간격을 조절하는 것이다.
스트라이드 값이 클수록 출력의 공간적 크기가 작아지므로 일반적으로는 스트라이드를 1과 같이 작은 간격으로 지정한다.
필터의 적용횟수는 필터의 크기 자체보다는 스트라이드 값에 의해서 더 영향을 받게 된다.
사용자가 지정할 수 있다. 대부분 1일 때 성능이 가장 좋다
합성곱 신경망 수행시 문제점과 해결방안(패딩과 폴링)
패딩
패딩은 합성곱 수행을 할 때, 입력 데이터의 주변 픽셀을 특정 값으로 채워 늘리는 것이다. 즉 원본 배열의 양 끝에 빈 원소를 추가하는 것이다.
패딩을 하지 않으면 데이터의 공간적 크기가 층을 지날 때마다 점점 작아져서 가장자리의 정보가 소실된다.
패딩을 함으로써 현재 층의 입력 데이터의 공간적 크기가 유지된 상태로 출력을 다음 층으로 전달할 수 있다.
일반적으로 가장자리에 0을 채우는 제로 패딩이 주로 사용된다.
a. 밸리드 패딩
- 원본 배열에 패딩을 추가하지 않고 미끄러지는 배열이 원본 배열의 끝까지 갈 때까지 교차 상관을 수행
- 패딩의 결과로 얻는 배열의 크기는 항상 원본배열보다 작다
- 원본 배열의 각 원소가 연산에 참여하는 정도(횟수)가 다르다
b. 풀 패딩(full padding)
- 원본 배열의 모든 원소가 연산에 동일하게 참여할 수 있도록 원본 배열의 양 끝에 가상 원소를 추가
- 0을 추가하는 경우 제로 패딩이라고함
c. 세임 패딩(same padding)
- 출력 배열의 길이가 원본 배열의 길이가 같아지도록 원본 배열에 제로 패딩을 추가하는 것
- 합성곱 신경망의 경우, 대부분 **세임 패딩**을 사용함
풀링
풀링이란 특성 맵을 스캔하며 최댓값을 고르거나 평균값을 계산하는 것을 말한다
풀링 레이어는 추출된 특성 맵에 대해 다운 샘플링하여 이미지의 크기를 줄이는 레이어이다.
합성곱 층을 통과한 특성 맵에 대해 다운 샘플링하여 이미지의 크기를 줄이는 레이어이다.
합성곱 층을 통과한 특성맵이 풀링층을 통과하면 또 다른 특성 맵이 만들어진다.
이미지 축소를 통해 연산량을 감소한다는 점과 과대적합을 방지할 수 있다.
최대 풀링, 평균 풀링, 최소 풀링이 있으며 일반적으로는 최대 풀링을 사용한다.
또한, 풀링 적용 크기는 스트라이드 값과 동일하게 설정한다.(예를 들어 스트라이드가 2이면 풀링은 2 X 2 이다.
최대 풀링 픽셀의 값을 일부 변경하여도 최대값 풀링의 결과는 잘 바뀌지 않음
이동 불변성이라하며, 이동 불변성을 가진 모델을 강건한(ROBUST) 모델이라고 함
사이즈는 줄어도 필터의 장 수는 변하지 않는다.특징을 추출하는 파트 / 클래스 분류를 학습하는 내용