모델 성능 개선을 위한 과학적 접근 방식

이 문서의 목적은 다음과 같습니다.

머신러닝 개발의 궁극적인 목표는 배포된 모델의 유용성을 극대화하는 것입니다.

일반적으로 모든 ML 문제에 이 섹션의 동일한 기본 단계와 원칙을 사용할 수 있습니다.

이 섹션에서는 다음과 같이 가정합니다.

  • 이미 완전한 학습 파이프라인과 합리적인 결과를 얻은 구성을 갖추고 있습니다.
  • 의미 있는 미세 조정 실험을 수행하고 여러 학습 작업을 동시에 실행하기에 충분한 컴퓨팅 리소스가 있습니다.

증분 조정 전략

권장사항: 간단한 구성으로 시작하세요. 그런 다음 문제에 관한 유용한 정보를 축적하면서 점진적으로 개선합니다. 강력한 증거를 기반으로 개선사항을 적용해야 합니다.

모델의 성능을 최대화하는 구성을 찾는 것이 목표라고 가정합니다. 정해진 기한까지 모델을 개선하는 것이 목표인 경우도 있습니다. 어떤 경우에는 프로덕션에 사용되는 모델을 지속적으로 개선하는 등 모델을 지속적으로 개선할 수 있습니다.

원칙적으로 가능한 구성의 모든 공간을 자동으로 검색하는 알고리즘을 사용하여 성능을 극대화할 수 있지만 이는 실용적인 옵션이 아닙니다. 가능한 구성 공간은 매우 크고 아직 사람의 지시 없이 이 공간을 효율적으로 검색할 만큼 정교한 알고리즘은 없습니다. 대부분의 자동화된 검색 알고리즘은 검색할 구성 집합을 정의하는 수동으로 디자인된 검색 공간을 사용합니다. 이러한 검색 공간은 다소 중요할 수 있습니다.

성능을 극대화하는 가장 효과적인 방법은 간단한 구성으로 시작하여 기능을 점진적으로 추가하고 문제에 관한 유용한 정보를 쌓는 것입니다.

미세 조정마다 자동 검색 알고리즘을 사용하고 이해도가 높아지면 검색 공간을 지속적으로 업데이트하는 것이 좋습니다. 탐색하면서 더 나은 구성을 찾을 수 있으므로 '최고의' 모델은 지속적으로 개선됩니다.

'출시'라는 용어는 최적의 구성(프로덕션 모델의 실제 출시와 일치할 수도 있고 그렇지 않을 수도 있음)을 업데이트하는 것을 의미합니다. '실행'할 때마다 행운의 구성에 따른 우연이 아닌 강력한 증거에 따라 변경하도록 해야 합니다. 그래야만 학습 파이프라인에 불필요한 복잡성이 추가되지 않습니다.

개략적인 조정 전략은 다음 4단계를 반복합니다.

  1. 다음 실험의 목표를 선택하세요. 목표의 범위가 적절하게 지정되었는지 확인합니다.
  2. 다음의 실험을 설계합니다. 이 목표를 향해 진행되는 일련의 실험을 설계하고 실행합니다.
  3. 실험 결과에서 학습합니다. 체크리스트를 기준으로 실험을 평가합니다.
  4. 후보 변경사항을 적용할지 결정합니다.

이 섹션의 나머지 부분에서는 이 전략을 자세히 설명합니다.

다음 실험의 목표 선택

한 번에 여러 특성을 추가하거나 여러 질문에 답하려고 하면 별도의 결과를 분리하지 못할 수 있습니다. 목표의 예는 다음과 같습니다.

  • 파이프라인을 개선할 수 있습니다 (예: 새 정규화, 사전 처리 선택 등).
  • 특정 모델 초매개변수 (예: 활성화 함수)의 영향 이해
  • 유효성 검사 오류를 최소화합니다.

단기 유효성 검사 오류 개선보다 장기적인 진행에 우선순위 두기

요약: 대부분의 경우 기본 목표는 조정 문제를 파악하는 것입니다.

대부분의 시간을 문제에 대한 유용한 정보를 얻고 상대적으로 검증 세트의 성능을 극대화하는 데 집중하는 데 시간을 거의 할애하지 않는 것이 좋습니다. 즉, 대부분의 시간을 '탐색 분석'에 사용하고 '악용'에는 적은 시간을 할애합니다. 최종 성과를 극대화하려면 문제를 이해하는 것이 중요합니다. 단기적 이익보다 유용한 정보를 우선시하는 방법은 다음과 같습니다.

  • 단순히 과거 사고를 통해서만 좋은 성능을 발휘하는 실행에 있던 불필요한 변경을 실행하지 마세요.
  • 검증 오류가 가장 민감한 초매개변수, 가장 많이 상호작용하므로 다시 조정해야 하는 초매개변수, 그리고 다른 변경사항에 비교적 민감하지 않으므로 향후 실험에서 수정할 수 있는 초매개변수를 식별합니다.
  • 과적합이 문제인 경우 새로운 정규화와 같이 새로운 기능을 시도해 볼 것을 제안합니다.
  • 도움이 되지 않으므로 삭제할 수 있는 기능을 파악하여 향후 실험의 복잡성을 줄입니다.
  • 초매개변수 조정의 개선사항이 포화되었을 가능성이 있는 시점을 인식합니다.
  • 조정 효율을 개선하기 위해 최적의 값으로 검색 공간을 좁힙니다.

