728x90
1. 전이 학습(Transfer Learning)
- 하나의 작업을 위해 훈련된 모델을 유사 작업 수행 모델의 시작점으로 활용할 수 있는 딥러닝 접근법
- 신경망은 처음부터 새로 학습하는 것보다 전이 학습을 통해 업데이트하고 재학습하는 편이 더 빠르고 간편함
- 전이 학습은 여러 응용 분야(검출, 영상인식, 음성인식, 자연어처리, 검색분야...)에서 많이 사용됨
2. 캐글 데이터셋
- 캐글에 로그인
- 우측 상단의 계정을 클릭 -> Your Profile -> 우측의 Setting 클릭 -> Account에서 하단 API의 Create New API Token을 클릭 -> Kaggle.json 파일이 다운로드 됨
- Kaggle.json 파일을 메모장으로 열기
3. Alien vs Predator 데이터셋
Alien vs. Predator images
Small image classification - for transfer learning
www.kaggle.com
4. 이미지 증강 기법(Image Augmentation)
- 원본 이미지(데이터)를 조작하여 원본과는 크고 작은 변화를 가진 이미지를 생성하여 학습하는 기법
- 일반적으로 모델 성능이 좋아짐
- 오버피팅을 방지하는 목적
- 이미지 증강 기법
Transforming and augmenting images — Torchvision main documentation
Shortcuts
pytorch.org
- torchvision.datasets: 이미지 분류, 객체 감지 등 여러 가지 데이터셋이 포함되어 있다.
- torchvision.models: 다양한 사전 훈련된 딥러닝 모델을 제공하는 모듈이다. 일반적인 컴퓨터 비전 작업에 대해 이미 학습된 모델을 쉽게 사용할 수 있다.
- torchvision.transforms: 이미지에 적용할 수 있는 다양한 전처리 함수들을 제공하는 모듈이다.
5. 사전 학습된 ResNet50 모델
Models and pre-trained weights — Torchvision 0.19 documentation
Shortcuts
pytorch.org
5-1. ResNet50의 특징
- 50개의 레이어로 구성되어 있으며 주로 Conv(컨볼루션) 레이어와 Batch Normalization, ReLU 활성화함수, 풀링 레이어 등으로 이루어져 있음
- 기울기 소실 문제를 해결하고 훨씬 더 깊은 네트워크를 효과적으로 학습시킬 수 있음
- 이미지 분류, 객체 탐지 등 다양한 컴퓨터 비전 작업에서 높은 성능을 보임
5-2. 이미지넷(ImageNet)
- 이미지 데이터베이스
- 1000개의 클래스로 동물과 사물 이미지를 포함
5-3. Freeze Layers
- 특징을 뽑아내는 CNN의 앞쪽 컨볼루션 레이어들은 수정하지 않도록 설정
- 출력 부분의 레이어(FC)를 다시 설정하여 분류에 맞게 변경
모델의 마지막 레이어인 완전 연결층(Fully Connected Layer)과 활성화 함수를 포함한 새로운 구조를 정의한다.
- Epoch 루프
- 훈련과 검증 단계:
- for phase in ['train', 'validation']: 'phase'가 'train'이면 모델을 훈련 모드로 설정하고, 'validation'이면 검증 모드로 설정한다. -> 드롭아웃 같은 훈련 전용 기능이 활성화되거나 비활성화 된다.
- 모델 모드 설정:
- 'model.train()'은 훈련 모드로 모델을 설정한다. 이는 드롭아웃과 배치 정규화 같은 훈련 전용 기능이 활성화된다.
- 'model.eval()'은 검증 모드로 모델을 설정한다. 이는 훈련 전용 기능이 비활성화되며, 모델의 평가에 적합한 상태로 설정된다.
- 훈련 밑 검증 루프:
- 'dataloaders'는 훈련과 검증 데이터 로더를 포함하는 딕셔너리이다. 현재 배치 데이터를 'x_batch'와 'y_batch'로 로드한다.
- 데이터 이동 및 예측:
- 데이터를 디바이스(CPU 또는 GPU)로 이동시키고, 모델을 통해 예측을 수행한다.
- 손실 계산 및 역전파
- 정확도 계산:
- 'y_pred'가 0.5 이상인 경우 1로, 그렇지 않은 경우 0으로 변환하여 이진 예측을 생성한다.
- 손실 및 정확도 집계
📌 'PIL'(Python Imaging Library)은 파이썬에서 이미지 작업을 수행할 때 사용하는 라이브러리이다. 이미지 열기 및 저장, 이미지 조작, 변환 등의 기능을 수행할 수 있다.
📌 'torch.stack'은 입력된 텐서들을 새로운 차원에서 쌓아 올려 하나의 텐서로 만든다.
728x90
'딥러닝' 카테고리의 다른 글
[딥러닝] 키이벤트, 마우스이벤트, 화소처리, 히스토그램 (2) | 2024.08.19 |
---|---|
[딥러닝] 영상(Image), OpenCV-Python, 동영상 다루기 (0) | 2024.08.16 |
8. CNN 모델 (0) | 2024.07.31 |
7. CNN (0) | 2024.07.30 |
6. 비선형 활성화 함수 (0) | 2024.07.26 |