HyperOpt 설명

HyperOpt로 모델 튜닝을 자동화하는 방법

튜닝 모델을 좋아합니까? 귀하의 답변이 "예"인 경우 이 게시물은 지원 당신을 위해.

하이퍼파라미터 하이퍼 파라미터 튜닝 모델 튜닝 머신 러닝 데이터 과학 sklearn 모델 mllib spark hyperopt tree parzen estimator tpe tree based parzen esimtator mlflow databricks
할아버지의 만화 — 웹 사이트.

이 블로그에서 우리는 트리 기반 Parzen 추정기 (TPE). TPE는 오픈 소스 패키지인 HyperOpt에서 지원됩니다. HyperOpt 및 TPE를 활용하여 기계 학습 엔지니어는 수동 조정 없이 고도로 최적화된 모델을 빠르게 개발.

더 이상 고민하지 않고 뛰어 들자!

HyperOpt는 TPE(Tree-based Parzen Esimtors)라는 알고리즘을 사용하여 사용자 정의 목적 함수를 최적화하는 모델 하이퍼파라미터를 선택하는 오픈 소스 Python 패키지입니다. 각 하이퍼파라미터의 기능적 형태와 경계를 간단하게 정의함으로써 TPE는 최적에 도달하기 위해 복잡한 하이퍼스페이스를 철저하면서도 효율적으로 검색합니다.

TPE는 베이지안 업데이트를 활용하고 아래 시퀀스를 따르는 순차 알고리즘입니다.

  1. 무작위로 선택된 여러 초매개변수 세트로 모델을 훈련시켜 목적 함수 값을 반환합니다.
  2. 관찰된 목적 함수 값을 임계값 감마(γ)에 따라 "좋은" 그룹과 "나쁜" 그룹으로 나눕니다.
  3. "promisingness" 점수를 계산하십시오. P(x|좋음) / P(x|나쁨).
  4. 혼합 모델을 통해 가능성을 최대화하는 초매개변수를 결정합니다.
  5. 4단계의 하이퍼파라미터를 사용하여 모델을 피팅합니다.
  6. 중지 기준이 될 때까지 2-5단계를 반복합니다.

여기입니다 빠른 코드 예제.

좋아, 그것은 많은 큰 단어였습니다. 속도를 늦추고 무슨 일이 일어나고 있는지 진정으로 이해합시다.

1.1 — 우리의 목표

데이터 과학자들은 바쁘다. 우리는 정말 좋은 모델을 만들고 싶지만 효율적이고 이상적으로는 손을 떼지 않는 방식으로 그렇게 합니다.

그러나 ML 모델링 수명 주기의 특정 단계는 자동화하기가 매우 어렵습니다. 예를 들어 탐색적 데이터 분석(EDA) 및 기능 엔지니어링은 일반적으로 주제에 따라 다르며 인간의 직관이 필요합니다. 반면에 모델 튜닝은 컴퓨터가 탁월할 수 있는 반복적인 프로세스입니다.

이 게시물 전체의 목표는 알고리즘을 활용하여 모델 조정 프로세스를 자동화하는 방법을 이해하는 것입니다.

그 목표에 대해 생각하는 데 도움이 되도록 비유를 들어보겠습니다. 우리는 묻힌 보물을 찾는 해적입니다. 또한 우리는 매장된 보물을 찾는 시간을 최소화하고자 하는 매우 효율적인 해적이라는 점에 주목하는 것도 중요합니다. 그렇다면 검색에 소요되는 시간을 어떻게 최소화해야 할까요? 정답은 지도를 사용!

하이퍼파라미터 하이퍼 파라미터 튜닝 모델 튜닝 머신 러닝 데이터 과학 sklearn 모델 mllib spark hyperopt tree parzen estimator tpe tree based parzen esimtator mlflow databricks
그림 1: 예시 3D 하이퍼파라미터 검색 공간. 보물 상자의 위치는 전역 최적입니다. 저자의 이미지.

그림 1에는 보물이 있는 위치를 보여주는 가상의 지도가 있습니다. 많은 등반과 파기 후에 보물이 어디에 있는지 정확히 알고 있기 때문에 그 보물에 도달하는 것은 그리 어렵지 않을 것입니다.

하지만 지도가 없으면 어떻게 됩니까?

모델 조정 작업을 수행할 때 불행히도 지도가 제공되지 않습니다. 하이퍼파미터 검색 공간에 해당하는 우리의 지형은 알 수 없습니다. 또한 최적의 하이퍼파라미터 집합에 해당하는 보물의 위치도 알 수 없습니다.

