00:01 イントロダクション
02:18 現代の予測
06:37 確率的に郵送する
11:58 これまでのストーリー
15:10 今日の予定
17:18 予測のベスティアリー
28:10 メトリクス - CRPS - 1/2
33:21 メトリクス - CRPS - 2/2
37:20 メトリクス - Monge-Kantorovich
42:07 メトリクス - 尤度 - 1/3
47:23 メトリクス - 尤度 - 2/3
51:45 メトリクス - 尤度 - 3/3
55:03 1D分布 - 1/4
01:01:13 1D分布 - 2/4
01:06:43 1D分布 - 3/4
01:15:39 1D分布 - 4/4
01:18:24 ジェネレーター - 1/3
01:24:00 ジェネレーター - 2/3
01:29:23 ジェネレーター - 3/3
01:37:56 お待ちください、無視します
01:40:39 結論
01:43:50 今後の講義と視聴者の質問

説明

予測が確率的であるとは、特定の結果を「予測」として指し示すのではなく、すべての可能な将来の結果に関連する確率のセットを含んでいるということです。確率的予測は、不確実性が不可避である場合に重要です。複雑なシステムが関係している場合、ほぼ常に不確実性が存在します。サプライチェーンにおいては、確率的予測は不確かな将来の状況に対して堅牢な意思決定を行うために不可欠です。

フルトランスクリプト

スライド1

サプライチェーンの講義シリーズへようこそ。私はジョアネス・ヴェルモレルです。今日は「サプライチェーンの確率的予測」を紹介します。確率的予測は、統計的予測科学の100年以上にわたる範疇で最も重要な、もしくは最も重要なパラダイムシフトの一つです。しかし、技術的なレベルでは、ほとんど同じです。確率的予測モデルや非確率的な代替手法を見ている場合でも、統計学や確率は同じです。確率的予測は、予測自体についての考え方の変化を反映しています。確率的予測がサプライチェーンにもたらす最大の変化は、予測科学には見られないものです。最大の変化は、予測モデルの存在下でサプライチェーンがどのように運営され、最適化されるかという点にあります。

本日の講義の目標は、確率的予測についての優しい技術的な紹介です。この講義の終わりまでに、確率的予測が何であるか、非確率的予測との違い、確率的予測の品質を評価する方法、さらには初心者向けの確率的予測モデルを作成する方法を理解できるようになるはずです。今日は、サプライチェーンの文脈での意思決定の目的で確率的予測を利用することはカバーしません。現在の焦点は、確率的予測の基礎を明らかにすることに専念しています。サプライチェーンにおける意思決定プロセスの改善については、次の講義で取り上げます。

Slide 2

確率的予測の重要性を理解するためには、少しの歴史的な背景が必要です。統計的予測という現代の予測形式は、占いとは異なり、20世紀初頭に登場しました。予測は、硬い科学、運動学、電磁気学、化学などの一部の非常に成功した学問分野が、見かけ上は任意の精度を持つ結果を達成することができた広範な科学的な文脈で生まれました。これらの結果は、優れた測定技術を開発するための数世紀にわたる努力によって得られました。より正確な測定は、科学者がより正確な方法で自分たちの理論と予測をテストし、挑戦することができるようになり、さらなる科学的な発展を促すことになりました。

これらの非常に成功した学問分野が存在する広い文脈の中で、20世紀初頭に登場した予測分野は、経済学の領域でこれらの硬い科学が達成したことを本質的に複製することを目指しました。例えば、現代経済予測の父の一人であるロジャー・バブソンは、20世紀初頭にアメリカで成功した経済予測会社を設立しました。その会社のモットーは文字通り「すべての行動には等しい反作用がある」というものでした。バブソンのビジョンは、ニュートン力学の成功を経済学の領域に移し、同様に正確な結果を達成することでした。

しかし、サプライチェーンが運営される統計的な学術的予測の100年以上にわたる歴史の中で、予測の精度を任意の精度にするという考えは、100年以上前と同じくらい手に入れにくいもののままです。数十年にわたり、サプライチェーンの世界では、これらの予測は十分に正確になることはないという懸念を抱く声がありました。リーン生産などの運動があり、信頼性の低い予測に対するサプライチェーンの依存度を大幅に減らすことを主張してきました。これがジャストインタイムの考え方です。市場が必要とするものをちょうど時間通りに製造・提供できれば、信頼性のある正確な予測はもはや必要ありません。

この文脈で、確率的予測は予測の再評価ですが、はるかに控えめな目標を持っています。確率的予測は、将来について不可避な不確実性があるという考えから始まります。すべての未来は可能であり、すべての未来が等しく可能ではありません。確率的予測の目標は、それらの代替未来の相対的な可能性を比較的評価することであり、すべての可能な未来を単一の未来に収束させることではありません。

Slide 3

統計的な経済予測におけるニュートンの視点は基本的に失敗しました。私たちのコミュニティの意見として、任意の正確な予測を達成することはほとんどないという考えが広まっています。しかし、奇妙なことに、ほとんどのサプライチェーンソフトウェアと主流のサプライチェーンのプラクティスは、その予測が最終的に利用可能になるという前提に基づいています。

たとえば、セールスアンドオペレーションプランニング(S&OP)は、企業の統一された数量化されたビジョンが、すべての利害関係者が一緒になって予測を作成することで達成できるという考えに基づいています。同様に、open-to-buyも、任意の正確なトップダウン予測を作成することが可能であるという考えに基づいて、基本的にはメソッドです。さらに、サプライチェーンの予測と計画に関連する多くの一般的なツールを見ると、ビジネスインテリジェンススプレッドシートなど、これらのツールは基本的にはポイント時系列予測に向けられています。基本的には、過去のデータを将来に拡張し、興味のある時間ごとに1つのポイントを持つものです。これらのツールは、単一の未来ではなく、すべての可能な未来が存在する確率的予測に関与する計算を理解するのに非常に多くの摩擦を生じさせます。

確かに、確率的予測は古典的な予測に不確実性を付加することではありません。確率的予測はまた、各シナリオがそれぞれ独立した古典的な予測であるというショートリストを作成することでもありません。主流のサプライチェーンの手法は、基本的には参照予測が存在するという考えに暗黙的または明示的に基づいているため、確率的予測とは一緒には機能しません。それに対して、確率的予測はすべての可能な未来の数値的評価です。

当然、私たちは持っている計算リソースの量に制限されていますので、「すべての可能な未来」と言っても、実際には有限な数の未来しか見ません。ただし、私たちが持っている現代の処理能力を考慮すると、実際に考慮できる未来の数は数百万に及びます。それがビジネスインテリジェンスやスプレッドシートが苦労するところです。彼らは確率的予測を扱う際に関与する計算の種類に適応していません。これはソフトウェア設計の問題です。スプレッドシートは非常に同じコンピュータと処理能力にアクセスできますが、ソフトウェアに適切な設計が備わっていない場合、非常に困難なタスクを達成することができます。

したがって、サプライチェーンの観点からは、確率的予測を採用するための最大の課題は、非常に野心的で誤った目標に基づいている数十年にわたるツールとプラクティスを手放すことです。確率的予測をより正確な予測を達成する手段と考えることは非常に誤解です。これは事実ではありません。確率的予測はより正確ではなく、古典的で主流の予測の代替として使用することはできません。確率的予測の優位性は、特にサプライチェーンの文脈での意思決定の目的において、それらの予測がどのように利用されるかにあります。ただし、今日の目標は、確率的予測が何についてのものかを理解することであり、確率的予測の利用は次の講義で行われます。