결국에는 문제를 파악하게 됩니다. 그러면 실험에서 조정 문제의 구조에 관한 정보를 충분히 제공하지 못하는 경우에도 검증 오류에만 집중할 수 있습니다.

다음 단계인 실험 설계

요약: 실험용 목표에 대해 과학적으로 사소한 초매개변수 및 고정 초매개변수를 파악할 수 있습니다. 과학적 초매개변수의 서로 다른 값을 비교하는 일련의 과정을 만들어 귀찮은 초매개변수를 기준으로 최적화합니다. 리소스 비용과 과학적 가치의 균형을 이루기 위해 성가신 초매개변수의 검색 공간을 선택하세요.

과학, 성가신 및 고정 초매개변수 파악

특정 목표에 대해 모든 초매개변수는 다음 카테고리 중 하나에 속합니다.

  • 과도한 초매개변수는 모델의 성능에 미치는 영향이 측정하고자 하는 초매개변수입니다.
  • 불완전한 초매개변수는 서로 다른 과학적 초매개변수 값을 공정하게 비교하기 위해 최적화해야 하는 매개변수입니다. 성가수 초매개변수는 통계의 성가수 매개변수와 유사합니다.
  • 고정 초매개변수는 현재 실험의 값이 일정합니다. 서로 다른 과학적 초매개변수 값을 비교할 때는 고정 초매개변수의 값이 변경되지 않아야 합니다. 일련의 실험에서 특정 초매개변수를 수정하면 실험에서 파생된 결론이 고정된 초매개변수의 다른 설정에 유효하지 않을 수 있다는 점에 동의해야 합니다. 즉, 고정 초매개변수는 실험에서 도출한 결론에 대해 주의사항을 만듭니다.

예를 들어 목표가 다음과 같다고 가정해 보겠습니다.

히든 레이어가 많은 모델이 검증 오류가 낮은지 확인합니다.

이 경우에는 다음과 같습니다.

  • 숨겨진 레이어의 수에 따라 학습률을 별도로 조정하는 경우에만 학습률을 서로 다른 히든 레이어의 수와 공정하게 비교할 수 있으므로 학습률은 잘못된 초매개변수입니다. 최적의 학습률은 일반적으로 모델 아키텍처에 따라 달라집니다.
  • 이전 실험에서 최상의 활성화 함수가 모델 깊이에 민감하지 않다고 결정한 경우 활성화 함수는 고정된 초매개변수일 수 있습니다. 또는 히든 레이어 수에 대한 결론을 제한하여 이 활성화 함수를 활용할 수 있습니다. 또는 각 히든 레이어의 수에 맞게 개별적으로 조정할 준비가 되면 귀찮은 초매개변수가 될 수 있습니다.

특정 초매개변수는 과학적 초매개변수, 잘못된 초매개변수 또는 고정 초매개변수일 수 있습니다. 초매개변수의 지정은 실험적 목표에 따라 달라집니다. 예를 들어 활성화 함수는 다음 중 하나일 수 있습니다.

  • 과학적 초매개변수: ReLU 또는 tanh가 이 문제에 더 적합한가요?
  • 성가수 초매개변수
  • 초매개변수 수정: ReLU net의 경우 특정 위치에 일괄 정규화를 추가하면 도움이 되나요?

새로운 실험을 설계할 때:

  1. 실험 목표에 대한 과학적 초매개변수 파악 이 단계에서는 다른 모든 초매개변수를 성가신 초매개변수로 간주할 수 있습니다.
  2. 일부 잘못된 초매개변수를 고정된 초매개변수로 변환합니다.

무한한 리소스를 사용하는 경우 과학적이지 않은 모든 초매개변수를 성가 있는 초매개변수로 남겨두면 실험에서 도출한 결론에 고정된 초매개변수 값에 대한 주의가 필요하지 않습니다. 하지만 초매개변수를 조정하려고 할 때 귀찮은 초매개변수가 많을수록 과학적 초매개변수의 각 설정에 대해 이를 미세 조정하지 못해 실험에서 잘못된 결론에 도달할 위험이 커집니다. 이후 섹션에서 설명한 대로 컴퓨팅 예산을 늘려 이 위험을 완화할 수 있습니다. 하지만 대부분의 비과학적 리소스가 비과학적인 모든 초매개변수를 조정하는 데 필요한 것보다 적은 경우가 많습니다.

성가신 초매개변수를 수정해 발생하는 주의사항이 성가신 초매개변수로 포함하는 비용보다 덜 덜 부담스러울 때 성가수 초매개변수를 고정 초매개변수로 변환하는 것이 좋습니다. 성가신 초매개변수와 과학적 초매개변수의 상호작용이 많을수록 값을 수정하는 데 더 많은 피해를 줍니다. 예를 들어 가중치 감소의 가장 좋은 값은 일반적으로 모델 크기에 따라 달라지므로 특정 가중치 감소 값을 가정할 경우 여러 모델 크기를 비교하는 것은 그다지 유용한 정보가 아닙니다.