이 설정을 사용하여 이 공간을 효율적으로 탐색하고 보물을 찾을 수 있는 몇 가지 잠재적인 방법에 대해 이야기해 보겠습니다!

1.2 — 잠재적 솔루션

모델 튜닝의 원래 방법은 "수동"입니다. 엔지니어는 실제로 수동으로 다양한 구성을 테스트하고 어떤 하이퍼파라미터 조합이 최상의 모델을 생성하는지 확인합니다. 정보를 제공하지만 이 프로세스는 비효율적입니다. 더 좋은 방법이 있을 텐데…

1.2.1 — 그리드 검색(최악)

첫 번째 최적화 알고리즘은 그리드 검색입니다. 그리드 검색은 사용자 지정 그리드 내에서 가능한 모든 하이퍼파라미터 조합을 반복적으로 테스트합니다.

하이퍼파라미터 하이퍼 파라미터 튜닝 모델 튜닝 머신 러닝 데이터 과학 sklearn 모델 mllib spark hyperopt tree parzen estimator tpe tree based parzen esimtator mlflow databricks
그림 2: 그리드 검색 레이아웃의 예. 작성자별 이미지

예를 들어, 그림 2에서 빨간 점이 보이는 곳은 우리가 모델을 재학습하고 평가하는 곳입니다. 이 프레임워크는 비효율적입니다. 잘못된 하이퍼파라미터 재사용. 예를 들어 하이퍼파라미터 2가 목적 함수에 거의 영향을 미치지 않는 경우에도 해당 값의 모든 조합을 테스트하여 필요한 반복 횟수를 10배 늘립니다(이 예에서).

그러나 계속 진행하기 전에 그리드 검색은 올바르게 지정된 그리드가 주어지면 최적을 찾는 것이 보장되기 때문에 여전히 상당히 인기가 있다는 점에 유의하는 것이 중요합니다. 방법을 사용하기로 결정했다면, 하이퍼파라미터의 기능적 형태를 반영하도록 그리드를 변환해야 합니다. 예를 들어 max_depth는 랜덤 포레스트 분류기 는 정수입니다. 연속 공간을 검색하지 마십시오. 또한 균일한 분포를 가질 가능성도 낮습니다. 하이퍼파라미터의 기능적 형태를 알고 있다면 이를 반영하도록 그리드를 변환합니다.

요약하자면, 그리드 검색은 차원의 저주를 받고 평가 사이에 정보를 다시 계산하지만 여전히 널리 사용됩니다.

1.2.2 - 무작위 검색(양호)

두 번째 알고리즘은 임의 검색입니다. 임의 검색은 사용자가 지정한 그리드 내에서 임의의 값을 시도합니다. 그리드 검색과 달리, 우리는 효율성을 높이는 모든 가능한 하이퍼파라미터 조합을 테스트하도록 강등되지 않습니다.

하이퍼파라미터 하이퍼 파라미터 튜닝 모델 튜닝 머신 러닝 데이터 과학 sklearn 모델 mllib spark hyperopt tree parzen estimator tpe tree based parzen esimtator mlflow databricks
그림 3: 무작위 검색의 예. 저자의 이미지.

다음은 멋진 사실입니다. 무작위 검색은 (평균) 상위 5% 초매개변수 구성을 찾습니다. 60 회 반복. 즉, 그리드 검색과 마찬가지로 각 하이퍼파라미터의 기능적 형태를 반영하도록 검색 공간을 변환해야 합니다.

무작위 검색은 초매개변수 최적화를 위한 좋은 기준입니다.

1.2.3 — 베이지안 최적화(더 좋음)

세 번째 후보는 첫 번째 SMBO(순차 모델 기반 최적화) 알고리즘입니다. 이전 기술과의 주요 개념적 차이점은 반복적으로 이전 실행을 사용하여 향후 탐색 지점을 결정합니다.

하이퍼파라미터 하이퍼 파라미터 튜닝 모델 튜닝 머신 러닝 데이터 과학 sklearn 모델 mllib spark hyperopt tree parzen estimator tpe tree based parzen esimtator mlflow databricks
그림 4: 베이지안 최적화 예 — SRC. 저자의 이미지.

