티스토리 뷰

▶딥러닝 CNN 알아보기

⊙ CNN(Convolutional Neural Network)

합성곱 인공 신경망이라고 불리는CNN은 전통적인 뉴럴 네트워크 앞에 컨볼루셔널 계층을 붙인 형태입니다.

컨볼루셔널 계층을 통해서 입력 받은 이미지에 대한 특징(Feature)를 추출하게 되고, 추출한 특징을 기반으로 기존의 뉴럴 네트워크에 이용하여 분류합니다.

 

⊙ Convolutional Layer

컨볼루셔널 레이어는 입력 데이터로부터 특징을 추출하는 역할을 합니다.

특징을 추출하는 필터(Filter)를 사용하게 되는데, 이때 필터의 값을 비선형 값으로 바꿔주는 액티베이션(activation) 함수를 사용합니다.

 

Filter

필터는 특징이 데이터에 있는지 없는지 검출하는 함수입니다.

필터는 구현할 때 행렬로 정의하게 되며 입력 받은 이미지 모두 행렬로 변환하여 사용합니다.

입력 받은 데이터에서 그 특징을 가지고 있으면 결과값이 큰값이 나오며, 특징을 가지고 있지 않으면 0에 가까운 값이 반환됩니다.

참고로 필터를 적용해서 얻어낸 결과를 Feature map 또는 activation map 이라고 부릅니다.

 

Padding

CNN 네트워크 특징 중 여러 단계에 걸쳐서 계속 필터를 연속적으로 적용하는데 필터 적용 후 결과값이 작아지게 되면 처음에 비해 특징이 유실될 수 있기 때문에 padding 기법을 사용합니다.

입력값 주위로 0값을 넣어서 입력값의 크기를 인위적으로 키워 결과값이 작아지는 것을 방지하는 방법입니다.

원본 데이터에 0값을 넣어서 원래의 특징을 희석시키고 이것을 기반으로 머신러닝 모델이 과적합되는 것을 방지하는 효과도 있습니다.

 

Stride

스트라이드는 필터를 적용하는 간격을 의미합니다.

 

Pooling

풀링은 Feature map의 사이즈를 줄이는 방법입니다.

풀링 기법 중 max pooling을 가장 많이 사용합니다.

 

Fully Connected Layer(FC Layer)

FC(Fully Connected Layer)는 완전히 연결 되었다라는 뜻으로, 한층의 모든 뉴런이 다음층의 모든 뉴런과 연결된 상태로 2차원의 배열 형태 이미지를 1차원의 평탄화 작업을 통해 이미지를 분류하는데 사용되는 계층입니다.

CNN의 레이어는 크게 두 가지로 구분할 수 있습니다.

 

  1. Convolutiona/Pooling 매커니즘은 이지를 형상으로 분할하고 분석
  2. FC(Fully Connected Layer)로 이미지를 분류/설명하는 데 가장 적합하게 예측

FC layer의 목적은 Convolution/Pooling 프로세스의 결과를 취하여 이미지를 정의된 라벨로 분류하는 데 사용하는 것입니다.

Fully Connected Layer는 다음과 같습니다.

 

  1. 2차원 배열 형태의 이미지를 1차원 배열로 평탄화
  2. 활성화 함수(ReLU, Leaky ReLU, Tanh 등) 뉴런을 활성화
  3. 분류기(Softmax) 함수로 분류

 

Dropout Layer

과적합을 막기 위한 방법으로 뉴럴 네트워크가 학습중일 때 랜덤하게 값을 방생하여 학습을 방해함으로 학습용 데이터에 결과가 치우치는 것을 방지합니다.

 


여기까지 CNN에 대해 알아보았습니다 :)

다음 글에서는 직접 CNN 모델을 구현해 봅시다.

728x90
LIST
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
글 보관함