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

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

Info

Publication number
WO2021157515A1
WO2021157515A1 PCT/JP2021/003496 JP2021003496W WO2021157515A1 WO 2021157515 A1 WO2021157515 A1 WO 2021157515A1 JP 2021003496 W JP2021003496 W JP 2021003496W WO 2021157515 A1 WO2021157515 A1 WO 2021157515A1
Authority
WO
WIPO (PCT)
Prior art keywords
command
machine learning
unit
delivery
reward
Prior art date
Application number
PCT/JP2021/003496
Other languages
English (en)
French (fr)
Inventor
佐藤 修二
Original Assignee
ファナック株式会社
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 ファナック株式会社 filed Critical ファナック株式会社
Priority to CN202180012298.6A priority Critical patent/CN115066659A/zh
Priority to US17/792,538 priority patent/US20230068058A1/en
Priority to JP2021575779A priority patent/JP7364699B2/ja
Priority to DE112021000842.0T priority patent/DE112021000842T5/de
Publication of WO2021157515A1 publication Critical patent/WO2021157515A1/ja

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

Definitions

  • the present invention relates to a machine learning device, a computer device, a control system, and a machine learning method.
  • a computer device for example, a personal computer, a tablet terminal, a smartphone, etc.
  • a control device that controls an industrial machine such as a machine tool or a robot
  • an application running on the computer device can be used as data in the control device.
  • a communication processing unit that serves as an interface with the control device.
  • Applications that access the data in the controller include those that access it frequently with little interval, those that access it regularly, and those that access it sporadically. When many such applications are running at the same time, the applications that frequently access the data in the controller interfere with the access of other applications, which often delays the operation of the applications as a whole. May become.
  • the priority of the data set by the application of the personal computer as the computer device is transmitted to the numerical control device as the control device, and when a plurality of data are requested from the application of the personal computer, the numerical control device has priority.
  • a technique is known in which high-frequency data is transmitted first and stored in a buffer, and the transmission interval is adjusted according to the load of a numerical control device and the allowable response time. For example, see Patent Document 1.
  • FIG. 10 is a diagram showing an example of a time chart of commands output by a plurality of applications operating on a personal computer as a computer device. Note that FIG. 10 shows a case where a personal computer as a computer device executes four applications A1-A4. Further, in FIG. 10, it is shown that the urgency is higher in the order of circular, quadrangular, diamond, and triangular commands. As shown in FIG.
  • the application A1 periodically outputs a command having a relatively high degree of urgency to access the data in the control device.
  • Application A2 sporadically outputs the command with the highest urgency to access the data in the control device.
  • Application A3 frequently outputs commands and frequently accesses data in the control unit.
  • the application A4 periodically outputs a plurality of commands to access the data in the control device.
  • the commands of applications A1-A4 are concentrated, and excessive access to the control device occurs. Problems that occur in this situation include irregular access to data that should be processed on a regular basis, delay in processing even if an event that should be processed urgently occurs, and slow overall application operation. And so on.
  • Patent Document 1 is limited to improving the efficiency of data returned by a numerical control device in response to a data request command, and improving the efficiency and load of command distribution from a personal computer as a computer device to a numerical control device as a control device. It cannot be mitigated and has no effect on the transmitted data of the write request. Also, in the prior art, individual applications need to be modified to coordinate command delivery to the control unit.
  • One aspect of the machine learning device of the present disclosure is a machine learning device that performs machine learning on a computer device that issues a command for accessing a control device connected so as to be communicable. It monitors commands for accessing data in the control device commanded by each of the one or more applications running above, and at least the delivery schedule of the command and the command delivered based on the delivery schedule.
  • a state data acquisition unit that acquires state data including a reception time and a distribution time, an action information output unit that outputs action information including correction information of the distribution schedule included in the state data to the computer device, and the command.
  • a reward calculation unit that calculates a reward for the action information based on the delay time for each command until is delivered to the control device and the average delivery interval of all the delivered commands, and the reward.
  • a value function update unit that updates the value function related to the state data and the action information based on the reward calculated by the calculation unit is provided.
  • One aspect of the computer device of the present disclosure includes the machine learning device of (1), and the delivery schedule is machine-learned by the machine learning device.
  • One aspect of the control system of the present disclosure includes the machine learning device of (1) and a computer device in which the distribution schedule is machine-learned by the machine learning device.
  • One aspect of the machine learning method of the present disclosure is a machine learning method for performing machine learning on a computer device that issues a command for accessing a control device connected communicably, and the computer device. It monitors commands for accessing data in the control device commanded by each of the one or more applications running above, and at least the distribution schedule of the command and the command distributed based on the distribution schedule.
  • the state data including the reception time and the delivery time is acquired, the action information including the correction information of the delivery schedule included in the state data is output to the computer device, and the command is delivered to the control device.
  • a reward for the action information is calculated based on the delay time for each command and the average delivery interval of all the commands to be delivered, and based on the calculated reward, the state data and the action information are obtained. Update the relevant value function.
  • FIG. 1 is a functional block diagram showing an example of a functional configuration of a control system according to an embodiment.
  • a machine tool is exemplified as an industrial machine
  • a numerical control device is exemplified as a control device.
  • the present invention is not limited to machine tools, and can be applied to, for example, industrial robots, service robots, and the like.
  • the control device includes a robot control device and the like.
  • a personal computer is exemplified as a computer device, the present invention is not limited to the personal computer, and can be applied to so-called client terminals such as tablet terminals and smartphones.
  • the control system 1 includes a machine tool 10, a numerical control device 20, a personal computer 30, and a machine learning device 40.
  • the machine tool 10, the numerical control device 20, the personal computer 30, and the machine learning device 40 may be directly connected to each other via a connection interface (not shown). Further, the machine tool 10, the numerical control device 20, the personal computer 30, and the machine learning device 40 may be connected to each other via a network (Local Area Network), the Internet, or the like (not shown). In this case, the machine tool 10, the numerical control device 20, the personal computer 30, and the machine learning device 40 include a communication unit (not shown) for communicating with each other by such a connection. As will be described later, the personal computer 30 may include a machine learning device 40. Further, the numerical control device 20 may be included in the machine tool 10.
  • a connection interface not shown
  • the machine tool 10 the numerical control device 20, the personal computer 30, and the machine learning device 40 may be connected to each other via a network (Local Area Network), the Internet, or the like (not shown).
  • the machine tool 10, the numerical control device 20, the personal computer 30, and the machine learning device 40 include a communication unit (not shown) for communicating with each other by such
  • the machine tool 10 is a machine tool known to those skilled in the art, and operates based on control information from the numerical control device 20 described later.
  • the numerical control device 20 is a numerical control device known to those skilled in the art, generates an operation command based on control information, and transmits the generated operation command to the machine tool 10. As a result, the numerical control device 20 controls the operation of the machine tool 10. Further, the numerical control device 20 receives a data communication command for each of the n applications AP1-APn operating on the personal computer 30, which will be described later, to access the data in the numerical control device 20, and receives the command. Data is transmitted to the personal computer 30 in the order of.
  • n is an integer of 2 or more.
  • the personal computer 30 has a central processing unit 301, a data communication interface unit 302, a command processing unit 303, a communication processing unit 304, and a storage unit 305.
  • the central processing unit 301 has a CPU (Central Processing Unit), a ROM (Read Only Memory), a RAM (Random Access Memory), a CMOS (Complementary Metal-Oxide-Semiconductor) memory, and the like, and these are mutual buses. It is known to those skilled in the art and is configured to be communicable.
  • the CPU is a processor that controls the personal computer 30 as a whole.
  • the CPU reads out the system program and the programs of the n applications AP1-APn stored in the ROM via the bus, and controls the entire personal computer 30 according to the system program and the programs of the application AP1-APn.
  • Various data such as temporary calculation data and display data are stored in the RAM.
  • the CMOS memory is backed up by a battery (not shown), and is configured as a non-volatile memory in which the storage state is maintained even when the power of the numerical control device 20 is turned off.
  • the data communication interface unit 302 is a general communication interface and has, for example, a buffer (not shown).
  • the data communication interface unit 302 receives a data communication command for accessing the data in the numerical control device 20, and temporarily stores the received command data in a buffer (not shown).
  • the command processing unit 303 acquires a command stored in a buffer (not shown) of the data communication interface unit 302 based on the distribution schedule, and distributes the acquired command via the communication processing unit 304.
  • the delivery schedule will be described.
  • the command table CT is introduced as a configuration for determining the distribution schedule.
  • the command table CT is a "command number”, “command reception number”, “command priority Pa”, “command process ID”, for data communication commands for accessing data in the numerical control device 20. It is an array table indexed by a command number, which associates data such as "process priority Pb", “total priority Ps", “required processing time Tc", “delay coefficient Td", and "delivery schedule". ..
  • the "command number” in the command table CT is an identification number for identifying each command commanded by the application AP1-APn, and is an index in the command table CT.
  • the command number shall be identified for each application API (1 ⁇ i ⁇ n) that issues the command.
  • the "command reception number” in the command table CT indicates the reception number of the command received from each of the applications AP1-APn by the data communication interface unit 302 and stored in the buffer (not shown).
  • the "command priority Pa" in the command table CT is a value indicating the priority of the command, and the higher the value, the more preferentially the command is executed.
  • the "command priority Pa" may be set in advance so that the smaller the value, the higher the priority of execution.
  • the "command process ID" in the command table CT is a process ID, which is assigned by the OS (Operating System) of the personal computer 30 when the process is started, and when the OS or another process specifies the process and works on it. Is the identifier of.
  • the "process priority Pb" in the command table CT is a coefficient indicating the priority of the process that commanded the command.
  • the “process priority Pb” is, for example, at least one coefficient parameter in which “1” is set as an initial value and is included in the action selected by the machine learning device 40 described later.
  • the “total priority Ps" in the command table CT is the total value of the "command priority Pa” and the “process priority Pb", and the commands are distributed in descending order of the values. For example, when the "total priority Ps" is the same for two or more different commands, the command processing unit 303 is set in advance so that the command having the higher "command priority Pa" is preferentially delivered. You may.
  • the command processing unit 303 may be set in advance so that the command having the higher "process priority Pb" is preferentially delivered.
  • the "required processing time Tc" in the command table CT indicates the time required for processing the command, and it is desirable that the next command distribution be separated by this time or more.
  • the "delay coefficient Td" in the command table CT is a time coefficient for adjusting the command distribution interval based on the "required processing time Tc". Specifically, the value obtained by adding the "delay coefficient Td" of the command to the "required processing time Tc" of each command is defined as the "delivery interval Ts" of the command. By adjusting the "delay coefficient Td", the optimum distribution interval of each command can be adjusted.
  • the "delivery order" of the "delivery schedule” in the command table CT is stored in the buffer (not shown) of the data communication interface unit 302 by the command processing unit 303 based on the "total priority Ps". Indicates the order in which the commands are delivered.
  • the "delivery interval Ts" of the "delivery schedule” in the command table CT is the sum of the "required processing time Tc" and the “delay coefficient Td", and the command processing unit 303 has the time interval of the "delivery interval Ts". Deliver the command with.
  • the command table CT when learning is started by the machine learning device 40 may be arbitrarily set by the user.
  • FIG. 2 is a diagram showing an example of the command table CT. With reference to FIG.
  • the command table CT stores an array of data related to the five commands for the sake of simplicity. As shown in FIG. 2, for these five commands, the distribution order is set in descending order of the total priority value. Further, as for the command number 18 and the command number 8 having the same total priority value, it can be seen that the command number 8 having the higher value of the "command priority Pa" is prioritized as described above. Further, as described above, the distribution interval of each command is set to a value obtained by adding the delay coefficient of each command to the required processing time of each command. Then, as will be described later, the machine learning device 40 searches for various actions based on, for example, a certain policy, using the "process priority Pb" and the "delay coefficient Td" as actions. By performing reinforcement learning, it becomes possible to select the optimum distribution schedule.
  • the communication processing unit 304 is a communication unit known to those skilled in the art, and transmits / receives data, processing programs, and the like to and from the numerical control device 20. Specifically, the communication processing unit 304 sequentially transmits the commands received from the command processing unit 303 to the numerical control device 20, and receives the data for the transmitted commands.
  • the storage unit 305 is a RAM, an HDD (Hard Disk Drive), or the like.
  • the storage unit 305 stores the system program, the programs of n applications AP1-APn, the command table CT, and the like.
  • the machine learning device 40 sets a delivery schedule for undelivered commands of application AP1-APn stored in a buffer (not shown) of the data communication interface unit 302 by executing the program of application AP1-APn by the personal computer 30. It is a device for enhanced learning.
  • the agent (corresponding to the machine learning device 40 in the present embodiment) observes the state of the environment (corresponding to the numerical control device 20 and the personal computer 30 in the present embodiment), selects a certain action, and is based on the selected action.
  • the environment changes. As the environment changes, some rewards are given, and agents learn to choose better behaviors based on the rewards given. Whereas supervised learning gives a complete answer, rewards in reinforcement learning are often fragmentary values based on some changes in the environment. For this reason, the agent learns to maximize the total rewards that will be earned in the future.
  • any learning method can be used as reinforcement learning, but in the following description, the value function Q (s, a) that selects the action a is learned under the state s of a certain environment.
  • Q-learning which is a method, will be described.
  • the purpose of Q-learning is to select the action a having the highest value function Q (s, a) as the optimum action from the actions a that can be taken in a certain state s.
  • the correct value of the value function Q (s, a) is not known at all for the combination of the state s and the action a. Therefore, the agent selects various actions a under a certain state s, and for the action a at that time, selects a better action based on the reward given, so that the correct value function Q ( Learn s, a).
  • s t represents the state of the environment at time t
  • a t represents the action at time t.
  • the state changes to s t + 1.
  • rt + 1 represents the reward obtained by changing the state.
  • the term with max is obtained by multiplying the Q value when the action a having the highest Q value known at that time is selected under the state st + 1 by ⁇ .
  • is a parameter of 0 ⁇ ⁇ 1 and is called a discount rate.
  • is a learning coefficient and is in the range of 0 ⁇ ⁇ 1.
  • Q-learning there is a method of creating a table of Q (s, a) for all state-behavior pairs (s, a) and performing learning.
  • the number of states is too large to obtain the Q (s, a) values of all the state-behavior pairs, and it takes a lot of time for Q-learning to converge.
  • DQN Deep Q-Network
  • the value function Q is constructed by using an appropriate neural network
  • the value function Q (s, a) is approximated by approximating the value function Q with an appropriate neural network by adjusting the parameters of the neural network.
  • the value of may be calculated.
  • DQN it is possible to shorten the time required for Q-learning to converge.
  • DQN for example, there is a detailed description in the following non-patent documents.
  • the machine learning device 40 performs the Q-learning described above. Specifically, the machine learning device 40 has a command table CT for undelivered commands stored in a buffer (not shown) of the data communication interface unit 302, and a reception time when the data communication interface unit 302 receives each command. And the delivery time when the command processing unit 303 delivered each command via the communication processing unit 304, and the state s, and the setting and change of the parameter for adjusting the delivery schedule included in the command table CT related to the state s a. As, the value function Q to be selected is learned.
  • "process priority Pb" and "delay coefficient Td" are exemplified as parameters.
  • the machine learning device 40 monitors commands commanded from each of the applications AP1-APn, and includes a command table CT and a reception time and a delivery time of each command delivered according to the "delivery schedule" of the command table CT.
  • the action a is determined by observing the state information (state data) s.
  • the machine learning device 40 returns a reward each time the action a is determined.
  • the machine learning device 40 for example, searches for the optimum action a by trial and error so as to maximize the total reward in the future. By doing so, the machine learning device 40 receives the command table CT acquired by the personal computer 30 by executing the application AP1-APn, and the reception of each command distributed according to the "distribution schedule" of the command table CT. It is possible to select the optimum action a (that is, “process priority Pb” and “delay coefficient Td”) for the state s including the time and the delivery time.
  • FIG. 3 is a functional block diagram showing a functional configuration example of the machine learning device 40.
  • the machine learning device 40 includes a state data acquisition unit 401, a determination data acquisition unit 402, a learning unit 403, an action information output unit 404, and a value function storage unit 405.
  • the optimization action information output unit 406 and the control unit 407 are provided.
  • the learning unit 403 includes a reward calculation unit 431, a value function update unit 432, and an action information generation unit 433.
  • the control unit 407 controls the operations of the state data acquisition unit 401, the determination data acquisition unit 402, the learning unit 403, the action information output unit 404, and the optimization action information output unit 406.
  • the state data acquisition unit 401 distributes the data communication status from the personal computer 30 to the numerical control device 20 according to the command table CT and the "distribution schedule" of the command table CT, which is set in advance as described later.
  • the state data s including the reception time and the delivery time of all the commands received within the time is acquired from the personal computer 30. This state data s corresponds to the environmental state s in Q-learning.
  • the state data acquisition unit 401 outputs the acquired state data s to the determination data acquisition unit 402 and the learning unit 403.
  • the command table CT at the time of first starting Q-learning may be set by the user as described above.
  • the state data acquisition unit 401 may store the acquired state data s in a storage unit (not shown) included in the machine learning device 40. In this case, the determination data acquisition unit 402 and the learning unit 403, which will be described later, may read the state data s from the storage unit (not shown) of the machine learning device 40.
  • the determination data acquisition unit 402 periodically analyzes and determines the command table CT received from the state data acquisition unit 401 and the reception time and delivery time of all the commands received within the preset specific time. Get the data. Specifically, the determination data acquisition unit 402 averages all the commands received by the data communication interface unit 302 at predetermined time (for example, 1 minute) set in advance for all the commands received within the specific time. The delivery interval, the delivery delay time of each command, the command priority, etc. are acquired as judgment data. The determination data acquisition unit 402 outputs the acquired determination data to the learning unit 403.
  • the average command distribution interval is an average value of the command distribution intervals received at a predetermined time (for example, 1 minute) set in advance.
  • the delivery delay time of each command is the difference between the reception time and the delivery time of each command received at a predetermined time (for example, 1 minute) set in advance.
  • the learning unit 403 is a part that learns the value function Q (s, a) when selecting a certain action a under a certain state data (environmental state) s. Specifically, the learning unit 403 has a reward calculation unit 431, a value function update unit 432, and an action information generation unit 433. The learning unit 403 determines whether or not to continue learning. Whether to continue learning is, for example, whether the number of trials since the start of machine learning has reached the maximum number of trials, or whether the elapsed time since the start of machine learning has exceeded (or is more than) a predetermined time. Can be judged based on.
  • the reward calculation unit 431 is a part that calculates a reward when the action a, which is an adjustment of the “process priority Pb” and the “delay coefficient Td” of the command table CT, is selected under a certain state s.
  • the reward calculation unit 431 receives, for example, the average distribution interval Ta acquired by the determination data acquisition unit 402 and the distribution delay for all the commands received within the preset specific time, as described above.
  • the evaluation value V for each command is calculated based on the time Tb and the command priority Pa.
  • the preset specific time it is preferable to set the time during which the applications AP1-APn executed on the personal computer 30 are executed in parallel.
  • the specific time may be the same as the predetermined time (for example, 1 minute) described above, or may include the predetermined time (for example, 1 minute).
  • the following mathematical formula (Equation 2 formula) is illustrated as an example of calculating the evaluation value.
  • [Number 2] V average delivery interval Ta x a 1 -delivery delay time Tb x command priority Pa x a 2
  • a 1 and a 2 are coefficients, and are set to, for example, "20" and "1", respectively.
  • the values of a 1 and a 2 are not limited to this, and may be determined according to the required accuracy of machine learning and the like.
  • the reward calculation unit 431 calculates the evaluation value V for all the commands received within the specific time, and sets the average value of all the calculated evaluation values as the reward r of the action a. By doing so, the action a can obtain a larger reward as the delivery delay time of the command to be determined becomes smaller. In addition, the larger the average distribution interval of the commands to be determined, the larger the reward can be obtained.
  • FIG. 4 is a diagram showing an example of the evaluation value V for each command (command number) calculated by the reward calculation unit 431.
  • the value function update unit 432 performs Q-learning based on the state s, the action a, the state s'when the action a is applied to the state s, and the reward value r calculated as described above. By doing so, the value function Q stored in the value function storage unit 405 is updated.
  • the value function Q may be updated by online learning, batch learning, or mini-batch learning.
  • Online learning is a learning method in which the value function Q is immediately updated each time the state s transitions to a new state s'by applying a certain action a to the current state s.
  • batch learning is to collect data for learning by applying a certain action a to the current state s and repeating the transition of the state s to a new state s', and all the collected data. This is a learning method in which the value function Q is updated using the learning data of.
  • the mini-batch learning is a learning method in which the value function Q is updated every time learning data is accumulated to some extent, which is intermediate between online learning and
  • the action information generation unit 433 selects the action a in the process of Q-learning for the current state s. In the process of Q-learning, the action information generation unit 433 performs an action (corresponding to action a in Q-learning) for correcting the "process priority Pb" and "delay coefficient Td" of the command table CT. a is generated, and the generated action information a is output to the action information output unit 404.
  • the action information generation unit 433, has the "process priority Pb" and the “delay coefficient Td" of the command table CT included in the state s, and the "process priority” included in the action a.
  • the degree Pb and the delay coefficient Td may be increased or decreased incrementally.
  • the action information generation unit 433 adjusts the "process priority Pb" and the "delay coefficient Td" of the command table CT according to the action a, and when the state transitions to the state s', the state of the "delivery schedule” of the command table CT.
  • the "process priority Pb” and “delay coefficient Td" of the command table CT of the next action a' may be selected depending on (whether the "delivery order" and the "delivery interval Ts" are appropriate).
  • the next action As a', for example, an action a'that shortens the delivery delay time of the priority command and optimizes the delivery interval, such as increasing the "process priority Pb" and / or the "delay coefficient Td" incrementally. You may try to take measures to select.
  • the next action a' is, for example, the "process priority Pb" and / or the "delay coefficient Td".
  • each of the "process priority Pb" and the "delay coefficient Td" may be increased by +1 when the reward r increases and returned to the previous one when the reward r decreases, for example.
  • the action information generation unit 433 randomly selects the action a'with the highest value function Q (s, a) among the current estimated values of the action a, or a greedy method with a small probability ⁇ .
  • a method of selecting the action a' may be taken by a known method such as the ⁇ -greedy method of selecting the action a'and otherwise selecting the action a'with the highest value function Q (s, a).
  • the action information output unit 404 is a part that outputs the action information a output from the learning unit 403 to the personal computer 30.
  • the action information output unit 404 may output, for example, the updated “process priority Pb” and “delay coefficient Td” values as action information to the personal computer 30.
  • the personal computer 30 updates the command table CT based on the received updated values of the "process priority Pb” and the "delay coefficient Td".
  • the command processing unit 303 distributes the data communication command to the communication processing unit 304 based on the updated "distribution schedule" of the command table CT.
  • the action information output unit 404 may output the command table CT updated based on the updated values of the "process priority Pb" and the "delay coefficient Td" as the action information to the personal computer 30. ..
  • the value function storage unit 405 is a storage device that stores the value function Q.
  • the value function Q may be stored as a table (hereinafter, also referred to as “action value table”) for each state s and action a, for example.
  • the value function Q stored in the value function storage unit 405 is updated by the value function update unit 432.
  • the optimization behavior information output unit 406 causes the personal computer 30 to perform an operation that maximizes the value function Q (s, a) based on the value function Q updated by the value function update unit 432 performing Q learning.
  • Behavioral information a (hereinafter referred to as "optimized behavioral information") for the purpose is generated. More specifically, the optimization behavior information output unit 406 acquires the value function Q stored in the value function storage unit 405. This value function Q is updated by the value function update unit 432 performing Q-learning as described above. Then, the optimized behavior information output unit 406 generates behavior information based on the value function Q, and outputs the generated behavior information to the personal computer 30.
  • This optimized action information includes information indicating the updated values of the "process priority Pb" and the "delay coefficient Td" as well as the action information output by the action information output unit 404 in the process of Q-learning. ..
  • FIG. 5 is a diagram showing an example of a time chart of commands before and after the update.
  • the upper part of FIG. 5 shows an example of a time chart of commands before update output by four applications AP1-AP4 running on the personal computer 30 as in the case of FIG.
  • the lower part of FIG. 5 shows an example of a time chart of updated commands output by the four applications AP1-AP4.
  • the commands having the highest urgency are shown in the order of circle, quadrangle, rhombus, and triangle.
  • the case where the personal computer 30 executes the applications AP1-APn other than four is the same as the case of FIG. 5, and the description thereof will be omitted.
  • the lower part of FIG. 5 shows an example of a time chart of commands before and after the update.
  • the upper part of FIG. 5 shows an example of a time chart of commands before update output by four applications AP1-AP4 running on the personal computer 30 as in the case of FIG.
  • the lower part of FIG. 5 shows an example of a time chart
  • the command processing unit 303 distributes untransmitted commands based on the “delivery schedule” of the updated command table CT in which the command distribution order is adjusted according to the overall priority Ps. ..
  • the command processing unit 303 averages the time T1'and T2' corresponding to the time T1 and T2 in the upper part of FIG. 5 and the time T3'with a command distribution interval so as not to cause excessive access. Can be transformed into.
  • the personal computer 30 updates the command table CT to prevent the data communication command from being excessively delivered to the numerical control device 20 and become an overload, and shortens the command delivery delay time. be able to.
  • the machine learning device 40 includes an arithmetic processing unit such as a CPU. Further, the machine learning device 40 is temporarily required for an auxiliary storage device such as an HDD that stores various control programs such as application software and an OS (Operating System), and an arithmetic processing device for executing a program. It also has a main storage device such as a RAM for storing data.
  • an arithmetic processing unit such as a CPU.
  • the machine learning device 40 is temporarily required for an auxiliary storage device such as an HDD that stores various control programs such as application software and an OS (Operating System), and an arithmetic processing device for executing a program. It also has a main storage device such as a RAM for storing data.
  • a main storage device such as a RAM for storing data.
  • the arithmetic processing device reads the application software and the OS from the auxiliary storage device, and while deploying the read application software and the OS to the main storage device, the arithmetic processing based on these application software and the OS is performed. Do it. Further, based on the calculation result, various hardwares included in the machine learning device 40 are controlled. As a result, the functional block of the present embodiment is realized. That is, this embodiment can be realized by the cooperation of hardware and software.
  • a GPU Graphics Processing Units
  • GPGPU General-Purpose computing on Graphics Processing Units
  • FIG. 6 is a flowchart showing the operation of the machine learning device 40 during Q-learning in one embodiment.
  • step S11 the control unit 407 instructs the state data acquisition unit 401 to acquire the state data, setting the number of trials to "1".
  • step S12 the state data acquisition unit 401 acquires the first state data from the personal computer 30.
  • the acquired state data is output to the action information generation unit 433.
  • this state data (state information) is information corresponding to the state s in Q learning, and is delivered according to the command table CT and the "delivery schedule" of the command table CT at the time of step S12.
  • the command reception time and delivery time are included.
  • the command table CT at the time of first starting Q-learning is generated by the user in advance.
  • step S13 the action information generation unit 433 generates new action information a, and outputs the generated new action information a to the personal computer 30 via the action information output unit 404.
  • the personal computer 30 that has received the action information updates the "process priority Pb" and the "delay coefficient Td" related to the current state s based on the received action information a to set the state s'.
  • the personal computer 30 updates the state s to the state s'based on the updated action a.
  • the personal computer 30 updates the command table CT.
  • the command processing unit 303 distributes an untransmitted command stored in a buffer (not shown) of the data communication interface unit 302 based on the “delivery schedule” of the updated command table CT.
  • step S14 the state data acquisition unit 401 acquires the state data corresponding to the new state s'acquired from the personal computer 30.
  • the new state data includes a command table CT related to the state s'and a reception time and a delivery time of each command to be delivered according to the "delivery schedule" of the command table CT.
  • the state data acquisition unit 401 outputs the acquired state data to the determination data acquisition unit 402 and the learning unit 403.
  • step S15 the determination data acquisition unit 402 sets the command table CT included in the new state data received by the state data acquisition unit 401, the reception time of each command for all the commands received within the preset specific time, and the reception time of each command.
  • Judgment data is acquired at predetermined time (for example, 1 minute) from the delivery time.
  • the determination data acquisition unit 402 outputs the acquired determination data to the learning unit 403.
  • This determination data includes the average distribution interval Ta of commands received by the data communication interface unit 302 at predetermined time intervals such as 1 minute, the distribution delay time Tb of each command, the command priority Pa, and the like.
  • step S16 the reward calculation unit 431 is preset based on the acquired determination data, that is, the average delivery interval Ta of the commands, the delivery delay time Tb of each command, the command priority Pa, and the equation 2 equation.
  • the evaluation value V of each command is calculated for all the commands received within the specific time.
  • the reward calculation unit 431 sets the average value of the evaluation values V of each command as the reward r.
  • step S17 the value function update unit 432 updates the value function Q stored in the value function storage unit 405 based on the calculated reward r.
  • step S18 the control unit 306 determines whether or not the number of trials since the start of machine learning has reached the maximum number of trials.
  • the maximum number of trials is set in advance. If the maximum number of trials has not been reached, the number of trials is counted up in step S19, and the process returns to step S13. The processes from step S13 to step S19 are repeated until the maximum number of trials is reached.
  • step S17 illustrates online update, it may be replaced with batch update or mini-batch update instead of online update.
  • the command delivery delay time is shortened while preventing the data communication command from being excessively delivered to the numerical control device 20 and becoming an overload. It is possible to generate a value function Q for generating behavioral information for the purpose.
  • step S21 the optimization action information output unit 406 acquires the value function Q stored in the value function storage unit 405.
  • the value function Q is updated by the value function update unit 432 performing Q-learning as described above.
  • step S22 the optimization behavior information output unit 406 generates optimization behavior information based on this value function Q, and outputs the generated optimization behavior information to the personal computer 30.
  • the personal computer 30 prevents the data communication command from being excessively delivered to the control device and becomes an overload, and shortens the command delivery delay time. Can be done.
  • the personal computer 30 and the machine learning device 40 are not limited to the above-described embodiment, and include modifications, improvements, and the like within a range in which the object can be achieved.
  • the machine learning device 40 is exemplified as a device different from the personal computer 30, but the personal computer 30 may have some or all the functions of the machine learning device 40.
  • the server may provide all of them, for example.
  • each function of the machine learning device 40 may be realized by using a virtual server function or the like on the cloud.
  • the machine learning device 40 may be a distributed processing system in which each function of the machine learning device 40 is appropriately distributed to a plurality of servers.
  • the control system 1 has m personal computers 30A (1) -30A (m) and m machine learning devices 40A (1) -40A (m). It may be (m is an integer of 2 or more).
  • the machine learning device 40A (j) is connected to the personal computer 30A (j) on a one-to-one basis via the network 50 so as to perform machine learning on the personal computer 30A (j). It may be (j is an integer from 1 to m).
  • the value function Q stored in the value function storage unit 405 of the machine learning device 40A (j) may be shared with another machine learning device 40A (k) (k starts from 1). It is an integer of m, and k ⁇ j). If the value function Q is shared by the machine learning devices 40A (1) -40A (m), it becomes possible to perform reinforcement learning in a distributed manner by each machine learning device 40A, so that the efficiency of reinforcement learning can be improved. It is possible to improve.
  • Each of the personal computers 30A (1) -30A (m) is connected to each of the numerical control devices 20A (1) -20A (m), and each of the numerical control devices 20A (1) -20A (m) is connected. , Connected to each of the machine tools 10A (1) -10A (m).
  • each of the machine tools 10A (1) -10A (m) corresponds to the machine tool 10 of FIG.
  • Each of the numerical control devices 20A (1) to 20A (m) corresponds to the numerical control device 20 of FIG.
  • Each of the personal computers 30A (1) -30A (m) corresponds to the personal computer 30 of FIG.
  • Each of the machine learning devices 40A (1) -40A (m) corresponds to the machine learning device 40 of FIG.
  • the server 60 operates as a machine learning device 40, is communicably connected to m personal computers 30A (1) -30A (m) via a network 50, and is connected to the personal computer 30A.
  • Machine learning may be performed for each of -30A (m).
  • the process priority Pb and the delay coefficient Td are applied as the parameters for adjusting the distribution schedule, but parameters other than the process priority Pb and the delay coefficient Td may be used.
  • each function included in the personal computer 30 and the machine learning device 40 in one embodiment can be realized by hardware, software, or a combination thereof.
  • what is realized by software means that it is realized by a computer reading and executing a program.
  • Each component included in the personal computer 30 and the machine learning device 40 can be realized by hardware, software including electronic circuits, or a combination thereof. If implemented by software, the programs that make up this software are installed on your computer. In addition, these programs may be recorded on removable media and distributed to users, or may be distributed by being downloaded to a user's computer via a network. In addition, when configured with hardware, some or all of the functions of each component included in the above device are, for example, ASIC (Application Specific Integrated Circuit), gate array, FPGA (Field Programmable Gate Array), CPLD ( It can be configured by an integrated circuit (IC) such as a Complex ProgramLogic Device).
  • ASIC Application Specific Integrated Circuit
  • FPGA Field Programmable Gate Array
  • CPLD It can be configured by an integrated circuit (IC) such as a Complex ProgramLogic Device).
  • Non-transitory computer-readable media include various types of tangible recording media (Tangible storage media).
  • Examples of non-temporary computer-readable media include magnetic recording media (eg, flexible disks, magnetic tapes, hard disk drives), magneto-optical recording media (eg, magneto-optical disks), CD-ROMs (Read Only Memory), CD- R, CD-R / W, semiconductor memory (for example, mask ROM, PROM (Programmable ROM), EPROM (Erasable PROM), flash ROM, RAM) are included.
  • the program may also be supplied to the computer by various types of temporary computer-readable media (Transition computer readable medium).
  • temporary computer-readable media include electrical, optical, and electromagnetic waves.
  • the temporary computer-readable medium can supply the program to the computer via a wired communication path such as an electric wire and an optical fiber, or a wireless communication path.
  • the step of describing the program recorded on the recording medium is not only the processing performed in chronological order according to the order, but also the processing executed in parallel or individually even if it is not necessarily processed in chronological order. Also includes.
  • machine learning device computer device, control system, and machine learning method of the present disclosure can take various embodiments having the following configurations.
  • the machine learning device 40 of the present disclosure is a machine learning device that performs machine learning on a personal computer 30 that issues a command for accessing a numerical control device 20 connected communicably, and is a personal computer. It monitors commands for accessing data in the numerical control device 20 commanded by each of one or more applications AP1-APn running on 30, and is delivered based on at least the command delivery schedule and the delivery schedule.
  • the state data acquisition unit 401 that acquires the state data including the command reception time and the delivery time, and the action information output unit 404 that outputs the action information a including the correction information of the distribution schedule included in the state data to the personal computer 30.
  • a unit 431 and a value function update unit 432 that updates the value function Q related to the state data and the action information a based on the reward r calculated by the reward calculation unit 431 are provided. According to the machine learning device 40, it is possible to prevent the data communication command from being excessively delivered to the control device and become an overload, and to shorten the command delivery delay time.
  • the delivery schedule modification information a includes a process priority Pb indicating the priority of the process instructing the command, a delay coefficient Td for delaying the delivery of the command, and the like. May include. By doing so, the machine learning device 40 can optimally adjust the distribution schedule.
  • the reward calculation unit 431 calculates the evaluation value V for each command based on the delivery delay time Tb for each command and the average delivery interval Ta.
  • the average value of the calculated evaluation values for each command may be used as the reward r. By doing so, the machine learning device 40 can accurately calculate the reward.
  • the action information a in which the value of the value function Q is maximized based on the value function Q updated by the value function update unit 432.
  • the optimized action information output unit 406 that outputs the above may be further provided. By doing so, the machine learning device 40 can acquire a more optimal distribution schedule.
  • the numerical control device 20 may be a control device for an industrial machine. By doing so, the machine learning device 40 can be applied to a control device such as a machine tool or a robot.
  • machine learning may be performed by providing a maximum number of trials for machine learning. By doing so, the machine learning device 40 can avoid the machine learning being performed for a long time.
  • the personal computer 30 of the present disclosure includes the machine learning device 40 according to any one of (1) to (6), and the delivery schedule is machine-learned by the machine learning device 40. According to the personal computer 30, the same effects as in (1) to (6) can be obtained.
  • the control system 1 of the present disclosure includes the machine learning device 40 according to any one of (1) to (6), and a computer device whose distribution schedule is machine-learned by the machine learning device 40. According to this control system 1, the same effects as in (1) to (6) can be obtained.
  • the machine learning method of the present disclosure is a machine learning method for performing machine learning on a personal computer 30 that issues a command for accessing a numerical control device 20 connected communicably, and is a personal computer 30. It monitors commands for accessing data in the numerical controller 20 commanded by each of the one or more applications AP1-APn running above, and at least the command delivery schedule and the commands delivered based on the delivery schedule. The command until the command is delivered to the numerical control device 20 by acquiring the status data including the reception time and the delivery time of the above and outputting the action information including the correction information of the delivery schedule included in the status data to the personal computer 30.
  • the reward r for the action information is calculated based on the delivery delay time Tb for each delivery and the average delivery interval Ta of all the commands to be delivered, and the state data and the action information are related based on the calculated reward r. Update the value function Q. According to this machine learning method, the same effect as in (1) can be obtained.
  • Control system 10 Machine machine 20 Numerical control device 30 Personal computer 301 Central processing unit 302 Data communication interface unit 303 Command processing unit 304 Communication processing unit 305 Storage unit 40 Machine learning device 401 State data acquisition unit 402 Judgment data acquisition unit 403 Learning unit 404 Behavior information output unit 405 Value function storage unit 406 Optimization behavior information output unit

