통계/ISLP

[ISLP Chapter 10] CNN

notty 2024. 5. 1. 10:25
728x90

CNN(Convolutional Neural Network) : 인간이 이미지를 보고 특징을 파악하여 분류하는 시신경 시스템을 모방하였다.

예시) 이미지를 보고 호랑이라고 분류하기

주어진 이미지의 세부(하위) 특징을 파악 -> 다른 특징과 결합하여 상위 특징을 형성 ->  출력 노드에서 호랑이일 확률을 확인하여 분류

 

그래서 어떻게 특징을 추출하냐..?

: convolution, pooling layer로 특징을 추출한다. Convolution layer는 특징을 추출하는 레이어이고 Pooling layer은 추출된 특징을 down sizing하여 더 압축시킨다.

 

Convolution layer

원본 이미지에 convolution filter를 곱하여 convolved image를 만든다(stride를 고려, 위의 예시에서는 stride = 1)

 

** convolution filter : 특정 특성을 추출할 수 있는 값을 가진 필터

** padding : 정보의 손실을 줄이기 위해 가장자리에 덧덴다. same padding을 사용하면 입력차원과 conv layer 후의 이미지 크기가 같다. 

 ** stride : 필터가 입력 데이터를 탐색하는 간격을 결정하는 매개변수이며 stride가 클수록 결과 이미지의 사이즈가 작아짐

 

예시) 원본에 conv filter적용

원본 사진에 필터를 적용하여 특징을 추출한다. 예시에서는 세로 성분을 포착하는 필터와 가로 성분을 포착하는 필터를 사용하여 특징을 추출하였다. 어떤 특징을 추출할지는 필터의 값에 따라서 변화한다.

 

* 컬러 이미지는 3차원 -> 각각의 채널에 대해 conv filter 적용 후 합을 계산한다

 

Pooling layer

conv filter를 거친 후 특징정보를 가지는 convolved image에서 downsized 특징을 구한다.

 

pooling의 종류

  • max pooling : 해당 구역의 가장 큰 픽셀값으로 선택
  • min pooling : 해당 구역의 가장 작은 픽셀값으로 선택
  • average pooling : 해당 구역 픽셀값의 평균으로 선택

CNN단계 정리

  • input shape = (32,32,3) # 컬러 이미지 -> 3개의 채널 존재(R,G,B)
  • convolution filter적용시 이전과 이미지의 크기는 변화하지 않지만 channel의 수는 달라짐
  • pooling filter 적용시 이전과 이미지의 크기가 줄어들지만 channel의 수는 pooling 적용 던과 같음
  • 순서
    1. conv+pooling
      •  컬러 입력 이미지에 대해 6개의 conv filter를 사용하였다(컬러이미지의 경우 하나의convfilter를 r,g,b에 적용 후 합한다).
      • pooling 을 적용하여 down sizing 
    2. flatten
      • n차원 정보를 flatten하여 1차원으로 변환 fully connected layer를 통과시켜 입력의 중요 정보를 파악한다.
      • 공간정보가 일부 손실될 수 있으나, 기존 cnn을 거치치 않고 원본 flatten하는 방법 보다 공간정보를 효율적으로 포함하고 있다. 
    3. output
      • softmax를 사용하여 출력 노드의 수를 class의 수로 지정하고 확률에 따라 해당 클래스로 할당
728x90
반응형