Slide 5

この講義はサプライチェーンのシリーズの一部です。これらの講義はできるだけ独立していますが、前の講義で紹介された内容を頻繁に参照することがあるため、講義を順番に視聴すると視聴者の理解に役立つでしょう。

したがって、この講義は予測モデリングに専念した第5章の3つ目の講義です。このシリーズの最初の章では、サプライチェーンを研究対象と実践の両方として私の見解を述べました。2つ目の章では、方法論を紹介しました。実際、サプライチェーンのほとんどの状況は敵対的な性質を持ち、これらの状況は単純な方法論を打ち負かす傾向があります。サプライチェーンの領域である程度の成功を収めるためには、適切な方法論が必要です。

第3章では、サプライチェーンの簡潔さに焦点を当て、サプライチェーンがカバーするさまざまな状況で直面している問題とその性質について専門的に取り上げました。サプライチェーンの簡潔さのアイデアは、解決策側にあるすべての側面を完全に無視し、問題を見つけた後に使用する解決策を選択するために問題だけを見ることができるようにすることです。

第4章では、さまざまな補助科学を概説しました。これらの科学はサプライチェーンそのものではなく、隣接または支援的な研究分野です。ただし、私はこれらの補助科学の初級レベルの知識がサプライチェーンの現代的な実践の要件であると考えています。

最後に、第5章では、特に将来についての声明を作成するために、将来を定量化し評価するための技術について詳しく調査します。実際、サプライチェーンで行うすべてのことは、ある程度将来の予測に基づいています。将来をより良い方法で予測できれば、より良い意思決定ができるようになります。第5章は、将来について定量的により良い洞察を得るためのアプローチの一環として、確率的予測が重要な役割を果たします。

Slide 6

この講義の残りの部分は、長さの異なる4つのセクションに分かれています。まず、古典的な予測以外の最も一般的な予測方法について説明します。私はまもなく古典的な予測とは何を意味するのかを明確にします。実際、サプライチェーンの分野では、選択肢が多数存在することに気付いている人はあまりいません。確率的予測自体は、さまざまなツールと技術をカバーする傘として理解する必要があります。

次に、確率的予測の品質を評価するための指標を紹介します。何が起ころうとも、設計が良い確率的予測は常に「このような確率があった」と伝えてくれます。したがって、問題は次のようになります。実際に良い確率的予測と悪い確率的予測をどのように区別するのか?それがこれらの指標が重要になる場所です。確率的予測の状況に完全に専用の指標があります。

3つ目に、1次元分布の詳細な調査を行います。これらは最も単純な分布の種類であり、明らかな制限がありますが、確率的予測の領域への最も簡単な入り口でもあります。

4つ目に、モンテカルロ法として頻繁に言及されるジェネレータについて簡単に触れます。実際、ジェネレータと確率密度推定器の間には双対性があり、これらのモンテカルロ法は高次元の問題や確率的予測の形式に取り組むための手段を提供してくれます。

Slide 7

予測には複数のタイプがあり、この側面は予測モデルのタイプやクラスの数とは混同してはいけません。モデルが同じタイプまたはクラスの予測に属していない場合、同じ問題を解決しているわけではありません。最も一般的な予測のタイプはポイント予測です。例えば、明日の店舗の一日の総売上が10,000ユーロになると言った場合、私はこの店舗の明日の出来事についてのポイント予測をしています。この演習を繰り返し、明日の日付についての声明を作成し、その後の日付についての別の声明を作成すると、複数のデータポイントが得られます。しかし、それらはすべてポイント予測のままであり、基本的には特定の集計レベルを選択することによって戦いを選んでおり、その集計レベルでは予測は1つの数値を提供します。

さて、ポイント予測のタイプ内には、最適化されるメトリックに応じて複数のサブタイプの予測があります。最も一般的に使用されるメトリックはおそらく二乗誤差ですので、平均二乗誤差が得られます。ところで、これは少なくともいくらか加算可能な唯一の予測であるため、最も一般的に使用される予測です。予測は完全に加算可能ではありません。常に注意事項が付いてきます。ただし、一部の予測は他の予測よりも加算可能性が高く、明らかに平均予測はその中でも最も加算可能性が高いです。平均予測を行いたい場合、最適化された平均二乗誤差に対してポイント予測を行います。絶対誤差などの他のメトリックを使用して最適化すると、中央値予測が得られます。この講義シリーズのこの第5章の最初の講義で紹介したピンボール 損失関数を使用すると、分位数予測が得られます。ところで、今日見るように、私は分位数予測を単なる別のタイプのポイント予測として分類しています。実際、分位数予測では、本質的には単一の推定値が得られます。この推定値にはバイアスがあるかもしれませんが、これは意図的なものです。これが分位数の特徴ですが、それにもかかわらず、私の見解では、これは完全にポイント予測として資格があると思います。なぜなら、予測の形式は単一のポイントだからです。

さて、ポイント予測ではなく、複数のポイントを返すセット予測もあります。セットを構築する方法によってバリエーションがあります。PAC予測を見てみましょう。PACはProbably Approximately Correctの略です。これは約20年前にValiantによって導入されたフレームワークであり、予測としてのセットには、予測したセット内である確率で結果が観測されるという特定の確率があります。生成されるセットは、参照点に対する最大距離で特徴付けられる領域内にあるすべてのポイントです。PACの予測の視点では、既にセット予測です。ただし、まだ参照点があり、この中心点からの最大距離があります。私たちは、予測セット内で最終的に結果が観測される確率があると言っているだけです。

PACアプローチは、適合アプローチを介して一般化することができます。適合予測は、「ここにセットがあり、このセット内に結果があるという確率が与えられる」と述べています。適合予測がPACアプローチを一般化する点は、適合予測がもはや参照点と参照点までの距離に関連付けられていないことです。このセットを好きなように形成することができ、それでもセット予測のパラダイムの一部となります。

将来は、さらに詳細で複雑な方法で表現することができます:分布予測です。分布予測は、すべての可能な結果をそれぞれの局所確率密度にマッピングする関数を提供します。ある意味では、予測は単なる点である点予測から始まります。次に、予測は点の集合であるセット予測に移行します。最後に、分布予測は技術的には関数または関数を一般化したものです。ところで、この講義で「分布」という用語を使用するとき、常に確率の分布を暗黙的に指します。分布予測は、セットよりもさらに豊かで複雑なものを表し、これが今日の焦点となります。

分布を扱う一般的な方法は2つあります:密度アプローチとジェネレータアプローチです。ここで言及する「密度」とは、確率密度の局所推定を指します。ジェネレータアプローチでは、モンテカルロ生成プロセスを使用して、同じ局所確率密度を反映するとされる結果である偏差を生成します。これらは、分布予測に取り組むための2つの主要な方法です。

分布を超えて、高次の構造があります。これは少し理解が難しいかもしれませんが、今日は高次の構造をカバーするつもりはありませんが、確率的予測が分布を生成することに焦点を当てる場合、それが最終目標ではなく、単なるステップであることを示すだけです。高次の構造は、単純な状況に満足のいく答えを得るために必要です。