Landscapes

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

Abstract

データ通信のコマンドが制御装置へ過度に配信され過負荷となることを防止するとともに、コマンドの配信遅延時間を短縮すること。 機械学習装置は、通信可能に接続された制御装置にアクセスするためのコマンドを発行するコンピュータ装置に対し機械学習を行う機械学習装置であって、コンピュータ装置の1つ以上のアプリケーションが指令するコマンドを監視し、コマンドの配信スケジュールと、配信スケジュールで配信されるコマンドの受付時刻及び配信時刻とを含む状態データを取得する状態データ取得部と、状態データの配信スケジュールの修正情報を含む行動情報をコンピュータ装置に出力する行動情報出力部と、コマンド毎の配信の遅延時間と配信される全てのコマンドの平均配信間隔とに基づき行動情報に対する報酬を計算する報酬計算部と、前記報酬に基づき状態データ及び行動情報に対する価値関数を更新する価値関数更新部と、を備える。

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 JPOXMLDOC01-appb-M000001
 上記の数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つ以上のアプリケーションの各々が指令する前記制御装置内のデータにアクセスするためのコマンドを監視し、少なくとも前記コマンドの配信スケジュールと、前記配信スケジュールに基づいて配信される前記コマンドの受付時刻及び配信時刻とを含む状態データを取得し、
     前記状態データに含まれる前記配信スケジュールの修正情報を含む行動情報を前記コンピュータ装置に出力し、
     前記コマンドが前記制御装置へ配信されるまでの前記コマンド毎の遅延時間と、配信される全ての前記コマンドの平均配信間隔と、に基づいて、前記行動情報に対する報酬を計算し、
     計算される前記報酬に基づいて、前記状態データ及び前記行動情報に係る価値関数を更新する、
     機械学習方法。
