※ HyperParameter(하이퍼 파라미터)란?

 

머신러닝 알고리즘을 공부를 하다보면 배운지 많이 듣는 용어 중에 하나이다. 

 

1. 파라미터 VS 하이퍼 파라미터 

 

일단, 파라미터는 일반 함수에서 결과값을 얻기 위해 넣어야 하는 요소들을 의미하는 용어로 사용되는 경우가 많다. 

 
둘의 차이점을 머신러닝, 딥러닝 알고리즘의 범위로 제한한다면,
파라미터들은 측정되거나 데이터로부터 학습되어지는 요소들을 의미하고, 파라미터는 수작업으로 이루어지지 않는다. 즉, 사용자가 직접 입력하지 않는다는 의미이다. 데이터를 얻어 그 데이터의 평균이나, 표준편차 등이 파라미터에 속한다고 볼 수 있다. 



하이퍼 파라미터는 머신러닝, 딥러닝 알고리즘에서 쓰이는 용어이다. 이것들은 대부분 해당 알고리즘이 어떻게 학습을 해야하는지에 대한 설정을 해주기 위해서 사용자가 직접 값을 입력해 주어야 하는 요소들을 의미한다. 

 



조금 더 이해하기 쉽게, (머신러닝, 딥러닝에서) 일단 둘의 차이점은,

 

사용자가 직접 입력을 해주느냐, 아니면 데이터 분석을  통해서 얻은 값을 이야기하느냐이다.

이들이 헷갈리는 경우가 많지는 않지만 꼭 구분을 해야겠다면, 알고리즘이 학습하기 이전에 사용자가 직접 입력해주는 요소(데이터 셋 제외)는 하이퍼 파라미터라고 부르며, 학습한 후에 데이터를 분석한 특성들에 관한 요소들을 파라미터라고 한다. 



하지만,
파라미터의 의미는 위에서 이야기 한것들보다, 일반적인 함수들에서 결과를 얻기위해 들어가야할 요소들을 이야기하는 경우가 더 많다. 



내 생각에는 파라미터와 하이퍼 파라미터를 명확하게 구분하는데에 초점을 두기 보다는 어떤 것이 하이퍼 파라미터인지 구별할 수 있으면 충분하다고 생각한다. 

 

 

2. 왜 하이퍼 파라미터가 필요한가? 



데이터는 여러가지가 존재하고, 비슷한 종류의 데이터라고 하더라도 분포들이 다양하다. 그것들을 일반화된 머신러닝, 딥러닝 알고리즘 모델을 적용하여 모든 경우에 최적의 결과를 내는 것은 불가능하다.

따라서 데이터들의 특성들에 따라서 여러 요소들을 적절한 값으로 설정해 주어야 각각의 경우에 최고의 예측성능을 가져올 수 있다. 


특히, 하이퍼 파라미터를 적절한 값으로 설정한 경우, 인공지능 알고리즘 모델의 가장 큰 문제인 과적합(Overfitting)을 해결하는 데에 큰 도움을 준다. 

 

 


 

 

※ GridSearchCV

 

 

사이킷 런(Scikit-learn)에는 하이퍼 파라미터와 관련하여 GridSearchCV라는 사이킷런의 모듈이 있다.



GridSearchCV는 사용자가 하이퍼 파라미터마다 몇가지 값을 가진 리스트를 입력하면, 가능한 하이퍼 파라미터의 경우의 수마다 예측 성능을 측정하여 사용자가 일일이 하이퍼 파라미터를 설정하고, 예측 성능을 비교하여 최적의 파라미터를 찾는 수고를 줄이고 이 과정을 한꺼번에 진행한다.  



  


GridSearchCV API 사용법



1. train_test_split()을 이용하여 학습 데이터와 테스트 데이터를 분리한다. 



2. 하이퍼 파라미터 세트를 딕셔너리 형태로 변수에 저장한다. 
ex > parameters = {'max_depth' : [1,2,3],
      'min_samples_split' : [2, 3]}

'max_depth'와 'min_samples_split'은 결정 트리가 가지고 있는 하이퍼 파라미터의 종류이다. 



3. GridSearchCV 객체의 fit(학습 데이터 세트) 매서드에 인자로 입력한다. 
fit 매서드는 하이퍼 파라미터들을 순차적으로 변경하며 학습과 평가를 수행한다. 
그 후, cv_result_라는 속성에 기록한다. 
이 cv_result_는 gridsearchcv의 결과 세트로서 딕셔너리 형태를 가진다.  '



4. cv_result_가 딕셔너리 형태를 가진 것을 이용하여 Pandas의 DataFrame으로 변환하면 해당 결과를 
편하게 볼 수 있다.  

728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기