(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023009811
(43)【公開日】2023-01-20
(54)【発明の名称】計算機システム、アイテムの需要予測方法、及びプログラム
(51)【国際特許分類】
G06Q 30/0201 20230101AFI20230113BHJP
G06Q 10/04 20230101ALI20230113BHJP
【FI】
G06Q30/02 300
G06Q10/04
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2021113403
(22)【出願日】2021-07-08
(71)【出願人】
【識別番号】000153546
【氏名又は名称】株式会社日立物流
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】陳 成
(72)【発明者】
【氏名】尾白 大知
(72)【発明者】
【氏名】渡邊 高志
(72)【発明者】
【氏名】山元 龍
(72)【発明者】
【氏名】植木 隆雄
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049AA04
5L049BB04
(57)【要約】
【課題】モデルの学習に適した損失関数を自動的に設定するとともに、当該損失関数を用いて予測精度が高いモデルを生成する。
【解決手段】計算機システムは、複数の損失関数、及びアイテムの需要に関する履歴を管理し、評価指標が満たすべき条件の情報を受け付ける第1処理と、重みが乗算された複数の損失関数を用いて統合損失関数を生成する第2処理と、統合損失関数及び履歴を用いた機械学習によってモデルを生成し、モデルに履歴を入力して得られたアイテムの需要予測に基づいて、評価指標を算出する第3処理と、受け付けた情報及び評価指標に基づいて、条件を満たすか否かを判定する第4処理と、条件を満たさない場合、評価指標に基づいて重みを更新し、第3処理を実行する第5処理と、条件を満たす場合、アイテムの需要予測を出力する第6処理と、を実行する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
少なくとも一つの計算機を備える計算機システムであって、
複数の損失関数、及びアイテムの需要に関する履歴を管理し、
前記少なくとも一つの計算機は、
前記アイテムの需要に関する評価指標が満たすべき条件の情報を受け付ける第1処理と、
重みが乗算された前記複数の損失関数を用いて統合損失関数を生成する第2処理と、
前記統合損失関数及び前記履歴を用いた機械学習によって、前記アイテムの需要を予測するモデルを生成し、前記モデルに前記履歴を入力して得られた前記アイテムの需要予測に基づいて、前記評価指標を算出する第3処理と、
前記受け付けた情報及び前記評価指標に基づいて、前記条件を満たすか否かを判定する第4処理と、
前記条件を満たさないと判定された場合、前記評価指標に基づいて、前記統合損失関数に含まれる、少なくとも一つの前記損失関数に乗算される前記重みを更新し、前記第3処理を実行する第5処理と、
前記条件を満たすと判定された場合、前記アイテムの需要予測を出力する第6処理と、
を実行することを特徴とする計算機システム。
【請求項2】
請求項1に記載の計算機システムであって、
前記複数の損失関数の各々は、扱う時系列の単位、変数、及び数式の少なくともいずれか一つが異なることを特徴とする計算機システム。
【請求項3】
請求項1に記載の計算機システムであって、
前記第6処理では、前記少なくとも一つの計算機は、前記アイテムの需要予測と、前記複数の損失関数の各々の重みとを含む予測結果情報を出力することを特徴とする計算機システム。
【請求項4】
請求項1に記載の計算機システムであって、
前記第5処理では、前記少なくとも一つの計算機は、前記統合損失関数から、更新された前記重みが閾値より小さい前記損失関数を削除することを特徴とする計算機システム。
【請求項5】
少なくとも一つの計算機を備える計算機システムが実行するアイテムの需要予測方法であって、
前記計算機システムは、複数の損失関数、及びアイテムの需要に関する履歴を管理し、
前記アイテムの需要予測方法は、
前記少なくとも一つの計算機が、前記アイテムの需要に関する評価指標が満たすべき条件の情報を受け付ける第1処理を実行するステップと、
前記少なくとも一つの計算機が、重みが乗算された前記複数の損失関数を用いて統合損失関数を生成する第2処理を実行するステップと、
前記少なくとも一つの計算機が、前記統合損失関数及び前記履歴を用いた機械学習によって、前記アイテムの需要を予測するモデルを生成し、前記モデルに前記履歴を入力して得られた前記アイテムの需要予測に基づいて、前記評価指標を算出する第3処理を実行するステップと、
前記少なくとも一つの計算機が、前記受け付けた情報及び前記評価指標に基づいて、前記条件を満たすか否かを判定する第4処理を実行するステップと、
前記条件を満たさないと判定された場合、前記少なくとも一つの計算機が、前記評価指標に基づいて、前記統合損失関数に含まれる、少なくとも一つの前記損失関数に乗算される前記重みを更新し、前記第3処理を実行する第5処理を実行するステップと、
前記条件を満たすと判定された場合、前記少なくとも一つの計算機が、前記アイテムの需要予測を出力する第6処理を実行するステップと、
を含むことを特徴とするアイテムの需要予測方法。
【請求項6】
請求項5に記載のアイテムの需要予測方法であって、
前記複数の損失関数の各々は、扱う時系列の単位、変数、及び数式の少なくともいずれか一つが異なることを特徴とするアイテムの需要予測方法。
【請求項7】
請求項5に記載のアイテムの需要予測方法であって、
前記第6処理では、前記少なくとも一つの計算機が、前記アイテムの需要予測と、前記複数の損失関数の各々の重みとを含む予測結果情報を出力することを特徴とするアイテムの需要予測方法。
【請求項8】
請求項5に記載のアイテムの需要予測方法であって、
前記第5処理では、前記少なくとも一つの計算機が、前記統合損失関数から、更新された前記重みが閾値より小さい前記損失関数を削除することを特徴とするアイテムの需要予測方法。
【請求項9】
計算機に実行させるためのプログラムであって、
前記計算機は、
プロセッサ、前記プロセッサに接続される記憶装置、前記プロセッサに接続されるネットワークインタフェースを有し、
複数の損失関数、及びアイテムの需要に関する履歴を管理し、
前記プログラムは、
前記アイテムの需要に関する評価指標が満たすべき条件の情報を受け付ける第1処理を実行する手順と、
重みが乗算された前記複数の損失関数を用いて統合損失関数を生成する第2処理を実行する手順と、
前記統合損失関数及び前記履歴を用いた機械学習によって、前記アイテムの需要を予測するモデルを生成し、前記モデルに前記履歴を入力して得られた前記アイテムの需要予測に基づいて、前記評価指標を算出する第3処理を実行する手順と、
前記受け付けた情報及び前記評価指標に基づいて、前記条件を満たすか否かを判定する第4処理を実行する手順と、
前記条件を満たさないと判定された場合、前記評価指標に基づいて、前記統合損失関数に含まれる、少なくとも一つの前記損失関数に乗算される前記重みを更新し、前記第3処理を実行する第5処理を実行する手順と、
前記条件を満たすと判定された場合、前記少なくとも一つの計算機が、前記アイテムの需要予測を出力する第6処理を実行する手順と、
を前記計算機に実行させることを特徴とするプログラム。
【請求項10】
請求項9に記載のプログラムであって、
前記複数の損失関数の各々は、扱う時系列の単位、変数、及び数式の少なくともいずれか一つが異なることを特徴とするプログラム。
【請求項11】
請求項9に記載のプログラムであって、
前記第6処理では、前記計算機に、前記アイテムの需要予測と、前記複数の損失関数の各々の重みとを含む予測結果情報を出力させることを特徴とするプログラム。
【請求項12】
請求項9に記載のプログラムであって、
前記第5処理では、前記計算機に、前記統合損失関数から、更新された前記重みが閾値より小さい前記損失関数を削除させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アイテムの需要を予測するシステム及び方法に関する。
【背景技術】
【0002】
物流業界では、アイテムの在庫及び補充等を計画するためにアイテムの需要を予測するシステムが利用されている。需要の単位及び変動周期等は事業分野で異なるため、需要予測の手法は複数存在する。そのため、ユーザは、対象とする事業分野の出荷パターン等に基づいて最適な需要予測手法を選択する必要がある。この課題に対して、特許文献1に記載の技術が知られている。
【0003】
特許文献1には、「手法自動選択装置は、商品の検証期間中の販売実績を記憶する商品販売実績記憶部15と、需要予測手法を用いて、前記商品の販売実績に基づき前記検証期間中の予測需要量を算出する予測需要量算出部11と、在庫シミュレーション手法を用いて、前記予測需要量に基づき前記検証期間中の理論在庫を算出する理論在庫算出部12と、前記理論在庫と前記商品の販売実績との差から需要予測手法と在庫シミュレーション手法の組毎に発注予測誤差を算出する発注予測誤差出力部13と、前記発注予測誤差に基づいて前記商品に対応する需要予測手法と在庫シミュレーション手法の組を選択する手法評価部14と、を備える。」ことが記載されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
すなわち、特許文献1では、数多くある予測手法とシミュレーション手法から商品(アイテム)毎に最適な組み合わせを選択するが、既存の手法を組み合わせても精度のよい予測ができるとは限らない。これに対して、機械学習により生成されたモデルを利用することが考えられる。モデルは、通常、損失関数を用いて学習される。損失関数は、扱う課題、予測の対象、及びモデルのパラメータ等によって異なる。損失関数の定義の如何によってモデルの予測精度に大きな影響を与える。したがって、適切な損失関数を定義する必要がある。
【0006】
アイテムの需要を予測するモデルの場合、アイテムそのものの特性、アイテムを扱う環境等によって、様々な損失関数が考えられる。そのため、適切な損失関数を定義することが困難であり、作業工数がかかるためモデルを生成するためのコストが高くなるという問題がある。
【0007】
本発明は、モデルの学習に適した損失関数を自動的に設定するとともに、当該損失関数を用いて予測精度が高いモデルを生成するシステム及び方法を実現する。
【課題を解決するための手段】
【0008】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、少なくとも一つの計算機を備える計算機システムであって、複数の損失関数、及びアイテムの需要に関する履歴を管理し、前記少なくとも一つの計算機は、前記アイテムの需要に関する評価指標が満たすべき条件の情報を受け付ける第1処理と、重みが乗算された前記複数の損失関数を用いて統合損失関数を生成する第2処理と、前記統合損失関数及び前記履歴を用いた機械学習によって、前記アイテムの需要を予測するモデルを生成し、前記モデルに前記履歴を入力して得られた前記アイテムの需要予測に基づいて、前記評価指標を算出する第3処理と、前記受け付けた情報及び前記評価指標に基づいて、前記条件を満たすか否かを判定する第4処理と、前記条件を満たさないと判定された場合、前記評価指標に基づいて、前記統合損失関数に含まれる、少なくとも一つの前記損失関数に乗算される前記重みを更新し、前記第3処理を実行する第5処理と、前記条件を満たすと判定された場合、前記アイテムの需要予測を出力する第6処理と、を実行する。
【発明の効果】
【0009】
本発明によれば、計算機システムは、モデルの学習に適した損失関数を自動的に設定し、予測精度が高いモデルを生成できる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【0010】
【
図1】実施例1の需要予測システムの構成の一例を示す図である。
【
図2】実施例1の需要予測システムの機能構成の詳細を説明する図である。
【
図3】実施例1の需要実績管理情報のデータ構造の一例を示す図である。
【
図4】実施例1の要素損失関数情報のデータ構造の一例を示す図である。
【
図5】実施例1の統合損失関数情報のデータ構造の一例を示す図である。
【
図6】実施例1の評価指標情報のデータ構造の一例を示す図である。
【
図7】実施例1の統合損失関数生成部が実行する処理の一例を説明するフローチャートである。
【
図8】実施例1の需要予測部が実行する処理の一例を説明するフローチャートである。
【
図9】実施例1の評価指標算出部が実行する処理の一例を説明するフローチャートである。
【
図10】実施例1の関数重み更新部が実行する処理の一例を説明するフローチャートである。
【
図11】実施例1の統合損失関数更新部が実行する処理の一例を説明するフローチャートである。
【
図12A】実施例1の表示部が表示する画面の一例を示す図である。
【
図12B】実施例1の表示部が表示する画面の一例を示す図である。
【
図13】実施例2の需要予測システムの機能構成の詳細を説明する図である。
【
図14】実施例2の入力部が表示する画面の一例を示す図である。
【発明を実施するための形態】
【0011】
以下、本発明の実施例を、図面を用いて説明する。ただし、本発明は以下に示す実施例の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
【0012】
以下に説明する発明の構成において、同一又は類似する構成又は機能には同一の符号を付し、重複する説明は省略する。
【0013】
本明細書等における「第1」、「第2」、「第3」等の表記は、構成要素を識別するために付するものであり、必ずしも、数又は順序を限定するものではない。
【0014】
図面等において示す各構成の位置、大きさ、形状、及び範囲等は、発明の理解を容易にするため、実際の位置、大きさ、形状、及び範囲等を表していない場合がある。したがって、本発明では、図面等に開示された位置、大きさ、形状、及び範囲等に限定されない。
【実施例0015】
図1は、実施例1の需要予測システムの構成の一例を示す図である。
【0016】
需要予測システムは、少なくとも一つの計算機100から構成される計算機システムである。計算機100は、プロセッサ110、IOインタフェース111、ネットワークインタフェース112、主記憶装置113、及び副記憶装置114を有する。各ハードウェアはバスを介して互いに接続される。
【0017】
プロセッサ110は、主記憶装置113に格納されるプログラムを実行する。プロセッサ110がプログラムにしたがって処理を実行することによって、特定の機能を実現する機能部(モジュール)として動作する。以下の説明では、機能部を主語に処理を説明する場合、プロセッサ110が当該機能部を実現するプログラムを実行していることを示す。
【0018】
IOインタフェース111は外部装置と接続するためのインタフェースである。計算機100は、IOインタフェース111を介して入力装置101及び出力装置102と接続する。入力装置101は、キーボード、マウス、及びタッチパネル等である。出力装置102は、ディスプレイ及びプリンタ等である。
【0019】
ネットワークインタフェース112は、ネットワーク103を介して外部装置と接続するためのインタフェースである。ネットワーク103は、WAN(Wide Area Network)及びLAN(Local Area Network)等である。ネットワーク103の接続形式は有線及び無線のいずれでもよい。
【0020】
主記憶装置113は、プロセッサ110が実行するプログラム及びプログラムが使用するデータを格納する。また、主記憶装置113は、プログラムが一時的に使用するワークエリアを含む。主記憶装置113は、例えば、DRAM(Dynamic Random Access Memory)等である。
【0021】
主記憶装置113は、入力部120、予測部121、及び表示部122を実現するプログラムを格納する。なお、主記憶装置113は、OS(Operating System)等、図示しないプログラムを格納しているが、本実施例では省略している。
【0022】
入力部120は、入力装置101又はネットワーク103を介して、ユーザからの各種入力を受け付ける。予測部121は、アイテムの需要を予測し、予測結果を出力する。アイテムの需要を予測する時間範囲は、例えば、年、月、及び週であるが、これらに限定されない。予測の時間範囲は予め設定されているものとする。表示部122は、出力装置102を介して、ユーザに対して予測結果等を提示する。なお、計算機100は、ネットワーク103を介して通信可能に接続されたユーザ端末からデータを受信することで、ユーザからの入力を受け付け、かつ、出力装置102で出力すべき出力をユーザ端末に送信することで、ユーザ端末にデータを出力してもよい。
【0023】
副記憶装置114は、データを永続的に格納する。副記憶装置114は、例えば、HDD(Hard Disk Drive)及びSSD(Solid State Drive)等である。
【0024】
副記憶装置114は、需要実績管理情報130及び要素損失関数情報131を格納する。なお、副記憶装置114には、需要予測モデルを格納しているが、本実施例では省略している。
【0025】
需要実績管理情報130は、過去のアイテムの出荷量に関するデータ(出荷履歴)を格納する。出荷履歴には計測期間におけるアイテムの出荷量等に関する値が含まれる。計測期間は、例えば、日、週、及び月等である。なお、計測期間はこれらに限定されない。需要実績管理情報130のデータ構造については
図3を用いて説明する。
【0026】
要素損失関数情報131は、扱う時系列の単位、変数、及び数式の少なくともいずれかが異なる損失関数を格納する。数式の違いは、合計、平均、及び分散等を表す。要素損失関数情報131には、対象となる業務のKPI(Key Performance Indicator)等に関連する損失関数が格納される。要素損失関数情報131のデータ構造については
図4を用いて説明する。
【0027】
後述するように、本実施例では、複数の損失関数からターゲットとする業務フィールドに適した統合損失関数を生成する。以下の説明では、要素損失関数情報131にて管理される損失関数を「要素損失関数」と記載する。
【0028】
なお、需要予測システムは、複数の計算機100から構成されてもよい。この場合、複数の計算機100に機能部が分散して配置される。例えば、一つの計算機100に入力部120が配置され、一つの計算機100に予測部121が配置され、一つの計算機100に表示部122が配置される。
【0029】
なお、主記憶装置113に格納されるプログラム及びデータは副記憶装置114に格納されてもよい。この場合、プロセッサ110は、副記憶装置114からプログラム及びデータを読み出し、主記憶装置113に格納する。
【0030】
図2は、実施例1の需要予測システムの機能構成の詳細を説明する図である。
【0031】
入力部120は、評価指標目標情報220とともに、対象アイテムの需要予測の出力要求を受け付ける。出力要求には、対象アイテムの識別情報が含まれる。入力部120は、需要実績管理情報130から、任意の処理期間の対象アイテムの出荷履歴群から構成されるデータセットを読み出し、予測部121に出力する。また、入力部120は、要素損失関数情報131に格納される要素損失関数と、評価指標目標情報220とを予測部121に出力する。
【0032】
評価指標目標情報220には、評価指標の名称と、評価指標に関する条件とが含まれる。評価指標の条件は、例えば、具体的な値又は評価指標の変化の傾向等である。
【0033】
予測部121は、予測期間における対象アイテムの需要(出荷量)を予測し、予測結果を表示部122に出力する。ここで、予測部121の詳細について説明する。
【0034】
予測部121は、統合損失関数生成部200、需要予測部201、評価指標算出部202、関数重み更新部203、統合損失関数更新部204、及び結果生成部205を含む。
【0035】
統合損失関数生成部200は、複数の要素損失関数を用いて、初期の統合損失関数を生成する。ここで、統合損失関数は式(1)で定義される。
【0036】
【0037】
Fは統合損失関数を表し、iは要素損失関数のIDを表し、wiは重みを表し、fiは要素損失関数を表す。重みwiは非負値である。
【0038】
統合損失関数生成部200は、重みwiに初期値を設定することによって、初期の統合損失関数を生成する。統合損失関数生成部200は、生成した統合損失関数を含む統合損失関数情報210を需要予測部201に出力する。
【0039】
需要予測部201は、対象アイテムの出荷履歴のデータセット及び統合損失関数を用いて予測モデルを生成し、また、予測モデルを用いて対象アイテムの需要予測値を算出する。需要予測部201は、対象アイテムの名称、日付、需要予測値、及び統合損失関数の重みを含む需要予測情報211を出力する。なお、需要予測情報211に含まれるデータは一例であってこれに限定されない。
【0040】
予測モデルは、例えば、ニューラルネットワークであるが、本発明は、これに限定されない。
【0041】
評価指標算出部202は、アイテムを扱う業務に関する評価指標を算出する。例えば、欠品率及び輸送コスト等のKPIが評価指標として算出される。評価指標算出部202は、例えば、需要予測値及び過去の出荷量を用いて、将来の業務計画をシミュレートすることによって評価指標を算出する。評価指標算出部202には、あらかじめ業務計画をシミュレートするためのアルゴリズムが設定されているものとする。評価指標算出部202は、評価指標情報212を関数重み更新部203に出力する。評価指標情報212には、算出した評価指標とともに、統合損失関数の重みを特定するためのデータが含まれる。
【0042】
関数重み更新部203は、算出された評価指標及び評価指標目標情報220に基づいて、統合損失関数を構成する要素損失関数の重みを更新する。例えば、関数重み更新部203は、評価指標として算出されたKPIの改善に寄与する要素損失関数の重みを大きくし、KPIの改善に寄与しない要素損失関数の重みを小さくする。KPIの改善とは、例えば、算出された評価指標と目標値との誤差が小さくなることを意味する。
【0043】
関数重み更新部203は、算出された評価指標が所定の条件を満たしていない場合、又は、最大計算時間に達していない場合、重みの更新結果を中間情報213として統合損失関数更新部204に出力する。関数重み更新部203は、算出された評価指標が所定の条件を満たした場合、又は、最大計算時間に達した場合、最終的な統合損失関数のみを含む統合損失関数情報210を需要予測部201に出力する。
【0044】
統合損失関数更新部204は、中間情報213に基づいて、評価指標への寄与が小さい要素損失関数を統合損失関数から削除する。
【0045】
結果生成部205は、需要予測値及び最終的な統合損失関数を表示するための予測結果情報214を生成し、表示部122に出力する。
【0046】
表示部122は、予測部121から出力された予測結果情報214を提示する。
【0047】
なお、計算機100が有する各機能部については、複数の機能部を一つの機能部にまとめてもよいし、一つの機能部を機能毎に複数の機能部に分けてもよい。
【0048】
図3は、実施例1の需要実績管理情報130のデータ構造の一例を示す図である。
【0049】
需要実績管理情報130は、アイテムID301、出荷日302、及び出荷量303から構成されるエントリを格納する。一つのエントリが一つの出荷履歴に対応する。
図3に示す需要実績管理情報130には、計測期間が一日である出荷履歴が格納される。
【0050】
アイテムID301は、アイテムの識別情報を格納するフィールドである。出荷日302は、アイテムの出荷日を格納するフィールドである。出荷量303は、アイテムの出荷量を格納するフィールドである。
【0051】
なお、需要予測情報211は、需要実績管理情報130のエントリと同一のデータ構造である。
【0052】
図4は、実施例1の要素損失関数情報131のデータ構造の一例を示す図である。
【0053】
要素損失関数情報131は、ID401、名称402、損失関数403、及び説明404から構成されるエントリを格納する。一つのエントリが一つの要素損失関数に対応する。
【0054】
ID401は、エントリの識別情報を格納するフィールドである。統合損失関数の文字iはID401の値である。名称402は、要素損失関数の名称を格納する。損失関数403は、要素損失関数を表す数式を格納するフィールドである。説明404は、要素損失関数の説明を格納するフィールドである。説明404には要素損失関数を説明する文書が格納される。
【0055】
図5は、実施例1の統合損失関数情報210のデータ構造の一例を示す図である。
【0056】
統合損失関数情報210は、パターンID501及び重み502から構成されるエントリを含む。一つのエントリが一つの重みのパターン、すなわち、統合損失関数に対応する。
【0057】
パターンID501は、重みのパターンの識別情報を格納するフィールドである。重み502は、要素損失関数情報131に格納される各要素損失関数の重みを格納するフィールドである。
【0058】
図6は、実施例1の評価指標情報212のデータ構造の一例を示す図である。
【0059】
評価指標情報212は、パターンID601及び評価指標から構成されるエントリを含む。一つのエントリが一つの重みパターンの統合損失関数から算出された評価指標に対応する。
【0060】
パターンID601はパターンID501と同一のフィールドである。評価指標602は、評価指標算出部202によって算出された評価指標を格納するフィールドである。本実施例では、アイテムの欠品率が評価指標として算出されるものとする。なお、評価指標602には、評価指標の名称等が含まれてもよい。
【0061】
図7は、実施例1の統合損失関数生成部200が実行する処理の一例を説明するフローチャートである。
【0062】
統合損失関数生成部200は、要素損失関数情報131から要素損失関数を取得する(ステップS101)。
【0063】
統合損失関数生成部200は、各要素損失関数の重み、すなわち、重みパターンを決定することによって、初期統合損失関数を生成する(ステップS102)。例えば、統合損失関数生成部200は、一つの要素損失関数の重みを「1」に設定し、他のすべての要素損失関数の重みを「0」に設定する。なお、本発明は、重みパターンの決定方法に限定されない。
【0064】
このとき、統合損失関数生成部200は、統合損失関数情報210にエントリを追加し、追加したエントリのパターンID501に識別情報を設定し、また、重み502に決定された重みを設定する。
【0065】
統合損失関数生成部200は、需要予測部201に、初期統合損失関数を出力する(ステップS103)。
【0066】
具体的には、統合損失関数生成部200は、要素損失関数情報131から取得した要素損失関数の定義式とともに統合損失関数情報210を需要予測部201に出力する。
【0067】
図8は、実施例1の需要予測部201が実行する処理の一例を説明するフローチャートである。
【0068】
需要予測部201は、需要実績管理情報130から対象アイテムの出荷履歴のデータセットを取得し(ステップS201)、また、予測モデルを取得する(ステップS202)。対象アイテム及び取得する出荷履歴の範囲はあらかじめ指定されているものとする。
【0069】
需要予測部201は、統合損失関数情報210に基づいて統合損失関数を設定する(ステップS203)。
【0070】
具体的には、需要予測部201は、統合損失関数情報210に登録されている最新の重みパターンを取得し、当該重みパターンに基づいて統合損失関数を設定する。
【0071】
需要予測部201は、統合損失関数及び出荷履歴を用いて、予測モデルを学習する(ステップS204)。学習処理は公知の技術を用いればよいため詳細な説明は省略する。
【0072】
需要予測部201は、予測モデル及び出荷履歴を用いて、対象アイテムの需要予測値を算出し(ステップS205)、需要予測値を出力する(ステップS206)。
【0073】
具体的には、統合損失関数生成部200又は統合損失関数更新部204から統合損失関数情報210を受信した場合、需要予測部201は、需要予測情報211を評価指標算出部202に出力する。また、関数重み更新部203から統合損失関数情報210を受信した場合、需要予測部201は、当該統合損失関数情報210及び需要予測情報211を結果生成部205に出力する。なお、統合損失関数情報210には、統合損失関数そのものではなく、重みパターンのIDが含まれる。
【0074】
なお、ステップS204とステップS205で使用する出荷履歴は同一のデータセットでもよいし、異なるデータセットでもよい。
【0075】
図9は、実施例1の評価指標算出部202が実行する処理の一例を説明するフローチャートである。
【0076】
評価指標算出部202は、需要予測値を取得し(ステップS301)、需要予測値及びアルゴリズムに基づいて、評価指標を算出する(ステップS302)。なお、評価指標算出部202は、評価指標を算出するために出荷履歴に含まれる需要量を取得してもよい。
【0077】
評価指標算出部202は、算出した評価指標を関数重み更新部203に出力する(ステップS303)。
【0078】
具体的には、評価指標算出部202は、評価指標情報212を関数重み更新部203に出力する。
【0079】
本実施例では、一つの評価指標のみが算出されているが、複数の評価指標が算出されてもよい。
【0080】
図10は、実施例1の関数重み更新部203が実行する処理の一例を説明するフローチャートである。
【0081】
関数重み更新部203は、評価指標を取得し(ステップS401)、また、評価指標目標情報220を取得する(ステップS402)。
【0082】
なお、複数の評価指標が算出されている場合、関数重み更新部203は、複数の評価指標を統合して一つの評価指標を算出してもよい。例えば、線形回帰モデルを用いて複数の評価指標を統合することが考えられる。
【0083】
関数重み更新部203は、評価指標に関する条件を満たすか否かを判定する(ステップS403)。
【0084】
例えば、最新の統合損失関数に対応する評価指標が閾値より小さいか否かが判定される。また、複数の評価指標を用いて、評価指標の変化率が閾値より小さいか否かが判定される。本発明は、評価指標に関する条件の内容に限定されない。
【0085】
評価指標に関する条件を満たすと判定された場合、関数重み更新部203はステップS407に進む。
【0086】
評価指標に関する条件を満たさないと判定された場合、関数重み更新部203は、最大計算時間に達したか否かを判定する(ステップS404)。
【0087】
例えば、関数重み更新部203は、重みの更新回数が閾値より大きいか否かを判定する。
【0088】
最大計算時間に達したと判定された場合、関数重み更新部203はステップS407に進む。
【0089】
最大計算時間に達していないと判定された場合、関数重み更新部203は、統合損失関数を構成する要素損失関数の重みを更新する(ステップS405)。
【0090】
例えば、評価指標目標情報220に目標値が含まれている場合、関数重み更新部203は、最新の評価指標及び目標値の誤差が小さくなるように、重みを更新する。具体的には、関数重み更新部203は、評価指標に寄与しない要素損失関数の重みを小さくし、評価指標に寄与する要素損失関数の重みを大きくする。なお、本発明は、重みの更新方法に限定されない。
【0091】
関数重み更新部203は、重みの更新結果を含む中間情報213を統合損失関数更新部204に出力する(ステップS406)。
【0092】
ステップS407では、関数重み更新部203は、最終統合損失関数を需要予測部201に出力する(ステップS407)。
【0093】
具体的には、関数重み更新部203は、最新の重みパターンのみを統合損失関数情報210に残し、最終的な結果であることを示すフラグとともに、当該統合損失関数情報210を需要予測部201に出力する。なお、関数重み更新部203は、評価指標に基づいて最終統合損失関数を決定してもよい。
【0094】
図11は、実施例1の統合損失関数更新部204が実行する処理の一例を説明するフローチャートである。
【0095】
統合損失関数更新部204は、中間情報213を取得し(ステップS501)、重みが閾値より小さい重みを「0」に更新する(ステップS502)。
【0096】
例えば、0.01より重みが小さい場合、統合損失関数更新部204は、当該重みを「0」に更新する。当該操作は、統合損失関数の値への寄与が小さい要素損失関数を削除することに相当する。
【0097】
統合損失関数更新部204は、更新された統合損失関数を需要予測部201に出力する(ステップS503)。
【0098】
具体的には、統合損失関数更新部204は、統合損失関数情報210にエントリを追加し、パターンID501に識別情報を設定し、重み502に更新結果を設定する。
【0099】
図12A及び
図12Bは、実施例1の表示部122が表示する画面の一例を示す図である。
【0100】
画面1200は、予測表示欄1201及び統合損失関数表示欄1202を含む。
【0101】
予測表示欄1201には、対象アイテム、需要予測値、及び出荷日等が表示される。統合損失関数表示欄1202には、統合損失関数を構成する要素損失関数及びその重みが棒グラフとして表示される。棒グラフの大きさが重みの大きさに対応する。また、統合損失関数表示欄1202には、重みが最大の要素損失関数に基づく予測結果の説明文(コンテキスト)が表示される。ユーザは、統合損失関数表示欄1202を参照することによって、統合損失関数における各要素損失関数の寄与の大きさを確認できる。
【0102】
棒グラフをクリックした場合、
図12Bの画面1210が表示される。画面1210には、クリックした棒グラフに対応する要素損失関数を用いて生成された予測モデルの予測結果の時系列と、要素損失関数に対応する単位での需要の履歴の時系列が表示される。横軸は時間、縦軸は出荷量に対応する。ユーザは、画面1210を参照することによって、要素損失関数の有効性及び予測精度を確認できる。
【0103】
以上で説明したように、実施例1の需要予測システムは、複数の要素損失関数を用いて、予測モデルの学習に適した統合損失関数を自動的に設定できる。また、需要予測システムは、統合損失関数を用いて精度が高い予測モデルを生成できる。また、需要予測システムは、予測モデルの予測の根拠の一つとして、統合損失関数における要素損失関数の寄与の大きさを提示できる。
【0104】
なお、本発明は、アイテムの需要の予測するモデルに限定されない。多種多様のモデルに同様の手法及び構成を適用することができる。
入力部120は、対象アイテムの需要予測の出力要求を受け付ける。出力要求には、対象アイテムの識別情報が含まれる。また、入力部120は、使用する要素損失関数及び重みを指定するための画面を表示する。
画面1400は、選択欄1401及び設定ボタン1402を含む。選択欄1401は、要素損失関数及び重みを指定するための欄である。選択欄1401は、採用フラグ1411、名称1412、損失関数1413、説明1414、及び重み1415から構成されるエントリを格納する。一つのエントリが一つの要素損失関数に対応する。
採用フラグ1411は、使用する要素損失関数を指定するためのフィールドである。重み1415は、重みを入力する欄である。ユーザは、使用する要素損失関数の採用フラグ1411にチェックを追加し、重み1415に値を入力する。
入力部120は、需要実績管理情報130から、任意の処理期間の対象アイテムの出荷履歴群から構成されるデータセットを読み出し、予測部121に出力する。また、入力部120は、ユーザによって指定された要素損失関数及び重みを予測部121に出力する。
実施例2の統合損失関数生成部200は、ユーザが指定した要素損失関数及び重みを用いて統合損失関数を生成する。実施例2では、統合損失関数を構成する要素損失関数の重みは更新されない。
実施例2の需要予測部201は、実施例1の需要予測部201と同一である。ただし、実施例2の需要予測部201は、統合損失関数情報210及び需要予測情報211を結果生成部205に出力する。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD-ROM、DVD-ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD-R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Python、Java(登録商標)等の広範囲のプログラム又はスクリプト言語で実装できる。
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はCD-RW、CD-R等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。