PCT/JP2021/003496 2020-02-05 2021-02-01 機械学習装置、コンピュータ装置、制御システム、及び機械学習方法 WO2021157515A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202180012298.6A CN115066659A (zh) 2020-02-05 2021-02-01 机器学习装置、计算机装置、控制***以及机器学习方法
US17/792,538 US20230068058A1 (en) 2020-02-05 2021-02-01 Machine learning device, computer device, control system, and machine learning method
JP2021575779A JP7364699B2 (ja) 2020-02-05 2021-02-01 機械学習装置、コンピュータ装置、制御システム、及び機械学習方法
DE112021000842.0T DE112021000842T5 (de) 2020-02-05 2021-02-01 Maschinelle Lernvorrichtung, Computervorrichtung, Steuersystem und maschinelles Lernverfahren

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020018347 2020-02-05
JP2020-018347 2020-02-05

Publications (1)

Publication Number Publication Date
WO2021157515A1 true WO2021157515A1 (ja) 2021-08-12

Family

ID=77200473

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/003496 WO2021157515A1 (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)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022054695A1 (ja) * 2020-09-09 2022-03-17 ファナック株式会社 応答性解析装置
CN117527870A (zh) * 2023-12-07 2024-02-06 东莞信易电热机械有限公司 一种塑胶成型的控制方法及***

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116506365B (zh) * 2023-06-25 2023-09-05 杭州网鼎科技有限公司 一种多网络出口智能负载均衡方法、***及存储介质

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 オムロン株式会社 制御システムおよび制御装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022054695A1 (ja) * 2020-09-09 2022-03-17 ファナック株式会社 応答性解析装置
CN117527870A (zh) * 2023-12-07 2024-02-06 东莞信易电热机械有限公司 一种塑胶成型的控制方法及***
CN117527870B (zh) * 2023-12-07 2024-05-03 东莞信易电热机械有限公司 一种塑胶成型的控制方法及***

