Een zoekruimte definiëren
De set hyperparameterwaarden die zijn geprobeerd tijdens het afstemmen van hyperparameters wordt de zoekruimte genoemd. De definitie van het bereik van mogelijke waarden die kunnen worden gekozen, is afhankelijk van het type hyperparameter.
Discrete hyperparameters
Voor sommige hyperparameters zijn discrete waarden vereist. Met andere woorden, u moet de waarde uit een bepaalde eindige set mogelijkheden selecteren. U kunt een zoekruimte definiëren voor een discrete parameter met behulp van een keuze uit een lijst met expliciete waarden, die u kunt definiëren als een Python-lijst (), een bereik (Choice(values=[10,20,30])
Choice(values=range(1,10))
) of een willekeurige set door komma's gescheiden waarden (Choice(values=(30,50,100))
)
U kunt ook discrete waarden selecteren uit een van de volgende discrete distributies:
QUniform(min_value, max_value, q)
: retourneert een waarde zoals round(Uniform(min_value, max_value) / q) * q)QLogUniform(min_value, max_value, q)
: retourneert een waarde zoals round(exp(uniform(min_value, max_value)) / q) * q)QNormal(mu, sigma, q)
: retourneert een waarde zoals round(Normal(mu, sigma) / q) * qQLogNormal(mu, sigma, q)
: retourneert een waarde zoals round(exp(normal(mu, sigma)) / q) * q
Continue hyperparameters
Sommige hyperparameters zijn doorlopend . Met andere woorden: u kunt elke waarde op een schaal gebruiken, wat resulteert in een oneindig aantal mogelijkheden. Als u een zoekruimte voor dit soort waarden wilt definiëren, kunt u een van de volgende distributietypen gebruiken:
Uniform(min_value, max_value)
: retourneert een uniform verdeelde waarde tussen min_value en max_valueLogUniform(min_value, max_value)
: retourneert een waarde die is getekend op basis van exp(Uniform(min_value, max_value)) zodat de logaritme van de retourwaarde uniform wordt verdeeldNormal(mu, sigma)
: retourneert een echte waarde die normaal wordt verdeeld met gemiddelde mu en standaarddeviatie sigmaLogNormal(mu, sigma)
: retourneert een waarde die is getekend op basis van exp(Normal(mu, sigma)) zodat de logaritme van de geretourneerde waarde normaal wordt verdeeld
Een zoekruimte definiëren
Als u een zoekruimte voor het afstemmen van hyperparameters wilt definiëren, maakt u een woordenlijst met de juiste parameterexpressie voor elke benoemde hyperparameter.
De volgende zoekruimte geeft bijvoorbeeld aan dat de batch_size
hyperparameter de waarde 16, 32 of 64 kan hebben en dat de learning_rate
hyperparameter elke waarde van een normale verdeling kan hebben met een gemiddelde van 10 en een standaarddeviatie van 3.
from azure.ai.ml.sweep import Choice, Normal
command_job_for_sweep = job(
batch_size=Choice(values=[16, 32, 64]),
learning_rate=Normal(mu=10, sigma=3),
)