ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • AlexNet과 VGGNet (feat. CNN)
    CS 공부/AI 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 사용의 특징이 있음

    'CS 공부 > AI' 카테고리의 다른 글

    GoogleNet, ResNet  (0) 2023.03.28
    Annotation data efficient learning  (0) 2023.03.28
    Latent variable model (GAN, Diffusion model)  (0) 2023.03.24
    Auto-regressive model  (0) 2023.03.23
    Multi Head-attention 구조 파악하기  (0) 2023.03.22
Designed by Tistory.