본문 바로가기
AI

(2024-04-05) Backbone 이해하기: AlexNet, VGG

by busybee-busylife 2024. 4. 5.
반응형

AlexNet: CNN 모델의 시초. 여러개의 구조를 가진 CNN

AlexNet의 구조

입력으로 24243 크기의 피처맵

1개 필터당: 11113개의 파라미터 + 1개의 bias

위 연산을 총 96번 반복 → 첫 레이어에서 벌써 약 3.5만개의 파라미터

  • Conv Layer: 원하는 수 만큼의 필터를 사용하여 원하는 수 만큼의 채널을 출력할 수 있음
  • Pooling Layer: 각 채널별로 독립적인 풀링연산 적용 → 입력채널의 수 = 출력채널의 수
    • 학습가능한 파라미터: 0개
  • Normalization: 여러 값들을 일정한 범위 내에 고정
    • Lateral Inhibition현상(강하게 활성화된 뉴런이 다른 뉴런의 값을 억제하는 현상)으로 인해 normalization 필요(강하게 활성화된 뉴런의 값과 주변 뉴런들과의 값 차이를 줄이기 위함)
    • Local Response Normalization(LRN): 강하게 활성화된 뉴런의 값을 감소시킴 → 특정 뉴런만 활성화되는 것을 막음

AlexNet의 학습

  • Overfitting 방지 기법
    1. Data Augmentation(데이터 변형): 학습데이터의 다양성 향상
    2. Dropout

VGG: Smaller Filters, Deeper Networks

VGG의 구조

  • AlexNet: 11*11 과 같은 큰 필터를 초반에 많이 사용
  • VGG: 3*3의 작은 크기의 필터를 가지는 Conv Layer를 여러개 쌓음
  • 33 Conv 3개와 77 Conv 1개의 receptive filed가 동일(??)
    • 연산에 참조한 입력의 대응이 같다(???)
    • 하지만 3개의 3*3 Conv의 경우가 파라미터수가 더 적다
  • AlexNet: 큰 커널 크기와 스트라이드를 사용하여 receptive field를 증가
  • VGG: 여러 개의 작은 커널 크기를 사용하여 receptive field를 점진적으로 증가
  1. Receptive Field(수용 영역)란?
    • CNN에서 입력 이미지의 한 픽셀이 출력 feature map의 한 픽셀에 영향을 미치는 영역을 의미. 각 층에서 볼 수 있는 입력 이미지의 영역
    • 즉, 입력 이미지에서 출력 feature map의 한 픽셀이 볼 수 있는 영역의 크기
    • 3x3 크기의 필터를 사용하는 CNN층은 3x3 크기의 입력 이미지 영역만을 보고 출력을 생성
  2. 3개의 3x3 Conv Layer의 Receptive Field
    • 3x3 Conv Layer를 한 번 거칠 때마다 receptive field는 2픽셀씩 증가
    • 3개의 3x3 Conv Layer를 거치면 receptive field는 (3-1)x2x3+1 = 7
    • 따라서 3개의 3x3 Conv Layer의 receptive field는 7x7
  3. 1개의 7x7 Conv Layer의 Receptive Field
    • 7x7 Conv Layer를 한 번 거치면 receptive field는 7x7이 됩니다.
  4. 비교
    • 3개의 3x3 Conv Layer와 1개의 7x7 Conv Layer 모두 출력 feature map의 한 픽셀이 입력 이미지의 7x7 영역을 커버하게 됩니다.
    • 즉, 두 경우 모두 receptive field가 7x7로 동일합니다.

이처럼 여러 개의 작은 크기 Conv Layer를 쌓는 것과 한 개의 큰 크기 Conv Layer를 사용하는 것이 동일한 receptive field를 가질 수 있습니다. 하지만 VGGNet에서는 3x3 Conv Layer를 여러 개 쌓는 것이 파라미터 수를 줄이면서도 더 깊은 네트워크를 구성할 수 있어 선호되었습니다.

