지난번에 다수의 필터를 사용한 합성곱 연산의 예시를 보았다. 사실 각 필터마다 나온 결과 특성맵이 쌓이기 전 각 특성맵들은 Relu 함수를 거친 다음에 합쳐진다. 즉 하나의 합성곱층은 합성곱의 연산으로만 이루어진 것이 아니라 Relu 함수인 활성화함수 이렇게 두가지로 이루어져있다.
합성곱 신경망의 한 계층(합성곱층)을 위의 예시로 구성해보자.
1). 입력 데이터를 필터와 합성곱 연산한다. (결과: 4 x 4)
2). 그 각각의 결과에 편향(+ b[실수])을 더해준다.
편향 ‘b’는 하나의 실수지만 파이썬의 브로드캐스팅을 통해서 4 x 4 행렬에 맞게 16 개의 요소에 동일한 수를 더해주어 행렬과의 계산이 가능하게 해준다.
4). 편향을 더 해준 그 값에 비선형성(활성화함수로 ReLU 사용)을 적용해준다. (결과: 4 x 4)
5). 각 필터의 (4)번에서 나온 결과를 쌓는다. (결과: 4 x 4 x 2)
➱ 이 6 x 6 x 3 에서 4 x 4 x 2 로 변환된 계산이 바로 합성곱 신경망의 한 층(one layer)이 된다.
위의 과정을 표준 신경망의 한 계층으로 연결시켜볼 수 있다. [숫자] : 숫자는 레이어의 층을 가리킨다.
ReLU 활성화 함수
합성곱 연산후에 사용되는 활성화 함수인 ReLU의 생김새는 위의 그래프와 같다. 비선형성 적용을 위해 사용되는 가장 일반적인 활성화 함수로 입력값에 음수가 있으면 음수 값을 0으로 설정하고 이외에 값은 모두 일정하게 유지시킨다.
합성곱 신경망
합성곱 신경망은 위와 같이 구성되어 있다. 입력이미지와 합성곱 연산과 ReLU 활성화 함수로 이루어진 여러개의 합성곱층, 이미지의 특징을 추출하기 위해 사용되는 필터(커널), 마지막 합성곱 층에서의 나온 결과(특징 맵) $n$ x $n$ x $n'_c$를 쭈욱 펼쳐서 $n * n * n'_c$ 개의 요소들로 이루어진 Flatten Layer, 우리가 아는 표준 신경망처럼 여러개의 은닉노드들로 구성된 완전 연결층(Fully Connected Layer, 줄여서 FC 층이라고 한다.), 마지막으로 해당 입력이미지가 몇 퍼센트의 확률로 각 클래스에 해당되는지 예측값이 적힌 출력층으로 구성된다.
참고로 일반적으로 하나의 합성곱층의 결과는 다음 합성곱층의 입력으로 들어가기전 풀링(Pooling)층을 거친다.
https://developersbreach.com/convolution-neural-network-deep-learning/
'인공지능 > Computer Vision' 카테고리의 다른 글
풀링(Pooling) ft. Max & Average Pooling (0) | 2023.05.16 |
---|---|
RGB 이미지의 합성곱 연산 (0) | 2023.05.15 |
패딩(Padding) (0) | 2023.05.15 |
합성곱 연산(Convolution operation) (1) | 2023.05.14 |
픽셀(Pixel)과 채널(Channel) (1) | 2023.05.13 |