본문 바로가기

TIL(2024y)/Deep learning

24.07.29 CNN 2

2024.07.16~07.22 프로젝트 

2024.07.23~07.26 코로나 ㄷㄷ 

 

CNN(Convolutional Neural Network)

  • 이미지 처리와 패턴 익식에 탁월한 성능을 보여주는 신경망
  • Image(픽셀로 이루어진 격자 형태의 데이터)의 공간적 특징을 추출하여 학습하고 패턴을 인식하는데 CNN을 사용 

 

  • 구성(Concolution/ Pooling/ Fully-connected layer=dense layer)
    1. 합성곱 층(Convolutional layer)
      • Convolution(합성곱)은 kernal과 이미지의 각 픽셀을 곱하여 합산하는 과정 
      • Convolutional layer는 CNN에서 이미지 처리와 패턴 인식을 위해 주로 사용되는 중요한 구성요소
      • Convolutional layer는 입력 이미지와 작은 크기의 필터(kernel)간의 합성곱 연산을 통해 새로운 특성의 맵(feature map)을 생성
        Convolutional layer 구조
      • 이를 통해 이미지의 지역적인(local) 패턴을 감지하고 추출함
      • 이미지의 특성을 반영하는 kernal은 출력값이 높고, 특성을 반영하지 않는 커널은 출력값이 낮음


      • Convolutional layer의 깊이가 깊어질 수록 복잡한 형태의 local feature도 처리할 수 있음
      • 합성곱 층은 보통 활성화 함수(activation function)을 사용하여 비선형을 도입함  
      • kernal의 크기와 보폭(stride)는 합성곱 층의 출력층의 크기를 조절하는 중요한 요소 
        1. kernal의 크기가 다를 때 feature map의 크기가 달라짐
          • 층이 깊어질 수록 feature map의 크기가 크면 detail 한 이미지 특성을 분석할 수 있으나
          • 너무 크면 연산이 복잡해짐
          • 따라서, 적절한 feature map의 크기를 찾는 것이 중요
        2. kernal의 보폭(stride)도 연산량에 중요한 영향을 줌
          • stride가 1일 경우 한칸씩, 2일 경우 두칸씩 움직이며 연산 
      • Padding은 image의 테두리를 확장해서 둘러싸는 것 (e.g. padding = 1, image의 테두리를 1픽셀 씩 둘러싸는 것 
      • Padding의 이유는 합성곱 연산의 output인 feature map의 크기를 조절하기 위함 
      • Padding이 없으면 합성곱 층을 통가할 때 마다 feature map의 공간적 차원(높이/너비)가 줄어드는데, padding을 사용하면 이러한 차원을 유지. 깊은 층을 설계할 때도 공간 정보를 잃지않게 됨  


    2. 풀링 층(Pooling layer)
      • 합성곱 층에서 추출된 feature map의 크기를 줄여주는 역할 
      • Pooling 층을 통해 공간적인 크기를 줄이고, 연산량을 줄이면서 중요한 특징을 보존 
      • 종류

        1. Max Pooling layer (최대 풀링 층)
          • 주어진 pooling 윈도우 내의 최대 값을 리턴
        2. Average Pooling layer (평균 풀링 층) 
          • 주어진 pooling 윈도우 내의 평균값을 리턴 
    3. 밀집층 
      • 추출된 feature들을 기반으로 최종 출력을 생성 
      • fully connected layer 전에 모든 local feature를 1차원으로 만들어주는 flatten 층을 배치
      • local feature는 국소적인 부분이기 때문에 최종 확률을 계산하기위해서는 반드시 전체를 고려해야
      • 구조

 

 

 

 

 

참고: 신박ai

 

 

 

 

 

 

 

'TIL(2024y) > Deep learning' 카테고리의 다른 글

24.07.31 pre-trained CNN  (0) 2024.07.31
24.07.30 CNN 3  (0) 2024.07.30
24.07.04-05 RNN  (0) 2024.07.08
24.07.08 Auto encoder  (0) 2024.07.08
24.07.03 CNN  (0) 2024.07.06