微分可能プログラミング

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

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

微分可能プログラミング(DP)の核心は、長い間分断されていた問題を統一し、共同で解決する道を提供します:アソート、価格設定、需要予測、計画、商品展開。このような統一は非現実的に野心的に思えるかもしれませんが、実際のところ、企業は既に自社のプロセスに対して狂気じみた量のダクトテープを適用しており、これらの課題が最初に組織内でシロに閉じ込められていたことによって生じる問題を解決するためにそれらを解決しています。たとえば、価格は明らかに需要に影響を与えますが、計画と予測はほとんど常に価格を無視して行われます。

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

アノテーションによると、ほとんどのスプレッドシート駆動型の組織は、ビジネス全体を考慮しながらおおよその正確さを求めることが求められます。しかし、DPのようなビジネス全体の視点を抱えることができるテクノロジーの不足のために、スプレッドシートは最も選択肢がないオプションのままです。

Ecommerce

既知の顧客に100%の販売単位を関連付けることができることは、市場に関する膨大な情報の潜在的な量を表しています。しかし、価格設定や在庫最適化に関しては、最近では忠誠度情報がほとんど使用されていません。DPは、時系列予測から一時的なグラフ予測への移行を可能にし、これまでに観察されたすべての顧客-製品ペアが重要となるため、在庫と価格の両方についてよりスマートな意思決定ができます。

ラグジュアリーブランド

ストアレベルまでの価格と商品の最適化は、データの希薄さにより、長い間解決が難しいと考えられてきました。つまり、製品ごとのストアごとの販売数量が非常に少ない(年間1つの製品ごとのストアごとの販売数量)ためです。DPは、通常の深層学習手法よりもはるかに優れたデータ効率を提供するように設計されているため、このような超希薄なデータに対応するためのソリューションのクラスを提供します。

ファッションブランド

在庫と価格の共同最適化は明確な要件です。なぜなら、多くの商品の需要は価格に非常に敏感であるためです。しかし、購買と価格の両方の共同最適化は、この結合を理解するためのツールの不足のために実現できませんでした。つまり、低価格での購入は需要を増加させ(その逆も同様)、DPはこの課題に取り組むための表現力を提供します。

製造業

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

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

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

小売ネットワーク

小売ネットワーク内のカニバリゼーション(通常は製品間、時には店舗間)は、長い間非常に重要視されてきました。この問題は、ブランド間で顧客を誘導するために精密に意図されたプロモーションによってさらに増幅されます。DPは、プロモーションの存在下でのカニバリゼーションに対処する可能性を提供します。DPは単に「プロモーションの予測」を行うのではなく、プロモーションを最適化する可能性を提供し、それらが利益を上げる取引であり、配信チャネルとブランドの両方によって共同で運営されることを示します。

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

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

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

この点で、深層学習は非常に成功しています。なぜなら、機械学習の以前のアプローチとは異なり、深層学習は非常に構成的です。モデルの構造を広範に調整して、特定の状況でより良く学習することが可能です。モデルの構造を調整することは、モデルの入力を調整することとは異なります。これは一般的な機械学習アルゴリズム(例:ランダムフォレスト)の場合、通常唯一の選択肢であった特徴エンジニアリングとは異なります。

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

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

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

数値最適化の面では、整数計画法とその関連技術(ブランチアンドカットなど)が数十年にわたってこの分野を支配してきました。しかし、これらのブランチアンドカットアルゴリズムとそれに関連するソフトウェアソリューションは、多くの、もしくはほとんどのサプライチェーンの課題に対して柔軟性と拡張性を提供することには失敗してきました。整数計画法は、変数が少ないタイトな問題(例:消費者電子機器内の部品配置)を解決する際には非常に優れたツールですが、確率的な需要や確率的な輸送時間が絡む大規模な問題に対しては、限定的な能力を示します。

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

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

理論と実践の間には違いがない。しかし、実践では違いがある。 Walter J. Savitch, Pascal: An Introduction to the Art and Science of Programming (1984)

微分可能プログラミング(DP)は、ディープラーニングが学習と数値最適化の両面で提供する最高のものをサプライチェーンにもたらす答えです。DPを通じて、サプライチェーンの科学者は、ビジネスの目標と深く一致する数値レシピを作成するために、人間の洞察力を最大限に活用することができます。ディープラーニングと微分可能プログラミングの間には絶対的な区切りはありません。それは、最もスケーラブルなシステム(ディープラーニング)から最も表現力のあるシステム(微分可能プログラミング)への連続であり、徐々に利用可能になっている多くのプログラミング構造がありますが、生のスケーラビリティを犠牲にすることになります。しかし、Lokadでの経験からは、コンピュータビジョン向けに主に設計されたツールからサプライチェーンの課題に対応したツールに移行することが、プロトタイプが本番環境に到達しない「興味深い」ものと、スケールで展開される産業用システムの違いを生み出すということが明確になっています。

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

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

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

混合整数プログラミングツールの擁護として、これらのツールは問題を解決することに成功した場合、数学的な意味で最適解を得たことを証明することができる場合があります。一方、深層学習や可微分プログラミングは、この点において形式的な証明を提供しません。

結論

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