高次の構造について理解するために、賞味期限が近づいた製品に対して割引ポリシーがある単純な小売店を考えてみましょう。明らかに、店舗は在庫を抱えたくありませんので、製品が賞味期限に非常に近い場合に自動的に割引が適用されます。この店舗が生成する需要は、このポリシーに大きく依存します。したがって、可能なすべての結果の確率を表す分布を持つ予測は、このポリシーに依存する必要があります。ただし、このポリシーは数学的なオブジェクトであり、関数です。私たちが望むのは確率的な予測ではなく、もっとメタなものです。ポリシーが与えられた場合に結果の分布を生成できる高次の構造です。

サプライチェーンの観点から、予測の種類を変更すると、より多くの情報を得ることができます。これは、予測をより正確にすることとは混同しないでください。これは、単に追加の解像度を得るのではなく、黒と白で世界を見ている状態から色を見る能力を得ることです。ツールに関しては、スプレッドシートやビジネスインテリジェンスツールは、点予測を扱うのには適しています。考慮するセット予測のタイプによっては、適しているかもしれませんが、設計能力をすでに超えています。それらは、期待値の範囲内の最小値と最大値を定義するだけの明らかな範囲で定義する場合以外の、どのような洗練されたセット予測にも対応するようには設計されていません。本質的には、分布予測や高次の構造と一緒に作業するためのチャンスを得るためには、まったく異なる種類のツールが必要ですが、これはすぐに明確になるはずです。

Slide 8

確率的予測を始めるには、良い確率的予測を特徴付ける要素を試してみましょう。実際、何が起ころうとも、確率的予測は、観察される結果の種類に関係なく、このことが起こる確率があると伝えてくれます。したがって、その条件の下で、良い確率的予測と悪い確率的予測をどのように区別するのでしょうか?確率的であるからといって、突然すべての予測モデルが良いわけではありません。

これが確率的予測に特化したメトリクスの本質であり、連続ランク付け確率スコア(CRPS)は、一次元の確率的予測の絶対誤差の一般化です。この恐ろしい名前のCRPSについては、本当に申し訳ありません。この用語は私が考えたわけではありません。私に渡されたものです。CRPSの式は画面に表示されます。基本的に、関数Fは累積分布関数であり、それが行われる確率的予測です。点xは実際の観測値であり、CRPSの値は、確率的予測と観測した値との間で計算されるものです。

本質的には、点はヘビサイドステップ関数を介して自己の準確率的予測に変換されます。ヘビサイドステップ関数を導入することは、私たちが観測した点をディラック確率分布に変換することと同等であり、これは確率の質量を単一の結果に集中させる分布です。そして、私たちは積分を持っており、基本的にCRPSはある種の形状のマッチングを行っています。私たちは、累積分布関数(CDF)の形状を、別のCDFの形状と一致させています。この別のCDFは、私たちが観測した点に一致するディラックと関連付けられています。

点予測の観点からは、CRPSは複雑な式だけでなく、このメトリクスが同じタイプの2つの引数を取るという点で困惑しています。これらの引数の1つは分布であり、もう1つは単一のデータポイントです。したがって、私たちはここで対称性の欠如を持っています。絶対誤差や平均二乗誤差などの他のほとんどの点予測メトリクスには存在しないものです。CRPSでは、基本的に点と分布を比較しています。

CRPSで計算する内容についてもっと理解したい場合、興味深い観察結果の1つは、CRPSが観測と同じ単位を持っていることです。例えば、xがユーロで表され、Fとxの間のCRPS値もユーロの単位で均質である場合、CRPSは絶対誤差の一般化であると言っています。ちなみに、確率的予測をディラックに収束させると、CRPSは正確な絶対誤差となります。

Slide 9

CRPSは非常に難解で複雑に見えるかもしれませんが、実装は実際には比較的簡単です。画面には、プログラミング言語の観点からCRPSを使用する方法を示す小さなEnvisionスクリプトが表示されています。Envisionは、Lokadによって開発されたサプライチェーンの予測最適化に特化したドメイン固有のプログラミング言語です。これらの講義では、明確さと簡潔さのためにEnvisionを使用しています。ただし、Envisionには特別なものはありません。同じ結果はPython、Java、JavaScript、C#、F#などの他のプログラミング言語でも得ることができます。私のポイントは、コードの行数が増えるだけであるということです。したがって、私はEnvisionを使用しています。この講義でここで与えられたすべてのコードスニペットは、スタンドアロンで完全です。このコードをコピーして貼り付けることができ、実行することができます。モジュールは関与せず、隠されたコードも環境の設定もありません。

では、コードスニペットに戻りましょう。1行目と2行目で、一次元の分布を定義しています。Envisionで実際にこれらの一次元の分布がどのように機能するかについては後で説明しますが、ここでは2つの分布があります。1つはポアソン分布であり、これは一次元の離散分布です。2行目のものは、同じポアソン分布ですが、右に2単位シフトしています。これが"+2"の意味です。3行目では、分布と値3の間のCRPS距離を計算しています。ここで、私たちは私が話していたデータ型の非対称性を見つけます。その結果は、画面の下部に表示されます。

4行目では、分布Aと分布Bの間のCRPSを計算しています。CRPSの古典的な定義は、分布と単一の点の間のものですが、この定義を2つの分布のペアに一般化することは完全に簡単です。CRPSの非常に同じ式を取り、ヘビサイドステップ関数を第二の分布の累積分布関数で置き換えるだけです。3行目から6行目の「show」ステートメントは、画面の下部に表示される表示結果です。これは文字通りのスクリーンショットです。

したがって、CRPSを使用することは、余弦関数のような特殊な関数を使用するよりも難しいわけではありません。もちろん、自分で余弦関数を再実装する必要があると少し面倒ですが、考慮すべきことは、CRPSに特に複雑なものは何もないということです。さて、次に進みましょう。

Slide 10

モンジュ・カントロビッチ問題は、CRPSでの形状マッチングプロセスへのアプローチ方法を示してくれますが、より高次元でのものです。CRPSは実際には次元1にとどまっています。形状マッチングは概念的には任意の次元に一般化できるものであり、モンジュ・カントロビッチ問題は非常に興味深いです。なぜなら、その核心には実際にはサプライチェーンの問題があるからです。

モンジュ・カントロビッチ問題は、確率的予測とは元々関係のないもので、フランスの科学者ガスパール・モンジュが1781年に「Mémoire sur la théorie des déblais et des remblais」というメモワールで紹介されました。これは「土地の移動に関する理論についてのメモワール」と大まかに訳されることができます。モンジュ・カントロビッチ問題を理解するための一つの方法は、画面上でMとして示される鉱山のリストとFとして示される工場のリストがある状況を考えることです。鉱山は鉱石を生産し、工場は鉱石を消費します。私たちが望むのは、鉱山が生産したすべての鉱石を工場が必要とする消費にマッピングする輸送計画Tを作成することです。

モンジュは、すべての鉱山からすべての工場への鉱石の輸送のためのコストとしてCを定義しました。コストは、すべての鉱山からすべての工場への鉱石の輸送の合計ですが、鉱石を輸送する非効率な方法も明らかに存在します。したがって、特定のコストがあると言うとき、そのコストは最適な輸送計画を考慮した最適な輸送計画を反映しているということです。このCは、最適な輸送計画を考慮した場合に達成可能な最良のコストを表しています。

これは、数世紀にわたって広範に研究されてきたサプライチェーンの問題です。完全な問題の定式化では、Tに制約があります。簡潔さのために、すべての制約を画面に表示していません。例えば、輸送計画はすべての鉱山の生産能力を超えてはならず、すべての工場は完全に満足し、その要件に一致する割り当てを持つべきです。制約はたくさんありますが、非常に冗長なので、画面には含めていません。

