WO2020189498A1 - 学習装置、方法及びプログラム - Google Patents

学習装置、方法及びプログラム Download PDF

Info

Publication number
WO2020189498A1
WO2020189498A1 PCT/JP2020/010809 JP2020010809W WO2020189498A1 WO 2020189498 A1 WO2020189498 A1 WO 2020189498A1 JP 2020010809 W JP2020010809 W JP 2020010809W WO 2020189498 A1 WO2020189498 A1 WO 2020189498A1
Authority
WO
WIPO (PCT)
Prior art keywords
output
input
processing unit
machine learning
data
Prior art date
Application number
PCT/JP2020/010809
Other languages
English (en)
French (fr)
Inventor
美紀 尾藤
慎介 花村
Original Assignee
株式会社 Geek Guild
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 株式会社 Geek Guild filed Critical 株式会社 Geek Guild
Publication of WO2020189498A1 publication Critical patent/WO2020189498A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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
    • G06N3/084Backpropagation, e.g. using gradient descent
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload

Definitions

  • the present invention relates to a learning device, a method, a program, etc. using machine learning technology.
  • AI Artificial Intelligence
  • machine learning technology has been attracting attention, and application of machine learning technology to various uses and problem solving has been attempted.
  • manufacturers, automation companies of production lines, etc. are trying to apply machine learning technology to industrial robots installed in factories and the like to perform more appropriate control (for example, patents).
  • Document 1 1).
  • machine learning technology is still widely used. Therefore, when applying machine learning technology to a specific target, businesses that have specialized knowledge about machine learning technology, etc., to users who do not have knowledge about machine learning technology but have specific problems. , Often done in a format that provides machine learning technology.
  • the present invention has been made in the background of the above technical background, and an object of the present invention is to provide a secure system capable of satisfying the demands of both users and providers of machine learning technology. There is. It is also an object of the present invention to provide a learning technique suitable for such a system.
  • the learning device is a learning device for a machine learning model
  • the machine learning model is a part of the machine learning model from an input stage of the machine learning model to a first intermediate stage. Therefore, an input-side conversion processing unit that generates a first intermediate output in the first intermediate stage of the machine learning model by performing conversion processing based on input data to the machine learning model, and the first. It is a part of the machine learning model from the second intermediate stage closer to the output side than the first intermediate stage to the output stage, and the machine learning is performed by performing conversion processing based on the input to the second intermediate stage.
  • An intermediate that includes an output-side conversion processing unit that generates output data of the model, and stores an intermediate output correspondence table that represents the correspondence between the first intermediate output and the second intermediate output in the machine learning model.
  • An output correspondence table storage unit an approximation function generation unit that generates an approximation function of a function that generates the second intermediate output with the first intermediate output as an input, and the input side based on the intermediate output correspondence table.
  • An approximate output generation unit that generates an approximate output based on learning input data based on the conversion processing unit, the approximation function, and the output side conversion processing unit, and the output side conversion processing unit based on the approximate output.
  • a parameter update unit for updating the parameters of the input side conversion processing unit is provided.
  • the terms of the first intermediate output and the second intermediate output are not only mere outputs of each stage of the (predictive) conversion model, but also perform predetermined conversion such as encrypting the output value. It also includes the values performed.
  • the parameter update unit is an error calculation unit that calculates an error between the approximate output and the teacher data corresponding to the learning input data, and the output side conversion processing unit, the approximate function, and the input that obtain the error.
  • a learning parameter update unit may be provided.
  • the correspondence between the first intermediate output based on the learning input data and the second intermediate output based on the learning input data may be stored as a learning input / output table.
  • the learning device may further include a table transmission unit that transmits the learning input / output table to an external device.
  • supervised learning may be performed based on the learning input / output table.
  • the external device may be one that provides the second intermediate output to the learning device based on the first intermediate output.
  • the intermediate output correspondence table may be generated by performing prediction processing in the machine learning model.
  • the approximation function may be a function to which the backpropagation method can be applied.
  • the machine learning model may be a hierarchical artificial neural network.
  • the parameter update unit may further include an approximation function parameter update unit that updates the parameters of the approximation function based on the approximation output.
  • the approximation function may include a bypass function.
  • the approximation function may be composed of a weighted sum of a plurality of different approximation functions.
  • the present invention can also be considered as a learning method. That is, the learning method according to the present invention is a learning method of a machine learning model using a learning device, and the machine learning model is the machine learning from an input stage of the machine learning model to a first intermediate stage.
  • An input-side conversion process that is a part of the model and generates a first intermediate output in the first intermediate stage of the machine learning model by performing a conversion process based on the input data to the machine learning model.
  • a part of the machine learning model from the first intermediate stage to the output stage from the second intermediate stage closer to the output side, and the conversion process is performed based on the input to the second intermediate stage.
  • the learning device includes an output-side conversion processing unit that generates output data of the machine learning model, and the learning device has a correspondence relationship between the first intermediate output and the second intermediate output in the machine learning model.
  • An intermediate output correspondence table storage unit for storing an intermediate output correspondence table representing the above is provided, and an approximation function of a function that generates the second intermediate output with the first intermediate output as an input based on the intermediate output correspondence table is provided.
  • An approximate output generation step that generates an approximate output based on learning input data based on the input-side conversion processing unit, the approximation function, and the output-side conversion processing unit, and the approximation. It includes a parameter update step for updating the parameters of the output side conversion processing unit and the input side conversion processing unit based on the output.
  • the present invention can also be thought of as a learning program. That is, the learning program according to the present invention is a learning program of a machine learning model on a learning device, and the machine learning model is the machine learning from an input stage of the machine learning model to a first intermediate stage.
  • An input-side conversion process that is a part of the model and generates a first intermediate output in the first intermediate stage of the machine learning model by performing a conversion process based on the input data to the machine learning model.
  • a part of the machine learning model from the first intermediate stage to the output stage from the second intermediate stage closer to the output side, and the conversion process is performed based on the input to the second intermediate stage.
  • the learning device includes an output-side conversion processing unit that generates output data of the machine learning model, and the learning device has a correspondence relationship between the first intermediate output and the second intermediate output in the machine learning model.
  • An intermediate output correspondence table storage unit for storing an intermediate output correspondence table representing the above is provided, and an approximation function of a function that generates the second intermediate output with the first intermediate output as an input based on the intermediate output correspondence table is provided.
  • An approximate output generation step that generates an approximate output based on learning input data based on the input-side conversion processing unit, the approximation function, and the output-side conversion processing unit, and the approximation. It includes a parameter update step for updating the parameters of the output side conversion processing unit and the input side conversion processing unit based on the output.
  • the present invention can also be thought of as a learning system. That is, the learning system according to the present invention is a learning system of a machine learning model, and the machine learning model is a part of the machine learning model from an input stage of the machine learning model to a first intermediate stage. Therefore, an input-side conversion processing unit that generates a first intermediate output in the first intermediate stage of the machine learning model by performing a conversion process based on the input data to the machine learning model, and the first. It is a part of the machine learning model from the second intermediate stage closer to the output side than the first intermediate stage to the output stage, and the machine learning is performed by performing conversion processing based on the input to the second intermediate stage.
  • An intermediate that includes an output-side conversion processing unit that generates output data of the model, and stores an intermediate output correspondence table that represents the correspondence between the first intermediate output and the second intermediate output in the machine learning model.
  • An output correspondence table storage unit an approximation function generation unit that generates an approximation function of a function that generates the second intermediate output by using the first intermediate output as an input, and an approximation function generation unit based on the intermediate output correspondence table, and the input side.
  • An approximate output generation unit that generates an approximate output based on learning input data based on the conversion processing unit, the approximation function, and the output side conversion processing unit, and the output side conversion processing unit based on the approximate output. It is provided with a parameter update unit for updating the parameters of the input side conversion processing unit.
  • FIG. 1 is an overall configuration diagram (first embodiment) of the system.
  • FIG. 2 is a hardware configuration diagram of the server.
  • FIG. 3 is a hardware configuration diagram of the robot.
  • FIG. 4 is a functional block diagram (first embodiment) of the robot.
  • FIG. 5 is a functional block diagram (first embodiment) of the server.
  • FIG. 6 is a prediction process (first embodiment) (No. 1) in the robot.
  • FIG. 7 is a prediction process (first embodiment) (No. 2) in the robot.
  • FIG. 8 is a prediction process (first embodiment) in the server.
  • FIG. 9 is a conceptual diagram (first embodiment) relating to the prediction process.
  • FIG. 10 is an overall configuration diagram (second embodiment) of the system.
  • FIG. 11 is a hardware configuration diagram of the intermediate server.
  • FIG. 11 is a hardware configuration diagram of the intermediate server.
  • FIG. 12 is a functional block diagram (second embodiment) relating to the intermediate server.
  • FIG. 13 is a prediction process (second embodiment) (No. 1) in the intermediate server.
  • FIG. 14 is a prediction process (second embodiment) (No. 2) in the intermediate server.
  • FIG. 15 is a prediction process (second embodiment) in the final server.
  • FIG. 16 is a conceptual diagram (second embodiment) relating to the prediction process.
  • FIG. 17 is a functional block diagram (third embodiment) of the robot.
  • FIG. 18 is a functional block diagram (third embodiment) of the intermediate server.
  • FIG. 19 is a functional block diagram (third embodiment) regarding the final server.
  • FIG. 20 is a learning process (third embodiment) in the robot.
  • FIG. 21 is a conceptual diagram regarding approximate data.
  • FIG. 22 is a storage process (third embodiment) in the intermediate server.
  • FIG. 23 is a learning process (third embodiment) in the intermediate server.
  • FIG. 24 is a storage process (third embodiment) in the final server.
  • FIG. 25 is a learning process (third embodiment) in the final server.
  • FIG. 26 is a conceptual diagram (third embodiment) regarding the learning process.
  • FIG. 27 is an overall configuration diagram (modification example) of the system.
  • FIG. 28 is a conceptual diagram regarding an example of using the bypass function.
  • FIG. 29 is a conceptual diagram of the bypass function.
  • FIG. 30 is a conceptual diagram of approximation using a sub-approximation function.
  • prediction processing means forward arithmetic processing of the trained model and can therefore be replaced with, for example, simply conversion processing, inference processing, and the like.
  • FIG. 1 is an overall configuration diagram of the system 10 according to the present embodiment.
  • a server 1 having a communication function and a plurality of (N) robots 3 having a communication function form a server / client system, and they are mutually WAN (Wide Area Network). And are connected via LAN (Local Area Network).
  • the WAN is, for example, the Internet, and the LAN is installed, for example, in a factory.
  • FIG. 2 is a diagram showing a hardware configuration of the server 1.
  • the server 1 includes a control unit 11, a storage unit 12, an I / O unit 13, a communication unit 14, a display unit 15, and an input unit 16, which are connected to each other via a system bus or the like.
  • the control unit 11 is composed of a processor such as a CPU or GPU and executes execution processing of various programs.
  • the storage unit 12 is a storage device for a ROM, RAM, hard disk, flash memory, etc., and stores various data, operation programs, and the like.
  • the I / O unit 13 performs input / output and the like with an external device.
  • the communication unit 14 is, for example, a communication unit that communicates based on a predetermined communication standard, and communicates with the robot 3 that is the client device in the present embodiment.
  • the display unit 15 is connected to a display or the like to perform a predetermined display.
  • the input unit 16 receives input from the administrator using, for example, a keyboard or a mouse.
  • FIG. 3 is a diagram showing a hardware configuration of the robot 3.
  • the robot 3 is, for example, an industrial robot arranged in a factory or the like.
  • the robot 3 includes a control unit 31, a storage unit 32, an I / O unit 33, a communication unit 34, a display unit 35, a detection unit 36, and a drive unit 37, which are via a system bus or the like.
  • the control unit 31 is composed of a processor such as a CPU or GPU and executes execution processing of various programs.
  • the storage unit 32 is a storage device for a ROM, RAM, hard disk, flash memory, etc., and stores various data, operation programs, and the like.
  • the I / O unit 33 performs input / output and the like with an external device.
  • the communication unit 34 is, for example, a communication unit that communicates based on a predetermined communication standard, and in the present embodiment, communicates with the server 1.
  • the display unit 35 is connected to a display or the like to perform a predetermined display.
  • the detection unit 36 is connected to the sensor and detects the sensor information as digital data.
  • the drive unit 37 drives a connected (not shown) motor or the like in response to a command from the control unit.
  • FIG. 4 is a functional block diagram of the control unit 31 of the robot 3.
  • the control unit 31 includes a sensor information acquisition unit 311, a prediction processing unit 312, an encryption processing unit 319, a hashing processing unit 313, an information acquisition necessity determination unit 314, and a cache information acquisition processing unit 315. It includes a server information acquisition processing unit 316, a decoding unit 317, and a drive command unit 318.
  • the sensor information acquisition unit 311 acquires the sensor information acquired by the detection unit 36.
  • the prediction processing unit 312 reads basic information, weight information, etc. regarding the configuration of the prediction model (trained model) generated by supervised learning of the neural network, and outputs a predetermined prediction based on the input data. To generate.
  • the encryption processing unit 319 performs a process of encrypting the input data with a public key or the like.
  • the hashing processing unit 313 hashes the input information and generates a corresponding hash value, that is, a fixed-length value without regularity.
  • the information acquisition necessity determination unit 314 determines whether or not the data corresponding to the predetermined data is already stored in the predetermined table.
  • the cache information acquisition processing unit 315 determines that the data corresponding to the predetermined data exists in the information acquisition necessity determination unit 314, the cache information acquisition processing unit 315 acquires the corresponding data.
  • the server information acquisition processing unit 315 transmits predetermined data to the server 1 and receives the data corresponding to the data.
  • the decryption unit 317 decrypts the data encrypted by the public key or the like with the encryption key.
  • the drive command unit 318 drives the motor or the like based on the output data.
  • FIG. 5 is a functional block diagram of the control unit 11 of the server 1.
  • the control unit 11 includes a data input reception unit 111, a decryption processing unit 112, a prediction processing unit 113, an encryption processing unit 114, and a data transmission unit 115.
  • the data input receiving unit 111 receives the data input transmitted from the robot 3.
  • the decryption processing unit 112 decrypts the data encrypted by the public key or the like with the encryption key or the like.
  • the prediction processing unit 113 reads basic information such as the configuration of a prediction model (learned model) and weight information generated by supervised learning of a neural network, and outputs a predetermined prediction based on the input data. To generate.
  • the encryption processing unit 114 encrypts the input data with a public key or the like.
  • the data transmission unit performs a process of transmitting the data to be transmitted to the robot 3.
  • the robot 3 performs a predetermined prediction process based on the acquired sensor information to drive an operating unit such as a motor.
  • the process of acquiring the sensor information (I) via the sensor information acquisition unit 311 is performed (S1). Subsequently, the sensor information (I) is input to the prediction processing unit 312 to perform prediction processing from the input stage to the first intermediate layer to generate input-side intermediate layer data (X1) (S3).
  • the generated input side intermediate layer data (X1) is encrypted by the public key in the encryption processing unit 319, and the encrypted input side intermediate layer data (X1') is generated (S5).
  • the encrypted input side intermediate layer data (X1') is then hashed by the hashing processing unit 313 to generate a hash value (Y1) (S7).
  • the information acquisition necessity determination processing unit 314 reads the hash table, and whether or not the encrypted output side intermediate layer data (Z1') corresponding to the generated hash value (Y1) exists in the hash table. Is determined (S9).
  • the output side intermediate layer data (Z1) represents the output of the second intermediate layer closer to the output layer than the first intermediate layer, and the encrypted output side intermediate layer data (Z1') represents the server. Represents the output of the second mesosphere encrypted by the public key in 1.
  • the cache information acquisition processing unit 315 performs the encrypted output.
  • a process of acquiring the side intermediate layer data (Z1') as cache information is performed (S13).
  • the server information acquisition processing unit 316 performs the encrypted input side intermediate.
  • the layer data (X1') is transmitted to the server 1 (S15), and then the state shifts to a predetermined standby state (S17NO).
  • the standby state is released (S17YES), and the received encrypted output side intermediate layer data (Z1') is used as the hash value (Z1').
  • a process of associating with Y1) and saving is performed (S19). The operation of the server 1 during this period will be described in detail in FIG.
  • the decryption unit 317 generates the output side intermediate layer data (Z1) by decrypting the acquired encrypted output side intermediate layer data (Z1') with the private key (S21).
  • the prediction processing unit 312 performs prediction processing from the second intermediate layer to the output layer based on the generated output-side intermediate layer data (Z1) to generate the final output (O) (S23).
  • the drive command unit 318 issues a drive command to a drive unit such as a motor based on the final output (O) (S25).
  • a drive unit such as a motor based on the final output (O) (S25).
  • the server 1 shifts to a predetermined standby state by the data input receiving unit 111 (S31NO).
  • the standby state is released (S31NO), and the decryption processing unit 112 receives the encrypted input side intermediate layer data (X1').
  • the prediction processing unit 113 performs prediction processing from the first intermediate layer to the second intermediate layer using the input side intermediate layer data (X1) as an input, and generates output side intermediate layer data (Z1) ( S35).
  • the encryption processing unit 114 encrypts the output side intermediate layer data (Z1) with a public key to generate encrypted output side intermediate layer data (Z1) (S37). After that, the data transmission unit 115 transmits the encrypted output side intermediate layer data (Z1') to the robot 3 (S39). When this transmission process is completed, the server 1 returns to the reception standby state (S31) again, and thereafter, a series of processes (S31 to S39) are repeated.
  • FIG. 9 is a conceptual diagram of the prediction process realized by the system 1 according to the present embodiment.
  • the upper part is a conceptual diagram of the prediction process performed by the robot 3, and the lower part is a conceptual diagram of the prediction process performed by the server 1.
  • the left side of the figure shows the input side, and the right side shows the output side.
  • the prediction processing unit 312 performs prediction processing from the input stage to the first intermediate layer, and inputs the input side intermediate layer data ( X1) is generated. After that, the input-side intermediate layer data (X1) is transmitted to the server 1 via encryption, and is decrypted by the server 1.
  • the prediction processing unit 113 receives the input side intermediate layer data (X1) as an input, performs prediction processing from the first intermediate layer to the second intermediate layer, and generates the output side intermediate layer data (Z1). To do. After that, the output-side intermediate layer data (Z1) is transmitted to the robot 3 via encryption, and is decrypted by the robot 3.
  • the prediction processing unit 312 performs prediction processing between the second intermediate layer and the output layer to generate the final output (O).
  • the server usage cost can be reduced and the prediction processing can be speeded up.
  • the client device can be operated almost autonomously.
  • the intermediate output communicated between the client device and the server is encrypted. Therefore, the data is further secured.
  • hashing processing is performed.
  • the security of the data is improved, and the speed of the determination process can be realized by speeding up the search process in the hash table.
  • Second embodiment> In this embodiment, the servers are arranged in multiple stages in the system 20.
  • FIG. 10 is an overall configuration diagram of the system 20 according to the present embodiment.
  • the server 5 and a plurality of robots 7 (7-1 to 7-N) as client devices are connected by communication via a network. It is the same as the embodiment of 1.
  • this embodiment differs from the first embodiment in that the intermediate server 6 is interposed between the robot 7 and the final server 5.
  • the intermediate server 6 is operated by, for example, a machine learning technology vendor (AI vendor).
  • AI vendor machine learning technology vendor
  • FIG. 11 is a diagram showing a hardware configuration of an intermediate server 6 interposed between the robot 7 and the final server 5.
  • the intermediate server 6 includes a control unit 61, a storage unit 62, an I / O unit 63, a communication unit 64, a display unit 65, and an input unit 66, which are connected to each other via a system bus or the like.
  • the control unit 61 is composed of a processor such as a CPU or GPU and executes execution processing of various programs.
  • the storage unit 62 is a storage device for a ROM, RAM, hard disk, flash memory, etc., and stores various data, operation programs, and the like.
  • the I / O unit 63 performs input / output and the like with an external device.
  • the communication unit 64 is, for example, a communication unit that communicates based on a predetermined communication standard, and communicates with the final server 5 and the robot 7 as a client device.
  • the display unit 65 is connected to a display or the like to perform a predetermined display.
  • the input unit 66 receives input from the administrator using, for example, a keyboard or a mouse.
  • FIG. 12 is a functional block diagram of the control unit 61 of the intermediate server 6.
  • the control unit 61 includes a data input reception unit 611, a decryption processing unit 612, a prediction processing unit 613, an encryption processing unit 614, a hashing processing unit 615, an information acquisition necessity determination unit 616, and a cache. It includes an information acquisition processing unit 617, a server information acquisition processing unit 618, and a data transmission unit 619.
  • the data input reception unit 611 accepts data input transmitted from the robot 3 or the final server 5.
  • the decryption processing unit 612 decrypts the data encrypted by the public key or the like with the encryption key or the like.
  • the prediction processing unit 613 reads basic information such as the configuration of a prediction model (learned model) and weight information generated by supervised learning of a neural network, and outputs a predetermined prediction based on the input data. To generate.
  • the encryption processing unit 614 encrypts the input data with a public key or the like.
  • the hashing processing unit 615 hashes the input information and generates a corresponding hash value, that is, a fixed-length value without regularity.
  • the information acquisition necessity determination unit 616 determines whether or not the data corresponding to the predetermined data is already stored in the predetermined table. When the cache information acquisition processing unit 617 determines that the data corresponding to the predetermined data exists in the information acquisition necessity determination unit 616, the cache information acquisition processing unit 617 acquires the corresponding data.
  • the server information acquisition processing unit 618 transmits predetermined data to the final server 5 and receives the data corresponding to the data.
  • the data transmission unit 619 performs a process of transmitting the data to be transmitted to the robot 3 or the final server 5.
  • the operation of the robot 7 is substantially the same as that of the first embodiment. That is, as shown in FIGS. 6 and 7, as a result of the determination (S9) in the information acquisition necessity determination processing unit 314, the encrypted output side intermediate layer data (Z1') corresponding to the hash value (Y1) is a hash table. If it does not exist in (S11NO), the server information acquisition processing unit 316 transmits the first encrypted input side intermediate layer data (X1') to the intermediate server 6 (S15), and then a predetermined standby state (S17NO). ).
  • 13 and 14 are flowcharts relating to the prediction processing operation of the intermediate server 6.
  • the intermediate server 6 shifts to a predetermined standby state by the data input receiving unit 611 (S51NO). After that, when the first encrypted input side intermediate layer data (X1') is received from the robot 7 (S51YES), the standby state is released. After that, the decryption processing unit 612 decrypts the received first encrypted input side intermediate layer data (X1') with the private key, and generates the first input side intermediate layer data (X1) (S53). ).
  • the prediction processing unit 613 performs prediction processing from the first intermediate layer to the third intermediate layer based on the decoded first input side intermediate layer data (X1), and performs prediction processing from the first intermediate layer to the second input side intermediate layer data.
  • (X2) is generated (S55).
  • the encryption processing unit 614 encrypts the second input side intermediate layer data (X2) with the public key to generate the second encrypted input side intermediate layer data (X2') (S57). Further, the hash processing unit 615 hash-processes the second encrypted input side intermediate layer data (X2') to generate a second hash value (Y2) (S59).
  • the information acquisition necessity determination unit 616 reads the second hash table stored in the intermediate server 6, and the second encrypted output side intermediate layer data corresponding to the generated second hash value (Y2). It is determined whether or not (Z2') exists in the second hash table (S61). As a result of this determination (S9), when the second encrypted output side intermediate layer data (Z2') corresponding to the second hash value (Y2) exists in the hash table (S63YES), the cache information acquisition processing unit. 617 performs a process of acquiring the second encrypted output side intermediate layer data (Z2') as cache information (S65).
  • the server information acquisition process transmits the second encrypted input side intermediate layer data (X2') to the server 1 (S67), and then shifts to a predetermined standby state (S69NO).
  • the standby state is released (S69YES), and the received second encrypted output side intermediate layer data (Z2') is released.
  • ') Is stored in association with the second hash value (Y2) (S71). The operation of the final server 5 during this period will be described later in FIG.
  • the decryption processing unit 612 generates the second output side intermediate layer data (Z2) by decrypting the acquired second encrypted output side intermediate layer data (Z2') with the private key (S73). After that, the prediction processing unit 613 performs prediction processing from the fourth intermediate layer to the second intermediate layer based on the generated second output side intermediate layer data (Z2), and performs prediction processing from the first output side intermediate layer.
  • the layer data (Z1) is generated (S75).
  • the encryption processing unit 614 performs encryption processing on the first output side intermediate layer data (Z1) to generate the first encrypted output side intermediate layer data (Z1') (S77). After that, the data transmission unit 619 transmits the first encrypted output side intermediate layer data (Z1') to the robot 7. When this transmission process is completed, the intermediate server 6 returns to the reception standby state (S51NO) again, and thereafter, a series of processes (S51 to S79) are repeated.
  • FIG. 15 shows a flowchart relating to the prediction processing operation of the final server 5.
  • the final server 5 shifts to a predetermined standby state by the data input receiving unit 111 (S81NO).
  • the standby state is released (S81YES).
  • the decryption processing unit 112 performs a process of decrypting the received second encrypted input side intermediate layer data (X2') with the private key, and generates the second input side intermediate layer data (X2) (S83). ).
  • the prediction processing unit 113 performs prediction processing from the third intermediate layer to the fourth intermediate layer by using the second input side intermediate layer data (X2) as an input, and performs prediction processing from the third intermediate layer to the fourth intermediate layer, and the second output side intermediate layer data (X2). Z2) is generated (S85).
  • the encryption processing unit 114 encrypts the second output side intermediate layer data (Z2) using the public key to generate the second encrypted output side intermediate layer data (Z2') (S87). After that, the data transmission unit 115 transmits the second encrypted output side intermediate layer data (Z2') to the intermediate server 6 (S89). When this transmission process is completed, the final server 5 returns to the reception standby state (S81) again, and thereafter, a series of processes (S81 to S89) are repeated.
  • FIG. 16 is a conceptual diagram of the prediction process realized by the system 20 according to the present embodiment.
  • the upper part is a conceptual diagram of the prediction processing performed by the robot 7
  • the middle part is a conceptual diagram of the prediction processing performed by the intermediate server 6
  • the lower part is a conceptual diagram of the prediction processing performed by the final server 5.
  • the left side shows the input side
  • the right side shows the output side.
  • the prediction processing unit 312 performs the prediction processing from the input stage to the first intermediate layer, and performs the prediction processing from the input stage to the first intermediate layer.
  • the prediction processing unit 613 performs prediction processing between the first intermediate layer and the third intermediate layer, and generates the second input side intermediate layer data (X2). After that, the second input-side intermediate layer data (X2) is transmitted to the final server 5 via encryption, and is decrypted in the final server 5.
  • the prediction processing unit 113 receives the second input side intermediate layer data (X2) as an input, performs prediction processing from the third intermediate layer to the fourth intermediate layer, and performs prediction processing from the third intermediate layer to the fourth intermediate layer, and performs prediction processing from the second intermediate layer to the second output side.
  • Generate layer data (Z2) After that, the second output-side intermediate layer data (Z2) is transmitted to the intermediate server 6 via encryption, and is decrypted by the intermediate server 6.
  • the prediction processing unit 613 performs prediction processing between the fourth intermediate layer and the second intermediate layer, and generates the first output side intermediate layer data (Z1). After that, the first output-side intermediate layer data (Z1) is transmitted to the robot 7 via encryption, and is decrypted by the robot 7.
  • the prediction processing unit 312 performs prediction processing between the second intermediate layer and the output layer, and generates the final output (O).
  • the servers are provided in multiple stages, it is possible to reduce the processing load of the client device and each device in each server, and at the same time, predict in the client device due to the economies of scale due to the multi-stage. Performance improvement can also be expected. Moreover, even if the number of stages is increased in this way, the speed of the processing is unlikely to occur because each server also performs the prediction processing based on the cache information. Since the prediction model is distributed, it is expected that the safety of the system will be further improved, and it will be possible for a plurality of administrators to share the management of each server.
  • the system 30 performs learning processing in addition to prediction processing.
  • FIG. 17 is a functional block diagram of the control unit 710 of the robot 7.
  • the content of the prediction processing unit 7101 is substantially the same as the configuration shown in FIG. 4, so detailed description thereof will be omitted.
  • the prediction processing unit 7101 is different in that it further includes a cache table addition processing unit 7109.
  • the cache table addition processing unit 7109 performs the decoding process (S21) in FIG. 7 to generate the output side intermediate layer data (Z1), and then transfers the output side intermediate layer data (Z1) to the corresponding input side intermediate layer. A process of additionally storing the data (X1) in the cache table is performed. This cache table is used for the learning process described later.
  • the control unit 710 further has a learning processing unit 7102.
  • the learning processing unit 7102 includes a data reading unit 7102, an approximate function generation processing unit 7116, a prediction processing unit 7117, an error back propagation processing unit 7118, a parameter update processing unit 7119, an encryption processing unit 7120, and a data transmission processing unit 7121. ing.
  • the data reading unit 7115 performs reading processing of various data stored in the robot 7.
  • the approximate function generation processing unit 7116 generates an approximate function by a method described later based on a cache table relating to a predetermined input / output correspondence.
  • the prediction processing unit 7117 reads basic information such as the configuration of a prediction model (learned model) and weight information generated by supervised learning of a neural network, and outputs a predetermined prediction based on the input data. To generate.
  • the error back propagation processing unit 7118 performs a process (Backpropagation) of propagating the error obtained by comparing the output of the prediction model with the teacher data from the output side of the model to the input side.
  • the parameter update processing unit 7119 performs processing for updating model parameters such as weights so as to reduce the error between the output of the prediction model and the teacher data.
  • the encryption processing unit 7120 performs a process of encrypting a predetermined target data with a public key or the like.
  • the data transmission processing unit 7121 performs a process of transmitting predetermined target data to the intermediate server 6.
  • FIG. 18 is a functional block diagram of the control unit 610 of the intermediate server 6.
  • the content of the prediction processing unit 6101 is substantially the same as the configuration shown in FIG. 12, so detailed description thereof will be omitted.
  • the prediction processing unit 6101 is different in that it further includes a cache table addition processing unit 6112.
  • the cache table addition processing unit 6112 performs the decoding process (S75) in FIG. 14 to generate the second output-side intermediate layer data (Z2), and then generates the second output-side intermediate layer data (Z2).
  • a process of additionally storing the data in the cache table together with the corresponding second input-side intermediate layer data (X2) is performed. This cache table is used for the learning process described later.
  • the control unit 610 further has a learning processing unit 6102.
  • the learning processing unit 6102 includes a data input receiving unit 6123, a data reading unit 6115, a sampling processing unit 6116, an approximate function generation processing unit 6117, a prediction processing unit 6118, an error back propagation processing unit 6119, a parameter update processing unit 6120, and an encryption process.
  • a unit 6121 and a data transmission processing unit 6122 are provided.
  • the data input receiving unit 6123 performs a process of receiving, decoding, and storing various data such as the first cache table received from the robot 7.
  • the data reading unit 6115 performs reading processing of various data stored in the intermediate server 6.
  • the sampling processing unit 6116 performs a process of selecting a data set to be learned from the cache table.
  • the approximate function generation processing unit 6117 generates an approximate function by a method described later based on a cache table relating to a predetermined input / output correspondence.
  • the prediction processing unit 6118 reads basic information such as the configuration of a prediction model (trained model) and weight information generated by supervised learning of a neural network, and outputs a predetermined prediction based on the input data. To generate.
  • the error back propagation processing unit 6119 performs a process (Backpropagation) of propagating the error obtained by comparing the output of the prediction model with the teacher data from the output side of the model to the input side.
  • the parameter update processing unit 6120 performs processing for updating model parameters such as weights so as to reduce the error between the output of the prediction model and the teacher data.
  • the encryption processing unit 6121 performs a process of encrypting a predetermined target data with a public key or the like.
  • the data transmission processing unit 6122 performs a process of transmitting predetermined target data to the robot 7 or the final server 5.
  • FIG. 19 is a functional block diagram of the control unit 510 of the final server 5.
  • the content of the prediction processing unit 5101 is substantially the same as the configuration shown in FIG. 5, so detailed description thereof will be omitted.
  • the control unit 510 further has a learning processing unit 5102.
  • the learning processing unit 5102 includes a data input receiving unit 5115, a data reading unit 5110, a sampling processing unit 5111, a prediction processing unit 5112, an error back propagation processing unit 5113, and a parameter update processing unit 5114.
  • the data input receiving unit 5115 performs a process of receiving various data such as a second cache table received from the intermediate server 6, decoding and storing the data.
  • the data reading unit 5110 performs reading processing of various data stored in the final server 5.
  • the sampling processing unit 5111 performs a process of selecting a data set to be learned from the second cache table.
  • the prediction processing unit 5112 reads basic information such as the configuration of a prediction model (trained model) and weight information generated by supervised learning of a neural network, and outputs a predetermined prediction based on the input data. To generate.
  • the error back propagation processing unit 5113 performs a process (Backpropagation) of propagating the error obtained by comparing the output of the prediction model with the teacher data from the output side of the model to the input side.
  • the parameter update processing unit 5114 performs a process of updating model parameters such as weights so as to reduce the error between the output of the prediction model and the teacher data.
  • FIG. 20 is a flowchart of the learning processing operation in the robot 7.
  • the data reading unit 7115 reads out a pair of input / output pairs (X0, Z0) from the input / output data table stored in the robot 7 and corresponding to the teacher data (S101). ).
  • the prediction processing unit 7117 performs prediction processing in the section from the input layer of the prediction model to the first intermediate layer based on the input data X0, and inputs the input side intermediate layer data (X1-s1). Generate (S103).
  • the data reading unit 7115 receives the first input side intermediate layer data (X1) and the first output side intermediate layer data (X1) accumulated in the robot 7 during the prediction process.
  • a process of reading the first cache table including the correspondence with Z1) is performed (S105).
  • a process of generating an approximation function is performed based on the first cache table (S107).
  • the data (X1) of the first input-side intermediate layer (temporarily referred to as the X layer for convenience of explanation) is used as an input
  • the data (Z1) of the first output-side intermediate layer (temporarily referred to as the Z layer for convenience of explanation).
  • the data conversion (cache conversion) that generates the above can be expressed as follows.
  • the vector representing the data of the X layer composed of n neurons can be expressed as follows.
  • the vector representing the data of the Z layer consisting of N neurons can be expressed as follows.
  • the k-th value zk of the Z layer can be calculated independently of the other N-1 values from the mathematical formula (1), it can be expressed as follows.
  • the conversion function Sk is converted to the kth value of the corresponding Z layer if the combination of each component value of the data vector of the X layer does not exist in the first cache table due to the nature of the cache conversion. Can not do it. Therefore, it is approximated by the following linear equation (5).
  • the solution vk of the mathematical formula (10) can be obtained by calculating the mathematical formula (9) with a computer according to an algorithm such as Gaussian elimination.
  • the mathematical formula (5) can be expressed as follows.
  • this formula (11) is an approximate formula.
  • partial differentiation is approximately possible for each component of the data vector of the X layer, for example, backpropagation of errors from the Z layer to the X layer can be easily performed. That is, even if each machine learning model on the input side and the output side is a multi-layer neural network model before and after the learning model part corresponding to the cache table, that is, the learning process is performed at high speed by using the error back propagation method. be able to.
  • the prediction processing unit 7117 determines the first input side. Based on the mesosphere data (X1) and the approximation function, the prediction process of the section from the first mesosphere to the second mesosphere is performed, and the output side mesosphere data (Z1-s1) is generated (S109). ). After that, the prediction processing unit 7117 uses the output side intermediate layer data (Z1-s1) as an input to perform prediction processing for the section from the second intermediate layer to the output layer, and outputs the final output (Z0-s1). Generate (S111).
  • the error back propagation processing unit 6119 generates an error between the teacher output (Z0) and the final output (Z0-s1) related to the teacher data, and sets the error or a predetermined value based on the error (for example, root mean square error). For example, it propagates from the output side to the input side by a method such as the steepest descent method (S113).
  • the parameter update processing unit 7119 starts from the section from the input layer to the first intermediate layer and the second intermediate layer of the training model, excluding the approximate function part, based on the back-propagated error and the like.
  • a process of updating parameters such as the weight of the section leading to the output layer is performed (S115).
  • the robot 7 confirms from the predetermined setting information whether or not it is permitted to transmit the first cache table (S117). As a result, if there is no transmission permission, the learning end determination (S121) is performed, and if it is not completed (S121NO), all the processes (S101 to S121) are repeated again. On the other hand, when it ends (S121YES), the learning process ends.
  • the data transmission processing unit 7121 performs a process of transmitting the first cache table encrypted by the encryption processing unit 7120 to the intermediate server 6. (S119). After that, the learning end determination (S121) is performed.
  • FIG. 22 is a flowchart relating to reception and storage processing of the first cache table transmitted from the robot 7.
  • the data input receiving unit 6123 shifts to the data reception standby state (S131).
  • S131YES the data reception standby state
  • the received first cache data is decrypted with the private key or the like (S133).
  • S133 the private key or the like
  • FIG. 23 is a flowchart relating to the learning processing operation in the intermediate server 6 executed in parallel with the reception processing of the first cache table shown in FIG. 22.
  • the data reading unit 6115 reads the input / output pairs (X1-s1, Z1-s1) from the input / output data table stored in the intermediate server 6 and corresponding to the teacher data. (S141).
  • the sampling processing unit 6116 extracts the input / output pair used for learning (S143).
  • the prediction processing unit 6118 performs prediction processing in the section from the first intermediate layer to the third intermediate layer of the prediction model based on the input data (X1-s1), and second.
  • the input side intermediate layer data (X2-s2) of the above is generated (S145).
  • the data reading unit 6115 performs the second input side intermediate layer data (X2) and the first output side intermediate layer data accumulated in the intermediate server 6 at the time of prediction processing.
  • a process of reading out the second cache table (X2, Z2) including the correspondence with (Z2) is performed (S147).
  • the second output side mesosphere data (Z2) is generated based on the second input side mesosphere data (X2) based on the second cache table.
  • a process for generating an approximate function is performed (S149). The approximate function generation process is the same as the approximate function generation in the robot 7.
  • the prediction processing unit 6118 When the generation process (S145) of the second input side intermediate layer data (X2-s2) and the generation process (S149) of the approximation function are completed, the prediction processing unit 6118 causes the second input side intermediate layer data (X2-s2). ) And the approximation function, the prediction process of the section from the third intermediate layer to the fourth intermediate layer is performed, and the second output side intermediate layer data (Z2-s2) is generated (S151). After that, the prediction processing unit 6118 receives the second output side intermediate layer data (Z2-s2) as an input, performs prediction processing of the section from the fourth intermediate layer to the second intermediate layer, and performs the second prediction processing. Output side predicted output (Z1-s2) is generated (S153).
  • the error back propagation processing unit 6119 generates an error between the teacher data (Z1-s1) and the second output-side predicted output (Z1-s2), and the error or a predetermined value based on the error (for example, root mean square error, etc.) ) Is propagated from the output side to the input side by a method such as the steepest descent method (S155).
  • the parameter update processing unit 6120 includes a section from the first mesosphere to the third mesosphere, excluding the approximate function part, and a fourth mesosphere based on the back-propagated error and the like.
  • a process of updating parameters such as the weight of the section from the intermediate layer to the second intermediate layer is performed (S157).
  • the intermediate server 6 confirms from the predetermined setting information whether or not it is permitted to transmit the second cache table (X2-s2, Z2-s2) (S159). As a result, if there is no transmission permission, the learning end determination (S163) is performed, and if it is not completed (S163NO), all the processes (S141 to S163) are repeated again. On the other hand, when it ends (S163YES), the learning process ends.
  • the data transmission processing unit 6122 performs a process of transmitting the second cache table encrypted by the encryption processing unit 6121 to the final server 5. (S161). After that, the learning end determination (S163) is performed.
  • FIG. 24 is a flowchart relating to reception and storage processing of the second cache table (X2-s2, Z2-s2) transmitted from the intermediate server 6.
  • the data input receiving unit 5115 shifts to the data reception standby state (S171).
  • S171YES the data reception standby state
  • the data reception standby state is released, and the received second cache data is decrypted with the private key or the like (S173).
  • S175 The process of storing in the storage unit (S175) is performed.
  • the final server 5 shifts to the reception standby state (S171NO) again.
  • FIG. 25 is a flowchart relating to the learning processing operation in the final server 5, which is executed in parallel with the reception processing of the second cache table shown in FIG. 24.
  • the data reading unit 5110 performs a process of reading the cache table (S181).
  • the sampling processing unit (S5111) extracts the input / output pairs to be learned from the cache table (S183).
  • the prediction processing unit 5112 performs prediction processing from the third intermediate layer to the fourth intermediate layer based on the read second input side intermediate layer data (X2-s2), and performs prediction processing from the third intermediate layer to the fourth intermediate layer, and the second output side intermediate.
  • Layer data (Z2-s3) is generated (S185).
  • the error back propagation processing unit 5113 generates an error between the second output side intermediate layer data (Z2-s3) and the teacher data (Z2-s2), and generates the error or a predetermined value based on the error (for example, root mean square error). Etc.) is propagated from the output side to the input side by a method such as the steepest descent method (S187).
  • the parameter update processing unit 5114 performs a process of updating parameters such as weights of the learning model based on the back-propagated error and the like (S189).
  • the learning end determination is performed, and if the predetermined end condition is not satisfied (S191NO), a series of processes (S181 to S189) are performed again.
  • the predetermined end condition is satisfied (S191YES)
  • FIG. 26 is a conceptual diagram of the learning process realized by the system 30 according to the present embodiment.
  • the upper part is a conceptual diagram of the learning process performed by the robot 7
  • the middle part is a conceptual diagram of the learning process performed by the intermediate server 6
  • the lower part is a conceptual diagram of the learning process performed by the final server 5.
  • the left side shows the input side
  • the right side shows the output side.
  • the prediction processing unit 7117 performs the prediction processing from the input stage to the first intermediate layer, and performs the prediction processing from the input stage to the first intermediate layer.
  • the approximate function generation processing unit 7116 generates an approximate function (F (x)) based on the first cache table (X1, Z1).
  • the prediction processing unit 7117 generates the first output side intermediate layer data (Z1-s1) based on the first input side intermediate layer data (X1-s1) and the approximation function (F (x)). Further, the final output data (Z0-s1) is generated based on the first output-side intermediate layer data (Z1-s1).
  • the error back propagation processing unit 7118 back-propagates the error between the final output data (Z0-s1) and the teacher data (Z0) from the final output stage to the input stage via an approximate function.
  • the parameter update processing unit 7119 updates the parameters including the weights from the final output stage to the second intermediate layer and from the first intermediate layer to the input stage. Further, the first cache table (X1-s1, Z1-s1) generated at this time is provided to the intermediate server 6 under predetermined conditions.
  • the prediction processing unit 6118 moves from the first intermediate layer to the third intermediate layer.
  • the prediction process during the period is performed to generate the second input side mesosphere data (X2-s2).
  • the approximate function generation processing unit 6117 generates an approximate function (G (x)) based on the first cache table (X1-s1, Z1-s1).
  • the prediction processing unit 6118 generates the second output side intermediate layer data (Z2-s2) based on the second input side intermediate layer data (X2-s2) and the approximation function (G (x)).
  • the first output side intermediate layer data (Z1-s2) is generated based on the second output side intermediate layer data (Z2-s2).
  • the error back propagation processing unit 6119 back-propagates the error between the final output data (Z1-s2) and the teacher data (Z1-s1) from the second intermediate layer to the first intermediate layer via an approximation function. ..
  • the parameter update processing unit 6120 updates the parameters including the weights between the second intermediate layer to the fourth intermediate layer and the third intermediate layer to the first intermediate layer.
  • the second cache table (X2-s2, Z2-s2) generated at this time is provided to the final server 5 under predetermined conditions.
  • the prediction processing unit 5112 moves from the third intermediate layer to the fourth intermediate layer.
  • the prediction process during the period is performed to generate the second output side intermediate layer data (Z2-s3).
  • the error back propagation processing unit 5113 back-propagates the error between the second output side intermediate layer data (Z2-s3) and the teacher data (Z2-s2) from the fourth intermediate layer to the third intermediate layer. Let me. After that, the parameter update processing unit 5114 updates the parameters including the weights between the fourth intermediate layer and the fourth intermediate layer.
  • the approximation function generated from the cache table is described as being used only in the learning process.
  • the present invention is not limited to such a configuration.
  • an approximation function is generated based on the cache table obtained so far, and the first intermediate layer is generated based on the first input side mesosphere data (X1) and the approximation function.
  • the output side intermediate layer data (Z1) may be generated by performing the prediction processing of the section from the to the second intermediate layer. According to such a configuration, for example, after data is accumulated in the hash table to a certain extent, it is possible to significantly reduce the frequency of inquiries to the server side or perform prediction processing without making inquiries. ..
  • the input-side intermediate layer data (X) (for example, X1 or X2) is encrypted and hashed
  • a hash table search process is performed using the hash value as a key (for example, FIG. 6). S11, S55 in FIG. 13 and the like).
  • the present invention is not limited to such a configuration. Therefore, for example, the input-side intermediate layer data (X) may be subjected to rounding processing, then encrypted and / or hashed, and a hash table search may be performed.
  • the rounding process when the set to which the input-side mesosphere data (X) belongs is U, it is considered that the specific input-side mesosphere data belonging to the set U has the same value (X_u)) (representative value). It is a process. For example, even if some node values (neuron firing values) of the input side intermediate layer data (X) are discretized into integer values by rounding up or down, etc., a set of a plurality of integer values is formed. Good. According to such a configuration, it is possible to improve the consistency with the hash value obtained in the past and realize speeding up of processing and the like.
  • FIG. 27 is an overall configuration diagram of the system 40 according to the modified example.
  • the system 40 includes a server 2 that performs prediction processing, an intermediary server 8 that is connected to the server 2 via a WAN and is connected to a LAN, and a robot 9 as a client device connected to the LAN. It is composed of.
  • the exchange of information between the server 2 and the client device 9 is performed via the intermediary server 8.
  • supervised learning using a neural network is illustrated as a machine learning algorithm.
  • the present invention is not limited to such a configuration. Therefore, for example, other machine learning algorithms that are divisible and can handle intermediate values in a similar format may be used.
  • unsupervised learning such as GAN (Generative Advanced Networking), VAE (Variational Autoencoder), and SOM (Self-Organizing Map)
  • reinforcement learning may be used.
  • reinforcement learning for example, prediction processing on a simulator may be used.
  • the approximation function was generated by approximating with the linear equation shown in Equation 5.
  • the approximation method is not limited to such an example, and the approximation may be performed by another method.
  • FIG. 28 is a conceptual diagram regarding an example of using the bypass function.
  • H (x) represents an approximate function based on the linear equation represented by Equation 5 and the like
  • J (x) represents a bypass function, forming an approximate function as a whole.
  • the bypass function J (x) is arranged in parallel so as to bypass the approximate function H (x) according to the linear equation.
  • the backpropagation method can be applied to any of the functions.
  • FIG. 29 is a conceptual diagram of the bypass function J (x).
  • the bypass function J (x) compresses the data by a pooling layer having a smaller number of nodes (for example, about half the number of nodes in the input-side intermediate layer). After that, the node output in the pooling layer is provided to the output-side intermediate layer. At this time, zero (0) is provided for the node in which there is no connection from the pooling layer to the output-side intermediate layer (zero padding).
  • the number of nodes in the pooling layer is 16 which is half of the number of nodes n_x in the input side intermediate layer.
  • the pooling method an average pooling or the like that takes an average with the adjacent node values can be used.
  • the 16 outputs from the pooling layer are provided to the output-side intermediate layer.
  • zero (0) is provided for the four output-side mesosphere nodes that do not correspond to the pooling layer nodes.
  • the pooling layer is used in this modification, it is not always necessary to use the pooling layer, and for example, a detour that allows data to pass through may be formed as it is.
  • FIG. 30 is a conceptual diagram of approximation using the sum of sub-approximation functions.
  • This contribution coefficient may be a fixed value, or may be varied by giving a different value each time the forward calculation or error back propagation.
  • Each sub-approximate function is an approximate function generated based on a cache table, and is an approximate function based on a linear equation used in a neural network or the above-described embodiment. All sub-approximation functions are configured so that the backpropagation method can be applied.
  • the approximation accuracy is expected to be improved by the ensemble effect with the layers before and after the approximation function, and as a result, the approximation accuracy can be maintained or improved even when the data accumulation in the cache table is insufficient. You can expect it.
  • the robot, the intermediate server, the final server, etc. are exemplified as all single devices.
  • the present invention is not limited to such a configuration. Therefore, for example, a part of the device configuration may be separately provided as an external device.
  • an external large-capacity storage storage may be installed and connected to a device such as a server.
  • the distributed processing or the like may be performed using a plurality of devices instead of a single device. Further, virtualization technology or the like may be used.
  • one client device holds one hash table, but the present invention is not limited to such a configuration. Therefore, for example, the hash table may be shared among a plurality of client devices. As a result, the cache of the prediction processing performed in each client device is accumulated as a shared one, so that the server usage cost can be reduced, the processing can be speeded up, and the client device can operate autonomously more quickly. It can be realized.
  • the hash table may be shared, for example, by using the intermediary server 8 in the system of FIG. 27, or by using a technique such as a distributed hash table, directly between the client devices without going through a server or the like. It may be done by inquiring information.
  • the parameters may be updated in batch after accumulating a certain amount of errors corresponding to a plurality of input / output pairs.
  • so-called online learning in which learning processing is performed in parallel with prediction processing may be performed.
  • a robot is exemplified as a client device.
  • the client device should be construed as including any device, with or without physical operation.
  • the client device includes all information processing devices such as smartphones, tablet terminals, personal computers, smart speakers, and wearable terminals.
  • robot motion information (sensor signal or motor signal) is used as a learning target, but the present invention is not limited to such a configuration. Therefore, for example, the learning target data includes all kinds of information such as an imaging signal, a voice signal, an image signal, a moving image signal, language information, and character information, and includes various information such as voice recognition processing, image signal processing, and natural language processing. The desired processing may be performed.
  • the client device has a configuration in which the server side performs an operation between the input side intermediate layer (X) and the output side intermediate layer (Z), but the present invention has such a configuration.
  • the client device may also perform the prediction process by partially holding a predetermined divided intermediate layer and transmitting and receiving a partial prediction result to and from the server a plurality of times.
  • parameters such as weights are updated for the portion of the learning model excluding the approximation function based on the error back-propagated by the error back-propagation method (for example, S115, S157, etc.).
  • the present invention is not limited to such a configuration. Therefore, for example, the parameter of the approximate function part may also be updated.
  • the present invention can be used in all industries that utilize machine learning technology.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Biophysics (AREA)
  • Bioethics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Information Transfer Between Computers (AREA)
  • Manipulator (AREA)

Abstract

【課題】 機械学習技術の利用者と提供者の双方の要求を満たすことができるセキュアなシステムにおける学習技術を提供すること。 【解決手段】 機械学習モデルの学習装置であって、前記機械学習モデルは、入力側変換処理部と、出力側変換処理部と、を備え、前記機械学習モデルにおける前記第1の中間出力と前記第2の中間出力との対応関係を表す中間出力対応テーブルを記憶する中間出力対応テーブル記憶部と、前記中間出力対応テーブルに基づいて、前記第1の中間出力を入力として前記第2の中間出力を生成する関数の近似関数を生成する近似関数生成部と、前記入力側変換処理部、前記近似関数、及び前記出力側変換処理部に基づいて、学習用入力データに基づく近似出力を生成する、近似出力生成部と、前記近似出力に基づいて前記出力側変換処理部と前記入力側変換処理部のパラメータを更新するパラメータ更新部と、を備える学習装置が提供される。

Description

学習装置、方法及びプログラム
 この発明は、機械学習技術を利用した学習装置、方法及びプログラム等に関する。
 近年、AI(Artificial Intelligence)、特に、機械学習技術が注目を集めており、様々な用途や課題解決への機械学習技術の適用が試みられている。例えば、製造業者や製造ラインの自動化業者等が、工場内等に設置される産業用ロボットに機械学習技術を適用し、より適切な制御を行おうとすること等が試みられている(例えば、特許文献1)。
特開2017-030014号公報
 ところで、機械学習技術は未だ普く浸透しているとは言い難い。そのため、特定の対象へと機械学習技術を適用する場合には、機械学習技術に関する専門的知見を保有する事業者等が、機械学習技術に関する知見は持たないものの特定の課題を抱える利用者へと、機械学習技術を提供する形式で行われる場合が多い。
 しかしながら、このとき、機械学習技術の提供者は、一般に、機械学習に関するコンピュータプログラム等を利用者へと提供することには慎重である。当該プログラムの意図しない転用や流出、リバースエンジニアリング等のリスクが存在するためである。
 一方、機械学習技術の利用者としては、機械学習を行うために自らの保有する様々なデータ、特に生データを機械学習技術の提供者を含む第三者へと提供することには慎重となる。それらのデータは個人情報や営業秘密等に該当する場合が多く、非常に繊細な取扱いが必要となる情報であるためである。
 すなわち、従前、機械学習技術の利用者と提供者のそれぞれの事情により、機械学習技術の利用が十分に進まない場合があった。
 本発明は、上述の技術的背景の下になされたものであり、その目的とすることころは、機械学習技術の利用者と提供者の双方の要求を満たすことができるセキュアなシステムを提供することにある。また、そのようなシステムに好適な学習技術を提供することも目的とする。
 本発明のさらに他の目的並びに作用効果については、明細書の以下の記述を参照することにより、当業者であれば容易に理解されるであろう。
 上述の技術的課題は、以下の構成を有する学習装置等により解決することができる。
 すなわち、本発明に係る学習装置は、機械学習モデルの学習装置であって、前記機械学習モデルは、前記機械学習モデルの入力段階から第1の中間段階へと至る前記機械学習モデルの一部であって、前記機械学習モデルへの入力データに基づいて変換処理を行うことにより前記機械学習モデルの前記第1の中間段階における第1の中間出力を生成する、入力側変換処理部と、前記第1の中間段階より出力側に近い第2の中間段階から出力段階へと至る前記機械学習モデルの一部であって、第2の中間段階に対する入力に基づいて変換処理を行うことにより前記機械学習モデルの出力データを生成する、出力側変換処理部と、を備え、前記機械学習モデルにおける前記第1の中間出力と前記第2の中間出力との対応関係を表す中間出力対応テーブルを記憶する中間出力対応テーブル記憶部と、前記中間出力対応テーブルに基づいて、前記第1の中間出力を入力として前記第2の中間出力を生成する関数の近似関数を生成する近似関数生成部と、前記入力側変換処理部、前記近似関数、及び前記出力側変換処理部に基づいて、学習用入力データに基づく近似出力を生成する、近似出力生成部と、前記近似出力に基づいて前記出力側変換処理部と前記入力側変換処理部のパラメータを更新するパラメータ更新部と、を備える。
 このような構成によれば、入力側変換処理部と出力側変換処理部との間が欠落した機械学習モデルにおいても、第1の中間出力と第2の中間出力との対応関係に基づいて、入力側変換処理部と出力側変換処理部のパラメータを適切に更新することができる。従って、例えば、中間出力のみを外部装置とやり取するセキュアな変換システムにおいても、適切に機械学習を行うことが可能となる。
 なお、ここで、第1の中間出力及び第2の中間出力の語は、いずれも、(予測)変換モデル各段階の単なる出力のみならず、当該出力値を暗号化するなどの所定の変換を行った値も含むものである。
 前記パラメータ更新部は、前記近似出力と、前記学習用入力データに対応する教師データとの誤差を演算する誤差演算部と、前記誤差を、前記出力側変換処理部、前記近似関数、及び前記入力側変換処理部へと逆伝播する誤差逆伝播部と、前記誤差逆伝播部にて伝播した前記誤差に基づいて、前記出力側変換処理部と前記入力側変換処理部のパラメータを更新する教師あり学習用パラメータ更新部と、を備えてもよい。
 前記学習用入力データに基づく前記第1の中間出力と、前記学習用入力データに基づく前記第2の中間出力との対応関係を学習用入出力テーブルとして記憶する、ものであってもよい。
 前記学習装置は、さらに、前記学習用入出力テーブルを外部装置へと送信するテーブル送信部を備える、ものであってもよい。
 前記外部装置において、前記学習用入出力テーブルに基づいて教師有り学習が行われる、ものであってもよい。
 前記外部装置は、前記第1の中間出力に基づいて前記学習装置へと前記第2の中間出力を提供する、ものであってもよい。
 前記中間出力対応テーブルは、前記機械学習モデルにおいて予測処理を行うことにより生成されたものであってもよい。
 前記近似関数は、誤差逆伝播法が適用可能な関数であってもよい。
 前記機械学習モデルは、階層型の人工ニューラルネットワークであってもよい。
 前記パラメータ更新部は、さらに、前記近似出力に基づいて前記近似関数のパラメータを更新する、近似関数パラメータ更新部を備えてもよい。
 前記近似関数は、バイパス関数を含むものであってもよい。
 前記近似関数は、複数の異なる近似関数の重み付き和により構成される、ものであってもよい。
 本発明は、学習方法としても観念することができる。すなわち、本発明に係る学習方法は、学習装置を用いた機械学習モデルの学習方法であって、前記機械学習モデルは、前記機械学習モデルの入力段階から第1の中間段階へと至る前記機械学習モデルの一部であって、前記機械学習モデルへの入力データに基づいて変換処理を行うことにより前記機械学習モデルの前記第1の中間段階における第1の中間出力を生成する、入力側変換処理部と、前記第1の中間段階より出力側に近い第2の中間段階から出力段階へと至る前記機械学習モデルの一部であって、第2の中間段階に対する入力に基づいて変換処理を行うことにより前記機械学習モデルの出力データを生成する、出力側変換処理部と、を備え、前記学習装置は、前記機械学習モデルにおける前記第1の中間出力と前記第2の中間出力との対応関係を表す中間出力対応テーブルを記憶する中間出力対応テーブル記憶部を備え、前記中間出力対応テーブルに基づいて、前記第1の中間出力を入力として前記第2の中間出力を生成する関数の近似関数を生成する近似関数生成ステップと、前記入力側変換処理部、前記近似関数、及び前記出力側変換処理部に基づいて、学習用入力データに基づく近似出力を生成する、近似出力生成ステップと、前記近似出力に基づいて前記出力側変換処理部と前記入力側変換処理部のパラメータを更新するパラメータ更新ステップと、を備えている。
 本発明は、学習プログラムとしても観念することができる。すなわち、本発明に係る学習プログラムは、学習装置上での機械学習モデルの学習プログラムであって、前記機械学習モデルは、前記機械学習モデルの入力段階から第1の中間段階へと至る前記機械学習モデルの一部であって、前記機械学習モデルへの入力データに基づいて変換処理を行うことにより前記機械学習モデルの前記第1の中間段階における第1の中間出力を生成する、入力側変換処理部と、前記第1の中間段階より出力側に近い第2の中間段階から出力段階へと至る前記機械学習モデルの一部であって、第2の中間段階に対する入力に基づいて変換処理を行うことにより前記機械学習モデルの出力データを生成する、出力側変換処理部と、を備え、前記学習装置は、前記機械学習モデルにおける前記第1の中間出力と前記第2の中間出力との対応関係を表す中間出力対応テーブルを記憶する中間出力対応テーブル記憶部を備え、前記中間出力対応テーブルに基づいて、前記第1の中間出力を入力として前記第2の中間出力を生成する関数の近似関数を生成する近似関数生成ステップと、前記入力側変換処理部、前記近似関数、及び前記出力側変換処理部に基づいて、学習用入力データに基づく近似出力を生成する、近似出力生成ステップと、前記近似出力に基づいて前記出力側変換処理部と前記入力側変換処理部のパラメータを更新するパラメータ更新ステップと、を備えている。
 本発明は、学習システムとしても観念することができる。すなわち、本発明に係る学習システムは、機械学習モデルの学習システムであって、前記機械学習モデルは、前記機械学習モデルの入力段階から第1の中間段階へと至る前記機械学習モデルの一部であって、前記機械学習モデルへの入力データに基づいて変換処理を行うことにより前記機械学習モデルの前記第1の中間段階における第1の中間出力を生成する、入力側変換処理部と、前記第1の中間段階より出力側に近い第2の中間段階から出力段階へと至る前記機械学習モデルの一部であって、第2の中間段階に対する入力に基づいて変換処理を行うことにより前記機械学習モデルの出力データを生成する、出力側変換処理部と、を備え、前記機械学習モデルにおける前記第1の中間出力と前記第2の中間出力との対応関係を表す中間出力対応テーブルを記憶する中間出力対応テーブル記憶部と、前記中間出力対応テーブルに基づいて、前記第1の中間出力を入力として前記第2の中間出力を生成する関数の近似関数を生成する近似関数生成部と、前記入力側変換処理部、前記近似関数、及び前記出力側変換処理部に基づいて、学習用入力データに基づく近似出力を生成する、近似出力生成部と、前記近似出力に基づいて前記出力側変換処理部と前記入力側変換処理部のパラメータを更新するパラメータ更新部と、を備えている。
 本発明によれば、機械学習技術の利用者側と提供者側の双方の要求を満たすことができるセキュアなシステムにおける学習技術を提供することができる。
図1は、システムの全体構成図(第1の実施形態)である。 図2は、サーバのハードウェア構成図である。 図3は、ロボットのハードウェア構成図である。 図4は、ロボットに関する機能ブロック図(第1の実施形態)である。 図5は、サーバに関する機能ブロック図(第1の実施形態)である。 図6は、ロボットにおける予測処理(第1の実施形態)(その1)である。 図7は、ロボットにおける予測処理(第1の実施形態)(その2)である。 図8は、サーバにおける予測処理(第1の実施形態)である。 図9は、予測処理に関する概念図(第1の実施形態)である。 図10は、システムの全体構成図(第2の実施形態)である。 図11は、中間サーバのハードウェア構成図である。 図12は、中間サーバに関する機能ブロック図(第2の実施形態)である。 図13は、中間サーバにおける予測処理(第2の実施形態)(その1)である。 図14は、中間サーバにおける予測処理(第2の実施形態)(その2)である。 図15は、最終サーバにおける予測処理(第2の実施形態)である。 図16は、予測処理に関する概念図(第2の実施形態)である。 図17は、ロボットに関する機能ブロック図(第3の実施形態)である。 図18は、中間サーバに関する機能ブロック図(第3の実施形態)である。 図19は、最終サーバに関する機能ブロック図(第3の実施形態)である。 図20は、ロボットにおける学習処理(第3の実施形態)である。 図21は、近似データに関する概念図である。 図22は、中間サーバにおける記憶処理(第3の実施形態)である。 図23は、中間サーバにおける学習処理(第3の実施形態)である。 図24は、最終サーバにおける記憶処理(第3の実施形態)である。 図25は、最終サーバにおける学習処理(第3の実施形態)である。 図26は、学習処理に関する概念図(第3の実施形態)である。 図27は、システムの全体構成図(変形例)である。 図28は、バイパス関数を利用する例に関する概念図である。 図29は、バイパス関数の概念図である。 図30は、サブ近似関数を利用した近似の概念図である。
 以下、本発明に係るシステム等の実施の一形態を、添付の図面を参照しつつ、詳細に説明する。なお、以下の実施形態においては、予測処理の語を用いることがある。当業者には明らかな通り、予測処理の語は、学習済モデルの順方向演算処理を意味し、従って、例えば、単に変換処理、推論処理等といった語と置換することができる。
 <1.第1の実施形態>
  <1.1 システムの構成>
  まず、図1~図5を参照しつつ、本実施形態におけるシステム10の構成について説明する。
 図1は、本実施形態に係るシステム10の全体構成図である。同図から明らかな通り、通信機能を有するサーバ1と、通信機能を有する複数(N個)のロボット3とが、サーバ・クライアントシステムを構成しており、それらは互いに、WAN(Wide Area Network)及びLAN(Local Area Network)を介して接続されている。なお、WANは例えばインターネットであり、LANは例えば工場内等に設置されている。
 図2は、サーバ1のハードウェア構成について示す図である。同図から明らかな通り、サーバ1は、制御部11、記憶部12、I/O部13、通信部14、表示部15、入力部16を備え、それらはシステムバス等を介して互いに接続されている。制御部11は、CPU又はGPU等のプロセッサで構成されており各種プログラムの実行処理を行う。記憶部12は、ROM、RAM、ハードディスク、フラッシュメモリ等の記憶装置であり、各種データや動作プログラム等を記憶している。I/O部13は、外部装置との入出力等を行うものである。通信部14は、例えば所定の通信規格に基づいて通信を行う通信ユニットであり、本実施形態におけるクライアント装置であるロボット3との通信を行う。表示部15は、ディスプレイ等と接続され所定の表示を行う。入力部16は、例えばキーボードやマウス等により管理者からの入力を受け付けるものである。
 図3は、ロボット3のハードウェア構成について示す図である。ロボット3は、例えば、工場内等に配置される産業用ロボットである。同図から明らかな通り、ロボット3は、制御部31、記憶部32、I/O部33、通信部34、表示部35、検知部36及び駆動部37を備え、それらはシステムバス等を介して互いに接続されている。制御部31は、CPU又はGPU等のプロセッサで構成されており各種プログラムの実行処理を行う。記憶部32は、ROM、RAM、ハードディスク、フラッシュメモリ等の記憶装置であり、各種データや動作プログラム等を記憶している。I/O部33は、外部装置との入出力等を行うものである。通信部34は、例えば所定の通信規格に基づいて通信を行う通信ユニットであり、本実施形態ではサーバ1との通信を行う。表示部35は、ディスプレイ等と接続され所定の表示を行う。検知部36は、センサと接続されセンサ情報をデジタルデータとして検出する。駆動部37は、制御部からの指令に応じて、接続される(図示しない)モータ等を駆動する。
 図4は、ロボット3の制御部31に関する機能ブロック図である。同図から明らかな通り、制御部31は、センサ情報取得部311、予測処理部312、暗号化処理部319、ハッシュ化処理部313、情報取得要否判定部314、キャッシュ情報取得処理部315、サーバ情報取得処理部316、復号化部317及び駆動指令部318を備えている。
 センサ情報取得部311は、検知部36にて取得されたセンサ情報を取得する。予測処理部312は、ニューラルネットワークを教師有り学習することにより生成された予測モデル(学習済モデル)の構成等に関する基本情報や重み情報等を読み込むと共に、入力されたデータに基づいて所定の予測出力を生成する。暗号化処理部319は、入力されたデータを公開鍵等により暗号化する処理を行う。ハッシュ化処理部313は、入力された情報をハッシュ化して対応するハッシュ値、すなわち、規則性の無い固定長の値を生成する。情報取得要否判定部314は、所定のデータに対して既にそれと対応するデータが所定のテーブル中に記憶されているか否かを判定する。キャッシュ情報取得処理部315は、情報取得要否判定部314において所定のデータに対応するデータが存在すると判断された場合にその対応するデータを取得する。サーバ情報取得処理部315は、サーバ1へと所定のデータを送信して当該データに対応するデータを受信する。復号化部317は、公開鍵等により暗号化されたデータを暗号鍵にて復号化処理する。駆動指令部318は、出力データに基づいてモータ等を駆動する。
 図5は、サーバ1の制御部11に関する機能ブロック図である。同図から明らかな通り、制御部11は、データ入力受付部111、復号化処理部112、予測処理部113、暗号化処理部114及びデータ送信部115を備えている。
 データ入力受付部111は、ロボット3から送信されるデータ入力を受け付ける。復号化処理部112は、公開鍵等により暗号化されたデータを暗号鍵等により復号化する。予測処理部113は、ニューラルネットワークを教師有り学習することにより生成された予測モデル(学習済モデル)の構成等の基本情報や重み情報等を読み込むと共に、入力されたデータに基づいて所定の予測出力を生成する。暗号化処理部114は、入力されるデータを公開鍵等により暗号化する。データ送信部は、送信対象データをロボット3へと送信する処理を行う。
 <1.2 システムの動作>
  次に、図6~図9を参照しつつ、システム10の動作について説明する。
 図6及び図7を参照しつつ、本実施形態におけるロボット3の予測処理動作について説明する。本実施形態において、ロボット3は、取得したセンサ情報に基づいて所定の予測処理を行いモータ等の動作部を駆動するものである。
 ロボット3において、予測処理が開始すると、センサ情報取得部311を介してセンサ情報(I)を取得する処理が行われる(S1)。続いて、このセンサ情報(I)を予測処理部312へと入力して入力段階から第1の中間層まで予測処理を行い入力側中間層データ(X1)を生成する(S3)。
 生成された入力側中間層データ(X1)は、暗号化処理部319において公開鍵により暗号化され暗号化入力側中間層データ(X1')が生成される(S5)。暗号化入力側中間層データ(X1')は、その後、ハッシュ化処理部313によりハッシュ化され、ハッシュ値(Y1)が生成される(S7)。
 続いて、情報取得要否判定処理部314は、ハッシュテーブルを読み出し、生成されたハッシュ値(Y1)に対応する暗号化出力側中間層データ(Z1')がハッシュテーブル中に存在するか否かを判定する(S9)。出力側中間層データ(Z1)は、後述するように、第1の中間層より出力層寄りの第2の中間層出力を表しており、暗号化出力側中間層データ(Z1')は、サーバ1において公開鍵により暗号化された第2の中間層の出力を表している。
 判定(S9)の結果、ハッシュ値(Y1)に対応する暗号化出力側中間層データ(Z1')がハッシュテーブル中に存在する場合(S11YES)、キャッシュ情報取得処理部315は、当該暗号化出力側中間層データ(Z1')をキャッシュ情報として取得する処理を行う(S13)。
 一方、判定の結果、ハッシュ値(Y1)に対応する暗号化出力側中間層データ(Z1')がハッシュテーブル中に存在しない場合(S11NO)、サーバ情報取得処理部316は、暗号化入力側中間層データ(X1')をサーバ1へと送信し(S15)、その後所定の待機状態(S17NO)へと移行する。この待機状態において、サーバ1より暗号化出力側中間層データ(Z1')を受信すると、待機状態が解除され(S17YES)、受信した暗号化出力側中間層データ(Z1')を前記ハッシュ値(Y1)と対応付けて保存する処理が行われる(S19)。なお、この間のサーバ1の動作は図8において詳述する。
 復号化部317は、取得した暗号化出力側中間層データ(Z1')を秘密鍵により復号化することで出力側中間層データ(Z1)を生成する(S21)。その後、予測処理部312は、生成された出力側中間層データ(Z1)に基づいて、第2の中間層から出力層までの予測処理を行い最終出力(O)を生成する(S23)。その後、駆動指令部318は、最終出力(O)に基づいてモータ等の駆動部へと駆動指令を行う(S25)。この駆動処理が完了すると、再度、センサ情報の取得処理が行われ(S1)、以後、一連の処理(S1~S25)が繰り返される。
 次に、図8を参照しつつ、サーバ1の予測処理動作について説明する。
 サーバ1において予測処理が開始すると、サーバ1は、データ入力受付部111により所定の待機状態へと移行する(S31NO)。この状態において、ロボット3からの暗号化入力側中間層データ(X1')を受信すると待機状態が解除され(S31NO)、復号化処理部112により、受信した暗号化入力側中間層データ(X1')を秘密鍵により復号化して入力側中間層データ(X1)を生成する処理が行われる(S33)。その後、予測処理部113は、この入力側中間層データ(X1)を入力として第1の中間層から第2の中間層までの予測処理を行い、出力側中間層データ(Z1)を生成する(S35)。
 暗号化処理部114は、この出力側中間層データ(Z1)を公開鍵を用いて暗号化して、暗号化出力側中間層データ(Z1)を生成する(S37)。その後、データ送信部115は、暗号化出力側中間層データ(Z1')をロボット3へと送信する(S39)。この送信処理が終了すると、サーバ1は、再び受信待機状態(S31)へと戻り、以後、一連の処理(S31~S39)が繰り返される。
 図9は、本実施形態に係るシステム1により実現される予測処理の概念図である。同図において、上段は、ロボット3において行われる予測処理の概念図であり、下段は、サーバ1において行われる予測処理の概念図である。また、同図の左側が入力側、右側が出力側を示している。
 同図から明らかな通り、ロボット3においてセンサ情報(I)が入力されると、予測処理部312は、入力段階から第1の中間層までの間の予測処理を行い、入力側中間層データ(X1)を生成する。その後、入力側中間層データ(X1)は、暗号化を経てサーバ1へと送信され、サーバ1において復号化される。
 サーバ1において、予測処理部113は、入力側中間層データ(X1)を入力として、第1の中間層から第2の中間層までの予測処理を行い、出力側中間層データ(Z1)を生成する。その後、出力側中間層データ(Z1)は、暗号化を経てロボット3へと送信され、ロボット3において復号化される。
 ロボット3において、予測処理部312は、第2の中間層から出力層までの間の予測処理を行い、最終出力(O)を生成する。
 このような構成によれば、機械学習を用いた予測処理を行う上で、クライアント装置(ロボット3)とサーバとの間では、抽象化された中間出力のみが送受信され、生データを送受信する必要がない。従って、クライアント装置のユーザは、個人情報や営業秘密等の情報を確実に保護することができる。また、予測モデルの提供者にとっては、クライアント装置側へと予測モデルの全体を提供する必要がない。従って、アルゴリズムやそのアルゴリズムを実装したプログラムの漏洩等のリスクを低減することができる。すなわち、予測モデルの利用者側と提供者側の双方の要求を満たすことができるセキュアな予測システムを提供することができる。
 また、ハッシュテーブルへと記憶されているデータに関してはサーバへの問合せが不要となるので、サーバ利用コストを削減することができ、また、予測処理の高速化を実現することができる。また、システムを継続的に利用してハッシュテーブルへと十分な情報の蓄積を行えば、クライアント装置をほぼ自律的に動作させることも可能となる。
 さらに、クライアント装置とサーバとの間で通信される中間出力については暗号化処理がなされている。そのため、一層のデータの安全が図られている。
 加えて、上述の実施形態においては、ハッシュ化処理がなされている。これにより、データの安全性が向上すると共に、ハッシュテーブルにおける検索処理の高速化により、判定処理の高速化を実現することができる。
 <2.第2の実施形態>
  本実施形態では、システム20において、サーバが多段階に配置される。
 <2.1 システムの構成>
  図10~図12を参照しつつ、本実施形態に係るシステム20の構成について説明する。本実施形態においては、サーバ5、6が多段で構成されている。
 図10は、本実施形態に係るシステム20の全体構成図である。同図から明らかな通り、本実施形態に係るシステム20は、サーバ5とクライアント装置としての複数のロボット7(7-1~7-N)とがネットワークを介して通信により接続される点において第1の実施形態と同一である。しかしながら、本実施形態は、ロボット7と最終サーバ5との間に中間サーバ6が介在する点において第1の実施形態と相違する。この中間サーバ6は、例えば機械学習技術のベンダ(AIベンダ)等により運用される。
 図11は、ロボット7と最終サーバ5との間に介在する中間サーバ6のハードウェア構成について示す図である。同図から明らかな通り、中間サーバ6は、制御部61、記憶部62、I/O部63、通信部64、表示部65、入力部66を備え、それらはシステムバス等を介して互いに接続されている。制御部61は、CPU又はGPU等のプロセッサで構成されており各種プログラムの実行処理を行う。記憶部62は、ROM、RAM、ハードディスク、フラッシュメモリ等の記憶装置であり、各種データや動作プログラム等を記憶している。I/O部63は、外部装置との入出力等を行うものである。通信部64は、例えば所定の通信規格に基づいて通信を行う通信ユニットであり、最終サーバ5及びクライアント装置としてのロボット7との通信を行う。表示部65は、ディスプレイ等と接続され所定の表示を行う。入力部66は、例えばキーボードやマウス等により管理者からの入力を受け付けるものである。
 図12は、中間サーバ6の制御部61に関する機能ブロック図である。同図から明らかな通り、制御部61は、データ入力受付部611、復号化処理部612、予測処理部613、暗号化処理部614、ハッシュ化処理部615、情報取得要否判定部616、キャッシュ情報取得処理部617、サーバ情報取得処理部618及びデータ送信部619を備えている。
 データ入力受付部611は、ロボット3又は最終サーバ5から送信されるデータ入力を受け付ける。復号化処理部612は、公開鍵等により暗号化されたデータを暗号鍵等により復号化する。予測処理部613は、ニューラルネットワークを教師有り学習することにより生成された予測モデル(学習済モデル)の構成等の基本情報や重み情報等を読み込むと共に、入力されたデータに基づいて所定の予測出力を生成する。暗号化処理部614は、入力されるデータを公開鍵等により暗号化する。ハッシュ化処理部615は、入力された情報をハッシュ化して対応するハッシュ値、すなわち、規則性の無い固定長の値を生成する。情報取得要否判定部616は、所定のデータに対して既にそれと対応するデータが所定のテーブル中に記憶されているか否かを判定する。キャッシュ情報取得処理部617は、情報取得要否判定部616において所定のデータに対応するデータが存在すると判断された場合にその対応するデータを取得する。サーバ情報取得処理部618は、最終サーバ5へと所定のデータを送信して当該データに対応するデータを受信する。データ送信部619は、送信対象データをロボット3又は最終サーバ5へと送信する処理を行う。
 なお、最終サーバ5とロボット7のハードウェア構成は、第1の実施形態のサーバ1とロボット3の構成と略同一であるので、ここでは記載を省略する。
 <2.2 システムの動作>
  次に、図13~図16を参照しつつ、本実施形態に係るシステム20の動作について説明する。
 ロボット7の動作は、第1の実施形態と略同一である。すなわち、図6及び図7において示した通り、情報取得要否判定処理部314における判定(S9)の結果、ハッシュ値(Y1)に対応する暗号化出力側中間層データ(Z1')がハッシュテーブル中に存在しない場合(S11NO)、サーバ情報取得処理部316は、第1の暗号化入力側中間層データ(X1')を中間サーバ6へと送信し(S15)、その後所定の待機状態(S17NO)へと移行する。この待機状態において、サーバ1より第1の暗号化出力側中間層データ(Z1')を受信すると、待機状態が解除され(S17YES)、受信した第1の暗号化出力側中間層データ(Z1')を前記ハッシュ値(Y1)と対応付けて保存する処理が行われる(S19)。
 図13及び図14は、中間サーバ6の予測処理動作に関するフローチャートである。中間サーバ6は、予測処理が開始すると、データ入力受付部611により所定の待機状態に移行する(S51NO)。その後、ロボット7から第1の暗号化入力側中間層データ(X1')を受信すると(S51YES)、待機状態が解除される。その後、復号化処理部612は、受信した第1の暗号化入力側中間層データ(X1')を秘密鍵により復号化処理し、第1の入力側中間層データ(X1)を生成する(S53)。
 予測処理部613は、復号化した第1の入力側中間層データ(X1)に基づいて、第1の中間層から第3の中間層までの予測処理を行って第2の入力側中間層データ(X2)を生成する(S55)。暗号化処理部614は、第2の入力側中間層データ(X2)を公開鍵で暗号化して第2の暗号化入力側中間層データ(X2')を生成する(S57)。また、ハッシュ化処理部615は、第2の暗号化入力側中間層データ(X2')をハッシュ化処理して第2のハッシュ値(Y2)を生成する(S59)。
 その後、情報取得要否判定部616は、中間サーバ6に記憶された第2のハッシュテーブルを読み出し、生成された第2のハッシュ値(Y2)に対応する第2の暗号化出力側中間層データ(Z2')が第2のハッシュテーブル中に存在するか否かを判定する(S61)。この判定(S9)の結果、第2のハッシュ値(Y2)に対応する第2の暗号化出力側中間層データ(Z2')がハッシュテーブル中に存在する場合(S63YES)、キャッシュ情報取得処理部617は、当該第2の暗号化出力側中間層データ(Z2')をキャッシュ情報として取得する処理を行う(S65)。
 一方、判定の結果、第2のハッシュ値(Y2)に対応する第2の暗号化出力側中間層データ(Z2')が第2のハッシュテーブル中に存在しない場合(S63NO)、サーバ情報取得処理部618は、第2の暗号化入力側中間層データ(X2')をサーバ1へと送信し(S67)、その後所定の待機状態(S69NO)へと移行する。この待機状態において、最終サーバ5より第2の暗号化出力側中間層データ(Z2')を受信すると、待機状態が解除され(S69YES)、受信した第2の暗号化出力側中間層データ(Z2')を前記第2のハッシュ値(Y2)と対応付けて保存する処理が行われる(S71)。なお、この間の最終サーバ5の動作は図15において後述する。
 復号化処理部612は、取得した第2の暗号化出力側中間層データ(Z2')を秘密鍵により復号化することで第2の出力側中間層データ(Z2)を生成する(S73)。その後、予測処理部613は、生成された第2の出力側中間層データ(Z2)に基づいて、第4の中間層から第2の中間層までの予測処理を行い、第1の出力側中間層データ(Z1)を生成する(S75)。暗号化処理部614は、第1の出力側中間層データ(Z1)に暗号化処理を行い第1の暗号化出力側中間層データ(Z1')を生成する(S77)。その後、データ送信部619は、第1の暗号化出力側中間層データ(Z1')をロボット7へと送信する。この送信処理が終了すると、中間サーバ6は再び受信待機状態(S51NO)へと戻り、以後、一連の処理(S51~S79)が繰り返される。
 図15は、最終サーバ5の予測処理動作に関するフローチャートを示している。
 予測処理が開始すると、最終サーバ5は、データ入力受付部111により所定の待機状態へと移行する(S81NO)。この状態において、中間サーバ6からの第2の暗号化入力側中間層データ(X2')を受信すると待機状態が解除される(S81YES)。復号化処理部112は、受信した第2の暗号化入力側中間層データ(X2')を秘密鍵により復号化する処理を行い、第2の入力側中間層データ(X2)を生成する(S83)。その後、予測処理部113は、この第2の入力側中間層データ(X2)を入力として第3の中間層から第4の中間層までの予測処理を行い、第2の出力側中間層データ(Z2)を生成する(S85)。
 暗号化処理部114は、この第2の出力側中間層データ(Z2)を公開鍵を用いて暗号化して、第2の暗号化出力側中間層データ(Z2')を生成する(S87)。その後、データ送信部115は、第2の暗号化出力側中間層データ(Z2')を中間サーバ6へと送信する(S89)。この送信処理が終了すると、最終サーバ5は再度受信待機状態(S81)へと戻り、以後、一連の処理(S81~S89)が繰り返される。
 図16は、本実施形態に係るシステム20により実現される予測処理の概念図である。同図において、上段は、ロボット7において行われる予測処理の概念図であり、中段は、中間サーバ6において行われる予測処理の概念図であり、下段は、最終サーバ5において行われる予測処理の概念図である。また、同図において左側が入力側、右側が出力側を示している。
 同図から明らかな通り、ロボット3においてセンサ情報(I)が入力されると、予測処理部312は、入力段階から第1の中間層までの間の予測処理を行い、第1の入力側中間層データ(X1)を生成する。その後、第1の入力側中間層データ(X1)は、暗号化を経て中間サーバ6へと送信され、中間サーバ6において復号化される。
 中間サーバ6において、予測処理部613は、第1の中間層から第3の中間層までの間の予測処理を行い、第2の入力側中間層データ(X2)を生成する。その後、第2の入力側中間層データ(X2)は、暗号化を経て最終サーバ5へと送信され、最終サーバ5において復号化される。
 最終サーバ5において、予測処理部113は、第2の入力側中間層データ(X2)を入力として、第3の中間層から第4の中間層までの予測処理を行い、第2の出力側中間層データ(Z2)を生成する。その後、第2の出力側中間層データ(Z2)は、暗号化を経て中間サーバ6へと送信され、中間サーバ6において復号化される。
 中間サーバ6において、予測処理部613は、第4の中間層から第2の中間層までの間の予測処理を行い、第1の出力側中間層データ(Z1)を生成する。その後、第1の出力側中間層データ(Z1)は、暗号化を経てロボット7へと送信され、ロボット7において復号化される。
 ロボット7において、予測処理部312は、第2の中間層から出力層までの間の予測処理を行い、最終出力(O)を生成する。
 このような構成によれば、サーバが多段に設けられていることから、クライアント装置及び各サーバにおける個々の装置の処理負担を軽減することができると同時に、多段化によるスケールメリットによりクライアント装置における予測性能の向上も見込むことができる。しかも、このように多段化を行っても、各サーバはキャッシュ情報に基づいた予測処理も行うことから処理の低速化が生じにくい。なお、予測モデルが分散配置されるのでよりシステムの安全性の向上等も見込まれ、また、複数の管理者による各サーバの分担管理も可能となる。
 <3.第3の実施形態>
  本実施形態では、システム30が予測処理に加えて学習処理を行う。
 <3.1 システムの構成>
  本実施形態に係るシステム30の構成は、第2の実施形態において示したものと略同一である。尤も、ロボット7、中間サーバ6及び最終サーバ5の各制御部が、予測処理に加えて学習処理のための機能ブロックを有する点において相違する。
 図17は、ロボット7の制御部710の機能ブロック図である。
 同図において、予測処理部7101の内容は、図4において示した構成と略同一であるので詳細な説明は省略する。ただし、予測処理部7101は、さらにキャッシュテーブル追加処理部7109を備える点において異なる。キャッシュテーブル追加処理部7109は、図7において復号化処理(S21)を行って出力側中間層データ(Z1)を生成した後に、当該出力側中間層データ(Z1)を、対応する入力側中間層データ(X1)と共に、キャッシュテーブルへと追加記憶させる処理を行う。このキャッシュテーブルは後述の学習処理に用いられる。
 制御部710は、さらに、学習処理部7102を有している。学習処理部7102は、データ読出部7102、近似関数生成処理部7116、予測処理部7117、誤差逆伝播処理部7118、パラメータ更新処理部7119、暗号化処理部7120、及びデータ送信処理部7121を備えている。
 データ読出部7115は、ロボット7内に記憶されている種々のデータの読出処理を行う。近似関数生成処理部7116は、所定の入出力の対応関係に関するキャッシュテーブルに基づき、後述の手法にて近似関数を生成する。予測処理部7117は、ニューラルネットワークを教師有り学習することにより生成された予測モデル(学習済モデル)の構成等の基本情報や重み情報等を読み込むと共に、入力されたデータに基づいて所定の予測出力を生成する。
 誤差逆伝播処理部7118は、予測モデルの出力と教師データとを比較して得られた誤差をモデルの出力側から入力側へと伝播させる処理(Back Propagation)を行う。パラメータ更新処理部7119は、予測モデルの出力と教師データとの誤差を小さくするよう重み等のモデルのパラメータを更新する処理を行う。暗号化処理部7120は、所定の対象データを公開鍵等により暗号化する処理を行う。データ送信処理部7121は、所定の対象データを中間サーバ6へと送信する処理を行う。
 図18は、中間サーバ6の制御部610の機能ブロック図である。
 同図において、予測処理部6101の内容は、図12において示した構成と略同一であるので詳細な説明は省略する。ただし、予測処理部6101は、さらにキャッシュテーブル追加処理部6112を備える点において異なる。キャッシュテーブル追加処理部6112は、図14において復号化処理(S75)を行って第2の出力側中間層データ(Z2)を生成した後に、当該第2の出力側中間層データ(Z2)を、対応する第2の入力側中間層データ(X2)と共に、キャッシュテーブルへと追加記憶させる処理を行う。このキャッシュテーブルは後述の学習処理に用いられる。
 制御部610は、さらに、学習処理部6102を有している。学習処理部6102は、データ入力受付部6123、データ読出部6115、サンプリング処理部6116、近似関数生成処理部6117、予測処理部6118、誤差逆伝播処理部6119、パラメータ更新処理部6120、暗号化処理部6121、及びデータ送信処理部6122を備えている。
 データ入力受付部6123は、ロボット7から受信する第1のキャッシュテーブル等の種々のデータを受信して復号化し記憶する処理を行う。データ読出部6115は、中間サーバ6内に記憶されている種々のデータの読出処理を行う。サンプリング処理部6116は、キャッシュテーブルから学習対象となるデータセットを選択する処理を行う。近似関数生成処理部6117は、所定の入出力の対応関係に関するキャッシュテーブルに基づき、後述の手法にて、近似関数を生成する。予測処理部6118は、ニューラルネットワークを教師有り学習することにより生成された予測モデル(学習済モデル)の構成等の基本情報や重み情報等を読み込むと共に、入力されたデータに基づいて所定の予測出力を生成する。
 誤差逆伝播処理部6119は、予測モデルの出力と教師データとを比較して得られた誤差をモデルの出力側から入力側へと伝播させる処理(Back Propagation)を行う。パラメータ更新処理部6120は、予測モデルの出力と教師データとの誤差を小さくするよう重み等のモデルのパラメータを更新する処理を行う。暗号化処理部6121は、所定の対象データを公開鍵等により暗号化する処理を行う。データ送信処理部6122は、所定の対象データをロボット7又は最終サーバ5へと送信する処理を行う。
 図19は、最終サーバ5の制御部510の機能ブロック図である。
 同図において、予測処理部5101の内容は、図5において示した構成と略同一であるので詳細な説明は省略する。
 制御部510は、さらに、学習処理部5102を有している。学習処理部5102は、データ入力受付部5115、データ読出部5110、サンプリング処理部5111、予測処理部5112、誤差逆伝播処理部5113、及びパラメータ更新処理部5114を備えている。
 データ入力受付部5115は、中間サーバ6から受信する第2のキャッシュテーブル等の種々のデータを受信して復号化し記憶する処理を行う。データ読出部5110は、最終サーバ5内に記憶されている種々のデータの読出処理を行う。サンプリング処理部5111は、第2のキャッシュテーブルから学習対象となるデータセットを選択する処理を行う。予測処理部5112は、ニューラルネットワークを教師有り学習することにより生成された予測モデル(学習済モデル)の構成等の基本情報や重み情報等を読み込むと共に、入力されたデータに基づいて所定の予測出力を生成する。
 誤差逆伝播処理部5113は、予測モデルの出力と教師データとを比較して得られた誤差をモデルの出力側から入力側へと伝播させる処理(Back Propagation)を行う。パラメータ更新処理部5114は、予測モデルの出力と教師データとの誤差を小さくするよう重み等のモデルのパラメータを更新する処理を行う。
 <3.2 システムの動作>
  続いて、図20~図26を参照しつつ、システム30の動作について説明する。なお、予測処理動作については第2の実施形態と略同一であるのでここでは説明を省略する。
 図20は、ロボット7における学習処理動作のフローチャートである。同図から明らかな通り、学習処理動作が開始すると、データ読出部7115は、ロボット7内に記憶され教師データに相当する入出力データテーブルから一対の入出力対(X0、Z0)を読み出す(S101)。この読み出しを行うと、予測処理部7117は、入力データX0に基づいて、予測モデルの入力層から第1の中間層へと至る区間において予測処理を行ない入力側中間層データ(X1-s1)を生成する(S103)。
 一方、これら(S101~S103)と並行して、データ読出部7115は、予測処理時にロボット7へと蓄積された第1の入力側中間層データ(X1)と第1の出力側中間層データ(Z1)との対応関係を含む第1のキャッシュテーブルを読み出す処理を行う(S105)。第1のキャッシュテーブルを読み出した後、この第1のキャッシュテーブルに基づいて、近似関数を生成する処理が行われる(S107)。
 ここで、近似関数の生成処理について詳細に説明する。第1の入力側中間層(説明の便宜上、仮にX層とする)のデータ(X1)を入力として、第1の出力側中間層(説明の便宜上、仮にZ層とする)のデータ(Z1)を生成するデータ変換(キャッシュ変換)は、以下のように表すことができる。
Figure JPOXMLDOC01-appb-M000001
 ここで、n個のニューロンから成るX層のデータを表すベクトルは以下のように表すことができる。
Figure JPOXMLDOC01-appb-M000002
 同様に、N個のニューロンから成るZ層のデータを表すベクトルは以下のように表すことができる。
Figure JPOXMLDOC01-appb-M000003
 また、Z層のk番目の値zkは数式(1)より、他のN-1個の値と独立して計算が可能であるから、以下の通り表すことができる。
Figure JPOXMLDOC01-appb-M000004
 このとき、変換関数Skは、キャッシュ変換の性質により、X層のデータベクトルの各成分値の組み合わせが第1のキャッシュテーブル内に存在しなければ、対応するZ層のk番目の値へと変換することができない。そのため、次のような1次方程式である数式(5)により近似する。
Figure JPOXMLDOC01-appb-M000005
 なお、数式(5)の変数は、下記のn+1個である。
Figure JPOXMLDOC01-appb-M000006
 従って、数式(5)の解を求めるためには、数式(4)からn+1個のデータを抽出して、以下のn+1元1次連立方程式を解けばよいこととなる。
Figure JPOXMLDOC01-appb-M000007
 なお、このn+1個のデータを抽出する際には、近似値を得たい点の近傍のキャッシュデータを選出することが好ましい。近似値を得たい点の近傍のキャッシュデータを可能な限り抽出することで、近似誤差の変動を抑制することができるためである。このようなキャッシュデータの抽出に関する概念図が図21に示されている。
 ここで、以下の通り、定義することができる。
Figure JPOXMLDOC01-appb-M000008
 そうすると、数式(7)は、下記の通り簡潔に表現することができる。
Figure JPOXMLDOC01-appb-M000009
 n+1次の正方行列であるAが正則行列であれば、数式(9)は一意に以下の解vkをもつ。
Figure JPOXMLDOC01-appb-M000010
 すなわち、数式(9)をガウスの消去法等のアルゴリズムに則り、コンピュータで演算することで、数式(10)の解vkを得ることができる。この解vkを代入することで、数式(5)は以下のように表すことができる。
Figure JPOXMLDOC01-appb-M000011
 すなわち、この数式(11)が近似式となる。なお、同数式から明らかな通り、X層のデータベクトルの各成分について近似的に偏微分が可能であるので、例えば、Z層からX層への誤差逆伝播等も容易に行うことができる。すなわち、キャッシュテーブルが対応する学習モデル部分の前後、すなわち、例えば入力側・出力側の各機械学習モデルが多階層ニューラルネットワークモデルであっても、誤差逆伝播法を用いて高速に学習処理を行うことができる。
 図20のフローチャートに戻り、第1の入力側中間層データ(X1-s1)の生成処理(S103)と近似関数の生成処理(S107)が完了すると、予測処理部7117により、第1の入力側中間層データ(X1)と近似関数に基づいて、第1の中間層から第2の中間層へと至る区間の予測処理が行われ出力側中間層データ(Z1-s1)が生成される(S109)。また、その後、予測処理部7117は、出力側中間層データ(Z1-s1)を入力として、第2の中間層から出力層へと至る区間の予測処理を行い、最終出力(Z0-s1)を生成する(S111)。
 誤差逆伝播処理部6119は、教師データに係る教師出力(Z0)と最終出力(Z0-s1)との誤差を生成し、当該誤差又はそれに基づく所定の値(例えば、二乗平均誤差等)を、例えば、最急降下法等の手法により出力側から入力側へと伝播する(S113)。
 その後、パラメータ更新処理部7119は、逆伝播された誤差等に基づいて、学習モデルのうち、近似関数部分を除く、入力層から第1の中間層へと至る区間と、第2の中間層から出力層へと至る区間の重み等のパラメータを更新する処理を行う(S115)。
 その後、ロボット7は、第1のキャッシュテーブルを送信することが許可されているか否かを所定の設定情報から確認する(S117)。その結果、送信許可がない場合には、学習終了判定(S121)を行い、終了しない場合(S121NO)には、再度すべての処理(S101~S121)を繰り返す。一方、終了する場合(S121YES)には、学習処理は終了する。
 一方、キャッシュテーブルの送信許可がある場合(S117YES)には、データ送信処理部7121は、暗号化処理部7120による暗号化を施した第1のキャッシュテーブルを中間サーバ6へと送信する処理を行う(S119)。なお、その後、学習終了判定(S121)が行われる。
 次に、中間サーバ6の学習処理動作について説明する。
 図22は、ロボット7から送信される第1のキャッシュテーブルの受信及び記憶処理に関するフローチャートである。同図から明らかな通り、中間サーバ6において学習処理が開始すると、データ入力受付部6123は、データ受信待機状態へと移行する(S131)。この状態において、暗号化された第1のキャッシュテーブルに相当するデータを受信すると(S131YES)、データ受信待機状態は解除され、受信した第1のキャッシュデータを秘密鍵等により復号化し(S133)、記憶部へと記憶する処理(S135)が行われる。この記憶処理が終了すると、再び中間サーバ6は受信待機状態(S131NO)へと移行する。
 図23は、図22に示した第1のキャッシュテーブルの受信処理と平行して実行される、中間サーバ6における学習処理動作に関するフローチャートである。同図から明らかな通り、学習処理が開始すると、データ読出部6115は、中間サーバ6内に記憶され教師データに相当する入出力データテーブルから入出力対(X1-s1、Z1-s1)を読み出す(S141)。入出力対が読み出されると、サンプリング処理部6116は、学習に使用する入出力対を抽出する(S143)。この抽出処理の後、予測処理部6118は、入力データ(X1-s1)に基づいて、予測モデルの第1の中間層から第3の中間層へと至る区間において予測処理を行なって、第2の入力側中間層データ(X2-s2)を生成する(S145)。
 一方、これら(S141~S145)と並行して、データ読出部6115は、予測処理時に中間サーバ6へと蓄積された第2の入力側中間層データ(X2)と第1の出力側中間層データ(Z2)との対応関係を含む第2のキャッシュテーブル(X2、Z2)を読み出す処理を行う(S147)。第2のキャッシュテーブルを読み出した後、この第2のキャッシュテーブルに基づいて、第2の入力側中間層データ(X2)に基づいて第2の出力側中間層データ(Z2)を生成するような近似関数を生成する処理が行われる(S149)。なお、近似関数の生成処理はロボット7における近似関数生成と同様である。
 第2の入力側中間層データ(X2-s2)の生成処理(S145)と近似関数の生成処理(S149)が完了すると、予測処理部6118により、第2の入力側中間層データ(X2-s2)と近似関数に基づいて、第3の中間層から第4の中間層へと至る区間の予測処理が行われ第2の出力側中間層データ(Z2-s2)が生成される(S151)。また、その後、予測処理部6118は、第2の出力側中間層データ(Z2-s2)を入力として、第4の中間層から第2の中間層へと至る区間の予測処理を行い、第2の出力側予測出力(Z1-s2)を生成する(S153)。
 誤差逆伝播処理部6119は、教師データ(Z1-s1)と第2の出力側予測出力(Z1-s2)との誤差を生成し、当該誤差又はそれに基づく所定の値(例えば、二乗平均誤差等)を、例えば、最急降下法等の手法により出力側から入力側へと伝播する(S155)。
 その後、パラメータ更新処理部6120は、逆伝播された誤差等に基づいて、学習モデルのうち、近似関数部分を除く、第1の中間層から第3の中間層へと至る区間と、第4の中間層から第2の中間層へと至る区間の重み等のパラメータを更新する処理を行う(S157)。
 その後、中間サーバ6は、第2のキャッシュテーブル(X2-s2、Z2-s2)を送信することが許可されているか否かを所定の設定情報から確認する(S159)。その結果、送信許可がない場合には、学習終了判定(S163)を行い、終了しない場合(S163NO)には、再度すべての処理(S141~S163)を繰り返す。一方、終了する場合(S163YES)には、学習処理は終了する。
 一方、キャッシュテーブルの送信許可がある場合(S159YES)には、データ送信処理部6122は、暗号化処理部6121による暗号化を施した第2のキャッシュテーブルを最終サーバ5へと送信する処理を行う(S161)。なお、その後、学習終了判定(S163)が行われる。
 次に、最終サーバ5の学習処理動作について説明する。
 図24は、中間サーバ6から送信される第2のキャッシュテーブル(X2-s2、Z2-s2)の受信及び記憶処理に関するフローチャートである。同図から明らかな通り、最終サーバ5において学習処理が開始すると、データ入力受付部5115は、データ受信待機状態へと移行する(S171)。この状態において、暗号化された第2のキャッシュテーブルに相当するデータを受信すると(S171YES)、データ受信待機状態は解除され、受信した第2のキャッシュデータを秘密鍵等により復号化し(S173)、記憶部へと記憶する処理(S175)が行われる。この記憶処理が終了すると、再び最終サーバ5は受信待機状態(S171NO)へと移行する。
 図25は、図24に示した第2のキャッシュテーブルの受信処理と平行して実行される、最終サーバ5における学習処理動作に関するフローチャートである。学習処理が開始すると、データ読出部5110は、キャッシュテーブルを読み出す処理を行う(S181)。その後、サンプリング処理部(S5111)は、キャッシュテーブルから学習対象となる入出力対を抽出する(S183)。
 予測処理部5112は、読み出された第2の入力側中間層データ(X2-s2)に基づき、第3の中間層から第4の中間層までの予測処理を行い、第2の出力側中間層データ(Z2-s3)を生成する(S185)。誤差逆伝播処理部5113は、第2の出力側中間層データ(Z2-s3)と教師データ(Z2-s2)との誤差を生成し、当該誤差又はそれに基づく所定の値(例えば、二乗平均誤差等)を、例えば、最急降下法等の手法により出力側から入力側へと伝播する(S187)。
 その後、パラメータ更新処理部5114は、逆伝播された誤差等に基づいて、学習モデルの重み等のパラメータを更新する処理を行う(S189)。パラメータの更新処理が行われると、学習の終了判定が行われ、所定の終了条件が満たされていない場合(S191NO)には、再度一連の処理(S181~S189)が行われる。一方、所定の終了条件が満たされた場合(S191YES)には、学習処理は終了する。
 図26は、本実施形態に係るシステム30により実現される学習処理の概念図である。同図において、上段は、ロボット7において行われる学習処理の概念図であり、中段は、中間サーバ6において行われる学習処理の概念図であり、下段は、最終サーバ5において行われる学習処理の概念図である。また、同図において左側が入力側、右側が出力側を示している。
 同図から明らかな通り、ロボット7において入力情報(X0)が入力されると、予測処理部7117は、入力段階から第1の中間層までの間の予測処理を行い、第1の入力側中間層データ(X1-s1)を生成する。一方、近似関数生成処理部7116により、第1のキャッシュテーブル(X1、Z1)に基づいて近似関数(F(x))が生成される。予測処理部7117は、第1の入力側中間層データ(X1-s1)と近似関数(F(x))に基づいて、第1の出力側中間層データ(Z1-s1)を生成する。また、第1の出力側中間層データ(Z1-s1)に基づいて最終出力データ(Z0-s1)が生成される。誤差逆伝播処理部7118は、この最終出力データ(Z0-s1)と教師データ(Z0)との間の誤差を最終出力段階から近似関数を経て入力段階まで逆伝播させる。その後、パラメータ更新処理部7119は、最終出力段階から第2の中間層、第1の中間層から入力段階までの間の重みを含むパラメータが更新される。また、このとき生成された第1のキャッシュテーブル(X1-s1、Z1-s1)は、所定条件下で中間サーバ6へと提供される。
 また、同図から明らかな通り、中間サーバ6において第1の入力側中間層データ(X1-s1)が入力されると、予測処理部6118は、第1の中間層から第3の中間層までの間の予測処理を行い、第2の入力側中間層データ(X2-s2)を生成する。一方、近似関数生成処理部6117により、第1のキャッシュテーブル(X1-s1、Z1-s1)に基づいて近似関数(G(x))が生成される。予測処理部6118は、第2の入力側中間層データ(X2-s2)と近似関数(G(x))に基づいて、第2の出力側中間層データ(Z2-s2)を生成する。また、第2の出力側中間層データ(Z2-s2)に基づいて第1の出力側中間層データ(Z1-s2)が生成される。誤差逆伝播処理部6119は、この最終出力データ(Z1-s2)と教師データ(Z1-s1)との間の誤差を第2の中間層から近似関数を経て第1の中間層まで逆伝播させる。その後、パラメータ更新処理部6120は、第2の中間層から第4の中間層、第3の中間層から第1の中間層までの間の重みを含むパラメータを更新する。また、このとき生成された第2のキャッシュテーブル(X2-s2、Z2-s2)は、所定条件下で最終サーバ5へと提供される。
 さらに、同図から明らかな通り、最終サーバ5において第2の入力側中間層データ(X2-s2)が入力されると、予測処理部5112は、第3の中間層から第4の中間層までの間の予測処理を行い、第2の出力側中間層データ(Z2-s3)を生成する。誤差逆伝播処理部5113は、この第2の出力側中間層データ(Z2-s3)と教師データ(Z2-s2)との間の誤差を第4の中間層から第3の中間層まで逆伝播させる。その後、パラメータ更新処理部5114は、第4の中間層から第4の中間層までの間の重みを含むパラメータが更新される。
 <4.変形例>
  本発明は上述の実施形態の構成・動作に限定されるものではなく、様々に変形することが可能である。
 第3の実施形態において、キャッシュテーブルから生成される近似関数は学習処理の際のみ使用されるものとして記載した。しかしながら、本発明はこのような構成に限定されない。例えば、予測処理の目的で、それまでに得られているキャッシュテーブルに基づいて近似関数を生成し、第1の入力側中間層データ(X1)と近似関数とに基づいて、第1の中間層から第2の中間層へと至る区間の予測処理を行い出力側中間層データ(Z1)を生成してもよい。このような構成によれば、例えば一定程度ハッシュテーブルへとデータが蓄積された後においては、サーバ側への問合せ頻度を大幅に減らすか又は問い合わせを行うことなく予測処理を行うことが可能となる。
 上述の実施形態においては、入力側中間層データ(X)(例えばX1又はX2)を暗号化、ハッシュ化した後に、当該ハッシュ値をキーとしてハッシュテーブル検索処理を行っている(例えば、図6のS11、図13のS55など)。しかしながら、本発明はこのような構成に限定されない。従って、例えば、入力側中間層データ(X)について丸め処理を行った後に暗号化及び/又はハッシュ化し、ハッシュテーブル検索してもよい。丸め処理とは、入力側中間層データ(X)が属する集合をUとしたときに、集合Uに属する特定の入力側中間層データにつき同じ値(X_u))(代表値)を持つものとみなす処理である。例えば、入力側中間層データ(X)の一部のノード値(ニューロン発火値)につき、数値の切り上げ又は切り下げ処理等を行って整数値に離散化させ複数の整数値の集合を形成してもよい。このような構成によれば、過去に得られたハッシュ値との一致性を向上させ、処理の高速化等を実現することができる。
 上述の実施形態においては、クライアント装置としてのロボット7は中間サーバ6又はサーバ1との間で直接通信する構成とした。しかしながら、このような構成に限定されない。図27は、変形例に係るシステム40の全体構成図である。同構成においてはシステム40は、予測処理を行うサーバ2と、サーバ2とWANを介して接続され、かつ、LANに接続された仲介サーバ8と、LANに接続されたクライアント装置としてのロボット9とから構成されている。本変形例においては、サーバ2とクライアント装置9との間の情報のやり取りは仲介サーバ8を介して行われることとなる。
 上述の実施形態では、機械学習アルゴリズムとして、ニューラルネットワーク(又はディープラーニング)を用いた教師あり学習を例示した。しかしながら、本発明はそのような構成に限定されない。従って、例えば、他の分割可能であって、同様な形式で中間値を取り扱うことが可能な機械学習アルゴリズムを利用してもよい。また、教師あり学習のみならず、例えば、GAN(Generative Adversarial Networks)やVAE(Variational Auto Encoder)、SOM(Self-Organizing Map)等の教師なし学習や、強化学習を利用してもよい。なお、強化学習を行う場合には、例えば、シミュレータ上での予測処理等を利用してもよい。
 上述の実施形態における学習処理においては、近似関数を式5において示した1次方程式により近似することで生成した。しかしながら、近似手法はこのような例に限定されず、他の手法により近似を行ってもよい。
 例えば、近似関数としてバイパス関数を利用してもよい。図28は、バイパス関数を利用する例に関する概念図である。同図において、H(x)は、式5等で示された1次方程式による近似関数を表し、J(x)は、バイパス関数を表し、全体として近似関数を形成している。同図から明らかな通り、バイパス関数であるJ(x)は、1次方程式による近似関数H(x)を迂回(バイパス)するように並列的に配置されている。なお、いずれの関数も誤差逆伝播法を適用可能である。
 図29は、バイパス関数J(x)の概念図である。同図の例にあっては、入力側中間層のノード数の方が出力側中間層のノード数より大きい場合が示されている。入力側中間層からデータが入力されると、バイパス関数J(x)は、より少ないノード数(例えば、入力側中間層のノード数の半分程度)のプーリング層によりデータ圧縮を行う。その後、プーリング層におけるノード出力は、出力側中間層へと提供される。このとき、プーリング層から出力側中間層への結合が存在しないノードに対してはゼロ(0)が提供される(ゼロパディング)。
 例えば、入力側中間層のノード数n_xが32個、出力側中間層のノード数n_zが20個の場合、プーリング層のノード数は入力側中間層のノード数n_xの半分の16個となる。このとき、プーリング手法としては、隣り合うノード値との平均を採る平均プーリング等を利用することができる。その後、プーリング層からの16個の出力は出力側中間層へと提供される。このとき、プーリング層のノードと対応付かない4個の出力側中間層のノードに対しては、ゼロ(0)が提供される。なお、本変形例ではプーリング層を利用しているが、必ずしもプーリング層を利用する必要はなく、例えば、そのままデータを素通りさせる迂回路を形成してもよい。
 このような構成によれば、キャッシュテーブルに基づいて生成される近似関数を迂回することで誤差逆伝播が促進され、その結果、学習の効率化を行うことができる。
 また、例えば、近似関数として、複数のサブ近似関数の和を用いてもよい。図30は、サブ近似関数の和を利用した近似の概念図である。同図から明らかな通り、近似関数の出力は、複数の異なる近似関数K_1(x)、K_2(x)、K_3(x)、・・・K_n(x)(以下、便宜上、これらの関数をサブ近似関数と呼ぶ)にそれぞれ寄与係数a_1、a_2、a_3、・・・a_nを掛け合わせた値の総和(重み付き和)となる。なお、このとき、寄与係数a_i(i=1、2、・・・n)はそれぞれ0以上1以下の値をとり、a_iの総和は1、すなわち、a_1+a_2+・・・+a_n=1となる。この寄与係数は固定値であってもよいし、順方向演算や誤差逆伝播の度に異なる値を与える等変動させてもよい。各サブ近似関数は、キャッシュテーブルに基づいて生成される近似関数であり、ニューラルネットワークや上述の実施形態において利用した1次方程式による近似関数等である。なお、いずれのサブ近似関数も誤差逆伝播法を適用可能に構成されている。
 このような構成によれば、近似関数前後の階層とのアンサンブル効果により近似精度の向上が見込まれ、その結果、キャッシュテーブルにおけるデータ蓄積が不十分な場合であっても近似精度の維持又は向上を見込むことができる。
 上述の実施形態においては、ロボット、中間サーバ、最終サーバ等はすべての単一の装置として例示した。しかしながら、本発明はそのような構成に限定されない。従って、例えば、装置構成の一部を外部装置として別に設けてもよい。例えば、外部の大容量記憶ストレージを設置しサーバ等の装置と接続してもよい。また、単一の装置でなく、複数の装置を用いて分散処理等を行ってもよい。さらに、仮想化技術等を用いてもよい。
 上述の実施形態においては、一つのクライアント装置が1つのハッシュテーブルを保持するものとしたが、本発明はこのような構成に限定されない。従って、例えば、複数のクライアント装置間でハッシュテーブルを共有してもよい。これにより、各クライアント装置においてそれぞれ行われた予測処理のキャッシュが共有のものとして蓄積されていくので、より迅速に、サーバ利用コストの低減、処理の高速化、クライアント装置の自律的な動作などを実現することができる。なお、ハッシュテーブルの共有は、例えば、図27のシステムにおける仲介サーバ8を用いて行われてもよいし、分散ハッシュテーブル等の技術を用いてサーバ等を介さずに直接各クライアント装置間で互いに情報の照会をすることにより行われてもよい。
 上述の実施形態においては学習処理を逐次的に行う例を示したが、このような構成に限定されない。従って、例えば、複数の入出力対に対応する誤差を一定程度蓄積させた後にバッチ的にパラメータ更新を行うような構成としてもよい。また、予測処理と平行して学習処理を行うような所謂オンライン学習を行ってもよい。
 上述の実施形態においては、クライアント装置としてロボットを例示した。しかしながら、本発明はこのような構成に限定されない。クライアント装置は、物理的動作を伴うかを問わず、あらゆる装置を含むものとして解釈されるべきである。例えば、クライアント装置には、スマートフォン、タブレット端末、パーソナルコンピュータ、スマートスピーカ、ウェアラブル端末などあらゆる情報処理装置を含むことに留意されたい。
 上述の実施形態においては、ロボットの動作情報(センサ信号やモータ信号)を学習対象としたが本発明はこのような構成に限定されない。従って、例えば、学習対象データは、撮像信号、音声信号、画像信号、動画像信号、言語情報、文字情報などあらゆる情報を含み、例えば、音声認識処理、画像信号処理、自然言語処理等など様々な目的の処理を行ってもよい。
 上述の実施形態においては、クライアント装置は、入力側中間層(X)と出力側中間層(Z)との間の演算をサーバ側に演算させる構成としているものの、本発明はこのような構成に限定されない。従って、例えば、クライアント装置も所定の分割された中間層を一部保持し、複数回、サーバと部分的な予測結果の送受信を行うことで予測処理を行ってもよい。
 上述の実施形態においては、誤差逆伝播法により逆伝播された誤差に基づいて学習モデルのうち近似関数を除いた部分について重み等のパラメータ更新処理を行った(例えば、S115、S157など)。しかしながら、本発明はこのような構成に限定されない。従って、例えば、近似関数部分のパラメータについても更新処理を行ってもよい。
 本発明は、機械学習技術を利用するすべての産業において利用可能である。
1  サーバ
3  ロボット
5  最終サーバ
6  中間サーバ
7  ロボット
8  仲介サーバ
10  システム

Claims (15)

  1.  機械学習モデルの学習装置であって、
     前記機械学習モデルは、
      前記機械学習モデルの入力段階から第1の中間段階へと至る前記機械学習モデルの一部であって、前記機械学習モデルへの入力データに基づいて変換処理を行うことにより前記機械学習モデルの前記第1の中間段階における第1の中間出力を生成する、入力側変換処理部と、
      前記第1の中間段階より出力側に近い第2の中間段階から出力段階へと至る前記機械学習モデルの一部であって、第2の中間段階に対する入力に基づいて変換処理を行うことにより前記機械学習モデルの出力データを生成する、出力側変換処理部と、を備え、
     前記機械学習モデルにおける前記第1の中間出力と前記第2の中間出力との対応関係を表す中間出力対応テーブルを記憶する中間出力対応テーブル記憶部と、
     前記中間出力対応テーブルに基づいて、前記第1の中間出力を入力として前記第2の中間出力を生成する関数の近似関数を生成する近似関数生成部と、
     前記入力側変換処理部、前記近似関数、及び前記出力側変換処理部に基づいて、学習用入力データに基づく近似出力を生成する、近似出力生成部と、
     前記近似出力に基づいて前記出力側変換処理部と前記入力側変換処理部のパラメータを更新するパラメータ更新部と、を備える学習装置。
  2.  前記パラメータ更新部は、
     前記近似出力と、前記学習用入力データに対応する教師データとの誤差を演算する誤差演算部と、
     前記誤差を、前記出力側変換処理部、前記近似関数、及び前記入力側変換処理部へと逆伝播する誤差逆伝播部と、
     前記誤差逆伝播部にて伝播した前記誤差に基づいて、前記出力側変換処理部と前記入力側変換処理部のパラメータを更新する教師あり学習用パラメータ更新部と、を備える請求項1に記載の学習装置。
  3.  前記学習用入力データに基づく前記第1の中間出力と、前記学習用入力データに基づく前記第2の中間出力との対応関係を学習用入出力テーブルとして記憶する、請求項2に記載の学習装置。
  4.  前記学習装置は、さらに、
     前記学習用入出力テーブルを外部装置へと送信するテーブル送信部を備える、請求項3に記載の学習装置。
  5.  前記外部装置において、前記学習用入出力テーブルに基づいて教師有り学習が行われる、請求項4に記載の学習装置。
  6.  前記外部装置は、前記第1の中間出力に基づいて前記学習装置へと前記第2の中間出力を提供する、請求項4に記載の学習装置。
  7.  前記中間出力対応テーブルは、前記機械学習モデルにおいて予測処理を行うことにより生成されたものである、請求項1に記載の学習装置。
  8.  前記近似関数は、誤差逆伝播法が適用可能な関数である、請求項1に記載の学習装置。
  9.  前記機械学習モデルは、階層型の人工ニューラルネットワークである、請求項1に記載の学習装置。
  10.  前記パラメータ更新部は、さらに、
     前記近似出力に基づいて前記近似関数のパラメータを更新する、近似関数パラメータ更新部を備える、請求項1に記載の学習装置。
  11.  前記近似関数は、バイパス関数を含むものである、請求項1に記載の変換システム。
  12.  前記近似関数は、複数の異なる近似関数の重み付き和により構成される、請求項1に記載の変換システム。
  13.  学習装置を用いた機械学習モデルの学習方法であって、
     前記機械学習モデルは、
      前記機械学習モデルの入力段階から第1の中間段階へと至る前記機械学習モデルの一部であって、前記機械学習モデルへの入力データに基づいて変換処理を行うことにより前記機械学習モデルの前記第1の中間段階における第1の中間出力を生成する、入力側変換処理部と、
      前記第1の中間段階より出力側に近い第2の中間段階から出力段階へと至る前記機械学習モデルの一部であって、第2の中間段階に対する入力に基づいて変換処理を行うことにより前記機械学習モデルの出力データを生成する、出力側変換処理部と、を備え、
     前記学習装置は、
     前記機械学習モデルにおける前記第1の中間出力と前記第2の中間出力との対応関係を表す中間出力対応テーブルを記憶する中間出力対応テーブル記憶部を備え、
     前記中間出力対応テーブルに基づいて、前記第1の中間出力を入力として前記第2の中間出力を生成する関数の近似関数を生成する近似関数生成ステップと、
     前記入力側変換処理部、前記近似関数、及び前記出力側変換処理部に基づいて、学習用入力データに基づく近似出力を生成する、近似出力生成ステップと、
     前記近似出力に基づいて前記出力側変換処理部と前記入力側変換処理部のパラメータを更新するパラメータ更新ステップと、を備える学習方法。
  14.  学習装置上での機械学習モデルの学習プログラムであって、
     前記機械学習モデルは、
      前記機械学習モデルの入力段階から第1の中間段階へと至る前記機械学習モデルの一部であって、前記機械学習モデルへの入力データに基づいて変換処理を行うことにより前記機械学習モデルの前記第1の中間段階における第1の中間出力を生成する、入力側変換処理部と、
      前記第1の中間段階より出力側に近い第2の中間段階から出力段階へと至る前記機械学習モデルの一部であって、第2の中間段階に対する入力に基づいて変換処理を行うことにより前記機械学習モデルの出力データを生成する、出力側変換処理部と、を備え、
     前記学習装置は、
     前記機械学習モデルにおける前記第1の中間出力と前記第2の中間出力との対応関係を表す中間出力対応テーブルを記憶する中間出力対応テーブル記憶部を備え、
     前記中間出力対応テーブルに基づいて、前記第1の中間出力を入力として前記第2の中間出力を生成する関数の近似関数を生成する近似関数生成ステップと、
     前記入力側変換処理部、前記近似関数、及び前記出力側変換処理部に基づいて、学習用入力データに基づく近似出力を生成する、近似出力生成ステップと、
     前記近似出力に基づいて前記出力側変換処理部と前記入力側変換処理部のパラメータを更新するパラメータ更新ステップと、を備える学習プログラム。
  15.  機械学習モデルの学習システムであって、
     前記機械学習モデルは、
      前記機械学習モデルの入力段階から第1の中間段階へと至る前記機械学習モデルの一部であって、前記機械学習モデルへの入力データに基づいて変換処理を行うことにより前記機械学習モデルの前記第1の中間段階における第1の中間出力を生成する、入力側変換処理部と、
      前記第1の中間段階より出力側に近い第2の中間段階から出力段階へと至る前記機械学習モデルの一部であって、第2の中間段階に対する入力に基づいて変換処理を行うことにより前記機械学習モデルの出力データを生成する、出力側変換処理部と、を備え、
     前記機械学習モデルにおける前記第1の中間出力と前記第2の中間出力との対応関係を表す中間出力対応テーブルを記憶する中間出力対応テーブル記憶部と、
     前記中間出力対応テーブルに基づいて、前記第1の中間出力を入力として前記第2の中間出力を生成する関数の近似関数を生成する近似関数生成部と、
     前記入力側変換処理部、前記近似関数、及び前記出力側変換処理部に基づいて、学習用入力データに基づく近似出力を生成する、近似出力生成部と、
     前記近似出力に基づいて前記出力側変換処理部と前記入力側変換処理部のパラメータを更新するパラメータ更新部と、を備える学習システム。
PCT/JP2020/010809 2019-03-15 2020-03-12 学習装置、方法及びプログラム WO2020189498A1 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2019049138 2019-03-15
JP2019-049138 2019-03-15
JP2019049137 2019-03-15
JP2019-049137 2019-03-15

Publications (1)

Publication Number Publication Date
WO2020189498A1 true WO2020189498A1 (ja) 2020-09-24

Family

ID=72519836

Family Applications (2)

Application Number Title Priority Date Filing Date
PCT/JP2020/010806 WO2020189496A1 (ja) 2019-03-15 2020-03-12 変換システム、方法及びプログラム
PCT/JP2020/010809 WO2020189498A1 (ja) 2019-03-15 2020-03-12 学習装置、方法及びプログラム

Family Applications Before (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/010806 WO2020189496A1 (ja) 2019-03-15 2020-03-12 変換システム、方法及びプログラム

Country Status (6)

Country Link
US (1) US11943277B2 (ja)
EP (1) EP3940567A4 (ja)
JP (1) JPWO2020189496A1 (ja)
AU (1) AU2020240239A1 (ja)
CA (1) CA3106843A1 (ja)
WO (2) WO2020189496A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6942900B1 (ja) * 2021-04-12 2021-09-29 望 窪田 情報処理装置、情報処理方法及びプログラム

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11699097B2 (en) * 2019-05-21 2023-07-11 Apple Inc. Machine learning model with conditional execution of multiple processing tasks

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5816771B2 (ja) * 1977-06-06 1983-04-02 三菱電機株式会社 回線切換方式
JP2017182319A (ja) * 2016-03-29 2017-10-05 株式会社メガチップス 機械学習装置
JP2018097612A (ja) * 2016-12-13 2018-06-21 富士通株式会社 情報処理装置、プログラム及び情報処理方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10225365B1 (en) * 2014-12-19 2019-03-05 Amazon Technologies, Inc. Machine learning based content delivery
JP5816771B1 (ja) 2015-06-08 2015-11-18 株式会社Preferred Networks 学習装置ユニット
JP6126174B2 (ja) 2015-07-31 2017-05-10 ファナック株式会社 機械学習装置、アーク溶接制御装置、アーク溶接ロボットシステムおよび溶接システム
US10331588B2 (en) 2016-09-07 2019-06-25 Pure Storage, Inc. Ensuring the appropriate utilization of system resources using weighted workload based, time-independent scheduling
US20180144244A1 (en) * 2016-11-23 2018-05-24 Vital Images, Inc. Distributed clinical workflow training of deep learning neural networks
JP6937146B2 (ja) * 2017-03-28 2021-09-22 株式会社カブク 多重型学習システムおよび多重型学習プログラム
US20180336463A1 (en) 2017-05-18 2018-11-22 General Electric Company Systems and methods for domain-specific obscured data transport
US10360214B2 (en) 2017-10-19 2019-07-23 Pure Storage, Inc. Ensuring reproducibility in an artificial intelligence infrastructure
US11556730B2 (en) * 2018-03-30 2023-01-17 Intel Corporation Methods and apparatus for distributed use of a machine learning model
US11455541B2 (en) * 2018-05-10 2022-09-27 Fmr Llc AI-based neighbor discovery search engine apparatuses, methods and systems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5816771B2 (ja) * 1977-06-06 1983-04-02 三菱電機株式会社 回線切換方式
JP2017182319A (ja) * 2016-03-29 2017-10-05 株式会社メガチップス 機械学習装置
JP2018097612A (ja) * 2016-12-13 2018-06-21 富士通株式会社 情報処理装置、プログラム及び情報処理方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6942900B1 (ja) * 2021-04-12 2021-09-29 望 窪田 情報処理装置、情報処理方法及びプログラム
CN115204352A (zh) * 2021-04-12 2022-10-18 洼田望 信息处理装置、信息处理方法和存储介质
CN115204352B (zh) * 2021-04-12 2024-03-12 洼田望 信息处理装置、信息处理方法和存储介质

Also Published As

Publication number Publication date
AU2020240239A1 (en) 2021-02-11
US20210266383A1 (en) 2021-08-26
WO2020189496A1 (ja) 2020-09-24
CA3106843A1 (en) 2020-09-24
EP3940567A1 (en) 2022-01-19
JPWO2020189496A1 (ja) 2020-09-24
EP3940567A4 (en) 2023-03-22
US11943277B2 (en) 2024-03-26

Similar Documents

Publication Publication Date Title
US11151479B2 (en) Automated computer-based model development, deployment, and management
US20230039182A1 (en) Method, apparatus, computer device, storage medium, and program product for processing data
US10832087B1 (en) Advanced training of machine-learning models usable in control systems and other systems
Rajawat et al. Fusion deep learning based on back propagation neural network for personalization
WO2018075400A1 (en) Advanced control systems for machines
WO2020189498A1 (ja) 学習装置、方法及びプログラム
US10776721B1 (en) Accelerating configuration of machine-learning models
CN113505882A (zh) 基于联邦神经网络模型的数据处理方法、相关设备及介质
US11106694B1 (en) Computerized pipelines for transforming input data into data structures compatible with models
WO2022057433A1 (zh) 一种机器学习模型的训练的方法以及相关设备
CN113610240A (zh) 利用嵌套机器学习模型来执行预测的方法及系统
Guo et al. Dynamic Fuzzy Logic Control of Genetic Algorithm Probabilities.
Smith et al. An investigation of how neural networks learn from the experiences of peers through periodic weight averaging
US20230214642A1 (en) Federated Learning with Partially Trainable Networks
Wei et al. Quantum assisted scheduling algorithm for federated learning in distributed networks
Scardapane et al. Learning from distributed data sources using random vector functional-link networks
US20230032249A1 (en) Graphics processing unit optimization
US11366699B1 (en) Handling bulk requests for resources
Ding Properties of parameter‐dependent open‐loop MPC for uncertain systems with polytopic description
Zhao et al. PPCNN: An efficient privacy‐preserving CNN training and inference framework
Guendouzi et al. Aggregation using genetic algorithms for federated learning in industrial cyber-physical systems
US11501041B1 (en) Flexible program functions usable for customizing execution of a sequential Monte Carlo process in relation to a state space model
CN116663064B (zh) 一种隐私保护神经网络预测方法及系统
Guendouzi et al. Genetic algorithm based aggregation for federated learning in industrial cyber physical systems
CN114912146B (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: 20774012

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20774012

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP