티스토리 뷰

728x90
반응형

딥러닝은 알고리즘 특성상 복잡도가 높아 과적합이 발생하기 쉽다. 과적합 문제를 해결하기 위해 여러 가지 정규화(Regularization) 방법이 요구되었다.


Parameter Norm Penalty파라미터의 페널티 항을 비용함수에 추가하여 파라미터 값에 제약을 주어 모델의 복잡도를 낮추는 방법이다. 노드 사이의 간선의 가중치만을 페널티 항에 포함시키고 바이어스는 포함시키지 않는다. 바이어스에 대한 제약은 모델을 전체적으로 움직여 과소적합을 발생시키기 때문이다. 또한 층마다 다른 종류의 페널티 항을 사용할 수 있지만연산에 오랜 시간이 걸리기 때문에 대개 공통 페널티 항을 사용한다.

대표적으로 릿지(Ridge) 스타일의 페널티 항인 L2 norm penalty와 라소(Lasso) 스타일의 L1 norm penalty를 사용한다. 릿지의 경우 파라미터의 값을 축소하는 작용을 하며 라소는 파라미터를 선택하는 방식으로 작동한다.


데이터의 수를 증가시키는 것(Data Augmentation) 또한 모델의 일반화 오차를 감소시키는 방법이다. 새로운 데이터를 추가할 수도 있지만 기존의 데이터를 살짝 가공하여 fake 데이터를 추가하여 모델의 성능을 향상시킬 수 있다.


하나의 모델이 하나의 데이터 셋을 입력받아 두 종류 이상의 결과를 출력하는 Multitask Learning을 통해 정규화를 수행할 수 있다. 두 가지 종류의 작업 모두에 만족할만한 성능을 내도록 조정하는 과정에서 하나의 작업에 대한 의존성을 감소시킬 수 있기 때문이다.


딥러닝은 학습(traning epoch)이 길어질수록 과적합이 일어날 가능성 또한 높아진다. 따라서 validation data set을 이용하여 일반화 오차가 증가하지 않는 최적의 학습 지점을 감지하고 학습을 중단시켜야 한다. 이 기법을 조기종료(Early Stopping)이라고 한다.


노드 누락(drop out)에 의해 형성된 subnetwork들을 앙상블하여 모델의 오차를 줄일 수 있다. 각 노드에 대해 노드의 누락 확률을 조기 설정하여 매 학습마다 몇 개의 노드를 일부러 누락시킨 네트워크로 학습이 진행되도록 유도하는 것이다. 최종 모델을 구성하기 위해 각 노드 간의 가중치를 누락확률만큼 보정하여 딥러닝의 앙상블 모델을 구현할 수 있다.


딥러닝은 다른 머신러닝 모델들과 다르게 사용자가 학습 전 설정해주어야 하는 초매개변수(hyperparameter)들을 많이 가지고 있다. 대표적으로 depth, width, step size, training epoch 등이 있다. 딥러닝에 익숙한 사용자라면 수동으로 초매개변수 값을 설정할 수 있지만 그러지 않는 경우 validation data set을 활용하여 모델의 성능을 최대화하는 초매개변수를 탐색해야 한다. 초매개변수의 종류와 종류별 가능한 값의 수를 모두 고려할 수 있도록 모든 순서쌍에 대해 병렬적으로 validation loss를 측정해야 한다.(Grid search) 매개변수의 값이 일정하지 않고 랜덤하게 설정된 순서쌍에 대해서도 측정이 가능하다.(Random search)

데이터가 부족하여 특별히 validation data set을 마련할 수 없는 경우 K-fold cross validation 기법을 사용할 수 있다. 주어진 데이터를 K등분하여 K-1개를 학습에 사용하고 나머지를 평가하는 과정을 K번 반복하는 것이다.

 

728x90
반응형
반응형
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함