티스토리 뷰

이번에는 저번 포스트 https://up-one-coding.tistory.com/12에 이어 합성곱 신경망의 다른 계층과 관련 용어에 대해 포스트 하겠습니다. 합성곱 신경망은 Feature Map을 생성하는 Convolution layer(합성곱 계층) 외에도 풀링 계층(Pooling layer)Fully Connected layer, Softmax layer로 구성되어 있습니다.

cnn 전체 구조

 

먼저 Pooling layer은 Feature Map의 공간적 크기를 줄이는 연산을 진행합니다. 합성곱 연산의 결과를 저장하는 Feature Map을 특정 조건을 토대로 일정 영역의 정보를 축약하는 것입니다. 그 종류로 일정 영역의 최댓값을 취하는 MaxPooling, 일정 영역의 평균값을 취하는 AveragePooling이 있습니다. Pooling layer을 통해 신경망에서 파라미터의 수를 줄이고, 순전파의 계산을 줄일 수 있습니다. Pooling layer에서는 Convolution layer와 같이 일정 영역을 정하는 것은 크기와 Stride값을 정해 진행할 수 있습니다.

Feature Map
MaxPooling 연산 결과

 

Feature Map을 생성하기 전 Input Image의 공간적 크기를 늘리는 연산도 존재하는데 그것이 Padding입니다. Input Image와 Filter을 통한 합성곱 연산 전에 Input Image의 가장자리 픽셀에 0을 추가하는 것이 Padding입니다. Padding은 가장자리에 있는 픽셀은 Convolution 연산이 적게 수행되는 문제를 해결하여 합성곱 연산의 편향성을 줄여주는 역할을 합니다. 예를 들어 폭 1짜리 Padding을 적용하면 Input Image의 사방에 1픽셀을 특정 값으로 채우는 것입니다. 예를 들어 가장자리의 픽셀값을 0으로 채우는 것을 Zero padding라고 합니다.

Zero Padding

 

Convolution layer와 Pooling layer은 이미지 데이터의 특징을 추출하고 패턴을 학습하는 역할을 한다면 Fully Connected layer은 학습한 패턴으로 이미지 데이터를 분류하는 역할을 합니다. Fully Connected layer은 2차원 배열 형태인 Feature Map을 1차원으로 평탄화시키는 연산을 진행합니다.

Fully Connected layer 도식화

 

마지막 합성곱 신경망의 계층인 Softmax layer은 신경망의 결과를 이미지 데이터의 라벨에 맞게 매핑시키는 연산을 진행합니다. Convolution layer, Pooling layer, Fully Connected layer를 걸쳐 산출된 신경망의 결과는 확률값입니다. Softmax 연산은 확률값을 0에서 1 사이의 값으로 정규화하고 가까운 값으로 라벨링 하는 연산을 진행합니다.

 

합성곱 신경망의 각 계층에서 가장 중요한 것은 비선형 함수인 Activation 함수를 이용해 각 계층을 연결시키는 것입니다. 많은 층으로 연결되어져 있는 신경망에서 선형 함수를 사용해 연결하거나 아예 연결하지 않는다면 하나의 layer로 신경 다발이 끊기는 문제가 발생합니다. 이전 신경망의 연산 결과가 다음 신경망으로 전달되지 못하는 것입니다. Activation 함수의 중요한 점은 모든 구간에서 미분 가능한 함수를 이용하는 것입니다.

 

첫 번째 Activation 함수인 Sigmoid 함수는 일정 값이 넘어가면 미분이 불가능한 구간이 발생하여 Gradient Vanishing이 발생합니다.

Sigmoid 함수

 

이를 방지하기 위해 나온 Relu 함수는 값이 양수이면 그 값을 사용하고 음수이면 0으로 바꿔주는 연산을 진행합니다. 하지만 이 역시 값이 음수인 경우 미분이 불가능한 문제가 존재합니다.

Relu 함수

 

마지막으로 값이 음수여도 미분이 가능하도록 해주는 ELU 함수가 있습니다. 값이 음수이면 가중치와 지수 변환을 통해 값을 변화시켜 Gradient Vanishing 문제를 해결한 함수입니다.

ELU 함수

'딥러닝' 카테고리의 다른 글

오차역전파법(Backpropagation)  (2) 2024.07.16
적대적 생성 신경망(GAN)  (0) 2024.07.11
RNN (Recurrent Neural Network)  (0) 2024.07.08
[3] LSTM(Long Short-Term Memory)  (0) 2024.06.27
[1] 합성곱 신경망 (CNN) PART 1  (0) 2024.06.23
TAG more
글 보관함
최근에 올라온 글