第1章:フレーミングの基礎
人類は様々なプロセスから成り立っており、それぞれのプロセスは一つ以上のパフォーマンス指標によって評価できる一連の活動を含んでいる。人はいつも「もっと良くなりたい」と思うものらしい。これは根本的な特性であるように思われる。アスリートはもっと速く、もっと強くなりたいと思う。企業はもっと利益を上げたいと思う。医療従事者はもっと多くの命を救いたいと思う。電力網はもっと低いコストで電力を提供したいと思う。
本書は次の言明によって定義される。
私たちは、自分たちが常に何かを改善しようとしているという前提のもとに研究を進めており、そしてそれは、私たちがコントロールできる要素、すなわち決定を操作することによってのみ実現できるのである。
| 応用分野 | 目的 |
|---|---|
| エネルギーシステム | コストの削減、停電の最小化 |
| 公衆衛生 | 死者数の最小化、生産性の最大化 |
| ビジネス応用 | 利益の最大化、コストの最小化 |
| サプライチェーン管理 | コストの最小化、収益・生産性の最大化 |
| 製造業 | コストの最小化、歩留まりの最大化、不良品の最小化 |
| 経済学 | インフレの最小化、成長と雇用の最大化 |
| 金融 | リターンの最大化、リスクの最小化 |
| 交通システム(公共) | カバー率の最大化、コストの最小化 |
| 貨物輸送 | コストの最小化、サービスの最大化、ドライバーの要求への対応 |
| エンジニアリング | 強度の最大化、コストの最小化、性能の最大化 |
| 医薬品開発 | 死者数、健康への悪影響、コストの最小化 |
| スポーツ | 勝利数の最大化、選手給与の最小化、観客動員数の最大化 |
| エンターテインメント | 視聴数の最大化、コストの最小化 |
表 1.1には、様々な人間の活動と、それぞれのパフォーマンスを評価するために使われうる指標の簡単なリストが挙げられている(指標のリストは非常に長くなり得る)。これらの応用例は、私たちが「もっと良くなりたい」と考える問題群の広がりを示唆しているが、課題は、パフォーマンスの改善へと至る段階的な道筋を作ることにある。
現実世界の問題設定はすべて、構造化されていない「平易な言葉」による記述から始めなければならない。それに対し、どのような数理モデルも、問題がすでにコンピュータで理解できる形に構造化されていることを前提としている。ここで欠けているのは、実際にその問題を理解している人々からの入力であり、これが本書の表紙にある未完成の橋によって描かれているギャップを生み出している。
現在の標準的なモデリングの実践では、通常、整数計画法や非線形計画法かもしれないし、機械学習かもしれないし、モンテカルロ・シミュレーションかもしれない「決定技術」に精通した人物が関与する(今日では大規模言語モデルも加えられるだろう。これは技術的には機械学習の一形態である)。企業が専門家(産業界であれ学術界であれ)に相談すると、その専門家は自分自身の専門知識の観点から問題を見ようとする即座の傾向を持つ。
その技術専門家は、自分のスキルセットに合った質問をすることになる。整数計画の専門家は決定変数とコスト関数について尋ねる。機械学習の専門家は推定や予測が必要な未知の量に注目する。シミュレーションの専門家は、シミュレーションを使って評価すべき設計上の決定を特定するかもしれない。
このような振る舞いは、私たちが専門知識フィルタリングと呼ぶ、一種の偏りである。すなわち、自分の専門知識を反映する形で問題を学ぶということである。これはほとんどすべてのプロジェクトで起こる。なぜなら、その分野の専門家は、最も適切な技術専門家を特定するための専門知識を持っていないからである。技術専門家は常に自分の専門知識が関連していると仮定し、自分の訓練というレンズを通して問題を見る。これは欺瞞の問題ではなく、単に人間の本性なのである。
私たちは、すべての「問題」は、何らかの形でプロセスを改善したいという願望から生じているという立場をとる。プロセスを改善するには、決定の結果である変更を行う必要があり、私たちはより良い決定をしたいと考える。この視点は、私たちが常に最善の決定をしたいと考える以上、すべての問題を最適化問題に変えてしまうように見える。しかし、これは私たちが最適化ツールを使うということを意味しない。私たちは、何らかの形式的な分析を行うことを前提にすらしていないが、その可能性への道は常に開けておく。
私たちは、プロセスを改善するために、より全体論的なプロセスを用いる。私たちはまず、最適化のコミュニティで馴染みのある最初のステップである「モデリング」(現実の問題を数理モデルに翻訳すること)を、モデリングに先行する「問題のフレーミング」と呼ぶステップに置き換える。「フレーミング」はビジネスの問題解決においてよく使われる用語であるが、私たちはこれにもっと精密な意味を与えることにする。
私たちのフレーミングの版は、ドメインの専門家(ビジネスパーソン、医療従事者、科学者、エンジニア)が理解しやすい適切な質問をするように人々を訓練するプロセスであり、問題を解くために数理モデルが必要とされる場合、その数理モデルの特定の要素を埋めるプロセスである。フレーミングは、まさに専門知識フィルタリングのリスクがあるため、技術専門家によって行われるべきではない。しかし、私たちのアプローチは、どのような分析ツールを使う場合でも必要となる質問に答えることにつながる。私たちは、この私たちのフレーミングのプロセスが、多くの応用において、コンピュータを使わなくても問題の解決に役立つような明確さをもたらすと信じている。
「問題」とは何か?
問題を解く前に、そもそも「問題」とは何を意味するのだろうか?問題には多くの種類があるが、決定を行うという観点から、私たちは二つのタイプを識別することにする。
- 決定重視型の問題 — これらは、私たちが行っている決定が明確である問題である。
- トラックのルーティング
- 在庫の発注
- 製品の価格設定
- 医療処置の選択
- 蓄電池技術の選択
- 施設の立地
- 製品、サービス、候補者をどこで宣伝するか
- どの州を訪問するかの選択(公職への出馬)
- 指標重視型の問題 — これらは通常、私たちが達成したいことは分かっているが、その指標を改善するためにどのような決定ができるかは当初は分からないような、より複雑な状況で発生する。指標重視型の設定の例としては、以下が挙げられる。
- コストの削減、収益の増加、利益率の改善
- 在庫の削減
- 製造プロセスの歩留まりの改善
- 感染の削減
- 財務リターンの最大化
- リスクの削減
- 人員、設備、施設の利用率の改善
- 得票数の最大化(公職への出馬)
指標重視型の問題は一般的により複雑である。なぜなら、目標を述べることは、その目標を達成するために必要な決定を述べることよりも容易であるからだ。しばしば、私たちはその指標を改善するのに役立つ決定が何であるかすら分からないことがある。実際、パフォーマンス指標に最も大きな影響を与える決定を特定することは、問題をフレーミングする上での重要なステップである。
同時に、適切な指標を特定することも、問題をフレーミングする上での重要なステップとなり得る。実際、複数の意思決定者が存在する設定(組織であれば必ず生じる)では、マネージャーによる重要な種類の決定として、組織階層の下位にいる人々や事業部門を評価するための指標を選ぶということが挙げられる。
決定問題が生じる状況
決定問題は様々な方法で発生し得る。
- 一度だけ解決する必要がある特定の問題に対して、決定を行う必要がある場合。
- 決定が明確に定義されており、単にもっと良くしたいと考えている場合。多くの場合、決定は人間によって行われており、コンピュータがもっと良くできるのではないかという期待があるかもしれない。
- 特に期待される目標を達成できていないときに、時間の経過に伴ってパフォーマンスを改善したいと考えている場合。このような問題では、どの決定がパフォーマンスに影響するかすら事前には分からないことがある。
- 人間によって行われている明確に定義された決定の集合があり、そのプロセスを自動化して手作業の部分を取り除きたいと考えている場合。これは、コストの削減(人を雇うコストがかからなくなる)の一形態として、あるいはプロセスへのより大きな統制を得るためであるかもしれない。
- 将来のシステムを計画する目的で決定をシミュレートしている場合。これは戦略的計画の応用を支援したり、今行っている決定が将来に与える影響を理解するのに役立つ可能性がある。
これらはいずれも、解決すべき問題や改善の機会を特定するための、完全に理にかなった動機を表している。大きな課題は、正しい指標に注意を払っているかどうかを確認し、その指標に影響を与えられるすべての方法を特定することである。あなたがコントロールできるものはすべて、決定の範疇に入る。
決定自動化の三段階
COVID流行時のUSA Today紙の記事は、ワクチン配布の問題を「気が遠くなるほど複雑」と表現していた。この言明の理由は、人々が複雑な問題をどのように考えるべきかを知らないからである。中世の大聖堂は正式な教育を受けていない人々によって設計・建設されたということを思い出すのは、時に役に立つ。ワクチン配布の問題は、複雑さそのものではなく、それについてどのように考えるべきかを知っているかどうかなのである。
これまで欠けていたのは、時間をかけてどのように決定を下すかを考えるための構造化された方法であった。私たちのプロセスは、決定の自動化のプロセスを次の三つの段階に分解することを含む。
第I段階:フレーミング — ここでは決定問題の中核的な要素を特定する。これはまず以下の三つの質問に答えることから始まる。
- パフォーマンス指標は何か?
- どのような種類の決定が行われており、誰がそれを行うのか?私たちは方策と呼ぶ方法で決定を行う。
- パフォーマンスに影響を与える不確実性の源は何か?
第II段階:モデリング — 次のステップは、普遍的なモデリングのプロセスの詳細を埋めることである。これは以下の質問に答えることから始まる。
- どのように決定を行うか?これは私たちが「方策」と呼ぶ関数を用いて行われる。これらは(第III巻で示される)四つの方策のクラスから設計される。
- どのような情報が必要か?これは私たちの状態変数(あるいは「知識の状態」と呼ばれる)の要素を構成し、以下に必要な情報から成り立っている。
- 決定を行うこと(これは方策に依存する)。
- パフォーマンス指標を計算すること。
- 将来における(a)と(b)を計算すること。
情報は以下に分けることができる。
- 物理的・財務的資源の量について完全に分かっていること。
- 様々な目的のために用いられるパラメータや関数。
- 私たちが推定し、信念の形で表現しなければならないこと。
- 状態変数は時間とともにどのように発展するか?
第III段階:実装 — これは、決定を実装し評価するために必要な情報を取得することから始まる範囲を含む。これには以下が含まれる。
- 必要な情報をどのように取得するか。即座に利用可能な情報、他の情報源から取得しなければならない情報、そして推定(または予測)しなければならない情報がある。
- 方策を用いて下した決定をどのように実施するか。
- 現場での決定の実施結果をどのように評価するか。
以下の節でこの3つの段階について説明する。
段階I:問題のフレーミング
自動化プロセスの最初の段階を「問題のフレーミング」と呼び、これは以下の問いに答えることから成る。
- パフォーマンス指標は何か?
- どのような種類の決定が下されるのか(そして誰が下すのか)?
- 決定の実施とシステムのパフォーマンスに影響を与える不確実性の源は何か?
これら3つの問いだけでは問題を解くには不十分だが、決定を下し実施するあらゆるプロセスの出発点となる。
これまでに考案された最も難易度の高いゲームの一つであるチェスをプレイするという設定でこれらの問いを説明すると分かりやすい(図 1.2を参照)。3つのフレーミングの問いに対する答えは以下のようになる。
- パフォーマンス指標 – ゲームに勝つこと。
- 決定 – 許可された手。
- 不確実性 – 対戦相手の手。
もちろん、モデル化が容易であることはチェスをプレイすることを簡単にするわけではないが、チェスは長らく「強化学習」のようなアルゴリズム戦略の力を示すためのベンチマークとして使われてきた。
問題を解くことはステップ4(段階II)で生じるが、これは非常に難しい一方で、残りのステップも自明である。
では、第2章で取り上げる問題のいくつかを考えてみよう。
- フェンタニルによる死亡をどのように減らすか?
- さまざまな不確実性の源に対してロバストであり、コストを最小化するサプライチェーンをどのように設計するか?
- 定時サービスを提供しながら利益を最大化するために、トラックの車隊をどのように管理するか?
- CO2排出量を削減するための最良の戦略は何か?
- 大手製造業者はリスクを管理し、短期・中期の資金需要を満たしながらリターンを最大化するために、資金をどのように保有し投資すべきか?
これらの問題に対して3つのフレーミングの問いに答えることは、決して簡単な作業ではない。そのため、各問いに答えるプロセスに専念する章を3つ用意している。
- 第3章 – パフォーマンス指標
- 第4章 – 決定
- 第5章 – 不確実性
これらの論点は第2章の応用例を用いて説明する。以下の小節では、指標、決定、不確実性のさまざまな種類を説明することで、これら3つの中核要素を簡単に垂間見ることにする。
指標の種類
指標には限りない種類があり、その文脈に完全に依存する。
- ビジネス – ビジネスは、財務指標、生産性指標、パフォーマンス指標、労働指標、そして市場へのサービス提供の様子を捉える指標といった長いリストによって特徴付けられる。
- 健康 – 疾病/死亡、治癒、副作用、可動性、体力、コスト。
- エネルギー – コスト、供給されるエネルギー量、停電、需要削減。
- 製造業 - 収率、製品パフォーマンス、速度、コスト。
- 医薬品開発 - 効能、特許保護、市場性、副作用、健康リスク。
- スポーツ - 得点、安定性、ファンの人気、負傷、安定性。
- 貨物運送 - 収益、コスト、サービス、労働力要件、市場変動への露出。
適切な指標を選ぶことは、それをコンピュータモデルの動作を導くために使うのか、あるいは人々の行動を導くために使うのかにかかわらず、それ自体が一つの課題である。
指標が何を測定しているかとは別に、それがシステムのパフォーマンスを導くためにどのように使われるかという問題がある。指標は3つの異なる方法で使うことができる。
- 目的 - 最大化または最小化したい指標。
- 目標値 - ビルの温度や患者の血圧のように、指標をある目標数値にできるだけ近づけたい場合。
- 限界値 - 指標をある限界値以下(または以上)に保ちたい場合。例えば、患者の血糖値を特定の値以下に保つ、欠品率をある水準以下に保つ、金融ポートフォリオのボラティリティを指定された値以下に保つ、といったことが挙げられる。
決定の種類
さまざまな種類の決定の初期リストを以下に示す。
- 二値 – 2つのウェブページデザインのどちらかを選ぶ場合(A/Bテストと呼ばれる)や、資産を売却するタイミングを決める場合(各時点で保有するか売却するかを選択できる)に生じる。
- 離散選択 – このカテゴリーを3つのクラスに分けると分かりやすい。
- 少数の離散選択肢の集合 - 最良の薬、部品の最良の供給者、施設の最良の立地を選ぶ必要があるかもしれない。
- 連続パラメータの離散化された値の集合 – 価格、薬の投与量、半導体ウェーハを焼成する温度などが例である。
- 場合によっては離散選択肢の数が非常に多いこともあり、薬に使用され得る30,000種類の異なる分子のうちどれを選ぶか、あるいは100の異なる可能な立地の中から異なる施設の場所を選ぶ、といった場合が挙げられる。
- 連続選択 – 価格、濃度、寸法、温度、…。これらはスカラー(すなわち単一のパラメータ)の場合もあれば、複数の(場合によっては多数の)連続パラメータにわたって最適化するベクトルの場合もある。
- 離散選択のベクトル – M人のドライバーをN件の荷物に割り当てる集合があり、ドライバーmを荷物nに割り当てるかどうかを決定しなければならない場合がある。
決定の第2の次元は、今下した決定が将来いつ実施されるかというタイミングに関わる。例えば以下の通りである。
- 配車係は、今すぐ運ぶべき荷物にドライバーを割り当てる。
- 医師は、効果が出るまでに数時間かかる血糖降下薬を処方することがある。
- 電力系統運用者は、明日どの蒸気発生機を稼働させるべきかを今日計画する。
- サプライチェーンマネージャーは、到着まで数週間から数ヶ月かかることがある注文を出す。
- 航空会社は、納入まで2年かかることがある新型機を発注することがある。
- プライベートエクイティ会社への投資は、その資本を8年から10年間拘束することがある。
決定の第3の次元は、誰がその決定を下すかを特定することに関わる。
- ワクチン配布の管理には、連邦政府機関や州政府機関から始まり、病院、ワクチンを接種する医師や看護師にまで及ぶ決定が関わる。
- 自動車エンジンの製造には、材料を供給し、エンジンの各種部品を製造する一連の製造業者の参加が関わり、最終的には自動車の注文を管理するディーラーを通じて市場に流通する。
- 臨床薬物試験には、科学者、規制当局、資金を提供する企業、薬を投与する病院やクリニック、そして患者による決定が関わる。
- トラック運送会社は、配車係と荷物管理者のチームを使って配車業務を行うが、これは会社全体でこれらの決定を調整できる単一のコンピュータモデルに置き換えることもできる。
不確実性の形態
決定を下す際に最も微妙な側面と言えるのは、決定を現場で実施する際に必然的に生じる不確実性を理解することである。当然ながら、生じる不確実性の形態は文脈に大きく依存する。いくつかの例を挙げる。
- 金融取引 – ここでは主に資産価格の変動に関心があるが、トレーダーは資産需要や、失業率、金利、小売売上高の変化のように、市場の方向性を示唆する可能性のある他の指標の変化にも関心を持つ。市場はしばしば期待とともに動くが、期待は測定が非常に難しいことで知られている。
- サプライチェーン管理 – ここでは製品の市場需要の不確実性、競合他社の戦略、供給業者のパフォーマンス、労働者(特に労働組合に加入している場合)の行動に対処しなければならない。さらに、天候、地震、疾病の蔓延といった外部からの影響もある。
- 公衆衛生 – 疾病の蔓延は、疾病の発生源(単一の感染例の場合もあれば、人間の株が進化した多数の感染動物からの場合もある)、疾病の流行状況、感染率、患者への影響、薬の開発、薬の流通、そして薬の受容における国民の反応の関数である。
これらの例のそれぞれには、複数の不確実性の源が関わっている。これらは以下のような異なる形態の不確実性を特徴とする。
- 日々のランダムな需要のような、きめ細かいノイズ。
- 価格や天候の変化は、典型的にスパイクやバーストを示す。
- 技術、消費者行動、競合他社の決定の変化を反映した、新たな水準への予期しない移行があるかもしれない。
- 地震や重要な新技術の発明のような、単発的で稀な事象。
- 発生する可能性はあるが、実際にはまだ一度も発生していない事象への対応策。
不確実性の考慮は、それがパフォーマンス指標にどのように影響するかという観点で考慮しなければならない。不確実性が存在する中で決定を下す場合、将来何が起こるか分からない中で平均的にうまく機能するように、決定をどのように下すかといった選択をしなければならない。
しかし、一部の不確実性の形態は、不確実性が存在しなかった場合にはパフォーマンス指標に現れない要因を捉える「リスク」と呼ばれる新たな次元を導入する。リスクは、金融、サプライチェーン管理、健康といった分野で非常に人気の高いトピックである。リスクについて論じた書籍は数多くあり、リスクをモデル化する非常に洗練された論文も数多くあるが、リスクの正式な定義を一度も示さないことが多い。この定義は第3章で示す。
段階II:モデリング
最初の3つの問い(パフォーマンス指標、決定、不確実性)は、我々が普遍的モデリングフレームワーク(UMF)と呼ぶものの基礎を築く。UMFは任意の決定問題をモデル化するために使うことができ、特に拡張版を使ってマルチエージェント問題を扱う場合に有効である。ここでは、時間の経過に伴う決定と情報の変遷を捉えることに重点を置く。第II巻では、UMFを完全な数学的記法(見た目ほど悪くない)を用いて説明するが、ここではまず平易な英語でその概要を描くことにする。
普遍的モデリングフレームワークは5つの要素から構成される。
- 状態変数は、決定を下し、パフォーマンス指標を計算するために必要なすべての情報を捉える。状態変数の要素を理解することは、決定を下すためにどのような情報が必要かというプロセスに情報を与える。
- 決定変数は、我々がどのような決定を下すかを表す(問題のフレーミングの際に説明した決定の種類に基づく)。決定は何らかの「方策」を用いて下すと仮定していることに注意すること。この方策は後で設計する。
- 外生情報とは、決定を下した後、次の決定を下す前に到来する新しい情報である。
- 遷移関数は、下した決定と、決定を下した後に到来した外生情報を考慮して、状態変数がどのように変化するかを記述する。
- 目的関数は、決定を下すために選んだ方法を用いて、システムのパフォーマンスをどのように評価するかを記述する。
状態変数を特定するには、決定を行うための方法(方策と呼ばれる)を選択する必要があるため、これを先に行わなければならない。しかし、シミュレータを使用する場合、方策の評価とチューニングにはユニバーサルモデリングフレームワーク全体が必要となる。結局のところ、方策の設計(これは状態変数に必要な情報を決定する上で大きな役割を果たす)と方策の評価は、反復的なプロセスなのである。
ユニバーサルモデリングフレームワークについては、非常に基本的な数学的記法を導入する第II巻でさらに詳しく取り扱う。
ユニバーサルモデリングフレームワークが当たり前のように聞こえるなら、それはその通りである。これは、我々が知っていること(状態変数)が、決定(我々が制御するもの)と外生情報(我々が制御しないもの)によってどのように進化するかを記述する枠組みに過ぎない。驚くべきことに、これが研究文献において標準になっていないという点である。ただし、それが見られる分野も一部存在する。
おそらく最も難しいステップは、決定を行うための方策を設計することである。我々は、方策の評価のプロセスを方策の設計から切り離しており、これが確率的最適化に関するほぼすべての書籍で用いられているアプローチと我々のアプローチを区別する点である。幸いにも、我々にはこの複雑さを克服するための戦略がある。
第III段階:実装
最適化モデルの設計と解決において、最も広く見過ごされている側面は、間違いなく実装のプロセスである。学術文献は、重要なのはコンピュータ上で問題をどれだけうまく解決するかではなく、決定が実装されたときの影響であるという点を完全に見落としている。
実装の主要な側面は、次の3つの領域をカバーする:
- 状態変数を埋めるために必要なデータの取得。これは、決定を行い、パフォーマンス指標を計算するために必要な情報を意味する(詳細は第II巻で述べる)。
- 決定の実装。これは、人々に指示に従わせること、あるいは指示を電子的に伝達することを意味するかもしれない。
- パフォーマンスの評価。複雑なシステムにおいて、システムがどれだけうまく機能しているかを理解することは、それがおそらく行われている決定の影響を受けているため、かなり困難な場合がある。
産業における複雑な問題では、実装は極めて困難なプロセスとなり得る。これがモデリングプロセスの範囲外とみなされる場合でも、モデラーがこれらのステップについて考えることは有益である。一部の決定は、コンピュータによって決して行われることがないかもしれない。例えば、公衆衛生の現場でのリソース配分には、それぞれが独自の隠れた優先事項を持つ州、地域、地方の組織間の交渉が伴う。
3種類の情報
まず、コンピュータ上で表現できる量はいずれも情報の一形態であることを認識する。時間の経過に伴う進化の観点から、3種類の情報を特定できる:
- 決定を行う時点で我々が知っている情報であり、これは我々のシステムの状態(より正確には知識の状態)を構成する。これは、現在あるいは将来において、決定を行うため、および/またはパフォーマンス指標を計算するために必要な情報である。
- 我々が制御する新しい情報。決定については第4章で正式に定義し、決定を特定するプロセスに役立つ10種類の異なる決定タイプを説明する。
- 我々のシステムの外部から到着する、我々の制御が及ばない新しい情報。ただし、それは我々の現在の状態や我々が行う決定によって影響を受ける場合がある。これを外生情報と呼び、次のようなさまざまな源から生じ得る:
- 天候や地震などの自然現象。
- 製品の需要、株価、金利などの市場。
- 病気の蔓延といった人口動態。
- 他の企業や組織の行動。
- 我々のシステムの外部にいる人々(より一般的にはエージェント)による決定。例えば:
- 製造工場への入力材料を供給する業者の生産決定。
- 企業内の他の部門(製造や在庫計画の分野にいる場合は、価格設定やマーケティングなど)。
- 患者の行動(あなたが医師である場合)。
- 大統領選挙において対立候補が出す広告。
外生情報については第5章でさらに詳しく説明する。
プロセスとしての意思決定
以下の要素からなる「最適化問題」を作成することに焦点を当てた膨大な文献が存在する:
- 決定(または決定の集合)。
- 最小化または最大化すべき目的。
- 許容される決定の集合を定める制約。
実際の意思決定はプロセスであり、このプロセスを理解することは、より良い決定を行うための手法を設計する上で極めて重要である。まず、以下の要素を特定することから始める:
- 逐次決定問題。単一のエージェントによって時間をかけて行われる特定の決定の集合を作るプロセスを記述する。
- 決定を行うために必要な情報を作成するプロセスを記述する「情報連鎖」。
- 決定を実装する際に伴うステップ。
- パフォーマンスを評価するプロセス。
複数の意思決定者間の調整という課題は、本モノグラフの範囲を超えている。
逐次決定問題
これで、逐次決定問題を英語で書き出す準備が整った。次のように記述できる:
状態、決定、情報;状態、決定、情報;…、状態、決定、情報。
各3つ組{状態、決定、(外生)情報}は、特定の時間期間に関連する情報を表す:
- 「状態」は、時間期間の開始時に我々が知っている情報である。
- 「決定」は、我々が内生的に制御可能な情報である。
- 「(外生)情報」は、我々が決定を行った後、次の決定を行う前に到着する情報である。
決定を行った後(場合によっては外生情報を観測した後)、我々は立ち止まってパフォーマンス指標を計算する。
もちろん、すべての決定問題が逐次決定問題であるわけではないが、決定の大多数は時間をかけて繰り返し行われる。しかし、決定と情報の順序という観点から、逐次決定問題のいくつかのカテゴリーを特定することができる:
- 決定を行い、停止する。
- 決定を行い、外生情報を見て、停止する。
- 決定を行い、情報を見て、さらにもう一つ決定を行い、停止する。
- 決定を行い、情報を見て、決定を行い、情報を見て、…、これを$T$回繰り返し、停止する。
- 決定を行い、情報を見て、これを無限に繰り返す。
いくつかコメントしておく:
-
カテゴリー1は、1950年代以降、最適化コミュニティとして知られる分野を支配してきた静的で決定論的な決定問題を記述する。これらの問題の最も単純なバージョンは、アイテムが期待通りに正確に機能すると仮定する限り、最も安いコストのサプライヤーからアイテムを購入するといった、選択肢の集合の中から最良のものを見つけることを含む場合がある。
より複雑な問題事例では、複数の供給源から異なるニーズに対応する供給の最小コスト配分を見つけたり、異なる人員や機械に異なるタスクを実行させるように割り当てたりすることが含まれ、複数の次元で作業する複雑さが生じる。これらの問題の複雑さは、応用のほとんどが実際には逐次決定問題であるという驚くべき見落としにつながっており、この特性は、このトピックに関する文献において完全に無視されてきた。
- カテゴリー2は確率的探索として知られる問題を記述しており、これは最も広く研究されている問題のクラスの一つである。確率的探索問題の例には次のものが含まれる:
- 製造施設と倉庫の集合を選び、その後シミュレーションを実行してパフォーマンスを評価する。
- 患者の治療計画を選び、その後それがどのように展開するかを見る。
- 株式ポートフォリオの投資戦略を設定し、その後それがどれだけうまく機能するかを観察する。
これらはすべて、「選択を行う」、そして「その選択がどれだけうまく機能するかを見る」ことによって記述できる。これがシミュレータや実験室で行われる場合、我々はこれらの実験を何度も繰り返し実行できるかもしれない。この場合、我々はカテゴリー4に該当する完全に逐次的な探索プロセスを持つことになる。
- カテゴリー3は、カテゴリー2のより一般的なバージョンを記述しており、そこでは、製品を一連の倉庫に送るといった初期決定を行うかもしれない。次に、小売店での製品の需要が明らかになる。最後に、倉庫から小売店への出荷という決定がある。この問題は、確率的計画法という枠組みの下で広く研究されてきた。
- カテゴリー4は、決定を行った後に新しい情報を学習するという繰り返しの性質を捉えているため、最も一般的な形の逐次決定問題であるが、通常は事前に定義された停止点を持つ必要があるシミュレーションを実行しているという実際的な理由から、特定の時間期間数の後で停止する。
- カテゴリー5は、動的計画法(特にマルコフ決定過程)や確率制御といったコミュニティで人気のあるトピックである。目的は通常、コストまたは報酬の無限割引和である。この文献は通常、各時間期間に到着する情報が同じ分布から来る(これは定常分布として知られる)と仮定しており、さまざまな理論的結果を導出するのに有用である。
決定の最適化から方策へ
静的で決定論的な最適化問題を解くとき、ほぼすべての著者は、決定を変数(通常はベクトル)「$x$」として表現し、最良の「$x$」を見つけるアルゴリズムを設計しなければならない。それに対して、逐次決定問題を扱う場合、我々が何を最適化しているのかについて根本的な理解の欠如がある。要するに、決定論的問題では最良の決定$x$を探しているのに対し、逐次決定問題では、決定を行うための方法を表す最良の関数(すなわち方策)を探索しているのである。
決定を行うための最良の関数を見つけるという発想は、最適化文献においては馴染みのないものに思える。それに対して、これはまさに機械学習で行われていることであり、そこでの課題は、データに最もよく適合する関数(しばしば統計モデルと呼ばれる)を見つけることである。以降、我々は決定を行うための関数を方策と呼ぶことにする。このトピックについては第II巻でさらに詳しく取り扱う。
情報連鎖
決定を行うことは、物理的な製品を作ることとある種の類似性を持つ。(例えば)車を作るには、さまざまな部品を作る必要があり、それはしばしば複数のステップを要する。そして、車を作った後、それを顧客に届けなければならない。
決定は情報から「作られる」ものであり、その情報自体も一連のステップを通じて作成(収集または推定)される必要があるかもしれない。何台、どのような種類の車を作るべきかを決定するには、過去のデータや経済予測、営業担当者からの見積もりから編纂された予測が必要になるかもしれない。このデータは、その後、予測を作成する一連の手法を経る必要がある。
情報の流れは図1.3に描かれている。「情報」とは、観測された在庫、履歴から作成された予測、市場調査を通じて情報を収集するという決定の結果、あるいは生産計画プロセスの結果かもしれない。処理ノードは数学的関数――入力に作用して出力を生み出す一連の方程式――である。これらの関数は、数値の合計から予測の生成、さらには最適化問題を解くことによる決定に至るまで、何でも行い得る。
物理的プロセスと同様に、情報プロセスも通常、手作業のステップ(在庫の入力など)とコンピュータ上で行われる(したがって自動化された)ステップ、たとえば予測の実行、との組み合わせから成る。
コンピュータの広範な利用を考えると、情報プロセスはほぼ完全に自動化されているはずだと考えがちである。しかし、依然として多くのホワイトカラー労働者が存在しており、彼らはトラックへの積み込みや組み立てラインでの作業をしているわけではない。
人工知能
複雑な問題を形式的に考えることの究極の目標は、コンピュータの力を使ってプロセスを改善することにある。ほとんどの人はすぐに「人工知能」(しばしば「AI」と呼ばれる)の利用を提案するだろう。問題は、「AI」という用語が1950年代から使われており、長年にわたって着実に進化してきたものであり、通常はコンピュータサイエンスの分野から生まれた最新の発明に対して適用されてきたということである。
我々はAIの主要な形態を、図1.4に示すように7つのレベルに分類する。これら7つのレベルを説明した後、それらを4つの根本的に異なる知能のクラスに整理する。
AIの7つのレベル
レベル1: ルールベースの論理 - これは1960年代から70年代にかけて最初に発展し、1980年代(コンピュータが初めて広く普及し始めた頃)に「エキスパートシステム」として登場した。これらは、「もし{条件}ならば{行動}」という形式で人間によって指定されたルールから構成される。たとえば、条件は「赤身肉を食べる」であり、行動は「赤ワインを飲む」かもしれない。あるいは条件が患者の属性(症状、性別、年齢、体重、喫煙者か否か、血圧、…)であり、行動が医学的治療であるかもしれない。
このAIの形態は、「ハイプサイクル」として知られるようになった過程を経た。人々はコンピュータが世界を支配するようになると空想したのである。
ルールベースシステムの問題は、条件を構成する要素の数が増えるにつれて、可能な条件/行動のペアの数が指数関数的に増加すること(「次元の呪い」として知られる挙動)であった。1990年代までに、この初期のAI形態は広く失敗と見なされたが、実際にはルールベースシステムは今日でも広く使用されている。唯一の失敗は、当初の誇大宣伝に応えられなかったことである。ルールベースシステムは今日でも広く使用されている。
レベル2 – 統計/機械学習 - 1900年代初頭から発展してきた統計学(コンピュータサイエンスでは機械学習として知られる)は、データを用いてモデルを推定する科学である。ホテルの部屋の様々な価格の観測値を使って需要を推定したり、過去の需要から将来を予測したりすることができる。この分野は1980年代から1990年代にかけて爆発的に成長した(コンピュータが広く普及するにつれて)。
機械学習モデルには様々なスタイルがあるが、図1.5に示すように、これらは3つの大きなクラスに分類できる。
- ルックアップテーブル – これらは「もし{入力}ならば{出力}」という形式であり、ルールベースシステムに似ている。
-
パラメトリックモデル – これらは入力の解析的関数であり、未知のパラメータの集合に依存する数学的関数を用いて1つ以上の出力を生成する。関数がこれらのパラメータに関して線形であれば、これは線形モデルとなる。より一般的なモデルは、パラメータに関して非線形な関数を用いる。図1.6は線形モデルと非線形モデルを図示している。
図 1.6. 機械学習で使用される線形および非線形のパラメトリック関数の図示。
図 1.7. (非常に小さな)ニューラルネットワークの図示。各リンクにはパラメータが付随しており、訓練データセット内の入力に関連付けられたラベルにできる限り近い出力が得られるよう調整する必要がある。 1970年代に初めて登場した重要なパラメトリックモデルのクラスはニューラルネットワークである(図1.7参照)。ニューラルネットワークは入力層を持ち、任意の入力集合が入力ノードを通じてネットワークに入る。これらの値は、1つ以上の出力を生成する前に中間層を通じて変換される。ネットワーク内の各リンクにはパラメータが関連付けられており、初期のニューラルネットワークではしばしば数千から100万個のパラメータを持っていた。
ニューラルネットワークは、実質的に無制限の関係性の集合を近似するために使用できる非常に高次元の非線形関数と考えるのが最も適切であるが、その代償として大規模な訓練データセットが必要となる。また、その柔軟性ゆえに、ノイズが存在する状況での使用能力は制限される。
- ノンパラメトリックモデル – これらは関数の局所的な近似であるモデルとして最も容易に理解できる。たとえば、一連の点における関数の推定値を持っており、それらの点の線形外挿を用いて、推定値を持たない点の推定を行うことができる。
レベル3 – パターン認識 - AIの次のレベルは、パターン認識の問題に取り組む研究コミュニティから2010年に生まれた。パターン認識は、ニューラルネットワークを用いる、レベル2で見た機械学習の別の形態にすぎない。しかし、これらのニューラルネットワークは1990年代に使用されていたものよりもはるかに大規模である。数千から100万個のパラメータの代わりに、これらのニューラルネットワークは1000万から1億個のパラメータを持つ場合がある。これらは「深層ニューラルネットワーク」と呼ばれた。
入力は画像内のピクセル(あるいは音声パターンからの信号)であり、これははるかに高次元の入力である。困難な部分は、パラメータ調整を行うのに十分な大きさの訓練データセットを作成することであった。訓練データセットは、図1.8の「ひまわり」や「Take me home」のように画像を識別する関連する「ラベル」を伴う数百万枚の画像(インターネット上で容易に見つけることができた)から構成される必要があった。困難な部分は、人によって生成される必要のあるラベルを取得することであった。
訓練におけるブレークスルーは、プリンストン大学のコンピュータサイエンス教授であるFei-Fei Liが、Amazonが作成した「Mechanical Turk」と呼ばれるソフトウェア環境が、非常に低い賃金でこれらのラベルを作成する意思のある世界中の人々にアクセスすることを可能にすると気づいたときに訪れた。言い換えれば、ブレークスルーは基礎となる分析手法(ニューラルネットワークは1970年代にさかのぼって開発されていた)というよりもむしろ、低コストで十分なデータにアクセスできることにあった。
レベル4 – 大規模言語モデル - レベル4は、画像認識からのさらなる一段階の進歩にすぎず、画像の識別を推定(あるいは「予測」)する代わりに、ニューラルネットワークは(数語から数百、数千語に及ぶ)単語の系列を入力として受け取り、次の単語を予測する(モデルは「トークン」として知られる単語断片に作用する)。これは、ユーザーが提供した初期プロンプトである可能性のある単語の系列が与えられたとき、次に来る可能性のある単語の確率分布を作成することによって行われる。
図1.9は、「サプライチェーンの堅牢性を向上させる最良の方法は…」というプロンプトから始まる例でこれを図示している。ニューラルネットワークは次に、訓練データセットに基づいて、次に来る可能性のある単語の確率分布を生成する。大規模言語モデル(LLM)は、この分布に比例してサンプリングを行う。「design(設計する)」という単語を選んだ場合、「サプライチェーンの堅牢性を向上させる最良の方法は設計することである…」という系列がニューラルネットワークに入力され、そこから別の単語の分布が生成される。単語をサンプリングし、それを前の単語の系列に追加して新しい系列を作るというプロセスが、繰り返し繰り返される。これが、このプロセスが「生成AI」と呼ばれる理由である。
先行する系列に続く「次の単語」の分布を生成するために使用されるニューラルネットワークは、実に巨大である。パターン認識(レベル3)用の深層ニューラルネットワークが1000万から1億個のパラメータを持つ場合があるのに対し、LLM用に使用されるニューラルネットワークは100億から1兆個の範囲のパラメータを持つ場合がある。
この説明から明らかにすべきことは、LLMは本質的に知的ではないということである。それらは単に訓練データセットからの単語パターンを模倣しているにすぎない。それらが知的に聞こえるのは、(人間が書いた言葉であると仮定すれば)知的な源から来る単語パターンを模倣しているからである。
レベル5 – 決定論的最適化 – これは、困難な決定問題を解くための膨大なツール群を対象とする。これらの問題は線形計画問題、整数計画問題、非線形計画問題として知られており、いずれも「決定」がベクトルであるという特徴を持つ。つまり、それは異なる決定の(非常に大規模な)集合である。いくつかの例を挙げる。
- 10か所の配送センターから200か所の倉庫へどれだけの製品を送るかを決定したい場合があり、これは決定すべき2,000次元のベクトルを作り出す。
- 航空会社は、航空機の稼働率を最大化しつつ、航空機の整備規則や人員使用の規則を遵守しながら、長期間(通常は四半期ごと)にわたって航空機と乗員(パイロットと客室乗務員の両方)のスケジュールを組まなければならない。
- 財務マネージャーは、10,000種類の異なる投資先への資本配分を常に調整しており、毎日行われる10,000件の売買決定をもたらす場合がある。
多くの場合、これらの問題は図1.10の左側に示されているように図式的に表現できますが、数学的に記述するための標準的な方法があり、しばしば右側の記法から始まります。この数学的記法は一般には馴染みがないものですが、大学は毎年何千人もの学生を、この形式で問題をモデル化するよう訓練して輩出しています。そして、商業的に入手可能なものもあれば無料で入手できるものもある多くのコンピュータパッケージが存在し、大規模な問題であっても効率的に解くことができます。
レベル6 – 逐次決定問題 – 決定の大部分は、数秒ごと、数分ごと、あるいは数時間ごと、毎日、毎週、四半期ごと、あるいは毎年というように、時間の経過とともに繰り返し行われます。上記のレベル5にある決定論的最適化問題でさえ通常は時間をかけて繰り返し解かれますが、ほとんどの決定ははるかに単純です。逐次決定問題の例をいくつか挙げます。
- 資産をいつ売却するかを決定すること、そして動的に変化する価格に直面した状況で資産を保有し続けることの期待価値。
- 動的な市場において不確実な需要を満たすために、非常に長いリードタイムを伴う可能性のある在庫の補充。
- 自動化された金融取引方策のパラメータの決定。
- 最も強度の高い材料を生成するための、材料の適切な濃度、混合のための適切な温度、そして混合物を各温度にさらす時間の選択。
- 特定の特徴を持つ患者を治療するための最適な薬剤の選択。
- 風力発電所、太陽光発電所、電力網の組み合わせから、将来の負荷(需要)を最小コストで満たすためにどれだけのエネルギーを蓄えるかの決定。
- トラックロード輸送では、どのドライバーがどの貨物を運ぶかを決定する必要がある。
- 数千の株式やその他の投資対象それぞれにどれだけ投資するかの選択。
逐次決定問題は人間の営みのあらゆる場面で発生します。決定は二値(保有するか売却するか)、離散(どの薬剤か)、あるいは離散・連続混合のベクトルであることがあります。離散(あるいは離散化された)選択肢の集合から最良のものを選ぶことは、間違いなく最も一般的な逐次決定問題ですが、多くはビジネスロジスティクス、エネルギーシステム、そして医療における流通問題に生じる複雑な運用上の問題を伴います。
レベル7 – 創造性、推論、判断 – レベル7は知能の最高水準を表します。例えば、レベル5とレベル6の多くの問題は非常に複雑になり得ますが、それらは常に明確に定義された決定と目的を持つ、構造化された問題を伴います。レベル7は、CO2排出量の削減、疾病の最小化、新製品の創出といった複雑な問題を提起できる領域です。
多くの著者が「AI」の未来を人間に取って代わるものとして語る一方で、実際にはコンピュータが明確に定義された問題を超えて拡張することはできないというのが我々の確固たる信念です。コンピュータ知能(大規模言語モデルの誇張されたスキルを含む)の能力を超えていると我々が考える活動の一つは、複雑な決定問題を組み立てることです。この理由から、我々はレベル7をサイエンスフィクションと呼びます。それは語るには楽しいものですが、実際には決して起こらないものです。
コンピュータ知能の3つのクラス
人工知能の最初の6つのレベルは、コンピュータ上で実装可能な様々な形態の知能を表しており、7番目は、我々の見解では、人間だけの領域として残されています。最初の6つのレベルは3つの明確なクラスに分けることができます。
クラス1 – 人間が指定する振る舞い – このクラスには人工知能の7つのレベルにおけるレベル1が含まれ、2つの異なる目的に使用できます。
- パターン認識 – ルールは、患者が特定の条件の組み合わせを持っている場合、それは患者が特定の病気を持っていることを意味すると規定することがあります。
- 決定 – 同様に、特定の条件の組み合わせを持つ患者は特定の薬を服用すべきである(これは決定の一形態です)。
ルールベースの論理は、そのルールが世界の状態についての言明をしているのか、それとも取るべき行動についてのものなのかを区別しません。ルールの背後にある条件とその結果(それが状態の言明であるか決定であるかにかかわらず)は手動で指定される必要があります。
クラス1の人工知能の重要な特徴は、それが使用しないものです。
- 訓練データセットを使用しない。
- 根底にある決定問題のモデルを必要としない。
ルールは人間によって直接指定されなければなりませんが、データセットの中でルールを指定することも可能です。例えば、医療プロトコルを列挙したデータセットがあり、各患者の状態に対して治療法が指定されているかもしれません。しかし、実際の医師の決定をまとめたデータセットがあり、それが矛盾している場合を想像してください。異なる医師が、同一の状態の患者であるにもかかわらず、矛盾する治療を指示することがあります。このデータセットを使って治療法を学習するのであれば、それは機械学習の一例となるでしょう。
クラス2 – 機械学習 – このクラスにはレベル2、3、4が含まれます。機械学習とは、入力と一連の調整可能なパラメータから構成される数学的関数の使用を指し、これらのパラメータは、関数が一連の応答(ラベルとも呼ばれる、他にも多くの呼び名がある)に最もよく一致するように調整することができます。機械学習には、ユーザーが指定する関数と、入力と応答(ラベル)からなる訓練データセットが必要です。
ルールベースの論理は入力の複雑さの点で限られている一方、機械学習は多数のパラメータを持つモデルを使用して非常に複雑な入力を扱うことができます。線形モデルは数十から数十万の変数を持つことができます。ニューラルネットワークは、1兆を超える変数を持つ大規模言語アプリケーション向けに訓練されてきました。もちろん、より大きなモデルはより大きなデータセットを必要としますが、これは言語処理という非常に複雑なタスクにニューラルネットワークを使用する上で制約となる主要な障壁であることが証明されています。
クラス3 – 最適化 – このクラスにはレベル5とレベル6が含まれ、これらは選択肢の集合(離散集合であっても高次元ベクトル空間であってもよい)から最良の決定を選ぶという問題を扱います。レベル5は、すべてのデータが既知である静的(決定論的)問題に限定されており、我々は最良の決定(しばしばベクトルである)を求めます。レベル6は、時間をかけて最良の決定を選択するという複雑な問題に取り組み、これは絶対的に膨大な範囲の問題にまたがります。
最適化クラスは訓練データセットを使用しません。その代わりに、性能指標(しばしば目的関数と呼ばれる)と、どの決定が許容されるかを記述する一連の方程式を指定する必要があります。逐次決定問題については、情報が時間とともにどのように変化するかを教える方程式も必要です。
まとめ
クラス2の手法、すなわち機械学習は、数学的関数を訓練データセットのように振る舞うように訓練することを目指します。訓練データセットが、乳房が癌の証拠を示しているかどうかについての人間が生成した「ラベル」を伴う乳房X線写真などの画像から構成されている場合、訓練されたモデルは、ラベルを提供した放射線科医のスキルを超える性能を発揮することは決してできません。この理由から、クラス2の手法(機械学習)はコンピュータに人間のように振る舞うことを教える(より正確には、訓練データセットのように振る舞うことを教える)と言うことができます。
対照的に、クラス3(最適化)の手法は、人間を上回る決定を生み出すように設計されています。この高水準な性能の代償として、問題のモデルとして知られるものを提供しなければなりません。特に、これらの手法は次のような要素からなる数学的モデルを必要とします。
- 明確に定義された決定の集合。
- ある決定が別の決定より優れているかどうかを評価できるようにする明確な性能指標。
- 以下を記述する問題の物理法則:
- ある時点でどの決定が可能か。
- システムが時間とともにどのように進化するか。
- どのように新しい情報がシステムに到着するか。
本書はクラス3を扱います。なぜなら、これは決定を下すことに取り組む手法をカバーしているからです。特に、我々は逐次決定問題に焦点を当てます。なぜなら、これらは最も普遍的なものだからです――事実上誰もが決定を下し、そしてそれを時間をかけて行うため、それらは逐次的な決定となります。静的(決定論的)問題は逐次決定問題の特殊な場合に過ぎず、逐次決定問題の解法は、静的な決定論的問題のために開発されたツールに大きく依存することになります。
逐次決定問題は非常に豊かな問題クラスを表します。これらのツールは常に人工知能の最初の5つのレベルにある手法に依存しています。レベル5のツール(決定論的最適化)と同様に、我々は根底にある問題のモデルを必要とします。しかし、逐次決定問題はレベル5の静的問題よりもはるかに豊かであるため、モデルははるかに豊かで複雑である必要がありますが、これは古典的な数学的モデリングが不十分であった領域です。
従来のモデリング枠組み
決定を下すためのモデリング枠組みを2つの大きなカテゴリーに分けると理解しやすくなります。
- すべての情報が既知であると仮定する静的な決定論的モデルであり、そこでは最もうまく機能する決定を選び出そうと努めます。
- 決定と情報の流れを捉える逐次決定モデル。決定を下した後に到着する情報を明示的にモデル化するため、これは決定が(おそらく決定の性能に関連する)情報が到着する前に下されなければならないことを意味します。
本巻では、すべての逐次決定問題が情報の流れを明示的に捉えており、これは我々が各時点において、将来到着するかもしれない情報を知る前に決定を下していることを意味します。この理由から、逐次決定問題は本質的に確率的です(将来の情報がランダムであることを言う洒落た用語です)。
静的な決定論的モデル
静的な決定論的問題をモデル化するための文献は非常に成熟しており、次のように記述できる最適化モデルの変種を中心に構築された、相当な基盤を持つソフトウェアが存在します。
\[\begin{align} \min_{x,y} \quad & C(x,y) \tag{1}\\ \text{subject to:}\\ & g(x,y) = 0, \tag{2}\\ & x \geq 0, \tag{3}\\ & y \in \{0,1\}. \tag{4} \end{align}\]我々は連続変数$x$(0.56のような値を取り得るもの)と、0または1でなければならない離散変数$y$の両方の存在を許容してきました。
決定論的最適化問題(レベル5)をモデル化する際に起こることは、方程式(1)~(4)で与えられる数学的モデルを取り上げ、それから物理的な問題に取り組み、モデルの要素を埋めるということです。これには決定変数、目的関数、そして制約条件を特定することが必要です。ハンマーを持っていて、釘を探しているところを想像してください。ツールは有用ですが、そのプロセスには問題をモデリング枠組みに当てはめることが必要です。
決定論的最適化は長年にわたり、モデルが与えられたときに最適な決定を見つけるツールを設計するという課題を重視してきましたが、モデル自体を作成することには二次的な注意しか払われてきませんでした。モデリング枠組みは、決定と情報の進化を捉えるための仕組みや、決定がどのように組織化されているかに関連するものを何ら提供しないことに注意してください。
逐次決定モデル
伝統的に、逐次決定問題を扱う文献も同じアプローチに従おうと試みてきたが、それは完全に失敗している。式(1)–(4)に代表される決定論的最適化のための明確に定義されたモデリング枠組みとは対照的に、最適化の文献は逐次決定問題に対する標準的なモデリング枠組みを採用してこなかった。本稿執筆時点で、10以上の異なるコミュニティが8つの異なる記法体系を用いており、どの問題を解いているのか、あるいは何を求めて解いているのかを表現するスタイルが根本的に異なっている。例えば、あるコミュニティは決定論的最適化で行われるように目的関数を書き下し、別のコミュニティは方策を書き下し、さらに別のコミュニティは最適性条件を書き下す。
我々のアプローチは、前節で概説した普遍的モデリング枠組みに依拠しており、これはあらゆる逐次決定問題をモデル化するために用いることができる。このモデリング枠組みはReinforcement Learning and Stochastic Optimization[第9章]で詳しく説明されている。同書では、決定を下すための方策について述べる前にモデルを提示しており、方策については第11章で扱われている(第10章は不確実性のモデル化に焦点を当てている)。
本シリーズの第II巻でも、控えめな水準の記法を用いつつ、本巻よりもはるかに詳細に普遍的モデリング枠組みの諸次元を取り上げる予定である。しかしながら、普遍的モデリング枠組みは、本巻で扱う3つの問いに答えることなしには使用することができない。
最も一般的な決定問題
決定問題、とりわけ逐次決定問題は、極めて豊かな問題クラスである。しかし、最適化に関する文献でしばしば見落とされているのは、大多数の決定問題が図1.11によって記述されるということである。ここでは、2つの選択肢(行動を取るか取らないか)、あるいは少数の選択肢(どの薬を使うか、どこで部品を購入するか)、あるいは多数の選択肢(どの製品を宣伝するか、新薬を作る際にどの分子を使うか)を持つ場合がある。
この問題クラスの特徴的な点は、各選択肢の性能について推定値を持っているかもしれないが、選択を行った後に現れる性能については通常不確実であるということである。最善の選択を行う機会が一度きりの場合もあるが、多くの場合この決定を繰り返し行い、過去の経験から学習することができる。この問題には多くのバリエーションがある:
- 実験室やシミュレータでオフライン実験を行っているのか、あるいは実行しながら学習しなければならないのか。
- 選択を繰り返す回数。
- ある選択から学んだことが、基礎となる信念モデルを反映して、他の選択に関する信念に影響を与えるかどうか。
- 基礎となる構造的関係を捉える信念モデルの構造。
- 実験を行うための機械の設定、供給品の消費、熟練した人員の必要性など、消費または管理される物理的資源の存在。
- 選択を行い実行するために必要な時間と費用。
離散的な選択肢の集合から選ぶ際に人々が用いる最も一般的なアプローチは、単に最良と思われるものを選ぶことである。これは、将来より良い決定を下すために選択から学習する能力を無視している。現在の学習が将来の決定に与える価値は、同じ選択肢の集合に何回直面するかに大きく依存する。また、非常に悪い結果をもたらす可能性のある選択に伴うリスクを無視している場合もある。
決定が非常に重要であり、その決定としばらく付き合わなければならない場面は多い。例としては、特定の薬を開発することを決定する、あるいは少なくとも1年間は付き合わなければならない供給業者を選ぶことなどが挙げられる。このような問題では、各選択肢の起こりうる性能について最良の信念の集合を構築することに時間を費やすことが特に重要である。
信念モデルは通常、相関によって複雑化する。どの薬を開発するかを選ぶには、類似した市場に対応する異なる種類のがん治療薬を比較する必要があるかもしれない。関税の引き上げ、疫病の発生、通貨変動といった同じリスクを共有する、国別にクラスター化された多数の供給業者の中から選ばなければならない場合もある。
静的決定問題と逐次決定問題
学術文献においては、決定論的最適化を行うコミュニティと、不確実性下での最適化を行う断片化されたコミュニティとの間に強い対抗意識が存在する。決定論的最適化モデルの大部分は確率的問題の決定論的近似であり、その副産物として、決定論的最適化を用いる人々は、自分たちの問題に不確実性が影響を及ぼす様々な形について指摘されると、かなり防御的になることがある。
読者には以下の点を心に留めておいていただきたい:
- 静的で決定論的な最適化モデルは、逐次決定問題の特殊な場合にすぎない。
- (第II巻において)決定論的最適化ツールが一般的な逐次決定問題の解法において広く用いられていることを示す。
- 実務上の応用で生じる最も一般的な決定問題は、図1.11に描かれているような、選択肢の集合から最良のものを選ばなければならないものである、というのが圧倒的に多い。選択肢に関する信念の不確実性を捉える場合でも、この問題を解くための様々な手法は、結局のところ一連の決定論的最適化問題を解くことに帰着する。
- 問題は決定論的近似が用いられていることそのものではなく、誤りは決定がどのように評価されるかにある。決定の性能は、新しい情報が到着するにつれて時間の経過とともに評価されなければならない。
決定論的最適化モデルの使用において最もよく犯される誤りは、問題を時間をかけて繰り返し解かなければならない場合があることを見落とすことである。この例は、「資源」(人、トラック、機械)を「タスク」(仕事の割り当て、運ばれるべき積荷、完了すべき作業)に割り当てる「割り当て問題」と呼ばれる問題クラスに現れる。これらは一度だけ解かれることは決してない。時間が進むにつれ、資源はタスクの完了を進め、新しいタスクが呼び込まれ、機械は故障を起こしてタスクの完了に要する時間が変化することがある。
図1.12(a)は、この問題を静的で決定論的な問題として描いている。この問題が1950年代にGeorge Dantzigによって初めて解かれたとき、それは(実際にそうであったように)大きな躍進とみなされた。しかし、70年後の今日でも、トップクラスの専門家たちは、この問題が一度だけ解かれることは決してなく、時間をかけて繰り返し解かなければならないこと、そしてある時点での解が(不確実な)将来に解くべき問題に影響を与えるのがほぼ常であることを見落としている。
実際の問題は図1.12(b)に描かれており、そこでは問題が時間をかけて逐次的に解かれる様子が示されている。決定論的最適化問題を逐次的に解く必要があるかどうかは、モデルの数式を見ただけでは判断できないことに注意されたい。それには英語で問題を理解することが必要である。
モデリングの段階
まず、問題を捉える3つの異なる方法を認識することから始める:
- 現実世界 – ここでは決定が実行され、システムの真の性能を記述する情報が収集される。
- 基本モデル – これは通常、現実世界をできる限り忠実に模倣するよう設計されたシミュレータの形を取る。シミュレータ(「デジタルツイン」と呼ばれることもある)は強力であるが、開発に非常に費用がかかることがあり、そのため方策の性能を検証するシミュレータの助けなしに決定を下す手法を設計する必要がしばしば生じる。
- 先読みモデル – 先読みモデルは、現在下す決定が将来に与える影響を近似する必要がある場合の決定の下し方にのみ用いられる。先読みモデルは何らかの形で広く用いられている(Google Mapsは目的地への経路を計画するために近似的な先読みモデルを用いている)が、普遍的に用いられているわけではない。
前述の問題フレーミングに関する議論では、決定問題の異なる次元を理解する際に関わる3つの段階を説明した。本節では、必要であればコンピュータモデルを開発することに特に焦点を当てる。
- 問題のフレーミング: – 決定問題をモデル化しようとする試みには、我々のフレーミングプロセスで特定した要素が必要である:
- 平易な英語による説明 – モデリングのプロセスについて何の訓練も受けていない、その分野の専門家の言葉で説明を始めることが常に重要である。
- 3つのフレーミングの問いに答える:
- 性能指標は何か?定量化可能な性能指標を明確に述べることができない場合、正式な分析プロセスにはなじまない、複雑で構造化されていない問題を扱っている可能性がある。
- どのような種類の決定が下されているか(そして、誰がそれを下すのか)?この時点で、潜在的な決定を単に列挙するだけで、下すべき選択が明らかになるだろうか?
- システムの性能に影響を及ぼしうる不確実性の種類は何か?これは複雑な問いになりうるものであり、それを明確に述べ、その後、異なる決定の性能に対するこれらの不確実性の影響を理解するために分析するには時間を要する。
この時点で、下すべき選択が明白であると感じるかもしれない。もしそうでなければ、次のステップに進む。
- 普遍的モデリング枠組み – 普遍的モデリング枠組み(上記で説明)の異なる要素を理解することで、自分の問題をより完全に理解することができる。具体的には:
- 決定を下し、性能指標を計算するために必要な情報(状態変数としても知られる)をまとめる必要がある。これはどのように決定を下すか(方策)に依存するため、通常、状態変数の全ての要素をすぐに特定できるわけではない。
直接観察することができない(少なくとも正確には観察できない)が、把握しておきたい情報に注意を払ってください。これらは統計的推定/機械学習を活用する機会を表している場合があります。
- どのような決定を下すことが許されているかを理解してください。後で決定を下す方法(方策の設計)の問題に取り組むことになります。
- 決定を下した後に到着する情報の種類を挙げてください。
- 状態変数に含まれる情報が時間とともにどのように変化するかを考える必要があります。もちろん、これは必要な情報についての理解が進むにつれて発展していきます。これが遷移関数です。
- 最後に、システムの性能をどのように評価するかを理解する必要があります。これが目的関数を構成します。
- 不確実性のモデル化 – これはしばしば逐次決定問題をモデル化する上で最も微妙な次元です。というのも、不確実な量がすぐには明らかにならないことが多いからです。不確実性の潜在的な発生源は数多くありますが、それがモデルに入り込む経路は次の2つしかありません。
- 状態変数内の量やパラメータにおける不確実性。これは、決定を下したり性能指標を計算したりするために必要な情報を含んでいます。
- 決定が下された後、次の決定が下されるまでの間に到着する可能性のある情報における不確実性(これを外生情報プロセスと呼んできました)。
不確実性を捉える方法にはいくつかあります。
- 過去の履歴から不確実な量(価格、需要、移動時間)の観測値を利用し、それらのサンプルを用いてモデルを較正・調整する。
- 不確実性の数理モデルを構築し、その数理モデルからサンプルを生成する。
不確実性については第5章でさらに深く扱い、その中でさまざまな不確実性の発生源を特定し、あなたの特定の応用に当てはまる不確実性に名前を付けるための手引きとします。
-
方策の設計 – ここでは、決定を下す方法を設計するという非常に豊かな課題に取り組みます。第4章では、決定を下すための根本的に異なる方法を捉えた4つの方策クラスについて説明しますが、方策設計プロセスの完全な議論は第III巻に委ねます。
なお、普遍的モデリングフレームワークにおいて状態変数という考え方を導入しますが、状態変数は部分的には方策が必要とする情報によって定義されることに注意してください。
- コンピュータによる実装 – 方策を設計したら、それらをどのようにテストするかを決める必要があります。選択肢は次の通りです。
- 現場でのテスト – この場合、必要なのは方策をコンピュータ上に実装することだけであり、これには決定を下すために必要なデータを集めることも含まれます。
- コンピュータシミュレーション – コンピュータ上で方策をどのようにテストするかは、システムの複雑さによって異なります。通常は次のいずれかを選択します。
- スプレッドシートによる実装 – ほとんどの問題は比較的単純であり、スプレッドシート上でアイデアをテストすることができます。スプレッドシートは本番システムの基盤にすらなり得ます。
- 汎用プログラミング環境 – 問題がスプレッドシートには複雑すぎる場合、多種多様なプログラミング環境のいずれかに頼る必要があります。これには熟練したプログラマーのスキルが必要です。
- モデルと方策の評価および較正 – この段階では、方策を評価するためのシミュレータを開発できるか、あるいは現場で使用できるように方策を実装する必要があるかを決めなければなりません。
- コンピュータベースのシミュレータの開発 – この段階では、方策の性能をシミュレートするために必要なものがすべて揃っています。コンピュータシミュレータとは、単に普遍的モデリングフレームワークの要素をソフトウェアとして実装したものです。このシミュレータは、過去のデータ、あるいは数理モデルから生成されたデータのいずれかで実行できます。
- 現場でのテスト – シミュレータを開発する時間やリソースがない場合もよくあります。その代わりに、方策を実装し、それが実際にどれだけうまく機能するかを監視します。
コンピュータベースのシミュレータを構築することには大きな利点がありますが、モデルの較正という困難な次元が生じます。対照的に、方策を現場に直接実装する場合、較正を必要としない環境でテストすることになります。現場実装の問題点は、異なる方策クラスを探索すること、特にパラメータを調整することが、非常に時間がかかる可能性があることです。現場での方策の調整は、研究文献ではほとんど注目されてきませんでした。
分析手法の種類
決定論的最適化問題を解いているのであれば、GurobiやFICO Xpressといった商用パッケージから、無料でダウンロードできる幅広いパッケージまで、豊富なソルバー群を活用できます。例えば、Googleは商用ユーザーであっても無償で「OR Toolbox」を提供しています。
逐次決定問題で必要となるような、時間をかけて決定を最適化するための商用ツールはほとんど存在しません。しかし、特定の問題に対してカスタムシステムを構築する際には、通常、いくつかのツールボックスを活用することになります。これらには以下が含まれます。
- 決定論的最適化 – 不確実性の下で時間をかけて決定を下そうとしているからといって、決定論的最適化のツールが使われなくなるわけではありません。実際、(すべてではありませんが)ほとんどの逐次決定問題は、決定論的ソルバーを用いて解かれる一連の最適化問題を解くことを伴います。
- シミュレーション – 通常これはモンテカルロシミュレーションを指し、確率変数の関数を推定するための一群のツールと手法です。モンテカルロツールは高次元で複雑な問題に特に適しており、情報の進展をモデル化するための最も強力なツールの一つとなっています。
- 統計的推定/機械学習 – 線形回帰や非線形回帰、木回帰、局所的パラメトリックモデル、さまざまな規模のニューラルネットワークを含む統計/機械学習ツール群です。統計/機械学習は、既知の情報を用いて未知のものを推定するための一連のツールと表現できます。
これらのツールは通常、異なるコミュニティ由来のものとして説明され、そのうち決定問題を解くものとみなされているのは決定論的最適化のみです。しかし、決定を下すという目的のために、それぞれの役割を理解することが重要です。
例えば、シミュレーションモデルは、製造工場から集団内の疾病の広がりに至るまで、何らかのプロセスの挙動を理解する助けとしてほぼ常に構築されます。これら両方の例において、システムの設計(工場のレイアウト、ワクチン在庫の保管場所)やシステムの制御(ジョブのルーティング方法、ワクチン補充発注の実施)がどのように機能するかを確認しようとしています。ハリケーンの進路をシミュレートすることもあるでしょうが、その進路を変えることはできなくても、この情報は避難を導くために利用でき、その避難自体もシミュレートする必要があります。
つまり、シミュレーションモデルは目的関数として、あるいは決定を下すために使われる将来の出来事の予測として捉えると理解しやすくなります。
では、統計的推定/機械学習についてはどうでしょうか。これらの分野はモデルを当てはめるために最適化を使用しますが、その目標は単に量やパラメータを推定することです。しかし、なぜこれらの推定値を作成するのでしょうか。
腫瘍の性質を推定したり、大統領の実績をどれだけの人々が評価しているかを推定したり、回路が動作する確率を推定したりするかもしれません。あるいは、ある製品をどれだけの人々が購入する可能性があるかや、風力発電所での発電量など、将来の出来事を推定するかもしれません。これらすべての場合において、今決定を下す助けとなる推定値や予測を作成しているのです。
これらのツールはそれぞれ、より良い決定を下す助けとなること以上の、それ自体に本質的な価値を持つサービスを提供することもあります。これは、本稿執筆時点で急速に進化している大規模言語モデルにおいて最も分かりやすく見て取れます。例えば、LLMは研究の実施、リクエストの処理、画像の作成といった増え続けるタスク群を支援できますが、決定を下すことはできません。
結びの言葉
本章は、逐次決定問題として知られる複雑な問題群について考えるための基盤を築いてきました。私たちは次の前提から出発します。
「もしより良く{何か}を運営したいのであれば、より良い決定を下さなければならない。」
決定を下すことに関わる大多数の状況は、逐次決定問題という広いカテゴリーに分類されます。ここでは、新しい情報が到着するにつれて、時間をかけて繰り返し決定を下します(逐次決定問題の特殊な場合として、一度だけ決定を下す問題があることに注意してください)。
本書の目標は、より良く行動することに関心があるあらゆる問題(おそらくより良い決定を下すことによって)と、それらの決定を助けることができるコンピュータソフトウェアとの間に橋を架けることです。コンピュータは問題を捉える数理モデルを必要とし、これらのモデルは、英語で表現された問題を理解する必要がありますが、その問題をモデルの言語に翻訳できるような形で捉える用語を使わなければなりません。
このプロセスの重要な特徴は、私たちが普遍的モデリングフレームワークと呼ぶ一般的なモデリング戦略の使用です。私たちは、多くの分野の非常に幅広い問題群に取り組んできた数十年の経験に基づき、このモデリングフレームワークがコンピュータが役立ちうるあらゆる問題の特徴を捉えることができると主張します。これは重要な留保事項です。というのも、指標が不明確であったり、そもそも存在しなかったりする問題があるからです。誰かと結婚すべきか?大学でどの分野を専攻すべきか?訪問客をもてなす際にどのレストランを選ぶべきか?
普遍的モデリングフレームワークは、どのように決定を下すか(方策と呼ばれる)といった選択を形式化し、それによってどのような情報が必要かという問いに答える助けとなります。UMFはまた、予測を必要としない方策(金融における安値買い高値売り、在庫の発注点方策)と予測を必要とする方策とを比較する基盤を提供し、より正確な予測の価値を評価することも可能にします。
コンピュータを用いて決定を下すことは、「人工知能」の活用への道を開きますが、これは公共メディアで広く使われている一方で、適切に定義されずに使われることが多い用語です。私たちは人工知能の7つのレベルを取り上げ、大規模言語モデル(ChatGPTなど)のような機械学習に基づくツールと、決定論的最適化(レベル5)や逐次決定問題(レベル6)のような決定を下すためのツールとを明確に区別します。
演習問題
復習問題
- 決定自動化の3つの段階とは何ですか?
- 問題を枠組み化する段階1で提起される3つの問いとは何ですか?あなたが選んだ問題設定でこれらを例示してください。
- 普遍的モデリングフレームワークの5つの要素とは何ですか?
- 決定の定義とは何ですか?あなたが個人的な活動の中で遭遇する、異なる状況における3つの例を挙げてください。
- 本章で整理された4つの異なるクラスに分けられた、人工知能の7つのレベルを簡潔に説明してください。
- 統計モデルの3つのクラスとは何ですか?
- 基本モデルと先読みモデルの違いは何ですか?Google Mapsを使って自動車で長距離旅行をする文脈を用いて、両方を例示してください。
- モデリングの6つの段階とは何ですか?
モデリング演習
- あなたが日常の活動で遭遇する逐次決定問題の例を挙げ、以下を行いなさい。
- 改善したいと考えるパフォーマンス指標を少なくとも1つ特定しなさい。
- そのパフォーマンス指標に影響する決定を少なくとも1つ挙げなさい。
- その決定が実行されたときの性能に影響を及ぼしうる不確実性を記述しなさい。
- 物理的資源に関わる問題の例を3つ挙げ、それぞれの状況で生じる決定を特定しなさい。
- あなたはこれから、相手プレイヤーに三目を並べさせることを強いる(その時点であなたの勝ちとなる)ことを目的とする三目並べ(tic-tac-toe)を15回対戦する。あなた方はどちらもこのゲームを一度もプレイしたことがなく、あなたは相手が自分の戦略をどのように学習していくかを捉えたいと考えている。三目並べは通常引き分けに終わることを念頭に置き、相手にあなたがミスを犯すと信じ込ませる必要がある。以下の質問に英語(数式は不可)で答えなさい。
- 15回の対戦結果を捉えるパフォーマンス指標を設計しなさい。
- あなたはどのような決定を下す必要があるか。
- 不確実性は何か。
- 数回対戦した後に得られる情報のうち、方策を設計するために欲しいと思う情報を記述しなさい。