Computer Vision

[EECS 498-007] lec11. Training Neural Networks II

se0_ing 2024. 8. 17. 11:28
반응형

 

 

 

 

 

*강의 영상*: https://www.youtube.com/watch?v=WUazOtlti0g&t=3072s

 

 

 

 

 

 

이전 강의에서 Training Neural Network part 1을 배웠고 다양한 활성화 함수와 가중치 initializing을 배웠다.

 

오늘은 신경망 훈련 중 고려해야 할 중요한 요소들, 특히 Learning rate scheduling, Choosing hyperparameter 에 중점을 두고 있다. 또한 마지막에 after training도 또한 다룰 예정이다.

 

 

 

 

 

 

신경망을 훈련할 때 학습률은 매우 중요한 하이퍼파라미터로, 학습률이 너무 높으면 모델이 발산할 수 있고, 너무 낮으면 훈련 속도가 매우 느려질 수 있다. 이러한 이유로 학습 initializing learning rate 가 중요하고, 이후에 점진적으로 학습률을 낮추는 것이 효과적이라는 점이 강조되었다.

 

신경망 훈련에서 학습률 조정 스케줄은 모델의 성능에 큰 영향을 미치는 중요한 요소이다. 학습률 조정 스케줄은 훈련 과정 동안 학습률을 어떻게 변경할지에 대한 전략을 의미하며, 잘 조정된 학습률은 모델의 훈련 속도와 최종 성능을 크게 향상시킬 수 있다.

 

 

 



Step Decay는 가장 전통적인 학습률 조정 방식 중 하나로, 일정한 훈련 에폭(epochs)이나 반복(iterations)마다 학습률을 일정 비율로 감소시키는 방식이다. 

 

예를 들어, ResNet과 같은 모델에서는 초기 학습률을 0.1로 설정한 후, 30 에폭이 지나면 학습률을 0.01로 낮추고, 다시 30 에폭이 지나면 0.001로 낮추는 식이다. 이 방식의 장점은 초기에는 높은 학습률로 빠르게 학습을 진행하다가, 시간이 지나면서 점차 학습률을 낮춰 더 세밀한 최적화를 수행할 수 있다는 것이다. 그러나, 적절한 학습률 감소 시점과 비율을 설정하는 것이 까다로워, 실험적으로 조정해야 할 필요가 있다.

 

 

 



Cosine Decay는 학습률을 코사인 곡선 형태로 서서히 감소시키는 방식이다. 이 방법에서는 학습률이 초기에는 높게 설정되지만, 훈련이 진행될수록 코사인 함수의 형태에 따라 학습률이 서서히 감소하여 최종적으로 0에 가까워지게 된다.

 

Cosine Decay의 장점은 학습률이 자연스럽게 감소하므로 학습률 감소 시점이나 비율을 설정할 필요가 없다는 점이다. 또한, 이 방식은 하이퍼파라미터가 적어 튜닝이 상대적으로 간단하며, 특히 컴퓨터 비전과 같은 분야에서 자주 사용된다.

 

 

 

 


Linear Decay는 학습률을 선형적으로 감소시키는 방식이다. 훈련 초기에는 높은 학습률로 시작하여, 훈련이 진행됨에 따라 일정한 비율로 학습률을 줄여나간다. 이 방법은 학습률의 감소가 일정하게 이루어지므로, 매우 직관적이며 간단하게 구현할 수 있다. 그러나, 선형적으로 학습률을 줄이는 것이 항상 최적의 결과를 보장하는 것은 아니며, 문제에 따라 다른 스케줄이 더 효과적일 수 있다.

 

 



Inverse Square Root Decay는 학습률을 역제곱근 함수의 형태로 감소시키는 방식이다. 이 방법에서는 학습률이 매우 빠르게 감소하여 초기에는 높은 학습률을 유지하지만, 빠르게 낮아져 이후에는 상대적으로 작은 학습률로 훈련이 진행된다.

이 방식의 문제점은 학습률이 너무 빠르게 감소할 수 있어, 충분히 학습하지 못한 상태에서 학습률이 너무 낮아지는 상황이 발생할 수 있다는 점이다. 따라서, 이 방식은 특정 상황에서만 효과적일 수 있다.

 

 

 

 


Constant Learning Rate는 학습률을 훈련 전체 과정 동안 일정하게 유지하는 방식이다. 이 방식은 설정이 간단하며, 특히 복잡한 학습률 스케줄을 조정할 필요가 없는 초기 실험 단계에서 유용하다.

그러나, 모델이 복잡해지고 최적화를 더 세밀하게 진행할 필요가 있는 경우, 고정된 학습률로는 최적의 성능을 얻기 어려울 수 있다. 그럼에도 불구하고, 일부 복잡한 최적화 알고리즘(예: Adam, RMSprop)과 함께 사용될 때는 일정한 학습률로도 충분히 좋은 성능을 얻을 수 있다. 가장 쉽고 빠르기 때문에 지금 까지도 가장 많이 쓰이고 보편적인 Learning rate decay 방식이다.

 

 

이와 같이, 학습률 조정 스케줄은 훈련 상황에 맞게 적절히 선택해야 하며, 실험을 통해 최적의 스케줄을 찾는 과정이 필요하다. 각 방법은 고유한 장단점을 가지며, 문제의 특성에 따라 다른 방식이 효과적일 수 있다.

 

 

 

 

 

 



다음 단계는 Choosing hyperparameter이다. 하이퍼파라미터 최적화에 있어서는 두 가지 방식이 존재한다: grid search, random search. 그리드 서치와 랜덤 서치 방법이 주로 사용된다. 그리드 서치는 미리 정해진 값들의 조합을 모두 시도해보는 방법인 반면, 랜덤 서치는 하이퍼파라미터 범위 내에서 무작위로 값을 선택하여 시도하는 방법이다.

 

 

랜덤 서치가 더 효율적일 수 있다는 점이 설명되었다. 또한, 훈련 중에는 손실 곡선과 정확도 곡선을 분석하여 모델의 상태를 파악하는 것이 중요하며, 이를 통해 모델이 잘 훈련되고 있는지, 아니면 문제가 있는지를 진단할 수 있다.

 

 

 

 

 

 

 

그리드 서치는 미리 정해진 하이퍼파라미터 값들의 조합을 모두 시도해보는 방법이다. 예를 들어, 학습률을 0.01, 0.1, 1.0의 세 가지 값 중 하나로 설정하고, 정규화 강도를 0.0001, 0.001, 0.01의 세 가지 값 중 하나로 설정하는 경우, 총 9가지(3x3)의 조합을 모두 시도해볼 수 있다. 그리드 서치는 가능한 모든 조합을 시도하기 때문에 최적의 하이퍼파라미터 조합을 찾을 가능성이 높다. 그러나, 하이퍼파라미터의 수가 많아질수록, 가능한 조합의 수가 기하급수적으로 증가하여 계산 비용이 매우 커진다는 단점이 있다.

 

이에 비해 랜덤 서치는 하이퍼파라미터 범위 내에서 무작위로 값을 선택하여 시도하는 방법이다. 예를 들어, 학습률을 0.001에서 1.0 사이에서 임의로 선택하고, 정규화 강도를 0.0001에서 0.01 사이에서 무작위로 선택하는 식이다. 랜덤 서치는 그리드 서치에 비해 훨씬 더 적은 조합을 시도하지만, 중요한 하이퍼파라미터가 있는 경우 그 값을 찾을 확률이 높다. 이는 실제로 하이퍼파라미터들 중 일부는 모델 성능에 큰 영향을 미치는 반면, 나머지는 덜 중요한 경우가 많기 때문이다. 랜덤 서치는 이러한 중요한 하이퍼파라미터를 빠르게 찾을 수 있는 장점이 있으며, 전체적인 효율성이 그리드 서치보다 높을 수 있다.

 

 

 

 

 

 

훈련 중 손실 곡선과 정확도 곡선을 분석하는 것도 매우 중요하다. 이 곡선들을 통해 모델의 학습 상태를 실시간으로 모니터링할 수 있다. 손실 곡선은 훈련이 진행되면서 손실 함수의 값이 어떻게 변화하는지를 보여준다.

 

일반적으로 손실 곡선이 지속적으로 감소해야 하며, 만약 중간에 손실이 더 이상 감소하지 않거나, 갑자기 증가하는 경우, 이는 학습률이 너무 높거나 낮다는 신호일 수 있다. 이 경우 학습률을 조정하거나, 다른 하이퍼파라미터를 조정할 필요가 있다.

 

 

*다음은 in pratice with no much GPUs, choosing hyperparameter의 과정이다.\

 

 

 

 

 

 

마지막 과정인 After training에 도착했다. 가장 첫 번째로, Model Ensembling


훈련이 완료된 후에는 모델의 성능을 더욱 향상시키기 위해 몇 가지 기법들이 사용될 수 있다. 예를 들어, 여러 독립적인 모델을 훈련시킨 후 이들의 예측 결과를 앙상블하여 사용하는 방법은 약 2%의 성능 향상을 가져올 수 있다. 이 외에도 스냅샷 앙상블, Polyak averaging 등을 통해 모델 성능을 최적화할 수 있다.

 

 

 

 

 

 


전이 학습(transfer training)의 중요성도 강조되었다.

 

전이 학습은 사전 훈련된 모델을 새로운 작업에 맞게 조정함으로써 매우 효율적인 학습을 가능하게 한다. 특히, ImageNet과 같은 대규모 데이터셋에서 사전 훈련된 컨볼루션 신경망(CNN)을 새로운 작업에 적용할 때 두 가지 주요 방법이 사용된다: 특징 추출(feature extraction)과 파인튜닝(fine-tuning)이다.

 

 

 

ImageNet 대회에서 가장 잘 작동하는 Network가 transfer training을 할때에도 잘 작동하는 경향을 보였다.

 

 

 

 

 

 

1. 특징 추출: 사전 훈련된 모델의 가중치를 고정한 후, 이 모델을 특징 추출기로 사용하여 새로운 데이터셋에 대한 예측을 수행한다. 마지막 레이어를 제거하고, 새로운 데이터셋에 맞는 분류기를 추가해 학습한다. 이 방법은 새로운 작업에 적은 데이터가 있을 때 유용하며, 빠른 학습이 가능하다.

2. 파인튜닝: 사전 훈련된 모델의 가중치를 초기화한 후, 새로운 데이터셋에 맞게 전체 모델을 재학습시킨다. 이 방법은 특징 추출보다 더 많은 데이터를 요구하지만, 더 나은 성능을 제공할 수 있다. 특히, ImageNet과 같은 대규모 데이터셋에서 사전 훈련된 모델을 파인튜닝하면, 적은 데이터셋에서도 높은 성능을 보이는 경우가 많다.

 

 

 

 

 

 

전이 학습의 효과는 다양한 실험을 통해 입증되었다. 예를 들어, ILSVRC 2013과 같은 대회에서 파인튜닝과 특징 추출을 사용한 모델들이 높은 성능을 보였다. 특정 작업(예: 객체 검출)에서 사전 훈련된 모델을 사용하는 경우, 훈련 데이터를 적게 사용해도 뛰어난 성능을 얻을 수 있다 .

 

다음은 전이학습을 통해 LLM 모델인 BERT와 Vision모델을 합쳐서 Image to Text Model을 만든 것이다.

 

 

결과적으로, 전이 학습은 대규모 데이터가 부족한 상황에서 모델을 효과적으로 학습시키는 데 중요한 역할을 하며, 사전 훈련된 모델의 활용은 컴퓨터 비전 및 자연어 처리와 같은 다양한 분야에서 매우 유용하게 사용되고 있다.

 

 

 



마지막으로 Distributed training은 GPU가 많은 industrial, high-end 랩에서 사용되며, 대규모 데이터 병렬 훈련을 통해 신경망을 더 빠르게 훈련할 수 있으며, 데이터 병렬화와 대규모 배치 훈련은 훈련 시간을 크게 단축시킬 수 있는 효과적인 방법이다. 

 

 

엄청나게 많은 슈퍼컴퓨터 GPU가 필요한 환경이기 때문에 가볍게 다뤄보았다.

 

 

 

 

 

 

 

 

 

...오늘은 Training Neural Network part 2를 다루어보았다. learning rate, hyperparameter를 설정하는 법을 알아보았고, after training 과정인 transfer training 등 을 살펴보았다. 다음 강의에선 순환 신경망에 대해 알아보자.

 

 

반응형