본문 바로가기

Upstage AI Lab 2기

Upstage AI Lab 2기 [Day055] Deep Learning - 성능고도화

Upstage AI Lab 2기

2024년 3월 3일 (일) 

온라인강의

 

업스테이지 AI

나머지 공부

 

Overfitting

Generalization vs. overfitting

balance between bias and variance -> 둘을 합하면 generalization error?

https://medium.com/@yixinsun_56102/understanding-generalization-error-in-machine-learning-e6c03b203036

 

 


 

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)

상대적인 클래스를 나눔

가까운 데이터는 가깝게, 먼 데이터는 멀게