일부 옵티마이저 매개변수

일반적으로 최적화 도구 초매개변수 (예: 학습률, 운동, 학습률 일정 매개변수, 아담 베타)는 다른 변경사항과 가장 많이 상호작용하는 경향이 있기 때문에 성가신 초매개변수입니다. 이러한 옵티마이저 초매개변수는 '현재 파이프라인에 가장 적합한 학습률은?'과 같은 목표는 많은 유용한 정보를 제공하지 못하므로 과학적 초매개변수에 해당하는 경우가 거의 없습니다. 결국 최적의 설정은 다음 파이프라인이 변경될 때 변경될 수 있습니다.

리소스 제약 조건이나 과학적 매개변수와 상호작용하지 않는다는 강력한 근거로 인해 일부 옵티마이저 초매개변수를 때때로 수정할 수 있습니다. 하지만 일반적으로 서로 다른 과학적 초매개변수 설정을 공정하게 비교하기 위해 옵티마이저 초매개변수를 별도로 미세 조정해야 하므로 이 문제를 해결해서는 안 됩니다. 또한 한 가지 옵티마이저 초매개변수 값을 다른 값보다 우선할 이유는 없습니다. 예를 들어 옵티마이저 초매개변수 값은 일반적으로 정방향 전달 또는 경사의 계산 비용에 어떤 영향도 미치지 않습니다.

옵티마이저 선택

옵티마이저의 선택은 일반적으로 다음 중 하나입니다.

  • 과학적 초매개변수
  • 고정 초매개변수

옵티마이저는 실험 목표에 2개 이상의 서로 다른 옵티마이저를 공정하게 비교하는 것이 적용되는 과학적 초매개변수입니다. 예를 들면 다음과 같습니다.

지정된 수의 단계에서 유효성 검사 오류가 가장 적은 옵티마이저를 결정합니다.

또는 다음과 같은 여러 이유로 옵티마이저를 고정 초매개변수로 만들 수 있습니다.

  • 이전 실험에서 조정 문제에 가장 적합한 옵티마이저는 현재 과학적 초매개변수에 민감하지 않은 것으로 나타났습니다.
  • 학습 곡선을 추론하기가 더 쉬우므로 이 옵티마이저를 사용하여 과학적 초매개변수 값을 비교하려고 합니다.
  • 이 옵티마이저는 대체 메모리보다 메모리를 적게 사용하므로 선호합니다.

정규화 초매개변수

정규화 기법에 의해 도입된 초매개변수는 일반적으로 성가신 초매개변수입니다. 그러나 정규화 기법을 포함할지 여부를 선택하는 것은 과학적 또는 고정 초매개변수입니다.

예를 들어 드롭아웃 정규화는 코드 복잡성을 더합니다. 따라서 드롭아웃 정규화를 포함할지 여부를 결정할 때 '드롭아웃 없음'과 '드롭아웃'을 과학적인 초매개변수로 만들지만 드롭아웃율로는 성가신 초매개변수를 사용할 수 있습니다. 이 실험을 기반으로 파이프라인에 드롭아웃 정규화를 추가하기로 결정하면 드롭아웃 비율이 향후 실험에서 귀찮은 초매개변수가 됩니다.

아키텍처 초매개변수

아키텍처 초매개변수는 아키텍처 변경사항이 서빙 및 학습 비용, 지연 시간, 메모리 요구사항에 영향을 줄 수 있으므로 과학적이거나 고정된 초매개변수인 경우가 많습니다. 예를 들어 레이어의 수는 일반적으로 학습 속도 및 메모리 사용량에 극적인 결과를 가져오는 경향이 있으므로 과학적이거나 고정된 초매개변수입니다.

과학적 초매개변수에 대한 종속 항목

일부 경우 성가신 및 고정 초매개변수 집합이 과학적 초매개변수 값에 따라 달라집니다. 예를 들어 Nesterov 모멘텀에서 어떤 옵티마이저가 생성되었는지 알아보려고 하는데 Adam은 가장 낮은 검증 오류로 생성됩니다. 이 경우에는 다음과 같습니다.

  • 과학적 초매개변수는 {"Nesterov_momentum", "Adam"} 값을 취하는 옵티마이저입니다.
  • optimizer="Nesterov_momentum" 값에는 초매개변수 또는 {learning_rate, momentum}라는 초매개변수가 있을 수 있습니다.
  • optimizer="Adam" 값에는 초매개변수 또는 {learning_rate, beta1, beta2, epsilon}라는 초매개변수가 도입됩니다.

과학적 초매개변수의 특정 값에만 존재하는 초매개변수는 조건부 초매개변수라고 합니다. 이름이 같다고 조건부 초매개변수 두 개가 같다고 가정하지 마세요. 이전 예에서 learning_rate라는 조건부 초매개변수는 optimizer="Adam"optimizer="Nesterov_momentum"와 다른 초매개변수입니다. 이 알고리즘의 역할은 두 알고리즘에서 비슷하지만 동일하지는 않지만 각 옵티마이저에서 잘 작동하는 값 범위는 일반적으로 몇 자릿수 단위로 다릅니다.

학습 세트 만들기

과학 및 성가신 초매개변수를 식별한 후에는 실험적 목표를 향해 진행하도록 연구 또는 일련의 과정을 설계해야 합니다. 학습은 후속 분석을 위해 실행할 초매개변수 구성 집합을 지정합니다. 각 구성을 체험이라고 합니다. 학습을 만들려면 일반적으로 다음 항목을 선택해야 합니다.

  • 시도에 따라 달라지는 초매개변수입니다.
  • 초매개변수가 사용할 수 있는 값 (검색 공간)
  • 시도 횟수입니다.
  • 검색 공간에서 많은 시도를 샘플링하는 자동 검색 알고리즘

또는 초매개변수 구성을 수동으로 지정하여 학습을 만들 수 있습니다.

이 연구의 목적은 다음과 같습니다.

  • 다양한 과학적 초매개변수 값을 사용하여 파이프라인을 실행합니다.
  • 다양한 과학적 초매개변수 값 간의 비교가 최대한 공정하도록 잘못된 초매개변수를 '최적화' (또는 '최적화')합니다.

가장 간단한 사례에서는 과학적 매개변수 구성마다 별도의 연구를 수행하여 각 연구가 귀찮은 초매개변수에 맞춰 조정됩니다. 예를 들어 Nesterov 모멘텀과 Adam 중에서 최적의 옵티마이저를 선택하는 것이 목표라면 두 가지 연구를 만들 수 있습니다.

  • optimizer="Nesterov_momentum" 및 성가신 초매개변수가 {learning_rate, momentum}인 연구 1건
  • optimizer="Adam" 및 성가신 초매개변수가 {learning_rate, beta1, beta2, epsilon}인 또 다른 연구입니다.

각 조사에서 실적이 가장 우수한 시도를 선택하여 두 옵티마이저를 비교합니다.

Bayesian 최적화 또는 진화 알고리즘과 같은 경사를 사용하지 않는 최적화 알고리즘을 사용하여 성가신 초매개변수에 대해 최적화할 수 있습니다. 하지만 이 설정에는 다양한 이점이 있으므로 조정의 탐색 단계에서 유사 무작위 검색을 사용하는 것이 좋습니다. 탐색 분석이 완료되면 최첨단 Bayesian 최적화 소프트웨어 (사용 가능한 경우)를 사용하는 것이 좋습니다.

많은 수의 과학적 초매개변수 값을 비교하려고 하지만 더 많은 독립적인 연구를 실천하기란 실용적이지 않은 사례를 생각해 보세요. 이 경우 다음 작업을 수행할 수 있습니다.

  • 사소한 초매개변수와 동일한 검색 공간에 과학적 매개변수를 포함합니다.
  • 검색 알고리즘을 사용하여 단일 연구에서 과학적 초매개변수 및 성가신 초매개변수 값을 모두 샘플링합니다.

이 접근 방식을 사용할 경우 조건부 초매개변수로 인해 문제가 발생할 수 있습니다. 결국 과학적인 초매개변수의 모든 값에 대해 성가신 초매개변수 집합이 동일하지 않으면 검색 공간을 지정하기가 어렵습니다. 이 경우 더 매력적인 블랙박스 최적화 도구보다 유사 무작위 검색을 사용하는 것이 더 강력합니다. 과학적 초매개변수의 다양한 값이 균일하게 샘플링되기 때문입니다. 검색 알고리즘과 관계없이 과학적 매개변수를 균일하게 검색해야 합니다.

유익한 실험과 합리적인 가격의 실험 간 균형을 유지하세요.

학습 또는 학습 시퀀스를 설계할 때는 다음 세 가지 목표를 적절하게 달성하기 위해 제한된 예산을 할당합니다.

  • 서로 다른 과학적 초매개변수 값을 충분히 비교합니다.
  • 충분히 큰 검색 공간을 통해 귀찮은 초매개변수 조정
  • 성가신 초매개변수의 검색 공간을 충분히 샘플링합니다.

이 세 가지 목표를 더 잘 달성할수록 실험에서 더 많은 정보를 추출할 수 있습니다. 가능한 한 많은 과학적 초매개변수 값을 비교하면 실험에서 얻은 유용한 정보의 범위가 넓어집니다.

성가수 초매개변수를 가능한 한 많이 포함하고 각 성가수 초매개변수가 가능한 한 크게 변화하도록 허용하면 과학적 초매개변수 구성마다 '좋은' 값이 검색 공간에 존재한다는 신뢰도가 높아집니다. 그렇지 않으면 과학적 매개변수 값의 일부에 더 나은 값이 있을 수 있는 귀찮은 초매개변수 공간의 가능한 영역을 검색하지 않고 과학적인 초매개변수 값을 부당하게 비교할 수도 있습니다.

성가신 초매개변수의 검색 공간을 가능한 한 밀도 있게 샘플링합니다. 이렇게 하면 검색 절차에서 검색 공간에 존재하는 성가신 초매개변수에 적합한 설정을 찾을 수 있습니다. 그렇지 않으면 과학적 매개변수 값 간에 불공정한 비교가 발생할 수 있습니다. 이는 일부 값이 성가신 초매개변수의 샘플링과 관련하여 더 운이 좋기 때문입니다.