さて、輸送問題自体は興味深いものですが、鉱山のリストと工場のリストを2つの確率分布として解釈し始めると、点ごとのメトリックを分布ごとのメトリックに変換する方法があります。これは、モンジュ・カントロビッチの視点を通じて高次元での形状マッチングについての重要な洞察です。この視点の別の用語はワッサーシュタイン距離ですが、それは主に非離散的なケースに関係しており、私たちにとってはそれほど興味がありません。

モンジュ・カントロビッチの視点により、2つの数値または数値のベクトル間の差を計算する点ごとのメトリックを、同じ空間上で動作する確率分布に適用できるメトリックに変換することができます。これは非常に強力なメカニズムです。ただし、モンジュ・カントロビッチ問題は解決が困難であり、かなりの処理能力が必要です。講義の残りでは、実装と実行がより簡単な技術に固執します。

Slide 11

ベイズの視点は、事前の信念の観点から一連の観測を見ることで構成されます。ベイズの視点は通常、実際の観測に基づいて結果の頻度を推定する頻度主義の視点と対比されて理解されます。アイデアは、頻度主義の視点には事前の信念がないということです。したがって、ベイズの視点は、観測と与えられたモデルを考慮する際の驚きの度合いを評価するための尤度というツールを提供します。モデルは、基本的には確率的な予測モデルであり、事前の信念の形式化です。ベイズの視点は、確率的な予測モデルに関連してデータセットを評価する方法を提供します。これがどのように行われるかを理解するためには、まず単一のデータポイントに対する尤度から始める必要があります。観測値xがある場合、尤度はモデルに従ってxを観測する確率です。ここでは、モデルはtheta、モデルのパラメータの完全なベクトルであると仮定されています。ベイズの視点では、モデルがある種のパラメトリックな形式を持つと仮定し、thetaがモデルのすべてのパラメータの完全なベクトルであると想定します。

thetaと言うとき、我々はすべての点に対して局所的な確率密度を与える確率モデルの完全な特性を持っているということを暗黙的に仮定しています。したがって、尤度はこの1つのデータポイントを観測する確率です。モデルthetaの尤度がある場合、データセットのすべてのデータポイントを観測するための結合確率です。これらのポイントは独立していると仮定しているため、尤度は確率の積です。

数千の観測がある場合、尤度は1よりも小さい数千の値の積として表されるため、数値的に非常に小さくなる可能性があります。非常に小さい値は、コンピュータで浮動小数点数が表される方法では通常難しいです。尤度そのものではなく、尤度の対数で作業する傾向があります。対数尤度は、尤度の対数であり、乗算を加算に変換するという信じられないほどの特性を持っています。

モデルthetaの対数尤度は、画面上の最終方程式行に示されているように、すべての個々のデータポイントの対数尤度の合計です。尤度は、与えられた確率的予測に対する適合度を示すメトリックです。モデルが私たちが観測するデータセットを生成した可能性がどれだけあるかを教えてくれます。競合する2つの確率的予測がある場合、他の適合性の問題を一時的に置いておくと、尤度または対数尤度が最も高いモデルを選択する必要があります。なぜなら、高いほど良いからです。

尤度は、モンジュ・カントロビッチ法とは異なり、高次元での操作が可能で非常に興味深いです。局所的な確率密度を与えるモデルがある限り、尤度、またはより現実的には対数尤度をメトリックとして使用できます。

Slide 12

さらに、適合度を表すメトリックを持っているとすれば、このメトリックに対して最適化することができるということです。少なくとも1つの自由度を持つモデル、つまり少なくとも1つのパラメータを持つモデルが必要です。このモデルを尤度、つまり適合度に対して最適化すると、少なくともまともな確率的予測を生成することを学習したトレーニング済みモデルを得ることができます。これが画面上で行われていることです。

1行目と2行目では、モックデータセットを生成します。2,000行のテーブルを作成し、2行目で平均値が2のポアソン分布から2,000の観測値、つまり観測値を生成します。したがって、2,000の観測値があります。3行目では、異なる可能性のあるプログラミングパラダイムの一部である自動微分ブロックを開始します。このブロックは、観測テーブルであるテーブルTのすべての観測値に対して多くの反復を行い、確率的勾配降下法を実行します。

4行目では、モデルの1つのパラメータであるlambdaを宣言します。このパラメータは、排他的に正である必要があります。このパラメータは、確率的勾配降下法を通じて再発見しようとするものです。5行目では、損失関数を定義します。損失関数は単にマイナスの対数尤度です。尤度を最大化したいのですが、自動微分ブロックは損失を最小化しようとしています。したがって、対数尤度を最大化したい場合は、対数尤度の前にこのマイナス符号を追加する必要があります。これはまさに私たちが行ったことです。

学習されたlambdaパラメータは、6行目で表示されます。驚くことではありませんが、見つかった値は2に非常に近いです。なぜなら、平均値が2のポアソン分布から始めたからです。私たちは、パラメータが1つだけのポアソン分布の再発見をしたいと思っており、それがまさに私たちが得るものです。オリジナルの推定値から約1%以内のモデルを得ます。

これで、最初の確率的予測モデルを学びましたが、必要なのはわずか3行のコードです。これは明らかに非常にシンプルなモデルですが、確率的予測には本質的に複雑なものはありません。通常の平均二乗予測とは異なりますが、異なる可能性のあるプログラミングなどの適切なツールを使用すれば、古典的な点予測以上に複雑ではありません。

スライド13

以前使用したlog_likelihood.poisson関数は、Envisionの標準ライブラリの一部です。ただし、魔法はありません。この関数が実際にどのように実装されているかを見てみましょう。上部の最初の2行は、ポアソン分布の対数尤度の実装を提供しています。ポアソン分布はその1つのパラメータで完全に特徴付けられ、対数尤度関数はその1つのパラメータと実際の観測値の2つの引数しか受け取りません。私が書いた実際の式は、文字通り教科書の材料です。これは、ポアソン分布を特徴付ける教科書の式を実装するときに得られるものです。ここには何も特別なことはありません。

この関数には、自動微分キーワードが付いていることに注意してください。前の講義で見たように、自動微分キーワードは、この関数を正しく自動微分できるようにします。ポアソン分布の対数尤度は、他の特別な関数であるlog_gammaも使用しています。log_gamma関数は、ガンマ関数の対数であり、複素数への階乗関数の一般化です。ここでは、実数の正の数への階乗関数の一般化のみが必要です。

log_gamma関数の実装はやや冗長ですが、これもまた教科書の材料です。log_gamma関数の連分数近似を使用しています。美しいのは、自動微分がすべての段階で機能していることです。自動微分ブロックから始めて、自動微分関数として実装されたlog_likelihood.poisson関数を呼び出します。この関数は、自動微分マーカーを使用して実装されたlog_gamma関数を呼び出します。基本的には、自動微分を考慮して実装された、確率的な予測モデルを3行のコードで生成できるようになりました。

スライド14

さて、次は一次元の離散分布の特殊なケースに移りましょう。これらの分布はサプライチェーン全体に広がっており、確率的な予測モデルへの入り口となります。例えば、日次の粒度でリードタイムを予測したい場合、1日のリードタイムの確率、2日のリードタイムの確率、3日などの確率が存在すると言えます。これらの確率はリードタイムの確率分布のヒストグラムとして表現されます。同様に、特定の日におけるあるSKUの需要を考える場合、需要が0個、1個、2個などの確率が存在すると言えます。