베이지안 하이퍼파라미터 최적화는 하이퍼파라미터 검색 공간의 확률적 분포를 개발하는 것입니다. 거기에서 예상되는 개선과 같은 획득 기능을 사용하여 하이퍼스페이스를 보다 "검색 가능"하게 변환합니다. 마지막으로 확률적 경사하강법(stochastic gradient descent)과 같은 최적화 알고리즘을 사용하여 획득 기능을 최대화하는 하이퍼파라미터를 찾습니다. 이러한 하이퍼파라미터는 모델에 적합하도록 사용되며 수렴될 때까지 프로세스가 반복됩니다.

베이지안 최적화는 일반적으로 임의 검색보다 성능이 우수하지만 숫자 초매개변수가 필요한 것과 같은 몇 가지 핵심 제한 사항이 있습니다.

1.2.4 — 트리 기반 Parzen 추정기(최상)

마지막으로 이 쇼의 주인공인 TPE(Tree-Based Parzen Estimators)에 대해 이야기해 보겠습니다. TPE는 일반적으로 기본 베이지안 최적화를 능가하는 또 다른 SMBO 알고리즘이지만 주요 판매 포인트는 트리 구조를 통해 복잡한 초매개변수 관계를 처리한다는 것입니다.

하이퍼파라미터 하이퍼 파라미터 튜닝 모델 튜닝 머신 러닝 데이터 과학 sklearn 모델 mllib spark hyperopt tree parzen estimator tpe tree based parzen esimtator mlflow databricks
그림 5: TPE의 계층 구조 예 — SRC. 저자의 이미지.

이것을 이해하기 위해 그림 5를 사용합시다. 트리 구조. 여기에서는 SVM(Support Vector Machine) 분류기를 훈련하고 있습니다. 우리는 두 개의 커널을 테스트할 것입니다: linearRBF. 에이 linear 커널은 너비 매개변수를 사용하지 않지만 RBF 따라서 중첩 사전을 사용하여 이 구조를 인코딩할 수 있으므로 검색 공간을 제한할 수 있습니다.

TPE는 또한 기존 베이지안 최적화가 지원하지 않는 범주형 변수를 지원합니다.

계속하기 전에 빠른 면책 조항이 있습니다. 기타 여러 초매개변수 조정 패키지. 각각은 다양한 알고리즘을 지원하며 그 중 일부는 랜덤 포레스트, 가우스 프로세스 및 유전 알고리즘을 포함합니다. TPE는 매우 널리 사용되는 범용 알고리즘이지만 반드시 최고는 아닙니다.

일반적으로 TPE는 매우 강력하고 효율적인 하이퍼파라미터 최적화 솔루션입니다.

이제 몇 가지 인기 있는 하이퍼파라미터 최적화 알고리즘에 대해 일반적으로 이해했으므로 TPE가 작동하는 방식에 대해 자세히 살펴보겠습니다.

다시 비유하자면 우리는 묻힌 보물을 찾는 해적 하지만 지도가 없다. 우리의 선장은 보물을 최대한 빨리 필요로 하므로 보물을 가질 확률이 높은 전략적 위치를 파고 이전 발굴을 사용하여 미래 발굴 위치를 결정해야 합니다.

2.1 — 초기화

시작하려면 우리 공간에 대한 제약을 정의. 위에서 언급했듯이 하이퍼파라미터는 종종 기능적 형태, 최대/최소 값 및 다른 하이퍼파라미터와의 계층적 관계를 갖습니다. ML 알고리즘과 데이터에 대한 지식을 사용하여 검색 공간을 정의할 수 있습니다.

다음으로 우리는 우리의 목적 함수를 정의, 하이퍼파라미터 조합이 얼마나 "좋은"지를 평가하는 데 사용됩니다. 몇 가지 예에는 RMSE 또는 AUC와 같은 고전적인 ML 손실 함수가 포함됩니다.

엄청난! 이제 제한된 검색 공간과 성공을 측정하는 방법이 있으므로 검색을 시작할 준비가 되었습니다.

2.2 — 반복 베이지안 최적화

베이지안 최적화는 목적 함수에 따라 "성공"할 확률이 높은 하이퍼스페이스의 점을 찾는 순차적 알고리즘입니다. TPE는 베이지안 최적화를 활용하지만 성능을 개선하고 검색 공간 복잡성을 처리하기 위해 몇 가지 영리한 트릭을 사용합니다.

2.2.0 — 개념적 설정

첫 번째 트릭은 모델링입니다. 피(x|y) 대신 피(y|x)…

하이퍼파라미터 하이퍼 파라미터 튜닝 모델 튜닝 머신 러닝 데이터 과학 sklearn 모델 mllib spark hyperopt tree parzen estimator tpe tree based parzen esimtator mlflow databricks
그림 6: TPE가 해결하려고 하는 조건부 확률. 저자의 이미지.