안타깝게도 이러한 세 가지 측정기준의 개선사항에는 다음 중 하나가 필요합니다.

  • 시도 횟수를 늘리면 리소스 비용이 증가합니다.
  • 다른 측정기준 중 하나에서 리소스를 저장하는 방법 찾기

모든 문제에는 고유한 특이성과 계산 제약이 있기 때문에 이러한 세 가지 목표에 리소스를 할당하려면 어느 정도의 도메인 지식이 필요합니다. 연구를 실행한 후에는 연구에서 사소한 초매개변수가 충분히 조정되었는지 파악해 보세요. 즉, 이 연구에서는 과학적 초매개변수를 공정하게 비교할 수 있을 만큼 넓은 공간을 충분히 검색했습니다 (다음 섹션에서 더 자세히 설명함).

실험 결과 활용

권장 사항: 각 실험 그룹의 과학적 목표를 달성하려고 하는 것 외에도 추가 질문 체크리스트를 진행하세요. 문제가 발견되면 실험을 수정하고 다시 실행하세요.

각 실험 그룹에는 구체적인 목표가 있습니다. 실험이 해당 목표에 대해 제공하는 증거를 평가해야 합니다. 하지만 올바른 질문을 하면 주어진 일련의 실험이 원래 목표를 향해 진행되기 전에 수정할 문제를 찾을 수 있습니다. 이러한 질문을 하지 않으면 잘못된 결론을 도출할 수 있습니다.

실험을 진행하는 데는 비용이 많이 들 수 있으므로 이러한 통계가 현재 목표와 즉각적으로 관련이 없더라도 각 실험 그룹에서 유용한 통계를 추출해야 합니다.

원래의 목표를 달성하기 위해 주어진 일련의 실험을 분석하기 전에 다음과 같은 추가 질문을 생각해 보세요.

  • 검색 공간이 충분히 큰가요? 연구에서 최적의 지점이 하나 이상의 측정기준에서 검색 공간의 경계 근처에 있다면 검색의 너비가 충분하지 않을 수 있습니다. 이 경우 확장 검색 공간을 사용하여 또 다른 연구를 진행합니다.
  • 검색 공간을 충분히 샘플링했나요? 그렇지 않은 경우 더 많은 포인트를 실행하거나 조정 목표에 대한 의욕이 줄어듭니다.
  • 각 조사의 시도 중 실행할 수 없는 비율은 무엇인가요? 즉, 어떤 시도로 인해 편차가 발생하거나 최악의 손실 값이 발생하거나 일부 암시적 제약 조건을 위반하여 실행이 전혀 실패하나요? 연구에서 특정 지점의 매우 큰 부분을 처리할 수 없는 경우 이러한 공간을 샘플링하지 않도록 검색 공간을 조정하세요. 경우에 따라 검색 공간을 다시 매개변수화해야 합니다. 경우에 따라서는 실행할 수 없는 지점이 많으면 학습 코드에 버그가 있다는 의미일 수도 있습니다.
  • 모델에 최적화 문제가 있나요?
  • 최고 시도 횟수의 학습 곡선에서 무엇을 알 수 있나요? 예를 들어 최적의 시도에서 문제가 있는 과적합과 일치하는 학습 곡선이 있나요?

필요한 경우 이전 질문에 대한 답변을 기반으로 최근 연구 또는 연구 그룹을 미세 조정하여 검색 공간을 개선하고 더 많은 시도를 샘플링하거나 다른 수정 조치를 취합니다.

앞의 질문에 답한 후 실험이 원래 목표에 대해 제공하는 증거를 평가할 수 있습니다(예: 변경사항이 유용한지 평가).

검색 공간은 샘플링된 최고의 지점이 경계에 가까워지면 의심스럽습니다. 해당 방향으로 검색 범위를 확장하면 훨씬 더 좋은 점을 찾을 수 있습니다.

검색 공간 경계를 확인하려면 완료된 시도를 기본 초매개변수 축 플롯이라고 하는 것이 좋습니다. 여기서는 초매개변수 목표 중 하나(예: 학습률)와 비교하여 검증 목표 값을 표시합니다. 플롯의 각 점은 단일 시도에 해당합니다.

각 시도의 검증 목표 값은 일반적으로 학습 과정에서 달성한 최상의 값입니다.

잘못된 검색 공간 경계를 보여주는 검증 세트 (y축) 및 최대 학습률 (x축)의 오류율 그래프 이 그래프에서 최적 시도 (최저 오류율)는 최대 학습률이 가장 높은 검색 공간 가장자리에 가깝습니다. 유효한 검색 공간 경계를 보여주는 검증 세트 (y축)와 최대 학습률 (x축)의 오류율 비교 그래프 이 그래프에서 최적의 시도 (최저 오류율)는 검색 공간의 중간 근처에 있으며, 최대 학습률은 0.00001이나 0.1일 때가 아니라 최고 학습률은 0.001입니다.

그림 1: 잘못된 검색 공간 경계 및 허용되는 검색 공간 경계의 예

그림 1의 플롯은 초기 학습률 대비 오류율 (낮을수록 좋음)을 보여줍니다. 최적 지점이 검색 공간의 가장자리 쪽으로 클러스터링되면 (최상의 차원에서) 관측된 최선의 지점이 더 이상 경계에 가까워지지 않을 때까지 검색 공간 경계를 확장해야 할 수 있습니다.

