합성곱 신경망 #Convolution Neural Network 2

풀링(Pooling) ft. Max & Average Pooling

합성곱 신경망에서 합성곱 연산과 활성화 함수 ReLU로 이루어진 합성곱층 다음에는 보통 풀링층이 존재한다. 풀링층은 각 특징맵에서 독립적으로 작동한다. 풀링은 특징 맵의 높이와 너비를 줄임으로써 특징 맵의 해상도를 낮추지만 분류에 필요한 맵의 특징은 유지시키는데 이를 다운 샘플링(Down-sampling)이라고 한다. 풀링층을 사용하는 이유 : 표현의 공간 크기를 점진적으로 줄여 네트워크의 매개변수 및 계산량을 줄이고 과적합을 제어할 수 있다. 최대 풀링(Max Pooling) 풀링에서 사용하는 일반적인 방법은 최대값을 추출하는 위와 같은 맥스 풀링이다. 필터와 겹치는 영역안에서 최대값만을 추출한다. 위의 예시는 2 x 2 의 필터로 4 x 4 의 크기를 가진 입력이미지에 스트라이드 = 2를 적용했을 때..

합성곱 신경망(Convolution Neural Network)

지난번에 다수의 필터를 사용한 합성곱 연산의 예시를 보았다. 사실 각 필터마다 나온 결과 특성맵이 쌓이기 전 각 특성맵들은 Relu 함수를 거친 다음에 합쳐진다. 즉 하나의 합성곱층은 합성곱의 연산으로만 이루어진 것이 아니라 Relu 함수인 활성화함수 이렇게 두가지로 이루어져있다. 합성곱 신경망의 한 계층(합성곱층)을 위의 예시로 구성해보자. 1). 입력 데이터를 필터와 합성곱 연산한다. (결과: 4 x 4) 2). 그 각각의 결과에 편향(+ b[실수])을 더해준다. 편향 ‘b’는 하나의 실수지만 파이썬의 브로드캐스팅을 통해서 4 x 4 행렬에 맞게 16 개의 요소에 동일한 수를 더해주어 행렬과의 계산이 가능하게 해준다. 4). 편향을 더 해준 그 값에 비선형성(활성화함수로 ReLU 사용)을 적용해준다...