BookmarkSubscribeRSS Feed

[SAS 고수의 팁] 머신러닝에서 Hyperparameter Tuning

Started ‎02-20-2022 by
Modified ‎02-21-2022 by
Views 6,986

 

 

Machine Learning 은 훈련 데이터로 구축된 예측 모델의 Self-Calibration (자가교정) 형태입니다.

또한, Machine Learning 예측 모델링 알고리즘은 일반적으로 빅데이터에서 숨겨진 가치를 찾는데 사용됩니다. 효과적인 의사 결정을 하기 위해서는 데이터를 High-Quality 와 예측이 가능한 모델로 변환해야 합니다 .

 

 

 image.png

 

 

 

Neural Network에서 보면, Outputs은 가중치와 활성화 함수를 통해 변환되어 예측이 됩니다.

최적의 모델을 구성하기 위해서는 활성화 함수와 가중치를 결정하는 것이 최적화(Optimization) 문제입니다.

모델 훈련 최적화 목표는 훈련 데이터(training data), 검증 데이터 (Validation data), 지정된 모델 구성 (히든 레이어 수와 은닉 레이어의 수)을 기반으로 모델 예측의 오류를 최소화할 가중치를 찾는 것 입니다. 최근에는 이 최적화 문제의 가중치를 해결하는 방법 중에는 확률적 경사 하강(Stochastic Gradient Descent, SGD) 알고리즘을 사용하는 것 입니다. SGD 알고리즘은 가중치를 업데이트 하기 위해 모든 관측치에 대한 손실 기울기를 계산하는 대신, 모든 관측치가 사용될 때까지 대체 없이 샘플링하여 손실을 추정하는데 'Mini-Batch' 랜덤 샘플링을 하는 방법을 사용합니다.

SGD 알고리즘의 성능은 모든 최적화 알고리즘과 마찬가지로 Control Parameter에 따라 달라집니다.

SGD Parameter에는 아래와 같은 Control Parameter가 필요합니다.

- 새로운 가중치를 선택하기 위한 step size를 제어하는 learning rate

- Slow Oscillations ( = 운동량 파라미터)

- 학습 속도를 조절하기 위한 annealing rate와 adaptive decay rate

- 관측치의 하위 집합을 샘플링하기 위한 미니 배치 크기

 

 

image (1).png

 

 

 

하이퍼 파라미터 값 조정은 모델 훈련 프로세스의 중요한 측면이며 성공적인 머신러닝 애플리케이션을 위한 모범 사례로 간주됩니다. 이번 게시글은 하이퍼파라미터 튜징에 대한 전통적인 방식과 SAS VDMML을 실행하여 머신러닝 알고리즘, 최적화 루틴, 분산 및 병렬 컴퓨팅 조합을 활용하여 새로운 하이브리드 접근 방식을 소개합니다.

 

 

Hyper Parameter Tunning

하이퍼 파라미터에 대한 이상적인 값을 찾는 방법(특정 데이터 세트에 맞게 모델을 조정)은 전통적으로 수동 작업이었습니다. 그래서 전문가들은 값 설정을 위해서 과거에 머신러닝 모델을 훈련시킨 경험에 의존하고는 했었습니다. 머신러닝 알고리즘과 하이퍼 파라미터에 대한 전문지식이 있더라도, 이러한 하이퍼 파라미터의 최상의 설정은 다른 데이터에 따라 변경될 것입니다. 그래서 수동작업 보다는 자동화된 방식으로 하이퍼 파라미터 값을 찾는 방법이 필요했습니다.

 

 

image (2).png

 

1) Grid Search

대체 모델 구성(alternative model configrations) 을 탐색하는 일반적인 접근 방식은 그리드 검색으로 알려진 방법을 사용합니다. Grid Search는 모델 하이퍼 파라미터에 넣을 수 있는 값들을 순차적으로 입력한 뒤에 가장 높은 성능을 보이는 하이퍼 파라미터 값을 찾는 탐색 방법입니다.

즉, 관심있는 매개변수들을 대상으로 가능한 모든 조합을 시도하여 최적의 매개변수를 찾는 방법으로 매개변수를 튜닝하여 일반화 성능을 개선해줍니다.

2) Random Search

그리드서치는 모든 경우를 테이블로 만든 뒤 격자로 탐색하는 방식에 해당한다면 랜덤 서치는 하이퍼 파라미터 값을 랜덤하게 넣어보고 그 중 우수한 값을 보이는 하이퍼 파라미터를 활용해 모델을 생성합니다. 어떻게 보면 랜덤 서치가 랜덤하게 값을 넣어 비효율 적으로 보일 수 있지만, 더 효율적일 수 있습니다. 그리드 서치는 딕셔너리에 지정된 모든 값을 다 탐색해야 합니다. 이는 사람이 임의로 정한 값이기 때문에 어따한 값이 효과적일 수 알 수 없고 입력한 값으로 모델을 한번씩 다 생성해야 합니다.

하지만 랜덤 서치는 랜덤하게 숫자를 넣은 뒤 정해진 간격(grid) 사이에 위치한 값들에 대해서도 확률적으로 탐색이 가능하므로 최적의 hyper parameter 값을 더 빨리 찾을 수 있습니다.

 

 

3) Latin HyperCube

