컴퓨터 비전

[컴퓨터 비전] AlexNet을 활용한 깔끔한 방 vs 지저분한 방 분류하기

Uno_says 2024. 8. 26. 15:53
728x90

import os   # 운영 체제와 상호작용하기 위함, 파일 경로나 폴더를 다룰 때 사용
import glob   # 특정 패턴에 맞는 파일 경로들을 찾기 위함
import matplotlib.pyplot as plt    # 데이터 시각화
import torch    # 텐서 연산 및 신경망 구축을 위한 함수들 포함
import torch.nn as nn    # 신경망 모듈, 모델의 각 층을 정의할 때
import torch.optim as optim    # 최적화 알고리즘
import torchvision.transforms as transforms    # 이미지 데이터에 대한 전처리 및 변형
import torchvision.models as models      # 사전 학습된 모델 제공(VGG, ResNet, AlexNet)
from torch.utils.data import DataLoader, Dataset    # 배치 단위로 데이터 로드, 사용자 정의 데이터셋 생성
from torchvision.datasets import ImageFolder    # 폴더 구조에 맞춰 이미지를 로드, 폴더이름: 클래스 레이블
from PIL import Image    # 이미지 열기, 조작, 저장
data_root = '    '    # 데이터 경로 설정

 

 

📌 Alexnet

  • 2012년 이미지 인식 경진대회(ILSVRC, ImageNet Large Scale Visual Recognition Challenge)에서 큰 성과를 거두며 컴퓨터 비전 분야에 혁신을 가져온 CNN 모델
  • 224*224*3 크기의 컬러 이미지를 입력
  • 이미지에서 특징을 추출하는 역할인 5개의 컨벌루션 레이어를 사용
  • Max-Pooling 레이어를 통해 공간 크기를 줄이면서 가장 중요한 정보를 유지
  • ReLU함수를 활성화 함수로 사용하여 학습 속도를 크게 향상
  • 드롭아웃 기법을 사용하여 오버피팅을 방지
  • 마지막 두 레이어는 4096개의 파라미터를 가지고 있으며, 마지막 레이어는 1000개의 클래스로 분류

 

 

 

 

✔️ 드롭아웃과 배치 정규화의 훈련, 평가 모드에서의 작동

  • 드롭아웃(Dropout)
    • 훈련 중에는 무작위로 뉴런을 비활성하여 일반화를 촉진
    • 평가 중에는 모든 뉴런이 활성화되며 드롭아웃 비율에 따라 출력이 조정
  • 배치 정규화(Batch Normalization)
    • 훈련 중에는 배치의 평균과 표준편차로 정규화
    • 평가 중에는 훈련 시 수집된 전체 평균과 분산을 사용하여 정규화

 

 

 

 

728x90