베이지안 최적화는 일반적으로 모델을 찾습니다. 피(y|x), 이는 목적 함수 값(y), 주어진 하이퍼파라미터(x). TPE는 그 반대입니다. 피(x|y), 이는 하이퍼파라미터(x), 주어진 목적 함수 값(y).

간단히 말해서, TPE는 최상의 목적 함수 값을 찾은 다음 관련 하이퍼파라미터를 결정하려고 합니다.

매우 중요한 설정을 통해 실제 알고리즘으로 들어가 보겠습니다.

2.2.1 — 데이터를 "좋은" 그룹과 "나쁜" 그룹으로 분할

우리의 목표는 목적 함수에 따라 최상의 하이퍼파라미터 값을 찾는 것임을 기억하십시오. 따라서 어떻게 활용할 수 있습니까? 피(x|y) 하기 위해서?

먼저 TPE는 관찰된 데이터 포인트를 두 그룹으로 나눕니다. 좋은표시 지(x), 나쁜표시 나(x). 좋음과 나쁨 사이의 컷오프는 사용자 정의 매개변수 감마(γ)에 의해 결정되며, 이는 관찰을 분할하는 목적 함수 백분위수에 해당합니다(y*).

따라서 γ = 0.5일 때 관찰을 분할하는 목적 함수 값(y*)는 우리가 관찰한 점의 중앙값이 됩니다.

하이퍼파라미터 하이퍼 파라미터 튜닝 모델 튜닝 머신 러닝 데이터 과학 sklearn 모델 mllib spark hyperopt tree parzen estimator tpe tree based parzen esimtator mlflow databricks
그림 7: p(x|y)를 두 세트로 분해. 저자의 이미지.

그림 7과 같이 형식화할 수 있습니다. 피(x|y) 위의 프레임워크를 사용합니다. 그리고, 해적 비유를 하자면...

Pirate Perspective: 우리가 이미 탐험한 장소를 살펴보면 l(x)는 보물이 거의 없는 장소를 나열하고 g(x)는 보물이 많은 장소를 나열합니다.

2.2.32 — "유망성" 점수 계산

둘째, TPE는 관찰되지 않은 하이퍼파라미터 조합을 평가하는 방법을 정의합니다. "약속" 점수.

하이퍼파라미터 하이퍼 파라미터 튜닝 모델 튜닝 머신 러닝 데이터 과학 sklearn 모델 mllib spark hyperopt tree parzen estimator tpe tree based parzen esimtator mlflow databricks
그림 8: 유망성 점수 정의. 저자의 이미지.

그림 8은 우리의 유망성 점수를 정의합니다(P), 이는 다음 구성 요소와의 비율에 불과합니다.

  • 분자: 초매개변수 집합을 관찰할 확률(x), 해당 목적 함수 값이 "좋은. "
  • 분모: 초매개변수 집합을 관찰할 확률(x), 해당 목적 함수 값이 "나쁜. "

"promisingness" 값이 클수록 하이퍼파라미터가 x "좋은" 목적 함수를 생성합니다.

Pirate Perspective: 유망성은 우리 지형의 주어진 위치에 많은 보물이 있을 가능성을 보여줍니다.

계속 진행하기 전에 잠시 제쳐두고, 베이지안 최적화에 익숙하다면 이 방정식은 획득 함수로 작용하며 에 비례합니다. 기대 개선(EI).

2.2.3 — 확률 밀도 추정치 생성

셋째, TPE는 다음을 통해 "유망성" 점수를 평가합니다. 혼합물 모델. 혼합 모델의 아이디어는 여러 확률 분포를 취하고 선형 조합을 사용하여 함께 모으는 것입니다. SRC. 이러한 결합된 확률 분포는 확률 밀도 추정치를 개발하는 데 사용됩니다.

일반적으로 혼합물 모델링 프로세스는 ...

  1. 포인트의 분포 유형을 정의합니다. 우리의 경우 변수가 범주형이면 가중치가 재지정된 범주형 분포를 사용하고 숫자이면 가우스(즉, 정규) 또는 균일 분포를 사용합니다.
  2. 각 지점을 반복하고 해당 지점에 분포를 삽입합니다.
  3. 확률 밀도 추정치를 얻기 위해 모든 분포의 질량을 합합니다.

이 프로세스는 두 세트에 대해 개별적으로 실행됩니다. 나(x)지(x).