라틴하이퍼큐브 방법은 데이터가 고르게 분포되어 있는 특징이 있습니다 . 각 정의된 분포에서 무작위로 값을 선택하고 균일하게 분산합니다. 각 가정의 확률 분포를 각각 같은 확률의 겹치지 않은 세그먼트로 나눕니다. 시뮬레이션이 실행되는 동안 세그먼트의 확률 분포에 따라 각 세그먼트의 무작위 가정 값을 선택합니다. 각 세그먼트를 정확히 한 번 샘플링한 후에는 시뮬레이션이 중지될 때까지 프로세스가 반복됩니다. 전체 범위의 분포가 보다 균일하고 일관되게 샘플링되므로 시뮬레이션 통계를 계산하는 경우 보다 정확한 결과값을 도출학빈다.

4) Optimization

무작위로 선택되거나 좀 더 구조화된 실험 설계 접근법을 통해 초 매개 변수 조합의 이산 샘플을 평가함으로써 대체 모델 구성을 탐구하는 것은 확실히 꽤 간단한 접근입니다.

머신러닝과 scoring 알고리즘은 복잡한 블랙박스이기 때문에 어려운 최적화 문제를 만들어냅니다 .

 

image (3).png

 

 

위의 그림은 하이퍼 파라미터 조적에 최적화를 적용할 때의 어려움을 나타냅니다.

- 머신러닝 알고리즘은 일반적으로 연속형 변수뿐 아니라 범주형 변수와 정수형 변수도 포함합니다. 이러한 변수들은 목표에서 매우 불연속적인 변경(=discrete change)을 초래할 수 있습니다 .

- 어떤 경우에는 초 매개 변수 공간이 불연속적이고 객관적인 평가가 실패한다.

- nondeterministic (= 결정적이지 못하다.)

- 컴퓨팅 노드가 실패하여 검색 전략을 무산시킬 수 있기 때문에 객관적인 평가가 실패할 수 있습니다.

- 공간에는 많은 구성이 매우 유사한 모델을 생성하는 많은 평평한 영역이 포함되어 있습니다

또 다른 과제는 서로 다른 하이퍼 매개 변수 값을 사용하여 예측 모델을 교육하고 검증하는 예측 불가능한 계산 비용입니다. 예를 들어, 은닉 계층과 뉴런을 신경망에 추가하면 훈련과 검증 시간이 크게 증가하여 광범위한 잠재적 객관적 비용이 발생할 수 있습니다.

이러한 이유로 하이퍼 파라미터 값 설정은 유연하고 효과적인 전략이 필요합니다 .

 

 

AutoTunning in SAS

하이퍼 파라미터를 자동으로 조정하기 위한 하이브리드 전략은 SAS Visual Data Mining 및 Machine Learning의 여러 모델링 절차에 사용됩니다. AUTOTuning을 지원하는 모든 모델링 절차는 AUTOTUNE 문을 제공하며, 여기에는 튜닝할 항목과 튜닝 프로세스를 수행하는 방법을 구체적으로 구성할 수 있는 여러 옵션이 포함되어 있습니다. 다음 예는 기존 GRADBOOST 프로시저 스크립트에 한 줄(autotune;)을 간단히 추가하는 것이 그라디언트 부스팅 모델을 자동 조정하는 프로세스를 트리거하는 방법을 보여줍니다.

최적의 하이퍼파라미터 구성은 ODS 테이블로 리포트되고 해당 최적 모델은 지정된 데이터 테이블에 저장됩니다.

 

 

 

cas mysess;
libname mycaslib sasioca casref=mysess;
data mycaslib.dmagecr;
set sampsio.dmagecr;
run;
proc gradboost data=mycaslib.dmagecr outmodel=mycaslib.mymodel;
target good_bad / level=nominal;
input checking duration history amount savings employed installp
marital coapp resident property age other housing existcr job
depends telephon foreign / level=interval;
input purpose / level=nominal;
autotune;
run;

 

  image (4).png

 

 

 

Neural Network에서 보면, Outputs은 가중치와 활성화 함수를 통해 변환되어 예측이 됩니다.

최적의 모델을 구성하기 위해서는 활성화 함수와 가중치를 결정하는 것이 최적화(Optimization) 문제입니다.

모델 훈련 최적화 목표는 훈련 데이터(training data), 검증 데이터 (Validation data), 지정된 모델 구성 (히든 레이어 수와 은닉 레이어의 수)을 기반으로 모델 예측의 오류를 최소화할 가중치를 찾는 것 입니다. 최근에는 이 최적화 문제의 가중치를 해결하는 방법 중에는 확률적 경사 하강(Stochastic Gradient Descent, SGD) 알고리즘을 사용하는 것 입니다. SGD 알고리즘은 가중치를 업데이트 하기 위해 모든 관측치에 대한 손실 기울기를 계산하는 대신, 모든 관측치가 사용될 때까지 대체 없이 샘플링하여 손실을 추정하는데 'Mini-Batch' 랜덤 샘플링을 하는 방법을 사용합니다.

SGD 알고리즘의 성능은 모든 최적화 알고리즘과 마찬가지로 Control Parameter에 따라 달라집니다.

SGD Parameter에는 아래와 같은 Control Parameter가 필요합니다.

- 새로운 가중치를 선택하기 위한 step size를 제어하는 learning rate

- Slow Oscillations ( = 운동량 파라미터)

- 학습 속도를 조절하기 위한 annealing rate와 adaptive decay rate

- 관측치의 하위 집합을 샘플링하기 위한 미니 배치 크기

 

 

Version history
Last update:
‎02-21-2022 12:30 AM
Updated by:
Contributors

sas-innovate-wordmark-2025-midnight.png

Register Today!

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.


Register now!

Article Labels
Article Tags