これらの確率をまとめると、それらを表すヒストグラムが得られます。同様に、あるSKUの在庫レベルについて考える場合、シーズン終了時にこのSKUの在庫が0個になる確率、1個になる確率、2個などの確率を評価することができます。これらの状況は、関心のある現象の各離散的な結果に関連付けられたバケットを持つヒストグラムを通じて表現されるパターンに合致します。

ヒストグラムは、一次元の離散分布を表すための典型的な方法です。各バケットは、離散的な結果の確率の質量と関連付けられています。ただし、データの可視化の用途を考慮しない場合、ヒストグラムはあまり魅力的ではありません。実際、ヒストグラム上での操作は、確率分布を視覚化する以外のことを行う場合には苦労が伴います。ヒストグラムには基本的に2つの問題があります。1つ目の問題は、計算リソースに関連しており、2つ目の問題は、ヒストグラムのプログラミング表現力に関連しています。

計算リソースの観点では、ヒストグラムが必要とするメモリ量は基本的に無制限です。ヒストグラムは必要に応じて大きくなる配列と考えることができます。サプライチェーンの観点から見ても、単一のヒストグラムであっても、非常に大きなヒストグラムであっても、必要なメモリ量は現代のコンピュータにとっては問題ではありません。しかし、サプライチェーンのコンテキストでは、数百万のSKUに対して数百万のヒストグラムがある場合、それぞれのヒストグラムがかなり大きくなる可能性があるため、これらのヒストグラムの管理は課題となる場合があります。特に、現代のコンピュータは非一様なメモリアクセスを提供する傾向があることを考慮すると、これらのヒストグラムの管理は困難になる可能性があります。

逆に、これらのヒストグラムを処理するために必要なCPUの量も無制限です。ヒストグラムに対する操作は主に線形ですが、メモリ量が増えるにつれて処理時間も増加し、非一様なメモリアクセスによる影響があります。そのため、メモリとCPUの要件に厳密な制限を設けることには大きな関心があります。

ヒストグラムのもう一つの問題は、関連付けられた代数構造の欠如です。2つのヒストグラムを考慮する場合、バケットごとの値の加算や乗算を行うことはできますが、それによって得られるものは、ヒストグラムをランダム変数の表現として解釈する際に意味をなさないものになります。例えば、2つのヒストグラムを要素ごとに乗算すると、質量が1でさえないヒストグラムが得られます。これはランダム変数の代数の観点からは有効な操作ではありません。ヒストグラムを加算または乗算することはできないため、それらを使用して行える操作には制限があります。

スライド15

Lokadでは、これらの普遍的な離散的な1次元分布に対処するために、最も実用的なアプローチとして専用のデータ型を導入することが見つかりました。おそらく、聴衆は、整数、浮動小数点数、文字列など、ほとんどのプログラミング言語で存在する一般的なデータ型に精通しているでしょう。これらは、どこにでも見られる典型的なプリミティブデータ型です。ただし、サプライチェーンの観点からの要件に特に適した専門のデータ型を導入することは何も妨げられません。これが、Lokadがranvarデータ型で行ったことです。

ranvarデータ型は、1次元の離散的な分布に専用のものであり、その名前はランダム変数の略です。形式的な観点からは、ranvarはZ(すべての整数、正および負の整数の集合)から確率(0から1の間の数値)への関数です。Zの総質量は常に1であり、確率分布を表します。

純粋に数学的な観点からは、そのような関数に押し込めることができる情報量は任意に大きくなる可能性があると主張する人もいるかもしれません。これは事実です。ただし、サプライチェーンの観点からは、単一のranvarに含まれる関連情報の量には非常に明確な制限があります。理論的には、メガバイトで表現する必要がある確率分布を考えることは可能ですが、サプライチェーンの目的に関連するそのような分布は存在しません。

ranvarデータ型のメモリ上限を4キロバイトに設定することができます。このranvarが取ることができるメモリの制限を持つことで、すべての操作に対してCPU上限も設定されるため、非常に重要です。Lokadは、バケットを1,000で制限する単純な制限ではなく、ranvarデータ型に圧縮スキームを導入しています。この圧縮は、元のデータの解像度と精度を失う損失yな表現です。ただし、アイデアは、ヒストグラムの十分に正確な表現を提供する圧縮スキームを設計することであり、サプライチェーンの観点からは導入される近似度が無視できる程度であることです。

ranvarデータ型と関連する圧縮アルゴリズムの詳細は、この講義の範囲外です。ただし、これは、コンピュータ上の画像に使用される圧縮アルゴリズムのような圧縮アルゴリズムよりもはるかに単純な圧縮アルゴリズムです。このranvarが取ることができるメモリの制限を持つことで、すべての操作に対してCPU上限も設定されるため、非常に重要です。最後に、ranvarデータ型において最も重要なポイントは、実際にこれらのデータ型上で操作を行い、プリミティブデータ型と同様の方法で組み合わせるための変数の代数を得ることです。これにより、要件に適した方法で組み合わせるためのさまざまなプリミティブを持つことができます。

スライド16

ranvarを使用することの意味を示すために、リードタイムの予測状況、具体的にはリードタイムの確率的予測を考えてみましょう。画面には、そのような確率的予測を構築する方法を示す短いEnvisionスクリプトが表示されています。1-5行目では、値が11日、10日、13日、90日の4つのリードタイムの変動を含むテーブルTを導入しています。4つの観測値は非常に少ないですが、リードタイムの観測値に関しては非常に限られたデータポイントしか持っていないことが非常に一般的です。実際、年に2つの発注を行う海外のサプライヤーを考えると、これらの4つのデータポイントを収集するには2年かかります。したがって、非常に限られた観測値セットでも操作できる技術を持つことが重要です。

7行目で、4つの観測値を直接集計してranvarを作成します。ここで、7行目に表示される「ranvar」という用語は、数値の系列を入力として受け取り、ranvarデータ型の単一の値を返す集計器です。結果は画面の右上に表示され、これは経験的なranvarです。

ただし、この経験的なranvarは実際の分布の現実的な描写ではありません。たとえば、11日のリードタイムと13日のリードタイムを観測できる一方で、12日のリードタイムを観測できないというのは現実的ではありません。このranvarを確率的な予測と解釈すると、12日のリードタイムを観測する確率はゼロとなり、これは正しくありません。これは明らかに過学習の問題です。

この状況を改善するために、8行目で「smooth」という関数を呼び出して元のranvarを平滑化します。平滑化関数は、元の分布の各バケットを、そのバケットを中心とした平均のポアソン分布で置き換え、各バケットの対応する確率に応じて重み付けします。平滑化された分布により、画面の右中央に表示されるヒストグラムが得られます。これはすでにずっと良くなっています。奇妙なギャップはなくなり、中央にゼロの確率もありません。さらに、12日のリードタイムを観測する確率を見ると、このモデルではゼロではない確率が得られます。これはずっと合理的です。また、すでに4つのデータポイントがあり、19日のリードタイムを観測していることを考慮すると、20日という高いリードタイムも可能性があるという考えは非常に合理的です。したがって、この確率的な予測では、これらのイベントに対してゼロではない確率を表す素晴らしい範囲が得られます。これは非常に良いことです。