그림 9의 예를 살펴보겠습니다.

하이퍼파라미터 하이퍼 파라미터 튜닝 모델 튜닝 머신 러닝 데이터 과학 sklearn 모델 mllib spark hyperopt tree parzen estimator tpe tree based parzen esimtator mlflow databricks
그림 9: 잘린 가우스 분포의 예는 3개의 초매개변수 관찰에 적합합니다. 저자의 이미지.

각 관찰(x축의 파란색 점)에 대해 정규 분포 ~N(μ, σ)을 생성합니다. 여기서…

  • μ(뮤) 정규 분포의 평균입니다. 값은 x축을 따라 점의 위치입니다.
  • σ(시그마) 정규 분포의 표준 편차입니다. 그 값은 가장 가까운 이웃 점까지의 거리입니다..

점이 서로 가까우면 표준 편차가 작아서 분포가 매우 높고 반대로 점이 떨어져 있으면 분포가 평평합니다(그림 10)…

하이퍼파라미터 하이퍼 파라미터 튜닝 모델 튜닝 머신 러닝 데이터 과학 sklearn 모델 mllib spark hyperopt tree parzen estimator tpe tree based parzen esimtator mlflow databricks
그림 10: 표준 편차가 정규 분포의 형태에 미치는 영향의 예. 저자의 이미지.

Pirate Perspective: NA — 해적은 혼합 모델에 적합하지 않습니다.

계속 진행하기 전에 잠시 제쳐두고: 문헌을 읽으면 TPE가 "잘린" 가우스를 사용한다는 것을 알 수 있습니다. 이는 단순히 가우스가 +/- 무한대로 확장하는 대신 하이퍼파라미터 구성에서 지정한 범위에 의해 제한된다는 것을 의미합니다. .

2.2.4 — 탐색할 다음 지점 결정하기!

이 조각들을 모아봅시다. 지금까지 우리는 1) 목적 함수 관찰을 획득하고, 2) "유망성" 공식을 정의했으며, 3) 이전 값을 기반으로 하는 혼합 모델을 통해 확률 밀도 추정치를 생성했습니다. 우리는 주어진 포인트를 평가할 모든 조각을 가지고 있습니다!

첫 번째 단계는 두 가지 모두에 대한 평균 확률 밀도 함수(PDF)를 만드는 것입니다. 지(x) 나(x).

하이퍼파라미터 하이퍼 파라미터 튜닝 모델 튜닝 머신 러닝 데이터 과학 sklearn 모델 mllib spark hyperopt tree parzen estimator tpe tree based parzen esimtator mlflow databricks
그림 11: 3개의 관찰된 지점이 주어진 평균 확률 밀도의 오버레이. 저자의 이미지.

예제 프로세스는 그림 11에 나와 있습니다. 빨간색 선은 평균 PDF이며 단순히 모든 PDF의 합계를 PDF 수로 나눈 것입니다.

평균 PDF를 사용하여 하이퍼파라미터 값(x) 에있는 지(x) or 나(x).

예를 들어, 그림 11에서 관찰된 값이 "좋은" 집합에 속한다고 가정해 보겠습니다. 지(x). 평균 PDF를 기반으로 하면 3.9 또는 0.05의 하이퍼파라미터 값이 "양호한" 집합에 속하지 않을 것입니다. 반대로 ~1.2의 하이퍼파라미터 값은 "좋은" 집합에 속할 가능성이 매우 높은 것 같습니다.

이제 이것은 사진의 절반에 불과합니다. 우리는 "나쁜" 세트에 대해 동일한 방법론을 적용합니다. 나(x). 극대화하려고 하기 때문에 지(엑스) / l(엑스), 유망한 포인트는 어디에 위치해야 지(x) 높고 나(x) 낮다.

멋지다, 맞지?

이러한 확률 분포를 사용하여 트리 구조의 하이퍼파라미터에서 샘플링하고 "가능성"을 최대화하고 탐색할 가치가 있는 하이퍼파라미터 세트를 찾을 수 있습니다.

Pirate Perspective: 우리가 파헤치는 다음 위치는 (보물이 많을 확률) / (보물이 거의 없을 확률)을 최대화하는 위치입니다.

이제 작동 방식을 알았으므로 오픈 소스 패키지인 HyperOpt를 통해 TPE를 구현하기 위한 몇 가지 실용적인 팁이 있습니다.

3.1 — HyperOpt 앱의 구조

