Upstage AI Lab 2기
2024년 3월 3일 (일)
온라인강의
업스테이지 AI
나머지 공부
Overfitting
Generalization vs. overfitting
balance between bias and variance -> 둘을 합하면 generalization error?
Stabilization
- dropout
- normalization
Dropout
- 일반화가 잘 됐다면 약간의 노이즈가 있어도 학습에 영향이 적을 것이다.
앙상블과 비슷(집단지성, 투표)
출력시 scaling, 예측시 모든 노드 on
Normalization
input - feature scaling
within layer - Batch norm, Layer Norm, Instance Norm, Group Norm
Batch norm
Batch 단위에서 μ, σ 구해서 표준정규분포로 바꿔줌
why?
activation function을 거치면서 편향이 생김
∴ 활성화함수를 거칠때마다 정규화가 필요함!
but
모두 완전히 정규화하는 건 NG -> 선형변환을 허용
batch norm에서는 gamma와 beta를 학습함
Weight Initialization
① Xavier Initialization - sigmoid : 표준편차 sqrt(1/n) 로 초기화
② He Initialization - ReLU : 표준편차 sqrt(2/n) 로 초기화
가중치 초기 설정에 따라 학습속도와 학습 결과가 달라짐
레이어가 많아질수록 편향이 생김
Regularization
L2 regularization
λ : 가중치 감쇠 계수
이 식에서 W^2 대신 |W| 쓰면 L1 regularization
같은 loss이면 W가 작은게 더 좋은 모델 (W가 크면 역전파 신호가 작아서 학습이 느림)
Learning Rate Scheduler
constant / step decay / exponential decay / cosine annealing / one-cycle policy
step decay : 일정 epoch 또는 iteration마다 학습률을 일정 비율 감소시킴
Optimization
최적화의 목표
GD
↓ (batch size 적용)
SGD
↓
방향 | 사이즈 |
momentum | AdaGrad |
Nesterov | RMSprop |
Adam |
Adam optimizer -> 두가지 장점을 다 합침
1. 방향 개선
1-1. Momentum
SGD의 단점 : 매번 미분을 해서 방향 전환(지그재그) - 비효율적
관성을 추가해 보완
1-2. Nesterov Accelerated Gradient (NAG)
.... 는 나중에 정리.......
Data Augmentations
학습 데이터가 부족할 경우 인위적으로 데이터를 늘리는 방법
이미지 resize, rotate, crop, flip 등 -> OpenCV 라이브러리에 잘 구현되어 있음, tensorflow, pytorch와 잘 연동됨
주의할 점 : 모델 학습에 도움이 되는지, 의미가 달라지지는 않는지 등
그 외 : cutout, mixup, cutmix
텍스트 데이터 증강
1. 동의어 대체 (Synonym Replacement)
2. 무작위 삽입 (Random Insertion)
3. 무작위 교체 (Random Swap)
4. 무작위 삭제 (Random Deletion)
변환을 하더라도 의미를 유지하는 것이 중요!
-> 능동태에서 수동태로 변환 / 직접화에서 간접화로 변환 / 역번역(Back Translation)
/ pretrained LM을 이용해 다음 단어들을 생성
note. GPT에서 설정 가능한 params
temperature(↑ → 창의성↑), top-k(top k개), top-p (p 이상의 확률)
그 외 학습법
1. 전이 학습(Transfer Learning)
2. 자기지도 학습(Self-Supervised Learning, SSL)
3. 생성 학습(Generative Learning) - AutoEncoder
4. 대체 작업 학습(Proxy Task Learning)
5. 대조 학습(Contrastive Learning)
1. 전이 학습(Transfer Learning)
- pretrain, fine-tuning
feature extractor는 pretrained model의 가중치를 활용하고 classifier만 바꾸는 방법
의료분야처럼 라벨링 데이터 구하기 어렵거나 비쌀때 전이학습을 많이 씀
BERT때부터 pretrain, fine-tuning 도입
전이학습 시 유의점 :
pre-training 이후 fine tuning 시 어디까지 학습시킬 것인가, 판별 로직만 학습시킬 것인가
source dataset(pretraining할 때 썼던 데이터셋)과 target dataset(task 수행할 때 들어오는 데이터셋) 간 차이가 많이 나면 전이 학습의 효율이 떨어짐
2. 자기지도 학습(Self-Supervised Learning, SSL)
예를 들어, 이미지 데이터 내에서 상대적 위치를 스스로 찾도록, 자동화할 수 있음?
(라벨링은 비용과 노이즈 이슈가 있음)
3. 생성 학습(Generative Learning)
- AutoEncoder
입력 자체가 출력이 되게 만들어서 라벨링 없이 학습이 가능
encoding ---> (representation space) ---> decoding
4. 대체 작업 학습(Proxy Task Learning)
이미지를 다양한 방식으로 가공 -> but 같은 class 임은 알 수 있음
5. 대조 학습(Contrastive Learning)
상대적인 클래스를 나눔
가까운 데이터는 가깝게, 먼 데이터는 멀게
'Upstage AI Lab 2기' 카테고리의 다른 글
Upstage AI Lab 2기 [Day057] PyTorch (0) | 2024.03.05 |
---|---|
Upstage AI Lab 2기 [Day057] CH.4 - CNN, RNN, From AlexNet to ChatGPT (2) | 2024.03.05 |
Upstage AI Lab 2기 [Day055] Deep Learning - 손실 함수 (0) | 2024.03.03 |
Upstage AI Lab 2기 [Day055] Deep Learning (1) | 2024.02.29 |
Upstage AI Lab 2기 [Day043] ML 프로젝트 (day1-2) (2) 업무분담 (0) | 2024.02.13 |