생각보다 argument 와 parameter, 또 parameter 와 hyper parameter 를 혼동해서 쓰는 경우가 많은 것 같다. 또 머신러닝에서의 parameter 와 hyper parameter 도 남한테도 확실하게 설명 할 수 있기 위해 마지막으로 정리해본다!
함수 호출 시, 함수에게 전달하는 '값'
함수 호출 시, 전달되는 인자를 받아들이는 '변수'
def add(A,B):
return A+B
result = add(3,5)
위에서 3, 5 는 argument, A,B 는 parameter 이다.
머신러닝에서 사용되는 파라미터는 모델 파라미터라고도 한다.
이 때 파라미터는 모델 내부에서 확인이 가능한 변수이다.
즉, 데이터를 통해 산출이 가능한 값
parameter 의 예
1. 인공신경망의 가중치
2. SVM 에서의 서포트 벡터
3. 선형회귀나 로지스틱 회귀에서의 결정계수
모델에서 외적인 요소. 즉, 데이터 분석을 통해 얻어지는 값이 아니다.
보통 훈련을 시킬 때 원하는 대로 수치를 조정할 수 있는 부분을 하이퍼 파라미터라고 생각하면 쉽다.
hyper parameter 의 예
1. 신경망 학습에서 lr(학습률)
2. SVM 에서의 코스트 값인 C
3. KNN 에서의 K의 개수
추가) 하이퍼 파라미터 조정은 생각보다 쉽지 않다. 절대적으로 가장 최적의 값을 찾기가 어렵기 때문이다.
이를 비교적 쉽게 찾기 위한 방법 중에는 Grid Search 와 random Search 가 있다.
최근에 최적의 f1 score 값을 찾기위한 방법 중 하나로 grid search를 공부하려 했는데 다음 글에서는 grid search 와 random search 에 대해 포스팅 해야겠다!
참고 : https://skmagic.tistory.com/104, https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=tjdudwo93&logNo=221067763334