微分可能プログラミング

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

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

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

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

Anecdotally、ビジネス全体を考慮しながらおおよその正確さを求めることは、スプレッドシートを使用する組織のほとんどが行っていることです。そして、DPのような全社的な視点を取り入れることができるテクノロジーがないために、スプレッドシートは最もひどい選択肢のままです。

Ecommerce

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

ラグジュアリーブランド

店舗レベルまでの価格設定と商品の最適化は、データのまれさによって大きく解決が難しいと考えられてきました。つまり、店舗ごとの商品ごとの非常に低い販売数量 - 商品ごとの店舗ごとの年間1ユニットの販売数量まで低い。DPは、通常の深層学習手法よりもはるかに優れたデータ効率を提供するように設計されているため、このような超まれなデータに対応する解決策のクラスを提供する角度を提供します。

ファッションブランド

在庫と価格の共同最適化は明確な要件です。多くのアイテムの需要が価格に敏感であることが多いため、購入と価格の両方の共同最適化は、この結合を理解するのに十分なツールがないために達成できませんでした。つまり、低価格でより多く購入する能力は需要を増やす(逆も同様)ということです。DPは、この課題に取り組むための表現力を提供します。

製造業

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

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

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

小売ネットワーク

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

人工知能の期待を超えて

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

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

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

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

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

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

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

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

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

理論的には、理論と実践の間には違いはありません。しかし、実際には違いがあります。 ウォルター・J・サヴィッチ、パスカル:プログラミングの芸術と科学への入門(1984年)

微分可能プログラミング(DP)は、サプライチェーンに深層学習が提供するもののうち、学習側と数値最適化側の両方の最良のものをもたらす答えです。DPを通じて、サプライチェーンの科学者は、ビジネス目標と深く一致した数値レシピを作成するために、人間の洞察を最大限に活用することができます。深層学習と微分可能プログラミングの間には絶対的な区別はありません。それは、最もスケーラブルなシステム(深層学習)から最も表現力のあるシステム(微分可能プログラミング)への連続であり、多くのプログラミング構造が利用可能になりつつあり、スケーラビリティを犠牲にして微分可能プログラミングに移行するときに利用可能になります。しかし、Lokadでの経験から、コンピュータビジョン向けに主に設計されたツールからサプライチェーンの課題向けに設計されたツールに移行することが、「興味深い」プロトタイプと実稼働に至らないプロトタイプとの違いを正確に示しています。

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

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

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

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

結論

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