生成、選別、評価、選択

巨大な空間から少数の優れた設計を見つけるには、まず必要をはるかに超える候補を作り、最も安価なテストで大多数をふるい落とし、生き残ったものだけを人に見せる。この方法論の論文は、六つの段階それぞれの数学を明確に記述している。段階の順序の決め方、候補をどれだけ作るか、閾値をどう定めるか。

日本語
コピー
Mold & Yeast 的默认封面图

生成・フィルタリング・評価・選択

概要

広大な設計空間から優れた案をわずか数個見つけるには、必要な数をはるかに超える候補を生成し、最も安価な検査で大半をふるい落とし、生き残ったものだけを人間の前に並べる。

手法は6段階に分かれる。生成器が候補を作る。コードによる厳密な検査が不正なものを削除する。距離尺度がほぼ重複したものを削除する。安価なモデルが明らかに劣るものを削除する。強力なモデルが残りを採点して順位づけする。選択規則が短く多様なリストを選び、人間に渡す。

本稿では各段階を定義し、その数学的定式化を与える。生成器の構築方法、段階をコスト順に並べる方法、候補をいくつ作るべきか、安価なモデルの閾値をどう設定すれば優れた設計をほとんど誤って削除せずに済むか、ノイズを含む評価者でどう順位づけするか、多様性が保証された最終集合をどう選ぶか、そして結果をどうフィードバックして生成器を改善するか。さらに、この手法がどのように失敗しうるか、失敗の種類ごとにどう検証するかも挙げる。

主要な結果は一つの式である(第1節)。単純な仮定の下で、選ばれた設計の期待品質は評価者の精度に比例し、候補数の対数の平方根にのみ比例する。ある規模を超えると、候補を増やすよりも評価者を良くするほうが価値が高い。

1. 問題

人間が座って一度に目を通せる設計はおよそ20個だが、優れた設計は1000個に1つかもしれない。目標は、その1つを人間の前に差し出しつつ、残りの999個を見せずに済ませることにある。

手作業での設計は遅い。一つひとつが作者の注意をすべて奪うからだ。完成した設計の評価は一瞥で済む。本手法は労力を制作から評価へ移し、評価の大半を機械に任せる。

なぜ規模が効くのか。 N個の設計を独立に生成する。qを、すべての設計のうちあなたが関心を持つ水準に属するものの割合とする。少なくとも1つ当たる確率は

Pr⁡(at least one)=1−(1−q)N≈1−e−qN

qN = 3 とすれば 95% が得られる。つまり、およそ N ≈ 3/q 個の設計があれば、95% の確率で少なくとも一度は当たる。q = 1/1,000 のとき、それは 3,000 個の設計になる。

なぜ数だけでは割に合わなくなるのか。 各設計の真の品質を f とし、これが釣鐘型の分布に従い、平均を μ、標準偏差を σ とする。N 個の設計のうち最良のものの期待値は

E[max⁡f]=μ+σZN,ZN≈2ln⁡N

Z_N は、標準正規分布から N 個サンプリングしたときの最大値の期待値だ。平方根の式で計算すると、少し高めに出る。正確な値は N = 1,000 で Z = 3.3、100,000 で Z = 4.4、1,000,000 で Z = 4.9。サンプル数を 100 倍に増やしても、稼げるのはおよそ 1σ 分でしかない。

なぜ評価の精度のほうが大事なのか。 実際には f ではなくスコア u で並べることになる。スコアと f の相関係数を r としよう。これが評価の精度で、0(まったく役に立たない)から 1(完全に正確)までの値を取る。u と f がともに釣鐘型の分布に従うなら、最高スコアの設計が持つ期待品質は

E[f|top score among N]≈μ+rσZN

理由はこうだ。合同ベル型変数では、スコア u が与えられたときの f の期待値は、u がその平均を何標準偏差上回っているかに μ + rσ を掛けたものになる。N 個のスコアのうち最高のものは、平均をおよそ Z_N だけ上回る。

2 つの投入方法を、N = 100,000、r = 0.5 を出発点に比較する。N を倍にすると Z は 4.40 から 4.55 に上がり、品質は 0.5 × 0.15σ ≈ 0.07σ 向上する。r を 0.5 から 0.6 に上げると、品質は 0.1 × 4.40σ ≈ 0.44σ 向上する。正確率を 0.1 上げることは、規模をおよそ 6 倍にすることに等しい。

注意点が 2 つある。ベル型はあくまで仮定であり、実際の裾はそうなっていない。したがってこれらの式は、量がどのようにスケールするかを判断するために使うものであって、予測に使うものではない。もう 1 つ、複数のレビューからなるファネルは、統合された 1 つのレビューと等価に振る舞い、その正確率 r は測定できる(第 13 節)。

当事者にとって、何が変わるか。 あなたはもはや各デザインの作者ではない。brief を書き、短いリストに対して yes か no を言う。

2. 定義

以下の各用語は、本稿の残りの部分で厳密にこの意味で使う。

  • デザイン(x)。 1 つの完全な候補。プログラムが読み取り、検査できるデータとして保存される。
  • 空間(X)。 生成器が出力しうるすべてのデザイン。
  • Brief(b)。 何が欲しいかの記述。3 層に分かれる。ルール(必須)、目標(好み)、テイスト(感触)。第 7 節を参照。
  • 生成器(G)。 パラメータ θ とシード s を与えるとデザイン x = G(θ, s) を返すプログラム。同じ入力は常に同じデザインを返す。
  • 検査(e_j)。 1(合格)または 0(失敗)を返すテスト。デザインがすべての検査に通るとき、それは有効である。V(x) = e_1(x) × e_2(x) × … × e_J(x)。
  • 余裕(ξ_j)。 デザインが検査 j に落ちるまでどれだけ離れているか。正なら通過しており、まだ余地がある。負ならその大きさだけ落ちている。
  • 品質(f)。 brief を書いた人がデザイン x をどれだけ良いと感じるか。言えるのはその人だけで、訊くにはその人の時間を使う。
  • 良い。 f(x) ≥ g ならデザインは良い。しきい値 g は結果を何も見る前に固定する。
  • スコア(u)。 モデルや式が与える f のより安価な推定。誤差がある。その正確率(r)はスコアと f の相関である。
  • ステージ。 デザインの束を受け取り、その一部を通すステップ。ステージ i にはデザイン 1 つあたりのコスト c_i と通過率 p_i がある。通過率とは、それが通すデザインの割合である。
  • 再現率(R_i)。 ステージ i に入る良いデザインのうち、それが通す割合。再現率が低いとは、良いデザインが捨てられているということだ。
  • 適合率。 あるステージが通すデザインのうち、良いものの割合。
  • 特徴(φ)。 デザイン x がどんなものかを表す数値の組。たとえば寸法、対称性、使われている部品。それが良いかどうかは語らない。
  • 距離(d)。 2 つのデザインがどれだけ違うかを表す数 d(x, y)。特徴から計算する。第 6 節を参照。
  • アーカイブ。 現時点で保持しているデザイン。新しいデザインはこれと比較して重複を検出する。
  • ショートリスト。 最終的に当事者に見せる k 個のデザイン。
  • 監査。 あるステージが拒否したデザインを無作為に抽出し、そのまま先へ送って、そのステージが何を誤って捨てたかを測ること。