AlexNet: CNN 모델의 시초. 여러개의 구조를 가진 CNN

AlexNet의 구조

입력으로 24243 크기의 피처맵

1개 필터당: 11113개의 파라미터 + 1개의 bias

위 연산을 총 96번 반복 → 첫 레이어에서 벌써 약 3.5만개의 파라미터

  • Conv Layer: 원하는 수 만큼의 필터를 사용하여 원하는 수 만큼의 채널을 출력할 수 있음
  • Pooling Layer: 각 채널별로 독립적인 풀링연산 적용 → 입력채널의 수 = 출력채널의 수
    • 학습가능한 파라미터: 0개
  • Normalization: 여러 값들을 일정한 범위 내에 고정
    • Lateral Inhibition현상(강하게 활성화된 뉴런이 다른 뉴런의 값을 억제하는 현상)으로 인해 normalization 필요(강하게 활성화된 뉴런의 값과 주변 뉴런들과의 값 차이를 줄이기 위함)
    • Local Response Normalization(LRN): 강하게 활성화된 뉴런의 값을 감소시킴 → 특정 뉴런만 활성화되는 것을 막음

AlexNet의 학습

  • Overfitting 방지 기법
    1. Data Augmentation(데이터 변형): 학습데이터의 다양성 향상
    2. Dropout

VGG: Smaller Filters, Deeper Networks

VGG의 구조

  • AlexNet: 11*11 과 같은 큰 필터를 초반에 많이 사용
  • VGG: 3*3의 작은 크기의 필터를 가지는 Conv Layer를 여러개 쌓음
  • 33 Conv 3개와 77 Conv 1개의 receptive filed가 동일(??)
    • 연산에 참조한 입력의 대응이 같다(???)
    • 하지만 3개의 3*3 Conv의 경우가 파라미터수가 더 적다
  • AlexNet: 큰 커널 크기와 스트라이드를 사용하여 receptive field를 증가
  • VGG: 여러 개의 작은 커널 크기를 사용하여 receptive field를 점진적으로 증가
  1. Receptive Field(수용 영역)란?
    • CNN에서 입력 이미지의 한 픽셀이 출력 feature map의 한 픽셀에 영향을 미치는 영역을 의미. 각 층에서 볼 수 있는 입력 이미지의 영역
    • 즉, 입력 이미지에서 출력 feature map의 한 픽셀이 볼 수 있는 영역의 크기
    • 3x3 크기의 필터를 사용하는 CNN층은 3x3 크기의 입력 이미지 영역만을 보고 출력을 생성
  2. 3개의 3x3 Conv Layer의 Receptive Field
    • 3x3 Conv Layer를 한 번 거칠 때마다 receptive field는 2픽셀씩 증가
    • 3개의 3x3 Conv Layer를 거치면 receptive field는 (3-1)x2x3+1 = 7
    • 따라서 3개의 3x3 Conv Layer의 receptive field는 7x7
  3. 1개의 7x7 Conv Layer의 Receptive Field
    • 7x7 Conv Layer를 한 번 거치면 receptive field는 7x7이 됩니다.
  4. 비교
    • 3개의 3x3 Conv Layer와 1개의 7x7 Conv Layer 모두 출력 feature map의 한 픽셀이 입력 이미지의 7x7 영역을 커버하게 됩니다.
    • 즉, 두 경우 모두 receptive field가 7x7로 동일합니다.

이처럼 여러 개의 작은 크기 Conv Layer를 쌓는 것과 한 개의 큰 크기 Conv Layer를 사용하는 것이 동일한 receptive field를 가질 수 있습니다. 하지만 VGGNet에서는 3x3 Conv Layer를 여러 개 쌓는 것이 파라미터 수를 줄이면서도 더 깊은 네트워크를 구성할 수 있어 선호되었습니다.

AlexNet: CNN 모델의 시초. 여러개의 구조를 가진 CNN

AlexNet의 구조

입력으로 24243 크기의 피처맵

1개 필터당: 11113개의 파라미터 + 1개의 bias

위 연산을 총 96번 반복 → 첫 레이어에서 벌써 약 3.5만개의 파라미터

  • Conv Layer: 원하는 수 만큼의 필터를 사용하여 원하는 수 만큼의 채널을 출력할 수 있음
  • Pooling Layer: 각 채널별로 독립적인 풀링연산 적용 → 입력채널의 수 = 출력채널의 수
    • 학습가능한 파라미터: 0개
  • Normalization: 여러 값들을 일정한 범위 내에 고정
    • Lateral Inhibition현상(강하게 활성화된 뉴런이 다른 뉴런의 값을 억제하는 현상)으로 인해 normalization 필요(강하게 활성화된 뉴런의 값과 주변 뉴런들과의 값 차이를 줄이기 위함)
    • Local Response Normalization(LRN): 강하게 활성화된 뉴런의 값을 감소시킴 → 특정 뉴런만 활성화되는 것을 막음

AlexNet의 학습

  • Overfitting 방지 기법
    1. Data Augmentation(데이터 변형): 학습데이터의 다양성 향상
    2. Dropout

VGG: Smaller Filters, Deeper Networks

VGG의 구조

  • AlexNet: 11*11 과 같은 큰 필터를 초반에 많이 사용
  • VGG: 3*3의 작은 크기의 필터를 가지는 Conv Layer를 여러개 쌓음
  • 33 Conv 3개와 77 Conv 1개의 receptive filed가 동일(??)
    • 연산에 참조한 입력의 대응이 같다(???)
    • 하지만 3개의 3*3 Conv의 경우가 파라미터수가 더 적다
  • AlexNet: 큰 커널 크기와 스트라이드를 사용하여 receptive field를 증가
  • VGG: 여러 개의 작은 커널 크기를 사용하여 receptive field를 점진적으로 증가
  1. Receptive Field(수용 영역)란?
    • CNN에서 입력 이미지의 한 픽셀이 출력 feature map의 한 픽셀에 영향을 미치는 영역을 의미. 각 층에서 볼 수 있는 입력 이미지의 영역
    • 즉, 입력 이미지에서 출력 feature map의 한 픽셀이 볼 수 있는 영역의 크기
    • 3x3 크기의 필터를 사용하는 CNN층은 3x3 크기의 입력 이미지 영역만을 보고 출력을 생성
  2. 3개의 3x3 Conv Layer의 Receptive Field
    • 3x3 Conv Layer를 한 번 거칠 때마다 receptive field는 2픽셀씩 증가
    • 3개의 3x3 Conv Layer를 거치면 receptive field는 (3-1)x2x3+1 = 7
    • 따라서 3개의 3x3 Conv Layer의 receptive field는 7x7
  3. 1개의 7x7 Conv Layer의 Receptive Field
    • 7x7 Conv Layer를 한 번 거치면 receptive field는 7x7이 됩니다.
  4. 비교
    • 3개의 3x3 Conv Layer와 1개의 7x7 Conv Layer 모두 출력 feature map의 한 픽셀이 입력 이미지의 7x7 영역을 커버하게 됩니다.
    • 즉, 두 경우 모두 receptive field가 7x7로 동일합니다.

이처럼 여러 개의 작은 크기 Conv Layer를 쌓는 것과 한 개의 큰 크기 Conv Layer를 사용하는 것이 동일한 receptive field를 가질 수 있습니다. 하지만 VGGNet에서는 3x3 Conv Layer를 여러 개 쌓는 것이 파라미터 수를 줄이면서도 더 깊은 네트워크를 구성할 수 있어 선호되었습니다.

반응형

'AI' 카테고리의 다른 글

NLP 경진대회: 한국어 대화 요약 task  (0) 2024.05.30
Computer Vision 경진대회  (0) 2024.04.26
2024 AI Stages : ML Competition_House Price Prediction  (0) 2024.04.03
(2024-03-14) Hydra  (1) 2024.03.14
(2024-03-14) Pytorch Lightning  (0) 2024.03.14