본문 바로가기

AI

CNN (Convolutional Neural Network)

CNN

1) CNN의 활용

  • Object Detection (사물인지) : 자율주행에서 필수적
  • Motion Classification : RNN 등 활용

2) CNN History

  • LeNet(1998): CNN구조를 최초로 개발한 얀 르쿤이 설계한 네트워크
  • AlexNet(2012): ImageNet 영상 데이터 베이스 기반으로 화상인식 대회에서 우승
  • VGG(2014): ImageNet 이미지 인식 구조 대회에서 우승한 모델

VGG .. 필터의 채널 == **feature map의 채널 수**(코드 작성 시 잘 알아두고 설계필요)

- CNN사용 후 FCN을 사용해 추출한 특징들을 1차원으로 배열한다. 1 x 1 x 4096부터..
  • ResNet(2015)
  • DenseNet(2016)

3) Convolutional Layer

  • 이미지가 컬러일 경우 AxBxC일 때, C = 3이다. 이 3이 필터에 필수적으로 적용되어야함. 필터는 F x F x 3으로 사용되어야한다.
  • 만약, 필터를 한번 적용한 feature map의 채널 수가 6일 경우 6개의 속성을 사용해 convolution단계가 진행된 것임.
  • 또한, feature map으로 나타난 채널 수가 6일 경우 다음 filter의 채널 수는 6이어야한다.
  • Convolution layer 단계에서는 filter 적용 시 pad와 stride가 존재.
  • pad는 다음 feature map이 그 전 feature map과 같은 사이즈로 존재하기 위해 더해지는 여백.
    ex. 3x3, stride=1이면padding=1.. 5x5,stride=1이면 padding=2
  • stride는 필터를 적용하는 간격이다.
    $$ (N-F)/Stride+1 $$
  • 사이즈는 줄일 수 있긴 하지만 거의 max pooling 사용해 줄인다. 반으로 줄이려면 stride=2사용.
  • filter의 개수를 늘려서 특징을 더 많이 추출하여 이미지 정보가 손실되고 특징으로 압축되는 역할
  • 필터의 개수는 바로 전 feature map의 채널 수와 같아야함.

4) Pooling Layer

  • Pooling에는 Max Pooling, Avagerage Pooling등이 존재하는데 각각 가장 큰 값과 평균값을 뽑아내는 것이다.
  • 거의 max pooling 사용
  • Pooling 적용 시 사이즈를 반으로 줄이는 역할. 채널 수는 변동 없음
  • stride는 항상 2로 고정
  • Global MaxPooling은 Pooling을 feature map 사이즈와 동일하게 적용되는 max pooling 이다. 

 

'AI' 카테고리의 다른 글

인공지능 코드 구현  (0) 2021.06.09
TNN(Trainning Neural Network)  (0) 2021.06.07
Back Propagation  (0) 2021.06.03
Neural Network  (0) 2021.06.02
[Deep Learning] Backpropagation  (0) 2021.06.01