3. 全体像:ファネル

6 つのステージがあり、どのステージもデザイン 1 つあたりのコストが次のステージより低い。これにより 100,000 個の候補が 12 個の候補リストまで絞られる。

[embedded content: illustrative run · 100,000 designs generated, 12 shown to the person]

最初の 3 ステージはコードが実行し、結果は正確である。残った束はまず安価なモデルに、次に強いモデルに渡して評価する。1 つの絞り込みルールが 40 個のデザインを 12 個に狭め、あなたはそこから選ぶ。結果は生成器に還流する(第 12 節)。

ステージ答える問い節
1 生成候補を 1 つ作れるか?4
2 検証ルールに違反しているか?5
3 記述と重複排除新しいか?6
4 安価な評価捨てる明確な理由があるか?9
5 強いモデルによる評価どれだけ良く、順位はどうか?10
6 絞り込みどれを、どんな分布で、ユーザーに渡すか?11

第 7 節と第 8 節はステージの合間に挟まる。第 7 節は要件記述をルールと目標に変換し、第 8 節は予算を決める。

4. ステージ 1:生成

生成器が後続すべての上限を決める。どの後続ステージも、一度も作られなかったデザインを選び出せないからだ。満たすべき要件は 5 つある。

  • コストが許す範囲で、作ればそのまま合法。 不正なデザインを作るほど、無駄な作業が増える。
  • 広く覆う。 あなたが受け入れるあらゆるデザインに届く。
  • 制御できる。 いくつかのつまみがあり、それぞれに目に見える効果がある。
  • 再現できる。 同じパラメータと同じシードは常に同じデザインを返す。
  • 速い。 シングルコアで毎分数千個のデザイン。

セルとドメインモデル(波動関数の収縮)。 設計をグリッド上のセルに敷き詰める。各セル c にはドメイン D_c、つまりその位置でまだ可能な選択肢の集合がある。開始時点では、どの選択肢もどのセルでも可能だ。生成プロセスはこれらのドメインを、それぞれが1つの選択肢だけになるまで縮小し続ける。

互換性は一度書くだけで済む。選択肢 t と方向 d について、A_d(t) は方向 d で t に隣接するときに許される選択肢の集合だ。D_c が縮小すると、方向 d にある各隣接セル n が枝刈りされる:

Dn←Dn∩⋃t∈DcAd(t)

繰り返し、変化がなくなるまで続ける。この過程を伝播と呼ぶ。あるドメインが空集合になったら、その設計は矛盾している。

次に決めるのはどのセルか。 各選択肢 t に重み w_t を与える。セル c において、W_c を D_c 上のすべての w_t の和とし、p_t = w_t / W_c とする。このセルのエントロピーは

Hc=−∑t∈Dcptln⁡pt=ln⁡Wc−1Wc∑t∈Dcwtln⁡wt

エントロピーが最も低い未定のマスを優先して確定させ、そこに少しだけランダムな揺らぎを混ぜる。こうすると、実行するたびに同点の結果が変わる。エントロピーが低いということは、現実に取り得る値が少ないということで、そのマスが後で矛盾を引き起こす可能性が最も高い。早く決めてしまえば、早く問題に気づける。

どの選択肢を選ぶか。 マス c で選択肢 t をサンプリングするとき、その確率は次に比例する。

Pr⁡(t|c)∝wt∏n(1+βmin⁡(3,N(t,tn)))