일반적으로 HyperOpt를 활용할 때는 세 가지 주요 단계가 있습니다.

  1. 검색 공간을 정의하고, 최적화하려는 하이퍼파라미터의 범위와 기능적 형태일 뿐입니다.
  2. 피팅 함수를 정의하고, 당신을 부르는 model.fit() 주어진 기차/테스트 분할에 대한 기능.
  3. 목적 함수를 정의하고, 이는 RMSE 또는 AUC와 같은 고전적인 정확도 메트릭 중 하나입니다.

불행히도 이러한 자동화된 조정 방법에는 여전히 데이터 과학자의 설계 입력이 필요합니다. 이는 완전히 공짜 점심이 아닙니다. 그러나 일화적으로 TPE는 초매개변수 오명에 대해 매우 강력합니다(이유 내에서).

3.2— 팁과 요령

  • HyperOpt는 두 가지를 통해 병렬화할 수 있습니다. 아파치 스파크MongoDB의. 여러 코어로 작업하는 경우 클라우드에 있든 로컬 시스템에 있든 상관없이 런타임을 크게 줄일 수 있습니다.
  • Apache Spark를 통해 조정 프로세스를 병렬화하는 경우 SparkTrials단일 노드 ML 모델(sklearn) 및 Trails 병렬화된 ML 모델(MLlib)용 개체입니다. 코드는 아래에 있습니다.
  • ML플로우 모델 실행을 추적하기 위한 오픈 소스 방법입니다. HyperOpt와 쉽게 통합됩니다.
  • 검색 공간을 너무 일찍 좁히지 마십시오. 하이퍼파라미터의 일부 조합은 놀라울 정도로 효과적일 수 있습니다.
  • 검색 공간을 정의하는 것은 까다로울 수 있습니다. 특히 하이퍼파라미터의 기능적 형태. 그러나 개인적인 경험에 따르면 TPE는 이러한 기능적 형식을 잘못 지정하는 데 매우 강력합니다.
  • 좋은 목적 함수를 선택하는 것은 먼 길을 간다. 대부분의 경우 오류는 동일하게 생성되지 않습니다. 특정 유형의 오류가 더 문제가 되는 경우 해당 논리를 함수에 구축해야 합니다.

3.3 — 코드 예

다음은 HyperOpt를 분산 방식으로 실행하기 위한 몇 가지 코드입니다. 책에 나온 코드를 그대로 옮겨 적었습니다. 기계 학습 엔지니어링 실행 — 여기 자식 저장소.

이 스니펫의 몇 ​​가지 좋은 기능에는 다음을 통한 병렬화가 포함됩니다. 아파치 스파크 및 모델 로깅을 통해 ML플로우. 또한 이 스니펫은 sklearn RandomForestRegressor를 최적화합니다. 필요에 맞게 모델과 피팅 기능을 변경해야 합니다.

그리고 거기에 있습니다. HyperOpt의 영광입니다!

희망을 망치기 위해 핵심 요점을 빠르게 요약해 보겠습니다.

초매개변수 조정은 ML 모델 수명 주기의 필수 부분이지만 시간이 많이 걸립니다. SMBO(Sequential Model-Based Optimization) 알고리즘은 최적을 위해 복잡한 하이퍼스페이스를 검색하는 데 탁월하며 하이퍼파라미터 튜닝에 적용할 수 있습니다. 트리 기반 Parzen Estimators(TPE)는 매우 효율적인 SMBO이며 Bayesian Optimization과 Random Search 모두를 능가합니다.

TPE는 중지 기준까지 아래 단계를 반복합니다.

  1. 일부 하이퍼파라미터인 감마에 따라 관찰된 지점을 "양호한" 세트와 "나쁜" 세트로 나눕니다.
  2. 평균 확률 밀도 추정치를 개발하기 위해 "좋은" 세트와 "나쁜" 세트 모두에 혼합 모델을 맞추십시오.
  3. 2단계를 활용하여 "좋은" 및 "나쁜" 세트에 포함될 확률을 추정하는 "유망성" 점수를 최적화하는 지점을 선택합니다.

마지막으로 SparkTrials를 통해 HyperOpt를 병렬화하는 방법을 보여주는 정말 멋진 코드 조각이 있습니다. 또한 모든 반복을 MLflow에 기록합니다.

출처 https://towardsdatascience.com/hyperopt-demystified-3e14006eb6fa?source=rss—-7f60cf5620c9—4에서 https://towardsdatascience.com/feed를 통해 HyperOpt Demystified 재게시

<!–

–>

타임 스탬프 :

더보기 블록 체인 컨설턴트