しかし、左側には少し奇妙なものがあります。この確率分布が右に広がることは問題ありませんが、左に広がることはできません。観測したリードタイムが輸送時間の結果であることを考慮すると、トラックが到着するまでに9日かかるため、3日のリードタイムを観測することはほとんどあり得ないと感じられます。この点で、モデルはかなり現実的ではありません。

したがって、9行目で、観測された最小のリードタイムよりも大きい条件付き調整されたranvarを導入します。テーブルTの数値の中で最小の値を取る「min_of(T, x)」を使用し、分布と数値の間の最大値を取るために「max」を使用します。結果はこの値よりも大きくなければなりません。調整されたranvarは、画面の右下に表示され、ここで最終的なリードタイムの予測が表示されます。最後の予測は、わずか4つのデータポイントしかない非常に限られたデータセットを考慮すると、非常に合理的な確率的な予測のリードタイムです。素晴らしい確率的な予測とは言えませんが、これは本番用の予測であり、平均点予測ではリードタイムの変動リスクを大幅に過小評価することはありません。

確率的な予測の美しいところは、非常に単純であるにもかかわらず、観測データに基づく平均予測の単純な適用から生じる情報不足の決定に対するある程度の緩和効果を既に提供していることです。

スライド17

一般的に、ranvarはさまざまな操作をサポートしています。ranvarは整数と同様に加算、減算、乗算が可能です。内部的には、意味論的には離散的な確率変数を扱っているため、これらの操作はすべて畳み込みとして実装されています。画面に表示される下部のヒストグラムは、平均が2と3の2つのポアソン分布の乗算によって得られます。サプライチェーンでは、確率変数の乗算は直接畳み込みと呼ばれます。サプライチェーンの文脈では、2つの確率変数の乗算は、例えば、クライアントが同じ製品を異なる乗数で求める場合の結果を表すために意味を持ちます。書店が2つのクライアントのコホートに対応しているとしましょう。一方では、学生からなる最初のコホートがあり、彼らは店に入ると1つの単位を購入します。この説明的な書店では、2つ目のコホートは教授からなり、彼らは店に入ると20冊の本を購入します。

モデリングの観点からは、書店に学生または教授の到着率を表す確率的予測が1つあると考えることができます。これにより、その日に0人、1人、2人などの顧客を観測する確率、つまり特定の日に特定の数の顧客を観測する確率分布がわかります。2番目の変数は、1人(学生)と20人(教授)の購入の対応する確率を示します。需要の表現を得るために、これら2つのランダム変数を掛け合わせるだけで、コホートの消費パターンに存在する乗数を反映した見かけ上の乱れたヒストグラムが得られます。

スライド18

モンテカルロジェネレータ、または単にジェネレータは、確率的予測に対する代替手法を表します。局所的な確率密度を与える分布を示す代わりに、名前が示すように、同じ局所的な確率分布に従うと予想される結果を生成するジェネレータを示すことができます。ジェネレータと確率密度の間には双対性があり、これらは本質的に同じ観点の2つの側面です。

ジェネレータがあれば、このジェネレータから得られた結果を平均化して局所的な確率密度の推定値を再構築することが常に可能です。逆に、局所的な確率密度があれば、この分布に従って偏差を描くことが常に可能です。基本的に、これらの2つのアプローチは、モデル化しようとしている現象の確率的または確率的性質を見るための異なる方法にすぎません。

画面上のスクリプトは、この双対性を示しています。1行目で、システムによって反復されるモンテカルロブロックを導入します。モンテカルロブロックは2,000回実行され、このブロックから2,000の偏差を収集します。

2行目では、平均が3のポアソン分布から偏差を描き、その偏差に1を加えます。基本的に、このポアソン分布からランダムな数値を取得し、それに1を加えます。3行目では、この偏差をL1に収集し、アグリゲータranvarのアキュムレータとして機能させます。これは、リードタイムの例で以前に紹介したものとまったく同じアグリゲータです。ここでは、これらの観測値をすべてL1に収集し、モンテカルロプロセスを通じて得られた1次元の分布を得ます。5行目では、同じ1次元の離散分布を構築しますが、今回はランダム変数の代数を使用します。したがって、ポアソンから3を引き、1を加えるだけです。5行目では、モンテカルロプロセスは行われていません。これは純粋な離散確率と畳み込みの問題です。

7行目と8行目で2つの分布を視覚的に比較すると、ほぼ同じであることがわかります。2,000回の反復を使用しているため、非常に多いですが、無限ではありません。ranvarで得られる正確な確率とモンテカルロプロセスで得られる近似確率との間の偏差はまだ目立ちますが、大きくはありません。

ジェネレータは時々シミュレータと呼ばれますが、間違いなく同じものです。シミュレータがある場合、確率的予測プロセスの基礎となる生成プロセスがあります。シミュレータまたはジェネレータが関与している場合、心に留めておくべき質問は、このシミュレーションの正確性はどれくらいですか?設計上正確ではなく、確率的であるかどうかに関係なく、完全に正確でない予測を得ることも十分に可能です。完全に正確でないシミュレーションを非常に簡単に得ることができます。

ジェネレータを使用すると、シミュレーションは確率的予測の観点を見るための方法の1つにすぎませんが、これは技術的な詳細のようなものです。それは、予測、確率的またはそうでないものに関係なく、予測しようとしているシステムの正確な描写を得たいという事実を変えません。

スライド19

ジェネレーティブアプローチは、特定の例を見ると非常に有用ですが、確率密度のアプローチと比較して、少なくともわずかに概念的に理解しやすいです。ただし、モンテカルロアプローチにも技術的な問題があります。実際の実世界のサプライチェーンの生産コンテキストでこのアプローチを実行可能にするためには、いくつかの必要な要素があります。

まず第一に、ジェネレータは高速である必要があります。モンテカルロは、計算リソースが利用可能な反復回数と許容できる反復回数の間のトレードオフです。はい、現代のコンピュータは十分な処理能力を持っていますが、モンテカルロプロセスは非常にリソースを消費する場合があります。デフォルトで超高速なものが必要です。第4章の第2回講義で紹介された要素に戻ると、ExhaustShiftやWhiteHashなどの非常に高速な関数があり、これらは超高速な要素的なランダムジェネレータの生成に不可欠です。それが必要です。そうでなければ、苦労することになります。第二に、実行を分散する必要があります。モンテカルロプログラムの素朴な実装は、順次反復するループだけです。ただし、モンテカルロの要件を処理するために単一のCPUのみを使用している場合、実質的には20年前のコンピュータの計算能力に戻ってしまいます。この点は、第4章の最初の講義で触れられました。過去20年間で、コンピュータはより強力になりましたが、主にCPUと並列化の度合いを追加することによってです。したがって、ジェネレータには分散の視点が必要です。

最後に、実行は決定論的でなければなりません。それはどういう意味ですか?同じコードを2回実行すると、正確に同じ結果が得られるはずです。これはランダム化されたメソッドを扱っているため、直感に反するかもしれません。それにもかかわらず、決定論性の必要性は非常に早くに浮かび上がりました。それは、金融が価格設定にモンテカルロジェネレータを使用し始めた90年代に苦痛な方法で発見されました。金融はかなり前から確率的予測の道に進み、モンテカルロジェネレータを広範に使用してきました。彼らが学んだことの一つは、決定論性がないと、バグやクラッシュを生成した条件を再現することがほぼ不可能になるということでした。サプライチェーンの観点からは、発注計算のミスは非常に高価になる可能性があります。

