Differentiable Programming

power-clouds
深層学習の子孫であり、機械学習と数値最適化の2つのアルゴリズム分野の融合を表すDifferentiable Programmingは、価格と在庫の共同最適化、ロイヤルティに基づくアソートメント最適化、非標準製品(宝石、芸術品など)の需要予測、大規模な多段階フロー最適化、多チャネル共同最適化、部分的に不正確な電子在庫値下での在庫最適化、多制約下での大規模なフロー最大化など、ほとんど解決不可能と見なされていた一連のサプライチェーンシナリオを解き放ちます。他の多くのシナリオについては、代替手法で既にアプローチ可能であった場合でも、Differentiable Programmingは、データサイエンティストの労力と計算リソースの両方において、オーバーヘッドの一部しか必要とせず、優れた数値結果を提供します。

サプライチェーンへの応用

Differentiable Programming(DP)は、アソートメント、価格設定、需要予測、計画、マーチャンダイジングなど、長い間分断されたままになっていた問題を統一し、共同で解決するための道を提供します。このような統一は、非現実的に野心的に思えるかもしれませんが、現実は、それらの課題が最初に組織内でシロ化されたことによって生成された問題に対処するために、企業がすでに自社プロセスに膨大なダクトテープを適用していることを示しています。たとえば、価格は明らかに需要に影響を与えますが、計画と予測はほとんど常に価格を無視して実行されます。

DPは、組織内で問題を解決する代わりに、問題を解決することによって、ビジネス全体のホリスティックな視点からおおよその正確な決定を提供するという、巨大な機会を開放します。

逸話的に、ビジネス全体を考慮しながらおおよその正確さを追求することは、スプレッドシート駆動の組織のほとんどについてのことであり、DPのような技術がビジネス全体の視点を包括することができるようになるまで、スプレッドシートは最もひどいオプションのままです。

Eコマース

100%の販売単位を既知のクライアントに関連付けることができるようになると、市場に関する膨大な潜在的情報が得られます。しかし、価格と在庫の最適化に関しては、忠誠度情報は現在ではほとんど使用されていません。DPは、時系列予測から、観察されたすべてのクライアント-製品ペアが重要である時間的グラフ予測に移行する可能性を提供し、在庫と価格の両方についてよりスマートな決定を導きます。

ラグジュアリーブランド

ストアレベルまでの価格とアソートメントの最適化は、データの疎らさによって大きく不可能と考えられてきました。つまり、店舗あたりの製品の販売数量が非常に少ないため、年間製品あたり店舗あたり1ユニットが販売されることがあります。DPは、通常のディープラーニング手法よりもはるかに高いデータ効率を提供するように設計されているため、このような超疎な問題に対応するためのソリューションクラスを提供する角度を提供します。

ファッションブランド

在庫と価格の共同最適化は明らかな要件です。多くの記事の需要は価格に非常に敏感であるためです。ただし、購入と価格の両方の共同最適化は、このカップリングを理解することさえできないツールの不足によって達成できませんでした。つまり、低価格でより多く購入する能力は、より多くの需要を生み出します(その逆も同様)。DPは、この課題に対処するための表現力を提供します。

製造

大規模な多段階ネットワークの数値最適化は、古典的な数値ソルバーを使用して試みると失敗します(以下の「ブランチアンドカット最適化を超えて」を参照)。実際、これらのソルバーは、数百万の変数または確率的な振る舞いを扱う場合にはほとんど実用的ではありません。残念ながら、製造は多くの変数と確率的な振る舞いを示すため、両方を示します。DPは、ネットワーク内の実際のフローパターンの複雑さを裏切ることなく、多段階に対処するための実用的な角度を提供します。

MRO(メンテナンス、修理、オーバーホール)

システムの修理に必要な1つの部品が欠落している場合、すべてのシステム(たとえば航空機)がダウンします。確率的予測は、このような不規則で断続的な需要パターンに対処するための最初のステップですが、必要な部品の共起の細かい点を把握し、この分析を実行可能な在庫推奨に変換することは、実用的な使用には複雑すぎます。 DPは、このような問題の解決を簡素化します。

小売ネットワーク

小売ネットワーク内のカニバリゼーション(通常は製品間、場合によっては店舗間)は、長い間主要な問題として認識されてきました。この問題は、クライアントを1つのブランドから別のブランドに誘導するために正確に意図されたプロモーションによって増幅されます。 DPは、プロモーションの存在下でカニバリゼーションに対処する可能性を提供します。 DPは、単に「プロモーションの予測」を行うのではなく、プロモーションを最適化する可能性を提供し、それらが配信チャネルとブランドの両方によって共同運営される収益性の高い取引であることを示します。

人工知能のハイプを超えて

人工知能(AI)は確かに2018年のテックバズワードであり、2019年にもまだバズは続いています。ただし、Lokadは通常AIバズワードに該当する技術を広く使用しているにもかかわらず、Lokadの技術の「AI」部分に重点を置くことには消極的でした。実際、定量的なサプライチェーン最適化に関しては、パッケージ化されたAIは単に機能しません。サプライチェーンは、例えばコンピュータビジョンのようなものではありません。データ、メトリック、タスクはすべて非常に異質です。その結果、想定される「ターンキー」AIソリューションを購入した企業は、それらのソリューションが単純な状況でしか機能しないことを認識し始めています。 「愚かな」ルールベースのシステムも同様に機能しました。サプライチェーンは、複雑な人工的なシステムであり、AIシステムはデータだけに基づいてドメインに関する基本的な洞察を自力で再発見することを期待するのは通常不合理です。たとえば、

  • ラグジュアリーブランドのプロモーションは大きな問題です。
  • ERPの販売注文が実際には製品の返品であること。
  • 生鮮食品製品は指定された温度範囲内で輸送する必要があります。
  • 色のバリエーションは良い衣服の代替品になるかもしれませんが、サイズのバリエーションはそうではありません。
  • 航空機のメンテナンスは飛行時間と飛行サイクルによって決まります。
  • ERPが通貨としてEURを表示していても、英国での販売は実際にはGBPです。
  • 人々は自分自身のためではなく、自分の車両のために自動車部品を購入します。
  • すべてのダイヤモンドはユニークですが、価格は主にカラット、クラリティ、カラー、カットに依存します。
  • 航空機からNOGO部品が欠落している場合、航空機は運航停止となります。
  • 多くの化学プラントは、停止後数週間かかることがあります。
power-clouds
遠い未来には、機械学習が人間の知能を模倣して悪問題に直面したときに結果を出すことができる時代があるかもしれませんが、現時点では、結果は比較的狭い問題にしか得られていません。機械学習技術は、毎年境界を押し戻しており、安全な自律走行や適切な自動翻訳などの重要な問題が解決されたり、非常に近い将来に解決されたりしています。しかし、上記のリストに示されているように、サプライチェーンは、パッケージ化された機械学習アルゴリズムを直接適用するにはあまりにも異種混合過ぎます。深層学習が最も強力な一般化能力を提供しているにもかかわらず、アルゴリズムが動作するように課題をフレーム化するためには、サプライチェーンサイエンティストの入力が必要です。

この点で、深層学習は非常に成功しています。多くの従来の機械学習アプローチとは異なり、深層学習は非常に構成的です。モデル構造を広範囲に調整して、特定の状況でより良く学習することができます。モデル構造を調整することは、モデル入力を調整することとは異なります。これは、ランダムフォレストなどの非深層学習アルゴリズムにとっては、通常唯一のオプションであった特徴量エンジニアリングとして知られているタスクです。

ただし、深層学習フレームワークは、コンピュータビジョン、音声認識、音声合成、自動翻訳などの「ビッグプロブレム」から派生しており、これらのフレームワークは、サプライチェーンで直面する問題とはまったく異なるシナリオに対してエンジニアリングされ、調整されています。したがって、これらのフレームワークをサプライチェーン最適化の目的に利用することは可能ですが、容易でも軽量でもありませんでした。結論として、深層学習フレームワークでは、サプライチェーンに多くのことが達成できますが、サプライチェーンと既存の深層学習フレームワークとのインピーダンスミスマッチは強く、これらの技術のコスト、遅延、および現実世界での適用範囲を制限します。

ブランチアンドカット最適化を超えて

サプライチェーンのほとんどの問題には、将来の不完全な知識、市場の現在の状態の不完全な知識、そして時にはサプライチェーンシステム自体の不完全な知識(例:在庫の不正確さ)による学習の側面があります。しかし、多くの非線形制約(例:購入時のMOQ、生産時のバッチサイズ)を満たしながら、経済ドライバに対して意思決定を最適化する必要があります。

数値最適化の面では、整数計画法とその関連技術であるブランチアンドカットが数十年にわたって支配的でした。ただし、これらのブランチアンドカットアルゴリズムとそれらに関連するソフトウェアソリューションは、多くの場合、柔軟性とスケーラビリティを提供することに失敗しました。整数計画法は、変数が少ないタイトな問題(例:消費者電子機器内の部品配置)を解決する際には素晴らしい能力を発揮しますが、確率的需要と確率的輸送時間の両方に直面して10百万のSKU間で在庫を再調整する場合など、大規模な問題に対しては極端な制限があります。

深層学習の最も過小評価されている側面の1つは、その成功が学習側の突破口だけでなく、最適化側の突破口の結果であることです。科学界が大規模な最適化を実行する非常に効率的なアルゴリズムを発見したためです。これらの「深層学習」最適化アルゴリズムは、すべて確率的勾配降下を中心としており、ブランチアンドカットの対応物よりもはるかに効率的であり、実際には、SIMD CPUおよび(GP)GPUに適した計算ハードウェアに遥かに適しているため、2〜3桁の追加の高速化が得られます。純粋な数値最適化のこの突破は、サプライチェーンにとって最適な決定をするために非常に関連性が高いです。ただし、深層学習フレームワークがサプライチェーンの学習問題に対処するのにすでにやや不適切であった場合、サプライチェーンの最適化問題に対処するのにはさらに適していません。実際、これらの最適化問題は、制約と最適化されるメトリックをサプライチェーン科学者が実装するためのフレームワークの表現力にさらに依存しています。