연구에는 종종 이탈하거나 매우 나쁜 결과를 가져오는 '실행 불가능한' 시도가 포함됩니다 (그림 1에 빨간색 X로 표시됨). 모든 시도를 특정 기준점보다 큰 학습률로 실행할 수 없으며 실적이 가장 좋은 시도에 해당 지역 에지에서 학습률이 포함되어 있으면 모델의 안정성 문제가 발생하여 학습률을 높일 수 없습니다.

검색 공간에서 충분한 지점을 샘플링하지 않음

일반적으로 검색 공간이 충분히 샘플링되었는지 확인하기가 매우 어려울 수 있습니다. 🇦 시도 횟수를 줄이는 것보다 시도를 많이 하는 게 좋지만 더 많은 시도를 하면 명백하게 추가 비용이 발생합니다.

충분히 샘플링한 것을 알기 어렵기 때문에 다음을 권장합니다.

  • 감당할 수 있는 금액을 샘플링하세요.
  • 다양한 초매개변수 축 플롯을 반복적으로 보고 검색 공간의 '좋은' 영역에 있는 포인트 수를 파악하려고 할 때 직관적인 신뢰도를 조정합니다.

학습 곡선 검토

요약: 손실 곡선을 검토하면 일반적인 장애 모드를 쉽게 식별할 수 있으며 다음 잠재적 작업의 우선순위를 정할 수 있습니다.

대부분의 경우 실험의 기본 목표는 각 시도의 유효성 검사 오류만 고려하면 됩니다. 하지만 각 시도를 하나의 숫자로 줄일 때는 주의해야 합니다. 왜냐하면 이 포커스는 표면 아래의 상황에 관한 중요한 세부정보를 숨길 수 있기 때문입니다. 모든 연구에서 최소한 몇 가지 시도의 손실 곡선을 살펴보는 것이 좋습니다. 기본 실험 목표를 해결하는 데 이 과정이 필요하지 않더라도 학습 손실과 검증 손실을 포함하여 손실 곡선을 검사하면 일반적인 실패 모드를 식별하는 데 유용하며 다음에 수행할 작업의 우선순위를 정하는 데 도움이 될 수 있습니다.

손실 곡선을 검사할 때 다음 질문에 집중하세요.

  • 문제가 되는 과적합이 발생한 실험이 있나요? 문제가 있는 학습 중 검증 오류가 증가하기 시작하면 문제가 있는 과적합이 발생합니다. 과학적 초매개변수 설정마다 '최고'의 시도를 선택하여 사소한 초매개변수를 최적화하는 실험용 설정에서 비교 중인 과학적 초매개변수의 설정에 상응하는 각 권장사항에서 문제가 되는 과적합이 하나 이상 있는지 확인합니다. 최상의 시도 중 문제가 있는 과적합이 나타나는 경우 다음 중 하나 또는 둘 모두를 수행합니다.

    • 추가 정규화 기법으로 실험 재실행
    • 과학적 초매개변수 값을 비교하기 전에 기존 정규화 매개변수를 다시 조정합니다. 이는 과학적 초매개변수에 정규화 매개변수가 포함된 경우에는 적용되지 않을 수 있습니다. 이러한 정규화 매개변수의 강도가 낮아서 문제가 과적합으로 이어져도 놀랍지는 않을 것입니다.

    코드 복잡도나 추가 계산(예: 드롭아웃 정규화, 라벨 평활화, 가중치 감소)을 더하는 일반적인 정규화 기법을 사용하면 과적합을 간단하게 줄일 수 있습니다. 따라서 일반적으로 이러한 실험 중 하나 이상을 다음 실험에 추가하는 것은 간단합니다. 예를 들어 과학적 초매개변수가 '히든 레이어의 수'이고 히든 레이어를 가장 많이 사용하는 최선의 시도에서 과적합 문제가 발생하는 경우 더 작은 수의 히든 레이어를 즉시 선택하는 대신 추가 정규화로 다시 시도하는 것이 좋습니다.

    '최고'의 시도에서 문제가 있는 과적합이 발생하지 않더라도 시도에서 문제가 발생하면 여전히 문제가 발생할 수 있습니다. 최선의 시도를 선택하면 문제가 있는 과적합이 나타나는 구성이 억제되고 그렇지 않은 구성이 선호됩니다. 즉, 최선의 시도를 선택하면 보다 정규화가 적용된 구성이 우선시됩니다. 그러나 학습의 질을 떨어뜨리는 요인은 원래 의도하지 않았더라도 정규화 장치 역할을 할 수 있습니다. 예를 들어 학습률을 낮추면 최적화 프로세스를 사용 설정하여 학습을 정규화할 수 있지만 일반적으로 학습률을 이렇게 선택하는 것은 좋지 않습니다. 과학적 초매개변수의 각 설정에 대한 '최적'의 시도는 일부 과학 또는 성가신 초매개변수의 '나쁜' 값을 선호하는 방식으로 선택될 수 있습니다.

  • 학습 후반에 학습 또는 검증 오류에 높은 단계 편차가 있나요? 이 경우 다음 두 가지가 모두 방해될 수 있습니다.

    • 서로 다른 과학적 초매개변수 값을 비교할 수 있는 능력 각 무료 체험이 '럭키' 또는 '운이 좋지 않은' 단계로 무작위로 종료되기 때문입니다.
    • 프로덕션에서 최고의 시도 결과를 재현할 수 있는 능력 프로덕션 모델이 연구와 동일한 '행운' 단계로 끝나지 않을 수 있기 때문입니다.

    단계 간 편차의 가장 일반적인 원인은 다음과 같습니다.

    • 각 배치의 학습 세트에서 예시를 무작위로 샘플링하여 배치 배치가 분산됩니다.
    • 작은 검증 세트
    • 학습 속도가 너무 늦은 학습률 사용

    가능한 해결책은 다음과 같습니다.

    • 배치 크기를 늘립니다.
    • 추가 유효성 검사 데이터 가져오기
    • 학습률 붕괴 사용
    • Polyak 평균 사용
  • 교육이 끝난 후에도 시험 결과가 개선되나요? 그렇다면 '컴퓨팅 제약' 제도에 속하며 학습 단계 수를 늘리거나 학습률 일정을 변경하면 도움이 될 수 있습니다.

  • 학습 및 검증 세트의 성능이 최종 학습 단계 훨씬 전에 포화되었나요? 그렇다면 이는 '컴퓨팅 제약이 없는' 제도에 있으며 학습 단계 수를 줄일 수 있음을 나타냅니다.

