Optuna에서 특정 초기 값부터 최적화
7293 단어 hyperparameterOptunaPython
마찬가지로 학습을 시작하기 위해 초기 값을 지정할 수도 있다.
사전의 수동 실험에서 괜찮은 파라미터를 알았으니 주위를 탐색할 때 생각해 볼 수 있다.
TL, DR
trial.trial_id 조건 지점으로 초기 값을 지정합니다.
최적화 분포와 같은 분포 유형을 지정해야 합니다 (suggest uniform 등)
단, 클래스 변수 (suggest categorical) 는 범위의 변경에 대응하지 않기 때문에, 클래스 변수를 포함하는 초기 조건을 지정하려면 리셋해야 할 수도 있습니다.
범위를 바꾸다
Optuna의 tutorial에 게재된 예부터 시작합니다.import optuna
def objective(trial):
x = trial.suggest_uniform('x', -10, 10)
return (x - 2) ** 2
study = optuna.create_study()
study.optimize(objective, n_trials=100)
study.trials_dataframe()[('params', 'x')].plot()
이것은 일반적인 최적화다.
우선tutorial처럼 추가 학습을 해야 한다.study.optimize(objective, n_trials=100)
study.trials_dataframe()[('params', 'x')].plot()
가치의 범위를 바꾸어 보아라.Objective를 재정의합니다.
def objective2(trial):
x = trial.suggest_uniform('x', -40, 40)
return (x - 2) ** 2
study.optimize(objective2, n_trials=500)
study.trials_dataframe()[('params', 'x')].plot()
초기 값 설정 import optuna
def objective(trial):
if trial.trial_id ==0:
x = trial.suggest_uniform('x', 2, 2)
else:
x = trial.suggest_uniform('x', -10, 10)
return (x - 2) ** 2
study = optuna.create_study()
study.optimize(objective, n_trials=100)
study.trials_dataframe()[('params', 'x')].plot()
study.trials_dataframe().head(5)
x=2부터 시작했어요.원본 파일을 대충 봤을 뿐 샘플링 단계에서 이전에 시험해 본 값과 결과를 샘플링했기 때문에 큰 부작용이 없다고 생각합니다.
※ 하지만,suggestcategorical에서 하나의 값만 지정하면 분류 변수가dynamic range change를 지원하지 않는 등 오류가 발생할 수 있습니다.
Reference
이 문제에 관하여(Optuna에서 특정 초기 값부터 최적화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tmitani/items/c0acd198788089786e29
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Optuna의 tutorial에 게재된 예부터 시작합니다.
import optuna
def objective(trial):
x = trial.suggest_uniform('x', -10, 10)
return (x - 2) ** 2
study = optuna.create_study()
study.optimize(objective, n_trials=100)
study.trials_dataframe()[('params', 'x')].plot()
이것은 일반적인 최적화다.
우선tutorial처럼 추가 학습을 해야 한다.
study.optimize(objective, n_trials=100)
study.trials_dataframe()[('params', 'x')].plot()
가치의 범위를 바꾸어 보아라.Objective를 재정의합니다.
def objective2(trial):
x = trial.suggest_uniform('x', -40, 40)
return (x - 2) ** 2
study.optimize(objective2, n_trials=500)
study.trials_dataframe()[('params', 'x')].plot()
초기 값 설정 import optuna
def objective(trial):
if trial.trial_id ==0:
x = trial.suggest_uniform('x', 2, 2)
else:
x = trial.suggest_uniform('x', -10, 10)
return (x - 2) ** 2
study = optuna.create_study()
study.optimize(objective, n_trials=100)
study.trials_dataframe()[('params', 'x')].plot()
study.trials_dataframe().head(5)
x=2부터 시작했어요.원본 파일을 대충 봤을 뿐 샘플링 단계에서 이전에 시험해 본 값과 결과를 샘플링했기 때문에 큰 부작용이 없다고 생각합니다.
※ 하지만,suggestcategorical에서 하나의 값만 지정하면 분류 변수가dynamic range change를 지원하지 않는 등 오류가 발생할 수 있습니다.
Reference
이 문제에 관하여(Optuna에서 특정 초기 값부터 최적화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tmitani/items/c0acd198788089786e29
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import optuna
def objective(trial):
if trial.trial_id ==0:
x = trial.suggest_uniform('x', 2, 2)
else:
x = trial.suggest_uniform('x', -10, 10)
return (x - 2) ** 2
study = optuna.create_study()
study.optimize(objective, n_trials=100)
study.trials_dataframe()[('params', 'x')].plot()
study.trials_dataframe().head(5)
Reference
이 문제에 관하여(Optuna에서 특정 초기 값부터 최적화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tmitani/items/c0acd198788089786e29텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)