JP2018142199A - 学習システムおよび学習方法 - Google Patents

学習システムおよび学習方法 Download PDF

Info

Publication number
JP2018142199A
JP2018142199A JP2017036435A JP2017036435A JP2018142199A JP 2018142199 A JP2018142199 A JP 2018142199A JP 2017036435 A JP2017036435 A JP 2017036435A JP 2017036435 A JP2017036435 A JP 2017036435A JP 2018142199 A JP2018142199 A JP 2018142199A
Authority
JP
Japan
Prior art keywords
learning
controller
result
target
sub
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017036435A
Other languages
English (en)
Other versions
JP6718834B2 (ja
Inventor
高斉 松本
Kosei Matsumoto
高斉 松本
大樹 藤
Daiki Fuji
大樹 藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2017036435A priority Critical patent/JP6718834B2/ja
Publication of JP2018142199A publication Critical patent/JP2018142199A/ja
Application granted granted Critical
Publication of JP6718834B2 publication Critical patent/JP6718834B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】状態から行動を得る直列接続された複数の学習対象の行動の最適化を図ること。【解決手段】状態から行動を得る複数の学習対象により構成された学習対象群について各学習対象の行動を学習する学習システムは、第1コントローラと第2コントローラを有し、第2コントローラは学習対象群の各々の第1学習結果を取得し、ある学習対象の第1学習結果を他の学習対象に与えるように第1コントローラに送信し、第1学習結果を第1コントローラに送信した結果得られる学習対象群の各々の第2学習結果を取得し、各第1学習結果と各第2学習結果に基づいて学習対象群を評価して出力し、第1コントローラは、ある学習対象の行動が寄与したデータが遅延を伴って他の学習対象に与えられることにより他の学習対象の状態を生成し、ある学習対象の行動と他の学習対象の状態とに基づいて、他の学習対象の次の行動を選択し学習結果として送信する。【選択図】図1

Description

本発明は、学習対象を学習する学習システムおよび学習方法に関する。
特許文献1は、エージェント間で評価をバランスさせ、エージェント同士を協調させるマルチエージェントシステムを開示する。エージェント1は、候補データとしての変数値をランダムに選択し、環境から環境データを取得して、評価部にて評価値を算出する。エージェント1は、判断部によって評価値が向上すると判断すると、通信部を介し、エージェント2へ、変数値の評価要求を行う。エージェント2は、変数値の評価を行い、評価値が向上するならば合意を通知し、評価値が減少するならば減少分の評価値を代償として要求する。エージェント1は、エージェント2からの代償要求に対し、代償を支払っても評価値が向上する場合に合意する。このような交渉を経て、エージェント1,2はそれぞれが評価値を増加させるように動作することにより、候補データを更新出力する。
特許文献2は、ニューラルネットワーク装置での転移学習に適した新規な転移学習装置、転移学習システム、転移学習方法およびプログラムを開示する。転移学習装置は、各々に1以上の評価項目ごとのラベルが付された複数のラベル付き転移先データを、評価項目と同数以上の出力ユニットを出力層に有しかつ複数のラベル付き転移元データで学習済みのニューラルネットワーク装置に入力することにより、出力ユニットから出力された評価値を取得する転移先データ評価部と、1以上の評価項目の各々の評価値を出力するための出力ユニットとして、出力ユニットのうち当該評価項目のラベルとの差分が最も小さい評価値が取得された頻度がより高い出力ユニットを優先的に割り当てる出力層調整部と、を備える。
特許文献3は、経験強化型強化学習法と環境同定型強化学習法を統合して、学習に要する試行回数が少なく、動的な環境の変化に対してロバスト性があり、最適な学習効果が得られるマルチエージェントモデルを用いて経験強化型強化学習法と環境同定型強化学習法を統合する分散強化学習法を開示する。分散強化学習法は、経験強化型強化学習法と環境同定型強化学習法を統合して、学習に要する試行回数が少なく、動的な環境の変化に対してロバスト性がある経験強化型強化学習法の特徴と最適に近い学習効果が得られる環境同定型強化学習法の特徴を具備する。
特開2003‐233599号公報 特開2016‐143094号公報 特開2000‐020494号公報
分散システムには、たとえば、最下流である小売から二次卸、二次卸から次卸、一次卸から工場(以下、総称して、サブシステム)といった上流側への発注処理と、上流側から下流側への配送処理と、をおこなう物流のサプライチェーンがある。サプライチェーンのように各サブシステムが直列的につながっている系では、下流側のサブシステムの指標の悪化が系を遡って上流側に伝搬していく(いわゆるBullwhip効果)。たとえば、顧客から小売への注文量がほぼ一定にも関わらず、上流側への発注量の見込みを誤った結果、上流に遡って注残量や在庫量が増大する。上述した特許文献1〜3では、サプライチェーンのような系を最適化することができず、注残量や在庫量の増加を抑制することができない。
本発明は、状態から行動を得る学習対象群により構成される学習対象群の行動の最適化を図ることを目的とする。
本願において開示される発明の一側面となる学習システムおよび学習方法は、状態から行動を得る複数の学習対象により構成された学習対象群について、前記各学習対象の行動を学習する学習システムおよび学習方法であって、前記学習対象群を管理する第1コントローラと、前記第1コントローラを管理する第2コントローラと、を有し、前記第2コントローラは、前記第1コントローラからの前記学習対象群の各々の学習結果を第1学習結果として取得し、前記学習対象群のうちある学習対象の第1学習結果を他の学習対象に与えるように、前記第1コントローラに送信し、前記第1学習結果を前記第1コントローラに送信した結果得られる前記学習対象群の各々の学習結果を第2学習結果として取得し、前記各第1学習結果と前記各第2学習結果とに基づいて、前記学習対象群を評価し、評価結果を出力し、前記第1コントローラは、前記ある学習対象の行動が寄与したデータが遅延を伴って前記他の学習対象に与えられることにより、前記他の学習対象の状態を生成し、前記ある学習対象の行動と、前記生成された前記他の学習対象の状態と、に基づいて、前記他の学習対象の次の行動を選択し、前記他の学習対象の次の行動を前記学習結果として前記第2コントローラに送信する、ことを特徴とする。
本発明の代表的な実施の形態によれば、状態から行動を得る学習対象群の行動の最適化を図ることができる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
図1は、サプライチェーンでの学習例を示す説明図である。 図2は、学習システムの構成例を示す説明図である。 図3は、コンピュータのハードウェア構成例を示すブロック図である。 図4は、端末における取引データテーブルの一例を示す説明図である。 図5は、サブシステムにおける学習対象データテーブルの一例を示す説明図である。 図6は、学習システムの機能的構成例を示すブロック図である。 図7は、サブコントローラの学習処理手順例を示すフローチャートである。 図8は、学習システムにおける全体学習処理手順例を示すシーケンス図である。
<サプライチェーンでの学習例>
図1は、サプライチェーン100での学習例を示す説明図である。(A)は、特定のサブシステム101での予備学習を示し、(B)は、サプライチェーン100の全体学習を示す。本実施例では、一例として、下流から上流へ、小売、二次卸、一次卸、工場である各サブシステム101〜104が直列につながっているサプライチェーン100の系を例に挙げて説明する。実際のサプライチェーン100において、各サブシステムは、下流の複数のサブシステムに接続されているが、説明を単純化するため、直列につながっている部分に着目して説明する。なお、顧客が小売に発注してから、当該顧客にその発注に応じた物品が配送されるまでの工程を「ターン」という単位で示す。なお、本例では、説明を単純化するため、1種類の物品について説明する。
各サブシステム101〜104は、1つ上流のサブシステムから配送される物品を受け取る。ただし、工場は、最上流のサブシステムであるため、自身で生産して物品を受け取るものとする。各サブシステム101〜104は、1つ下流のサブシステムから発注票を受け取り、発注票と受注残分の数量の物品を在庫から、ある分だけ当該1つ下流のサブシステムに配送し、在庫と受注残の和が小さくなるように発注量を決め、1つ上流のサブシステムに発注票を送る。ただし、工場は、最上流のサブシステム104であるため、自身の生産量として処理するものとする。
サプライチェーン100は、このような一連の処理を行う。なお、この発注票の上流への伝達には発注遅延が生じ、物品の下流への配送には配送遅延が生じる。よって、顧客が、小売に対して発注票を送ると、発注票は小売から発注遅延として伝播され、次に二次卸に送られ、最終的に工場にまで伝播される。反対に工場からは、発注票に応じて物品が配送遅延として送られ、次に一次卸に送られ、最終的に、物品は顧客に届く。
以上のようなサプライチェーン100をなす系において、各サブシステム101〜104が在庫量と受注残を抑制するように発注量を決めることは、一般に困難なことが知られているが、本実施例では、各サブシステム101〜104を管理するサブコントローラと、各サブコントローラを管理するメインコントローラ150との連携により、各サブシステム101〜104からの発注の仕方(いわゆる、発注のコツ)を獲得する。発注の仕方とは、たとえば、発注量や掛け率である。在庫量と受注残の和をスコアと称す。各サブコントローラ(工場のサブコントローラを除く)は、1つ上流のサブシステムに、スコアが小さくなるような発注の仕方を学習させる。
より具体的には、まず、(A)予備学習が実行される。サプライチェーン100において所定ターン数(たとえば、100回)の取引が行われ、各サブシステム101〜104において、ターンごとに、受注量、在庫量、受注残、発注量、掛け率が取引データとして蓄積される。
予備学習では、小売のサブコントローラが有するAI(Artificial Intelligence:人工知能)111が、小売の状態を学習し、学習結果を出力する。学習結果には、たとえば、状態やこれに対する発注の仕方、報酬やQ値やスコアが含まれる。状態とは、蓄積された取引データであり、AIは、ターン順に、受注量、在庫、受注残、発注遅延として伝播された1〜n−1ターン前の発注量(過去発注量)を学習対象データとして取得する。報酬とは、たとえば、Q学習においてAIが算出する値であり、サブコントローラの次にとるべき行動(どのような発注の仕方にすべきか)を決める指標となる。また、予備学習では、小売以外のサブシステム102〜104のサブコントローラは、人または模擬プレイヤにより、サブシステム102〜104の発注処理と配送処理とを支援する。模擬プレイヤとは、過去の取引データに基づくシミュレータである。模擬プレイヤは、たとえば、過去の発注量の統計量(たとえば、平均値など)により発注量を決定する。
AI111は、AI111で得られた学習結果121をメインコントローラ150に送信する。学習結果111とは、上述したように、報酬やスコアのほか、Qテーブルを含んでもよい。Qテーブルとは、Q学習において、状態および行動の組み合わせごとに算出された評価値(Q値)である。評価値が最大となる行動が、サブコントローラの次にとるべき行動となる。AIがニューラルネットワークを用いた学習であれば、ニューラルネットワークで得られる重みでもよい。
つぎに、(B)全体学習が実行される。サプライチェーン100において所定ターン数(たとえば、100回)の取引が複数回試行される。各サブシステム101〜104において、受注量、在庫量、受注残、発注量、掛け率である所定ターン数の取引データが試行ごとに蓄積される。
(B)全体学習では、各サブコントローラのAI111が個別に状態を学習し、報酬を獲得する。また、メインコントローラ150が各AI111を統括管理する。具体的には、たとえば、小売のAI111は、各試行の取引データを用いる場合、1つ前の試行(1回目の試行の場合は、予備学習)で得られた学習結果を読み込んで、今回蓄積された取引データに適用する。二次卸、一次卸、および工場のAI111は、1つ前の試行(1回目の試行の場合は、ランダムな値)で得られた学習結果を読み込んで、今回蓄積された取引データに適用する。
メインコントローラ150は、試行ごとに各AIから学習結果を取得して評価する。具体的には、たとえば、学習結果に報酬が含まれている場合、メインコントローラ150は、全AI111の報酬が上昇しているか否かを判断する。全AI111の報酬が上昇している場合、サプライチェーン100全体でパフォーマンスが向上していることが判明する。また、学習結果にスコアが含まれている場合、メインコントローラ150は、全AIのスコアが減少しているか否かを判断する。全AI111の報酬が減少している場合、サプライチェーン100全体でパフォーマンスが向上していることが判明する。
<学習システムの構成例>
図2は、学習システム200の構成例を示す説明図である。学習システム200において、各サブシステム101〜104は、端末201〜204を有する。各端末201〜204は、所属するサブシステム101〜104における取引データの入力を受け付けて記憶する。各端末201〜204は、それぞれサブコントローラ211〜214と通信可能に接続され、取引データを、同一サブシステムに所属するサブコントローラに送信する。各サブコントローラ211〜214は、AI111を有し、AI111により受信した取引データを用いて強化学習を実行する。なお、上述したように、図1(A)の予備学習においては、小売のサブコントローラ211のみ強化学習を実行する。また、図1(B)の全体学習においては、各サブコントローラ211〜214は、1つ下流からの学習結果を用いて、受信した取引データについて強化学習を実行する。
メインコントローラ150は、各サブシステム101〜104とネットワークを介して通信可能に接続される。メインコントローラ150は、各サブシステム101〜104から学習結果を受信し、評価する。また、メインコントローラ150は、図1(B)の全体学習において、あるサブシステムからの学習結果をその1つ上流のサブシステムに転送する。
なお、図2において、サブコントローラ211〜214は、サブシステム101〜104ごとに設けたが、一部または全部のサブシステム101〜104が共有するサブコントローラとしてもよい。また、サブコントローラ211〜214とメインコントローラ150も1台のコンピュータで実現してもよい。
<コンピュータのハードウェア構成例>
図3は、コンピュータのハードウェア構成例を示すブロック図である。端末、サブシステム、およびメインシステムを総称して、コンピュータとする。コンピュータ300は、プロセッサ301と、記憶デバイス302と、入力デバイス303と、出力デバイス304と、通信インタフェース(通信IF305)と、を有する。プロセッサ301、記憶デバイス302、入力デバイス303、出力デバイス304、および通信IF305は、バスにより接続される。プロセッサ301は、コンピュータ300を制御する。記憶デバイス302は、プロセッサ301の作業エリアとなる。また、記憶デバイス302は、各種プログラムやデータを記憶する非一時的なまたは一時的な記録媒体である。記憶デバイス302としては、たとえば、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)、フラッシュメモリがある。入力デバイス303は、データを入力する。入力デバイス303としては、たとえば、キーボード、マウス、タッチパネル、テンキー、スキャナがある。出力デバイス304は、データを出力する。出力デバイス304としては、たとえば、ディスプレイ、プリンタがある。通信IF305は、ネットワークと接続し、データを送受信する。
<取引データテーブル>
図4は、端末201〜204における取引データテーブル400の一例を示す説明図である。取引データテーブル400は、端末201〜204に入力された取引データを保存するデータテーブルである。取引データテーブル400は、サブシステム101〜104ごとに存在し、かつ、物品ごとに存在する。なお、以降の説明において、AAフィールドbbb(AAはフィールド名、bbbは符号)の値を、AAbbbと表記する場合がある。たとえば、試行IDフィールド401の値を、試行ID401と表記する。
取引データテーブル400は、試行IDフィールド401と、ターンIDフィールド402と、受注量フィールド403と、在庫量フィールド404と、受注残フィールド405と、発注量フィールド406と、掛け率フィールド407と、を有する。同一行の各フィールド401〜407の値の組み合わせにより、1ターン分の取引データを構成する。
試行IDフィールド401は、試行IDを格納する記憶領域である。試行ID401は、値として試行を一意に特定する識別情報である。試行とは、あらかじめ設定された複数のターンの集合であり、1試行分の取引データ群が強化学習の学習単位となる。1試行分の取引データ群とは、試行ID401が共通するエントリ群である。端末は、試行ID401単位の取引データ群を、そのサブコントローラに送信する。
ターンIDフィールド402は、値としてターンIDを格納する記憶領域である。ターンID402とは、ターンを一意に特定する識別情報である。ターンは、顧客が小売に発注してから、当該発注した物品が顧客に配送されるまでの流れである。受注量フィールド403は、受注量を格納する記憶領域である。受注量403とは、1つ下流のサブシステム(小売は最下流であるため、顧客。以降同じ。)から発注された物品の数量である。また、図示はしないが、ターンID402は、当該ターンの発生時刻も含まれる。
在庫量フィールド404は、値として在庫量を格納する記憶領域である。在庫量フィールド404は、サブフィールドとして、受注前在庫量フィールド441と、出荷後在庫量フィールド442と、入荷後在庫量フィールド443と、を有する。
受注前在庫量フィールド441は、値として受注前在庫量441を格納する記憶領域である。受注前在庫量441とは、1つ下流のサブシステムからの発注を受ける前の在庫量である。
出荷後在庫量フィールド442は、値として出荷後在庫量を格納する記憶領域である。出荷後在庫量とは、1つ下流のサブシステムからの発注に応じて物品を出荷した後の在庫量である。すなわち、出荷後在庫量442とは、受注前在庫量441から受注量403を減算した在庫量であるが、0以上の値となる。たとえば、試行ID401:tr1のターンID402:ts1_1のエントリにおける出荷後在庫量442:stk1b_1は、下記式(1)となる。
stk1b_1=stk1a_1−vo1_1・・・(1)
ただし、式(1)で負になる場合、出荷後在庫量442:stk1b_1は、stk1b_1=0となり、その負の値の絶対値は、受注残405:blg1_1に等しい。
入荷後在庫量フィールド443は、値として入荷後在庫量を格納する記憶領域である。入荷後在庫量443とは、1つ上流のサブシステム(工場は最上流であるため、工場自身の生産。以降同じ。)への発注に応じて当該1つ上流のサブシステムから入荷された後の在庫量である。すなわち、入荷後在庫量443とは、出荷後在庫量442に発注量を加算した在庫量である。たとえば、試行ID401:tr1のターンID402:ts1_1のエントリにおける入荷後在庫量443:stk1c_1は、下記式(2)となる。
stk1c_1=stk1b_1+oq1_1・・・(2)
配送遅延がない状況では、入荷後在庫量443:stk1c_1は、次のターン(ターンID402:ts2_1)の受注前在庫量441:stk1a_1となるが、配送遅延の影響を受けると、受注前在庫量441:stk1a_1は、ターンID402:ts1_1の出荷後在庫量442:stk1b_1と等しくなる。このように、配送遅延が伝播すると、受注残405や発注量407にも伝播することになる。
受注残フィールド405は、受注残を格納する記憶領域である。受注残405とは、1つ下流のサブシステムからの受注量403に対して未出荷である残存受注量である。たとえば、ある物品について受注量403が100個、受注前在庫量441が80個とすると、受注前在庫量441の80個は、発注元である1つ下流のサブシステムに出荷できるが、不足分の20個は未出荷状態である。この20個が受注残405である。すなわち、受注残405は、受注量403から受注前在庫量441を減算した値(非負整数)である。たとえば、試行ID401:tr1のターンID402:ts1_1のエントリにおける受注残405:blg1_1は、下記式(3)となる。
blg1_1=vo1_1−stk1a_1・・・(3)
ただし、式(3)で負になる場合、受注残405:blg1_1は、blg1_1=0となり、その負の値の絶対値は、出荷後在庫量442:stk1b_1に等しい。
遅延時間フィールド406は、遅延時間を格納する記憶領域である。遅延時間406とは、そのサブシステムが発注量407分の物品を1つ上流のサブシステムに発注してから、当該1つ上流サブシステムから当該物品が入荷されるまでの時間である。
発注量フィールド407は、発注量を格納する記憶領域である。発注量407とは、1つ上流のサブシステムに発注される物品の数量である。受注量403が受注前在庫量441で賄える場合、すなわち、受注残405が0である場合、サブシステムは、1つ上流のサブシステムに発注する必要がない。したがって、発注量407は、受注残405以上の数量となる。
掛け率フィールド408は、掛け率を格納する記憶領域である。掛け率とは、発注する物品の数量をどのくらい多めに見積もるかを決定するレートであり、たとえば、1以上の実数である。受注残405に掛け率を乗じた値(小数点以下は、切捨てでも四捨五入でもよい)が発注量407となる。たとえば、掛け率が「1」の場合、受注残405と発注量407は同一数量となる。すなわち、在庫でまかなえなかった不足分のみ、1つ上流のサブシステムから補充されることになる。一方、掛け率が「1」より大きい値であれば、発注量407は受注残405以上となるため、受注残405を差し引いた残りの数量が在庫(入荷後在庫量443)として補充されることになる。
<学習対象データテーブル>
図5は、サブシステム101〜104における学習対象データテーブル500の一例を示す説明図である。学習対象データテーブル500は、サブコントローラ211〜214が、端末201〜204からの試行ID401単位の取引データ群を、状態sと行動aとに分けて集約した学習対象データを保存するデータテーブルである。学習対象データテーブル500は、サブシステム101〜104ごとに存在し、かつ、物品ごとに存在する。
学習対象データテーブル500は、試行IDフィールド401と、状態フィールド502と、行動フィールド503と、を有する。同一行のフィールド501〜503の値の組み合わせにより、1試行分の学習対象データを構成する。
状態フィールド502は、サブフィールドとして、特定受注量フィールド521と、特定在庫量フィールド522と、特定受注残フィールド523と、過去発注量フィールド524と、を有する。特定受注量フィールド521は、値として特定受注量を格納する記憶領域である。特定受注量521とは、たとえば、1試行における最後(nターン目。nは、1試行におけるターン数、すなわち、1試行における取引データ数。)の取引データの受注量403である。なお、最後の受注量403に限らず、当該試行ID401内のi(1≦i≦n)ターン目の在庫量でもよく、当該試行ID401内の取引データ群における受注量403の最大値、最小値、平均値または中央値でもよい。また、当該試行ID401内の取引データ群における1ターン目からnターン目までの全受注量403でもよい。
特定在庫量フィールド522は、値として特定在庫量を格納する記憶領域である。特定在庫量522とは、特定受注量521に対応する在庫量である。たとえば、特定受注量521が、nターン目の取引データの受注量403であれば、特定在庫量522も、nターン目の取引データの在庫量404となる。また、特定受注量521が、当該試行ID401内のi(1≦i≦n)ターン目の受注量403、受注量403の最大値、最小値、または中央値であれば、特定在庫量522も、当該受注量403と同一取引データにおける在庫量404となる。また、特定受注量521が、当該試行ID401内の取引データ群における1ターン目からnターン目までの全受注量403であれば、特定在庫量522も当該試行ID401内の取引データ群における1ターン目からnターン目までの全在庫量404となる。また、特定受注量521が当該試行ID401内の取引データ群における受注量403の平均値であれば、特定在庫量522も当該試行ID401内の取引データ群における在庫量404の平均値となる。なお、特定在庫量522は、受注前、出荷後、入荷後のいずれかの在庫量404である。いずれの在庫量404が採用されるかは、あらかじめ設定される。
特定受注残フィールド523は、値として特定受注残を格納する記憶領域である。特定受注残523とは、特定受注量521および特定在庫量522に対応する受注残405である。たとえば、特定受注量521が、nターン目の取引データの受注量403であれば、特定受注残523も、nターン目の取引データの受注残405となる。また、特定受注量521が、当該試行ID401内のi(1≦i≦n)ターン目の受注量403、受注量403の最大値、最小値、または中央値であれば、特定受注残523も、当該受注量403と同一取引データにおける受注残405となる。また、特定受注量523が、当該試行ID401内の取引データ群における1ターン目からnターン目までの全受注量403であれば、特定受注残523も当該試行ID401内の取引データ群における1ターン目からnターン目までの全受注残405となる。また、特定受注量521が当該試行ID401内の取引データ群における受注量403の平均値であれば、特定受注残523も当該試行ID401内の取引データ群における受注残405の平均値となる。
過去発注量フィールド524は、値として1ターン前〜n−1ターン前の発注量407を格納する記憶領域である。過去発注量フィールド524の値は、発注遅延が伝播した発注量407となる。n−1ターン前の過去発注量524は、当該試行ID401における1ターン目の取引データにおける発注量407となる。
過去遅延時間フィールド525は、値として1ターン前〜n−1ターン前の遅延時間406を格納する記憶領域である。n−1ターン前の過去遅延時間525は、当該試行ID401における1ターン目の取引データにおける遅延時間406となる。
行動フィールド503は、サブフィールドとして、特定発注量フィールド531と、特定掛け率フィールド532と、を有する。特定発注量フィールド531は、値として特定発注量を格納する記憶領域である。特定発注量531とは、特定受注量521〜特定受注残523に対応する発注量407である。たとえば、特定受注量521が、nターン目の取引データの受注量403であれば、特定発注量531も、nターン目の取引データの発注量407となる。また、特定受注量521が、当該試行ID401内のi(1≦i≦n)ターン目の受注量403、受注量403の最大値、最小値、または中央値であれば、特定受注量531も、当該受注量403と同一取引データにおける発注量407となる。また、特定受注量521が、当該試行ID401内の取引データ群における1ターン目からnターン目までの全受注量403であれば、特定受注量531も当該試行ID401内の取引データ群における1ターン目からnターン目までの全発注量407となる。また、特定受注量521が当該試行ID401内の取引データ群における受注量403の平均値であれば、特定発注量531も当該試行ID401内の取引データ群における発注量407の平均値となる。
特定掛け率フィールド532は、値として特定掛け率を格納する記憶領域である。特定掛け率532とは、特定受注量521〜特定発注量531に対応する掛け率408である。たとえば、特定受注量521が、nターン目の取引データの受注量403であれば、特定掛け率532も、nターン目の取引データの掛け率408となる。また、特定受注量403が、当該試行ID401内のi(1≦i≦n)ターン目の受注量403、受注量403の最大値、最小値、または中央値であれば、特定掛け率532も、当該受注量403と同一取引データにおける掛け率408となる。また、特定受注量521が、当該試行ID401内の取引データ群における1ターン目からnターン目までの全受注量403であれば、特定掛け率532も当該試行ID401内の取引データ群における1ターン目からnターン目までの全掛け率408となる。また、特定受注量521が当該試行ID401内の取引データ群における受注量403の平均値であれば、特定掛け率532も当該試行ID401内の取引データ群における掛け率408の平均値となる。
<学習システム200の機能的構成例>
図6は、学習システム200の機能的構成例を示すブロック図である。各サブシステム101〜104は、第1通信部601と、取得部602と、第1評価部603と、更新部604と、選択部605と、出力部606と、を有する。第1通信部601は、図3に示した通信IF306により実現される。また、取得部602〜出力部606は、具体的には、たとえば、図3に示した記憶デバイス302に記憶されたプログラムをプロセッサ301に実行させることにより実現される。
第1通信部601は、メインコントローラ150の第2通信部611およびサブシステム104〜104の端末201〜204とデータを送受信するインタフェースである。
取得部602は、第1通信部601で受信したデータを取得する。具体的には、たとえば、取得部602は、そのサブシステムの端末から第1通信部601で受信された1回の試行の取引データ群を読み込み、学習対象データ群として取得する。また、取得部602は、第1通信部601で受信したメインコントローラ150からの学習結果を取得する。
第1評価部603は、取得部602で取得された学習対象データ群を評価する。第1評価部603は、たとえば、予備学習の場合は、メインコントローラ150からの学習結果を用いずに評価し、全体学習の場合は、メインコントローラ150からの学習結果を用いて評価する。具体的には、たとえば、第1評価部603は、後述する図7のステップS704〜S707の算出処理を実行する。
更新部604は、第1評価部603で評価されたデータを更新する。具体的には、たとえば、更新部604は、後述する図7のステップS706〜S707の更新処理を実行する。
選択部605は、サブコントローラ211〜214が次にとるべき行動を選択する。具体的には、たとえば、選択部605は、図7のステップS708の選択処理を実行する。
出力部606は、学習結果を出力し、第1通信部601に渡す。学習結果には、第1評価部603での算出結果、更新部604での更新結果、選択部605での選択結果が含まれる。
メインコントローラ150は、第2通信部611と、設定部613と、第2評価部612と、制御部614と、を有する。第2通信部611は、図3に示した通信IF306により実現される。また、設定部613〜制御部614は、具体的には、たとえば、図3に示した記憶デバイス302に記憶されたプログラムをプロセッサ301に実行させることにより実現される。
第2通信部611は、各サブコントローラ211〜214の第1通信部601とデータを送受信するインタフェースである。
設定部613は、割当設定を実行する。割当設定とは、図8のステップS801に示すように、学習結果の提供側サブコントローラと利用側サブコントローラとの組み合わせを設定する処理であり、あるサブコントローラからの学習結果の提供先となるサブコントローラを一意に特定する。
第2評価部612は、各サブコントローラ211〜214からの学習結果を評価する。具体的には、第2評価部612は、図8のステップS806に示すように、サプライチェーン100全体のパフォーマンスが向上しているか否かを評価する処理である。
制御部614は、メインコントローラ150を制御する。具体的には、たとえば、制御部614は、設定部613の割当設定にしたがって、学習結果の送信先となるステップコントローラを決定する。また、制御部614は、特定のサブコントローラ(たとえば、最下流のサブシステムに所属するサブコントローラ)を、予備学習対象となるサブコントローラを決定する。また、制御部614は、全体学習の開始指示や終了を制御する。
<サブコントローラ211〜214の学習処理手順例>
図7は、サブコントローラ211〜214の学習処理手順例を示すフローチャートである。図7に示す処理は、図1(A)予備学習,(B)全体学習に共通の処理である。図7では、強化学習を例に挙げて説明するが、ニューラルネットワークによる機械学習でもよい。
サブコントローラ211〜214は、学習の試行を開始する(ステップS701)。つぎに、サブコントローラは、担当のサブシステムの端末から1試行分の取引データ群を取得する(ステップS702)。なお、1試行分の取引データ群の取得(ステップS702)は、ステップS701より前に実行されてもよい。また、ステップS701の前後において、サブコントローラ211〜214は、複数回の試行分の取引データ群を取得してもよい。
サブコントローラ211〜214は、ステップS702で取得した1試行分の取引データ群から学習対象データ群を生成し、学習対象データテーブル500に格納する(ステップS703)。
(B)全体学習では、最下流である小売のサブコントローラ211は、その小売のサブシステム101の端末201から、1試行分の取引データ群を取得する。これに対し、小売以外の他のサブコントローラ212〜214は、それぞれ担当のサブシステム102〜104の端末202〜204から、1試行分の特定の取引データ群を取得する。特定の取引データ群とは、試行ID401、ターンID402、1ターン目の受注前在庫量441、遅延時間406を含むデータ群である。
受注量403については、他のサブコントローラ212〜214は、1つ下流のサブコントローラからの発注量407を、受注量403として適用する。また、2ターン目以降の受注前在庫量441、出荷後在庫量442、入荷後在庫量443、および受注残405については、他のサブコントローラ212〜214は、当該受注量403とターンID402に含まれる発生時刻と遅延時間406とを用いて算出する。
掛け率408については、他のサブコントローラ212〜214は、1つ下流のサブコントローラからの学習結果に含まれる掛け率408をターンごとに適用する。また、他のサブコントローラ212〜214は、当該掛け率408と、算出された受注残405と、を用いて、発注量407をターンごとに算出する。これにより、小売以外の他のサブシステム102〜104については、遅延が考慮された取引データ群が得られることになる。
つぎに、サブコントローラ211〜214は、1試行分の学習対象データ群を用いて、ターンごとに、ターンID402の順番で、発注の仕方(掛け率408)を学習する(ステップS704〜S709)。具体的には、サブコントローラ211〜214は、スコアを算出する(ステップS704)。スコアは、たとえば、今回取得した試行ID401の学習対象データについて、特定在庫量522と特定受注残405との和とする。つぎに、サブコントローラは、相関情報を算出する(ステップS705)。相関情報は、状態と行動に基づく2つのデータの相関を示す情報である。たとえば、サブコントローラ211〜214は、相関情報としてスコアを用いる場合、今回取得した試行ID401のスコアを相関情報とする。
また、学習対象データ群が、当該試行ID401の1ターン目からnターン目までのすべての取引データ群を含む場合、サブコントローラ211〜214は、在庫量(たとえば、発注前在庫量)と受注残405との和であるスコアをターンごとに求めて説明変数xiとし、ターンごとの発注量407を目的変数yiとして、式(4)を用いて相関係数(相関情報の一例)を求めてもよい。xavは、xiの平均値であり、yavは、yiの平均値である。サブコントローラ211〜214は、算出した相関情報を記憶デバイス302に保持する。
Figure 2018142199
つぎに、サブコントローラ211〜214は、報酬を算出して更新する(ステップS706)。報酬の初期値は、あらかじめ設定される。サブコントローラ211〜214は、ステップS705で算出した今回の試行ID401での相関情報から前回の試行ID401での相関情報を減算した差分に応じて、報酬の増減分を算出する。そして、サブコントローラ211〜214は、前回の報酬に今回算出した報酬の増減分加算することで、今回の報酬を算出する。これにより、報酬が更新される。
たとえば、相関情報が上述したスコアである場合、サブコントローラ211〜214は、今回の試行ID401でのスコアから前回の試行ID401でのスコアを減算して差分を得る。サブコントローラ211〜214は、差分が正であれば、所定量報酬を減少させ、差分が負であれば、所定量報酬を増加させ、差分が0であれば、報酬を増減させない。
また、相関情報が相関係数である場合、サブコントローラ211〜214は、今回の試行ID401での相関係数から前回の試行ID401での相関係数を減算して差分を得る。サブコントローラ211〜214は、差分が正であれば、所定量報酬を増加させ、差分が負であれば、所定量報酬を減少させ、差分が0であれば、報酬を増減させない。
サブコントローラ211〜214は、行動ごとに評価値Qを算出して更新する(ステップS707)。ここで、行動として掛け率を用いる場合について説明する。掛け率は、たとえば、「1.0」、「1.1」、「1.2」、…、「1.9」のようにあらかじめ複数設定されている。サブコントローラ211〜214は、これらの掛け率を次回の行動候補として、下記式(5)の行動価値関数により、行動候補ごとに評価値Qを算出する。
Q(s,a
←Q(s,a)+α[rt+1+γmaxQ(st+1,a)−Q(s,a)]
・・・・・(5)
αは学習係数で、0<α≦1の範囲をとるパラメータである。γは割引率であり、0<γ≦1の範囲をとるパラメータである。rt+1は、更新後の報酬rである。st+1は、更新後の状態sである。γmaxQ(st+1,a)は、状態st+1の下で、最もQ値の高い行動aを選んだ場合のQ値にγを乗じた値となる。
サブコントローラ211〜214は、最大評価値Qの行動aを選択する(ステップS708)。なお、ここではQ学習におけるε-greedy法のように、評価値Qが高い行動を選択する他、サブコントローラ211〜214は、一定の確率でそれとは異なる行動を選択してもよい。そして、サブコントローラ211〜214は、現在のターンの学習結果を出力する(ステップS709)。ここで、学習結果とは、最新の報酬である。また、実行された試行ID401での現在のターンにおけるQ値を網羅したQテーブルでもよい。学習結果は、試行ID401での現在のターンのスコアも含む。また、学習結果には、状態や発注の仕方(掛け率)が含まれていてもよい。また、出力とは、たとえば、1つ上流のサブコントローラに当該学習結果を送信する処理である。
なお、強化学習ではなくニューラルネットワークによる機械学習の場合、サブコントローラは、ステップS705〜S709に替えて、在庫量(たとえば、発注前在庫量)と受注残405との和であるスコアをターンごとに求めて入力データxiとし、ターンごとの掛け率を出力データyiとして、ニューラルネットワークの重み、すなわち、状態sと行動aとの関係を示す最適化モデルを求め、試行の都度更新してもよい。この場合、サブコントローラ211〜214は、最新の最適化モデルに、今回の試行ID401の学習対象データから得られるスコアを入力データxとして与えることにより、次の行動となる掛け率408を出力データyとして選択してもよい。
このあと、サブコントローラ211〜214は、試行を終了するか否かを判断する(ステップS710)。終了しない場合(ステップS710:No)、ステップS701に戻り、サブコントローラ211〜214は、次の試行を開始する。一方、サブコントローラ211〜214は、たとえば、予備学習の場合、あらかじめ設定された試行回数分ステップS701〜S709の処理を実行した場合に試行を終了する(ステップS710:Yes)。また、サブコントローラ211〜214は、全体学習の場合、メインコントローラ150から試行終了指示を受け付けた場合に試行を終了する(ステップS710:Yes)。
このようにして、サブコントローラ211〜214は、評価値が高かった行動を選択していく(ただし、一定の確率で異なる行動を選択していく)ことで、発注の仕方を試行錯誤を通して学習することができる。
<全体学習処理>
図8は、学習システム200における全体学習処理手順例を示すシーケンス図である。メインコントローラ150は、割当設定を実行する(ステップS801)。割当設定とは、学習結果の提供側サブコントローラと利用側サブコントローラとの組み合わせを設定する処理である。学習結果の提供側サブコントローラとは、自身の学習結果で利用側サブコントローラを学習させるサブコントローラである。利用側サブコントローラとは、提供側サブコントローラの学習結果を用いて学習するサブコントローラである。各サブコントローラ211〜214は、提供側サブコントローラと利用側サブコントローラとのいずれにもなり得る。
具体的には、提供側サブコントローラは、下流側のサブコントローラであり、利用側サブコントローラは、その1つ上流側のサブコントローラである。たとえば、小売のサブコントローラ211が提供側サブコントローラであり、二次卸のサブコントローラ212は、利用側サブコントローラとなる。また、二次卸のサブコントローラ212を提供側サブコントローラとした場合、一次卸のサブコントローラ213は、利用側サブコントローラとなる。
また、本例では、提供側サブコントローラを下流側のサブコントローラとし、利用側サブコントローラをその1つ上流側のサブコントローラとしたが、提供側サブコントローラを、上流側のサブコントローラとし、利用側サブコントローラを、その1つ下流側のサブコントローラとしてもよい。
なお、ここでは、サブコントローラ211〜214は、下流および上流の組み合わせにより割当設定を実行したが、学習結果の提供と利用の関係が直接または間接的に維持されていればよい。たとえば、小売のサブコントローラ211と一次卸のサブコントローラ213は、学習結果の提供と利用の関係が直接または間接的に維持されるため、割当設定として選択してもよい。
このように、割当設定により、メインコントローラ150は、あるサブコントローラからの学習結果の提供先を一意に特定する。なお、図8では、説明上、各サブコントローラ211〜214が提供側サブコントローラとし、その1つ上流のサブコントローラをそれぞれ利用側サブコントローラとする。
メインコントローラ150は、後述するステップS804−1〜804−4において、前回各サブコントローラ211〜214で生成された学習結果を各サブコントローラ211〜214に送信する(ステップS802−1〜802−4)。具体的には、たとえば、メインコントローラ150は、割当設定された提供側サブコントローラの前回の学習結果を、その利用側サブコントローラに送信する。なお、小売のサブコントローラ211は、利用側サブコントローラに設定されないため、メインコントローラ150は、前回の小売りのサブコントローラ211の学習結果を小売のサブコントローラ211に送信する。また、1回目の学習結果の送信(ステップS802−1〜802−4)の場合、前回の学習結果が存在しないため、メインコントローラ150は、ランダムな値を設定した学習結果を送信することとしてもよい。ただし、メインコントローラ150は、小売のサブコントローラ211が実行した予備学習の学習結果を、当該小売のサブコントローラ211に送信してもよい。
メインコントローラ150は、学習開始指示を各サブコントローラ211〜214に送信する(ステップS803−1〜803−4)。
各サブコントローラ211〜214は、学習開始指示(ステップS803−1〜803−4)を受信すると、学習処理を実行する(ステップS804−1〜804−4)。学習処理(ステップS804−1〜804−4)は、図7に示したステップS701〜S709の処理である。ただし、メインコントローラ150から提供側サブシステムの前回の学習結果を受信しているため、スコアの算出(ステップS704)、相関情報の算出(ステップS705)、報酬の算出(ステップS706)において、受信した前回の学習結果に前回のスコア、相関情報、報酬が含まれていれば、ステップS704〜S706の算出に用いられる。
各サブコントローラ211〜214は、学習処理(ステップS804−1〜804−4)で得られた学習結果をメインコントローラ150に送信する(ステップS805−1〜805−4)。この学習結果は、メインコントローラ150の記憶デバイス302に格納され、次回のステップS802−1〜802−4で送信される。
メインコントローラ150は、評価処理を実行する(ステップS806)。評価処理(ステップS806)とは、ステップS805−1〜805−4で受信した学習結果を評価する処理である。具体的には、評価処理(ステップS806)は、サプライチェーン100全体のパフォーマンスが向上しているか否かを評価する処理である。
たとえば、学習結果に報酬が含まれている場合、メインコントローラ150は、サブコントローラ211〜214ごとに、前回の報酬と今回の報酬とを比較する。いずれのサブコントローラ211〜214も報酬が上昇している場合、メインコントローラ150は、サプライチェーン100全体のパフォーマンスが向上していると判断する。
また、学習結果にスコアが含まれている場合、メインコントローラ150は、サブコントローラ211〜214ごとに、前回のスコアと今回のスコアとを比較する。いずれのサブコントローラ211〜214もスコアが下降している場合、メインコントローラ150は、サプライチェーン100全体のパフォーマンスが向上していると判断する。
なお、1回の評価処理(ステップS806)では、偶然サプライチェーン100全体のパフォーマンスが向上していると判断される場合もある。したがって、メインコントローラ150は、さらに、所定の評価条件を満たした場合に、サプライチェーン100全体のパフォーマンスが向上していると判断してもよい。
評価条件としては、たとえば、評価処理(ステップS806)が所定回数実行された場合、いずれのサブコントローラ211〜214の報酬も所定回数連続して上昇した場合、いずれのサブコントローラ211〜214のスコアも所定回数連続して下降した場合、いずれのサブコントローラ211〜214の報酬も報酬のしきい値以上となった場合、いずれのサブコントローラ211〜214のスコアもスコアのしきい値以下となった場合などが挙げられる。これらの評価条件は、矛盾しない限り組み合わせて利用されてもよい。
メインコントローラ150は、全体学習を終了するか否かを判断する(ステップS807)。全体学習の終了の判断基準は、たとえば、評価結果の内容である。具体的には、評価処理(ステップS806)において、サプライチェーン100全体のパフォーマンスが向上していると判断された場合、メインコントローラ150は、全体学習を終了すると判断する(ステップS807:Yes)。一方、サプライチェーン100全体のパフォーマンスが向上していないと判断された場合、メインコントローラ150は、全体学習を終了しないと判断する(ステップS807:No)。
また、サプライチェーン100全体のパフォーマンスが向上していないと判断された場合であっても、全体学習の開始から所定時間経過した場合や、全体学習が所定回数実行された場合に、メインコントローラ150は、全体学習を打ち切って、終了すると判断してもよい(ステップS807:Yes)。
全体学習を終了する場合(ステップS807:Yes)、メインコントローラ150は、各サブコントローラ211〜214に試行終了指示を送信する(S808−1〜808−4)。そして、メインコントローラ150は、最終的な評価処理(ステップS806)の評価結果を出力する(ステップS809)。これにより、全体学習が終了する。
このように、本実施例の学習システム200は、状態(たとえば、在庫量404や受注残405を含む)から行動(たとえば、掛け率408)を得る複数の学習対象(たとえば、サブシステム101〜104)により構成される学習対象群について、各学習対象の行動を学習する。学習システム200は、学習対象群を管理する第1コントローラ(たとえば、サブコントローラ211〜214)と、第1コントローラを管理する第2コントローラ(たとえば、メインコントローラ150)と、を有する。
第2コントローラは、第1コントローラからの学習対象群の各々の学習結果を第1学習結果として取得し(たとえば、ステップS805−1〜S805−4)、学習対象群のうち、ある学習対象(たとえば、小売のサブシステム101)の第1学習結果を他の学習対象(たとえば、二次卸のサブシステム102)に与えるように、第1コントローラに送信し(たとえば、ステップS802−1〜S802−4)、第1学習結果を第1コントローラに送信した結果得られる学習対象群の各々の学習結果を第2学習結果として取得し(たとえば、ステップS805−1〜S805−4)、各第1学習結果と各第2学習結果とに基づいて、学習対象群を評価し(たとえば、ステップS806)、評価結果を出力する(たとえば、ステップS809)。
第1コントローラは、ある学習対象の行動が寄与したデータ(たとえば、発注量407)が遅延を伴って他の学習対象に与えられることにより、他の学習対象の状態を生成し(たとえば、ステップS703)、ある学習対象の行動と、生成された他の学習対象の状態と、に基づいて、他の学習対象の次の行動を選択し(たとえば、ステップS708)、他の学習対象の次の行動を学習結果として第2コントローラに送信する(たとえば、ステップS805−1〜S805−4)。
これにより、状態から行動を得る複数の学習対象により構成される学習対象群の各々の行動を、他の学習対象に伝搬させることで、学習対象群全体の行動の最適化を図ることができる。特に、状態は遅延の影響を受けているため、遅延の影響を考慮して選択された行動を最適化することができる。
また、第1コントローラは、ある学習対象の行動と、生成された他の学習対象の状態と、に基づいて、他の学習対象の次の行動の選択に寄与する報酬を生成し、報酬と、ある学習対象の行動と、生成された他の学習対象の状態と、に基づいて、他の学習対象の次の行動を選択することとしてもよい。
これにより、Q学習により学習対象群の行動の最適化を図ることができる。
また、第1コントローラは、ある学習対象の行動と、生成された他の学習対象の状態と、の相関に基づいて、報酬を生成することとしてもよい。
目的達成に特に関わる行動(掛け率408)が選択しやすくなるように報酬が更新される。したがって、学習対象群の行動最適の高速化を図ることができる。
また、第1コントローラは、報酬を前記学習結果として第2コントローラに送信し、第2コントローラは、各第1学習結果である各報酬と各第2学習結果である各報酬とに基づいて、学習対象群を評価することとしてもよい。
これにより、第1学習結果の各報酬と、第2学習結果の対応する各報酬と、の増減により、学習対象群の評価の適正化を図ることができる。
また、第1コントローラは、他の学習対象の状態に含まれる、増加するほど状態を悪化させる第1特徴量(たとえば、在庫量404)と、減少するほど状態を悪化させる第2特徴量(たとえば、受注残405)と、に基づいて、状態が適正度を示すスコアを算出し、スコアを学習結果として第2コントローラに送信することとしてもよい。
これにより、スコアを小さくするような行動の仕方は、第1特徴量を少なくし、かつ、第2特徴量を増加させることで実現される。したがって、このような行動の仕方を、第1コントローラに学習させることができ、学習対象の行動の最適化を図ることができる。
第2コントローラは、各第1学習結果である各スコアと各第2学習結果である各スコアとに基づいて、学習対象群を評価することとしてもよい。
これにより、第1学習結果の各スコアと、第2学習結果の対応する各スコアと、の増減により、学習対象群の評価の適正化を図ることができる。
このように、深層強化学習によって、いわば試行錯誤的に学習する際に、互いの振る舞いが影響しあうようなサブコントローラのすべてに同時に学習を行わせようとすると学習が進みづらいが、メインコントローラ150によって決めた発注行動をサブコントローラに行わせつつ、部分的なサブコントローラから徐々に学習させることで、全体としての学習が進むようにする。なお、本実施例においては、サプライチェーン100を例として説明を行ったが、複数の車両、複数のロボットなど、他の分散システムであってもよい。
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加、削除、または置換をしてもよい。
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサ301がそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、IC(Integrated Circuit)カード、SDカード、DVD(Digital Versatile Disc)の記録媒体に格納することができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
101〜104 サブシステム
201〜204 端末
211〜214 サブコントローラ
100 サプライチェーン
150 メインコントローラ
200 学習システム
601 通信部
602 取得部
603 評価部
604 更新部
605 選択部
606 出力部
611 通信部
612 評価部
613 設定部
614 制御部

Claims (10)

  1. 状態から行動を得る複数の学習対象により構成された学習対象群について、前記各学習対象の行動を学習する学習システムであって、
    前記学習対象群を管理する第1コントローラと、前記第1コントローラを管理する第2コントローラと、を有し、
    前記第2コントローラは、
    前記第1コントローラからの前記学習対象群の各々の学習結果を第1学習結果として取得し、
    前記学習対象群のうちある学習対象の第1学習結果を他の学習対象に与えるように、前記第1コントローラに送信し、
    前記第1学習結果を前記第1コントローラに送信した結果得られる前記学習対象群の各々の学習結果を第2学習結果として取得し、
    前記各第1学習結果と前記各第2学習結果とに基づいて、前記学習対象群を評価し、
    評価結果を出力し、
    前記第1コントローラは、
    前記ある学習対象の行動が寄与したデータが遅延を伴って前記他の学習対象に与えられることにより、前記他の学習対象の状態を生成し、
    前記ある学習対象の行動と、前記生成された前記他の学習対象の状態と、に基づいて、前記他の学習対象の次の行動を選択し、
    前記他の学習対象の次の行動を前記学習結果として前記第2コントローラに送信する、
    ことを特徴とする学習システム。
  2. 請求項1に記載の学習システムであって、
    前記第1コントローラは、
    前記ある学習対象の行動と、前記生成された前記他の学習対象の状態と、に基づいて、前記他の学習対象の次の行動の選択に寄与する報酬を生成し、
    前記報酬と、前記ある学習対象の行動と、前記生成された前記他の学習対象の状態と、に基づいて、前記他の学習対象の次の行動を選択する、
    ことを特徴とする学習システム。
  3. 請求項2に記載の学習システムであって、
    前記第1コントローラは、
    前記ある学習対象の行動と、前記生成された前記他の学習対象の状態と、の相関に基づいて、前記報酬を生成することを特徴とする学習システム。
  4. 請求項2に記載の学習システムであって、
    前記第1コントローラは、
    前記報酬を前記学習結果として前記第2コントローラに送信し、
    前記第2コントローラは、
    前記各第1学習結果である各報酬と前記各第2学習結果である各報酬とに基づいて、前記学習対象群を評価する、
    ことを特徴とする学習システム。
  5. 請求項1に記載の学習システムであって、
    前記第1コントローラは、
    前記他の学習対象の前記状態に含まれる、増加するほど前記状態を悪化させる第1特徴量と、減少するほど前記状態を悪化させる第2特徴量と、に基づいて、前記状態が適正度を示すスコアを算出し、
    前記スコアを前記学習結果として前記第2コントローラに送信し、
    前記第2コントローラは、
    前記各第1学習結果である各スコアと前記各第2学習結果である各スコアとに基づいて、前記学習対象群を評価する、
    ことを特徴とする学習システム。
  6. 状態から行動を得る複数の学習対象により構成された学習対象群について、前記各学習対象の行動を学習する学習システムによる学習方法であって、
    前記学習システムは、前記学習対象群を管理する第1コントローラと、前記第1コントローラを管理する第2コントローラと、を有し、
    前記学習方法は、
    前記第2コントローラが、
    前記第1コントローラからの前記学習対象群の各々の学習結果を第1学習結果として取得し、
    前記学習対象群のうちある学習対象の第1学習結果を他の学習対象に与えるように、前記第1コントローラに送信し、
    前記第1学習結果を前記第1コントローラに送信した結果得られる前記学習対象群の各々の学習結果を第2学習結果として取得し、
    前記各第1学習結果と前記各第2学習結果とに基づいて、前記学習対象群を評価し、
    評価結果を出力し、
    前記第1コントローラが、
    前記ある学習対象の行動が寄与したデータが遅延を伴って前記他の学習対象に与えられることにより、前記他の学習対象の状態を生成し、
    前記ある学習対象の行動と、前記生成された前記他の学習対象の状態と、に基づいて、前記他の学習対象の次の行動を選択し、
    前記他の学習対象の次の行動を前記学習結果として前記第2コントローラに送信する、
    ことを特徴とする学習方法。
  7. 請求項6に記載の学習方法であって、
    前記学習方法は、
    前記第1コントローラが、
    前記ある学習対象の行動と、前記生成された前記他の学習対象の状態と、に基づいて、前記他の学習対象の次の行動の選択に寄与する報酬を生成し、
    前記報酬と、前記ある学習対象の行動と、前記生成された前記他の学習対象の状態と、に基づいて、前記他の学習対象の次の行動を選択する、
    ことを特徴とする学習方法。
  8. 請求項7に記載の学習方法であって、
    前記学習方法は、
    前記第1コントローラが、
    前記ある学習対象の行動と、前記生成された前記他の学習対象の状態と、の相関に基づいて、前記報酬を生成することを特徴とする学習方法。
  9. 請求項7に記載の学習方法であって、
    前記学習方法は、
    前記第1コントローラが、
    前記報酬を前記学習結果として前記第2コントローラに送信し、
    前記第2コントローラが、
    前記各第1学習結果である各報酬と前記各第2学習結果である各報酬とに基づいて、前記学習対象群を評価する、
    ことを特徴とする学習方法。
  10. 請求項6に記載の学習方法であって、
    前記学習方法は、
    前記第1コントローラが、
    前記他の学習対象の前記状態に含まれる、増加するほど前記状態を悪化させる第1特徴量と、減少するほど前記状態を悪化させる第2特徴量と、に基づいて、前記状態が適正度を示すスコアを算出し、
    前記スコアを前記学習結果として前記第2コントローラに送信し、
    前記第2コントローラが、
    前記各第1学習結果である各スコアと前記各第2学習結果である各スコアとに基づいて、前記学習対象群を評価する、
    ことを特徴とする学習方法。
JP2017036435A 2017-02-28 2017-02-28 学習システムおよび学習方法 Expired - Fee Related JP6718834B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017036435A JP6718834B2 (ja) 2017-02-28 2017-02-28 学習システムおよび学習方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017036435A JP6718834B2 (ja) 2017-02-28 2017-02-28 学習システムおよび学習方法

Publications (2)

Publication Number Publication Date
JP2018142199A true JP2018142199A (ja) 2018-09-13
JP6718834B2 JP6718834B2 (ja) 2020-07-08

Family

ID=63528086

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017036435A Expired - Fee Related JP6718834B2 (ja) 2017-02-28 2017-02-28 学習システムおよび学習方法

Country Status (1)

Country Link
JP (1) JP6718834B2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020080103A (ja) * 2018-11-14 2020-05-28 富士通株式会社 強化学習方法、強化学習プログラムおよび強化学習装置
JP2020123356A (ja) * 2019-01-30 2020-08-13 株式会社日立製作所 深層強化学習及び転移学習を用いた製造ディスパッチングのためのシステム
JP2020187681A (ja) * 2019-05-17 2020-11-19 sglab株式会社 発注管理装置、発注管理方法及び発注管理プログラム
CN112462572A (zh) * 2020-12-09 2021-03-09 清华大学 光刻胶、光刻胶的图案化方法及生成印刷电路板的方法
JPWO2021064770A1 (ja) * 2019-09-30 2021-04-08
WO2021065290A1 (ja) * 2019-10-03 2021-04-08 パナソニックIpマネジメント株式会社 店舗支援システム、学習装置、店舗支援方法、学習済みモデルの生成方法及びプログラム
CN113366394A (zh) * 2019-03-11 2021-09-07 株式会社日立制作所 实时控制器及使用该实时控制器的分散控制系统、工业机械

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005111603A (ja) * 2003-10-07 2005-04-28 Lazona Inc ロボットおよびロボット管理装置
JP2010134907A (ja) * 2008-11-04 2010-06-17 Honda Motor Co Ltd 強化学習システム
JP2011204036A (ja) * 2010-03-25 2011-10-13 Institute Of National Colleges Of Technology Japan 経験強化型強化学習システム、経験強化型強化学習方法および経験強化型強化学習プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005111603A (ja) * 2003-10-07 2005-04-28 Lazona Inc ロボットおよびロボット管理装置
JP2010134907A (ja) * 2008-11-04 2010-06-17 Honda Motor Co Ltd 強化学習システム
JP2011204036A (ja) * 2010-03-25 2011-10-13 Institute Of National Colleges Of Technology Japan 経験強化型強化学習システム、経験強化型強化学習方法および経験強化型強化学習プログラム

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020080103A (ja) * 2018-11-14 2020-05-28 富士通株式会社 強化学習方法、強化学習プログラムおよび強化学習装置
JP7124655B2 (ja) 2018-11-14 2022-08-24 富士通株式会社 強化学習方法、強化学習プログラムおよび強化学習装置
JP2020123356A (ja) * 2019-01-30 2020-08-13 株式会社日立製作所 深層強化学習及び転移学習を用いた製造ディスパッチングのためのシステム
CN113366394A (zh) * 2019-03-11 2021-09-07 株式会社日立制作所 实时控制器及使用该实时控制器的分散控制系统、工业机械
CN113366394B (zh) * 2019-03-11 2023-10-10 株式会社日立制作所 实时控制器及使用该实时控制器的分散控制系统、工业机械
JP2020187681A (ja) * 2019-05-17 2020-11-19 sglab株式会社 発注管理装置、発注管理方法及び発注管理プログラム
JPWO2021064770A1 (ja) * 2019-09-30 2021-04-08
WO2021064770A1 (ja) * 2019-09-30 2021-04-08 日本電気株式会社 システム、方法及び制御装置
JP7188609B2 (ja) 2019-09-30 2022-12-13 日本電気株式会社 システム、方法及び制御装置
WO2021065290A1 (ja) * 2019-10-03 2021-04-08 パナソニックIpマネジメント株式会社 店舗支援システム、学習装置、店舗支援方法、学習済みモデルの生成方法及びプログラム
CN112462572A (zh) * 2020-12-09 2021-03-09 清华大学 光刻胶、光刻胶的图案化方法及生成印刷电路板的方法

Also Published As

Publication number Publication date
JP6718834B2 (ja) 2020-07-08

Similar Documents

Publication Publication Date Title
JP6718834B2 (ja) 学習システムおよび学習方法
JP6756048B2 (ja) コンピュータリソースのための予測的資産最適化
Li et al. Reinforcement learning for joint pricing, lead-time and scheduling decisions in make-to-order systems
Balaji et al. Orl: Reinforcement learning benchmarks for online stochastic optimization problems
JP6514342B2 (ja) オンライン予測システムおよび方法
CN112052071B (zh) 强化学习和机器学习相结合的云软件服务资源分配方法
US11513851B2 (en) Job scheduler, job schedule control method, and storage medium
EP3371764A1 (en) Systems and methods for pricing optimization with competitive influence effects
Anufriev et al. Learning cycles in Bertrand competition with differentiated commodities and competing learning rules
Boute et al. Coordinating lead times and safety stocks under autocorrelated demand
US11301763B2 (en) Prediction model generation system, method, and program
JP7047911B2 (ja) 情報処理システム、情報処理方法及び記憶媒体
JP7308073B2 (ja) 物流管理システム
US11513866B1 (en) Method and system for managing resource utilization based on reinforcement learning
JP6530559B2 (ja) 最適化システムおよび最適化方法
US9466031B1 (en) Data-agnostic methods and systems for ranking and updating beliefs
JP6689316B2 (ja) 計算機システム及び学習制御方法
US11188568B2 (en) Prediction model generation system, method, and program
Yan et al. GA based algorithm for staff scheduling considering learning-forgetting effect
Zaman et al. An efficient methodology for robust assignment problem
JPWO2019053828A1 (ja) 情報分析装置、情報分析方法および情報分析プログラム
JP7373384B2 (ja) 計算機システム及びスケジューリングシステムの検証方法
JP7262359B2 (ja) データ分析装置およびデータ分析方法
KR et al. Solving a job shop scheduling problem
US20230129665A1 (en) Reinforcement learning simulation of supply chain graph

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190304

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200204

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200316

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200519

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200615

R150 Certificate of patent or registration of utility model

Ref document number: 6718834

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees