CS 공부/AI

AlexNet과 VGGNet (feat. CNN)

imsmile2000 2023. 3. 28. 18:27

Computer Vision이란?


  • 전체 지식 중 75%는 눈을  통해 들어온다
  • 카메라를 통해 어떤 물체를 포착하면 GPU에 올리고 알고리즘을 사용해 정보를 뽑아냄
  • Inverse Rendering 과정
  • Visual perception의 종류
    • color perception
    • motion perception
    • 3D perception
    • semantic-level perception
    • emotion perception
    • visuomotor perception 등

 

Image Classification


1. 모든 분류 문제는 k-NN 알고리즘으로 해결할 수 있다

  • k Nearest Neighors 알고리즘: 주변의 가장 가까운 K개의 데이터를 보고 데이터가 속할 그룹을 판단하는 알고리즘
  • 하지만 세상의 모든 데이터를 다 가지고 있을 수는 없다,, (시스템 복잡도..메모리...시간 문제..)

 

2. CNN을 사용해서 방대한 데이터를 제한된 복잡도의 시스템에 압축해서 넣기

  • single fully connected layer의 문제
    • Layer가 한 층이라 단순해서 평균 이미지 이외에는 표현이 안됨
    • single fully connected layer의 문제: 테스트할 때 조금이라도 영상/이미지의 위치나 크기가 안맞으면 정확도 떨어짐
    • 모든 픽셀마다 parameter 필요 (엄청나게 많음)

 

  • locally connected neural networks
    • 영역을 나눠 특정 노드가 담당한 그 영역의 이미지에 대한 패턴만을 찾아 필요한 parameter가 엄청 줄어듦
    • 따라서 Overfitting 방지할 수 있음

빨, 초, 노, 파로 영역을 나누고 특정 영역을 담당하는 노드만을 연결. output layer는 영역별로 찾아낸 패턴을 조합하여 결과를 출력

 

  • 따라서 CNN은 많은 CV task의 backbone 네트워크로 쓰인다 (image recognition, object detection, segmentation)

 

CNN을 사용한 Image Classification의 역사


AlexNet

  • LeNet-5 (1998)
    • 아주 간단한 CNN 구조 
    • 구조: Conv-Pool-Conv-Pool-FC-FC
    • 우편번호 인식에 크게 성공

 

  • LeNet-5 발전 버전
    • 7 hidden layers
    • ImageNet으로 학습 (1.2millions 데이터)
    • ReLU, dropout 사용

 

  • AlexNet의 구조
    • Convolution layer의 output tensor 사이즈
      • input image size=I, K*K Conv, stride=S, padding=P일때

5 convolution layers, 3 fully-connected layers, 100-way softmax

 

출처 naver boostcamp ai tech

지금은 사라진 것들...

  1. Local Response Normalization: 측면 억제를 위한 Layer
    • 큰 양수의 수가 Conv Layer or MaxPooling시 들어오게 된다면 하나의 큰 값이 주변에 값에 영향을 미치기 때문에 사용 => 지금은 batch normalization 사용
  2. 큰 filter size (11x11 convolution layer)

 

  • CNN의 Receptive field(수용영역)
    • receptive field 안에서는 중앙에 있는 pixel 일수록 더 중요
    •  kernel size가 늘어나면 늘어날 수록 CNN이 볼 수 있는 영역이 늘어남
    • stride=1인 K*K conv, P*P pooling layer가 있다고 하면 pooling layer의 각 단위 값=(P+K-1)*(P+K-1)

 

 

VGGNet

  • AlexNet보다 더 깊고 간단한 architecture을 가졌지만 더 높은 성능과 일반화 기능을 가짐
  • Input: 224*224 (RGB 이미지), AlexNet과 같음
  • 가장 큰 특징: stride=1인 3x3 convolution filter과 2x2 max pooling 계산
    • 몇개의 큰 conv filter을 쓰는 것보다 여러개의 3x3 conv filter 쓰는 것이 parameter 개수도 적고 더 깊고 receptive field를 크게 유지시킴
  • 그외, 3 FC layers, LRN 미사용, ReLU 사용의 특징이 있음