随机外观模式
smac.facade.random_facade #
RandomFacade #
RandomFacade(
scenario: Scenario,
target_function: Callable | str | AbstractRunner,
*,
model: AbstractModel | None = None,
acquisition_function: AbstractAcquisitionFunction
| None = None,
acquisition_maximizer: AbstractAcquisitionMaximizer
| None = None,
initial_design: AbstractInitialDesign | None = None,
random_design: AbstractRandomDesign | None = None,
intensifier: AbstractIntensifier | None = None,
multi_objective_algorithm: AbstractMultiObjectiveAlgorithm
| None = None,
runhistory_encoder: AbstractRunHistoryEncoder
| None = None,
config_selector: ConfigSelector | None = None,
logging_level: int
| Path
| Literal[False]
| None = None,
callbacks: list[Callback] = None,
overwrite: bool = False,
dask_client: Client | None = None
)
基类: AbstractFacade
用于使用随机在线积极竞速 (ROAR) 的外观模式。
积极竞速 (Aggressive Racing): 当我们有一个新的配置 θ 时,我们想将其与当前最佳配置(即现有配置 θ*)进行比较。ROAR 使用“竞速”方法,对不具潜力的 θ 运行少量次数,而对有潜力的配置运行多次。一旦我们确信 θ 优于 θ*,我们就更新现有配置 θ* ⟵ θ。积极(Aggressive)
意味着在很早期(通常只需单次运行后)就拒绝表现不佳的配置。这整个过程称为积极竞速
。
ROAR 循环: 主要的 ROAR 循环如下所示
- 均匀随机选择一个配置 θ。
- 在线比较 θ 与现有配置 θ*(每次一个 θ)
- 使用
积极竞速
拒绝/接受 θ
设置: 使用随机模型和随机搜索来优化采集函数。
注意#
代理模型和采集函数在优化过程中未使用,因此被虚拟对象替代。
源代码位于 smac/facade/abstract_facade.py
105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 |
|
get_acquisition_function 静态方法
#
get_acquisition_function(
scenario: Scenario,
) -> AbstractAcquisitionFunction
随机外观模式未使用采集函数。因此,我们只返回一个虚拟函数。
源代码位于 smac/facade/random_facade.py
get_acquisition_maximizer 静态方法
#
get_acquisition_maximizer(
scenario: Scenario,
) -> RandomSearch
我们返回 RandomSearch
作为最大化器,它从配置空间中随机采样配置,因此既不使用采集函数也不使用模型。
源代码位于 smac/facade/random_facade.py
get_config_selector 静态方法
#
get_config_selector(
scenario: Scenario,
*,
retrain_after: int = 8,
retries: int = 16
) -> ConfigSelector
返回默认配置选择器。
源代码位于 smac/facade/abstract_facade.py
get_initial_design 静态方法
#
get_initial_design(
scenario: Scenario,
*,
additional_configs: list[Configuration] = None
) -> DefaultInitialDesign
返回一个初始设计,该设计返回默认配置。
参数#
additional_configs: list[Configuration],默认为 [] 将附加配置添加到初始设计中。
源代码位于 smac/facade/random_facade.py
get_intensifier 静态方法
#
get_intensifier(
scenario: Scenario,
*,
max_config_calls: int = 3,
max_incumbents: int = 10
) -> Intensifier
返回 Intensifier
作为强化器。
注意#
如果您想包含预算,请使用 HyperbandFacade
。
警告#
如果您处于算法配置设置中,请考虑增加 max_config_calls
。
参数#
max_config_calls : int,默认为 3 最大配置评估次数。基本而言,对于一个配置,最多应该评估多少个实例-种子键。max_incumbents : int,默认为 10 在多目标情况下要跟踪多少个现有配置。
源代码位于 smac/facade/random_facade.py
get_model 静态方法
#
get_model(scenario: Scenario) -> RandomModel
该模型用于采集函数中。由于我们不使用采集函数,因此我们返回一个虚拟模型(在这种情况下返回随机值)。
源代码位于 smac/facade/random_facade.py
get_multi_objective_algorithm 静态方法
#
get_multi_objective_algorithm(
scenario: Scenario,
*,
objective_weights: list[float] | None = None
) -> MeanAggregationStrategy
返回多目标算法的平均聚合策略。
参数#
scenario : Scenario objective_weights : list[float] | None,默认为 None 用于加权平均目标的权重。必须与目标数量长度相同。
源代码位于 smac/facade/random_facade.py
get_random_design 静态方法
#
get_random_design(
scenario: Scenario,
) -> AbstractRandomDesign
就像采集函数一样,我们不使用随机设计。因此,我们返回一个虚拟设计。
源代码位于 smac/facade/random_facade.py
get_runhistory_encoder 静态方法
#
get_runhistory_encoder(
scenario: Scenario,
) -> RunHistoryEncoder
optimize #
优化算法的配置。
参数#
data_to_scatter: dict[str, Any] | None 我们首先注意到此参数仅对 dask_runner 有效!当用户将数据从其本地进程分散到分布式网络时,这些数据将以轮询方式按核心数分组分发。粗略地说,我们可以将这些数据保存在内存中,这样每次我们想用大数据集执行目标函数时,就不必序列化/反序列化数据。例如,当您的目标函数具有在所有目标函数之间共享的大数据集时,此参数非常有用。
返回值#
incumbent : Configuration 找到的最佳配置。
源代码位于 smac/facade/abstract_facade.py
tell #
tell(
info: TrialInfo, value: TrialValue, save: bool = True
) -> None
将试验结果添加到运行历史记录并更新强化器。
参数#
info: TrialInfo 描述要处理结果的试验。value: TrialValue 包含有关试验执行的相关信息。save : bool,可选,默认为 True 是否应该保存运行历史记录。
源代码位于 smac/facade/abstract_facade.py
validate #
在与优化过程中使用的种子不同的种子上以及在最高预算(如果预算类型为实值)下验证配置。
参数#
config : Configuration 要验证的配置 instances : list[str] | None,默认为 None 要验证的实例。如果为 None,则使用场景中指定的所有实例。如果预算类型为实值,则忽略此参数。seed : int | None,默认为 None 如果为 None,则使用场景中的种子。
返回值#
cost : float | list[float] 配置的平均成本。在多保真度情况下,每个目标的成本将被平均。