サプライチェーンを管理するソフトウェアに一定の生産準備度を達成したい場合、モンテカルロを扱う際にはこの決定論的な特性が必要です。多くのオープンソースのソリューションは学術界から提供されており、生産準備度についてはまったく関心がありません。モンテカルロを扱う際には、プロセスが設計上超高速であり、設計上分散され、決定論的であることを確認してください。そうすれば、生産環境で時間の経過とともに必ず発生するバグを診断する機会が得られます。

ジェネレータが導入され、モンテカルロを使用しない確率密度とランダム変数だけで済む場合、それが良いとされています。より正確な結果が得られ、モンテカルロでは常に少しトリッキーな数値の安定性について心配する必要がありません。ただし、ランダム変数の代数の表現力には限界があり、そこでモンテカルロが本当に輝くのです。これらのジェネレータは、単なるランダム変数の代数では対処できない状況を理解することができるため、より表現力があります。

これをサプライチェーンの状況で説明しましょう。在庫レベル、需要の確率的予測、および期間が3ヶ月にわたる単一のSKUを考えます。期間の中間に入荷があります。需要は在庫から直ちに対応されるか、永久に失われます。SKUの期間終了時の予想在庫レベルを知りたいので、それによってデッド在庫のリスクをどれだけ抱えているかを判断できます。

この状況は危険です。なぜなら、期間の中間にストックアウトが発生する可能性があるためです。素朴なアプローチは、初期在庫レベルと期間全体の需要の分布を考慮し、在庫レベルから需要を引いて残りの在庫レベルを求めることです。しかし、これには、入荷補充がまだ保留中である間にストックアウトが発生した場合に需要のかなりの部分を失う可能性があるという事実を考慮していません。素朴な方法では、期間終了時の在庫量を過小評価し、提供される需要量を過大評価してしまいます。

このスクリプトでは、ストックアウトの発生をモデル化して、期間終了時のこのSKUの正しい在庫レベルの推定値を得ることができます。1行目から10行目では、モデルを特徴づけるモックデータを定義しています。3行目から6行目にはISSMモデルのパラメータが含まれています。この第5章の最初の講義で既にICSMモデルを見てきました。基本的に、このモデルは1日ごとにデータポイントを持つ需要の軌跡を生成します。興味のある期間は日テーブルで定義され、この軌跡のパラメータは最初にあります。

前の講義では、AICSMモデルとそれらのパラメータを学習するために必要な方法を紹介しました。今日は、学ぶ必要があるすべてを学んだと仮定して、モデルを使用しています。7行目では、初期在庫を定義しています。これは通常、ERPまたはWMSから取得されます。9行目と10行目では、補充の数量と日付を定義しています。これらのデータポイントは通常、サプライヤーからの予想到着時間として提供され、ERPに格納されます。配送日は完全にわかっていると仮定していますが、この単一の日付をリードタイムの確率的予測で置き換えることも簡単です。

12行目から21行目では、ISSMモデルが需要の軌跡を生成しています。モンテカルロループ内にあり、モンテカルロイテレーションごとに興味のある期間のすべての日に対してイテレーションを行います。日のイテレーションは13行目から始まります。ESSMのメカニクスが進行していますが、19行目と20行目では、在庫変数を更新しています。在庫変数はISSMモデルの一部ではありません。これは何か追加のものです。19行目では、在庫は昨日の在庫に入荷を加えたものであり、ほとんどの日はゼロであり、9月13日には5ユニットです。そして、20行目では、在庫がその日の需要によって消費されるとして、在庫レベルがマイナスにならないようにするためにmax 0としています。

最終的な在庫は21行目で収集され、23行目でこの最終的な在庫が表示されます。これは画面右側に表示されるヒストグラムです。ここでは、非常に不規則な形状の分布が見られます。この形状は、確率変数の代数では得られません。ジェネレータは非常に表現力がありますが、これらのジェネレータの表現力と正確さを混同しないでください。ジェネレータは非常に表現力がありますが、その正確さを評価することは容易ではありません。間違いなく、ジェネレータやシミュレータが動作している場合、確率予測が行われ、シミュレーションは予測のいかんにかかわらず非常に不正確になる可能性があります。

Slide 20

すでに長い講義になっていますが、まだ触れていないトピックがたくさんあります。例えば、すべての未来が可能な場合、どのようにして何かを決定するのでしょうか?この質問には答えていませんが、次の講義で取り上げます。

Higher dimensions are also important to consider. One-dimensional distribution is a starting point, but a supply chain needs more. For example, if we hit a stock-out for a given SKU, we may experience cannibalization, where customers naturally fall back to a substitute. We would like to model this, even if in a crude fashion.

High order constructs also play a role. As I said, forecasting demand is not like forecasting the movements of planets. We have self-prophetic effects all over the place. At some point, we want to consider and factor in our pricing policies and stock replenishment policies. To do that, we need higher order constructs, which means given a policy, you get a probabilistic forecast of the outcome, but you have to inject the policy inside the higher order constructs.

Moreover, mastering probabilistic forecasts involves numerous numerical recipes and domain expertise to know which distributions are most likely to fit certain situations nicely. In this series of lectures, we will introduce more examples later.

Finally, there is the challenge of change. Probabilistic forecasting is a radical departure from mainstream supply chain practices. Frequently, the technicalities involved with probabilistic forecasts are only a small part of the challenge. The difficult part is to reinvent the organization itself, so it can start using these probabilistic forecasts instead of relying on point forecasts, which are essentially wishful thinking. All these elements will be covered in later lectures, but it will take time as we have a lot of ground to cover.

Slide 21

結論として、確率的予測は、実現するべき1つの未来についての合意が期待される点予測の視点からの根本的な脱却を表しています。確率的予測は、将来の不確実性が削減できないことを観察に基づいています。予測科学の1世紀は、正確な予測に近いものを試みたすべての試みが失敗したことを示しています。したがって、私たちは多くの不確定な未来に取り残されています。ただし、確率的予測は、これらの未来を定量化し評価するための技術とツールを提供してくれます。確率的予測は重要な成果です。経済予測が天文学のようなものではないという考えについては、ほぼ1世紀かかりました。私たちは、100年後の惑星の正確な位置を非常に正確に予測できますが、供給チェーンの領域では、何か類似のことを達成する希望はありません。すべてを統治する1つの予測を持つという考えは、戻ってくることはありません。それにもかかわらず、多くの企業は、いつか真の正確な予測が実現するという希望に固執しています。試みの100年後、これは本質的に願望です。

近代のコンピュータでは、この1つの未来の視点だけが存在するわけではありません。代替手段があります。確率的予測は90年代から存在しており、それは30年前のことです。Lokadでは、確率的予測を使用して、10年以上にわたりサプライチェーンを推進してきました。まだ主流ではありませんが、サプライチェーンの世界では10年間、金融業界では30年間、確率的予測は現実です。

確率的予測は、見かけによらず高度で技術的なものに見えるかもしれませんが、適切なツールを使えば、わずか数行のコードです。確率的予測については、他の予測方法と比べて特に難しいことや困難なことはありません。確率的予測に関する最大の課題は、将来が完全に制御されているという幻想との関連付けを断ち切ることです。将来は完全に制御されておらず、そしておそらくそれが最善です。

Slide 22

