Skip to content

Commit c2d5bfc

Browse files
Update latest version of site
1 parent be18734 commit c2d5bfc

File tree

14 files changed

+313
-37
lines changed

14 files changed

+313
-37
lines changed

v/latest/api/_modules/botorch/acquisition/monte_carlo.html

+76-6
Original file line numberDiff line numberDiff line change
@@ -799,7 +799,7 @@ <h1>Source code for botorch.acquisition.monte_carlo</h1><div class="highlight"><
799799
<span class="sd"> non-negative. `qSimpleRegret` acquisition values can be negative, so we instead use</span>
800800
<span class="sd"> a `ConstrainedMCObjective` which applies constraints to the objectives (e.g. before</span>
801801
<span class="sd"> computing the acquisition function) and shifts negative objective values using</span>
802-
<span class="sd"> by an infeasible cost to ensure non-negativity (before applying constraints and</span>
802+
<span class="sd"> an infeasible cost to ensure non-negativity (before applying constraints and</span>
803803
<span class="sd"> shifting them back).</span>
804804

805805
<span class="sd"> Example:</span>
@@ -868,11 +868,11 @@ <h1>Source code for botorch.acquisition.monte_carlo</h1><div class="highlight"><
868868
<span class="sd"> `SampleReducingMCAcquisitionFunction` computes the acquisition values on the sample</span>
869869
<span class="sd"> level and then weights the sample-level acquisition values by a soft feasibility</span>
870870
<span class="sd"> indicator. Hence, it expects non-log acquisition function values to be</span>
871-
<span class="sd"> non-negative. `qSimpleRegret` acquisition values can be negative, so we instead use</span>
872-
<span class="sd"> a `ConstrainedMCObjective` which applies constraints to the objectives (e.g. before</span>
873-
<span class="sd"> computing the acquisition function) and shifts negative objective values using</span>
874-
<span class="sd"> by an infeasible cost to ensure non-negativity (before applying constraints and</span>
875-
<span class="sd"> shifting them back).</span>
871+
<span class="sd"> non-negative. `qUpperConfidenceBound` acquisition values can be negative, so we</span>
872+
<span class="sd"> instead use a `ConstrainedMCObjective` which applies constraints to the objectives</span>
873+
<span class="sd"> (e.g. before computing the acquisition function) and shifts negative objective</span>
874+
<span class="sd"> values using an infeasible cost to ensure non-negativity (before applying</span>
875+
<span class="sd"> constraints and shifting them back).</span>
876876

877877
<span class="sd"> Example:</span>
878878
<span class="sd"> &gt;&gt;&gt; model = SingleTaskGP(train_X, train_Y)</span>
@@ -946,6 +946,76 @@ <h1>Source code for botorch.acquisition.monte_carlo</h1><div class="highlight"><
946946
<span class="w"> </span><span class="sd">"""Multiply beta prime by -1 to get the lower confidence bound."""</span>
947947
<span class="k">return</span> <span class="o">-</span><span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_get_beta_prime</span><span class="p">(</span><span class="n">beta</span><span class="o">=</span><span class="n">beta</span><span class="p">)</span></div>
948948

949+
950+
951+
<div class="viewcode-block" id="qPosteriorStandardDeviation">
952+
<a class="viewcode-back" href="../../../acquisition.html#botorch.acquisition.monte_carlo.qPosteriorStandardDeviation">[docs]</a>
953+
<span class="k">class</span><span class="w"> </span><span class="nc">qPosteriorStandardDeviation</span><span class="p">(</span><span class="n">SampleReducingMCAcquisitionFunction</span><span class="p">):</span>
954+
<span class="w"> </span><span class="sa">r</span><span class="sd">"""MC-based batch Posterior Standard Deviation.</span>
955+
956+
<span class="sd"> An acquisition function for pure exploration.</span>
957+
958+
<span class="sd"> Example:</span>
959+
<span class="sd"> &gt;&gt;&gt; model = SingleTaskGP(train_X, train_Y)</span>
960+
<span class="sd"> &gt;&gt;&gt; sampler = SobolQMCNormalSampler(1024)</span>
961+
<span class="sd"> &gt;&gt;&gt; qPSTD = qPosteriorStandardDeviation(model, sampler)</span>
962+
<span class="sd"> &gt;&gt;&gt; std = qPSTD(test_X)</span>
963+
<span class="sd"> """</span>
964+
965+
<span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span>
966+
<span class="bp">self</span><span class="p">,</span>
967+
<span class="n">model</span><span class="p">:</span> <span class="n">Model</span><span class="p">,</span>
968+
<span class="n">sampler</span><span class="p">:</span> <span class="n">MCSampler</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
969+
<span class="n">objective</span><span class="p">:</span> <span class="n">MCAcquisitionObjective</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
970+
<span class="n">posterior_transform</span><span class="p">:</span> <span class="n">PosteriorTransform</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
971+
<span class="n">X_pending</span><span class="p">:</span> <span class="n">Tensor</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
972+
<span class="n">constraints</span><span class="p">:</span> <span class="nb">list</span><span class="p">[</span><span class="n">Callable</span><span class="p">[[</span><span class="n">Tensor</span><span class="p">],</span> <span class="n">Tensor</span><span class="p">]]</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
973+
<span class="n">eta</span><span class="p">:</span> <span class="n">Tensor</span> <span class="o">|</span> <span class="nb">float</span> <span class="o">=</span> <span class="mf">1e-3</span><span class="p">,</span>
974+
<span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
975+
<span class="w"> </span><span class="sa">r</span><span class="sd">"""q-Posterior Standard Deviation.</span>
976+
977+
<span class="sd"> Args:</span>
978+
<span class="sd"> model: A fitted model.</span>
979+
<span class="sd"> sampler: The sampler used to draw base samples. See `MCAcquisitionFunction`</span>
980+
<span class="sd"> more details.</span>
981+
<span class="sd"> objective: The MCAcquisitionObjective under which the samples are</span>
982+
<span class="sd"> evaluated. Defaults to `IdentityMCObjective()`.</span>
983+
<span class="sd"> posterior_transform: A PosteriorTransform (optional).</span>
984+
<span class="sd"> X_pending: A `batch_shape x m x d`-dim Tensor of `m` design points that have</span>
985+
<span class="sd"> points that have been submitted for function evaluation but have not yet</span>
986+
<span class="sd"> been evaluated. Concatenated into X upon forward call. Copied and set to</span>
987+
<span class="sd"> have no gradient.</span>
988+
<span class="sd"> constraints: A list of constraint callables which map a Tensor of posterior</span>
989+
<span class="sd"> samples of dimension `sample_shape x batch-shape x q x m`-dim to a</span>
990+
<span class="sd"> `sample_shape x batch-shape x q`-dim Tensor. The associated constraints</span>
991+
<span class="sd"> are considered satisfied if the output is less than zero.</span>
992+
<span class="sd"> eta: Temperature parameter(s) governing the smoothness of the sigmoid</span>
993+
<span class="sd"> approximation to the constraint indicators. For more details, on this</span>
994+
<span class="sd"> parameter, see the docs of `compute_smoothed_feasibility_indicator`.</span>
995+
<span class="sd"> """</span>
996+
<span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span>
997+
<span class="n">model</span><span class="o">=</span><span class="n">model</span><span class="p">,</span>
998+
<span class="n">sampler</span><span class="o">=</span><span class="n">sampler</span><span class="p">,</span>
999+
<span class="n">objective</span><span class="o">=</span><span class="n">objective</span><span class="p">,</span>
1000+
<span class="n">posterior_transform</span><span class="o">=</span><span class="n">posterior_transform</span><span class="p">,</span>
1001+
<span class="n">X_pending</span><span class="o">=</span><span class="n">X_pending</span><span class="p">,</span>
1002+
<span class="n">constraints</span><span class="o">=</span><span class="n">constraints</span><span class="p">,</span>
1003+
<span class="n">eta</span><span class="o">=</span><span class="n">eta</span><span class="p">,</span>
1004+
<span class="p">)</span>
1005+
<span class="bp">self</span><span class="o">.</span><span class="n">_scale</span> <span class="o">=</span> <span class="n">math</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">math</span><span class="o">.</span><span class="n">pi</span> <span class="o">/</span> <span class="mi">2</span><span class="p">)</span>
1006+
1007+
<span class="k">def</span><span class="w"> </span><span class="nf">_sample_forward</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">obj</span><span class="p">:</span> <span class="n">Tensor</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Tensor</span><span class="p">:</span>
1008+
<span class="w"> </span><span class="sa">r</span><span class="sd">"""Evaluate qPosteriorStandardDeviation per sample on the candidate set `X`.</span>
1009+
1010+
<span class="sd"> Args:</span>
1011+
<span class="sd"> obj: A `sample_shape x batch_shape x q`-dim Tensor of MC objective values.</span>
1012+
1013+
<span class="sd"> Returns:</span>
1014+
<span class="sd"> A `sample_shape x batch_shape x q`-dim Tensor of acquisition values.</span>
1015+
<span class="sd"> """</span>
1016+
<span class="n">mean</span> <span class="o">=</span> <span class="n">obj</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">dim</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span>
1017+
<span class="k">return</span> <span class="p">(</span><span class="n">obj</span> <span class="o">-</span> <span class="n">mean</span><span class="p">)</span><span class="o">.</span><span class="n">abs</span><span class="p">()</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">_scale</span></div>
1018+
9491019
</pre></div>
9501020
</div>
9511021
</div>

0 commit comments

Comments
 (0)