Also Published As

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

Similar Documents

Publication Publication Date Title
WO2021157515A1 (ja) 機械学習装置、コンピュータ装置、制御システム、及び機械学習方法
US11816333B2 (en) Congestion mitigation in a distributed storage system
JP6457447B2 (ja) データセンターのネットワークトラフィックスケジューリング方法及び装置
CN109032078B (zh) 机器学习装置、控制装置以及计算机可读介质
JP6453919B2 (ja) 行動情報学習装置、行動情報最適化システム及び行動情報学習プログラム
CN111522652B (zh) 用于增加负荷密度和改进能效的功率平衡
US10152102B2 (en) Method and apparatus for managing global chip power on a multicore system on chip
US9244777B2 (en) Balanced distributed backup scheduling
CN103440167B (zh) Hadoop多作业环境下自学习反馈的任务调度方法
JP6453921B2 (ja) 学習モデル構築装置、及び制御情報最適化装置
US10715387B1 (en) System for dynamic provisioning of host devices
JP2004118833A (ja) メモリ・コントローラの最適化方法
TWI584667B (zh) 多請求的排程方法及排程裝置
JP2020144510A (ja) ジョブ制御システム、方法、及びプログラム
JP6659260B2 (ja) Plcプログラムの最適化機能を備えた制御装置及び機械学習器
CN114443262A (zh) 计算资源管理方法、装置、设备及***
JP7436632B2 (ja) 機械学習装置、数値制御システム、設定装置、数値制御装置、及び機械学習方法
JP7381711B2 (ja) 情報処理装置
US11513737B2 (en) Preventing data overflow in edge computing systems
US10481801B1 (en) Optimizing storage quality of service (SQOS) by dynamically determining and managing optimal queue depth and system capacity
CN116382925B (zh) 一种任务队列的动态调整方法、装置及存储介质
CN114186845A (zh) 定时执行指标计算任务的方法和装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21750060

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021575779

Country of ref document: JP

Kind code of ref document: A

122 Ep: pct application non-entry in european phase

Ref document number: 21750060

Country of ref document: EP

Kind code of ref document: A1