JP2019003271A - 機械学習装置、制御装置及び機械学習プログラム - Google Patents

機械学習装置、制御装置及び機械学習プログラム Download PDF

Info

Publication number
JP2019003271A
JP2019003271A JP2017115221A JP2017115221A JP2019003271A JP 2019003271 A JP2019003271 A JP 2019003271A JP 2017115221 A JP2017115221 A JP 2017115221A JP 2017115221 A JP2017115221 A JP 2017115221A JP 2019003271 A JP2019003271 A JP 2019003271A
Authority
JP
Japan
Prior art keywords
control device
machine learning
information
core
control
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
JP2017115221A
Other languages
English (en)
Other versions
JP6530783B2 (ja
Inventor
智 金丸
Satoshi Kanemaru
智 金丸
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
Priority to JP2017115221A priority Critical patent/JP6530783B2/ja
Priority to US15/981,356 priority patent/US10705506B2/en
Priority to CN201810588871.8A priority patent/CN109032078B/zh
Priority to DE102018209149.8A priority patent/DE102018209149B4/de
Publication of JP2019003271A publication Critical patent/JP2019003271A/ja
Application granted granted Critical
Publication of JP6530783B2 publication Critical patent/JP6530783B2/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/414Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller
    • G05B19/4142Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller characterised by the use of a microprocessor
    • 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/408Numerical 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 data handling or data format, e.g. reading, buffering or conversion of data
    • G05B19/4083Adapting programme, configuration
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/0265Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion
    • G05B13/027Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion using neural networks only
    • 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/404Numerical 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 control arrangements for compensation, e.g. for backlash, overshoot, tool offset, tool wear, temperature, machine construction errors, load, inertia
    • 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/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
    • 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
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/33Director till display
    • G05B2219/33038Real time online learning, training, dynamic network
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/33Director till display
    • G05B2219/33056Reinforcement learning, agent acts, receives reward, emotion, action selective
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34013Servocontroller
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/36Nc in input of data, input key till input tape
    • G05B2219/36456Learning tool holding dynamics

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Automation & Control Theory (AREA)
  • Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Numerical Control (AREA)
  • Feedback Control In General (AREA)

Abstract

【課題】加工条件に応じて、工作機械を制御する各プロセスを最適な演算部に割り当てる。
【解決手段】工作機械を制御する複数のプロセスを複数の演算部にて並列に実行する制御装置に対して、強化学習を行う機械学習装置が、前記複数のプロセスを実行する演算部の割り当てを含んだ行動情報を、前記制御装置に対して出力する行動情報出力手段と、前記工作機械に設定した加工に関しての条件である加工条件と、前記行動情報に含まれる割り当てに基づいた前記複数の演算部による前記複数のプロセスの実行を監視することにより生成された判定情報と、を含む状態情報を取得する状態情報取得手段と、前記状態情報に含まれる前記判定情報に基づいて、強化学習における報酬の値を算出する報酬算出手段と、前記報酬の値と、前記状態情報と、前記行動情報とに基づいて行動価値関数を更新する価値関数更新手段と、を備える。
【選択図】図4

Description

本発明は、複数の演算部にて並列処理を行う装置を対象として機械学習を行う、機械学習装置、制御装置及び機械学習プログラムに関する。
従来、加工プログラムに基づいて工作機械を制御する制御装置が知られている。工作機械の制御装置では、工作機械の各軸の位置や速度をリアルタイムに制御するために、所定の制御プログラムを、一定の周期内、または一定の時間内に実行しなければならない。
しかしながら、近年、工作機械の多軸化や多機能化に伴い、制御プログラムは大規模化し、その処理量は大幅に増加している。また、より高速かつ高精度な加工を実現するためには、軸制御の周期を短縮させなくてはならない。従って、制御装置の処理速度を向上させる必要がある。
更に、工作機械の制御装置は、軸の制御に限らず、通信機能や表示機能、信号の入出力機能などを備えており、これらの機能の全てを滞りなく実行する必要もある。
これらの要求を満たすために、工作機械の制御装置に、マルチプロセッサやマルチコアといった複数の演算部を搭載したハードウェアを採用し、この複数の演算部にて制御プログラムを並列に処理することが一般的になっている。複数の演算部を搭載したハードウェアを採用することにより、制御装置での単位時間あたりの処理量を増やすことができ、結果として、より短時間でより多くの処理を実行することができる。
このような複数の演算部にて制御プログラムを並列に処理する制御装置は、例えば、特許文献1に開示されている。
また、複数の演算部による並列処理を効率化させるための技術が、特許文献2から特許文献5に開示されている。
例えば、特許文献2には、OS(Operating System)間で負荷分散を行うことにより、各コアの稼働率を均等化する技術が開示されている。また、特許文献3には、キャッシュのヒット率を向上させるための技術が開示されている。更に、特許文献4及び特許文献5には、処理を分割して分散することで、単位時間あたりの処理量を増やすための技術が開示されている。
特開2014−35564号公報 特開2009−163527号公報 特開2015−200947号公報 特開2016−012221号公報 特開2016−051258号公報
上述したように、特許文献2から特許文献5には、制御プログラムの並列処理を効率化させるための技術が開示されている。
しかしながら、特許文献2に開示の技術では、各コアの稼働率は均等化できても、コア間の通信量や、各コアの消費電力量や発熱量を最適化することは難しい。また、特許文献3、特許文献4及び特許文献5に開示の技術では、単位時間あたりの処理量を増やすことはできても、加工条件に応じた最適な処理分散パターンを確立することはできない。
このように、各特許文献には特定の項目に関する最適化技術は開示されているが、高いリアルタイム性が要求され、かつ多様な加工条件下で動作する工作機械の分野では、特定の項目についてのみ最適化する技術では大きな効果を得ることはできない。
また、仮に各特許文献の技術を併用したとしても、トレードオフの関係にある項目間では、相互関係を数式化するのは難しく、膨大なデータから最適解を求めるのは非常に困難である。
そこで本発明は、工作機械を制御する各プロセス(前記制御プログラム)を、加工条件に応じて最適な演算部に割り当てるための、機械学習装置、制御装置及び機械学習プログラムを提供することを目的とする。
(1) 本発明における機械学習装置(例えば、後述の機械学習装置100)は、工作機械を制御する複数のプロセスを複数の演算部(例えば、後述の第1コア241、第2コア242、第3コア243、第4コア244)にて並列に実行する制御装置(例えば、後述の制御装置シミュレータ200)に対して、強化学習を行う機械学習装置であって、前記複数のプロセスを実行する演算部の割り当てを含んだ行動情報を、前記制御装置に対して出力する行動情報出力手段(例えば、後述の行動情報出力部130)と、前記工作機械に設定した加工に関しての条件である加工条件と、前記行動情報に含まれる割り当てに基づいた前記複数の演算部による前記複数のプロセスの実行を監視することにより生成された判定情報と、を含む状態情報を取得する状態情報取得手段(例えば、後述の状態情報取得部110)と、前記状態情報に含まれる前記判定情報に基づいて、強化学習における報酬の値を算出する報酬算出手段(例えば、後述の報酬算出部121)と、前記報酬の値と、前記状態情報と、前記行動情報とに基づいて行動価値関数を更新する価値関数更新手段(例えば、後述の価値関数更新部122)と、を備える。
(2) 上記(1)に記載の機械学習装置において、前記複数の演算部は、前記複数のプロセスを所定の周期で所定回数に分けて実行し、前記価値関数更新手段は、前記複数の演算部において、前記複数のプロセスが終了する都度、前記行動価値関数を更新し、前記行動情報出力手段は、前記複数の演算部において、前記複数のプロセスが終了する都度、割り当て内容を変更した行動情報を前記制御装置に対して出力する、ようにしてもよい。
(3) 上記(2)に記載の機械学習装置において、前記行動情報に含まれる前記割り当ては、前記複数の演算部のそれぞれが実行するプロセスの指定と、プロセスを実行する順序とを含み、前記行動情報出力手段は、前記割り当て内容を変更した行動情報として、前記複数の演算部のそれぞれが実行するプロセスの指定と、プロセスを実行する順序の少なくとも何れかを変更した行動情報を、前記制御装置に対して出力するようにしてもよい。
(4) 上記(2)又は(3)に記載の機械学習装置において、前記複数の演算部の内の一部の演算部については割り当てられるプロセスが固定されており、前記行動情報出力手段は、前記割り当て内容を変更した行動情報として、割り当てられるプロセスが固定されていない演算部についての割り当て内容を変更した行動情報を出力するようにしてもよい。
(5) 上記(1)から(4)の何れかに記載の機械学習装置において、当該機械学習装置により行われる強化学習は、シミュレータにより仮想的に再現された前記制御装置に対して行われ、前記強化学習終了後、前記制御装置の実機から取得した状態情報と、前記強化学習により学習された行動価値関数と、に基づいて前記行動情報を生成し、生成した行動情報を前記制御装置の実機に対して出力する最適化行動情報出力手段(例えば、後述の最適化行動情報出力部150)を更に備えるようにしてもよい。
(6) 上記(5)に記載の機械学習装置において、前記制御装置の実機から取得した状態情報に含まれる加工条件が、未だ強化学習の対象としていない加工条件であった場合に、当該加工条件を、加工条件の内容の一部が一致する加工条件であって機械学習の対象としたことのある他の加工条件に変更する加工条件変更手段(例えば、後述の加工条件変更部600)を更に備え、前記最適化行動情報出力部は、前記加工条件変更部により加工条件が変更された状態情報と、前記他の加工条件に応じた前記強化学習により学習された行動価値関数とに基づいて前記行動情報を生成し、生成した前記行動情報を前記制御装置の実機に対して出力するようにしてもよい。
(7) 上記(1)から(6)の何れかに記載の機械学習装置において、前記加工条件を生成し、生成した加工条件を前記制御装置に対して設定する加工条件生成部(例えば、後述の加工条件生成部500)を更に備えるようにしてもよい。
(8)前記制御装置であって、上記(1)から上記(7)の何れかに記載の強化学習装置を備える制御装置。
(8) 本発明の機械学習プログラムは、工作機械を制御する複数のプロセスを複数の演算部(例えば、後述の第1コア241、第2コア242、第3コア243、第4コア244)にて並列に実行する制御装置(例えば、後述の制御装置シミュレータ200)に対して、強化学習を行う機械学習装置(例えば、後述の機械学習装置100)としてコンピュータを機能させる機械学習プログラムであって、前記複数のプロセスを実行する演算部の割り当てを含んだ行動情報を、前記制御装置に対して出力する行動情報出力手段(例えば、後述の行動情報出力部130)と、前記工作機械に設定した加工に関しての条件である加工条件と、前記行動情報に含まれる割り当てに基づいた前記複数の演算部による前記複数のプロセスの実行を監視することにより生成された判定情報と、を含む状態情報を取得する状態情報取得手段(例えば、後述の状態情報取得部110)と、前記状態情報に含まれる前記判定情報に基づいて、強化学習における報酬の値を算出する報酬算出手段(例えば、後述の報酬算出部121)と、前記報酬の値と、前記状態情報と、前記行動情報とに基づいて行動価値関数を更新する価値関数更新手段(例えば、後述の価値関数更新部122)と、を備える機械学習装置として前記コンピュータを機能させる。
本発明によれば、工作機械を制御する各プロセスを、加工条件に応じて最適な演算部に割り当てることが可能となる。
本発明の実施形態全体の基本的構成を示す機能ブロック図である。 本発明の実施形態における制御装置シミュレータの構成を示す機能ブロック図である。 本発明の実施形態における制御プロセスの割り当てについて示す模式図である。 本発明の実施形態における機械学習装置の構成を示す機能ブロック図である。 本発明の実施形態における制御装置の構成を示す機能ブロック図である。 本発明の実施形態における機械学習装置の、学習フェーズでの動作について説明するためのフローチャートである。 本発明の実施形態における機械学習装置の、運用フェーズでの動作について説明するためのフローチャートである。 本発明の実施形態における加工条件に応じた制御プロセスの割り当てについて示す模式図である。 本発明の実施形態の第1の変形例における基本的構成を示す機能ブロック図である。 本発明の実施形態の第2の変形例における基本的構成を示す機能ブロック図である。 本発明の実施形態の第2の変形例における類似する加工条件を選択する基準の例を示すテーブルである。
次に、本発明の実施形態について図面を参照して詳細に説明する。
<実施形態の全体構成>
図1は本実施形態である機械学習システム1の全体構成を示す機能ブロック図である。図1に示すように機械学習システム1は、機械学習装置100、制御装置シミュレータ200、制御装置300及び工作機械400を含んで構成される。
機械学習装置100は、制御装置シミュレータ200を対象として機械学習を行う装置である。機械学習装置100は、学習フェーズにて、機械学習を行うことにより、工作機械を制御する各プロセスを、加工条件に応じて最適な演算部に割り当てるための価値関数を求める。
また、機械学習装置100は、運用フェーズにて、学習フェーズで求められた価値関数に基づいて、各プロセスを最適な演算部に割り当てるための行動情報を生成し、生成した行動情報を制御装置300に対して出力する。これにより、制御装置300は、各プロセスを、加工条件に応じて最適な演算部に割り当てて、工作機械400を適切に制御することが可能となる。
機械学習装置100は、パーソナルコンピュータやサーバ装置や数値制御装置等により実現できる。
制御装置シミュレータ200は、機械学習のために、制御装置300を仮想的に再現するシミュレータである。本実施形態では、機械学習の過程において、加工条件等を容易に変更することができるシミュレータを対象として機械学習を行う。ただし、機械学習を、制御装置300そのものを対象として行うようにしてもよい。
制御装置シミュレータ200も、機械学習装置100と同様にパーソナルコンピュータやサーバ装置や数値制御装置等により実現できる。
制御装置300は、複数の演算部により並列に演算処理を実行することにより、工作機械400の駆動を制御する装置である。制御装置300は、機械学習装置100から入力された行動情報に基づいて、各プロセスを最適な演算部に割り当てて演算処理を行う。
制御装置300は、複数の演算部として、複数のコア(マルチコア)を含んだプロセッサ、あるいは複数のプロセッサ(マルチプロセッサ)を備えた数値制御装置により実現できる。
なお、図中では、制御装置300が仮想的に再現されたものではないことを示すために「(実機)」の文言を記載する。
工作機械400は、制御装置300の制御により駆動する工作機械である。なお、工作機械400を、例えば、ロボットや産業機械等に置き換えるようにしてもよい。
次に、これら装置の接続について説明する。機械学習装置100は、制御装置シミュレータ200や制御装置300と通信可能に接続される。また、制御装置300及び工作機械400も通信可能に接続される。これら通信は、例えば、工場内に構築されたLAN(Local Area Network)により実現できる。また、これら通信は、有線通信及び無線通信の何れか又はその組み合わせであってもよく、その通信規格等に特に制限はない。更に、これら通信は、インターネットや公衆電話網等のネットワーク(図示を省略する)を介したものでよく、この場合、各装置はそれぞれ近傍(例えば、同じ工場内)に設置されてもよいが、遠方の場所に別々に設置されてもよい。
なお、図中では、これら装置を1台ずつ図示するが、これら装置の台数に制限はなく、その接続も1対1のみならず、1対多や、多対多の接続であってもよい。
<制御装置シミュレータ200の機能ブロック>
次に、制御装置シミュレータ200が備える機能ブロックについて図2を参照して説明をする。
図2に示すように、制御装置シミュレータ200は、第1制御プロセス群210、第2制御プロセス群220、オペレーティングシステム230及びプロセッサ240を含んで構成される。
本実施形態では、ユーザにより設定された加工条件に基づいて加工プログラムが実行される。これに伴い、加工プログラムの特定の処理や機能に対応する複数の制御プロセスが選択される。図中の第1制御プロセス群210及び第2制御プロセス群220は、この選択された複数の制御プロセスである。そして、この複数の制御プロセスは、後述のプロセッサ240に含まれる各コアの何れかにて実行される。
第1制御プロセス群210に含まれる制御プロセスは、後述の第1コア241で実行される。本実施形態では、第1制御プロセス群210に含まれる制御プロセスの一例として、基本軸制御と同期制御を図示する。
ここで、基本軸制御は、基本軸(例えば、工作機械400の制御における、X軸、Y軸及びZ軸)の移動量を計算する制御プロセスである。また、同期制御は、基本軸に連動して動作する同期軸(例えば、工作機械400の制御における、X2軸、Y2軸及びZ2軸)の移動量を計算する制御プロセスである。このように、本実施形態は、基本軸と同基軸のように、1つのワークに対して同期して加工を行う軸が、2系統あるいは3系統以上ある場合にも適用することができる。
第2制御プロセス群220に含まれる制御プロセスは、後述の第2コア242、第3コア243及び第4コア244の何れかで実行される。本実施形態では、第2制御プロセス群220に含まれる制御プロセスの一例として、拡張軸制御、前処理、通信制御、表示操作、工具管理、及びデバイス管理を図示する。
ここで、拡張軸制御は、ワークの取り外し等を行う拡張軸(例えば、工作機械400の制御における、ローダ軸)の移動量を計算する制御プロセスである。
また、前処理は、加工プログラムから、移動量を計算するための中間コードを生成する制御プロセスである。
また、通信制御は、イーサネット(登録商標)やシリアル通信による外部機器(パーソナルコンピュータやセンサ類等)との通信を制御する制御プロセスである。
また、表示操作は、制御装置の表示画面の作成、およびキー入力等を制御する制御プロセスである。また、工具管理は、加工に用いる工具情報を管理する制御プロセスである。
また、デバイス管理は、USB(Universal Serial Bus)メモリやSD(Secure Digital)カード等のデバイスを制御する制御プロセスである。
これら第1制御プロセス群210や第2制御プロセス群220に含まれる各制御プロセスは、所定のインタフェースを経由して他の制御プロセスとの間で、相互に処理の利用や、データの受け渡しを行う。所定のインタフェースの例としては、例えば、オブジェクト指向におけるメソッドの呼び出しや、コマンド送受信による通信等が挙げられる。
なお、これら第1制御プロセス群210や第2制御プロセス群220に含まれる各制御プロセスは、あくまで例示に過ぎず他の制御プロセスが追加されたり、他の制御プロセスに置き換えられたりしてもよい。
また、上述した加工条件は、後述する強化学習における状態情報の一部として、機械学習装置100により利用される。そのため、加工条件は、制御装置シミュレータ200から機械学習装置100に対して出力される。
ここで、加工条件は、例えば、パラメータ設定、運転モード、モーダル情報、加工プログラム、パラメータ設定、プロセッサコアの稼働状況等の情報を含む。これらの情報についてそれぞれ説明する。
パラメータ設定は、機械構成に基づいて設定されるパラメータの内容を示す情報である。例えば、工作機械の全ての軸数、工作機械の主軸数、拡張制御機能の有効・無効、同期制御機能の有効・無効等の内容がパラメータ設定に含まれる情報の具体例として挙げられる。
運転モードは、工作機械に設定されている運転モードの内容を示す情報である。例えば、自動運転モード、手動運転モード、プログラムの編集モード等のモードの何れに工作機械が設定されているかを示す情報が運転モードに含まれる情報の具体例として挙げられる。
モーダル情報は、工作機械に設定されているモーダル指令の内容を示す情報である。例えば、切削モード、早送りモード、タッピングモード等の何れにモーダル指令が設定されているかを示す情報がモーダル情報に含まれる情報の具体例として挙げられる。
加工プログラムは、ワーク加工のために工作機械を制御するプログラムとして何れの加工プログラムを使用しているかを示す情報である。例えば、加工プログラムの識別情報や、工具の移動経路、加工中に使用する機能群を示す情報が加工プログラムに含まれる情報の具体例として挙げられる。
プロセッサコアの稼働状況は、コアの稼働状況を示す情報である。例えば、稼働しているコアの数や、コアの動作周波数を示す情報がプロセッサコアの稼働状況に含まれる情報の具体例として挙げられる。
オペレーティングシステム230は、プロセッサ240による制御プロセスの実行等についての制御を行うOSである。オペレーティングシステム230は、監視部231、第1マルチコア制御部232及び第2マルチコア制御部233を含んで構成される。
監視部231は、制御プロセスを実行するプロセッサ240に関しての監視を行う部分である。監視部231は、監視を行うために、CPU(Central Processing Unit)モニタや、タスクマネージャとしての機能を備える。監視部231は、監視結果に基づいて判定情報を生成し、生成した判定情報を機械学習装置100に対して出力する。この判定情報は、後述する強化学習における状態情報の一部として、機械学習装置100により利用される。
判定情報に含まれる情報の例としては、例えば、プロセッサ240に含まれる各コアの稼働率、プロセッサ240に含まれる各コアの単位時間あたりの処理量、プロセッサ240に含まれる各コア間の通信量、プロセッサ240に含まれる各コアの発熱量、プロセッサ240に含まれる各コアのキャッシュヒット率等が挙げられる。
ただし、これらの情報はあくまで例示に過ぎず、他の情報が追加されたり、他の情報に置き換えられたりしてもよい。また、より詳細な情報であってもよい。例えば、コアから高速にアクセス可能なL1キャッシュと、L1キャッシュよりも低速であるがメインメモリにアクセスするよりも高速にアクセス可能なL2キャッシュが存在する場合を考える。この場合に、L1キャッシュにおけるキャッシュヒット率と、L2キャッシュにおけるキャッシュヒット率とを区別して、判定情報に含めるようにしてもよい。
第1マルチコア制御部232及び第2マルチコア制御部233は、プロセッサ240に含まれる各コアに、制御プロセスを割り当てて実行させる。
具体的には、第1マルチコア制御部232は、制御プロセスを実行するコアを固定したAMP(Asymmetrical multi−processing)型の制御を行う。第1マルチコア制御部232は、第1制御プロセス群210に含まれる制御プロセスを第1コア241に割り当てて、第1コア241に割り当てた制御プロセスを実行させる。
これに対して、第2マルチコア制御部233は、制御プロセスを実行するコアを固定しないSMP(Symmetrical multi−processing)型の制御を行う。第2マルチコア制御部233は、第2制御プロセス群220に含まれる制御プロセスを、第2コア242、第3コア243及び第4コア244の何れかに割り当てて、各コアに割り当てた制御プロセスを実行させる。第2マルチコア制御部233が何れのコアに何れの制御プロセスを割り当てるのかは、機械学習装置100が第2マルチコア制御部233に対して出力する行動情報に基づいて行われる。行動情報は、後述する強化学習において、機械学習装置100から出力される。
ここで、制御プロセスを割り当てるとは、各コアが実行すべき制御プロセスを指定することのみならず、制御プロセスの実行順序を指定することを含む。
なお、説明を簡単にするために、制御プロセスを割り当てると表現しているが、実際には、制御プロセスに含まれる独立した1つ以上のタスクまたはスレッドを単位として割り当てる。この場合、タスクまたはスレッドを適切に実行するために、1つのタスクまたはスレッドの開始から終了までは、同一の各コア上で実行するようにする。つまり、タスク、またはスレッドの実行途中で、実行する各コアを変更しないようにする。
プロセッサ240は、第1コア241、第2コア242、第3コア243及び第4コア244の4つのコアを含むプロセッサである。これら各コアは、第1マルチコア制御部232又は第2マルチコア制御部233の割り当てに基づいて制御プロセスを実行する。
なお、制御装置シミュレータ200は、制御装置300を仮想的に再現する装置であり、プロセッサ240のコア数や動作周波数等は、制御装置300に含まれるプロセッサを仮想的に再現したものとなる。つまり、プロセッサ240は、制御装置シミュレータ200が実際にハードウェアとして備える演算処理装置のコア数や動作周波数に限定されない。
また、本実施形態では、プロセッサ240を複数のコア(マルチコア)を備えた1つのプロセッサと想定するが、プロセッサ240を複数のプロセッサ(マルチプロセッサ)により実現するようにしてもよい。この場合には、本実施形態の説明における「コア」を、適宜「プロセッサ」と読み替えればよい。
次に、本実施形態において、第1マルチコア制御部232と第2マルチコア制御部233にて制御形式を異ならせている理由について説明をする。工作機械の制御装置には、軸の位置や速度をリアルタイムに制御するために一定の周期内、または一定の時間内に実行しなければならない制御プロセスが存在する。こうした制御プロセスに関しても、SMP型の制御形式で任意にコアの割り当てを行うと、一定の周期や時間内での実行を保証することが難しくなる可能性がある。
そこで、本実施形態では、AMP型の制御方式とSMP型の制御形式を併用する。そして、第1制御プロセス群210では、制御プロセスを実行する各コアを固定したAMP型の制御方式により、一定の周期内、または一定の時間内に実行しなければならない制御プロセスを、所定のコアに固定的に割り当てる。これにより、この制御プロセスについて、一定のリアルタイム性を保証することが可能になる。
一方で、本実施形態では、第2制御プロセス群220を設けることにより、第1制御プロセス群210による割り当てとは別途に、SMP型の制御方式で機械学習の内容を反映した最適な割り当てを行う。これにより、効果的な処理分散の最適化を行うことが可能となる。
つまり、2つの制御形式を併用することにより、一定のリアルタイム性を保証した上で、効果的な処理分散の最適化を行うことが可能となる。
<制御プロセスの実行>
次に、図3を参照して、第1マルチコア制御部232と第2マルチコア制御部233にて各コアに割り当てられた制御プロセスの実行について説明をする。
各コアは、割り当てられた制御プロセスの実行を、所定の長さの周期で、所定回数に分けて行う。例えば、図3に実行状態T〜実行状態Tとして示すように、所定の長さの周期(例えば、数msec)で、4回に分けて行う。
具体的には、実行状態Tでは、第1コア241から第4コア244でそれぞれ、基本軸制御、拡張軸制御、前処理、通信制御のプロセスを実行する。第3コア243で実行していた前処理のプロセスが完了すると、次のプロセスとして第3コア243で、表示操作を実行し、実行状態Tへ遷移する。第1コア241で実行していた基本軸制御のプロセスが完了すると、第1コア241では同期制御のプロセスを実行し、実行状態Tへ遷移する。第2コア242で実行していた拡張軸制御のプロセスが完了すると、第2コア242では工具管理のプロセス、第4コア244で実行していた通信制御のプロセスが完了すると、第4コア244ではデバイス管理のプロセスを実行し、実行状態Tへ遷移する。
なお、この例に示すように、各制御プロセスは、1周期で実行される場合もあるし、複数周期にまたがって実行される場合もある。
ここで、上述したように、第1コア241に割り当てられる制御プロセスと、その実行順序は固定されているが、第2コア242、第3コア243及び第4コア244に割り当てられる制御プロセスと、その実行順序(図3にて破線で囲った部分に相当)は変更することができる。
機械学習装置100は、行動情報により、第2コア242、第3コア243及び第4コア244に割り当てられる制御プロセスと、その実行順序(図3にて実線で囲った部分に相当)を変更して、実行状態TからTまでを繰り返し実行させる。そして、実行状態TからTまでを1つの状態と捉え、実行状態TからTが終了する都度、行動価値関数を更新することにより機械学習を行う。この機械学習の詳細について以下説明をする。
<機械学習>
上述した、各制御プロセスの各コアへの割り当て、及び各コアによる制御プロセスの実行と並行して、機械学習装置100による機械学習が行われる。
この機械学習のために機械学習装置100と制御装置シミュレータ200の間では、図2に示すように所定の情報が送受信される。具体的には、ユーザが設定した加工条件が制御装置シミュレータ200から機械学習装置100に対して出力される。また、上述したようにして監視部231が生成した判定条件も制御装置シミュレータ200から機械学習装置100に対して出力される。更に、行動情報が機械学習装置100から制御装置シミュレータ200に対して出力される。
機械学習装置100は、これらの入力及び出力に基づいて機械学習の1つである強化学習を行う。
次に、機械学習装置100に含まれる各機能ブロックの説明に先立って、まず強化学習の基本的な仕組みについて説明する。
強化学習において、エージェント(本実施形態における機械学習装置100に相当)は、環境(本実施形態における制御装置シミュレータ200に相当)の状態を観測し、ある行動を選択し、当該行動に基づいて環境が変化する。環境の変化に伴って、何らかの報酬が与えられ、エージェントはより良い行動の選択(意思決定)を学習する。
教師あり学習が、完全な正解を示すのに対して、強化学習における報酬は、環境の一部の変化に基づく断片的な値であることが多い。このため、エージェントは、将来にわたっての報酬の合計を最大にするように行動を選択するように学習する。
このように、強化学習では、行動を学習することにより、環境に行動が与える相互作用を踏まえて適切な行動を学習、すなわち将来的に得られる報酬を最大にする方法を学ぶ。これは、本実施形態において、工作機械を制御する各プロセスを、加工条件に応じて最適なコアに割り当てるという、未来に影響をおよぼすような行動を獲得できることを表している。
ここで、強化学習としては、任意の学習方法を用いることができるが、以下の説明では、或る環境の状態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 2019003271
上記の[数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年6月1日検索]、インターネット〈URL:http://files.davidqiu.com/research/nature14236.pdf〉
以上説明をしたQ学習を機械学習装置100が行う。
具体的には、機械学習装置100は、制御装置シミュレータ200から出力された加工条件と、制御装置シミュレータ200から出力された判定情報とにより特定される状態を環境状態sとして観測し、当該環境状態sにて制御プロセスを割り当てるコアと制御プロセスの実行順序との調整を行動aとして選択して価値Qを学習する。
機械学習装置100は、価値Qの学習のために、行動aをするたびに報酬を算出する。そして、機械学習装置100は、例えば、将来にわたっての報酬の合計が最大になるように最適な行動aを試行錯誤的に探索する。そうすることで、機械学習装置100は、環境状態sに対して、最適な行動aを選択することが可能となる。
このようにして機械学習装置100は、価値関数Qを学習する。そして、学習した価値関数Qに基づいて、或る状態sに係る各制御プロセスのコアへの割り当てに対して適用される行動aのうち、Qの値が最大となるような行動aを選択することで、各制御プロセスの、加工条件に応じて最適なコアへの割り当てを行うことが可能となる。
<機械学習装置100の機能ブロック>
次に、図4を参照して、上述した強化学習を行う機械学習装置100の機能ブロックについて説明をする。
図4に示すように、機械学習装置100は、状態情報取得部110、学習部120、行動情報出力部130、価値関数記憶部140、及び最適化行動情報出力部150を備える。また、学習部120は報酬算出部121、価値関数更新部122、及び行動情報生成部123を備える。
状態情報取得部110は、制御装置シミュレータ200に設定された加工条件と、監視部231による監視結果に基づいて生成された判定情報とを含む状態情報sを制御装置シミュレータ200から取得する。この状態情報sは、Q学習における、環境状態sに相当する。
状態情報取得部110は、取得した状態情報sを学習部120に対して出力する。
学習部120は、或る環境状態sの下で、ある行動aを選択する場合の価値Q(s,a)を学習する部分である。この学習を行うために、学習部120は、報酬算出部121、価値関数更新部122及び行動情報生成部123を備える。
報酬算出部121は、或る状態sの下で、行動aを選択した場合の報酬を算出する部分である。
報酬は状態情報sに含まれる判定情報を用いた判定により行われる。判定条件は任意のものを用いてよい。判定条件の例としては、以下の判定条件1〜判定条件5が挙げられる。
判定条件1:コア間の稼働率の差(例えば、各コア間の稼働率の差の平均値)に基づいた判定
稼働率の差が大きい場合→報酬減とする
稼働率の差が小さい場合→報酬増とする
判定条件2:単位時間の処理量(例えば、各コアにおける単位時間の処理量の平均値)に基づいた判定
処理量が多い場合→報酬増とする
処理量が少い場合→報酬減とする
判定条件3:コア間通信量(例えば、各コア間における通信量の総和)に基づいた判定
通信量が多い場合→報酬減とする
通信量が少い場合→報酬増とする
判定条件4:消費電力量又は発熱量(例えば、各コアにおける消費電力量又は発熱量の最大値)に基づいた判定
消費電力又は発熱量が多い場合→報酬減とする
消費電力又は発熱量が少い場合→報酬増とする
判定条件5:キャッシュヒット率(例えば、各コアにおけるキャッシュヒット率の総和)
キャッシュヒット率が高い→報酬増とする
キャッシュヒット率が低い→報酬減とする
報酬算出部121は、これらの判定条件の内の1つに基づいて報酬を算出してもよく、複数に基づいて報酬を算出するようにしてもよい。複数に基づいて算出する場合には、各判定条件により算出された報酬の増減値を合算すればよい。この場合に、各判定条件により算出された報酬の増減値に重み付けをした上で、合算するようにしてもよい。例えば、消費電力を低減することを重視している場合には、上記判定条件4にて算出された報酬の増減値の重み付けを重くするようにするとよい。
また、各判定条件において、報酬の増減値を、条件を満たした度合いに応じて増加又は減少させるようにしてもよい。例えば、上記判定条件1であれば、稼働率の差が大きければ大きいほど、減少させる報酬の値を大きくするようにしてもよい。また、稼働率の差が小さければ小さいほど、増加させる報酬の値を大きくするようにしてもよい。
更に、本実施形態では、上述したように制御プロセスの実行を、所定の長さの周期で、所定回数に分けて行う。この所定の回数分の判定情報の平均値や最大値を算出し、最終的に、この算出した値と判定条件とを照らし合わせて、或る状態sの下で、行動aを選択した場合の報酬を算出するようにしてもよい。あるいは、この所定の周期毎に判定情報を判定条件に照らし合わせて報酬の増減値を算出して記憶しておき、最終的に、記憶した所定の回数分の報酬の増減値を合算することにより、或る状態sの下で、行動aを選択した場合の報酬を算出するようにしてもよい。
価値関数更新部122は、状態sと、行動aと、行動aを状態sに適用した場合の状態s´と、上記のようにして算出された報酬の値と、に基づいてQ学習を行うことにより、価値関数記憶部140が記憶する価値関数Qを更新する。
価値関数Qの更新は、オンライン学習で行ってもよく、バッチ学習で行ってもよく、ミニバッチ学習で行ってもよい。
オンライン学習とは、或る行動aを現在の状態sに適用することにより、状態sが新たな状態s´に遷移する都度、即座に価値関数Qの更新を行うという学習方法である。また、バッチ学習とは、或る行動aを現在の状態sに適用することにより、状態sが新たな状態s´に遷移することを繰り返すことにより、学習用のデータを収集し、収集した全ての学習用データを用いて、価値関数Qの更新を行うという学習方法である。更に、ミニバッチ学習とは、オンライン学習と、バッチ学習の中間的な、ある程度学習用データが溜まるたびに価値関数Qの更新を行うという学習方法である。
行動情報生成部123は、現在の状態sに対して、Q学習の過程における行動aを選択する。行動情報生成部123は、Q学習の過程において、各制御プロセスを実行するコアの指定と、その実行順序の変更動作(Q学習における行動aに相当)を行わせるために、行動情報aを生成して、生成した行動情報aを行動情報出力部130に対して出力する。より具体的には、行動情報生成部123は、例えば、行動aに含まれる、各制御プロセスを実行するコアの指定と、その実行順序の少なくとも何れかを1つ以上変更して出力する。
行動情報生成部123は、行動aをランダムに選択するという方策を取るようにしてもよい。他にも、現在の推定される行動aの価値の中で、最も価値Q(s,a)の高い行動aを選択するグリーディ法や、ある小さな確率εでランダムに行動aを選択し、それ以外では最も価値Q(s,a)の高い行動aを選択するεグリーディ法といった公知の方法により、行動aを選択する方策を取るようにしてもよい。
行動情報出力部130は、学習部120から出力される行動情報aを制御装置シミュレータ200の第2マルチコア制御部233に対して送信する部分である。第2マルチコア制御部233は、上述したように、この行動情報aに基づいて、現在の状態s、すなわち現在割り当てられている、各制御プロセスを実行するコアの指定と、その実行順序を修正することで、次の状態s´(すなわち修正された、各制御プロセスを実行するコアの指定と、その実行順序)に遷移する。
価値関数記憶部140は、価値関数Qを記憶する記憶装置である。価値関数Qは、例えば状態s、行動a毎にテーブルとして格納してもよい。価値関数記憶部140に記憶された価値関数Qは、価値関数更新部122により更新される。また、価値関数記憶部140に記憶された価値関数Qは、他の機械学習装置100との間で共有されるようにしてもよい。価値関数Qを複数の機械学習装置100で共有するようにすれば、各機械学習装置100にて分散して強化学習を行うことが可能となるので、強化学習の効率を向上させることが可能となる。
最適化行動情報出力部150は、価値関数更新部122がQ学習を行うことにより更新した価値関数Qに基づいて、価値Q(s,a)が最大となる、各制御プロセスを実行するコアの指定と、その実行順序とするための行動情報a(以下、「最適化行動情報」と呼ぶ)を生成する。
より具体的には、最適化行動情報出力部150は、価値関数記憶部140が記憶している価値関数Qを取得する。この価値関数Qは、上述したように価値関数更新部122がQ学習を行うことにより更新したものである。そして、最適化行動情報出力部150は、価値関数Qと、制御装置300に設定されている加工条件と基づいて、最適化行動情報を生成し、生成した最適化行動情報を制御装置300に対して出力する。この最適化行動情報には、行動情報出力部130がQ学習の過程において出力する行動情報と同様に、各制御プロセスを実行するコアの指定と、その実行順序が含まれる。
制御装置300では、この最適化行動情報に基づいて各制御プロセスを実行するコアの指定と、その実行順序が修正される。
以上のように、機械学習装置100を利用することで、制御装置300における、各制御プロセスを実行するコアの指定と、その実行順序とを最適化することが可能となる。
<制御装置300の機能ブロック>
次に、図5を参照して、制御装置300の機能ブロックについて説明をする。ここで、上述した制御装置シミュレータ200は、制御装置300の機能を仮想的に再現したシミュレータである。従って、制御装置300は、制御装置シミュレータ200と同等の機能を有する。つまり、上述した制御装置シミュレータ200の説明における各機能ブロックの説明を、制御装置300における同名の機能ブロックの説明に読み替えれば、制御装置300の説明となる。そのため、ここでは、重複する説明は省略する。
また、制御装置300には、制御装置シミュレータ200と同等の加工条件が設定される。加工条件の詳細については、制御装置シミュレータ200の説明の際に上述しているので、ここでは、重複する説明は省略する。
ただし本実施形態では、制御装置300は学習フェーズにおける機械学習の対象ではなく、運用フェーズにおける制御対象である点で制御装置シミュレータ200と相違する。そのため、図5に示すように、制御装置300の監視部331は、機械学習装置100に対して判定情報を出力する必要はない。また、機械学習装置100から出力されるのは、機械学習において試行錯誤的に出力される行動情報ではなく、機械学習の結果に基づいて出力される最適化された行動情報となる。
以上、機械学習装置100、制御装置シミュレータ200及び制御装置300に含まれる機能ブロックについて説明した。
これらの機能ブロックを実現するために、機械学習装置100、制御装置シミュレータ200及び制御装置300のそれぞれは、CPU等の演算処理装置を備える。また、機械学習装置100、制御装置シミュレータ200及び制御装置300のそれぞれは、アプリケーションソフトウェアやOS等の各種の制御用プログラムを格納したHDD(Hard Disk Drive)等の補助記憶装置や、演算処理装置がプログラムを実行する上で一時的に必要とされるデータを格納するためのRAM(Random Access Memory)といった主記憶装置も備える。
そして、機械学習装置100、制御装置シミュレータ200及び制御装置300のそれぞれにおいて、演算処理装置が補助記憶装置からアプリケーションソフトウェアやOSを読み込み、読み込んだアプリケーションソフトウェアやOSを主記憶装置に展開させながら、これらのアプリケーションソフトウェアやOSに基づいた演算処理を行なう。また、この演算結果に基づいて、各装置が備える各種のハードウェアを制御する。これにより、本実施形態の機能ブロックは実現される。つまり、本実施形態は、ハードウェアとソフトウェアが協働することにより実現することができる。また、本実施形態を実現するためのプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non−transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。
なお、機械学習装置100については機械学習に伴う演算量が多いため、例えば、パーソナルコンピュータにGPU(Graphics Processing Units)を搭載し、GPGPU(General−Purpose computing on Graphics Processing Units)と呼ばれる技術により、GPUを機械学習に伴う演算処理に利用するようにすると高速処理できるようになるのでよい。更には、より高速な処理を行うために、このようなGPUを搭載したコンピュータを複数台用いてコンピュータ・クラスターを構築し、このコンピュータ・クラスターに含まれる複数のコンピュータにて並列処理を行うようにしてもよい。
<本実施形態の動作>
次に、図6のフローチャートを参照して本実施形態におけるQ学習時の機械学習装置100の動作について説明をする。
ステップS11において、状態情報取得部110が制御装置シミュレータ200から状態情報sを取得する。取得した状態情報は、価値関数更新部122や行動情報生成部123に対して出力される。上述したように、この状態情報sは、Q学習における環境状態sに相当する情報であり、ステップS11時点での、制御装置シミュレータ200に設定された加工条件と、監視部231による監視結果に基づいて生成された判定情報とを含む。
ステップS12において、行動情報生成部123は新たな行動情報aを生成し、生成した新たな行動情報aを、行動情報出力部130を介して制御装置シミュレータ200の第2マルチコア制御部233に対して出力する。行動情報生成部123は前述した方策に基づいて、新たな行動情報aを出力する。なお、行動情報aを受信した第2マルチコア制御部233は、受信した行動情報に基づいて現在の状態sに係る各制御プロセスを実行するコアの指定と、その実行順序を修正した状態s´により、各コアに制御プロセスを実行させる。上述したように、この行動情報は、Q学習における行動aに相当するものである。
ステップS13において、状態情報取得部110は、制御装置シミュレータ200から新たな状態s´における状態情報s´を取得する。なお、本実施形態では、強化学習の過程において、制御装置シミュレータ200に設定された加工条件は変更しない。つまり、加工条件は、ステップS11とステップS13とで同じ内容のままとなる。
従って、状態情報s´には、監視部231による監視結果に基づいて生成された判定情報が含まれておればよく、加工条件は含まれていなくともよい。この場合、状態情報取得部110は、ステップS11にて取得済みの加工条件を状態情報s´に含ませるようにすればよい。
取得した状態情報s´は、報酬算出部121に対して出力される。
ステップS14において、報酬算出部121は、状態情報s´に含まれる判定情報に基づいた判定を行う。報酬算出部121による判定の方法は、<機械学習装置100の機能ブロック>の欄において上述した通りである。
ステップS15において、ステップS14にて各判定条件に基づいて報酬を増加又は報酬を減少させると判定した結果、最終的に報酬が正の値となったか、負の値となったか、あるいはゼロとなったかを判定する。
報酬が正の値となった場合は、ステップS15にて「正の値」となり、ステップS16に進む。そして、ステップS16にて報酬として正の値を価値関数更新部122に対して出力する。
報酬がゼロとなった場合は、ステップS15にて「ゼロ」となり、ステップS17に進む。そして、ステップS17にて報酬としてゼロを価値関数更新部122に対して出力する。
報酬が負の値となった場合は、ステップS15にて「負の値」となり、ステップS18に進む。そして、ステップS18にて報酬として負の値を価値関数更新部122に対して出力する。
ステップS16、ステップS17及びステップS18の何れかが終了すると、処理はステップS19に進む。
ステップS19において、ステップS16、ステップS17及びステップS18の何れかのステップにて出力された報酬の値に基づいて、価値関数更新部122が、価値関数記憶部140に記憶している価値関数Qを更新する。なお、ステップS19はオンライン更新を例示しているが、オンライン更新に替えてバッチ更新又はミニバッチ更新に置き換えてもよい。
ステップS20において、学習部120は、強化学習を終了する条件が満たされたか否かを判定する。強化学習を終了する条件は、例えば上述した処理を、所定回数繰り返したことや、所定時間繰り返したこととする。未だ強化学習を終了する条件が満たされていない場合には、ステップS20においてNoと判定され、処理は再度ステップS11に戻る。そして、上述した処理を繰り返すことにより、価値関数Qは適切な値に収束していく。
一方で、強化学習を終了する条件が満たされた場合には、ステップS20においてYesと判定され、処理は終了する。
以上、図6を参照して説明した動作により、本実施形態では、機械学習装置100を利用することで、各制御プロセスを実行するコアの指定と、その実行順序とを最適化するための、価値関数を得ることができる。
次に、図7のフローチャートを参照して、最適化行動情報出力部150による最適化行動情報の生成時の動作について説明をする。
まず、ステップS31において、状態情報取得部110が制御装置300から状態情報sを取得する。
ステップS32において、最適化行動情報出力部150は、価値関数記憶部140に記憶している価値関数Qを取得する。価値関数Qは、上述したように価値関数更新部122がQ学習を行うことにより更新したものである。
ステップS33において、最適化行動情報出力部150は、ステップS31において取得した状態情報sに含まれる加工条件と、ステップS32において取得した価値関数Qとに基づいて、最適化行動情報を生成する。そして、最適化行動情報出力部150は、生成した最適化行動情報を制御装置300のマルチコア制御部333に対して出力する。この最適化行動情報は、各制御プロセスを実行するコアの指定と、その実行順序とを最適化するための情報である。
制御装置300では、この最適化行動情報に基づいて、各制御プロセスを実行するコアの指定と、その実行順序とを最適化する。
以上のように、本発明に係る機械学習装置100を利用することで、複数の演算部を有する装置において、効果的な処理分散を行うことが可能となる。
<最適化行動情報の適用>
次に、制御装置300にて、最適化行動情報に基づいて、各制御プロセスを実行するコアの指定と、その実行順序とを最適化した状態について図8を参照して説明をする。本説明では、制御装置300が、加工条件S、加工条件S及び加工条件Sの状態を繰り返し遷移する場合を想定する。
制御装置300は、加工条件Sを含んだ状態情報sを、機械学習装置100に入力する。これに応じて機械学習装置100は、加工条件Sにおける最適なコアの割り当てを指示した行動情報を制御装置300に対して提供する。
図中には、制御装置300から加工条件S、実行状態Tにおける行動出力が下記のように提供された場合を示す。
<加工条件S
実行状態T:第2コア342で前処理、第3コア343で拡張軸制御、第4コア344で表示操作を実行
実行状態T:第2コア342で前処理、第3コア343で通信制御、第4コア344で表示操作を実行
実行状態T:第2コア342で前処理、第3コア343で通信制御、第4コア344で工具管理を実行
実行状態T:第2コア342で前処理、第3コア343で通信制御、第4コア344でデバイス管理を実行
<加工条件S
実行状態T:第2コア342で前処理、第3コア343で拡張軸制御、第4コア344で表示操作を実行
実行状態T:第2コア342で前処理、第3コア343で通信制御、第4コア344で表示操作を実行
実行状態T:第2コア342で前処理、第3コア343で通信制御、第4コア344で工具管理を実行
実行状態T:第2コア342でデバイス管理、第3コア343で通信制御、第4コア344で工具管理を実行
<加工条件S
実行状態T:第2コア342で拡張軸制御、第3コア343で通信制御、第4コア344で前処理を実行
実行状態T:第2コア342で拡張軸制御、第3コア343でデバイス管理、第4コア344で前処理を実行
実行状態T:第2コア342で拡張軸制御、第3コア343でデバイス管理、第4コア344で工具管理を実行
実行状態T:第2コア342で表示操作、第3コア343でデバイス管理、第4コア344で工具管理を実行
このように、本実施形態によれば、制御プロセスを実行するコアと、その実行順序との割り当てを、複数の加工条件それぞれに応じて、最適化することが可能となる。
<本実施形態が奏する効果>
次に、本実施形態が奏する効果についてより詳細に説明する。
前提として、制御装置による工作機械の制御では、パラメータ設定や運転モード、運転する加工プログラムなどの加工条件により、リアルタイムに制御する対象軸や、実行する処理の優先度が大幅に変化する。これは、汎用のアプリケーションによる制御と異なり、工作機械の制御に特有の特徴である。
更に、工作機械の制御では、軸の制御に限らず、通信機能や表示機能、信号の入出力機能などを平行して実行するため、複数の演算部間での通信及び通信に伴う制御(例えば、同一メモリに対する排他制御など)が頻発する可能性もあり、単純に負荷を均等化しただけでは、パフォーマンスを低下させるおそれがある。
例えば、特許文献1から特許文献5に開示の技術のような一般的な技術ではこれらの問題を解決することは困難であった。
しかしながら、本実施形態では、制御プロセスを実行するのに最適なコアの決定に機械学習を取り入れることで、加工条件に応じて最適な処理分散パターンを確立することができる。そのため、例えば、下記のような効果を奏する。
まず、コア間の稼働率の差を減らすことで、均等化された無駄のない稼動状態とすることができる。また、コア間通信量を減らすこと、および単位時間あたりの処理量を増やすことで、システム全体のスループットを向上することができる。更に、消費電力量や発熱量を小さくした省エネ運転、および発熱による故障の回避をすることができる。
このように、本実施形態によれば、従来に比してより有利な効果を奏することができる。
<第1変形例>
上述の実施形態では、強化学習装置機械学習装置100が強化学習を行うために、ユーザが強化学習の対象とする加工条件を制御装置シミュレータ200に設定していた。しかしながら、強化学習の対象としたい加工条件が多数存在するような場合には、ユーザが逐一加工条件を入力することは煩雑である。
そこで、本変形例では、より多くの加工条件を対象として自動的に強化学習を行うために、学習フェーズにおいて、様々な制御装置の状態を想定した加工条件を生成する加工条件生成部を更に追加する。
本変形例の構成について図9を参照して説明をする。図9に示すように、本変形例では、学習フェーズにおいて、制御装置シミュレータ200に加工条件生成部500を接続する。なお、加工条件生成部500は、独立した装置により実現してもよいが、機械学習装置100の機能ブロックとして実現してもよい。
加工条件生成部500には、加工条件を生成するための種々の情報が入力される。例えば、図示するように、複数のパラメータ設定を含むパラメータ群や、複数の運転モードを含む運転モード群や、複数の加工プログラムを含む加工プログラム群が入力される。
加工条件生成部500は、これらの情報に含まれるパラメータ設定、運転モード、加工プログラムの内容、および組み合わせを変えることにより加工条件を自動で生成する。そして、加工条件生成部500が生成した加工条件を制御装置シミュレータ200に設定し、制御装置シミュレータ200を稼動させることで、生成した加工条件についての強化学習を行う。
これにより、ユーザの負担を軽減した上で、様々な加工条件について強化学習を行うことが可能となる。
なお、パラメータ設定、運転モード、加工プログラムの内容を完全にランダムに組み合わせると、現実では利用しないような加工条件についてばかり強化学習を行ってしまうようなことも考えられる。そこで、加工条件生成部500には、ユーザが作成した現実的な加工条件を1つ、または複数入力するようにするとよい。そして、加工条件生成部500は、この現実的な加工条件の一部を変更しながら加工条件を生成する。これにより、現実的な加工条件及びこの加工条件に類する加工条件についてのみ強化学習を行うことができる。
<第2変形例>
運用フェーズにおいて、強化学習の対象としたことがない未知の加工条件が含まれた状態情報sが入力された場合には、この未知の加工条件について最適化された行動情報を出力することができない。
そこで、本変形例では、未知の加工条件が含まれた状態情報sが入力された場合に、この未知の加工条件に最も近似する加工条件であって、強化学習の対象としたことがある既知の加工条件に変更をする。既知の加工条件については、強化学習の対象としているので、最適化された行動情報を出力することができる。
本変形例の構成について図10を参照して説明をする。図10に示すように、本変形例では、運用フェーズにおいて、制御装置シミュレータ200に加工条件変更部600を接続する。なお、加工条件変更部600は、独立した装置により実現してもよいが、機械学習装置100の機能ブロックとして実現してもよい。
そして、機械学習装置100に、未知の加工条件(例えば加工条件S)が含まれた状態情報sが入力された場合、機械学習装置100から加工条件変更部600に、加工条件の内容を含んだエラーを通知する。この通知を受けた加工条件変更部600は、この未知の加工条件(例えば加工条件S)に最も近似する加工条件であって、強化学習の対象としたことがある既知の加工条件(例えば加工条件S)を機械学習装置100に対して出力する。
ここで、加工条件変更部600が既知の加工条件の中から、未知の加工条件に最も近似する加工条件を選択する方法について図11を参照して説明をする。
図11には、具体例として、未知の加工条件Sに最も近似する加工条件を、既知の加工条件S、S、Sの中から選択する例を示す。
上述したように加工条件には様々な情報が含まれている。この様々な情報の内、運転モード、加工プログラム、及びコアの稼働状況については、加工条件Sに一致していることが望ましい。そのため、未知の加工条件Sとはコアの稼働状況が異なっている加工条件Sは、選択する候補から除外する。
続いて、パラメータ設定に含まれる各項目の比較を行い、未知の加工条件Sと一致項目が一番多い加工条件Sを加工条件Sに最も近似した加工条件とみなす。
なお、何れの項目を比較する対象の情報とするかはユーザの設定等に応じて任意に選択可能とする。
また、単に一致する項目の数のみに基づいて選択を行うのではなく、各項目の重み付けを行っても良い。例えば、制御軸数が一致したら5ポイント、制御主軸数が一致したら3ポイント、・・・と設定しておき、ポイントの合計値で類似する加工条件を判断するようにしてもよい。
また、一般的に、制御する軸数や、有効/無効の機能が一致するほど、CPU負荷の傾向も類似するため、これらのパラメータ設定を比較の対象としたり、重み付けを重くしたりするとよい。
また、運転モード、加工プログラム、コアの稼働状況が一致しない場合、又は、パラメータ設定も一致する項目が少ない場合などは、類似する加工条件が存在しないと判定するようにしてもよい。この場合は、機械学習装置100を利用せずに制御することを、ユーザが選択できるようにするとよい。
<第3変形例>
上述した実施形態では、機械学習装置100、制御装置シミュレータ200、制御装置300を、それぞれ別体の装置により構成したが、これら別体となっている装置の機能の一部又は全部を同一の装置により実現するようにしてもよい。
また、機械学習装置100、制御装置シミュレータ200、制御装置300の機能の一部又は全部を複数の装置により実現するようにしてもよい。この場合、機械学習装置100や、制御装置シミュレータ200や、制御装置300の各機能を、適宜複数のサーバに分散する、分散処理システムとしてもよい。また、クラウド上で仮想サーバ機能等を利用するようにしてもよい。
1 機械学習システム
100 機械学習装置
110 状態情報取得部
120 学習部
121 報酬算出部
122 価値関数更新部
123 行動情報生成部
130 行動情報出力部
140 価値関数記憶部
150 最適化行動情報出力部
200 制御装置シミュレータ
210、310 第1制御プロセス群
220、320 第2制御プロセス群
230、330 オペレーティングシステム
231、331 監視部
232、332 第1マルチコア制御部
233、333 第2マルチコア制御部
240、340 プロセッサ
241、341 第1コア
242、342 第2コア
243、343 第3コア
244、344 第4コア
300 制御装置
400 工作機械
500 加工条件生成部
600 加工条件変更部

Claims (9)

  1. 工作機械を制御する複数のプロセスを複数の演算部にて並列に実行する制御装置に対して、強化学習を行う機械学習装置であって、
    前記複数のプロセスを実行する演算部の割り当てを含んだ行動情報を、前記制御装置に対して出力する行動情報出力手段と、
    前記工作機械に設定した加工に関しての条件である加工条件と、前記行動情報に含まれる割り当てに基づいた前記複数の演算部による前記複数のプロセスの実行を監視することにより生成された判定情報と、を含む状態情報を取得する状態情報取得手段と、
    前記状態情報に含まれる前記判定情報に基づいて、強化学習における報酬の値を算出する報酬算出手段と、
    前記報酬の値と、前記状態情報と、前記行動情報とに基づいて行動価値関数を更新する価値関数更新手段と、
    を備える機械学習装置。
  2. 前記複数の演算部は、前記複数のプロセスを所定の周期で所定回数に分けて実行し、
    前記価値関数更新手段は、前記複数の演算部において、前記複数のプロセスが終了する都度、前記行動価値関数を更新し、
    前記行動情報出力手段は、前記複数の演算部において、前記複数のプロセスが終了する都度、割り当て内容を変更した行動情報を前記制御装置に対して出力する、
    請求項1に記載の機械学習装置。
  3. 前記行動情報に含まれる前記割り当ては、前記複数の演算部のそれぞれが実行するプロセスの指定と、プロセスを実行する順序とを含み、
    前記行動情報出力手段は、前記割り当て内容を変更した行動情報として、前記複数の演算部のそれぞれが実行するプロセスの指定と、プロセスを実行する順序の少なくとも何れかを変更した行動情報を、前記制御装置に対して出力する請求項2に記載の機械学習装置。
  4. 前記複数の演算部の内の一部の演算部については割り当てられるプロセスが固定されており、
    前記行動情報出力手段は、前記割り当て内容を変更した行動情報として、割り当てられるプロセスが固定されていない演算部についての割り当て内容を変更した行動情報を出力する請求項2又は3に記載の機械学習装置。
  5. 当該機械学習装置により行われる強化学習は、シミュレータにより仮想的に再現された前記制御装置に対して行われ、
    前記強化学習終了後、前記制御装置の実機から取得した状態情報と、前記強化学習により学習された行動価値関数と、に基づいて前記行動情報を生成し、生成した行動情報を前記制御装置の実機に対して出力する最適化行動情報出力部を更に備える請求項1から請求項4の何れか1項に記載の機械学習装置。
  6. 前記制御装置の実機から取得した状態情報に含まれる加工条件が、未だ強化学習の対象としていない加工条件であった場合に、当該加工条件を、加工条件の内容の一部が一致する加工条件であって機械学習の対象としたことのある他の加工条件に変更する加工条件変更手段を更に備え、
    前記最適化行動情報出力部は、前記加工条件変更部により加工条件が変更された状態情報と、前記他の加工条件に応じた前記強化学習により学習された行動価値関数とに基づいて前記行動情報を生成し、生成した前記行動情報を前記制御装置の実機に対して出力する請求項5に記載の機械学習装置。
  7. 前記加工条件を生成し、生成した加工条件を前記制御装置に対して設定する加工条件生成手段を更に備える請求項1から請求項6の何れか1項に記載の機械学習装置。
  8. 前記制御装置であって、請求項1から請求項7の何れか1項に記載の強化学習装置を備える制御装置。
  9. 工作機械を制御する複数のプロセスを複数の演算部にて並列に実行する制御装置に対して、強化学習を行う機械学習装置としてコンピュータを機能させる機械学習プログラムであって、
    前記複数のプロセスを実行する演算部の割り当てを含んだ行動情報を、前記制御装置に対して出力する行動情報出力手段と、
    前記工作機械に設定した加工に関しての条件である加工条件と、前記行動情報に含まれる割り当てに基づいた前記複数の演算部による前記複数のプロセスの実行を監視することにより生成された判定情報と、を含む状態情報を取得する状態情報取得手段と、
    前記状態情報に含まれる前記判定情報に基づいて、強化学習における報酬の値を算出する報酬算出手段と、
    前記報酬の値と、前記状態情報と、前記行動情報とに基づいて行動価値関数を更新する価値関数更新手段と、
    を備える機械学習装置として前記コンピュータを機能させる機械学習プログラム。
JP2017115221A 2017-06-12 2017-06-12 機械学習装置、制御装置及び機械学習プログラム Active JP6530783B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2017115221A JP6530783B2 (ja) 2017-06-12 2017-06-12 機械学習装置、制御装置及び機械学習プログラム
US15/981,356 US10705506B2 (en) 2017-06-12 2018-05-16 Reinforcement learning to allocate processes to a machine tool controller
CN201810588871.8A CN109032078B (zh) 2017-06-12 2018-06-08 机器学习装置、控制装置以及计算机可读介质
DE102018209149.8A DE102018209149B4 (de) 2017-06-12 2018-06-08 Maschinenlernvorrichtung, Steuerung und Maschinenlernprogramm

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017115221A JP6530783B2 (ja) 2017-06-12 2017-06-12 機械学習装置、制御装置及び機械学習プログラム

Publications (2)

Publication Number Publication Date
JP2019003271A true JP2019003271A (ja) 2019-01-10
JP6530783B2 JP6530783B2 (ja) 2019-06-12

Family

ID=64332752

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017115221A Active JP6530783B2 (ja) 2017-06-12 2017-06-12 機械学習装置、制御装置及び機械学習プログラム

Country Status (4)

Country Link
US (1) US10705506B2 (ja)
JP (1) JP6530783B2 (ja)
CN (1) CN109032078B (ja)
DE (1) DE102018209149B4 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020035975A1 (ja) * 2018-08-17 2020-02-20 三菱電機株式会社 数値制御装置
JP2020183816A (ja) * 2019-04-26 2020-11-12 ダイキン工業株式会社 熱源システム、目標運転容量推定方法、目標運転容量推定プログラム
JP2021515352A (ja) * 2019-01-30 2021-06-17 モビイス カンパニー リミテッド 人工神経網シミューレーターと強化学習制御器を使用した実時間加速器の制御システム
WO2021152852A1 (ja) * 2020-01-31 2021-08-05 三菱電機株式会社 制御装置、機械学習装置、および、制御方法
WO2022162787A1 (ja) * 2021-01-27 2022-08-04 三菱電機株式会社 数値制御システム、タスク割り当て変更装置及び数値制御方法

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10386817B1 (en) * 2015-09-11 2019-08-20 Haas Automation, Inc. Multi-core processing machine tool control system
US10948883B2 (en) * 2017-09-20 2021-03-16 Rockwell Automation Technologies, Inc. Machine logic characterization, modeling, and code generation
US10417556B1 (en) * 2017-12-07 2019-09-17 HatchB Labs, Inc. Simulation-based controls optimization using time series data forecast
WO2020032947A1 (en) * 2018-08-09 2020-02-13 Siemens Aktiengesellschaft Manufacturing process control using constrained reinforcement machine learning
CN111505944B (zh) * 2019-01-30 2021-06-11 珠海格力电器股份有限公司 节能控制策略学习方法、实现空调节能控制的方法及装置
JP2020131353A (ja) * 2019-02-19 2020-08-31 パナソニックIpマネジメント株式会社 研磨加工システム、学習装置、学習装置の学習方法
EP3936224A4 (en) * 2019-03-08 2022-04-27 FUJIFILM Corporation DATA GENERATING DEVICE, DATA GENERATING METHOD, LEARNING DEVICE AND LEARNING METHOD
CN110244626B (zh) * 2019-06-21 2021-09-14 南京邮电大学 基于强化学习的多用户水产养殖自动调控系统及方法
EP4007942A1 (en) * 2019-09-19 2022-06-08 Siemens Aktiengesellschaft Method for self-learning manufacturing scheduling for a flexible manufacturing system and device
JP2022548836A (ja) * 2019-09-19 2022-11-22 シーメンス アクチエンゲゼルシヤフト 状態行列を用いたフレキシブル生産システムおよび装置のための自己学習型製造スケジューリング方法
JP6966655B2 (ja) * 2019-09-30 2021-11-17 株式会社日立情報通信エンジニアリング 状態予測システム
WO2021092490A1 (en) * 2019-11-06 2021-05-14 D.P. Technology Corp. Systems and methods for virtual environment for reinforcement learning in manufacturing
EP3825263A1 (de) * 2019-11-20 2021-05-26 Siemens Aktiengesellschaft Verfahren zur computer-implementierten konfiguration einer geregelten antriebsapplikation eines logistiksystems
US11429869B2 (en) * 2019-11-21 2022-08-30 International Business Machines Corporation Artificially intelligent interaction agent
DE102020107623A1 (de) 2020-03-19 2021-09-23 Trumpf Werkzeugmaschinen Gmbh + Co. Kg Computerimplementiertes verfahren zum erstellen von steuerungsdatensätzen, cad-cam-system und fertigungsanlage
KR102169876B1 (ko) * 2020-05-22 2020-10-27 주식회사 애자일소다 조건부 에피소드 구성을 이용한 강화학습 장치 및 방법
CN111633469A (zh) * 2020-06-11 2020-09-08 深圳市彼络科技有限公司 一种基于强化学习的自动刀具补偿方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000076087A (ja) * 1998-08-28 2000-03-14 Hitachi Ltd マルチオペレーティングシステム制御方法
JP2009163527A (ja) * 2008-01-08 2009-07-23 Hitachi Ltd Os間で負荷分散する情報処理システム
JP2014035564A (ja) * 2012-08-07 2014-02-24 Fanuc Ltd マルチコアプロセッサを有する数値制御装置
JP2015200947A (ja) * 2014-04-04 2015-11-12 ファナック株式会社 マルチコアプロセッサを使用して逐次プログラムを実行する制御装置
JP2016012221A (ja) * 2014-06-27 2016-01-21 ファナック株式会社 加工プログラム指令内容に応じてcpu負荷を分散可能な数値制御装置
JP2016051258A (ja) * 2014-08-29 2016-04-11 ファナック株式会社 複数軸の軸制御処理を分散して実行可能な数値制御装置
JP6114421B1 (ja) * 2016-02-19 2017-04-12 ファナック株式会社 複数の産業機械の作業分担を学習する機械学習装置,産業機械セル,製造システムおよび機械学習方法
JP2017097664A (ja) * 2015-11-25 2017-06-01 ファナック株式会社 複数のcpuコアで最適な負荷配分を行う数値制御装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6016239A (ja) 1984-06-07 1985-01-28 Matsushita Electric Ind Co Ltd 加熱調理器
US8429097B1 (en) * 2009-08-12 2013-04-23 Amazon Technologies, Inc. Resource isolation using reinforcement learning and domain-specific constraints
DE102011105141A1 (de) * 2011-06-09 2012-12-13 Dmg Electronics Gmbh Verfahren und system zur simulation eines arbeitsprozesses an einer werkzeugmaschine
US9430299B2 (en) * 2014-08-06 2016-08-30 International Business Machines Corporation System, method and product for task allocation
JP6063013B1 (ja) 2015-08-27 2017-01-18 ファナック株式会社 びびり或いは工具摩耗/破損の発生を抑制する加工条件調整機能を有する数値制御装置
JP6438366B2 (ja) 2015-08-28 2018-12-12 ファナック株式会社 電動機に対する動作指令を学習する機械学習方法および機械学習装置並びに該機械学習装置を備えた制御装置および電動機装置
US9811389B2 (en) * 2015-09-23 2017-11-07 Intel Corporation Task assignment for processor cores based on a statistical power and frequency model
JP6110451B1 (ja) 2015-09-30 2017-04-05 ファナック株式会社 機械学習装置およびコイル製造装置
JP5969676B1 (ja) 2015-09-30 2016-08-17 ファナック株式会社 工作機械の工具補正の頻度を最適化する機械学習装置及び機械学習方法、並びに該機械学習装置を備えた工作機械
JP6193961B2 (ja) 2015-11-30 2017-09-06 ファナック株式会社 機械の送り軸の送りの滑らかさを最適化する機械学習装置および方法ならびに該機械学習装置を備えたモータ制御装置
US10146286B2 (en) * 2016-01-14 2018-12-04 Intel Corporation Dynamically updating a power management policy of a processor
US10140161B1 (en) * 2017-04-28 2018-11-27 EMC IP Holding Company LLC Workload aware dynamic CPU processor core allocation

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000076087A (ja) * 1998-08-28 2000-03-14 Hitachi Ltd マルチオペレーティングシステム制御方法
JP2009163527A (ja) * 2008-01-08 2009-07-23 Hitachi Ltd Os間で負荷分散する情報処理システム
JP2014035564A (ja) * 2012-08-07 2014-02-24 Fanuc Ltd マルチコアプロセッサを有する数値制御装置
JP2015200947A (ja) * 2014-04-04 2015-11-12 ファナック株式会社 マルチコアプロセッサを使用して逐次プログラムを実行する制御装置
JP2016012221A (ja) * 2014-06-27 2016-01-21 ファナック株式会社 加工プログラム指令内容に応じてcpu負荷を分散可能な数値制御装置
JP2016051258A (ja) * 2014-08-29 2016-04-11 ファナック株式会社 複数軸の軸制御処理を分散して実行可能な数値制御装置
JP2017097664A (ja) * 2015-11-25 2017-06-01 ファナック株式会社 複数のcpuコアで最適な負荷配分を行う数値制御装置
JP6114421B1 (ja) * 2016-02-19 2017-04-12 ファナック株式会社 複数の産業機械の作業分担を学習する機械学習装置,産業機械セル,製造システムおよび機械学習方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020035975A1 (ja) * 2018-08-17 2020-02-20 三菱電機株式会社 数値制御装置
JP2021515352A (ja) * 2019-01-30 2021-06-17 モビイス カンパニー リミテッド 人工神経網シミューレーターと強化学習制御器を使用した実時間加速器の制御システム
JP2020183816A (ja) * 2019-04-26 2020-11-12 ダイキン工業株式会社 熱源システム、目標運転容量推定方法、目標運転容量推定プログラム
WO2021152852A1 (ja) * 2020-01-31 2021-08-05 三菱電機株式会社 制御装置、機械学習装置、および、制御方法
JPWO2021152852A1 (ja) * 2020-01-31 2021-08-05
DE112020005842T5 (de) 2020-01-31 2022-09-22 Mitsubishi Electric Corporation Steuervorrichtung, maschinenlernvorrichtung und steuerverfahren
JP7282217B2 (ja) 2020-01-31 2023-05-26 三菱電機株式会社 制御装置、機械学習装置、および、制御方法
WO2022162787A1 (ja) * 2021-01-27 2022-08-04 三菱電機株式会社 数値制御システム、タスク割り当て変更装置及び数値制御方法
JP7455239B2 (ja) 2021-01-27 2024-03-25 三菱電機株式会社 数値制御システム、タスク割り当て変更装置及び数値制御方法

Also Published As

Publication number Publication date
US10705506B2 (en) 2020-07-07
CN109032078A (zh) 2018-12-18
DE102018209149B4 (de) 2021-10-07
DE102018209149A1 (de) 2018-12-13
US20180356793A1 (en) 2018-12-13
CN109032078B (zh) 2020-04-14
JP6530783B2 (ja) 2019-06-12

Similar Documents

Publication Publication Date Title
JP6530783B2 (ja) 機械学習装置、制御装置及び機械学習プログラム
Liu et al. Adaptive asynchronous federated learning in resource-constrained edge computing
Bao et al. Deep learning-based job placement in distributed machine learning clusters
US20200293838A1 (en) Scheduling computation graphs using neural networks
Zhang et al. A multi-agent reinforcement learning approach for efficient client selection in federated learning
TW201820165A (zh) 用於雲端巨量資料運算架構之伺服器及其雲端運算資源最佳化方法
Jayanetti et al. Deep reinforcement learning for energy and time optimized scheduling of precedence-constrained tasks in edge–cloud computing environments
US20220329539A1 (en) METHOD AND SERVER FOR ADJUSTING ALLOCATION OF COMPUTING RESOURCES TO PLURALITY OF VIRTUALIZED NETWORK FUNCTIONS (VNFs)
JP2022532890A (ja) デジタルワークフォースの知的調整のためのシステムおよび方法
Zhang et al. MrHeter: improving MapReduce performance in heterogeneous environments
KR20210052412A (ko) 강화 학습 모델 구축 방법, 장치, 전자 기기 및 매체
Jiahao et al. A multi-object optimization cloud workflow scheduling algorithm based on reinforcement learning
WO2019070467A2 (en) DISAGGREGATION OF LATENT CAUSES FOR COMPUTER SYSTEM OPTIMIZATION
Han et al. EdgeTuner: Fast scheduling algorithm tuning for dynamic edge-cloud workloads and resources
Limmer et al. Comparison of common parallel architectures for the execution of the island model and the global parallelization of evolutionary algorithms
Singh et al. To offload or not? an analysis of big data offloading strategies from edge to cloud
CN117331668A (zh) 一种作业调度方法、装置、设备及存储介质
Khanh et al. Fuzzy-based mobile edge orchestrators in heterogeneous IoT environments: An online workload balancing approach
Tyagi et al. Scavenger: A Cloud Service for Optimizing Cost and Performance of ML Training
Dai et al. Offloading dependent tasks in edge computing with unknown system-side information
Hu et al. GitFL: Uncertainty-Aware Real-Time Asynchronous Federated Learning Using Version Control
Tong et al. Energy and performance-efficient dynamic consolidate VMs using deep-Q neural network
Li et al. Toward optimal operator parallelism for stream processing topology with limited buffers
CN113283596A (zh) 一种模型参数训练方法、服务器、系统及存储介质
Zhang et al. Deep reinforcement learning for dag-based concurrent requests scheduling in edge networks

Legal Events

Date Code Title Description
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20181220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190131

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190517

R150 Certificate of patent or registration of utility model

Ref document number: 6530783

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150