귀퉁이 서재

머신러닝 - 13. 파라미터(Parameter)와 하이퍼 파라미터(Hyper parameter) 본문

머신러닝

머신러닝 - 13. 파라미터(Parameter)와 하이퍼 파라미터(Hyper parameter)

Baek Kyun Shin 2019. 9. 27. 23:15

파라미터와 하이퍼 파라미터는 명확히 다른 개념입니다. 하지만 많은 사람들이 두 단어를 혼용해서 쓰고 있습니다. 특히, 하이퍼 파라미터를 파라미터라 칭하는 오류가 많습니다. 파라미터와 하이퍼 파라미터의 차이에 대해 알아보겠습니다.

본 챕터는 Machine Learning Mastery의 What is the Difference Between a Parameter and a Hyperarameter?를 번역 및 요약한 글입니다.

파라미터(Parameter)

아래는 Machine Learning Mastery에서 기술한 파라미터에 대한 정의 및 특성입니다.

A model parameter is a configuration variable that is internal to the model and whose value can be estimated from data.

- They are required by the model when making predictions.
- They values define the skill of the model on your problem.
- They are estimated or learned from data.
- They are often not set manually by the practitioner.
- They are often saved as part of the learned model.

파라미터는 한국어로 매개변수입니다. 파라미터는 모델 내부에서 결정되는 변수입니다. 또한 그 값은 데이터로부터 결정됩니다. 무슨 말인지 예를 들어 설명해보겠습니다. 한 클래스에 속해 있는 학생들의 키에 대한 정규분포를 그린다고 합시다. 정규분포를 그리면 평균(μ)과 표준편차(σ) 값이 구해집니다. 여기서 평균과 표준편차는 파라미터(parameter)입니다. 파라미터는 데이터를 통해 구해지며 (They are estimated or learned from data), 모델 내부적으로 결정되는 값입니다. 사용자에 의해 조정되지 않습니다. (They are often not set manually by the practitioner)

선형 회귀의 계수도 마찬가지입니다. 수많은 데이터가 있고, 그 데이터에 대해 선형 회귀를 했을 때 계수가 결정됩니다. 이 계수는 사용자가 직접 설정하는 것이 아니라 모델링에 의해 자동으로 결정되는 값입니다. (They are required by the model when making predictions)

하이퍼 파라미터(Hyper parameter)

아래는 Machine Learning Mastery에서 기술한 하이퍼 파라미터에 대한 정의 및 특성입니다.

A model hyperparameter is a configuration that is external to the model and whose value cannot be estimated from data.

- They are often used in processes to help estimate model parameters.
- They are often specified by the practitioner.
- They can often be set using heuristics.
- They are often tuned for a given predictive modeling problem.

하이퍼 파라미터는 모델링할 때 사용자가 직접 세팅해주는 값을 뜻합니다. (They are often specified by the practitioner) learning rate나 서포트 벡터 머신에서의 C, sigma 값, KNN에서의 K값 등등 굉장히 많습니다. 머신러닝 모델을 쓸 때 사용자가 직접 세팅해야 하는 값은 상당히 많습니다. 그 모든 게 다 하이퍼 파라미터입니다. 하지만, 많은 사람들이 그런 값들을 조정할 때 그냥 '모델의 파라미터를 조정한다'라는 표현을 씁니다. 원칙적으로는 '모델의 하이퍼 파라미터를 조정한다'라고 해야 합니다.

하이퍼 파라미터는 정해진 최적의 값이 없습니다. 휴리스틱한 방법이나 경험 법칙(rules of thumb)에 의해 결정하는 경우가 많습니다. (They can often be set using heuristics) 베이지안 옵티미제이션과 같이 자동으로 하이퍼 파라미터를 선택해주는 라이브러리도 있긴 합니다.

파라미터와 하이퍼 파라미터를 구분하는 기준은 사용자가 직접 설정하느냐 아니냐입니다. 사용자가 직접 설정하면 하이퍼 파라미터, 모델 혹은 데이터에 의해 결정되면 파라미터입니다.

Reference

Reference1: Machine Learning Mastery (What is the Difference Between a Parameter and a Hyperparameter?)

 

12 Comments
  • 프로필사진 제씨_ 2019.12.27 17:07 신고 고맙습니다 정리가 잘됐어요 ^_^
  • 프로필사진 Baek Kyun Shin 2019.12.29 23:34 신고 읽어주셔서 감사합니다 ~ ^^
  • 프로필사진 퀀미새 2020.02.14 14:21 하이퍼 파라미터도 역시 데이터를 통해서 목적함수를 설정하고 튜닝할 수 있지않나요? 그 때 튜닝된 하이퍼 파라미터들은 그럼 '파라미터'라고 부를 수 있는건가용...?
  • 프로필사진 Baek Kyun Shin 2020.02.14 15:49 신고 안녕하세요!
    말씀하신대로 하이퍼 파라미터도 사용자가 직접 설정하지 않아도 데이터를 통해 자동으로 튜닝될 수 있습니다. 가령 GridSearchCV 같은 클래스로 말이죠. 이는 하이퍼 파라미터를 자동으로 튜닝해주는 역할을 합니다.
    이때 튜닝된 하이퍼 파라미터를 파라미터라고 부를 수는 없을 것 같습니다.

    예를 들어, '생김새가 어떻고 키는 몇이며 말을 잘 하는 옆집 사는 무언가는 홍길동이다' 라고 해봅시다. 근데 홍길동씨와 똑같이 생긴 대화형로봇을 갖다놓고 '이게 홍길동이야'라고 할 수는 없습니다.

    이해가 가시려나 모르겠지만 ㅠ
    다시 말해 하이퍼 파라미터를 자동으로 튜닝해주는 도구는 단지 사람이 직접 설정해야 하는 하이퍼 파라미터를 기계가 대신 해준다의 개념입니다.

    사람이 하이퍼 파라미터에 1을 넣고 성능 내보고, 2를 넣고 성능을 내보고, 3을 넣고 성능을 내볼 때는 하이퍼 파라미터라 하지만 동일한 작업을 기계가 한다고 파라미터라 부르지는 않을 것입니다.

    따라서 명확히 말해서 파라미터를 '데이터로부터 결정되는 것'이라고만 정의한 게 좀 오해의 소지가 있을 순 있겠네요.

    틀린 부분이 있거나 더 궁금하신 사항이 있으시면 말씀부탁드립니다 :)
  • 프로필사진 퀀미새 2020.02.15 19:03 아하 감사합니다. 최근에 하이퍼 파라미터 튜닝에 관심이 있어서 블로그를 찾아 보게 됐는데 좋은글이 많은 것 같습니다 ㅎㅎ 앞으로도 좋은 글 많이 부탁드립니다.!!
  • 프로필사진 Baek Kyun Shin 2020.02.15 19:30 신고 감사합니다 자주 들려주세요^^
  • 프로필사진 grid37 2020.03.14 18:16 좋은 글 잘 봤습니다.
    hyperparameter의 의미가 예상했던 것과 전혀 달라서 의외네요. 저는 hyperspace, hyperplane 등과 유사하게 N차원 공간과 관련된 개념일 줄 알았는데요. 사용자가 사전 지정하는 매개변수를 왜 hyper 라고 부르게 되었을까요?
  • 프로필사진 Baek Kyun Shin 2020.03.15 00:37 신고 안녕하세요~ 읽어주셔서 감사합니다. 저도 왜 hyperparameter라 부르는지 그 기원까지는 잘 모르겠습니다. 제 추측으로는 모델 안에서 스스로 선택되는 걸 파라미터라 하니까 모델 밖에서 (모델 차원을 넘어서) 설정되기 때문에 hpyer를 붙인 게 아닌가 싶습니다. ㅎㅎ
  • 프로필사진 manga0713 2020.12.23 08:24 신고 감사합니다. 덕분에 저도 은근슬쩍 넘어가던 개념을 정리할 수 있었습니다. ^^
  • 프로필사진 Baek Kyun Shin 2020.12.23 19:31 신고 읽어주셔서 감사합니다 ^^
  • 프로필사진 kim youn 2021.03.07 21:22 하이퍼 파라미터 조정 참 어렵습니다..
  • 프로필사진 Baek Kyun Shin 2021.03.07 23:32 신고 네 어렵죠 ㅜㅜ 그나마 베이지안 최적화를 쓰면 좀 나은 것 같습니다
댓글쓰기 폼