微分可能プログラミング
微分可能プログラミングは、ディープラーニングの子孫であり、機械学習と数値最適化という2つのアルゴリズム分野の融合を表しています。微分可能プログラミングにより、これまでほぼ手が届かないと考えられていた一連のサプライチェーンシナリオ、すなわち、価格と在庫の同時最適化、ロイヤルティに基づく品揃えの最適化、非標準製品(例:宝石、美術品)の需要予測、大規模な多段階フロー最適化、多チャネルの同時最適化、電子在庫値が部分的に誤っている場合の在庫最適化、多くの制約下での大規模なフロー最大化、などが実現可能になります。他の多くのシナリオにおいて、従来の手法で対応可能だった場合ですら、微分可能プログラミングは、データサイエンティストの労力と計算資源を大幅に削減しながら、優れた数値結果をもたらします。
サプライチェーンへの応用
本質的に、微分可能プログラミング(DP)は、長らく切り離されていた品揃え、価格設定、需要予測、計画、マーチャンダイジングといった問題を統一し、同時に解決する道筋を提供します。こうした統一は非現実的に野心的に思えるかもしれませんが、実際、企業はそもそも問題がサイロ化しているという事実から生じる無限の課題に対処するため、自社プロセスに途方もないだけのダクトテープを貼り付けています。例えば、価格設定は需要に明らかに影響を与えるのに、計画も需要予測もほとんどの場合、価格を完全に無視して実施されています。
DPは、組織内で問題を先送りするのではなく、ビジネス全体を包括的に捉え、おおよそ正しい意思決定を下すための大きな可能性を開きます。
実際、ビジネス全体を考慮しながらおおよそ正しい結果を求めるというのは、ほとんどのスプレッドシート中心の組織の実情そのものであり、全体的視点を取り入れる技術(たとえばDP)が欠如しているため、スプレッドシートが最も悪くはない選択肢として残っているのです。
Eコマース
販売された全てのユニットを既知の顧客に紐付けることができれば、市場に関する膨大な潜在情報が得られます。しかし、価格設定や在庫最適化においては、ロイヤルティ情報は今日、ほとんど活用されていません。DPは、これまでの時系列予測から、これまで観測されたすべての顧客-製品ペアが重要となる時間的グラフ予測への移行を可能にし、在庫と価格の賢明な意思決定を導きます。
ラグジュアリーブランド
店舗単位にまで及ぶ価格設定と品揃えの最適化は、各店舗ごとの商品の売上が極めて少ない(場合によっては、1製品につき年1ユニット)というデータの希薄性から、長らく解決困難とされてきました。DPは、通常のディープラーニング手法よりもはるかに高いデータ効率を発揮するよう設計されているため、このような極度に希薄な環境下でも機能するソリューションを提供します。
ファッションブランド
多くの商品が価格に非常に敏感であることから、在庫と価格の同時最適化は必須ですが、購入と価格設定の双方の同時最適化は、この相関関係を捉えるツールが存在しなかったため、実現できませんでした。すなわち、低価格で多く購入すれば需要が増加し(その逆もまた然り)という関係です。DPは、この課題に対処するための表現力を提供します。
製造業
大規模な多段階ネットワークの数値最適化は、従来の数値ソルバー(下記の「ブランチ・アンド・カット最適化を超えて」を参照)では手に負えません。実際、数百万の変数や確率的な振る舞いに対処する場合、これらソルバーはほとんど実用に耐えなくなります。不幸なことに、製造業は多数の変数と確率的な振る舞いの両方を示すため、DPはネットワーク内の実際のフローパターンの複雑性を損なうことなく多段階問題に対処する実用的なアプローチを提供します。
MRO(整備、修理、オーバーホール)
システム修理に必要な部品が1点でも欠ければ、航空機など全体のシステムが停止してしまいます。確率的予測は、不規則かつ断続的な需要パターンに対応する第一歩ですが、必要な部品の共起関係の詳細を把握し、それを実行可能な在庫推奨に変換する作業は、実用上あまりにも複雑でした。DPは、このような問題解決を効率化します。
小売ネットワーク
小売ネットワーク内でのカニバリゼーション(通常は製品間、時には店舗間)が長らく非常に重要と認識されてきました。この問題は、顧客をあるブランドから別のブランドへ誘導するために意図的に実施されるプロモーションによってさらに増幅されます。DPは、プロモーションがある状況下でのカニバリゼーションに対処する可能性を提供します。単に「プロモーションを予測する」のではなく、プロモーション自体を、流通チャネルとブランドが共同で運営する収益性の高い取引として最適化する可能性をもたらします。
人工知能(AI)ハイプを超えて
人工知能(AI)は確かに2018年のテックバズワードであり、2019年においてもその話題は健在です。しかし、Lokadはディープラーニングなど、通常AIと呼ばれる技術を広範に活用しているにもかかわらず、Lokad技術の「AI」部分に強調を置くことには慎重でした。実際、定量的なサプライチェーン最適化に関しては、パッケージ化されたAIは単に機能しません。サプライチェーンは、例としてコンピュータビジョンのようなものとは全く異なり、データ、指標、タスクすべてが非常に多様です。その結果、いわゆる「ターンキー」なAIソリューションを購入した企業は、これらのソリューションが、単純なルールベースシステムで十分対応可能な最も単純な状況を除き、決して機能しないことに気付き始めています。本質的に、サプライチェーンは複雑な人間作りのシステムであり、データのみを頼りにしたAIシステムが、以下のようなドメインに関する根本的洞察を自力で再発見することを期待するのは非合理的です:
- ラグジュアリーブランドのプロモーションは絶対にダメである。
- ERPにおけるマイナスの販売注文は、実は製品の返品である。
- 生鮮食品は指定された温度範囲内で輸送されなければならない。
- 色のバリエーションは優れた衣料品の代替となり得るが、サイズのバリエーションはそうではない。
- 航空機の整備は飛行時間と飛行サイクルによって行われる。
- 英国での販売は、ERPが通貨をEURと表示していても実際にはGBPで行われている。
- 人々は自分自身のためではなく、車の部品を購入する。
- すべてのダイヤモンドはユニークであるが、価格は主にカラット、透明度、色、カットに依存する。
- 航空機からNOGO部品のいずれかが欠けると、その航空機は運航停止となる。
- 多くの化学プラントは、停止後再起動に数週間を要する。
この点で、ディープラーニングは従来の多くの機械学習手法と異なり、極めて組み合わせ可能な性質を持つため大きな成功を収めています。つまり、特定の状況に合わせてモデル構造を大幅にカスタマイズできるのです。これは、従来の非ディープ学習手法、例えばランダムフォレストで唯一の選択肢であった、モデル入力のカスタマイズ(特徴量エンジニアリング)とは異なります。
しかし、ディープラーニングフレームワークは、機械学習の「大問題」―すなわちコンピュータビジョン、音声認識、音声合成、自動翻訳―から生まれ、サプライチェーンで直面する問題とは文字通り全く異なるシナリオ向けに徹底的に設計・調整されてきました。したがって、これらのフレームワークをサプライチェーン最適化に応用することは可能ですが、決して容易でも軽量でもありません。結論として、ディープラーニングフレームワークを用いればサプライチェーンにおいて多くの成果が得られますが、サプライチェーンと既存ディープラーニングフレームワークとの間には大きなミスマッチが存在し、それがコストや遅延を増大させ、技術の実世界での適用可能性を制限しています。
ブランチ・アンド・カット最適化を超えて
サプライチェーンにおけるほとんどの問題は、未来の不確実性、市場の現状の不完全な把握、時にはサプライチェーンシステム自体の不正確さ(例:在庫の誤差)といった学習の側面と、経済的要因に基づく意思決定を行いながら多くの非線形制約(例:購入時の最小発注数量や生産時のバッチサイズ)を満たす必要がある数値最適化の側面の両方を有しています。
数値最適化分野では、整数計画法やブランチ・アンド・カットといった手法が数十年にわたり支配してきました。しかし、これらのアルゴリズムやそれに付随するソフトウェアソリューションは、多くの(あるいはほぼすべての)サプライチェーン課題に対して運用上求められる柔軟性と拡張性を提供することに失敗してきました。整数計画法は、変数が少ない狭い問題(例:家電内の部品配置)の解決には非常に有能ですが、確率的需要や輸送時間といったランダム性が関与する大規模問題には劇的な制約を示します。
ディープラーニングの最も過小評価されがちな側面の一つは、その成功が学習面での突破口と同様に最適化面での突破口の成果でもあるという点です。科学界は、非常に効率的なアルゴリズムが大規模最適化を実行していることを解明しました。これらの「ディープラーニング」最適化アルゴリズムは、確率的勾配降下法を中心に回っており、従来のブランチ・アンド・カット法よりも遥かに効率的で、また、我々が持つSIMD CPUや(GP)GPUといった計算ハードウェアに非常によく適合します。結果的に、実際の運用では2桁から3桁の速度向上が見込まれます。これら純粋な数値最適化における突破口は、意思決定の最適化においてサプライチェーンにとって非常に重要です。しかし、もしディープラーニングフレームワークがもともとサプライチェーンの学習問題に対してやや不向きであったなら、最適化問題に対してはさらに不向きなのは言うまでもありません。実際、これらの最適化問題は、制約や評価指標を実装するためにサプライチェーン・サイエンティストがフレームワークの表現力に大いに依存するためです。
微分可能プログラミングへの道
理論上は、理論と実践の間に違いはありません。しかし、実践においては違いがあります。 Walter J. Savitch, Pascal: An Introduction to the Art and Science of Programming (1984)
Differentiable Programming (DP) は、サプライチェーンに対して、ディープラーニングが学習面と数値最適化面の両面で提供できる最高のものをもたらす解決策です。DP を通じて、サプライチェーンの専門家は人間の洞察を最大限に活用し、ビジネス目標と深く一致した数値レシピを作り上げることができます。ディープラーニングと微分可能プログラミングの間に絶対的な境界はなく、むしろディープラーニングという最もスケーラブルなシステムから、微分可能プログラミングという最も表現力豊かなシステムへと、多くのプログラミング構造が段階的に利用可能になるという連続体をなしています(ただし、純粋なスケーラビリティは犠牲になります)。しかし、Lokad での私たちの経験は、主にコンピュータビジョン向けに設計されたツールからサプライチェーンの課題に対応するためのツールへ転換することが、「面白い」プロトタイプが生産に至らないのと、実際に規模で展開される産業グレードのシステムとの差を生み出すと示しています。
| ディープラーニング | 微分可能プログラミング | |
|---|---|---|
| Primary purpose | 学習 | 学習+最適化 |
| Typical usage | 一度学習して、何度も評価 | 一度学習して、一度評価 |
| Input granularity | 情報量の多いオブジェクト(画像、音声系列、ライダー走査、全文ページ) | 情報量の少ないオブジェクト(製品、顧客、SKU、価格) |
| Input variety | 同質のオブジェクト(例:すべて同じ高さ/幅比率を持つ画像) | 非同質のオブジェクト(リレーショナルテーブル、グラフ、時系列) |
| Input volume | メガバイトからペタバイトまで | キロバイトから数十ギガバイトまで |
| Hardware acceleration | ハードウェアアクセラレーション | 良好 |
| Expressiveness | テンソル演算の静的グラフ | (ほぼ)任意のプログラム |
| Stochastic numerical recipes | 組み込み | 同様 |
典型的な利用法は微妙ながらも重要な点です。「ビッグAI」の観点からは、トレーニング時間は(ほぼ)無制限に長くなる可能性があり、計算ネットワークを数週間、場合によっては数ヶ月にわたってトレーニングしても問題ありません。その後、得られた計算ネットワークは通常、リアルタイムで評価される必要があります(例:自律走行のためのパターン認識)。この点は、毎回ネットワークを再学習することで最高の結果が得られるサプライチェーンとは全く異なります。さらに、DP の観点からは、トレーニングされたパラメータ自体が求める成果であることが多いため、リアルタイム評価の制約はほぼ意味をなさなくなります。加えて、入力データの粒度、多様性、量に対する期待は大きく異なります。一般的に「ビッグAI」では、(例:ウェブ上のすべてのテキストページのような)ほぼ無限のトレーニングデータを前提とし、その主要な挑戦は、これらの巨大なデータセットに効果的に対処するための非常にスケーラブルな手法を見出すことにあります。対照的に、サプライチェーンの問題は、限られた量の高度に構造化されながらも多様なデータで対処する必要があり、その結果、ディープラーニングは専用ハードウェア(初めはGPU、現在はTPU)によって大幅に加速可能なテンソルベースのフレームワークへと導かれます。確率的勾配降下法に基づく微分可能プログラミングもハードウェアアクセラレーションに対して多くの優れた特性を示しますが、テンソル演算の静的グラフと比べるとその度合いは劣ります。確率的数値レシピの重要性は二重の意味を持ちます。第一に、これらのレシピは学習の側面で重要な役割を果たし、変分オートエンコーダーやドロップアウトがその例です。第二に、これらのレシピはサプライチェーンシステム内における確率的な挙動(例:変動するリードタイム)を適切にモデル化する上で重要な役割を果たします。一方、微分可能プログラミングと過去数十年にわたって主流であった混合整数計画法との間には大きな隔たりがあるのです。
| 混合整数計画法 | 微分可能プログラミング | |
|---|---|---|
| Primary purpose | 最適化 | 学習+最適化 |
| Input granularity and variety | 入力の粒度と多様性:情報量の少ないオブジェクト、非同質 | 同様 |
| Input volume | バイトから数十メガバイトまで | キロバイトから数十ギガバイトまで |
| Hardware acceleration | 低い | 良好 |
| Expressiveness | 線形および二次形式における不等式 | (ほぼ)任意のプログラム |
| Stochastic numerical recipes | なし | 組み込み |
混合整数計画法ツールを擁護する立場から言えば、これらのツールは問題解決に成功した場合、数学的な意味で最適解を 証明 することがあるのです。一方、ディープラーニングも微分可能プログラミングも、この点において正式な証明は提供しません。
結論
微分可能プログラミングは、サプライチェーンにおける大きな画期的進展です。これは、コンピュータビジョンなど多くの「ビッグAI」問題の解決において驚異的な成功を収めたディープラーニングの上に構築されているものの、実世界のサプライチェーンが直面する現実的な課題に適応するためにコア部分が再設計されています。Lokad は、ディープラーニングによる予測技術の上に成り立つ基盤を活かし、次世代の予測技術である微分可能プログラミングへの移行を進めてきました。しかし、DP は単なる予測手法に留まらず、最適化 と 学習 を統合することで、これまで実現不可能だった数多くの問題に対する解決策を解き放つのです。