IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立ソリューションズ東日本の特許一覧

<>
  • 特許-在庫管理装置および在庫管理方法 図1
  • 特許-在庫管理装置および在庫管理方法 図2A
  • 特許-在庫管理装置および在庫管理方法 図2B
  • 特許-在庫管理装置および在庫管理方法 図2C
  • 特許-在庫管理装置および在庫管理方法 図3
  • 特許-在庫管理装置および在庫管理方法 図4
  • 特許-在庫管理装置および在庫管理方法 図5
  • 特許-在庫管理装置および在庫管理方法 図6
  • 特許-在庫管理装置および在庫管理方法 図7
  • 特許-在庫管理装置および在庫管理方法 図8
  • 特許-在庫管理装置および在庫管理方法 図9
  • 特許-在庫管理装置および在庫管理方法 図10
  • 特許-在庫管理装置および在庫管理方法 図11
  • 特許-在庫管理装置および在庫管理方法 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-06-28
(45)【発行日】2022-07-06
(54)【発明の名称】在庫管理装置および在庫管理方法
(51)【国際特許分類】
   G06Q 10/08 20120101AFI20220629BHJP
   G06N 3/04 20060101ALI20220629BHJP
   G06N 3/08 20060101ALI20220629BHJP
【FI】
G06Q10/08 330
G06N3/04
G06N3/08 140
【請求項の数】 4
(21)【出願番号】P 2018105465
(22)【出願日】2018-05-31
(65)【公開番号】P2019211870
(43)【公開日】2019-12-12
【審査請求日】2021-03-22
(73)【特許権者】
【識別番号】000233538
【氏名又は名称】株式会社日立ソリューションズ東日本
(74)【代理人】
【識別番号】110002572
【氏名又は名称】特許業務法人平木国際特許事務所
(72)【発明者】
【氏名】宗形 聡
(72)【発明者】
【氏名】清藤 駿成
【審査官】庄司 琴美
(56)【参考文献】
【文献】特開2015-185007(JP,A)
【文献】特開2018-005448(JP,A)
【文献】特開2015-143147(JP,A)
【文献】特開2018-005420(JP,A)
【文献】特開2015-005007(JP,A)
【文献】米国特許第08725594(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00 - 99/00
G06N 3/04
G06N 3/08
(57)【特許請求の範囲】
【請求項1】
入力された品目の生産・販売・在庫(PSI)のデータを用いて当該品目が問題在庫か否かを診断し、かつ、前記品目が問題在庫と診断された場合に、診断結果に所定の寄与度以上に寄与した期間のPSIデータの推移状況を診断の根拠あるいは問題在庫の要因として出力する在庫管理装置であって、
前記PSIデータに基づく需給バランスの変化を、畳み込みニューラルネットワークモデルを用いて特徴量として、前記特徴量に基づいて前記品目が問題在庫であるか否かを表す情報を出力するよう学習させるデータ学習部と、
学習済みの前記畳み込みニューラルネットワークモデルに対し、診断対象品目のPSIデータを入力して当該品目に対する在庫診断を実行する在庫診断部と、を有することを特徴とする在庫管理装置。
【請求項2】
前記在庫診断部による前記診断の結果が問題在庫である場合に、学習済み畳み込みニューラルネットワークモデルの出力層から入力層の後に配置される畳み込み層まで逆伝播することにより、フィルタ幅の期間で逐次PSIデータに畳み込んだフィルタまたはそこから得られる特徴マップに対する診断結果への寄与度を求め、所定の寄与度以上の畳み込み領域にあたる期間のPSIデータを診断の根拠あるいは問題在庫の要因として推定する要因推定部を有することを特徴とする請求項1に記載の在庫管理装置。
【請求項3】
入力された品目の生産・販売・在庫(PSI)のデータを用いて当該品目が問題在庫か否かを診断し、かつ、前記品目が問題在庫と診断された場合に、診断結果に所定の寄与度以上に寄与した期間のPSIデータの推移状況を診断の根拠あるいは問題在庫の要因として出力するコンピュータを用いた在庫管理方法であって、
前記PSIデータに基づく需給バランスの変化を、畳み込みニューラルネットワークモデルを用いて特徴量として、前記特徴量に基づいて前記品目が問題在庫であるか否かを表す情報を出力するよう学習させるデータ学習ステップと、
学習済みの前記畳み込みニューラルネットワークモデルに対し、診断対象品目のPSIデータを入力して当該品目に対する在庫診断を実行する在庫診断ステップと、を有することを特徴とする在庫管理方法。
【請求項4】
前記在庫診断ステップによる前記診断の結果が問題在庫である場合に、学習済み畳み込みニューラルネットワークモデルの出力層から入力層の後に配置される畳み込み層まで逆伝播することにより、フィルタ幅の期間で逐次PSIデータに畳み込んだフィルタまたはそこから得られる特徴マップに対する診断結果への寄与度を求め、所定の寄与度以上の畳み込み領域にあたる期間のPSIデータを診断根拠あるいは問題の要因として推定する要因推定ステップを有することを特徴とする請求項3に記載の在庫管理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、在庫管理技術に関し、特に、畳み込みニューラルネットワークを用いて品目の在庫を自動診断する在庫管理技術に関する。
【背景技術】
【0002】
製造、物流、小売業では膨大な品数の商品に対して在庫管理が行われている。在庫管理においては、企業が過剰在庫や欠品など在庫の問題を早期に検知し、生産量の調整や販売計画の見直しなどの需給調整をすることが重要である。
在庫管理の現場では、一人の担当者が緊急オーダや納期変更、生産遅延などの日々の例外事象に対処しつつ在庫管理する品目数は数百~数千にもおよぶ。そのため、対象となる商品の一定期間における在庫推移をグラフ表示して担当者がひと目で在庫の増減傾向や滞留状況を把握できるようにしたり、在庫回転率や在庫日数、在庫移動平均や安全在庫水準など複数の指標を提示して客観的な在庫評価をできるようにしたりすることで、問題の早期検知を支援する技術が用いられている(例えば、特許文献1、2参照)。
【0003】
こうした在庫推移グラフや指標などの情報を用いた検知は、初期診断として活用されており、実際の現場では、担当者は検知された品目の生産・販売・在庫(PSI:Production、 Sales and Inventory)の詳細な推移を確認して、例えば「この期間の販売が減少傾向であったにもかかわらず多量の生産をした結果在庫が過剰傾向になっている」などの状況を読み取り、問題在庫か否かの最終的な診断をする。
【0004】
特許文献1は、出願人らの発明を開示するものであり、多数の品目の在庫推移グラフをサムネイル表示する技術および在庫回転率や交差比率でグラフをソートする技術、品目ごとに詳細なPSIの詳細な推移をグラフ表示する技術などを開示する。
特許文献2は、出願人らの発明を開示するものであり、PSIデータから理想的な安全在庫水準と現実の安全在庫水準をそれぞれ計算し、グラフ上に表示して乖離をひと目で把握できるようにすることで、安全在庫の適正化を支援する技術を開示する。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2009-187449号公報
【文献】特許第5457885号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、PSIの詳細な推移に基づく品目の在庫診断や問題解消のための需給調整は専門性が高い業務であるため、担当者の経験やノウハウの有無により診断結果や調整内容にばらつきが生じて問題の見逃しや解消の遅延が発生したり、新たな担当者の育成に向けたノウハウの伝承が困難になったりするなどの課題をメーカはじめ多くの企業が抱えている。
【0007】
本発明は、過去に実施した担当者の経験やノウハウを学習した畳み込みニューラルネットワークを用いて、品目の在庫診断や問題在庫の要因となるPSIの推移状況を容易に把握することができる技術を提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明の一観点によれば、入力された品目の生産・販売・在庫(PSI)のデータを用いて当該品目が問題在庫か否かを診断し、かつ、前記品目が問題在庫と診断された場合に、診断結果に所定の寄与度以上に寄与した期間のPSIデータの推移状況を診断の根拠あるいは問題在庫の要因として出力する在庫管理装置であって、前記PSIデータに基づく需給バランスの変化を、畳み込みニューラルネットワークモデルを用いて特徴量として学習させるデータ学習部と、学習済みの前記畳み込みニューラルネットワークモデルに対し、診断対象品目のPSIデータを入力して当該品目に対する在庫診断を実行する在庫診断部と、を有することを特徴とする在庫管理装置が提供される。
【0009】
前記在庫診断部による前記診断の結果が問題在庫である場合に、学習済み畳み込みニューラルネットワークモデルの出力層から入力層の後に配置される畳み込み層まで逆伝播することにより、フィルタ幅の期間で逐次PSIデータに畳み込んだフィルタまたはそこから得られる特徴マップに対する診断結果への寄与度を求め、所定の寄与度以上の畳み込み領域にあたる期間のPSIデータを診断の根拠あるいは問題在庫の要因として推定する要因推定部を有することが好ましい。
【0010】
さらに、診断対象となる品目に対する品目別・日別のPSIデータ、畳み込みニューラルネットワークモデルの学習に用いる教師データであって、過去のある時点で診断された複数品目の品目別・日別のPSIデータと診断結果データのペアから構成されるデータ、および、少なくとも入力層の後に構築される畳み込み層に関するフィルタ幅とフィルタ数を定めたモデル設定データ、モデル学習に関する項目を定めた学習設定データ、在庫診断に関する項目を定めた診断設定データを読み込んでメモリ上に展開するデータ入力部と、前記モデル設定データに従い、品目のPSIデータが入力される入力層と、前記入力層の後に畳み込み層が配置された少なくとも1つ以上の層を持つ隠れ層と、品目の診断結果を出力する出力層から構成された畳み込みニューラルネットワークモデル構築するモデル構築部と、を有し、前記データ学習部は、前記畳み込みニューラルネットワークモデルのパラメータが一様乱数や正規乱数、または、ゼロを含む定数値で初期化され、前記教師データから任意に取得した複数品目のPSIデータを前記モデル構築部に入力して在庫診断し、前記モデル構築部から出力された診断結果と前記教師データにある前記品目群の診断結果との誤差が小さくなるように、勾配を用いてパラメータの値を逐次更新することが好ましい。
【0011】
さらに、診断対象品目に対する前記診断結果、要因として推定された期間、および当該期間のPSI推移状況を表現する文字列を、要因推定期間が事前に指定された採択期間に含まれる場合に、前記品目群の在庫サムネイル一覧あるいは個別品目のPSI詳細グラフ上に矩形やヒートマップ、吹き出しなどの形状で画面表示する画面表示部と、診断対象品目に対する前記診断結果を外部ファイルやデータベースに出力するデータ出力部と、を有することが好ましい。
【0012】
本発明の他の観点によれば、入力された品目の生産・販売・在庫(PSI)のデータを用いて当該品目が問題在庫か否かを診断し、かつ、前記品目が問題在庫と診断された場合に、診断結果に所定の寄与度以上に寄与した期間のPSIデータの推移状況を診断の根拠あるいは問題在庫の要因として出力するコンピュータを用いた在庫管理方法であって、前記PSIデータに基づく需給バランスの変化を、畳み込みニューラルネットワークモデルを用いて特徴量として学習させるデータ学習ステップと、学習済みの前記畳み込みニューラルネットワークモデルに対し、診断対象品目のPSIデータを入力して当該品目に対する在庫診断を実行する在庫診断ステップと、を有することを特徴とする在庫管理方法が提供される。
【0013】
前記在庫診断ステップによる前記診断の結果が問題在庫である場合に、学習済み畳み込みニューラルネットワークモデルの出力層から入力層の後に配置される畳み込み層まで逆伝播することにより、フィルタ幅の期間で逐次PSIデータに畳み込んだフィルタまたはそこから得られる特徴マップに対する診断結果への寄与度を求め、所定の寄与度以上の畳み込み領域にあたる期間のPSIデータを診断根拠あるいは問題の要因として推定する要因推定ステップを有することが好ましい。
【発明の効果】
【0014】
本発明によれば、在庫管理担当者は、過去に実施した担当者の経験やノウハウを学習した畳み込みニューラルネットワークを用いて、品目の在庫診断や問題在庫の要因となるPSIの推移状況を容易に把握できる。その結果、問題在庫の見逃しや問題の解消遅延を低減させることができ、経験の少ない担当者であっても熟練者のノウハウを活用した在庫診断が可能になる。
【図面の簡単な説明】
【0015】
図1】本発明の一実施の形態による在庫管理装置の一構成例を示す機能ブロック図である。
図2A】本実施の形態による問題在庫とその要因を提示する在庫管理技術の概要を示すイメージ図である。
図2B】本実施の形態による問題在庫とその要因を提示する在庫管理技術の概要を示すイメージ図である。
図2C】本実施の形態による問題在庫とその要因を提示する在庫管理技術の概要を示すイメージ図である。
図3】モデル構築の流れを示すフローチャート図である。
図4】モデル学習部による学習処理の概略を示すフローチャート図である。
図5】順伝播の詳細な処理フローを示す図である。
図6】逆伝播の詳細な処理フローを示す図である。
図7】要因推定部の処理の流れの一例を示すフローチャート図である。
図8】従来技術における診断対象品目の在庫サムネイル一覧画面やPSI詳細画面での表示例を示す図である。
図9】従来技術における診断対象品目の在庫サムネイル一覧画面やPSI詳細画面での表示例を示す図である。
図10】CNNモデルによる在庫診断結果および要因とされる最大寄与領域を在庫サムネイル一覧画面上に可視化した例である。
図11】ある対象品目の診断結果および最大寄与領域による要因をPSI詳細画面上に表示した例である。
図12】ある対象品目の診断結果およびヒートマップによる要因をPSI詳細画面上で表示した例を示す図である。
【発明を実施するための形態】
【0016】
そこで、既に担当者によって在庫診断された品目のPSIデータと当該品目に対する在庫診断結果から、畳み込みニューラルネットワーク(CNN :Convolutional Neural Network)を用いて問題在庫と関連するある期間のPSIの推移状況を学習することによって、診断対象となる品目のPSIデータを当該モデルの入力として与えた際に、当該品目が問題在庫かどうかの自動診断と、問題の要因と推定される期間のPSIの状況を出力する在庫管理技術を提案する。
【0017】
図1は、本発明の一実施の形態による在庫管理装置の一構成例を示す機能ブロック図である。図2Aから図2Cまでは、本実施の形態による問題在庫とその要因を提示する在庫管理技術の概要を示すイメージ図である。まず、大まかなイメージについて図2Aから図2Cまでを参照しながら説明する。
【0018】
(構成と処理の概略)
図2Aに示すように、本実施の形態による在庫管理技術は、まず過去の在庫診断データ15をCNNモデル17に入力して問題在庫の診断と相関するPSIデータの特徴を学習し、次にある品目のPSIデータ11を学習済みCNNモデル17に入力として与えたときに、その出力21として当該品目の在庫診断結果を得ることができる技術である。尚、例えば、在庫の診断結果D1~D3までは、表示画面に表示させた品目毎の在庫状況を示すグラフであり、横軸は時間、縦軸は在庫量である。各グラフ表示には、品目番号と変動充足率が記載されている。
【0019】
このようなグラフ表示に基づいて、吹き出しP1,P2,P3に示すように、在庫の診断結果D1~D3に対応する問題在庫の要因を表示させるようにしても良い。
例えば、グラフ表示D1に関しては、要因P1「販売量は安定しているのに対し,直近3ヶ月の生産量が多くなっているため,過剰在庫になっている。」との表示をさせても良い。
また、グラフ表示D2に関しては、要因P2「半年前からの販売増加傾向に備えて生産量を増加させたが,ここ2ヶ月の販売が減少しているため,過剰在庫になっている。」との表示をさせても良い。
さらに、グラフ表示D3に関しては、要因P3「1年前からの販売傾向に対し生産量が不足しており,欠品リスクが増大。」を表示させても良い。操作者の判断に基づいて要因を操作者が入力しても良い。
【0020】
図2Bは、CNNモデル17の基本的な処理の概要を示す図である。担当者の在庫診断によって問題在庫と診断された品目としては、D11,D12,D13のような例が挙げられる。領域R1、R2、R3は担当者が診断時に着目した需給バランスの変化を示しており、担当者は診断の過程で、R1では「安定需要下で充分な在庫を保持している中、高頻度生産を続けたため、在庫が過剰になっている」とする診断根拠を見出し、R2では「需要を賄える在庫を保持している状況で生産を継続したため、在庫が過剰になっている」とする診断根拠を見出し、R3では「販売の増加傾向に対して生産が追随できず、在庫がなくなり欠品が発生」とする診断根拠を見出している。しかし,R1、R2、R3は担当者のノウハウとして暗黙知化されているものであり、一般的に診断履歴として記録されることは少ない。そこで、CNNモデル17は、過去の在庫診断データ15として品目のPSIデータと当該品目が問題在庫か否かの診断結果データのセットが与えられたときに、事前に指定した期間長での畳み込み処理を通して、問題在庫の診断と相関するPSIデータの特徴を学習する。これにより,CNNモデル17がR1、R2、R3に示すような、ノウハウ化された需給バランス変化の判断を学習していくことが期待される。
【0021】
診断履歴データ15から問題在庫と関連するPSIデータの特徴を学習したCNNモデル17を構築すれば、診断対象となる品目のPSIデータ11を当該モデルに入力し、事前に指定した期間長による畳み込み処理や全結合処理などを通して、問題在庫と関連する入力データの特徴の強弱や問題在庫に分類される確率を求め、出力31において当該品目に対する「問題あり」、「問題なし」の診断を行うことができる。
【0022】
図2Cは、本実施の形態によるCNNモデル17における処理の流れの概要を示す図であり、図2Bに示す構成をより詳細に示す図である。
図2Cに示すように、まず、PSI時系列データ11を入力とし、これを標準化(正規化)する(17-1)。次いで、Conv処理(畳み込み処理)17-2を行う。Conv処理17-2は、データ11a,11b,11c,…のように事前に指定した期間長の畳み込み領域を時間方向に徐々にずらしながら当該領域のPSIデータとフィルタの相関を計算する。通常のConv処理17-2ではフィルタA,フィルタB,…のように複数のフィルタを用いたフィルタリング処理を実行し、PSIデータから様々な特徴を学習する。図2Cでは、各領域のフィルタAに対する反応値33と、フィルタBに対する反応値33と、を求めている。次いで、Tanh処理17-3を行うことで、各反応値を-1~+1までの値に変換する。Tanhのような反応値を変換する関数を活性化関数と呼ぶ。次いで、Dropout処理17-4を行う。
【0023】
次いで、Affine処理17-5を行う。Affine処理17-5は、フィルタA、Bなどの各フィルタの反応値35を1つに集約(37)する処理である。
次いで、Tanh処理17-6を行うことで、Affine処理17-5の反応値を-1~+1までの値に変換する。
次いで、Affine処理17-7を行う。Affine処理17-7は、Tanh処理17-6で1つに集約された各フィルタの反応値39を問題あり・なしの各分類ラベルとの関連度に集約し、次いで、集約した関連度から問題ありラベルに分類される確率と問題なしラベルに分類される確率を求める(41)Softmax処理17-8を行う。
尚、Conv処理やAffine処理の前にDropout処理が挿入されていても良い。Dropout処理は、未知の入力データに対するCNNモデルの分類性能を高めるため、学習時にConv層やAffine層の複数ユニットをランダムに選択し、無効化するものである。図2Cでは、1つ目のAffine処理の前にDropout処理17-4が挿入されている。
【0024】
以上の処理により、品目のPSIデータに対し分類確率に基づくラベル付け処理17-9を実行することができる。ラベルとしては「問題あり」と「問題なし」の2値が最も単純であるが、例えば「問題あり」を「過剰安全」、「在庫滞留」、「増加傾向」、「減少傾向」などに細分化した多値分類としても良い。
教師データ({PSI時系列,診断結果ラベル}の集合から構成されるデータセット)が与えられれば、PSI時系列に対してCNNモデルの処理17-1から処理17-9までを実行し、モデル出力としてのラベルと実際のラベルとの誤差を求めることができる。従って、誤差逆伝播法を用いれば上記誤差を小さくするようにConv層のフィルタ値やAffine層のパラメータ値を更新することができる。このようなパラメータ更新をCNNモデルの学習と呼ぶ。
【0025】
学習済みCNNモデルを用いた診断対象品目の在庫診断結果に対する要因抽出は、以下のように行う。
すなわち、学習済みCNNモデルで問題在庫と診断された品目のPSIデータに対し、診断に寄与する太枠で囲まれた領域をフィルタから特定する。Softmax処理(その前のAffine処理でも良い)の出力値の中で最大のもの以外を0に設定してConv層まで逆伝播することで、該当する層の出力値の増分に最も寄与するフィルタとユニットを特定する。
【0026】
(詳細な構成と処理)
以下において、より詳細かつ具体的な処理について説明する。
図1は、本実施の形態による在庫管理システムの一構成例を示す機能ブロック図である。
例えば数千種類の商品を見込み生産している消費財メーカの在庫管理担当者が、図1に示す在庫管理装置1を用いて担当品目の在庫診断を実行する例について説明する。尚、ここでは、在庫診断の実施時点は、例えば、2018年4月1日とする。
【0027】
在庫管理担当者は、データ入力部1-1を用いて、自身が担当する診断対象品目のPSIデータT201、畳み込みニューラルネットワーク(CNN)モデルの学習に用いる教師データT202、モデルのネットワーク構成を定めたCNNモデル構成設定データT203、モデル学習の設定項目を記載したCNNモデル学習設定データT204、在庫診断の設定項目を記載した在庫診断設定データT205を、それぞれ在庫管理装置1の図示しないメモリ上に読み込む。在庫管理装置1は、例えば、情報処理装置であり、例えば、サーバ、PC、PDAなどである。各データを格納するデータベースは、例えばネットワーク経由で在庫管理装置1と関連付けされている。
【0028】
まず、診断対象品目のPSIデータT201がメモリ上で保持される形式の例を表1に示す。表1には、品目コード、年月日、生産数、販売数、在庫数が示されている。
【0029】
【表1】
【0030】
表1では、例えば、在庫管理担当者が管理する100品目について直近1年間(2017年4月1日~2018年3月31日)の日別のPSI実績値が示されている。
【0031】
次に、CNNモデルの学習に用いる教師データT202がメモリ上で保持される形式の例を表2に示す。
【0032】
【表2】
【0033】
本実施の形態による教師データとは、過去に在庫診断の対象となった品目のPSIデータと、当該品目の診断結果とから構成される。表2の例では、例えば、過去に在庫診断された1,000品目に対する1年間(2016年4月1日~2017年3月31日)の日別のPSI実績値とその診断結果種別とが格納されている。本実施の形態では、1年間のPSIデータの推移状況と診断結果の関連をCNNモデルで学習するため、各品目の日々の診断結果種別には同じ値が格納されている。
【0034】
尚、診断結果種別は、メモリ上では問題なしを“0”、過剰在庫を“1”、過少在庫を“2”に対応させた数値としている。診断結果の種別を、例えば「問題なし」、「過剰」、「急増」、「急減」、「滞留」のようにより細分化してそれぞれに対応する数値を割当てることもできる。また、表1および表2のPSIデータは数量(個数や梱数)としているが、金額など日々の実績を記録した数値であれば、数量と同様に用いることができる。
【0035】
次に、CNNモデルのネットワークアーキテクチャを示すCNNモデル構成設定データT203がメモリ上で保持される形式の例を表3に示す。
【0036】
【表3】
【0037】
表3の例では、層番号ごとに層の種類が定められており、さらに層の種類ごとに設定項目と設定値とが格納されている。本実施の形態では、1層目には入力層が必須で指定される。入力層では、CNNモデルの入力値となるPSIデータの形状について設定する。本実施の形態では、PSIの1年分の日次データを対象に、ある期間の販売傾向に対する生産と在庫推移の関係をフィルタの畳み込み処理で考慮しながら診断結果との関連を学習する。そのため、データ長を365日、チャネル数を3としている。なお、説明の都合上、閏年の2/29のデータは考慮しない。また、品目ごとのデータスケールを一致させるため、事前変換としてデータを標準化する設定としている。
【0038】
2層目には畳み込み層が必須で指定される。この層では、診断結果と相関するPSIデータの特徴量を抽出するために必要な項目を設定する。フィルタ幅とは、畳み込み処理でPSIデータと診断結果との相関を考慮する期間である。フィルタ数とは、PSIデータに畳み込むフィルタの数であり、各フィルタの値はCNNモデルの学習を通して抽出されるPSIデータの特徴量となる。ストライドとは、畳み込み処理で各フィルタを過去から未来に向かって移動させる日数である。W初期化とは、畳み込み処理の主要なパラメータである(ファイル幅×チャネル数)×フィルタ数の行列Wの各要素を初期化する方法である。ここで、n×m行列とはn個の行とm個の列を持つ行列を意味する。
【0039】
初期化とは、畳み込み処理のバイアスパラメータである次元がフィルタ数に等しいベクトルbの各要素を初期化する方法である。活性化関数とは、畳み込み層の入力に対して行列演算をした後の出力を非線形変換する関数である。畳み込み層の活性化関数の値は特徴マップとも呼ばれる。ドロップアウトとは、CNNモデルの汎化性能を向上させるため、学習時に当該層を構成するユニットの一部をランダムに不活性化させる割合である。
3層目以降は、畳み込み層やプーリング層、全結合層などを任意に指定することができる。
【0040】
表3では、2つの全結合層が指定されている。CNNモデルにおける全結合層は、畳み込み層で抽出された特徴量に基づきPSIデータを診断結果種別に分類する分類器としての役割を果たす。3層目の全結合層について、入力次元とは前層の出力データに基づき設定される次元である。出力次元とは、当該層で実行される行列演算の出力の次元である。W初期化とは、全結合層の主要なパラメータである入力次元×出力次元の行列Wの各要素を初期化する方法である。b初期化とは、当該層のバイアスパラメータである出力次元ベクトルbの要素を初期化する方法である。活性化関数やドロップアウトは畳み込み層と同様である。4層目の全結合層の設定項目も3層目と同様である。
【0041】
最終層には出力層が必須で指定される。この層では、PSIデータに対して畳み込み処理で抽出された特徴量から最終的な在庫診断結果を得るためのCNNモデルの出力に関する項目が設定される。当該層の次元とは診断結果種別の数のことであり、前層(全結合層)の出力次元と一致させる必要がある。出力値計算とは入力したPSIデータがどの診断結果種別に分類されるのが妥当であるかを計算する手法である。
【0042】
なお、本実施の形態ではCNNモデルを構成するための設定項目を上記に限定しているが、モデルの学習速度や汎化性能を高めるために各層に追加の設定項目を設けてもよい。例えば、学習のたびにパラメータの値が変化することによって特徴マップの分布が大きく変動することを避けるため、活性化関数を適用する前にバッチ正規化処理を実施してもよいし、在庫診断種別の分類に寄与しないパラメータを0に近づけるように学習する正則化(荷重減衰)を適用してもよい。活性化関数にランプ関数(ReLUなど)を用いた場合には、活性化関数の出力が無限大になることを避けるために局所応答正規化処理を実行するような設定も可能である。
【0043】
次に、教師データを用いてCNNモデルを学習する方法を定めたCNNモデル学習設定データT204がメモリ上で保持される形式の例を表4に示す。
【0044】
【表4】
【0045】
エポック数とイテレート数とは、学習の回数を規定する項目である。学習はエポック数×イテレート数だけ実行される。
バッチサイズは、教師データ全体の品目集合から任意に抽出される品目の数である。抽出された部分品目集合は1回の学習に用いられる教師データとなる。損失関数は、教師データである品目のPSIデータを入力してCNNモデルから出力された診断結果種別と、当該品目の実際の診断結果種別との誤差を求める関数である。ニューラルネットワークにおける学習とは、教師データを用いて損失関数を最小化するようにCNNモデルのパラメータ値を更新することである。パラメータ更新法とは、損失関数を各パラメータで微分したときの勾配情報を用いてパラメータ値を更新する方法である。学習率とはパラメータ更新時に勾配情報をどの程度割合で反映させるかを規定する項目である。
【0046】
在庫診断設定データT205がメモリ上で保持される形式の例を表5に示す。
【0047】
【表5】
【0048】
診断結果種別は在庫診断の選択肢を定義したものである。これらの選択肢は、教師データの診断結果種別やCNNモデルの出力と対応付けられる。診断要因表示では、ある品目のPSIデータを入力した場合のCNNモデルの出力(即ち当該品目のCNNモデルによる在庫診断結果)と強く関連する部分を、畳み込み層で抽出された特徴量の情報を用いて診断根拠として画面表示する方法を設定する。最大寄与期間とは、在庫診断結果に最も大きく寄与する特徴量に対応したPSIデータの期間を診断根拠として表示する。ヒートマップとは、フィルタごとの診断結果への平均寄与度を重みとして、入力されたPSIデータの畳み込みから得られる特徴マップの重み付き線形和を求め、その線形和を当該畳み込み期間の関連度合の強さと見なし、畳み込み期間ごとの関連度合の強さを診断根拠として表示する。要因採択期間とは、CNNモデルによる在庫診断結果に寄与するデータ期間が当該採択期間内ある場合に限り問題在庫と見なすための設定である。これは、例えばある品目の診断結果と強く関連する期間が診断時点から10か月前として推定された場合、当該期間のPSIデータの状況に問題があることが分かっても実務上対処できないため、直近のPSIデータの状況に問題がある品目に着目して診断結果を得ることを目的としている。本実施の形態では、診断対象品目のデータ期間がそのまま設定されているが、上記のようなケースでは診断時点から3ヶ月前までのような直近の期間が設定される。
【0049】
次に、在庫管理担当者は、在庫管理装置1のモデル構築部1-2を用いてCNNモデル構成設定データで設定されたCNNモデルを構築する。
【0050】
図3は、モデル構築の流れを示すフローチャート図である。モデル構築処理は、処理が開始されると(ステップS1)、CNNモデル構成設定データの層番号ごとに繰り返し実行される(ステップS2~S7)。
ステップS3で層番号を判定し、層番号iが1のときは入力層であり、ステップS4において、モデル構築部1-2は入力層に投入される品目の数を行数、データ長×チャネル数を列数とする行列Xを生成し、すべての要素を0で初期化する。層番号iが5のときは出力層であり、ステップS9においてモデル構築部1-2は投入された品目の数を行数、次元を列数とする行列Yを生成し、すべての要素を0で初期化する。層番号iが2~4のときは隠れ層である。ステップS5において、モデル構築部1-2は、畳み込み層の場合にはまずフィルタ幅×チャネル数を行数、フィルタ数を列数とするパラメータ行列Wを生成して各要素を平均0・標準偏差1の正規乱数値で初期化する。次に、ステップS6において、フィルタ数の要素を持つバイアスパラメータベクトルbを生成して各要素を0に初期化する。全結合層の場合には、モデル構築部1-2は、まず入力次元を行数、出力次元を列数とするパラメータ行列Wを生成して平均0・標準偏差1の正規乱数値で初期化する。次に、ステップS6において、出力次元を要素に持つバイアスパラメータベクトルbを生成して各要素を0に初期化する。パラメータWやbの初期化は、CNNモデル構成設定データT203の設定を変更してHeの初期化など別の手法を適用してもよい。
【0051】
次に、在庫管理担当者は、在庫管理装置1のモデル学習部1-3を用いて教師データT202に基づくCNNモデルの学習を実行する。モデル学習部1-3による学習処理の概略を図4に示す。
【0052】
図4に示すように、処理が開始されると(ステップS11)、モデル学習部1-3による学習処理は、エポック数×イテレート数の回数だけ繰り返し実行される(S12~S20)。1回のイテレートにおいて、ステップS14に示すように、モデル学習部1-3は、まず教師データT202にある1000品目からバッチサイズの20品目を一様乱数に従い選択する。次に、ステップS15、S16において、選択された20品目に関する1年間のPSIデータと診断結果種別のペアを当該イテレートの教師データとして学習処理を実行する。学習は順伝播と逆伝播の2つの処理で構成される。ステップS15の順伝播処理U303とは、CNNモデルの現状のパラメータ値に基づき教師データを入力層から出力層まで伝播させる処理である。順伝播の詳細な処理フローを図5に示す。ステップS16の逆伝播処理U304とは、順伝播の出力値と教師データの診断結果種別から求められる誤差を出力層から入力層まで伝播させることで、損失関数におけるパラメータの勾配を計算する処理である。逆伝播の詳細な処理フローを図6に示す。尚、学習時の図5図6におけるNは20である。
【0053】
最後に、モデル学習部1-3は、ステップS17に示すように、逆伝播で得られたパラメータの勾配情報を用いてパラメータ値を更新する。例えば本実施の形態で設定されたAdaGrad法では、i番目(2≦i≦4)の層のパラメータWとbはそれぞれ以下のように更新される。
【0054】
【数1】
【0055】
ここで、hとhの初期値は0、およびαは学習率である。SGDやAdamなどAdaGrad以外の更新法を設定してもよい。
このように、教師データ全体から一部のデータをランダムに選択し、当該データを用いたCNNモデルの出力と実際の出力との誤差に基づき、モデルのパラメータ更新を繰り返すことで、モデル出力と実際の出力との誤差を小さくするパラメータ値を得ることができる。特に、畳み込み層の主要パラメータWは、教師データとして与えられた1年間のPSI時系列データから、「ある期間における販売減少の中で多量の生産をした結果在庫が過剰になっている」のような、担当者のノウハウに相当するPSIの相互関係を考慮した上で、診断結果種別と相関する各時系列データの特徴をフィルタ幅の範囲で学習している。
【0056】
本実施の形態の学習処理では、10回のイテレートを繰り返すと1回のエポックが終了する。次のエポックに進む前に、一様乱数のシードを変更しているが、これは必須の処理ではない。今回の設定では、エポック数×イテレート数×バッチサイズは1,000になるため、全エポックの学習処理が終了すると、乱数の一様性から教師データ全ての品目のPSIデータと診断結果種別の関係を1回ずつ学習する。
【0057】
次に、在庫管理担当者は、在庫診断部1-4を用いて、診断対象である例えば100品目の在庫診断を実施する。対象品目の診断は、投入品目数N=100として各品目の365日分の標準化済みPSIデータを1行に格納した100×1095行列Xを入力層とし、学習済みパラメータを持つCNNモデルの順伝播出力を求めればよい。手順は図5に示す学習時の順伝播と同様であるが、隠れ層の一定割合のユニットをランダムに無効化するドロップアウトについては診断時には実施せず、当該層への入力行列を(1-ドロップアウト率)倍してそのまま次の層に伝播させる。出力行列Yの各行には対象品目のソフトマックス値(各診断結果種別の分類確率)が格納されているので、最も値の大きな(分類確率最大となる)列番号がモデルから予測される診断結果種別として得られる。
【0058】
次に、在庫管理担当者は、要因推定部1-5を用いて、CNNモデルによる在庫診断の根拠として診断結果に大きく寄与したPSIデータの領域を求める。要因特定の流れを図7に示す。要因特定の方法は、診断要因提示の選択項目によって詳細は異なるものの、診断結果種別の分類確率に大きく寄与する畳み込み領域の位置や特徴マップの値を当該層における勾配情報から求めるという点では共通している。
CNNモデルの順伝播処理は、図5に示すように、まずステップS31において処理を開始し、ステップS32において、入力層ユニットに入力するデータの生成処理を行う。例えば、投入品目数をNとした入力層のN×1095の行列Xに対して,教師データまたは診断対象として選定された品目j(j=1,…,N)の365日分の標準化済みPSIデータをXのj行目のデータとして格納する。
【0059】
ステップS33において、畳み込みを行列演算で実行するための変換(前処理)を行う。例えば、行列Xを(品目数×畳み込み領域数)×(フィルタ幅×チャネル数)の行列Xに変換する。但し、畳み込み領域数は(データ長-フィルタ幅)/ストライド+1として計算され,今回は(365-90)/1+1=276となる。行列Xの各行には、品目ごとにフィルタ幅をストライドして得られる畳み込み対象期間のPSIデータが格納される。
ステップS34において、データから特徴量を抽出するフィルタの畳み込み処理を行う。例えば、畳み込み演算X’=X×W+bを実行し、(品目数×畳み込み領域数)×フィルタ数の行列X’を計算する。但し、X×W+bにおける行列とベクトルの和は、ベクトルのk番目の要素の値を行列のk列目の各要素に加算する処理とする。
【0060】
ステップS35において、前処理のデータ変換を元に戻す後処理を行う。例えば、行列X’を品目数×(畳み込み領域数×フィルタ数)の行列X’’に変換する。N×2760の行列X’’の各行には、品目ごとにフィルタ幅でPSIデータを畳み込んだ276個の反応値をフィルタの数だけ格納する。
ステップS36において、畳み込み層各ユニットの出力値計算処理を行う。例えば、N×2760の行列XをX=tanh(X’’)として計算する。但し,行列X’’に対する活性化関数の適用は,行列の各要素に対して活性関数の値を求める処理とする。行列Xは品目ごとの特徴マップである。
ステップS37において、順伝播処理がモデル学習で実行されているのか、対象品目の診断で実行されているのかを判定する。Yesの場合には、ステップS38に進み、Noの場合にはステップS43に進む。
ステップS38においては、モデルの過学習を防ぐため全結合層の複数ユニットを任意に選択して無効化する処理を行う。例えば、行列Xの要素をドロップアウト率でランダムに0にする。
【0061】
一方、ステップS43においては、過学習低減効果を診断時に反映させる処理を行う。例えば、行列X=(1-ドロップアウト率)×Xとする。次いで、ステップS38,S43から、ステップS39に進み、複数フィルタの畳み込み結果を1つに集約する全結合処理を行う。例えば、活性化関数の適用を含む全結合処理X=tanh(X×W+b)を実行し、N×276の行列Xを計算する。行列とベクトルの和算の方法や行列に対する活性化関数の適用は上記と同様である。
次いで、ステップS40に進み、集約した畳み込み結果を診断種別と関連付ける全結合処理を行う。例えば、全結合処理X=X×W+bを実行し、N×3の行列Xを計算する。行列とベクトルの和算の方法は上記と同様である。
【0062】
次いで、ステップS41に進み、診断種別との関連度合を分類確率で出力する処理(出力層出力)を行う。例えば、N×3の行列Yの各要素にsoftmax(X)の結果を代入する。ここで。softmax関数は行列Xの各行に対してソフトマックス値(各診断結果種別に分類される確率)を求める関数である。そして、処理を終了する(ステップS42)。
【0063】
CNNモデルの逆伝播処理は、図6に示すように、まずステップS51において処理を開始し、ステップS52において、出力層出力と教師出力の誤差に対して分類確率変換の勾配(偏微分)を求める処理を行う。例えば、各品目の実際の診断結果種別(0~2)を出力層と同じ3次元のonehotベクトルに変換してN×3の行列Tを生成し,出力行列Yと教師ラベル行列Tの交差エントロピー誤差に基づくsoftmax関数の勾配行列dX=(Y-T)/Nを前層の全結合層に逆伝播する。
【0064】
ステップS53において、誤差に対する第4層の全結合層の出力とパラメータの勾配を求める処理を行う。例えば、N×276の出力勾配行列dX=dX×W を前層の全結合層に逆伝播する。但し、W はWの転置行列を意味する。また、当該層のパラメータWの勾配をdW=X ×dX、パラメータbの勾配をdb=sum(dX)として求める。ここでsum関数は行列の各列の和を要素とするベクトルを出力する関数である。
ステップS54において、誤差に対する第3層の全結合層の出力とパラメータの勾配を求める処理を行う。例えば、tanh関数の勾配行列dX’をdX’=dX*(I-X*X)で求め、N×2760の出力勾配行列dX=dX’×W を前層の畳み込み層に逆伝播する。但し、Iは全要素が1のN×2760行列であり、演算子*は行列の要素ごとの積を求める演算である。また,当該層のパラメータWの勾配をdW=X ×dX’、パラメータbの勾配をdb=sum(dX’)として求める。
【0065】
ステップS55において、順伝播で無効化したユニットの逆伝播を無効にする処理を行う。例えば、順伝播のドロップアウトで0にした行列Xの要素に対応する行列dXの要素を0にする。
ステップS56において、誤差に対する特徴マップの勾配を求める処理を行う。例えば、tanh関数の勾配行列dX’をdX’=dX*(I-X*X)で求める。
ステップS57において、畳み込み層の出力勾配とパラメータ勾配を行列演算で求めるための前処理を行う。例えば、N×2760の行列dX’を(品目数×畳み込み領域数)×フィルタ数の行列dX’’に変換する。dX’の各行には、各品目の276個の反応値に対する損失関数の勾配がフィルタの数だけ格納されている。そこでdX’の各行をフィルタ単位で分割し、品目別・畳み込み領域別に損失関数の勾配を並び替え、dX’’の各行に格納する。
【0066】
ステップS58において、誤差に対する畳み込み層の出力勾配とパラメータ勾配を求める処理を行う。例えば、以下の式、(品目数×畳み込み領域数)×(フィルタ幅×チャネル数)の出力勾配行列dX=dX’’×W を計算する。また、当該層のパラメータWの勾配をdW=X ×dX’’、パラメータbの勾配をdb=sum(dX’’)/畳み込み領域数、として求める。
ステップS59において、前処理のデータ変換を元に戻す後処理を行う。例えば、(品目数×畳み込み領域数)×(フィルタ幅×チャネル数)の勾配行列dXをN×1095の行列dXに変換し、入力層へ逆伝播し、処理を終了する(ステップS60)。
【0067】
図7は、要因推定部1-5の処理の流れの一例を示すフローチャート図である。処理が開始され(ステップS61)、ステップS62において、最大の関連度合となる診断種別以外の影響を取り除く処理を行う。例えば、N個の診断対象品目のPSIデータを第4層の全結合層まで順伝播したN×3行列Xの各行に対して,最大値をとる列以外の列の値を0にした行列dXを求める。
ステップS63において、関連度合に対する全結合層の出力勾配を求める処理を行う。例えば、N×276の勾配行列dX=dX×W を前層の全結合層に逆伝播する。
ステップS64において、関連度合に対する全結合層の出力勾配を求める処理を行う。例えば、tanh関数の勾配行列dX’をdX’=dX* (I-X*X)で求め、N×276の勾配行列dX=dX’×W を前層の畳み込み層に逆伝播する。
ステップS65において、過学習低減効果を勾配計算に反映させる処理を行う。例えば、dX=(1-ドロップアウト率)×dXとして畳み込み層に逆伝播する。
【0068】
ステップS66において、提示方法を判定する。提示方法が、最大寄与期間である場合には、ステップS67に進み、提示方法が、ヒートマップである場合には、ステップS70に進む。
ステップS67においては、関連度合に対する特徴マップの勾配を求める処理を行う。例えば、tanh関数の勾配行列dX’をdX’=dX*(I-X*X)で求める。次いで、ステップS68において、最大勾配となる畳み込み層ユニットに対応するフィルタと,当該フィルタを畳み込んだ領域を特定する処理を行う。例えば、N×2760の行列dX’の各行に対し、最大値を取る列番号cを求め、cを畳み込み領域数で割ったときの商+1をフィルタ番号f、余りrをフィルタfにおける畳み込み領域の位置として格納したN×2の行列Zを生成し、処理を終了する(ステップS69)。
【0069】
ステップS70において、フィルタごとに関連度合に対する特徴マップの重みを求める処理を行う。例えば、N×2760の勾配行列dXの各行に対し、フィルタごとに得られる特徴マップの勾配の平均値を格納したN×10の行列Aを生成する。
ステップS71において、入力データに対するフィルタ畳み込み後の重み付き出力を求める処理を行う。例えば、診断対象品目のPSIデータを第2層の畳み込み層まで順伝播したN×2760の特徴マップ行列Xの各行に対して、フィルタ番号f(f=1,…,10)の特徴マップが(f-1)×276+1列目~f×276列目に格納されていることを考慮して、(f-1)×276+1列目~f×276列目の値に行列Aのf列目の値を乗算し、行列Bを生成する。
【0070】
ステップS72において、重み付き出力からフィルタを畳み込んだ各領域のヒートマップの濃度を求める処理を行う。例えば、N×2760の行列Bの各行に対して、フィルタfごとにm番目(m=1,…,256)にある重み付き特徴マップの値を足し合わせる。m番目の和が0より大きい場合は当該値、0以下の場合は0を格納したN×276の行列Zを生成する。
そして、ステップS68,S72から、処理を終了する(ステップS69)。
【0071】
次に、在庫管理担当者は、画面表示部1-6を用いて、CNNモデルによる診断対象品目の在庫診断結果や診断根拠となる要因を画面上に可視化する。
図8および図9は、従来技術における診断対象品目の在庫サムネイル一覧画面やPSI詳細画面での表示例を示す図である。これに対し図10は、CNNモデルによる在庫診断結果および要因とされる最大寄与領域を在庫サムネイル一覧画面上に可視化した例である。CNNモデルによる在庫診断結果は、問題在庫と診断された各品目の在庫サムネイルの枠に重ねられた矩形として可視化される。
矩形の線は、問題の種別ごとに異なる色又は線種(太線,破線、一点鎖線等)となっていることが好ましい。また、最大寄与領域は在庫グラフ上で一定の透過率で塗りつぶされた矩形として可視化される。最大寄与領域の表示位置は、要因推定部1-5の出力である行列Zの畳み込み領域の位置rで決めることができる。
【0072】
加えて、図11は、ある対象品目の診断結果および最大寄与領域による要因をPSI詳細画面上に表示した例である。最大寄与領域はPSI詳細グラフ上で塗りつぶされた矩形として可視化される。矩形上にマウスカーソルを移動させると、当該領域の生産・販売・在庫の状況を文字列で表現した吹き出しが表示されるようにしても良い。
本実施の形態では、最大寄与領域とそれ以外の領域で、販売伸び率・生産回数・生産量・平均在庫をそれぞれ比較することで、診断に最も寄与した期間のPSIの状況が他の期間と比べてどの程度異なっているかの情報を提示することができる。
最大寄与領域のPSIの状況を示す文字列情報であり、診断根拠に対する担当者の理解を促進するものであれば、本実施の形態による表示態様等に限定されるものではない。
【0073】
さらに図12は、ある対象品目の診断結果およびヒートマップによる要因をPSI詳細画面上で表示した例を示す図である。ヒートマップは、各畳み込み領域の診断結果への寄与度合に応じて色の濃淡を調整した縦線としてPSI詳細グラフ上に表示される。各畳み込み領域の診断結果への寄与度合は、要因推定部1-5の出力である行列Zから求めることができる。
尚、図10図11図12における品目の診断結果および要因の可視化において、問題在庫の要因として推定された期間が要因採択期間に含まれる場合に限定することで、より直近のPSIの状況に問題がある品目に着目した在庫診断結果を表示することもできる。
【0074】
在庫管理担当者は、画面表示部1-6で可視化されたCNNモデルによる在庫診断結果やその要因をもとに、問題在庫を解消するための需給調整を図ることができる。また、CNNモデルの診断結果が担当者の判断と異なる場合には、画面上で診断結果を修正することもできる。
【0075】
【表6】
【0076】
さらに、在庫管理担当者は、データ出力部1-7を用いて、診断結果データT206(
表6)に示すような形式で各品目の診断結果を外部ファイルやデータベースに出力することができる。診断結果データはそのまま次の教師データとして用いることができるため、CNNモデルは常に最新の診断結果を学習して今後の在庫診断に反映させることができる。
【0077】
処理および制御は、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)によるソフトウェア処理、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)によるハードウェア処理によって実現することができる。
【0078】
また、上記の実施の形態において、図示されている構成等については、これらに限定されるものではなく、本発明の効果を発揮する範囲内で適宜変更することが可能である。その他、本発明の目的の範囲を逸脱しない限りにおいて適宜変更して実施することが可能である。
また、本発明の各構成要素は、任意に取捨選択することができ、取捨選択した構成を具備する発明も本発明に含まれるものである。
【産業上の利用可能性】
【0079】
本発明は、在庫管理装置に利用可能である。
【符号の説明】
【0080】
1 在庫管理装置
1-1 データ入力部
1-2 モデル構築部
1-3 モデル学習部
1-4 在庫診断部
1-5 要因推定部
1-6 画面表示部
1-7 データ出力部
17 問題在庫に関するPSIデータの特徴を学習するAIモデル
17-1 標準化(正規化)処理
17-2 Conv処理(畳み込み(相関)処理)
33 反応値
17-3 Tanh処理
17-4 Dropout挿入処理
17-5 Affine処理
17-6 Tanh処理
17-7 Affine処理
17-8 Softmax処理
21 出力
図1
図2A
図2B
図2C
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12