이 목록 외에도 손실 곡선을 조사하면 다양한 추가 동작이 확연히 드러납니다. 예를 들어 학습 중에 학습 손실이 증가하는 것은 일반적으로 학습 파이프라인의 버그를 나타냅니다.

격리 플롯으로 변경사항이 유용한지 감지

ImageNet에서 학습된 ResNet-50의 최적 가중치 감소 값을 조사하는 격리 플롯 이 경우 가장 낮은 검증 오류율은 가중치 감소가 약 0.00005일 때입니다.

그림 2: ImageNet에서 학습된 ResNet-50의 최적 가중치 감소 값을 조사하는 격리 플롯

 

일련의 실험의 목표는 서로 다른 과학적 초매개변수 값을 비교하는 것입니다. 예를 들어 최선의 검증 오류를 야기하는 가중치 감소의 값을 결정하려 한다고 가정해 보겠습니다. 격리 플롯은 기본 초매개변수 축 플롯의 특수한 경우입니다. 격리 플롯의 각 점은 일부 (또는 모든)의 성가신 초매개변수에서 최고의 시도 성능에 해당합니다. 즉, 잘못된 초매개변수를 '최적화'한 후 모델 성능을 표시합니다.

격리 플롯은 서로 다른 과학적 초매개변수 값을 비교하는 작업을 간소화합니다. 예를 들어 그림 2의 격리 플롯은 ImageNet에서 학습된 ResNet-50의 특정 구성에 대한 최고의 검증 성능을 생성하는 가중치 감소 값을 보여줍니다.

가중치 감소를 포함할지 여부를 결정하는 것이 목표라면 이 도표에서 가장 좋은 포인트를 가중치 감소 없음의 기준과 비교합니다. 공정한 비교를 위해 기준의 학습률도 동일하게 조정해야 합니다.

(준시) 무작위 검색에 의해 생성된 데이터가 있고 격리 플롯에 대해 연속적인 초매개변수를 고려 중인 경우 기본 초매개변수 축 플롯의 x축 값을 버케팅하고 버킷에서 정의한 각 세로 슬라이스에서 최상의 시도를 수행하여 격리 플롯을 근사화할 수 있습니다.

일반적으로 유용한 플롯 자동화

플롯을 생성하는 데 더 많은 노력이 필요할수록 원하는 만큼 살펴볼 가능성이 낮습니다. 따라서 최대한 많은 플롯이 자동으로 생성되도록 인프라를 설정하는 것이 좋습니다. 최소한 실험에서 다양한 초매개변수에 대해 기본 초매개변수 도표를 자동으로 생성하는 것이 좋습니다.

또한 모든 시도에 대해 손실 곡선을 자동으로 생성하는 것이 좋습니다. 또한 각 연구에 가장 적합한 시도를 쉽게 찾고 손실 곡선을 검사하는 것이 좋습니다.

다른 유용한 플롯과 시각화도 추가할 수 있습니다. Geoffrey Hinton으로 표현하면 다음과 같습니다.

새로운 것을 배울 때마다 새로운 것을 배우게 됩니다.

후보 변경 채택 여부 결정

요약: 모델 또는 학습 절차를 변경할지 아니면 새 초매개변수 구성을 채택할지 결정할 때 결과의 다양한 소스 소스에 유의하세요.