これで今日の講義は終わりです。次回は4月6日に、小売在庫の発送における意思決定を紹介し、本日紹介した確率的予測を活用して小売ネットワークの在庫補充という基本的なサプライチェーンの意思決定をどのように行うかを見ていきます。講義は同じ曜日の水曜日に同じ時間の午後3時に行われ、4月の最初の水曜日です。

質問: Envisionの解像度とRAM容量の最適化は可能ですか?

はい、もちろん可能ですが、Envision自体ではできません。これはEnvisionの設計上の選択です。私のアプローチは、サプライチェーンサイエンティストに対して、低レベルの技術的な問題から解放することです。Envisionの4キロバイトは非常に大きな容量であり、サプライチェーンの状況を正確に描写することができます。したがって、解像度と精度の面で失われる近似は無視できるほど小さなものです。

もちろん、圧縮アルゴリズムの設計には考慮すべきトレードオフがたくさんあります。たとえば、ゼロに非常に近いバケットは完全な解像度を持つ必要があります。ゼロ単位の需要の確率を持つ場合、ゼロ需要、1単位、2単位のバケットをまとめるような近似は望ましくありません。しかし、1,000単位の需要の確率を見ている場合、1,000単位と1,001単位の需要をまとめることは問題ありません。したがって、サプライチェーンの要件に合った圧縮アルゴリズムを開発するためのトリックはたくさんあります。これは画像圧縮に比べて桁違いに簡単です。私の考えでは、正しく設計されたツールは基本的にサプライチェーンサイエンティストの問題を抽象化するはずです。これはあまりにも低レベルであり、ほとんどの場合においてマイクロ最適化は必要ありません。ウォルマートのように1,000,000以上のSKUを持つ場合は別ですが、非常に大規模なサプライチェーンでない限り、完全な最適化がないことによるパフォーマンスの低下はほとんど無視できるレベルだと思います。

質問: これらのパラメータを最適化する際にサプライチェーンの観点から考慮すべき実用的な要素は何ですか?

サプライチェーンにおける確率的予測に関しては、精度が10万分の1以上あることは通常無視できるほど小さな影響です。なぜなら、確率の推定における精度が10万分の1よりも細かくなるほど、十分なデータがないからです。

質問: 確率的予測アプローチで最も恩恵を受けるのはどの産業ですか?

簡単に言えば、パターンが不規則で乱れているほど、恩恵が大きくなります。間欠的な需要がある場合、大きな恩恵を受けます。乱れた需要がある場合、大きな恩恵を受けます。供給チェーンにおけるリードタイムのばらつきや乱れたショックが大きい場合、最も恩恵を受けます。スペクトルの反対の端にある例を挙げると、例えば水の流通の供給チェーンを見てみましょう。水の消費は非常にスムーズで、大きなショックはほとんどありません。これは確率的アプローチからは恩恵を受けない問題です。アイデアは、クラシックなポイント予測が非常に正確な予測を提供する状況がいくつかあるということです。将来を見越して予測する際に、すべての製品の予測誤差が5%未満である場合、確率的予測は必要ありません。非常に正確な予測が実際に機能する状況にいます。しかし、予測精度が非常に低く、30%以上の乖離があるような状況にある場合、確率的予測は大いに役立ちます。ちなみに、予測誤差が30%の場合、私は常に非常に詳細な予測に言及しています。多くの企業は自分たちの予測が5%の精度があると言うかもしれませんが、すべてを集計すると、これは予測精度の非常に誤解を招く認識になる場合があります。予測精度は、通常、SKUレベルと日次レベルで最も詳細なレベルでのみ重要です。SKUレベルと日次レベルで、最も詳細な予測を5%の精度で得ることができれば、確率的予測は必要ありません。しかし、パーセンテージで二桁の不正確さが観察される場合、確率的予測は大いに役立ちます。

質問: リードタイムは季節によって変動することがあるため、多峰分布を避けるために季節ごとに異なるリードタイム予測を分解する必要がありますか?

これは良い質問です。ここでのアイデアは、通常、季節性プロファイルを含むリードタイムのパラメトリックモデルを構築することです。リードタイムの季節性に対処することは、需要の周期性と同様に、前の講義で行ったように、他の周期性とは根本的にはあまり変わりません。通常の方法は、複数のモデルを構築することではありません。なぜなら、複数のモデルがあると、次のモダリティに移るときにさまざまな奇妙なジャンプが発生するからです。通常は、モデルの中央に季節性プロファイルを持つ1つのモデルだけを持つ方が良いです。年のある週にリードタイムに影響を与える週ごとの効果を与えるベクトルを持つパラメトリックな分解のようなものになります。後の講義でより詳しい例を示す時間があるかもしれません。

質問: 不定期な需要を予測する場合、確率的予測は良いアプローチですか?

絶対にです。実際、不定期な需要がある場合、確率的予測は良い手法だけでなく、古典的なポイント予測は完全に無意味です。古典的な予測では、すべてのゼロに対処するのが通常困難です。これらのゼロについてどう考えますか?結果として、非常に低くて分数の値になり、実際には意味をなしません。不定期な需要では、本当に知りたいことは次の質問です。在庫は十分に大きいですか?時折発生する需要の急増をサービスするのに十分な在庫があるかどうかを知るために、平均予測を使用すると、それを知ることはできません。

書店の例に戻ると、ある週に平均して1ユニットの需要があると言った場合、書店にはどれだけの数の本が必要ですか?書店は毎日補充されると仮定しましょう。もしサービスするのは学生だけなら、毎日平均して1ユニットの需要がある場合、在庫に3冊あれば非常に高品質のサービスが提供されます。しかし、時折20冊を探している教授が来る場合、店に3冊しかない場合、教授のどれもサービスすることはできないため、品質は非常に悪くなります。これは通常の不定期な需要の場合です。需要が不定期であるだけでなく、需要のいくつかの急増は大きさが大きく異なる場合があるということです。そこで、確率的予測は、需要の微細な構造を捉えることができるため、すべてを平均化してしまうよりも優れています。

質問: リードタイムを分布で置き換えると、最初のスライドで表されるスパイクは滑らかなベルカーブになりますか?

ある程度は、よりランダム化すると、物事が広がる傾向があります。ジェネレータに関する最初のスライドでは、さまざまな設定で実験を実行して結果を確認する必要があります。リードタイムを分布で置き換えたいと思うのは、リードタイムが変動するという問題に対する洞察があるからです。もし供給業者を絶対的に信頼しており、彼らが非常に信頼性が高い場合、ETA(到着予定時刻)は実際のもののほぼ完璧な推定値であると言っても問題ありません。しかし、過去に供給業者が時折不安定だったり目標を達成できなかったことがある場合、リードタイムを分布で置き換える方が良いです。

リードタイムを置き換えるために分布を導入することは、最終的に得られる結果を必ずしも滑らかにするわけではありません。それは、見ているものによります。例えば、在庫過剰の最も極端なケースを考えると、変動するリードタイムは死蔵在庫のリスクをさらに悪化させる場合さえあります。なぜなら、非常に季節的な製品と変動するリードタイムがあり、製品がシーズンの終わりの後に到着すると、シーズン外の製品が残り、シーズンの終わりに死蔵在庫のリスクが拡大するからです。ですので、それは難しいです。変数を確率的な置き換えに変えることで、自然に観察されるものを滑らかにするわけではありません。時には、分布をより鮮明にすることさえあります。したがって、答えは、状況によります。

素晴らしい、今日はこれで終わりです。また次回お会いしましょう。