ここで n は確定済みの近傍を走査し、t_n はそこで選ばれた選択肢、N(t, t') はあなたのサンプル設計において t' が t の直後に現れる回数を数える。バイアス β ≥ 0 は、出力がサンプルをどれだけそのまま踏襲するかを決める。β = 0 ならサンプルは完全に無視される。上限の 3 は、ありふれた組み合わせのペアが支配的になるのを防ぐ。選択肢が物理的に接続する各近傍に対しては、連結した案を優遇する凝集因子 (1 + γ) をさらに加えられる。

密度。 empty という名前の選択肢を重み w_0 で追加する。W_real をすべての非空選択肢の重みの和とする。制約のないマスでは、empty の確率は w_0 / (w_0 + W_real) になる。埋まるマスの期待割合を選んだ密度 ρ に等しくしたいなら、

w0=Wreal1−ρρ

検査:空席率は 1 − ρ なので、充足率は ρ。

大域制約。 部品 k の複製が最大 N_k 個という制約は隣接規則ではないため、伝播では捉えられない。リアルタイムのカウンタを維持する。部品 k のカウントが N_k に達したら、未確定の各セルから k を取り除き、伝播させる。それでも後から失敗することがある。矛盾が生じたら、直前の選択を取り消し、そのセルでその選択肢を無効にして、別のものを試す。これがバックトラックである。バックトラックは最大 B 回まで許し、それを超えたらこの試行を捨て、新しいシードでやり直す。1 回の試行が予算内で成功する確率が q_s なら、成功 1 回に必要な試行回数の期待値は 1/q_s である。

2 層のランダム性。 1 回の試行内のばらつきはシード s に由来し、変わるのは細部である。試行間のばらつきはパラメータ θ に由来し、これは事前分布 π_0(θ) から抽選され、変えるべきは全体の特徴、すなわち密度、偏り、全体的な形である。毎回の試行で θ を抽選すること。シードだけを抽選すると、すべての設計が同じ設計の繰り返しに見えてしまう。

出力の多様性はどれほどか? 生成器は偏りのあるサンプラーである。その出力確率 p(x) に閉形式解はないので、測るしかない。設計の有効数を定義する

Neff=1∑xp(x)2

M 個の設計がすべて等しい確率で現れるなら、この値は M に等しい。これを推定するには、N 個の設計を生成し、距離が小さな ε 未満である重複ペアの数 C を数えればよい。各ペアが衝突する確率は Σ p² = 1/N_eff であるから、期待値は C = N(N−1)/2 × 1/N_eff となり、

Nˆeff=N(N−1)2C

例:N = 2,000 個の設計、C = 40 組の重複で、N_eff ≈ 50,000 になる。C = 0 なら、N_eff がおよそ N(N−1)/2 より大きいことしか分からない。N_eff が小さいということは、生成器が自己反復しているということで、ノブの範囲を広げる必要がある。

他の生成器でも同じことが言える。 この 5 つの要件を満たすサンプラーならどれでも、この位置に当てはめられる。文法からのサンプリング、修復付きランダムウォーク、シード設計への変異、物理シミュレータ、あるいは非ゼロ温度の language model。どれを選んでも、この節以降の内容は変わらない。

ノブの設計。 各ノブは、目に見えて名前を付けられる属性を 1 つだけ変えるべきだ。言葉にできないノブは、学習ループ(第 12 節)でも使えない。

5. フェーズ 2:検証

コードで書かれたチェックは正確で、安価で、決して疲れない。だからどのモデルが設計を見るよりも先に走らせる。設計がすべてのチェックを通過して、初めて有効になる。

V(x)=∏j=1Jej(x),ej(x)∈{0,1}

検査の内容。 よくあるのは次の 6 種類:

  • 幾何。 任意の 2 つの実体部分が空間を共有しない。検証:重なり体積 ≤ 小さな許容値。
  • 連結性。 部品とその接続を表すグラフが 1 つの連結した全体になっている。
  • 物理。 重心が支持領域の上にある。
  • 組立可能性。 各パーツが遮られない経路に沿って所定の位置に到達できるような順序が存在する。
  • 在庫。 パーツ k は最大 N_k 回までしか使えない。
  • 文法。 設計中のすべての関節が許可された関節リストに載っている。

マージン。 各検査について符号付きマージン ξ_j(x) を記録する。設計が合格していても記録する。幾何検査では、ξ は重なり体積の符号反転。物理検査では、ξ は重心から支持領域の縁までの距離。マージンは無償で 3 つのものを与えてくれる。もう一度見る価値のある際どいケースを浮かび上がらせる。後段の学習の特徴量になる。そして、許容値が適切かどうかを教えてくれる。測定のわずかな変動で検査結果がひっくり返るなら、許容値が厳しすぎる。合格か不合格かを信じていいのは、|ξ| が測定誤差より大きいときだけ。

検査が表すのは絶対禁止であって、できれば避けたいではない。 厳しすぎる検査は良い設計を静かに削り落とし、後の段階ではもう取り戻せない。違反することが絶対に許されないものだけを検査にすべき。それ以外はすべて目標である(第 7 節)。

捨てるのではなく直す。 重なりの原因になったパーツを取り除くといった小さな修正のほうが、そのまま捨てるより得なことがある。修正は歩留まりを上げるが、設計プールを修正済みの形に偏らせる。修正が必要だった設計の数を数え、修正フラグを保存しておけば、その影響を後から検証できる。

有効とは、私たちが書き下した規則を通過すること。 検査の質は、それを書いた人に依存する。すり抜けた無効な設計は 1 つ残らず、新しい検査と恒久的なテストになる。汎用的な生成器は、こうして規則の fuzzer も兼ねる。想定していなかったケースを見つけ出してくれる。

モデルではなくコードで書く理由。 モデルは遅く、精度が低く、しかも予測できない形で間違える。規則をテストとして書けるなら、テストとして書けばいい。

通過率。 生成された設計のうち有効なものの割合は p_V = Pr(V = 1)。標本から推定し、区間は第 8 節。p_V が数パーセントを下回るなら、直すべきは検査ではなく生成器。計算資源の大半が途中で死ぬ設計に費やされているのだから。

6. 段階 3:記述と重複排除

ほとんどの生成器は同じものを繰り返し生み出す。だからモデルに金をかける前に、近似コピーの各グループから 1 つだけ設計を残す。そのためには、2 つの設計がどれだけ違うかを表す方法が要る。

特徴量。 有効な設計それぞれについて数値の組 φ(x) を計算する。低コストな例:全体寸法、バウンディングボックスの充填率、平衡点、種類ごとのパーツ数、対称性スコア、色ヒストグラム、正面・側面・上面から見たシルエット。特徴量が表すのは種類であって、良し悪しではない。対称性スコアとは、鏡映しても残るパーツの割合:

S(x)=1n∑i=1n𝟏[mirror(i)∈x]

ここで n は部品数、角括弧内の値は条件が成り立つとき 1、そうでなければ 0 となる。

距離。 特定の次元が支配しないよう、各特徴量を再スケーリングする: φ'_j = (φ_j − μ_j) / σ_j。平均と標準偏差はいずれも有効プール上で計算する。次に

d(x,y)=∑jωj(φj′(x)−φj′(y))2

重み ω_j ≥ 0 は各特徴が人の目にどれだけ重要かを表し、初期状態ではすべて等しい。人が最初に気づく特徴の重みを高くする。たとえば輪郭などだ。

輪郭距離。 各輪郭を二値グリッド M としてレンダリングする。二つの輪郭の差は次で与えられる。

dsil(x,y)=ming∈Γ⁡(1−|Mx∩g(My)||Mx∪g(My)|)

Γ は、同一とみなすべき変換の集合である。たとえば設計を 180° 回転させたり、鏡像にしたりする操作が含まれる。スコアは IoU で計算する。

新規性のしきい値。 設計 x は、保持済みのすべての設計から十分に離れている場合にのみ保持する。

miny∈A⁡d(x,y)≥δ

A はアーカイブ、δ は最小距離。A の全エントリと一つずつ突き合わせると |A| 回の比較が必要になるので、A が数千を超えたら k-d tree などの空間インデックスを使う。δ の決め方はこうだ。δ を下回るサンプルペアは、人間には同じに見える。距離の異なるサンプルペアをいくつか見せて、どこから「同じ」と言い出すかを記録する。そこまでやらないなら、ランダムなサンプルペアの距離の第10パーセンタイルを取るのでもよい。

飽和。 直近数百件の設計について、受け入れ率 a = 受け入れ数 / 試行数を数える。a がゼロに近ければ、その δ では生成器が新しい設計を出せなくなっている。このときのアーカイブサイズがカバレッジ、つまり生成器が作れる δ 分離された設計の数だ。対処法は θ の事前分布を緩めるか、止めるか。

質的多様性(MAP-Elites)。 上位だけでなく空間全体を見たいなら、長さ、高さ、対称性など、行動特徴 b(x) を2つか3つ選ぶ。各特徴をいくつかの区間に切り、格子 κ を作る。各セルにはスコアが最も高い設計だけを残す。

Bκ=arg⁡maxx: bin(b(x))=κ⁡u(x),QD=∑κu(Bκ)

ここで必要なのはスコア u であり、これは Section 9 と Section 10 の評価器の後に実行される。集計値は2つ。coverage = 埋まったセル数 / 全セル数、QD = 保持された設計のスコアの合計。出力はマッピング表で、各設計に対して見つかった最良の1つが対応する。多様な集合を選ぶ別の方法は Section 11 で扱う。

7. 課題文を計算可能にする

課題文のうち、プログラムが測定できるものはすべて測定すべきだ。測定は正確で、しかもタダだからだ。課題文の各行を3つの層のいずれかに振り分ける。

層答える問い担当例
ルール何が絶対に許されないか?チェック(Stage 2)単独で自立できること
目標何を、どれだけ好むか?数式コンパクトな形状を好む
趣味しっくりくるか?モデル、次に人間目的を持って見えること

曖昧な語を指標に変える。 自問する:その語をめぐる論争を裁定するなら、何を測るか。Balanced は重心の、底面中心点に対するずれ量になる。Compact はバウンディングボックスのうち埋まっている割合になる。Symmetric は Section 6 の S(x) になる。指標は、その順位付けが自分の順位付けと一致しさえすれば、残す価値がある。自分で20個の設計を順位付けし、それらについて指標を計算し、Spearman の順位相関で一致度を測る:

rs=1−6∑idi2n(n2−1)

d_i は設計 i における2つの順位の差、n は設計の数を表す。値が 1 なら順序は完全に一致し、0 なら無関係、−1 なら順序は完全に逆転していることを意味する。n = 20 の場合、およそ 0.45 を下回る値は偶然によるものかもしれない。

目標を平滑化のしきい値として用いる。 指標 y_j の目標には目標値 y*_j と幅 h_j があり、幅はどの程度の外れまで許容できるかを表す。目標に近い場合:

uj(x)=exp⁡(−(yj(x)−yj∗)22hj2)

少なくとも目標については、以下のとおりである。

uj(x)=11+exp⁡(−(yj(x)−yj∗)/hj)

どちらも 0 から 1 の間の値を返し、1 が最良を表す。

目的の組み合わせ。 各目的に重み ν_j ≥ 0 を割り当て、すべての重みの和が 1 になるようにする。組み合わせ方には二通りある。

u0(x)=∑jνjuj(x)oru0(x)=∏juj(x)νj

和は、強い目的が弱い目的を覆い隠すことを許す。積——重み付き幾何平均——は許さない。u_j がどれか一つでも 0 に近づけば、u_0 も 0 に近づく。どの目的も欠かせないなら積を、目的どうしをトレードオフできるなら和を使う。

u_0 のスコアはほとんどコストがかからないので、Stage 3 ではこれを使って、ほぼ重複した設計の集まりからどれを残すかを決める。

昇格のルール。 一段上に上げられるなら上げる。センスを反映する指標が見つかった時点で、センスは目的になる。公式はモデルに勝つからだ。目的がルールになるのは、あるルールに違反することが絶対に許されない場合だけであり、その場合もまず、そのルールがどれだけの良い設計を消すかを調べる(第 14 節)。

8. 予算:いくつ作り、どの順で作るか

コストは、依然として大量の設計を処理する最も高価な段階が支配する。だから段階の順序と各段階の通過率が、この手法を無理なく回せるかどうかを決める。

コストと生き残る数。 N_0 を生成する設計の数とする。段階 i の通過率を p_i、設計一つあたりのコストを c_i とする。段階 i に到達する数は N_(i−1) = N_0 × p_1 × … × p_(i−1) になる。総コストと生き残る数は

Ctot=∑i=1nNi−1ci=N0∑i=1nci∏j<ipj,Nn=N0∏i=1npi

段階を、1回の淘汰あたりのコストで並べ替える。 順序を入れ替えられる2つの段階を考える。段階1を先に実行すると、設計1件あたりのコストは c_1 + p_1 c_2 となる。段階2を先に実行すると、コストは c_2 + p_2 c_1 となる。段階1を先に置くべきなのは、次の条件が成り立つときに限る。

c11−p1<c21−p2

証明:c_1 + p_1 c_2 < c_2 + p_2 c_1 は c_1 (1 − p_2) < c_2 (1 − p_1) と等価である。比 c / (1 − p) は設計を1つ除外するのにかかるコストを表す。この比が小さい順に各段階を実行する。隣り合う2段階の順序が逆になっていれば、入れ替えることでコストを削減できる。したがって、各段階が互いに独立なら、この順序が最適となる。各段階が独立でない場合は、この規則を目安として使い、実測する。

再現率は合成できる。 生成・検査・重複排除が除外するのは無効な設計や重複した設計であって、良い設計ではない。検査自体が正しければ、良い設計に対する再現率は1になる。良い設計を失うのは判定段階だけだ。安価な判定器と強力な判定器がそれぞれ独立に誤るなら、最後まで残る良い設計の割合はおよそ

Rtotal≈R4R5

n_J 人のレビュアーで目標再現率 R* を達成するには、各レビュアーに (R*)^(1/n_J) の再現率を割り当てる。R* = 0.8、レビュアーが 2 人なら、各自 0.89 を達成する必要がある。同じ設計をレビュアーが見落としやすい場合、実際の再現率は積より高くなる。したがって、積で見積もっておけば安全側に倒れる。

どれだけ生成すべきか。 q を、生成された設計が有効かつ優秀である確率とする。最終的に少なくとも m 個の優秀な設計を得るには、次の経験則が使える。

N0≥m+2mqRtotal

良い設計の個数は、平均 N_0 q R_total のポアソン分布でおおむね近似でき、そのばらつきの大きさは平均の平方根に等しい。2√m の項は、ばらつき2つ分の安全余裕をさらに上乗せしたものだ。m = 1、R_total = 1 のとき結果は 3/q となり、第1節と一致する。

区間で比率を推定する。 q、p_V、その他の比率を推定したいときは、n 個の設計を評価してヒット数を k と数える。すると p̂ = k/n であり、Wilson の95%区間は

pˆ+z22n±zpˆ(1−pˆ)n+z24n21+z2n,z=1.96

教科書に出てくる区間と違い、これは n が小さく、p̂ が 0 や 1 に近いときにもうまく機能する。最悪の場合でも比率を ±h 以内に収めるには n ≈ 0.96 / h² が必要だ。±0.05 なら約 385 設計、±0.10 なら約 96 設計。q が小さい場合、n 個のランダムサンプルのうち合格する設計はおよそ nq 個しかない。第 9 節では賢いラベリングの方法を扱う。

実行例。 以下のコストと合格率はでっち上げで、算術のデモ用にすぎない。自分の実測値に置き換えてほしい。

段階入力設計数設計あたりのコスト段階コスト
1 生成100,000$0.00001$1.00
2 検証100,000$0.00005$5.00
3 重複排除40,000$0.000001$0.04
4 簡易評価4,000$0.0005$2.00
5 強力評価400$0.02$8.00
6 選別40無視できる$0.00
合計$16.04

100,000 個の設計をそのまま強力評価に回すと $2,000 かかる。約 125 倍の差だ。比率のルールに従えば、重複排除は検証より前に置くべきである。1 件あたりの除去コストが安いからだ。しかし重複排除は検証の後に来なければならない。アーカイブには有効な設計しか残らない可能性があるからだ。このルールは各段階が独立していることを前提にしているが、この 2 つの段階は独立していない。

追加予算はどこに使うか。 第 1 節で述べたとおり、およそ 100,000 設計を超えると、評価精度が少し上がるだけで規模を何倍にも増やしたのと同じ効果がある。予算を設計数の増加に回す前に、設計あたりの繰り返し回数、より良い評価基準、キャリブレーションに使うべきだ(第 10 節と第 13 節)。

9. 段階 4:簡易評価

簡易評価は、良い設計をほとんど取りこぼさないように調整する。それ以外について正確である必要はない。精度は後段の強力評価が担う。

何を見て、何を返すか。 簡易モデルには、設計をレンダリングした結果、段階 2 と段階 3 の指標テキスト、そして範囲の狭い質問を渡す。返ってくるのは 0 から 1 のスコア u(x) だ。有用なコツは、品質を評価させるのではなく、この設計を捨てる明確な理由があるかどうかを尋ねることだ。こうするとモデルは再現率の高いフィルターになる。

しきい値による通過判定。 u(x) ≥ τ なら設計は通過する。良し悪しが既知の設計で

p(τ)=Pr⁡(u≥τ),recall(τ)=Pr⁡(u≥τ|good),precision(τ)=Pr⁡(good|u≥τ)

τ を上げると通過率が下がり、コストを節約できる。しかし再現率も下がるため、優れた設計を逃してしまう。

支払いルール。 ある設計を通せば、必ず c_next、つまり強い判定器の価格を払うことになる。それを捨てた場合、それが優れた設計であれば V_g を失う。ここで V_g とは、優れた設計があなたにとって持つ価値であり、単位は c_next と同じ、つまり優れた設計を1つ見つけるためにあなたが払ってもよいと思う金額である。捨てたときの期待損失が通すコストを上回ったら、通す:

Pr⁡(good|u(x))≥cnextVg

例:c_next = 0.02andVg=2。良品の確率が1%を下回らなければ通す。安価な評価器のしきい値が低く設定されているのはそのためだ。

スコアを確率に変換する。 ラベル付きの設計(良なら y = 1)では、a と b を選んで対数尤度を最大化し、ロジスティック曲線を当てはめる:

Pi=11+e−(aui+b),maxa,b⁡∑i[yiln⁡Pi+(1−yi)ln⁡(1−Pi)]

優れた設計が乏しい場合のラベリング。 ラベルは強力な評価者または人手から得る。q = 2% であれば、無作為抽出では設計50件につき優れた設計は1件しか得られない。そこで、スコア区間ごとにラベルを付けていけばよい。各設計を確率 π_i でラベル付けし、優れた設計が現れうる区間——しきい値が置かれることになる区間——ではその確率を高くする。そして各ラベルを 1/π_i で重み付けする。こうすると、ラベル付けされた1件の設計が、それが代表しうる分の設計を代表することになる(Horvitz–Thompson 推定量)。

recallˆ(τ)=∑iπi−1yi[ui≥τ]∑iπi−1yi

良いラベルはいくつ必要か。 評価器がサンプル中の n_g 個の良い設計をすべて通過した場合、その見逃し率の 95% 上界はおよそ 3/n_g になる。これがスリー・オブ・スリー・ルールであり、(1 − miss)^n_g = 0.05 から導かれる。再現率が少なくとも R* に達することを認証するには:

ng≥31−R∗

R* = 0.9 の場合、ラベル付け集合には合格設計がおよそ 30 個必要になる。τ は、再現率の信頼下限が R* を下回らない最大の閾値として選ぶ。

監査。 生成器が変わると閾値はドリフトするため、継続的に確認する。棄却された設計のうちランダムな割合 α(たとえば 1% から 5%)は、いつもどおり強判定に回す。監査対象の棄却サンプル n_a 個のうち K 個が実際には合格だったので、棄却サンプルにおける見逃し率は û = K/n_a となり、その Wilson 区間は第 8 節のとおり。N_rej を棄却された件数、G_pass を合格サンプル中で見つかった合格設計の件数とする。この段階での推定再現率は

Rˆ4=GpassGpass+uˆNrej

監査コストは α × N_rej × c_next。第8節の実行では、却下された3,600件の設計のうち2%、つまり72件を監査し、$1.44かかった。n_a = 72 で K = 0 でも、見逃し率は依然として 3/72 ≈ 4% に近い可能性がある。監査は監視であって、証明ではない。却下された設計1,000件あたりの不良品を1件未満に抑えると証明するには、n_a ≈ 3,000 が必要だ。

どのモデルを選ぶか。 選んだ τ の下で実測再現率が R* を満たす、最も安いモデルを選ぶ。印象ではなく、アノテーション済みデータセットで試すこと。幾何学的な理解が苦手なモデルには、指標をテキストで与える。強い判定モデルは、安い判定モデルとは別のモデルファミリーから選ぶ。そうすれば両者の誤り方が異なる(第14節)。

10. 段階5:強い判定

強い判定は残った数百件の設計を採点して順位づけする。その主な敵はノイズとバイアスだ。

採点基準。 いくつかの基準を含むルーブリックを書く。判定は各基準を1〜5で採点し、一言の理由を添える。1回のパス ℓ で得られるのは

s(ℓ)(x)=∑jvjaj(ℓ)(x)

ここで a_j は基準スコア、v_j はその重みである。

重みを自分の好みに合わせる。 30 個のデザインを自分で採点する。h_i をデザイン i に対する自分の評価、ā_ij を基準 j におけるレビュアーの平均点とすると、重みは通常、最小二乗法で選ぶ:

v=arg⁡minv⁡∑i(hi−∑jvja‾ij)2

拟合された重みが映し出すのは、あなたが本当に重んじているものであって、必ずしも書き留めたものではない。

繰り返してノイズを削る。 各デザインを m 回評価し、ビューの順序をシャッフルし、言い回しを変えてから平均を取る:

s‾(x)=1m∑ℓ=1ms(ℓ)(x),standard error=σwm

σ_w は、同じ設計で繰り返し測定したときのばらつきである。1 回の実行の信頼性を rel_1 = σ_b² / (σ_b² + σ_w²) と定義する。ここで σ_b² は設計間の分散である。これは、観測される変動のうちどれだけが真のシグナルであるかを表す。Spearman–Brown の公式は、m 回の実行の平均の信頼性を与える:

relm=mrel11+(m−1)rel1⟺m=relm(1−rel1)rel1(1−relm)

例えば、rel_1 = 0.5、目標の rel_m = 0.9 なら、m = 9 ラウンド必要になる。σ_w と σ_b を見積もるには、20 個の設計をそれぞれ 3 回ずつ評価する予備実験を行う。

ペアワイズ比較。 モデルを人間と比較する場合、スコアリングよりも信頼できる。Bradley–Terry モデルでは、各設計に強度 a_i があり、i が j に勝つ確率は

Pr⁡(i beats j)=11+e−(ai−aj)

モデルをフィッティングするため、w_ij を i が j に勝利した回数、n_ij を両者の比較回数、W_i を i の総勝利数とする。π_i = e^(a_i) とおき、以下を繰り返す。

πi←Wi∑j≠inij/(πi+πj)

各ラウンドの比較が終わったら再スケーリングし、π の幾何平均が 1 になるようにする。値が変わらなくなったら停止する。通常は数十ラウンドで安定する。どのステップでも尤度は上がる。ある設計がすべての比較で全勝または全敗する場合は、強度を有限に保つため a_i に小さなリッジペナルティを加える。

M 個の設計のすべてのペアを比較するには M(M−1)/2 回の比較が必要で、M = 40 なら 780 回になる。これをラウンド制に変えてもよい。各ラウンドの終わりに現在の強度で並べ、隣り合う設計どうしを戦わせる。スイス式トーナメントと同じ要領だ。およそ M log₂ M 回の比較でまともな順位が得られる。M = 40 なら 213 回だ。

位置バイアスを消す。 各ペアは 2 回、2 つの順序でそれぞれ判定し、各結果を半勝として数える。

バイアスのチェックリスト。

  • 位置。 順序をランダム化し、上述のようにペアを入れ替える。
  • 長さ。 理由の長さを固定し、設計自身の説明にある主張は無視する。
  • 自己選好。 ある設計がどの生成器やどの実行から来たのかを判定者に伝えない。
  • 整然さ。 判定者は整った対称的な設計を好む。自分のスコアと比べて、自分にも同じ傾向がないか確かめる。
  • アンカリング。 比較の前に各設計を単独で判定し、以前のスコアを見せない。
  • 共通の盲点。 安価な判定者とは別のモデルファミリーを使う。

自分を基準に校正する。 少なくとも 30 個の設計にスコアを付け、判定者のスコア範囲の各帯をカバーする。採点時に判定者のスコアは見ない。一致度は Spearman の r_s(第 7 節)と Kendall の tau で測る。

τK=C−Dn(n−1)/2

C は2人の順位が一致したペアの数、D は順位が逆になったペアの数だ。top-10 の重複も数える。審査員の top 10 のうち何件が自分の top 10 に入っているか。r_s の区間を出すには、設計を1,000回、復元抽出でリサンプリングし、結果の中央95%を取る。

一致度の上限は自分自身の安定性だ。1週間後に同じ設計群をもう一度採点する。審査員と自分の一致度が、自分と自分の一致度を超えることはない。自分と自分の一致度が0.75なら、審査員が0.7に達していれば上出来だ。0.4しかなければ弱い。万能の合格ラインは存在しない。

第1節の精度 r はこの相関係数のことで、測定対象は設計プール全体に散らばる設計だ。上位の設計だけで測ると、値域が切り詰められるため、r は実際より低く見える。

11. 第6段階:候補リストの選定

候補リストに入るのは、スコアが高く、互いに異なる設計だ。1件の当選者が似た設計のグループを代表する。

M 件の採点済み候補から始める。候補 i の平均スコア s̄_i は0と1の間にある。距離を類似度に変換する:

sim(i,j)=exp⁡(−d(i,j)22σs2)∈(0,1],σs=δ2ln⁡2≈0.85δ

類似度は、設計が完全に同一であれば 1 となり、第 6 節で述べた新規性距離 δ の位置では 0.5 となる。

目的。 k 個の設計からなる集合 S を選び、次を最大化する

F(S)=ψ1k∑j∈Ss‾j+(1−ψ)1M∑i=1Mmaxj∈S⁡sim(i,j)

一つ目は報酬の質。二つ目は報酬のカバレッジである。各候補は最も類似した選択によって代表され、どの候補にも十分に近い代表が存在するとき、総和が高くなる。0 と 1 の間の数 ψ が両者の重みを決める。

貪欲選択、保証付き。 空集合 S から始める。利得が最大の設計を繰り返し加え、k で止める:

Δ(j|S)=F(S∪{j})−F(S)

F は単調である。設計を加えても値が下がることはないからだ。また劣モジュラでもある。設計を一つ加えるたびに得られる利得は、前回より小さくなる。非負スコアの和に施設配置項を足したものは、この両方の性質を備えている。こうした関数では、貪欲法が選ぶ集合は最適集合の少なくとも 1 − 1/e ≈ 63% に達する(Nemhauser、Wolsey、Fisher、1978)。実用上は、貪欲法がこれよりはるかに良い結果を出すことが多い。

より単純な近縁種:MMR。 次の設計を選ぶ方法は

j∗=arg⁡maxj∉S⁡[s‾j−λmaxi∈S⁡sim(i,j)]

λ は、近似コピーを避けるために犠牲にする点数。保証はないが、説明は簡単で、k が 12 前後ならうまく機能する。

行列式による選択(任意)。 Pr(S) を det(L_S) に比例するものと定義する。ここで L_ij = q_i q_j sim(i, j)、q_i = exp(β s̄_i) とする。行列式は、選んだ設計が張る体積の二乗に等しいため、設計の質が高く、互いに似ていなければ行列式は大きくなる。貪欲法では、行列式の増分が最大になる設計を毎回加える。増分 Cholesky 更新を使えば、候補あたりの計算量はおよそ k² 回の演算で済む。F と比べて選択が散らばりやすいが、63% の保証はない。

各採用者が誰を代表するかを示す。 S を決めたら、各候補を最も似ている採用者に割り当てる。グループの大きさは、そのタイプの設計がこの人にとってどれくらい一般的かを表す。自分自身しか代表しない採用者は、オンリーワンということになる。

外卡。 k 枠のうち e 枠を確保しておく。例えば 12 枠中 2 枠。選び方は新規性だけを見て、すでに選んだ集合から最も遠い候補を、点数に関係なく選ぶ。外卡は、審査員が見落としがちな設計を浮かび上がらせる。

各採用者がこの人に提示するもの。 レンダリング画像、各指標、審査員の理由、最近傍、グループの大きさ。時間は設計の比較に使うべきで、設計の解読に使うべきではない。

12. 学習ループ

純粋なフィルターは、学んだことを無駄にする。各ショートリストは良い設計がどんなものかを示しているのだから、生成器はそれを活かすべきだ。

基本設定。 生成器の選択、つまりノブ θ とオプションの重み w_t は分布 π_φ に従う。各ラウンドで π_φ から P 回の実行 θ_1, …, θ_P をサンプリングする。各実行が生成した設計はファネルを通る。各実行の出力 y_p で採点する。ショートリストに入った設計の割合、あるいは第 5 段階に進んだ設計の平均強スコアなど。

交差エントロピー更新。 エリート実行 E、つまり出力上位 10% から 20% を残す。分布をそれらに近づける。平均 μ、分散 σ² の連続ノブの場合:

μ←(1−η)μ+ηθ‾E,σ2←max⁡((1−η)σ2+ηVarE(θ), σmin⁡2)

離散値 c を取るノブについて、n_c(E) はエリート実行で値 c が使われた回数を表す:

πc←(1−η)πc+ηnc(E)|E|

ステップ幅 η は 0 と 1 の間にあり、通常は 0.1 から 0.3 を取る。下限 σ²_min は分布がゼロに崩壊するのを防ぐ。これはサンプラーによる勝者への平滑化された最尤フィッティングである。同じ更新は選択肢の重み w_t にも当てはまる。π_c の代わりに w_t / W を使い、n_c(E) / |E| の代わりにエリート設計の中で t が選ばれた割合を使う。

一本の手綱。 評価者に対して最適化すると、本当に欲しいものから外れてしまうことがある(第 14 節)。学習されたサンプラーと元の事前分布の間の KL ダイバージェンスに上限を設けて、近くに保つ:

KL(πϕ‖π0)=∑θπϕ(θ)ln⁡πϕ(θ)π0(θ)≤κ

更新が κ を超えるなら、超えなくなるまで η を下げる。θ が連続のときは、和を積分に置き換える。

探索の下限。確率 ε(0.1 から 0.2 の間)で、元の事前分布から θ を抽選し直す。このステップがないと、ループはある一つのファミリーへと狭まっていき、他のファミリーについては永遠に学べない。この探索の回は、第 13 節の対照群も兼ねる。

少数の設定から選ぶときは bandit を使う。全体の形状や創造性のレベルなど、各設定を腕 a とみなす。成功回数 s_a(候補リストに入ったデザイン)と失敗回数 f_a を数える。各腕について Beta(1 + s_a, 1 + f_a) から値を一つ抽選し、最も大きい値が出た腕を実行する。これが Thompson sampling である。新しい腕を試すことと、最良の腕を使うことのバランスを取る。

安価な評価器を、学習された評価器に置き換える。強い評価器や人間によるラベルは、一つひとつが訓練サンプルになる。正規化した特徴 φ' の上に logistic モデルをフィットさせる:

Pr⁡(good|x)=11+exp⁡(−(𝐰⋅φ′(x)+b))

スコアの計算にはほとんどコストがかからない。選んだ閾値で測った再現率が安価なモデルと同等以上であれば、そのモデルを安価なモデルと置き換える(第9節)。

次にどの設計にラベルを付けるか。 モデルが最も自信を持てず、かつラベル付け済みのどの設計とも似ていない設計にラベルを付ける。単純な優先順位は次のとおりだ。

priority(x)=p(1−p)⋅miny∈labelled⁡d(x,y),p=Pr⁡(good|x)

こうして選んだ各ラベルは、ランダムに1つ選ぶよりも多くのことをモデルに教える。

自分自身の選択もまたラベルである。 候補リストからある設計を選ぶ、あるいは却下するたびに、その結果を1回の一対一の勝敗として記録し、より高い重みで Bradley–Terry のデータに加える(第10節)。自分の選択は審査員の判断より信頼できる。

生成器が変わったら再校正する。 第9節の閾値は古い設計分布で測ったものだ。数回更新したら、層化サンプルに再びラベルを付け、τ を計算し直す。さもなければ再現率の推定値はすでに古い。

13. 効果を測る

指標がなければ、この方法は忙しく見えても実際には悪化しているかもしれない。だから最初の実行の前に指標を決めておく。

先に基準を固定する。 結果を一切見る前に、品質基準 g と候補リストの長さ k を決める。後から g を変えると、すべての数字が意味を失う。

ホールドアウト集合。 審査員と重複排除が入る前に、生成器から有効な設計を n_h 個ランダムに抽出する。人間がすべてに採点するか、強い審査員に採点させて人間の採点と突き合わせる。この集合で訓練してはならない。以下の指標はすべてこの集合上で測る。n_h = 200、q = 5% なら、そのうち良い設計はおよそ10個。良い設計がもっと稀なら、第9節の層化ラベリングを使う。

指標定義読み方
命中率人間が良いと判定した候補設計数を k で割った値、Wilson 区間付き最も重要な数字
エンドツーエンド再現率各段階を通過したホールドアウトの良い設計数を、ホールドアウトの良い設計の総数で割った値低ければ良い設計が捨てられている
審査員精度 rホールドアウト集合における審査員の採点と人間の採点の相関自分自身の自己一致度と比べる(第10節)
多様性N_eff(第4節)とカバレッジ(第6節)値が下がれば生成器が同じものを繰り返している
候補リスト分散選ばれた項目間の平均距離0 に近ければ選ばれたものはすべて複製
命中あたりのコスト総コストを良い設計が選ばれた回数で割った値ラウンドごとに追跡する
学習ゲイン学習型実行の命中率から探索型実行の命中率を引いた値、bootstrap 区間付き区間が 0 を含むならこのループは機能していない

いつ止めるか。 設計案がランダムな順序で到着すると仮定する——探索段階ではそのとおりだが、学習が始まれば成り立たなくなる。このとき n + 1 番目の案が現在の上位 k に入る確率は k/(n + 1)。次の n 個の案について合計すると、新規参入者の期待数はおよそ k ln 2 になる。

Pr⁡(design n+1 enters the top k)=kn+1,E[entrants among the next n]≈∑t=n+12nkt≈kln⁡2

k = 12 のとき、体積を倍にすると新規参入がおよそ 8 個増えるが、どれも置き換える設計よりほんの少し強いだけだ。k 番目のスコア T を ln N_0 に対してプロットする。倍にするごとの利得は傾きに ln 2 を掛けたものになる。この利得が知覚できる最小の改善を下回ったら、あるいは倍にするコスト(C_tot に等しい)が利得の価値を上回ったら、そこで止める。

設計ごとに記録を残す。 コードのバージョン、θ、乱数シード、各段階の結果、margin、judge の理由を保存する。そうすれば誰でも任意の設計を再生成でき、それがなぜ残されたか、なぜ落とされたかをたどれる。コードが変われば古いスコアは比較できなくなるので、各結果にそれを生んだバージョンのタグを付ける。

14. 失效モード

どの失效にも、目に見える兆候と、それを確認するテストがある。

失效兆候テスト修正
代理指標のドリフトjudge スコアは上がるのに自分の評価は上がらない各ラウンドのホールドアウトでの命中率KL 制約、探索の下限 ε、再キャリブレーション
生成器の自己反復N_eff が下がる。重複排除の受理率が 0 に近い衝突の推定(第 4 節)θ の事前分布を緩める。調整可能なパラメータを増やす
生成器が狭すぎる「こういうのが欲しい、でも違うやつ」と何度も言うことになる欲しいものを描いて、生成器が出せるか見る選択肢を増やす。自分のスケッチを変異させる
チェックが厳しすぎる通る設計が少ない。良いものがいつまでも出てこないサンプル上で各チェックを順に緩めて、良いものの割合が上がるか見るチェックを目標に格下げする
チェックが緩すぎるありえない設計が候補リストに入るランダムに通った設計を 50 個抜き取り検査するチェックを足す。悪い設計をテストとして残す
judge のバイアス候補リストが揃って整っていたり、揃って対称だったりする。結果が順序で変わる順序を入れ替える。自分の評価と比べる両方の順序で評価する。出所を隠す。評価基準を使う
judge の相関安い judge と強い judge がすべてで一致するのに、命中率が低いラベル付き集合での誤差の相関異なるモデルファミリーと異なる証拠を使う
閾値の陳腐化監査で見つかる見逃しが以前より増える監査の見逃し率 û の時間変化層化サンプルに再ラベル付けする。τ を計算し直す
良いラベルが少なすぎる再現率の区間が非常に広いn_g が 3/(1 − R*) を下回る層化してラベル付けする。閾値 g を下げる
人手の疲労リストの後ろの項目ほど低い評価になるリスト上の位置ごとに評価を比べるk は 15 以下に保つ。順序をシャッフルする。セッションを分ける
静かな変更同じ設計が週によって違うスコアになる古い設計 20 個を採点し直すすべてにバージョンを付ける。コード変更後に古い設計を再実行する

最も危険なのは代理指標のドリフトだ。スコアそのものが目標になると、それはもともと測るはずだったものを測らなくなる。ホールドアウト、探索的な実行、KL 制約はこのためにある。手間を省くために何かを削るなら、ここは削らない。

15. いつ使うか、そして全体の流れ

有効な設計を作るのが安く、無効な設計を見分けるのが容易で、完成した設計を評価するコストが手作業で作るよりはるかに低いときに、この方法を使う。五つの条件を同時に満たす必要がある。

  1. 生成器が候補を安く、広く出せる。
  2. 硬性ルールをテストとして書ける。
  3. 評価者——モデルでも人でも——が候補を画像、テキスト、あるいは計測データとして見られる。
  4. 設計を評価するコストが手作業で作るよりはるかに低い。
  5. 良い設計をその人の前に置けば、どこが良いか言葉にできなくても、その人は見分けられる。

使わないのは、数を作ることがそもそも不可能な単発の高リスク設計。有効性そのものが曖昧でテストできない場合にも使わない。それでは第 2 段階が評価に潰れてしまい、コストの利点が消える。空間が小さくて完全に列挙できる場合にも使わない。人が見ても良し悪しを区別できないときにも使わない。

適用範囲。 平面図、パッケージ、回路とボードレベルのレイアウト、シフト表、ゲームのレベル、図案とテキスタイルのデザイン、シミュレーションを硬性の検証とする分子と材料、そしてコード——コードではテストと型チェックが硬性の検証で、言語モデルが生成器になる。

流れ。 準備段階は一度だけやる。

  1. タスク仕様を書く。各行をルール、目標、趣味のいずれかに振り分ける(第 7 節)。
  2. 生成器と検証を組む。検証に margin を記録させる(第 4、5 節)。
  3. 特徴と距離を選ぶ。人の助けを借りて δ を決める(第 6 節)。
  4. 設計を 500 個抽出する。p_V と N_eff を測る(第 4、5、8 節)。
  5. 閾値 g と候補数 k を決める。層化サンプルにラベルを付け、確率曲線を当てはめ、再現率の目標 R* から τ を選ぶ(第 9 節)。
  6. 評価尺度を作る。自分で 30 個の設計を採点し、重みを当てはめ、評価者の一致度を測る(第 10 節)。
  7. ホールドアウトを用意する(第 13 節)。

反復して回す。

  1. 確率 1 − ε で学習済みサンプラーから θ を抽出し、確率 ε で事前分布から抽出する。生成し、検証し、重複を排除する。
  2. 閾値 τ で安い評価器を回す。棄却サンプルの α の割合を監査する。
  3. 強い評価器を回し、m 回繰り返し、ペア比較で順位を付ける。
  4. 貪欲な F(S) で候補リストを選ぶ。ワイルドカードも加える。
  5. KL 制約の範囲内で、交差エントロピー更新によりサンプラーを更新する。
  6. 指標を計算し直し、第 13 節のルールに従って止める。

レビューはあなたが担う。

  1. 候補リストを見る。選ぶものと落とすものを決め、それぞれに一文で理由を付ける。あなたの選択と却下はラベルとしてフィードバックされる。

生成と絞り込みは機械が担う。あなたにしかできないことをやる——欲しいものを見たときに、それが欲しいと言う。

記号表

各行はその記号を定義している節を示す。

記号意味節
N, q設計の数;ある設計が最上位に到達する確率1
f, μ, σ真の品質;その平均と標準偏差1
Z_NN 個の標準正規標本における最大値の期待値1
u, r評価器のスコア;評価器の精度(スコアと f の相関)1
x, Xある設計;すべての設計の空間2
bタスクのブリーフ2
G, θ, s生成器;そのパラメータ;シード2
e_j, Vチェック j(0 または 1);有効 = すべてのチェックに合格2, 5
ξ_jチェック j の余裕2, 5
g品質のしきい値;f ≥ g ならその設計は良い2
c_i, p_i, R_i段階 i のコスト、通過率、再現率2, 8
φ, φ'特徴量;平均 0、広がり 1 に再スケーリングした特徴量6
d, δ, A距離;新規性の最小距離;アーカイブ6
D_c, A_d(t)セル c に残る選択肢;方向 d で t に隣接することを許される選択肢4
w_t, H_c選択肢 t の重み;セル c のエントロピー4
β, γ, ρ例示バイアス;凝集性;密度4
π_0生成器パラメータ上の事前分布4
N_eff有効な設計の数4
u_j, y_j, h_j, ν_j目標ゲート、指標、幅、重み7
N_0, N_i, C_tot生成した設計の数;段階 i + 1 に進む設計の数;総コスト8
m, k評価器の繰り返し回数;候補リストのサイズ10, 11
τ安価な評価器のしきい値9
α監査の割合9
V_g, c_next良い設計の価値;次の段階のコスト9
n_gラベル付き集合中の良い設計の数9
v_jルーブリックの重み10
rel_1, rel_m1 回のパスの信頼性;m 回のパスの平均の信頼性10
a_i, π_iBradley–Terry の強さ;その指数10
sim, ψ, λ類似度;品質とカバレッジの重み;MMR ペナルティ11
F(S)候補リストの目的関数11
η, ε, κ, E更新のステップ幅;探索確率;KL の上限;エリート実行の回数12
n_hホールドアウト集合のサイズ13

出典: Mold & Yeast← ホームへ戻る