모델을 개선하려고 할 때 특정 조합의 변경사항이 현재 구성에 비해 더 나은 검증 오류를 달성할 수 있습니다. 하지만 실험을 반복하면 지속적인 효과를 얻을 수 없습니다. 비일관적인 결과의 가장 중요한 소스는 다음과 같은 광범위한 카테고리로 그룹화할 수 있습니다.

  • 학습 절차 편차, 재분산, 시도 편차: 동일한 초매개변수를 사용하지만 무작위 시드가 다른 학습 실행 간의 변화입니다. 예를 들어 서로 다른 무작위 초기화, 학습 데이터 셔플, 드롭아웃 마스크, 데이터 증강 연산 패턴, 병렬 산술 연산 순서가 모두 시도 편차의 잠재적 원인입니다.
  • 초매개변수 검색 편차 또는 연구 분산: 초매개변수 선택 절차로 인해 발생한 결과 변동입니다. 예를 들어 특정 검색 공간에 대해 동일한 실험을 실행하지만 유사 검색어 두 개를 위한 유사 시드를 사용하여 서로 다른 초매개변수 값을 선택할 수 있습니다.
  • 데이터 수집 및 샘플링 분산: 학습 데이터 생성 프로세스로 인해 모든 종류의 무작위 분산이 학습, 검증, 테스트 데이터 또는 편차로 인한 분산입니다.

참. 신속 통계 통계를 사용하여 유한한 검증 세트에 대해 추정된 검증 오류율을 비교할 수 있습니다. 그러나 동일한 시도를 사용하는 경우 서로 다른 두 학습 모델 간에 통계적으로 유의미한 차이가 발생할 수 있습니다.

초매개변수 공간에 있는 개별 지점의 수준을 넘어서는 결론을 내릴 때 연구 편차가 가장 중요합니다. 연구 편차는 시도 횟수와 검색 공간에 따라 달라집니다. 연구 편차가 시험용 편차보다 큰 경우와 훨씬 작은 경우가 있습니다. 따라서 후보군 변경사항을 채택하기 전에 최적의 시도 N회를 실행하여 실행-테스트-평가 편차를 특성화하는 것이 좋습니다. 일반적으로는 파이프라인에 큰 변화가 발생한 후에만 시험 편차를 다시 지정할 수 있지만 경우에 따라 최신 추정치가 필요할 수 있습니다. 다른 애플리케이션에서는 시도 편차를 규정하는 것이 그만한 가치가 있습니다.

새로운 개선사항을 포함한 변경사항만 실제로 개선하고자 하지만 특정 변경이 도움이 된다는 완전한 확신을 요구하는 것도 정답은 아닙니다. 따라서 새 초매개변수 지점 (또는 다른 변경사항)이 기준보다 더 나은 결과를 얻는 경우 (새 포인트와 기준 모두의 재분산이 최대한 잘 고려됨) 향후 비교 시 새 기준으로 이를 채택해야 할 수 있습니다. 하지만 복잡성이 더 많이 추가되는 개선사항만 적용하는 변경사항을 채택하는 것이 좋습니다.

탐색 분석이 끝난 후

요약: Bayesian 최적화 도구는 적절한 검색 공간을 찾고 조정할 가치가 있는 초매개변수를 결정했을 때 매우 유용합니다.

결국 우선순위는 조정 문제에 관해 자세히 알아보는 것에서 시작 또는 다른 방식으로 사용하기 위한 최적의 단일 구성을 생성하는 것으로 바뀝니다. 이 시점에는 가장 잘 관찰된 시도를 기반으로 현지 지역이 편안하고 적절하게 샘플링된 세련된 검색 공간이 있어야 합니다. 탐색 분석 작업에서 조정할 가장 필수적인 초매개변수와 가능한 한 큰 조정 예산을 사용하여 최종 자동 조정 연구를 위한 검색 공간을 구성하는 데 사용할 수 있는 적절한 범위를 밝혀야 합니다.

미세 조정 문제에 대한 통계를 극대화하는 데 더 이상 관심이 없기 때문에 유사 랜덤 검색의 이점 중 다수가 더 이상 적용되지 않습니다. 따라서 최적의 초매개변수 구성을 자동으로 찾으려면 Bayesian 최적화 도구를 사용해야 합니다. 오픈소스 Vizier는 베이지안 최적화 알고리즘을 포함하여 ML 모델을 조정하기 위한 다양한 정교한 알고리즘을 구현합니다.

검색 공간에 주요하지 않은 분산 포인트가 포함되어 있다고 가정해 보겠습니다. 즉, NaN 학습 손실이 발생하거나 학습 손실이 평균보다 훨씬 더 많이 표준 편차가 많은 경우를 의미합니다. 이 경우 다른 시도를 적절히 처리하는 블랙박스 최적화 도구를 사용하는 것이 좋습니다. (이 문제를 처리하는 좋은 방법은 알 수 없는 제약 조건을 사용한 Bayesian 최적화를 참조하세요.) 오픈소스 Vizier는 구성 방식에 따라 Gelbart 외의 Google에서 선호하는 방법을 사용하지 않을 수도 있지만 시도를 실행 불가로 표시하여 다양한 지점 표시를 지원합니다.

탐색 분석이 완료되면 테스트 세트의 성능을 확인하는 것이 좋습니다. 원칙적으로 검증 세트를 학습 세트에 접하고 Bayesian 최적화로 찾은 최상의 구성을 다시 학습시킬 수도 있습니다. 그러나 이는 특정 워크로드 (예: 일회성 Kaggle 경연)로 향후 출시가 없는 경우에만 적합합니다.