JP7364699B2 - 機械学習装置、コンピュータ装置、制御システム、及び機械学習方法 - Google Patents

機械学習装置、コンピュータ装置、制御システム、及び機械学習方法 Download PDF

Info

Publication number
JP7364699B2
JP7364699B2 JP2021575779A JP2021575779A JP7364699B2 JP 7364699 B2 JP7364699 B2 JP 7364699B2 JP 2021575779 A JP2021575779 A JP 2021575779A JP 2021575779 A JP2021575779 A JP 2021575779A JP 7364699 B2 JP7364699 B2 JP 7364699B2
Authority
JP
Japan
Prior art keywords
command
machine learning
behavior information
control device
commands
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.)
Active
Application number
JP2021575779A
Other languages
English (en)
Other versions
JPWO2021157515A1 (ja
Inventor
修二 佐藤
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.)
Fanuc Corp
Original Assignee
Fanuc Corp
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 Fanuc Corp filed Critical Fanuc Corp
Publication of JPWO2021157515A1 publication Critical patent/JPWO2021157515A1/ja
Application granted granted Critical
Publication of JP7364699B2 publication Critical patent/JP7364699B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4155Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/41865Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by job scheduling, process planning, material flow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Manufacturing & Machinery (AREA)
  • Automation & Control Theory (AREA)
  • Biomedical Technology (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Algebra (AREA)
  • Probability & Statistics with Applications (AREA)
  • Manipulator (AREA)
  • Numerical Control (AREA)

Description

本発明は、機械学習装置、コンピュータ装置、制御システム、及び機械学習方法に関する。
例えば、工作機械やロボット等の産業機械を制御する制御装置と接続されたコンピュータ装置(例えば、パーソナルコンピュータ、タブレット端末、スマートフォン等)には、コンピュータ装置上で動作するアプリケーションが制御装置内のデータにアクセスするために、制御装置とのインタフェースとなる通信処理部が存在している。
制御装置内のデータにアクセスするアプリケーションには、ほとんど間隔を空けず頻繁にアクセスするもの、定期的にアクセスするもの、散発的にアクセスするものがある。
このようなアプリケーションが多数同時に動作している状態においては、制御装置内のデータに頻繁にアクセスするアプリケーションに妨げられて、他のアプリケーションのアクセスがしばしば遅延し、アプリケーションの動作が全体的に緩慢になることがある。
この点、コンピュータ装置としてのパーソナルコンピュータのアプリケーションで設定したデータの優先度を、制御装置としての数値制御装置へ伝達し、パーソナルコンピュータのアプリケーションから複数のデータが要求されたとき、数値制御装置は優先度の高いデータを先に送信しバッファへ格納するとともに、数値制御装置の負荷と応答許容時間に従って送信間隔を調整する技術が知られている。例えば、特許文献1参照。
特許第6517706号
コンピュータ装置と接続された制御装置において、全体のパフォーマンスを考慮しないアプリケーションが制御装置へ頻繁にアクセスしたり、非常に多くのアプリケーションが同時に制御装置へアクセスしたりすると、アクセスの遅延によるパフォーマンス低下や、処理の遅延が発生する。
図10は、コンピュータ装置としてのパーソナルコンピュータ上で動作する複数のアプリケーションが出力するコマンドのタイムチャートの一例を示す図である。なお、図10は、コンピュータ装置としてのパーソナルコンピュータが4つのアプリケーションA1-A4を実行する場合を示す。また、図10では、円形、四角形、ひし形、三角形のコマンドの順に緊急度が高いことを示す。
図10に示すように、アプリケーションA1は、緊急度が比較的高いコマンドを定期的に出力し、制御装置内のデータにアクセスする。アプリケーションA2は、緊急度が最も高いコマンドを散発的に出力し、制御装置内のデータにアクセスする。アプリケーションA3は、コマンドを頻繁に出力し、制御装置内のデータに頻繁にアクセスする。アプリケーションA4は、定期的に複数のコマンドを出力し、制御装置内のデータにアクセスする。
図10の場合、例えば、時間T1、T2において、アプリケーションA1-A4のコマンドが集中し、制御装置に対して過度なアクセスが発生する。このような状態で発生する問題としては、定期的に処理すべきデータのアクセスが不定期になる、至急処理すべきイベントが発生していても処理が遅延する、アプリケーションの動作が全体的に緩慢になる等が存在する。
特許文献1では、データ要求のコマンドに対して数値制御装置が返すデータの効率化に限定されており、コンピュータ装置としてのパーソナルコンピュータから制御装置としての数値制御装置へのコマンド配信の効率化や負荷軽減はできず、書込み要求の送信データには効果がない。
また、従来技術では、制御装置へのコマンド配信を調整するには、個々のアプリケーションを修正する必要がある。
そこで、データ通信のコマンドが制御装置へ過度に配信され過負荷となることを防止するとともに、コマンドの配信遅延時間を短縮することが望まれている。
(1)本開示の機械学習装置の一態様は、通信可能に接続された制御装置にアクセスするためのコマンドを発行するコンピュータ装置に対して機械学習を行う機械学習装置であって、前記コンピュータ装置上で動作する1つ以上のアプリケーションの各々が指令する前記制御装置内のデータにアクセスするためのコマンドを監視し、少なくとも前記コマンドの配信スケジュールと、前記配信スケジュールに基づいて配信される前記コマンドの受付時刻及び配信時刻とを含む状態データを取得する状態データ取得部と、前記状態データに含まれる前記配信スケジュールの修正情報を含む行動情報を前記コンピュータ装置に出力する行動情報出力部と、前記コマンドが前記制御装置へ配信されるまでの前記コマンド毎の遅延時間と、配信される全ての前記コマンドの平均配信間隔と、に基づいて、前記行動情報に対する報酬を計算する報酬計算部と、前記報酬計算部により計算される報酬に基づいて、前記状態データ及び前記行動情報に係る価値関数を更新する価値関数更新部と、を備える。
(2)本開示のコンピュータ装置の一態様は、(1)の機械学習装置を備え、前記機械学習装置によって前記配信スケジュールが機械学習される。
(3)本開示の制御システムの一態様は、(1)の機械学習装置と、前記機械学習装置によって前記配信スケジュールが機械学習されるコンピュータ装置と、を備える。
(4)本開示の機械学習方法の一態様は、通信可能に接続された制御装置にアクセスするためのコマンドを発行するコンピュータ装置に対して機械学習を行う機械学習方法であって、前記コンピュータ装置上で動作する1つ以上のアプリケーションの各々が指令する前記制御装置内のデータにアクセスするためのコマンドを監視し、少なくとも前記コマンドの配信スケジュールと、前記配信スケジュールに基づいて配信される前記コマンドの受付時刻及び配信時刻とを含む状態データを取得し、前記状態データに含まれる前記配信スケジュールの修正情報を含む行動情報を前記コンピュータ装置に出力し、前記コマンドが前記制御装置へ配信されるまでの前記コマンド毎の遅延時間と、配信される全ての前記コマンドの平均配信間隔と、に基づいて、前記行動情報に対する報酬を計算し、計算される報酬に基づいて、前記状態データ及び前記行動情報に係る価値関数を更新する。
一態様によれば、データ通信のコマンドが制御装置へ過度に配信され過負荷となることを防止するとともに、コマンドの配信遅延時間を短縮することができる。
一実施形態に係る制御システムの機能的構成例を示す機能ブロック図である。 配信スケジュールを含むコマンドテーブルの一例を示す図である。 機械学習装置の機能的構成例を示す機能ブロック図である。 報酬計算部により計算されたコマンド毎の報酬の一例を示す図である。 更新前及び更新後のコマンドのタイムチャートの一例を示す図である。 一実施形態におけるQ学習時の機械学習装置40の動作を示すフローチャートである。 最適化行動情報出力部による最適化行動情報の生成時の動作を示すフローチャートである。 制御システムの構成の一例を示す図である。 制御システムの構成の一例を示す図である。 パーソナルコンピュータ上で動作する複数のアプリケーションが出力するコマンドのタイムチャートの一例を示す図である。
以下、本開示の一実施形態について、図面を用いて説明する。
<一実施形態>
図1は、一実施形態に係る制御システムの機能的構成例を示す機能ブロック図である。ここでは、産業機械として工作機械を例示し、制御装置として数値制御装置を例示する。本発明は、工作機械に限定されず、例えば産業用ロボット、サービス用ロボット等にも適用可能である。また、産業機械がロボットの場合、制御装置は、ロボット制御装置等を含む。また、コンピュータ装置として、パーソナルコンピュータを例示するが、本発明はパーソナルコンピュータに限定されず、例えばタブレット端末、スマートフォン等のいわゆるクライアント端末に適用可能である。
図1に示すように、制御システム1は、工作機械10、数値制御装置20、パーソナルコンピュータ30、及び機械学習装置40を有する。
工作機械10、数値制御装置20、パーソナルコンピュータ30、及び機械学習装置40は、図示しない接続インタフェースを介して互いに直接接続されてもよい。また、工作機械10、数値制御装置20、パーソナルコンピュータ30、及び機械学習装置40は、LAN(Local Area Network)やインターネット等の図示しないネットワークを介して相互に接続されていてもよい。この場合、工作機械10、数値制御装置20、パーソナルコンピュータ30、及び機械学習装置40は、かかる接続によって相互に通信を行うための図示しない通信部を備えている。なお、後述するように、パーソナルコンピュータ30は、機械学習装置40を含むようにしてもよい。また、数値制御装置20は、工作機械10に含まれてもよい。
工作機械10は、当業者にとって公知の工作機械であり、後述する数値制御装置20からの制御情報に基づいて動作する。
数値制御装置20は、当業者にとって公知の数値制御装置であり、制御情報に基づいて動作指令を生成し、生成した動作指令を工作機械10に送信する。これにより、数値制御装置20は、工作機械10の動作を制御する。また、数値制御装置20は、後述するパーソナルコンピュータ30上で動作するn個のアプリケーションAP1-APnの各々が数値制御装置20内のデータにアクセスするためのデータ通信のコマンドを受信し、受信したコマンドの順にデータをパーソナルコンピュータ30に送信する。ここで、nは2以上の整数である。
<パーソナルコンピュータ30>
パーソナルコンピュータ30は、中央処理部301、データ通信インタフェース部302、コマンド処理部303、通信処理部304、及び記憶部305を有する。
中央処理部301は、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、CMOS(Complementary Metal-Oxide-Semiconductor)メモリ等を有し、これらはバスを介して相互に通信可能に構成される、当業者にとって公知のものである。
CPUはパーソナルコンピュータ30を全体的に制御するプロセッサである。CPUは、ROMに格納されたシステムプログラム及びn個のアプリケーションAP1-APnのプログラムを、バスを介して読み出し、前記システムプログラム及びアプリケーションAP1-APnのプログラムに従ってパーソナルコンピュータ30全体を制御する。RAMには一時的な計算データや表示データ等の各種データが格納される。また、CMOSメモリは図示しないバッテリでバックアップされ、数値制御装置20の電源がオフされても記憶状態が保持される不揮発性メモリとして構成される。
データ通信インタフェース部302は、一般的な通信インタフェースであり、例えば、バッファ(図示しない)を有する。データ通信インタフェース部302は、数値制御装置20内のデータにアクセスするためのデータ通信のコマンドを受信し、受信したコマンドデータを一時的にバッファ(図示しない)に格納する。
コマンド処理部303は、例えば、データ通信インタフェース部302のバッファ(図示しない)に格納されたコマンドを、配信スケジュールに基づいて取得し、取得したコマンドを通信処理部304を介して配信する。
ここで、配信スケジュールについて説明する。本実施形態では、配信スケジュールとして、例えば、データ通信インタフェース部302のバッファに格納されるコマンドに対して、各コマンドの「配信順序」及び「配信間隔」を定めたものを例示する。
このため、本実施形態では、配信スケジュールを決定するための構成として、コマンドテーブルCTを導入する。コマンドテーブルCTとは、数値制御装置20内のデータにアクセスするためのデータ通信のコマンドに対して、「コマンド番号」、「コマンド受付番号」、「コマンド優先度Pa」、「指令プロセスID」、「プロセス優先度Pb」、「総合優先度Ps」、「必要処理時間Tc」、「遅延係数Td」、及び「配信スケジュール」等のデータを対応づけた、コマンド番号をインデックスとする配列テーブルである。
コマンドテーブルCT内の「コマンド番号」は、アプリケーションAP1-APnが指令するコマンドそれぞれを識別するための識別番号であり、コマンドテーブルCTにおけるインデックスである。コマンド番号は、当該コマンドを発行するアプリケーションAPi(1≦i≦n)毎に識別されるものとする。
コマンドテーブルCT内の「コマンド受付番号」は、データ通信インタフェース部302がアプリケーションAP1-APnの各々から受信し、バッファ(図示しない)に格納したコマンドの受付番号を示す。
コマンドテーブルCT内の「コマンド優先度Pa」は、当該コマンドの優先度を示す値であり、値が高いほど優先的に実行されるように予め設定されるものとする。なお、「コマンド優先度Pa」は、値が小さいほど優先的に実行されるように予め設定するようにしてもよい。
コマンドテーブルCT内の「指令プロセスID」は、プロセスIDであり、プロセスの起動時にパーソナルコンピュータ30のOS(Operating System)によって割り当てられ、OSや他のプロセスがそのプロセスを指定して働きかけを行う際の識別子である。
コマンドテーブルCT内の「プロセス優先度Pb」は、コマンドを指令したプロセスの優先度を示す係数である。「プロセス優先度Pb」は、例えば、初期値として「1」が設定され、後述する機械学習装置40により選択される行動に含まれる少なくとも1つの係数パラメータである。
コマンドテーブルCT内の「総合優先度Ps」は、「コマンド優先度Pa」と「プロセス優先度Pb」とを合計した値であり、値が高い順序でコマンドを配信する。なお、例えば、2つ以上の異なるコマンドに対して「総合優先度Ps」が同じ場合、コマンド処理部303は、「コマンド優先度Pa」が高い方のコマンドを優先的に配信するように予め設定してもよい。
なお、コマンド処理部303は、「プロセス優先度Pb」が高い方のコマンドを優先的に配信するように予め設定してもよい。
コマンドテーブルCT内の「必要処理時間Tc」は、当該コマンドの処理に必要な時間を示し、次のコマンド配信はこの時間以上間隔を空けることが望ましい。
コマンドテーブルCT内の「遅延係数Td」は、「必要処理時間Tc」に基づいてコマンドの配信間隔を調整する時間係数である。具体的には、各コマンドの「必要処理時間Tc」に該コマンドの「遅延係数Td」を加算した値を当該コマンドの「配信間隔Ts」とする。「遅延係数Td」を調整することで、各コマンドの最適な配信間隔を調整することができる。
コマンドテーブルCT内の「配信スケジュール」の「配信順序」は、上述したように、「総合優先度Ps」に基づいて、コマンド処理部303がデータ通信インタフェース部302のバッファ(図示しない)に格納されたコマンドを配信する順序を示す。
コマンドテーブルCT内の「配信スケジュール」の「配信間隔Ts」は、「必要処理時間Tc」と「遅延係数Td」とを合計した値であり、コマンド処理部303は「配信間隔Ts」の時間間隔でコマンドを配信する。
なお、機械学習装置40により学習を開始するときのコマンドテーブルCTは、ユーザにより任意に設定してもよい。
図2は、コマンドテーブルCTの一例を示す図である。図2を参照すると、コマンドテーブルCTは、説明を簡単にするために、5つのコマンドに係るデータの配列が格納されている。
図2に示すように、これら5つのコマンドに対して、配信順序を総合優先度の値の大きな順に設定されている。また、総合優先度の値が同じ値となるコマンド番号18とコマンド番号8については、前述したとおり、「コマンド優先度Pa」の値が高いコマンド番号8を優先していることがわかる。
また、各コマンドの配信間隔は、前述したように、各コマンドの必要処理時間に各コマンドの遅延係数を加算した値が設定されている。
そして、後述するように、機械学習装置40は、「プロセス優先度Pb」及び「遅延係数Td」を行動として、様々な行動を、例えば、ある方策に基づいて選択することにより、探索しながら、強化学習を行うことで、最適な配信スケジュールを選択することが可能となる。
通信処理部304は、当業者にとって公知の通信部であり、数値制御装置20との間でデータや加工プログラム等の送受信を行う。
具体的には、通信処理部304は、コマンド処理部303から受信したコマンドを順次に数値制御装置20に送信し、送信したコマンドに対するデータを受信する。
記憶部305は、RAMやHDD(Hard Disk Drive)等である。記憶部305は、システムプログラム及びn個のアプリケーションAP1-APnのプログラム、及びコマンドテーブルCT等を記憶する。
<機械学習装置40>
機械学習装置40は、パーソナルコンピュータ30がアプリケーションAP1-APnのプログラムを実行することで、データ通信インタフェース部302のバッファ(図示しない)に格納されたアプリケーションAP1-APnの未配信のコマンドに対する配信スケジュールを強化学習する装置である。
機械学習装置40に含まれる各機能ブロックの説明に先立って、まず強化学習の基本的な仕組みについて説明する。エージェント(本実施形態における機械学習装置40に相当)は、環境(本実施形態における数値制御装置20及びパーソナルコンピュータ30に相当)の状態を観測し、或る行動を選択し、選択した行動に基づいて環境が変化する。環境の変化に伴って、何らかの報酬が与えられ、与えられた報酬に基づいて、エージェントはより良い行動を選択できるよう、学習する。
教師あり学習が、完全な正解を示すのに対して、強化学習における報酬は、環境の一部の変化に基づく断片的な値であることが多い。このため、エージェントは、将来にわたっての得られる報酬の合計を最大にするように学習する。
このように、強化学習では、行動を学習することにより、環境に行動が与える相互作用を踏まえて適切な行動を学習、すなわち将来的に得られる報酬を最大にするための学習する方法を学ぶ。これは、本実施形態において、例えば、データ通信のコマンドが数値制御装置20へ過度に配信され過負荷となることを防止しつつ、コマンドの配信遅延時間を短縮するための行動情報を選択するという、未来に影響をおよぼすような行動を獲得できることを表している。
ここで、強化学習としては、任意の学習方法を用いることができるが、以下の説明では、或る環境の状態sの下で、行動aを選択する価値関数Q(s,a)を学習する方法であるQ学習(Q-learning)を用いる場合を例にとって説明をする。
Q学習では、或る状態sのとき、取り得る行動aのなかから、価値関数Q(s,a)の最も高い行動aを最適な行動として選択することを目的とする。
しかしながら、Q学習を最初に開始する時点では、状態sと行動aとの組合せについて、価値関数Q(s,a)の正しい値は全く分かっていない。そこで、エージェントは、或る状態sの下で様々な行動aを選択し、その時の行動aに対して、与えられる報酬に基づいて、より良い行動の選択をすることにより、正しい価値関数Q(s,a)を学習していく。
また、将来にわたって得られる報酬の合計を最大化したいので、最終的にQ(s,a)=E[Σ(γ)r]となるようにすることを目指す。ここでE[]は期待値を表し、tは時刻、γは後述する割引率と呼ばれるパラメータ、rは時刻tにおける報酬、Σは時刻tによる合計である。この式における期待値は、最適な行動に従って状態変化した場合の期待値である。しかしQ学習の過程において最適な行動が何であるのかは不明であるので、様々な行動を行うことにより、探索しながら強化学習をする。このような価値関数Q(s,a)の更新式は、例えば、次の数1式により表すことができる。
Figure 0007364699000001
上記の数1式において、sは、時刻tにおける環境の状態を表し、aは、時刻tにおける行動を表す。行動aにより、状態はst+1に変化する。rt+1は、その状態の変化により得られる報酬を表している。また、maxの付いた項は、状態st+1の下で、その時に分かっている最もQ値の高い行動aを選択した場合のQ値にγを乗じたものになる。ここで、γは、0<γ≦1のパラメータで、割引率と呼ばれる。また、αは、学習係数で、0<α≦1の範囲とする。
上述した数1式は、試行aの結果、返ってきた報酬rt+1を元に、状態sにおける行動aの価値関数Q(s,a)を更新する方法を表している。
この更新式は、状態sにおける行動aの価値関数Q(s,a)よりも、行動aによる次の状態st+1における最良の行動の価値max Q(st+1,a)の方が大きければ、Q(s,a)を大きくし、逆に小さければ、Q(s,a)を小さくすることを示している。つまり、或る状態における或る行動の価値を、それによる次の状態における最良の行動の価値に近づける。ただし、その差は、割引率γと報酬rt+1のあり方により変わってくるが、基本的には、ある状態における最良の行動の価値が、それに至る一つ前の状態における行動の価値に伝播していく仕組みになっている。
ここで、Q学習では、すべての状態行動ペア(s,a)についてのQ(s,a)のテーブルを作成して、学習を行う方法がある。しかし、すべての状態行動ペアのQ(s,a)の値を求めるには状態数が多すぎて、Q学習が収束するのに多くの時間を要してしまう場合がある。
そこで、公知のDQN(Deep Q-Network)と呼ばれる技術を利用するようにしてもよい。具体的には、価値関数Qを適当なニューラルネットワークを用いて構成し、ニューラルネットワークのパラメータを調整することにより、価値関数Qを適当なニューラルネットワークで近似することにより価値関数Q(s,a)の値を算出するようにしてもよい。DQNを利用することにより、Q学習が収束するのに要する時間を短くすることが可能となる。なお、DQNについては、例えば、以下の非特許文献に詳細な記載がある。
<非特許文献>
「Human-level control through deep reinforcement learning」、Volodymyr Mnih1著[online]、[平成29年1月17日検索]、インターネット〈URL:http://files.davidqiu.com/research/nature14236.pdf〉
以上説明をしたQ学習を機械学習装置40が行う。具体的には、機械学習装置40は、データ通信インタフェース部302のバッファ(図示しない)に格納された未配信のコマンドに対するコマンドテーブルCTと、データ通信インタフェース部302が各コマンドを受信した受付時刻、及びコマンド処理部303が通信処理部304を介して各コマンドを配信した配信時刻と、を状態sとし、状態sに係るコマンドテーブルCTに含まれる配信スケジュールを調整するパラメータの設定、変更を行動aとして、選択する価値関数Qを学習する。ここでは、パラメータとして、「プロセス優先度Pb」及び「遅延係数Td」を例示する。
機械学習装置40は、アプリケーションAP1-APnの各々から指令されるコマンドを監視し、コマンドテーブルCTと、コマンドテーブルCTの「配信スケジュール」に従って配信される各コマンドの受付時刻及び配信時刻と、を含む状態情報(状態データ)sを観測して、行動aを決定する。機械学習装置40は、行動aを決定するたびに報酬が返ってくる。機械学習装置40は、例えば、将来にわたっての報酬の合計が最大になるように最適な行動aを試行錯誤的に探索する。そうすることで、機械学習装置40は、パーソナルコンピュータ30がアプリケーションAP1-APnを実行することで取得される、コマンドテーブルCTと、コマンドテーブルCTの「配信スケジュール」とに従って配信される各コマンドの受付時刻及び配信時刻と、を含む状態sに対して、最適な行動a(すなわち「プロセス優先度Pb」及び「遅延係数Td」)を選択することが可能となる。
図3は、機械学習装置40の機能的構成例を示す機能ブロック図である。
上述した強化学習を行うために、図3に示すように、機械学習装置40は、状態データ取得部401、判定データ取得部402、学習部403、行動情報出力部404、価値関数記憶部405、最適化行動情報出力部406、及び制御部407を備える。学習部403は報酬計算部431、価値関数更新部432、及び行動情報生成部433を備える。制御部407は、状態データ取得部401、判定データ取得部402、学習部403、行動情報出力部404、及び最適化行動情報出力部406の動作を制御する。
状態データ取得部401は、パーソナルコンピュータ30から数値制御装置20へのデータ通信の状態として、コマンドテーブルCTと、コマンドテーブルCTの「配信スケジュール」に従って配信される、後述するように予め設定された特定時間内に受け付けた全ての各コマンドの受付時刻及び配信時刻と、を含む状態データsを、パーソナルコンピュータ30から取得する。この状態データsは、Q学習における、環境状態sに相当する。
状態データ取得部401は、取得した状態データsを判定データ取得部402及び学習部403に出力する。
なお、最初にQ学習を開始する時点でのコマンドテーブルCTは、上述したように、ユーザが設定してもよい。
状態データ取得部401は、取得した状態データsを機械学習装置40に含まれる図示しない記憶部に記憶してもよい。この場合、後述する判定データ取得部402及び学習部403は、状態データsを機械学習装置40の記憶部(図示しない)から読み込んでもよい。
判定データ取得部402は、状態データ取得部401から受信したコマンドテーブルCTと、予め設定された特定時間内に受け付けた全ての各コマンドの受付時刻及び配信時刻とを、定期的に解析して判定データを取得する。
具体的には、判定データ取得部402は、特定時間内に受け付けた全てのコマンドについて、予め設定した所定の時間(例えば、1分間)毎にデータ通信インタフェース部302が受け付けた全てのコマンドの平均配信間隔、各コマンドの配信遅延時間、コマンド優先度等を、判定データとして取得する。判定データ取得部402は、取得した判定データを学習部403に出力する。
なお、コマンドの平均配信間隔とは、予め設定した所定の時間(例えば、1分間)に受け付けたコマンドの配信間隔の平均値である。また、各コマンドの配信遅延時間とは、予め設定した所定の時間(例えば、1分間)に受け付けた各コマンドの受付時刻と配信時刻との差である。
学習部403は、或る状態データ(環境状態)sの下で、或る行動aを選択する場合の価値関数Q(s,a)を学習する部分である。具体的には、学習部403は、報酬計算部431、価値関数更新部432、及び行動情報生成部433を有する。
なお、学習部403は、学習を継続するかどうかを判断する。学習を継続するかどうかは、例えば、機械学習を始めてからの試行回数が最大試行回数に達したかどうか、又は、機械学習を始めてからの経過時間が所定時間を超えた(又は以上)かどうかに基づいて判断することができる。
報酬計算部431は、或る状態sの下で、コマンドテーブルCTの「プロセス優先度Pb」及び「遅延係数Td」の調整である行動aを選択した場合の報酬を算出する部分である。
ここで、行動aに対する報酬の計算例を説明する。
具体的には、先ず、報酬計算部431は、例えば、予め設定された特定時間内に受け付けたコマンドすべてについて、前述したように、判定データ取得部402により取得された平均配信間隔Ta、配信遅延時間Tb、及びコマンド優先度Paに基づいてコマンド毎の評価値Vを算出する。なお、予め設定された特定時間としては、パーソナルコンピュータ30上で実行されるアプリケーションAP1-APnが同時並行的に実行される時間を設定することが好ましい。また、特定時間は、前述の所定の時間(例えば、1分間)と同じでもよく、当該所定の時間(例えば、1分間)を含んでもよい。
評価値の算出例として以下の数式(数2式)を例示する。
[数2]
V=平均配信間隔Ta×a-配信遅延時間Tb×コマンド優先度Pa×a
ここで、a及びaは係数であり、例えば、「20」及び「1」にそれぞれ設定される。なお、a及びaの値はこれに限定されず、要求される機械学習の精度等に応じて決定されてもよい。
そして、報酬計算部431は、特定時間内に受け付けた全てのコマンドに対して評価値Vを算出し、算出された全ての評価値の平均値を行動aの報酬rとする。こうすることで、行動aは、判定対象となったコマンドの配信遅延時間が小さいほど、大きな報酬を得ることができる。また、判定対象となったコマンドの平均配信間隔が大きいほど、大きな報酬を得ることができる。
図4は、報酬計算部431により計算されたコマンド(コマンド番号)毎の評価値Vの一例を示す図である。なお、数2式の平均配信間隔Taは、各コマンドの配信間隔の平均値(平均配信間隔)であり、図4の場合「21」である。そして、図4に示すとおり、各コマンドの評価値を算出し、算出された全ての評価値の平均値(=176)を報酬rとする。
価値関数更新部432は、状態sと、行動aと、行動aを状態sに適用した場合の状態s´と、上記のようにして算出された報酬の値rと、に基づいてQ学習を行うことにより、価値関数記憶部405が記憶する価値関数Qを更新する。
価値関数Qの更新は、オンライン学習で行ってもよく、バッチ学習で行ってもよく、ミニバッチ学習で行ってもよい。
オンライン学習とは、或る行動aを現在の状態sに適用することにより、状態sが新たな状態s´に遷移する都度、即座に価値関数Qの更新を行うという学習方法である。また、バッチ学習とは、或る行動aを現在の状態sに適用することにより、状態sが新たな状態s´に遷移することを繰り返すことにより、学習用のデータを収集し、収集した全ての学習用データを用いて、価値関数Qの更新を行うという学習方法である。さらに、ミニバッチ学習とは、オンライン学習と、バッチ学習の中間的な、ある程度学習用データが溜まるたびに価値関数Qの更新を行うという学習方法である。
行動情報生成部433は、現在の状態sに対して、Q学習の過程における行動aを選択する。行動情報生成部433は、Q学習の過程において、コマンドテーブルCTの「プロセス優先度Pb」及び「遅延係数Td」を修正する動作(Q学習における行動aに相当)を行わせるために、行動情報aを生成し、生成した行動情報aを行動情報出力部404に対して出力する。
より具体的には、行動情報生成部433は、例えば、状態sに含まれる、コマンドテーブルCTの「プロセス優先度Pb」、及び「遅延係数Td」に対して、行動aに含まれる「プロセス優先度Pb」及び「遅延係数Td」をインクレメンタルに増加又は減少させるようにしてもよい。
行動情報生成部433は、行動aによりコマンドテーブルCTの「プロセス優先度Pb」及び「遅延係数Td」を調整して、状態s´に遷移した場合に、コマンドテーブルCTの「配信スケジュール」の状態(「配信順序」及び「配信間隔Ts」が適正かどうか)によって次の行動a´のコマンドテーブルCTの「プロセス優先度Pb」及び「遅延係数Td」を選択してもよい。
例えば、「プロセス優先度Pb」及び/又は「遅延係数Td」の増加により報酬rが増加し、且つ「配信スケジュール」の「配信順序」及び「配信間隔Ts」が適正である場合、次の行動a´としては、例えば、「プロセス優先度Pb」及び/又は「遅延係数Td」をインクレメンタルに増加させる等、優先コマンドの配信遅延時間の短縮と配信間隔の最適化となるような行動a´を選択する方策を取るようにしてもよい。
あるいは、「プロセス優先度Pb」及び/又は「遅延係数Td」の増加により報酬rが減少する場合、次の行動a´としては、例えば、「プロセス優先度Pb」及び/又は「遅延係数Td」を1つ前に戻す等、優先コマンドの配信遅延時間の短縮と配信間隔の最適化となるような行動a´を選択する方策を取るようにしてもよい。
また、「プロセス優先度Pb」及び「遅延係数Td」のそれぞれは、例えば、増加して報酬rが増加する場合+1増加され、報酬rが減少する場合1つ前に戻されてもよい。
また、行動情報生成部433は、現在の推定される行動aの価値の中で、最も価値関数Q(s,a)の高い行動a´を選択するグリーディ法や、ある小さな確率εでランダムに行動a´選択し、それ以外では最も価値関数Q(s,a)の高い行動a´を選択するεグリーディ法といった公知の方法により、行動a´を選択する方策を取るようにしてもよい。
行動情報出力部404は、学習部403から出力される行動情報aをパーソナルコンピュータ30に対して出力する部分である。行動情報出力部404は、例えば行動情報としての、更新された「プロセス優先度Pb」及び「遅延係数Td」の値を、パーソナルコンピュータ30に出力するようにしてもよい。これにより、パーソナルコンピュータ30は、受信した更新された「プロセス優先度Pb」及び「遅延係数Td」の値に基づいて、コマンドテーブルCTを更新する。そして、コマンド処理部303は、更新されたコマンドテーブルCTの「配信スケジュール」に基づいて、データ通信のコマンドを通信処理部304へ配信する。
なお、行動情報出力部404は、行動情報としての、更新された「プロセス優先度Pb」及び「遅延係数Td」の値に基づいて更新したコマンドテーブルCTを、パーソナルコンピュータ30に出力してもよい。
価値関数記憶部405は、価値関数Qを記憶する記憶装置である。価値関数Qは、例えば状態s、行動a毎にテーブル(以下、「行動価値テーブル」ともいう)として格納してもよい。価値関数記憶部405に記憶された価値関数Qは、価値関数更新部432により更新される。
最適化行動情報出力部406は、価値関数更新部432がQ学習を行うことにより更新した価値関数Qに基づいて、価値関数Q(s,a)が最大となる動作をパーソナルコンピュータ30に行わせるための行動情報a(以下、「最適化行動情報」と呼ぶ)を生成する。
より具体的には、最適化行動情報出力部406は、価値関数記憶部405が記憶している価値関数Qを取得する。この価値関数Qは、上述したように価値関数更新部432がQ学習を行うことにより更新したものである。そして、最適化行動情報出力部406は、価値関数Qに基づいて、行動情報を生成し、生成した行動情報をパーソナルコンピュータ30に対して出力する。この最適化行動情報には、行動情報出力部404がQ学習の過程において出力する行動情報と同様に、更新された「プロセス優先度Pb」及び「遅延係数Td」の値を示す情報が含まれる。
図5は、更新前及び更新後のコマンドのタイムチャートの一例を示す図である。図5の上段は、図10の場合と同様に、パーソナルコンピュータ30上で動作する4つのアプリケーションAP1-AP4が出力する更新前のコマンドのタイムチャートの一例を示す。図5の下段は、4つのアプリケーションAP1-AP4が出力する更新後のコマンドのタイムチャートの一例を示す。なお、図10の場合と同様に、円形、四角形、ひし形、三角形の順に緊急度が高いコマンドを示す。また、パーソナルコンピュータ30が4つ以外のアプリケーションAP1-APnを実行する場合についても、図5の場合と同様であり、説明を省略する。
図5の下段に示すように、コマンド処理部303は、総合優先度Psに従ってコマンドの配信順序が調整された更新後のコマンドテーブルCTの「配信スケジュール」に基づいて、未送信のコマンドを配信する。これにより、コマンド処理部303は、図5の上段の時間T1及びT2に対応する時間T1´及びT2´と、時間T3´とにおいて、過度のアクセスにならないようにコマンドの配信間隔を空けて平均化することができる。
このように、パーソナルコンピュータ30は、コマンドテーブルCTを更新することにより、データ通信のコマンドが数値制御装置20へ過度に配信され過負荷となることを防止するとともに、コマンドの配信遅延時間を短縮することができる。
以上、機械学習装置40に含まれる機能ブロックについて説明した。
これらの機能ブロックを実現するために、機械学習装置40は、CPU等の演算処理装置を備える。また、機械学習装置40は、アプリケーションソフトウェアやOS(Operating System)等の各種の制御用プログラムを格納したHDD等の補助記憶装置や、演算処理装置がプログラムを実行する上で一時的に必要とされるデータを格納するためのRAMといった主記憶装置も備える。
そして、機械学習装置40において、演算処理装置が補助記憶装置からアプリケーションソフトウェアやOSを読み込み、読み込んだアプリケーションソフトウェアやOSを主記憶装置に展開させながら、これらのアプリケーションソフトウェアやOSに基づいた演算処理を行なう。また、この演算結果に基づいて、機械学習装置40が備える各種のハードウェアを制御する。これにより、本実施形態の機能ブロックは実現される。つまり、本実施形態は、ハードウェアとソフトウェアが協働することにより実現することができる。
機械学習装置40については機械学習に伴う演算量が多いため、例えば、パーソナルコンピュータにGPU(Graphics Processing Units)を搭載し、GPGPU(General-Purpose computing on Graphics Processing Units)と呼ばれる技術により、GPUを機械学習に伴う演算処理に利用するようにすると高速処理できるようになるのでよい。さらには、より高速な処理を行うために、このようなGPUを搭載したコンピュータを複数台用いてコンピュータ・クラスターを構築し、このコンピュータ・クラスターに含まれる複数のコンピュータにて並列処理を行うようにしてもよい。
次に、図6のフローチャートを参照して本実施形態におけるQ学習時の機械学習装置40の動作について説明をする。
図6は、一実施形態におけるQ学習時の機械学習装置40の動作を示すフローチャートである。
ステップS11において、制御部407は、試行回数を「1」として状態データ取得部401に状態データの取得を指示する。
ステップS12において、状態データ取得部401は、パーソナルコンピュータ30から最初の状態データを取得する。取得した状態データは、行動情報生成部433に対して出力される。上述したように、この状態データ(状態情報)は、Q学習における状態sに相当する情報であり、ステップS12時点での、コマンドテーブルCTと、コマンドテーブルCTの「配信スケジュール」に従って配信される各コマンドの受付時刻及び配信時刻と、が含まれる。なお、最初にQ学習を開始する時点でのコマンドテーブルCTは、予めユーザが生成するようにする。
ステップS13において、行動情報生成部433は、新たな行動情報aを生成し、生成した新たな行動情報aを、行動情報出力部404を介してパーソナルコンピュータ30に対して出力する。行動情報を受信したパーソナルコンピュータ30は、受信した行動情報aに基づいて現在の状態sに係る「プロセス優先度Pb」及び「遅延係数Td」を更新して状態s´とする。パーソナルコンピュータ30は、更新された行動aに基づいて状態sを状態s´に更新する。具体的には、パーソナルコンピュータ30は、コマンドテーブルCTを更新する。コマンド処理部303は、更新されたコマンドテーブルCTの「配信スケジュール」に基づいて、データ通信インタフェース部302のバッファ(図示しない)に格納された未送信のコマンドを配信する。
ステップS14において、状態データ取得部401は、パーソナルコンピュータ30から取得した新たな状態s´に相当する状態データを取得する。ここで、新たな状態データは、状態s´に係るコマンドテーブルCTと、コマンドテーブルCTの「配信スケジュール」に従って配信される各コマンドの受付時刻及び配信時刻と、を含む。状態データ取得部401は、判定データ取得部402及び学習部403に対して取得した状態データを出力する。
ステップS15において、判定データ取得部402は、状態データ取得部401が受信した新たな状態データに含まれるコマンドテーブルCTと、予め設定された特定時間内に受け付けたコマンドすべてについて各コマンドの受付時刻及び配信時刻とから、所定の時間(例えば、1分間)毎に判定データを取得する。判定データ取得部402は、取得した判定データを学習部403に出力する。この判定データは、例えば1分間等の所定の時間毎にデータ通信インタフェース部302が受け付けたコマンドの平均配信間隔Ta、各コマンドの配信遅延時間Tb、コマンド優先度Pa等を含む。
ステップS16において、報酬計算部431は、取得された判定データ、すなわちコマンドの平均配信間隔Ta、各コマンドの配信遅延時間Tb、及びコマンド優先度Paと、数2式とに基づいて予め設定された特定時間内に受け付けたコマンドすべてについて各コマンドの評価値Vを計算する。報酬計算部431は、各コマンドの評価値Vの平均値を報酬rとする。
ステップS17において、価値関数更新部432は、計算された報酬rに基づいて、価値関数記憶部405が記憶している価値関数Qを更新する。
ステップS18において、制御部306は、機械学習を始めてからの試行回数が最大試行回数に到達したかどうかを判断する。最大試行回数は予め設定しておく。最大試行回数に到達していなければ、ステップS19で試行回数をカウントアップして、ステップS13に戻る。ステップS13からステップS19までの処理は最大試行回数に到達するまで繰り返し行われる。
なお、図6のフローは、試行回数が最大試行回数に到達したときに処理を終了させているが、ステップS13からステップS19の処理に係る時間を、機械学習を始めてから累積した時間が、予め設定された最大経過時間を超えた(又は以上になった)ことを条件として処理を終了するようにしてもよい。
また、ステップS17はオンライン更新を例示しているが、オンライン更新に替えてバッチ更新又はミニバッチ更新に置き換えてもよい。
以上、図6を参照して説明した動作により、本実施形態では、データ通信のコマンドが数値制御装置20へ過度に配信され過負荷となることを防止しつつ、コマンドの配信遅延時間を短縮するための行動情報を生成するための価値関数Qを生成することができる。
次に、図7のフローチャートを参照して、最適化行動情報出力部406による最適化行動情報の生成時の動作について説明をする。
ステップS21において、最適化行動情報出力部406は、価値関数記憶部405に記憶している価値関数Qを取得する。価値関数Qは、上述したように価値関数更新部432がQ学習を行うことにより更新したものである。
ステップS22において、最適化行動情報出力部406は、この価値関数Qに基づいて、最適化行動情報を生成し、生成した最適化行動情報をパーソナルコンピュータ30に対して出力する。
以上のように、パーソナルコンピュータ30は、コマンドテーブルCTを更新することにより、データ通信のコマンドが制御装置へ過度に配信され過負荷となることを防止するとともに、コマンドの配信遅延時間を短縮することができる。
以上、一実施形態について説明したが、パーソナルコンピュータ30、及び機械学習装置40は、上述の実施形態に限定されるものではなく、目的を達成できる範囲での変形、改良等を含む。
<変形例1>
上述の実施形態では、機械学習装置40は、パーソナルコンピュータ30と異なる装置として例示したが、機械学習装置40の一部又は全部の機能を、パーソナルコンピュータ30が備えるようにしてもよい。
あるいは、機械学習装置40の状態データ取得部401、判定データ取得部402、学習部403、行動情報出力部404、価値関数記憶部405、最適化行動情報出力部406、及び制御部407の一部又は全部を、例えば、サーバが備えるようにしてもよい。また、クラウド上で仮想サーバ機能等を利用して、機械学習装置40の各機能を実現してもよい。
さらに、機械学習装置40は、機械学習装置40の各機能を適宜複数のサーバに分散される、分散処理システムとしてもよい。
<変形例2>
また例えば、上述の実施形態では、制御システム1において、1つのパーソナルコンピュータ30と、1つの機械学習装置40と、が通信可能に接続されたが、これに限定されない。例えば、図8に示すように、制御システム1は、m個のパーソナルコンピュータ30A(1)-30A(m)と、m個の機械学習装置40A(1)-40A(m)とを有してもよい(mは2以上の整数)。この場合、機械学習装置40A(j)は、ネットワーク50を介してパーソナルコンピュータ30A(j)と1対1に通信可能に接続され、パーソナルコンピュータ30A(j)に対して機械学習を実施するようにしてもよい(jは1からmの整数)。
なお、機械学習装置40A(j)の価値関数記憶部405に記憶された価値関数Qは、他の機械学習装置40A(k)との間で共有されるようにしてもよい(kは1からmの整数であり、k≠j)。価値関数Qを機械学習装置40A(1)-40A(m)で共有するようにすれば、各機械学習装置40Aにて分散して強化学習を行うことが可能となるので、強化学習の効率を向上させることが可能となる。
なお、パーソナルコンピュータ30A(1)-30A(m)の各々は、数値制御装置20A(1)-20A(m)の各々と接続され、数値制御装置20A(1)-20A(m)の各々は、工作機械10A(1)-10A(m)の各々と接続される。
また、工作機械10A(1)-10A(m)の各々は、図1の工作機械10に対応する。数値制御装置20A(1)-20A(m)の各々は、図1の数値制御装置20に対応する。パーソナルコンピュータ30A(1)-30A(m)の各々は、図1のパーソナルコンピュータ30に対応する。機械学習装置40A(1)-40A(m)の各々は、図1の機械学習装置40に対応する。
また、図9に示すように、サーバ60は、機械学習装置40として動作し、ネットワーク50を介してm個のパーソナルコンピュータ30A(1)-30A(m)と通信可能に接続され、パーソナルコンピュータ30A(1)-30A(m)の各々に対して機械学習を実施するようにしてもよい。
<変形例3>
また例えば、上述の実施形態では、配信スケジュールを調整するパラメータとして、プロセス優先度Pb及び遅延係数Tdを適用したが、プロセス優先度Pb及び遅延係数Td以外のパラメータを用いるようにしてもよい。
なお、一実施形態における、パーソナルコンピュータ30、及び機械学習装置40に含まれる各機能は、ハードウェア、ソフトウェア又はこれらの組み合わせによりそれぞれ実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
パーソナルコンピュータ30、及び機械学習装置40に含まれる各構成部は、電子回路等を含むハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、コンピュータにインストールされる。また、これらのプログラムは、リムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。また、ハードウェアで構成する場合、上記の装置に含まれる各構成部の機能の一部又は全部を、例えば、ASIC(Application Specific Integrated Circuit)、ゲートアレイ、FPGA(Field Programmable Gate Array)、CPLD(Complex Programmable Logic Device)等の集積回路(IC)で構成することができる。
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(Non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(Tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば、光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM)を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(Transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は、無線通信路を介して、プログラムをコンピュータに供給できる。
なお、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
以上を換言すると、本開示の機械学習装置、コンピュータ装置、制御システム、及び機械学習方法は、次のような構成を有する各種各様の実施形態を取ることができる。
(1)本開示の機械学習装置40は、通信可能に接続された数値制御装置20にアクセスするためのコマンドを発行するパーソナルコンピュータ30に対して機械学習を行う機械学習装置であって、パーソナルコンピュータ30上で動作する1つ以上のアプリケーションAP1-APnの各々が指令する数値制御装置20内のデータにアクセスするためのコマンドを監視し、少なくともコマンドの配信スケジュールと、配信スケジュールに基づいて配信されるコマンドの受付時刻及び配信時刻とを含む状態データを取得する状態データ取得部401と、状態データに含まれる配信スケジュールの修正情報を含む行動情報aをパーソナルコンピュータ30に出力する行動情報出力部404と、コマンドが数値制御装置20へ配信されるまでのコマンド毎の配信遅延時間Tbと、配信される全てのコマンドの平均配信間隔Taと、に基づいて、行動情報aに対する報酬rを計算する報酬計算部431と、報酬計算部431により計算される報酬rに基づいて、状態データ及び行動情報aに係る価値関数Qを更新する価値関数更新部432と、を備える。
この機械学習装置40によれば、データ通信のコマンドが制御装置へ過度に配信され過負荷となることを防止するとともに、コマンドの配信遅延時間を短縮することができる。
(2) (1)に記載の機械学習装置40において、配信スケジュールの修正情報aは、コマンドを指令したプロセスの優先度を示すプロセス優先度Pbと、コマンドの配信を遅延させる遅延係数Tdと、を含んでもよい。
そうすることで、機械学習装置40は、配信スケジュールを最適に調整することができる。
(3) (1)又は(2)に記載の機械学習装置40において、報酬計算部431は、コマンド毎の配信遅延時間Tbと平均配信間隔Taに基づいてコマンド毎の評価値Vを計算し、計算したコマンド毎の評価値の平均値を報酬rとしてもよい。
そうすることで、機械学習装置40は、報酬を正確に計算することができる。
(4) (1)から(3)のいずれかに記載の機械学習装置40において、価値関数更新部432により更新された価値関数Qに基づいて、価値関数Qの値が最大となる行動情報aを出力する最適化行動情報出力部406をさらに備えてもよい。
そうすることで、機械学習装置40は、より最適な配信スケジュールを取得することができる。
(5) (1)から(4)のいずれかに記載の機械学習装置40において、数値制御装置20は、産業機械の制御装置であってもよい。
そうすることで、機械学習装置40は、工作機械やロボット等の制御装置に対して適用することができる。
(6) (1)から(5)のいずれかに記載の機械学習装置40において、機械学習の最大試行回数を設けて、機械学習を行ってもよい。
そうすることで、機械学習装置40は、機械学習が長時間に亘って行われることを回避することができる。
(7)本開示のパーソナルコンピュータ30は、(1)から(6)のいずれかに記載の機械学習装置40を備え、機械学習装置40によって配信スケジュールが機械学習される。
このパーソナルコンピュータ30によれば、(1)から(6)と同様の効果を奏することができる。
(8)本開示の制御システム1は、(1)から(6)のいずれかに記載の機械学習装置40と、機械学習装置40によって配信スケジュールが機械学習されるコンピュータ装置と、を備える。
この制御システム1によれば、(1)から(6)と同様の効果を奏することができる。
(9)本開示の機械学習方法は、通信可能に接続された数値制御装置20にアクセスするためのコマンドを発行するパーソナルコンピュータ30に対して機械学習を行う機械学習方法であって、パーソナルコンピュータ30上で動作する1つ以上のアプリケーションAP1-APnの各々が指令する数値制御装置20内のデータにアクセスするためのコマンドを監視し、少なくともコマンドの配信スケジュールと、配信スケジュールに基づいて配信されるコマンドの受付時刻及び配信時刻とを含む状態データを取得し、状態データに含まれる配信スケジュールの修正情報を含む行動情報をパーソナルコンピュータ30に出力し、コマンドが数値制御装置20へ配信されるまでのコマンド毎の配信遅延時間Tbと、配信される全てのコマンドの平均配信間隔Taと、に基づいて、行動情報に対する報酬rを計算し、計算される報酬rに基づいて、状態データ及び行動情報に係る価値関数Qを更新する。
この機械学習方法によれば、(1)と同様の効果を奏することができる。
1 制御システム
10 工作機械
20 数値制御装置
30 パーソナルコンピュータ
301 中央処理部
302 データ通信インタフェース部
303 コマンド処理部
304 通信処理部
305 記憶部
40 機械学習装置
401 状態データ取得部
402 判定データ取得部
403 学習部
404 行動情報出力部
405 価値関数記憶部
406 最適化行動情報出力部

Claims (9)

  1. 通信可能に接続された制御装置にアクセスするためのコマンドを発行するコンピュータ装置に対して機械学習を行う機械学習装置であって、
    前記コンピュータ装置上で動作する1つ以上のアプリケーションの各々が指令する前記制御装置内のデータにアクセスするためのコマンドを監視し、少なくとも前記コマンドの配信スケジュールと、前記配信スケジュールに基づいて配信される前記コマンドの受付時刻及び配信時刻とを含む状態データを取得する状態データ取得部と、
    前記状態データに含まれる前記配信スケジュールの修正情報を含む行動情報を前記コンピュータ装置に出力する行動情報出力部と、
    前記コマンドが前記制御装置へ配信されるまでの前記コマンド毎の遅延時間と、配信される全ての前記コマンドの平均配信間隔と、に基づいて、前記行動情報に対する報酬を計算する報酬計算部と、
    前記報酬計算部により計算される報酬に基づいて、前記状態データ及び前記行動情報に係る価値関数を更新する価値関数更新部と、
    を備える機械学習装置。
  2. 前記配信スケジュールの修正情報は、前記コマンドを指令したプロセスの優先度を示すプロセス優先度と、前記コマンドの配信を遅延させる遅延係数と、を含む、請求項1に記載の機械学習装置。
  3. 前記報酬計算部は、前記コマンド毎の前記遅延時間と、前記平均配信間隔と、に基づいて前記コマンド毎の評価値を計算し、計算した前記コマンド毎の評価値の平均値を前記報酬とする、請求項1又は請求項2に記載の機械学習装置。
  4. 前記価値関数更新部により更新された前記価値関数に基づいて、前記価値関数の値が最大となる行動情報を出力する最適化行動情報出力部をさらに備える、請求項1から請求項3のいずれか1項に記載の機械学習装置。
  5. 前記制御装置は、産業機械の制御装置である、請求項1から請求項4のいずれか1項に記載の機械学習装置。
  6. 前記機械学習の最大試行回数を設けて、前記機械学習を行う、請求項1から請求項5のいずれか1項に記載の機械学習装置。
  7. 請求項1から請求項6のいずれか1項に記載の機械学習装置を備え、前記機械学習装置によって前記配信スケジュールが機械学習されるコンピュータ装置。
  8. 請求項1から請求項6のいずれか1項に記載の機械学習装置と、
    前記機械学習装置によって前記配信スケジュールが機械学習されるコンピュータ装置と、
    を備える制御システム。
  9. 通信可能に接続された制御装置にアクセスするためのコマンドを発行するコンピュータ装置に対して機械学習を行う機械学習方法であって、
    前記コンピュータ装置上で動作する1つ以上のアプリケーションの各々が指令する前記制御装置内のデータにアクセスするためのコマンドを監視し、少なくとも前記コマンドの配信スケジュールと、前記配信スケジュールに基づいて配信される前記コマンドの受付時刻及び配信時刻とを含む状態データを取得し、
    前記状態データに含まれる前記配信スケジュールの修正情報を含む行動情報を前記コンピュータ装置に出力し、
    前記コマンドが前記制御装置へ配信されるまでの前記コマンド毎の遅延時間と、配信される全ての前記コマンドの平均配信間隔と、に基づいて、前記行動情報に対する報酬を計算し、
    計算される前記報酬に基づいて、前記状態データ及び前記行動情報に係る価値関数を更新する、
    機械学習方法。
JP2021575779A 2020-02-05 2021-02-01 機械学習装置、コンピュータ装置、制御システム、及び機械学習方法 Active JP7364699B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2020018347 2020-02-05
JP2020018347 2020-02-05
PCT/JP2021/003496 WO2021157515A1 (ja) 2020-02-05 2021-02-01 機械学習装置、コンピュータ装置、制御システム、及び機械学習方法

Publications (2)

Publication Number Publication Date
JPWO2021157515A1 JPWO2021157515A1 (ja) 2021-08-12
JP7364699B2 true JP7364699B2 (ja) 2023-10-18

Family

ID=77200473

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021575779A Active JP7364699B2 (ja) 2020-02-05 2021-02-01 機械学習装置、コンピュータ装置、制御システム、及び機械学習方法

Country Status (5)

Country Link
US (1) US20230068058A1 (ja)
JP (1) JP7364699B2 (ja)
CN (1) CN115066659A (ja)
DE (1) DE112021000842T5 (ja)
WO (1) WO2021157515A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230333539A1 (en) * 2020-09-09 2023-10-19 Fanuc Corporation Response analysis device
US20230393546A1 (en) * 2022-06-02 2023-12-07 Intrinsic Innovation Llc Robot planning for concurrent execution of actions
CN116506365B (zh) * 2023-06-25 2023-09-05 杭州网鼎科技有限公司 一种多网络出口智能负载均衡方法、***及存储介质
CN117527870B (zh) * 2023-12-07 2024-05-03 东莞信易电热机械有限公司 一种塑胶成型的控制方法及***

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001191279A (ja) 1999-12-28 2001-07-17 Sony Corp 行動管理システム、行動管理方法及びロボット装置
JP2007276052A (ja) 2006-04-06 2007-10-25 Sony Corp 制御システム、記録システム、情報処理装置および方法、プログラム、並びに記録媒体
US20150094852A1 (en) 2013-09-27 2015-04-02 Brain Corporation Robotic control arbitration apparatus and methods
JP2017134459A (ja) 2016-01-25 2017-08-03 ファナック株式会社 効率的に数値制御データの受け渡しをする数値制御システム
JP2018036888A (ja) 2016-08-31 2018-03-08 横河電機株式会社 プラント制御装置、プラント制御方法、プラント制御プログラム及び記録媒体
JP2019029856A (ja) 2017-07-31 2019-02-21 ファナック株式会社 無線中継器選択装置及び機械学習装置
JP2019067046A (ja) 2017-09-29 2019-04-25 オムロン株式会社 制御システムおよび制御装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001191279A (ja) 1999-12-28 2001-07-17 Sony Corp 行動管理システム、行動管理方法及びロボット装置
JP2007276052A (ja) 2006-04-06 2007-10-25 Sony Corp 制御システム、記録システム、情報処理装置および方法、プログラム、並びに記録媒体
US20150094852A1 (en) 2013-09-27 2015-04-02 Brain Corporation Robotic control arbitration apparatus and methods
JP2017134459A (ja) 2016-01-25 2017-08-03 ファナック株式会社 効率的に数値制御データの受け渡しをする数値制御システム
JP2018036888A (ja) 2016-08-31 2018-03-08 横河電機株式会社 プラント制御装置、プラント制御方法、プラント制御プログラム及び記録媒体
JP2019029856A (ja) 2017-07-31 2019-02-21 ファナック株式会社 無線中継器選択装置及び機械学習装置
JP2019067046A (ja) 2017-09-29 2019-04-25 オムロン株式会社 制御システムおよび制御装置

Also Published As

Publication number Publication date
CN115066659A (zh) 2022-09-16
DE112021000842T5 (de) 2022-11-17
JPWO2021157515A1 (ja) 2021-08-12
US20230068058A1 (en) 2023-03-02
WO2021157515A1 (ja) 2021-08-12

Similar Documents

Publication Publication Date Title
JP7364699B2 (ja) 機械学習装置、コンピュータ装置、制御システム、及び機械学習方法
CN109032078B (zh) 机器学习装置、控制装置以及计算机可读介质
US10730182B2 (en) Action information learning device, robot control system and action information learning method
JP6453919B2 (ja) 行動情報学習装置、行動情報最適化システム及び行動情報学習プログラム
US20240085868A1 (en) Determining causal models for controlling environments
US20180144251A1 (en) Server and cloud computing resource optimization method thereof for cloud big data computing architecture
US10442023B2 (en) Simulation apparatus of wire electric discharge machine having function of determining welding positions of core using machine learning
KR20200130523A (ko) 미래 액션들을 위한 사용자 인터페이스 데이터 캐싱 최적화
US20140359197A1 (en) Implementing reinforcement learning based flash control
JP6453921B2 (ja) 学習モデル構築装置、及び制御情報最適化装置
US20200310874A1 (en) Job scheduler, job schedule control method, and storage medium
JP6550980B2 (ja) スケジューリング方法、情報処理装置およびスケジューリングプログラム
JP6079183B2 (ja) 情報処理装置、通信端末、アプリケーション提供方法、アプリケーション実行方法、アプリケーション提供プログラム、及びアプリケーション実行プログラム
WO2018155232A1 (ja) 情報処理装置、情報処理方法、並びにプログラム
CN103440167A (zh) Hadoop多作业环境下自学习反馈的任务调度方法
Wang et al. An adaptive multi-population genetic algorithm for job-shop scheduling problem
US20210096933A1 (en) Multi-objective, multi-input, efficient decoupling holistic platform for communication selection
JP2018142199A (ja) 学習システムおよび学習方法
KR102389217B1 (ko) 실시간 소비전력 모니터링 기반 전력패턴 분석을 통한 전력 관리 시스템
TWI584667B (zh) 多請求的排程方法及排程裝置
WO2022153936A1 (ja) 機械学習装置
KR101360263B1 (ko) 계산작업 제어장치, 계산작업 제어방법, 및 계산작업을 제어하는 소프트웨어를 저장하는 저장매체
US20050240926A1 (en) Process scheduling system and method
JP6163474B2 (ja) ストレージ管理装置、ストレージ管理システム、制御方法及びプログラム
CN116490849A (zh) 已优先级排序的应用更新

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220914

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: 20230905

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231005

R150 Certificate of patent or registration of utility model

Ref document number: 7364699

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150