몇 초 만에 가장 중요한 하이퍼파라미터 찾기
모든 하이퍼파라미터가 똑같이 중요한 것은 아닙니다. 어떤 것들이 실제로 성능에 영향을 주는지 찾을 수 있도록 도와드립니다. 이 글은 AI 번역본입니다. 오역 가능성이 있으면 댓글로 알려주세요.
Created on September 15|Last edited on September 15
Comment
하이퍼파라미터 중요도 패널을 출시하게 되어 매우 기쁩니다. 이 패널은 선택한 지표의 바람직한 값과 높은 상관관계를 보이거나 해당 지표를 가장 잘 예측한 하이퍼파라미터가 무엇인지 한눈에 보여줍니다.

상관관계는 하이퍼파라미터와 선택한 지표(이 경우 val_loss) 사이의 상관을 의미합니다. 따라서 상관계수가 높다는 것은 하이퍼파라미터 값이 클수록 지표 값도 커지고, 반대로 낮을수록 지표 값도 낮아지는 경향이 있음을 뜻합니다. 상관관계는 살펴보기 좋은 지표이지만, 입력 변수들 사이의 이차 상호작용을 포착하지 못하고, 스케일이 크게 다른 입력들을 비교할 때는 해석이 복잡해질 수 있습니다.
따라서 하이퍼파라미터를 입력으로, 선택한 지표를 목표 출력으로 사용해 랜덤 포레스트를 학습하고, 그 랜덤 포레스트의 feature importance 값을 산출해 중요도 지표로 제공합니다.
이 기법의 아이디어는 다음과의 대화에서 영감을 받았습니다 제레미 하워드 하이퍼파라미터 공간을 탐색하기 위해 랜덤 포레스트 feature importance를 선구적으로 활용해 온 …에서 Fast.ai그의 뛰어난 작업을 꼭 확인해 보시기를 강력히 추천합니다 강의 (그리고 다음 항목들 노트) 이 분석의 배경과 동기를 더 알아보세요.
이 패널이 얼마나 유용한지 직접 확인할 수 있도록 하나 만들어 봅시다.
하이퍼파라미터 중요도 패널 만들기
Weights & Biases 프로젝트로 이동하세요. 프로젝트가 없다면 이 프로젝트를 사용하셔도 됩니다.
프로젝트 페이지에서 다음을 클릭하세요 Add Visualization.

그다음 Parameter Importance를 선택하세요.

완료되었습니다! 차트가 생성됐어요. 추가로 코드를 작성할 필요는 없고, 다음만 하면 됩니다 Weights & Biases 통합하기 평소처럼 프로젝트에 통합하세요. 즉, 모든 Weights & Biases 프로젝트에는 이미 추가할 수 있는 Parameter Importance 패널이 준비되어 있습니다.

하나씩 살펴보겠습니다.
하이퍼파라미터 중요도 패널 해석하기
이 패널에는 전달된 모든 파라미터가 표시됩니다 wandb.config 학습 스크립트의 객체입니다. 다음으로, 선택한 모델 지표(이 경우 val_acc)에 대해 이러한 config 파라미터의 피처 중요도와 상관관계를 보여줍니다.
중요도 열은 선택한 지표를 예측하는 데 각 하이퍼파라미터가 얼마나 유용했는지를 보여줍니다. 처음에는 많은 하이퍼파라미터를 함께 튜닝하고, 이 플롯을 활용해 추가로 탐색할 가치가 있는 항목을 추려낼 수 있습니다. 이후의 스윕은 가장 중요한 하이퍼파라미터로 범위를 좁혀 더 빠르고 저렴하게 더 나은 모델을 찾을 수 있습니다.
참고: 우리는 중요도를 선형 모델이 아니라 트리 기반 모델로 계산합니다. 트리 기반 모델은 범주형 데이터와 정규화되지 않은 데이터 모두에 더 관대하게 작동하기 때문입니다.
앞서 언급한 패널에서 우리는 epochs, learning_rate, batch_size 그리고 weight_decay 상당히 중요한 편이었습니다. 다음 단계로, 이 하이퍼파라미터들의 값을 더 세밀하게 탐색하는 또 다른 스윕을 실행해 볼 수 있습니다. 흥미롭게도 learning_rate와 batch_size는 중요했지만, 출력과의 상관관계는 그다지 높지 않았습니다.
이제 상관관계로 넘어가 보겠습니다.
상관관계는 개별 하이퍼파라미터와 지표 값 사이의 선형 관계를 포착합니다. 예컨대 “SGD 옵티마이저라는 하이퍼파라미터를 사용할 때 내 val_acc와 유의미한 관계가 있는가?”라는 질문에 답합니다(이 경우 답은 예입니다). 상관관계 값은 -1부터 1까지 범위이며, 양수는 양의 선형 상관, 음수는 음의 선형 상관을 의미하고, 0은 상관이 없음을 의미합니다. 일반적으로 어느 방향이든 0.7을 초과하는 값은 강한 상관관계를 나타냅니다.
이 그래프를 활용해 우리 지표와 상관관계가 더 높은 값들을 추가로 탐색할 수 있습니다(예를 들어, 이 경우 rmsprop이나 nadam보다 stochastic gradient descent나 adam을 선택할 수 있습니다). 또는 더 많은 epoch 동안 학습할 수도 있습니다.
상관관계를 해석할 때 알아둘 점:
- 상관관계는 인과관계를 의미하는 것이 아니라, 연관성의 증거만을 보여줍니다.
- 상관관계는 이상치에 민감하여, 특히 시도한 하이퍼파라미터의 표본 크기가 작을 경우 강한 관계를 중간 수준으로 약화시킬 수 있습니다.
- 마지막으로, 상관관계는 하이퍼파라미터와 지표 사이의 선형 관계만 포착합니다. 다항식 형태의 강한 관계가 있다면, 상관관계만으로는 포착되지 않습니다.
중요도와 상관관계의 차이는, 중요도가 하이퍼파라미터들 사이의 상호작용을 고려하는 반면 상관관계는 개별 하이퍼파라미터가 지표 값에 미치는 영향만을 측정하기 때문입니다. 둘째, 상관관계는 오직 선형 관계만 포착하는 반면, 중요도는 더 복잡한 관계까지 포착할 수 있습니다.
보시다시피 중요도와 상관관계는 하이퍼파라미터가 모델 성능에 미치는 영향을 이해하는 데 모두 유용한 도구입니다. 이 패널이 이러한 인사이트를 포착하고 더 빠르게 강력한 모델에 집중하는 데 도움이 되기를 바랍니다.
Add a comment