微分可能プログラミングへ

理論と実践の間には理論上の違いはありません。しかし、実際にはあります。 Walter J. Savitch、Pascal: An Introduction to the Art and Science of Programming (1984)

微分可能プログラミング(DP)は、深層学習が学習面と数値最適化面の両方で提供する最高のものをサプライチェーンにもたらす答えです。 DPを介して、サプライチェーン科学者は、ビジネス目標に合わせて深く整合した数値レシピを作成するために、人間の洞察力を最大限に活用できます。深層学習と微分可能プログラミングの間には絶対的な区切りはありません。最もスケーラブルなシステム(深層学習)から最も表現力のあるシステム(微分可能プログラミング)まで、徐々に利用可能になる多くのプログラミング構造があります。ただし、生のスケーラビリティを犠牲にして、微分可能プログラミングに移行すると、興味深いプロトタイプが本番に到達しないのとは対照的に、スケールで展開される産業用システムの違いが生じます。

深層学習 微分可能プログラミング
主な目的 学習 学習+最適化
典型的な使用法 一度学習して多く評価する 一度学習して一度評価する
入力の粒度 太いオブジェクト(画像、音声シーケンス、LIDARスキャン、フルテキストページ) 薄いオブジェクト(製品、クライアント、SKU、価格)
入力の多様性 同種のオブジェクト(例:すべての高さ/幅比率が同じ画像) 異種のオブジェクト(関係表、グラフ、時系列)
入力量 メガバイトからペタバイトまで キロバイトから数十ギガバイトまで
ハードウェアアクセラレーション ハードウェアアクセラレーション 良い
表現力 テンソル演算の静的グラフ (ほぼ)任意のプログラム
確率的数値レシピ 組み込み 同上

典型的な使用法は微妙ですが、重要な点です。 「ビッグAI」の観点からは、トレーニング時間は(ほぼ)任意に長くすることができます。数週間から数か月にわたって計算ネットワークをトレーニングすることは問題ありません。その後、通常、リアルタイムで評価する必要がある計算ネットワーク(例:自律走行のパターン認識)が必要です。この角度は、サプライチェーンとはまったく異なり、最高の結果はネットワークを毎回再トレーニングすることによって得られます。さらに、DPの観点からは、トレーニングされたパラメータがしばしば私たちが得ようとする非常に結果であるため、リアルタイム評価制約全体が無意味になります。粒度、多様性、およびボリュームに関するデータ入力に対する期待も大きく異なります。通常、「ビッグAI」の観点では、トレーニングデータのほぼ無限の量(Webのすべてのテキストページなど)が強調され、主な課題は、それらの大規模なデータセットに効果的にアクセスできる非常にスケーラブルな方法を見つけることです。対照的に、サプライチェーンの問題は、高度に構造化されたが多様なデータの限られた量で対処する必要があります。これにより、深層学習はテンソルベースのフレームワークに向かわれ、専用のコンピューティングハードウェア(最初はGPU、現在はますますTPU)を介して大幅に加速できます。確率的勾配降下法に基づく可微分プログラミングも、専用のコンピューティングハードウェアに対して多くの良い特性を示しますが、テンソル演算の静的グラフと比較すると、その度合いは低くなります。確率的数値レシピの重要性は2つあります。第1に、これらのレシピは、学習の観点から重要な役割を果たします。変分オートエンコーダーやドロップアウトなどがその例です。第2に、これらのレシピは、サプライチェーンシステム内の確率的な振る舞いを適切に分解するためのモデリングの観点からも重要です(例:変動するリードタイム)。逆に、可微分プログラミングと混合整数プログラミングの間には、複雑な数値最適化を実行することが支配的なアプローチである大きなギャップがあります。

混合整数プログラミング 可微分プログラミング
主な目的 最適化 学習+最適化
入力の粒度と多様性 薄いオブジェクト、異種 同上
入力量 バイトから数十メガバイトまで キロバイトから数十ギガバイトまで
ハードウェアアクセラレーション 貧しい 良い
表現力 線形および二次形式の不等式 (ほぼ)任意のプログラム
確率的数値レシピ なし 組み込み

混合整数プログラミングツールの擁護として、それらのツールは、問題に対処することに成功した場合、最適解を数学的に「証明」できる場合があります。深層学習も可微分プログラミングも、この点に関しては形式的な証明を提供しません。

結論

可微分プログラミングは、サプライチェーンにとって重要な突破口です。これは、コンピュータビジョンなどの多くの「ビッグAI」問題を解決するのに非常に成功した深層学習に基づいて構築されていますが、現実のサプライチェーンが直面する現実の課題に適したように、そのコアを再設計しました。 Lokadは、深層学習予測技術を構築してきましたが、これは次世代の予測技術である可微分プログラミングに移行するためのものです。ただし、DPは単に予測的である以上のものであり、最適化と学習を統合し、以前は実行可能な解決策がなかった多くの問題の解決策を開放します。