프로그래밍 /Python

Hyper parameter tuning

yooj_lee 2019. 8. 15. 14:43
300x250

내가 발견한 그리드 서치의 문제점

1. 많은 범위를 지정할 경우, 연산 시간이 너무 오래 걸림. --> 다양한 range의 하이퍼 파라미터 값 assign이 불가능함.

 

2. 1이 불가능하기 때문에, 내가 알아서 값을 정해서 param에 넣어줘야 하는데 이게 많이 힘들다. 내가 하는 방식은 범위가 넓게 그리드 서치를 하면서 그때 마다 도출된 최적값을 기준으로 해서 그 안에서 범위를 줄여나가는 방식으로 그리드 서치를 반복하는 방법인데, 마찬가지로 연산 시간이 너무 오래 걸리고, 일단 내가 찾은 최적값이 global optimum이라는 보장이 없다.

 

3. 여러 개 변수가 있을 경우 여러 번 돌릴 때 탐색된 최적값이 계속 변한다는 단점(?)이 있었다. 

--> 근데 이건 내가 코딩 잘못했을 수도 있다고 봄. 좀 더 알아봐야겠다. Tree model은 내가 계속 그 결과를 follow하지 못한다는 게 좀 아쉽다. 내 머리가 컴퓨터 머리였으면 얼마나 좋을까..

 

랜덤 서치도 있지만, 좀 더 성능이 좋은 베이지안 최적화를 알게 되었다.

 

얘는 내가 설명하기엔 나도 아직 잘 모름ㅋㅋㅋㅋㅋ 근데 어쨌든 베이지안 최적화는 가장 과학적인 방법인 것 같긴 하다.

미지의 True function이 있을 때, 이거의 global optimum을 찾는 건데

하이퍼 파라미터 적용의 경우

True function f(X) = 모델 성능

X = 모델에 들어가는 하이퍼 파라미터

쉽게 말하면, f(X) 값이 최적이 되는 X를 찾는 거다.

 

뭐야 그럼 미분하면 되네 라고 생각할 수 있지만 X가 일단 일변수가 아닌 다변수이고..미분이 불가능한 함수라는 가정을 깔고간다는 점??ㅎㅎ 나도 잘은 모름.

 

근데 이걸 파이썬에서 구현하려면 목적함수를 정의해야된다는 거다...즉, f(X)를 정의해야되는데

이걸 어떻게 정의해야할지 모르겠다. 좀 더 공부를 해봐야겠지만 아직 국내 자료는 별로 없는 듯하다. 영어 읽기 싫은데.......후우..

내가 지금 사용하고 싶은 모델은 RF, ADABOOST, XGBOOST, LIGHTGBM이다. 화이팅..

동아리 과제 제출 대체 언제하냐..

 

 

 

 

300x250