Definiera ett sökutrymme
Den uppsättning hyperparametervärden som provas under hyperparameterjustering kallas sökutrymme. Definitionen av intervallet med möjliga värden som kan väljas beror på typen av hyperparameter.
Diskreta hyperparametrar
Vissa hyperparametrar kräver diskreta värden , med andra ord måste du välja värdet från en viss ändlig uppsättning möjligheter. Du kan definiera ett sökutrymme för en diskret parameter med hjälp av en Choice- från en lista med explicita värden, som du kan definiera som en Python -lista (Choice(values=[10,20,30])), ett intervall (Choice(values=range(1,10))) eller en godtycklig uppsättning kommaavgränsade värden (Choice(values=(30,50,100)))
Du kan också välja diskreta värden från någon av följande diskreta distributioner:
-
QUniform(min_value, max_value, q): Returnerar ett värde som round(Uniform(*min_value*, *max_value*) / q) * q -
QLogUniform(min_value, max_value, q): Returnerar ett värde som round(exp(Uniform(min_value, max_value)) / q) * q -
QNormal(mu, sigma, q): Returnerar ett värde som round(Normal(mu, sigma) / q) * q -
QLogNormal(mu, sigma, q): Returnerar ett värde som round(exp(Normal(mu, sigma)) / q) * q
Kontinuerliga hyperparametrar
Vissa hyperparametrar är kontinuerliga – med andra ord kan du använda valfritt värde längs en skala, vilket resulterar i ett oändligt antal möjligheter. Om du vill definiera ett sökutrymme för den här typen av värde kan du använda någon av följande distributionstyper:
-
Uniform(min_value, max_value): Returnerar ett värde som är jämnt fördelat mellan min_value och max_value -
LogUniform(min_value, max_value): Returnerar ett värde som ritats enligt exp(Uniform(min_value, max_value)) så att logaritmen för returvärdet fördelas jämnt -
Normal(mu, sigma): Returnerar ett verkligt värde som normalt distribueras med medelvärdet mu och standardavvikelse sigma -
LogNormal(mu, sigma): Returnerar ett värde som ritats enligt exp(Normal(mu, sigma)) så att logaritmen för returvärdet normalt distribueras
Definiera ett sökutrymme
Om du vill definiera ett sökutrymme för hyperparameterjustering skapar du en ordlista med lämpligt parameteruttryck för varje namngiven hyperparameter.
Följande sökutrymme anger till exempel att batch_size hyperparameter kan ha värdet 16, 32 eller 64, och learning_rate hyperparameter kan ha valfritt värde från en normal fördelning med medelvärdet 10 och en standardavvikelse på 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),
)