목차 1. 강의정리 1-1. [P]이미지 분류 - chap3. Dataset 1-2. [P]이미지 분류 - chap4. Data Generation 2. 피어세션 정리 3. 데일리 회고
* P stage 는 3주간 배운 이론을 실제로 사용해보는 시간입니다.
📜 강의 정리
[P stage] Chapter3. Dataset
🌈데이터전처리 방법과 일반화에 대해 알아보자
컴피티션이 데이터셋은 정제된 데이터를 담고 있지만, 실제 데이터의 품질은 보장하기 힘들다.
1. 데이터전처리
1. Bounding box
이미지 데이터에는 우리가 필요로 하는 데이터 외에 불필요한 정보까지 담고 있다.
2. Resize
화소가 너무 많으면 학습시킬 파라미터가 너무 많아서 학습시간이 오래걸린다. 따라서 계산의 효율을 위해 적당한 크기로 사이즈를 변경해야 한다.
2. Generalization(일반화)
1. Bias & Vairance : 학습이 너무 안 됐거나, 학습이 너무 됐거나
2. Train/Validation
훈련 셋 중 일부를 떼어서 검증(validation)셋으로 사용
** Test Set은 절대 건들면 안된다.
3. Data Augmentation
주어진 데이터가 가질 수 있는 case, state의 다양상
Albumentation library : 다양하고 빠름
[P stage] Chapter4. Data Generation
🌈 Dataset을 구성한 다음 모델에 빠르고, 효율적으로 Feeding 하기 위해 알아야 할 것들에 대해서 알아보자
Dataset을 잘 구성하는 것도 중요하지만, 모델이 잘 학습할 수 있도록 데이터를 잘 뽑아내는 방법도 중요하다.
데이터를 잘 뽑아낸다는 의미가 무엇일까?
1. Data Feeding
예를 들어, resize 순서에 따라서 진행 속도가 다르다
2. torch.utils.data
Dataset
바닐라 데이터를 우리가 원하는 인풋 데이터 형태로 변환하는 과정
from torch.utils.data import Dataset
class MyDataset(Dataset):
# MyDataset 클래스가 처음 선언 되었을 때 호출
def __init__(self):
pass
# MyDataset의 데이터 중 index 위치의 아이템을 리턴
def __getItem__(self, index):
return None
# MyDataset 아이템의 전체 길이
def __len__(self):
return None
다른 사람들이 공유하는 코드도 보니까 이론에서 배운거 적용도 되고, 다양한 방법에 대해서 알게 되는 것 같다.
빨리 baseline 코드 완성해서 정확도 높이는데 열중하고 싶다!
❓ Data augmentation 과정에서 transform에 대한 이해가 잘 안됐었는데 강의질문 답변을 통해 해결했다.
질문: 안녕하세요 강의 중 궁금한 점이 생겨서 질문 남기게 되었습니다. transforms가 모든 이미지에 적용이 되는 것인지 랜덤하게 적용되는 건지 궁금합니다!
예를 들어, dataset에 이미지가 100개 있다고 하면, transforms를 하게 되면 100개의 이미지에 대해 모두 적용이 되서 200개의 이미지가 되는 건가요?
그게 아니라 랜덤하게 적용 된다면, 변환되는 이미지의 원본은 변환된 이미지로 대체되는 건지(데이터셋 100개 유지) 기존 데이터셋에 변환된 데이터가 추가되는건지 궁금합니다.
강의 잘들었습니다. 감사합니다 :)
🦆멘토님🦆 답변: 안녕하세요 김서원님!
원본 이미지가 100개 존재하고 거기에 transform을 적용하면 변환된 이미지 100개가 나오게 됩니다.transform으로 변형된 이미지는 휘발되며 남아있지 않습니다. 오직 원본 이미지만 남게 됩니다.
원본 이미지 100개는 변하면 안됩니다. 이 이미지들은 계속 그대로 유지되며 새로운 추가적인 이미지를 훈련에 활용하고 싶은데 새롭게 추가할 이미지가 없을 경우, 원본 이미지에 transform을 적용하여 변환된 이미지를 새로운 추가적인 이미지처럼 활용하게 됩니다. 이때 매 순간 순간 transform을 적용해서 변환된 이미지는 보존되지 않습니다. 그 순간의 훈련에만 사용되고 사라집니다.
원본 + 원본을 transform을 이용해 변환한 이미지 이 2가지를 훈련에 사용하게 됩니다. 그래서 transform을 보시면 항상 적용되게 되어있지 않고 p=0.5와 같은 probability 인자를 통해서 확률적으로 적용되게 합니다. 같은 이미지더라도 어떨때는 원본 그대로 어떨때는 변형시켜서 내보내게 되는 것이죠. 이 방식으로 data augmentation의 효과를 가져오게 됩니다.
댓글