WO2023100720A1 - 機械学習装置、機械学習システム、機械学習方法、および機械学習プログラム - Google Patents

機械学習装置、機械学習システム、機械学習方法、および機械学習プログラム Download PDF

Info

Publication number
WO2023100720A1
WO2023100720A1 PCT/JP2022/043196 JP2022043196W WO2023100720A1 WO 2023100720 A1 WO2023100720 A1 WO 2023100720A1 JP 2022043196 W JP2022043196 W JP 2022043196W WO 2023100720 A1 WO2023100720 A1 WO 2023100720A1
Authority
WO
WIPO (PCT)
Prior art keywords
layer
machine learning
image data
unit
input
Prior art date
Application number
PCT/JP2022/043196
Other languages
English (en)
French (fr)
Inventor
健太郎 三原
Original Assignee
Eaglys株式会社
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=81753572&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=WO2023100720(A1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Eaglys株式会社 filed Critical Eaglys株式会社
Priority to EP22901153.1A priority Critical patent/EP4296897A1/en
Publication of WO2023100720A1 publication Critical patent/WO2023100720A1/ja
Priority to US18/368,572 priority patent/US11956353B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation

Definitions

  • the present disclosure relates to a machine learning device, a machine learning system, a machine learning method, and a machine learning program.
  • the analysis target is sensitive data that is directly linked to individual privacy, such as medical images, it is required to perform analysis processing while keeping the privacy information confidential (encrypted).
  • Patent Document 1 discloses a technique related to a neural network system using homomorphic encryption.
  • the present disclosure has been made to solve the above problems, and the purpose is to provide a technology related to machine learning using a convolutional neural network according to the practical calculation cost and security level required by the user. It is to be.
  • a machine learning device includes a data acquisition unit that acquires image data, and a machine learning calculation unit that performs calculation processing using a convolutional neural network based on the image data.
  • the convolutional neural network is composed of multiple layers
  • the machine learning calculation unit consists of a cryptographic processing unit that performs calculations in the cryptographic execution region based on homomorphic encryption, a plaintext processing unit that performs calculations in the plaintext execution region, and an input layer of the convolutional neural network.
  • a reception unit that receives layer designation information designating the Nth layer, which is a layer on the way from to the output layer, and the cryptographic processing unit performs operations from the input layer to the Nth layer, and converts plaintext
  • the processing unit executes operations from the (N+1)th layer to the output layer.
  • a machine learning system includes a data acquisition unit that acquires image data, and a machine learning calculation unit that performs calculation processing using a convolutional neural network based on the image data.
  • the convolutional neural network is composed of multiple layers
  • the machine learning calculation unit consists of a cryptographic processing unit that performs calculations in the cryptographic execution region based on homomorphic encryption, a plaintext processing unit that performs calculations in the plaintext execution region, and an input layer of the convolutional neural network.
  • a reception unit that receives layer designation information designating the Nth layer, which is a layer on the way from to the output layer, and the cryptographic processing unit performs operations from the input layer to the Nth layer, and converts plaintext
  • the processing unit executes operations from the (N+1)th layer to the output layer.
  • the machine learning method includes the steps of obtaining image data, and performing calculation processing using a convolutional neural network based on the image data, wherein the convolutional neural network is
  • the step of performing calculation processing using a convolutional neural network composed of a plurality of layers includes a step of calculating in a cryptographic execution region by homomorphic encryption, a step of calculating in a plaintext execution region, and an output from the input layer of the convolutional neural network.
  • a machine learning program is a machine learning program executed by a computer including a control unit and a storage unit, wherein the control unit acquires image data; , a storage unit storing image data; and a control unit performing calculation processing using a convolutional neural network based on the image data stored in the storage unit, wherein the convolutional neural network comprises a plurality of
  • the step of performing calculation processing using a convolutional neural network includes a step of calculating in a cryptographic execution region by homomorphic encryption, a step of calculating in a plaintext execution region, and a step from the input layer to the output layer of the convolutional neural network.
  • receiving layer designation information designating the N-th layer, which is a layer on the way to the Operations from the (N+1) layer to the output layer are performed.
  • FIG. 1 is a diagram showing a machine learning system 1;
  • FIG. 2 is a diagram showing the hardware configuration of the machine learning device 100;
  • FIG. 2 is a block diagram showing a functional configuration of the machine learning device 100;
  • FIG. 3 is a diagram showing an example of a key storage unit 121;
  • FIG. 3 is a diagram showing an example of a learning model storage unit 122;
  • FIG. 4 is a diagram showing an example of a screen for a user to input image data and labels; It is a model conceptual diagram of a general convolutional neural network. It is the figure which showed the intermediate
  • 4 is a flowchart showing an example of processing executed by the machine learning device 100;
  • 1 is a diagram showing a machine learning system 2;
  • FIG. 3 is a block diagram showing a functional configuration of the machine learning device 300;
  • FIG. FIG. 13 is a diagram showing an example of a screen provided by a providing unit 3324;
  • FIG. 13 is a diagram showing an example of a screen provided by a providing unit 3324;
  • FIG. 4 is a flowchart showing an example of processing executed by the machine learning device 300;
  • the present invention focuses on the fact that in image recognition using a convolutional neural network, it becomes difficult to visually identify an image in the process of repeating filtering processing of convolution operations. bottom. That is, in the present invention, up to the calculation process predetermined by the user is processed in the cryptographic execution area by homomorphic encryption, and the subsequent calculation processes are processed in the plaintext execution area.
  • FIG. 1 is a diagram showing a machine learning system 1. As shown in FIG. As shown in FIG. 1, a machine learning system 1 according to this embodiment includes a machine learning device 100 and one or more terminal devices 200 used by a user.
  • the machine learning device 100 and the terminal device 200 are communicably connected via the network NW.
  • the network NW is composed of a WAN (Wide Area Network), a LAN (Local Area Network), and the like.
  • the machine learning system 1 builds a learning model for machine learning based on user input, or uses the input from the user and the learning model to perform machine learning inference.
  • the terminal device 200 accepts input from the user and transmits the input content to the machine learning device 100 via the network NW.
  • the terminal device 200 also receives data transmitted from the machine learning device 100 via the network NW and presents it to the user.
  • FIG. 2 is a diagram showing the hardware configuration of the machine learning device 100 of this embodiment.
  • Machine learning device 100 is a general-purpose computer.
  • the machine learning device 100 is implemented by, for example, a server computer, a stationary PC (Personal Computer), a laptop PC, or the like.
  • the machine learning device 100 includes a processor 11, a memory 12, a storage 13, a communication IF 14, and an input/output IF 15.
  • the processor 11 is hardware for executing an instruction set described in a program, and is composed of arithmetic units, registers, peripheral circuits, and the like.
  • the memory 12 is for temporarily storing programs, data processed by the programs, etc., and is implemented by a volatile memory such as a DRAM (Dynamic Random Access Memory).
  • the programs stored in the memory 12 are, for example, programs for executing machine learning according to the present invention.
  • the storage 13 is a storage device for storing data, and is realized by, for example, flash memory, HDD (Hard Disc Drive), SSD (Solid State Drive).
  • Communication IF 14 is an interface for transmitting and receiving signals for machine learning device 100 to communicate with an external device.
  • the input/output IF 15 functions as an interface with an input device for receiving input from the user and an output device for presenting information to the user.
  • terminal device 200 may also have a configuration similar to the hardware configuration shown in FIG.
  • the operation of each component of the terminal device 200 is realized by the processor 11 according to the program stored in the memory 12, similarly to the machine learning device 100 described above.
  • FIG. 3 is a block diagram showing the functional configuration of the machine learning device 100 according to this embodiment. A functional configuration of the machine learning device 100 according to the first embodiment will be described with reference to FIG.
  • the machine learning device 100 includes a communication unit 110, a storage unit 120, and a control unit 130.
  • the communication unit 110 performs processing for the machine learning device 100 to communicate with other devices.
  • the other device here may be a PC connected via the network NW, or a terminal such as a smart phone or a tablet.
  • the other device may be an input/output device such as a device that inputs and outputs data using a flash memory, HDD, SSD, or the like.
  • the communication unit 110 also transmits and receives data to and from a device via the network NW or a locally connected device, etc., through a secure communication channel in which security is ensured.
  • a secure communication channel and the communication method are well-known techniques using common keys (session keys, etc.), public keys, etc., so the description thereof is omitted.
  • the storage unit 120 is composed of, for example, volatile memory such as RAM, flash memory, HDD, SSD, etc., and stores data and programs used by the machine learning device 100 .
  • the storage unit 120 includes, for example, a key storage unit 121 that stores a key for encrypting data or decrypting the encrypted data in order that a cryptographic processing unit 1322, which will be described later, performs calculations in a cryptographic execution area, and a machine learning device. It includes a learning model store 122 that stores learning models used in 100 .
  • the key may be stored in a key management device (not shown) that is directly connected to the machine learning device 100 via a network, instead of being stored in the machine learning device 100 .
  • Image data and the like used by the machine learning device 100 for machine learning are preferably deleted from the storage unit 120 after use in order to improve security.
  • the key storage unit 121 stores a key for encrypting data or decrypting the encrypted data so that the encryption processing unit 1322 can perform calculations in the encryption execution area.
  • the key storage unit 121 stores, for example, an ID, key data, and a key file path.
  • An ID may be assigned to each arbitrary group such as a user or an organization and a key may be used, or may be assigned to each session and a key may be used.
  • the learning model storage unit 122 stores learning models used in the machine learning device 100 .
  • the learning model storage unit 122 stores, in addition to learning models, an ID for distinguishing between a plurality of learning models, a tag indicating the range to which the learning model can be applied, and a learning model that can even specify a specific part in image diagnosis. distinction of whether or not, calculation cost (including calculation amount, calculation time, cost, calculation resources, etc.) and calculation speed when performing calculation using the learning model, and inference using the learning model Accuracy and the like may be associated with each other and stored.
  • control unit 130 is implemented by the processor of the machine learning device 100 reading a program stored in the storage unit 120 and executing instructions included in the program.
  • the control unit 130 controls operations of the machine learning device 100 .
  • control unit 130 includes data acquisition unit 131 , machine learning calculation unit 132 , reception unit 1321 , encryption processing unit 1322 , and plaintext processing unit 1323 .
  • the data acquisition unit 131 When the parameters of the learning model are updated by machine learning (hereinafter, unless otherwise specified, the data acquisition unit 131 also includes the case of generating a new learning model), image data serving as teacher data and the Get the label for the image data.
  • the "label" includes, for example, the type of object indicated by the image data and the range (position) of the object to be specified in the image data.
  • the data acquisition unit 131 acquires image data to be inferred when performing inference using a learning model. For example, a user inputs image data and a label on the terminal device 200 or the like, and the data acquisition unit 131 acquires the image data and the label input by the user via the network NW.
  • the machine learning calculation unit 132 performs calculation processing using a convolutional neural network based on the image data and the like acquired by the data acquisition unit 131 . Specifically, this calculation processing is learning for updating the parameters of the learning model, or calculation processing for inference using the learning model from acquired image data or the like. Note that the convolutional neural network is composed of multiple layers. “Layers” will be explained in FIGS. 7 and 8 (described later).
  • the machine learning calculation unit 132 obtains in advance from the user the range of calculation in the cryptographic execution region, performs part of the calculation processing in the cryptographic execution region by homomorphic encryption, and performs the calculation processing. A part of the process of is operated in the plaintext execution domain.
  • the machine learning calculator 132 specifically includes a receiver 1321 , an encryption processor 1322 , and a plaintext processor 1323 .
  • the reception unit 1321 receives layer designation information designating the N-th layer (where N is a natural number), which is an intermediate layer from the input layer to the output layer of the convolutional neural network. That is, when the Nth layer is designated by the layer designation information, the operations from the input layer to the Nth layer are performed in the cryptographic execution area, and the operations from the (N+1)th layer to the output layer are performed in the plaintext execution area.
  • the receiving unit 1321 receives layer designation information designating the N-th layer.
  • the layer designation information acquired here is a specific number indicating “N”, and in the convolutional neural network, which layer of the intermediate layer It indicates the range of whether to calculate up to in the cryptographic execution area.
  • a convolutional neural network generally has multiple layers such as an input layer (0 layer), intermediate layers (1 to M layers), and an output layer (M+1 layer). Here, M is any natural number.
  • the user decides to perform calculations up to the N-th layer of the intermediate layer in the cryptographic execution area, and the reception unit 1321 acquires N, which is the boundary layer for performing calculations in the cryptographic execution area.
  • the layer designation information may be information capable of designating "N” in addition to a specific number indicating "N".
  • it may be a calculation cost condition received from the user.
  • the receiving unit 1321 calculates “N” that can be executed with the calculation cost.
  • the cryptographic processing unit 1322 has a function of performing calculations in the cryptographic execution region based on homomorphic encryption. In the process of calculation processing in the machine learning calculation unit 132, the cryptographic processing unit 1322 performs calculation processing from the input layer (0 layer) to the N intermediate layers in the cryptographic execution region using homomorphic encryption.
  • the encryption processing unit 1322 encrypts image data and the like acquired by the data acquisition unit 131 using a key (public key) for encryption managed in the key storage unit 121 .
  • the cryptographic processing unit 1322 selects a homomorphic encryption method (Paillier method, Lifted-Ellgamal method, Somewhat Homomorphic Encryption method, Fully Homomorphic Encryption method, etc.) that allows computation in an encrypted state as an encryption method. use.
  • the encryption processing unit 1322 encrypts the image data and the like acquired by the data acquisition unit 131 and the learning model used for machine learning, and performs calculations in the encryption execution area.
  • the cryptographic processing unit 1322 performs calculation processing from the input layer (0 layer) to the N layer of the intermediate layer specified by the user in the encryption execution area, and then stores the decryption key (secret key) managed in the key storage unit 121 . key) to decrypt the data.
  • the plaintext processing unit 1323 has a function of computing in the plaintext execution area.
  • the plaintext processing unit 1323 acquires the computation results up to the N layers computed by the encryption processing unit 1322, and subsequently performs computations from the (N+1) layer to the output layer in the plaintext execution region. This updates the parameters of the inference or learning model.
  • a part of the functions of the machine learning device 100 described above may be performed by the terminal device 200.
  • the machine learning device 100 and the terminal device 200 share a key for encrypting image data and the like by homomorphic encryption in advance, and the terminal device 200 encrypts the image data to be the target of inference and machine learning. may be encrypted by homomorphic encryption.
  • the terminal device 200 transmits image data encrypted by homomorphic encryption to the machine learning device 100 , and the machine learning device 100 stores the image data received via the communication unit 110 in the storage unit 120 .
  • the data acquisition unit 131 acquires the encrypted image data from the storage unit 120 and sends it to the encryption processing unit 1322 .
  • the cryptographic processor 1322 performs computation on the encrypted image data.
  • the plaintext processing unit 1323 may decrypt the calculation result. That is, the encryption processing unit 1322 handles only data encrypted by homomorphic encryption.
  • the image data is encrypted by homomorphic encryption, or even if it is decrypted, it is difficult for humans to visually identify the image. Learning device 100 can perform calculation processing with higher security.
  • FIG. 4 is a diagram showing an example of the key storage unit 121.
  • the key storage unit 121 stores, for example, an “ID” for identifying a key usage scene such as a user or a session, and values of keys (public key “key1” and private key “key2”) in association with each other.
  • the public key with “ID” of "0000001” is "0KJFDEMNFS679FDDFHKL" and the private key is "2SFSHLJHFSKLJADL7DJLH".
  • the public key with an “ID” of "0000002" is “43JFLKEJFDHKLFS3JKLFN"
  • the private key is "FDLK732492SFGKJHKSDH”
  • the public key with an “ID” of "0000003” is “JLKJ02SFHL89JLKHJKF897”
  • the private key is It is “40389439LFKSJFLKJFSLH.”
  • FIG. 4 is an example of key management, and the key management method is not limited to these. For example, a key and a user having decryption authority may be associated and stored.
  • FIG. 5 is a diagram showing an example of the learning model storage unit 122.
  • the learning model storage unit 122 stores an "ID" for distinguishing between a plurality of learning models, a “tag” indicating the range to which the learning model can be applied, and whether or not the learning model is capable of specifying a specific part in image diagnosis.
  • "Part specification” to distinguish between, “Cost / MB” indicating the cost (computational amount) when calculating using the learning model, and “Calculation speed / Mb” indicating the calculation speed, using the learning model "Accuracy” indicating the accuracy when inference is performed by using the learning model, and "File” indicating the file name of the learning model are stored in association with each other.
  • the learning model with the “ID” of “0001” has “CT, cancer, kidney, medical care, imaging diagnosis” in the “tag” column, and is applicable to these uses, and does not support site identification. indicates that it is not In addition, the "cost” is 10 yen/Mb, the “computation speed” is 5'10 per 1 Mb, the “accuracy” is 80%, and the learning model itself is stored in the file "0001.json". there is
  • the learning model whose "ID” is “0002” has "CT, cancer, kidney, medical care, imaging diagnosis” in the “tag” column, and can be applied to these uses. ” indicates that it corresponds to site identification.
  • the "cost” is 45 yen/Mb
  • the "computation speed” is 6'00 per 1Mb
  • the “accuracy” is 85%
  • the learning model itself is stored in the file "0002.json”.
  • the learning model storage unit 122 is not limited to the items described above, and is stored in association with an organization (company, department, etc.), industry (medical, food, EC, etc.), owner, etc. to which the learning model is applied. good too.
  • FIG. 6 is a diagram showing an example of a screen for the user to input image data and labels.
  • the data acquisition unit 131 When receiving input of target image data from the user, the data acquisition unit 131 reads the image data and then provides the image 410 and file information (file name, file generation date and time, etc.) shown on the screen 401 to the user. is displayed on the terminal device 200 operated by . At this time, the data acquisition unit 131 also acquires the label from the user. On the screen 401, the user selects whether the input image data is data indicating "normal” or data indicating "abnormal", and performs labeling.
  • the user designates the range of the region on the screen and performs labeling. For example, in FIG. 6, the specified region-specific range is indicated by the hatched portion of image 410 .
  • the data acquisition unit 131 acquires the image data and the teacher data associated with the label for the image data. Based on the teacher data, the machine learning calculation unit 132 generates (updates) the parameters of the learning model of the convolutional neural network so as to output the label for the image data.
  • the label for example, when diagnosing cancer with respect to the input image data, whether the image indicates normality or abnormality (suspected cancer) is output.
  • the part identification may also be output.
  • FIG. 7 is a model conceptual diagram of a general convolutional neural network.
  • a neural network has a plurality of layers such as an input layer (layer 0), an intermediate layer (layers 1 to M), and an output layer (layer M+1).
  • the machine learning calculation unit 132 acquires layer designation information indicating the boundary (N-th layer) of the range in which the reception unit 1321 performs calculations in the cryptographic execution area. Calculations are performed in the plaintext execution area in the plaintext processing unit 1323 .
  • the encryption processing unit 1322 encrypts the image data and the like acquired by the data acquisition unit 131 and the selected learning model with homomorphic encryption using a key (public key) stored in the key storage unit 121, and converts the data into an inference or learning model. A calculation for updating the parameters of is performed in the cryptographic execution area. Specifically, the encryption processing unit 1322 performs arithmetic processing from the 0th layer to the N-th layer of the intermediate layer. Further, the cryptographic processing unit 1322 decrypts the operation result in the cryptographic execution area using the key (private key paired with the encrypted public key) stored in the key storage unit 121 . The decrypted result may be sent to the plaintext processing unit 1323 . When storing the operation result in the cryptographic execution area in the storage unit 120, it is preferable that the operation result is stored in an encrypted state and the operation result is decrypted in the plaintext processing unit 1323 for security reasons.
  • the plaintext processing unit 1323 uses the image data and the like decrypted by the encryption processing unit 1322 and the learning model to perform arithmetic processing in the plaintext execution region for the calculation process from the (N+1)th layer to the (M+1)th layer.
  • FIG. 8 is a diagram specifically showing the intermediate layer.
  • a convolutional neural network generally has a convolution layer, a ReLu layer, a pooling layer, a fully connected layer, etc. for performing a convolution operation as intermediate layers.
  • the term "layer" means that each layer unit such as a convolutional layer, a ReLu layer, and a pooling layer may be 1 layer, 2 layers, or 3 layers, and a series of processes such as convolution, ReLu, and pooling may be treated as one processing unit. may be one layer, two layers, or three layers.
  • a combination of “convolution”, “ReLu”, and “pooling” may be a single layer, or a combination of “convolution”, “pooling”, or a combination of “ReLu” and “pooling” may be a single layer.
  • convolutional neural networks often use a fully connected layer in the latter half of the intermediate layer, but the fully connected layer may be operated in the encryption execution region.
  • FIG. 9 is a flowchart showing an example of processing executed by the machine learning device 100. As shown in FIG.
  • the control unit 130 acquires data such as image data, or data such as image data and a label from the terminal device 200 via the communication unit 110 (step S101).
  • the control unit 130 acquires, from the terminal device 200 via the communication unit 110, layer designation information that designates the N-th layer, which is the boundary between the computation performed in the cryptographic execution region and the computation performed in the plaintext execution region (step S102).
  • the control unit 130 encrypts the acquired data such as images and the learning model to be applied using homomorphic encryption. Then, the 0th layer to the Nth layer are calculated in the encryption execution area, and then decrypted (step S103).
  • control unit 130 Based on the computation results decoded in step S103, the control unit 130 computes from the (N+1)th layer to the output layer in the plaintext execution area, and updates the inference or learning model parameters. Then, control unit 130 stores the calculation result in storage unit 120, and ends the process (step S104).
  • the machine learning apparatus 100 calculates up to the N-th layer specified by the user in the encryption execution area, and calculates the (N+1)th layer and later in the plaintext execution area. It is possible to achieve both a reduction in calculation cost and ensuring security.
  • the machine learning system 1 After obtaining the layer designation information from the user, the machine learning system 1 according to the first embodiment performs calculation processing in the encryption execution area and the plaintext execution area.
  • the machine learning system 2 determines how the input image changes due to the convolution operation when the input image is calculated in the plaintext execution region, , provides information to the user such as how the computational cost changes.
  • the user can refer to the provided information and easily designate layer designation information according to the calculation cost and security level desired by the user.
  • FIG. 10 is a diagram showing the machine learning system 2 according to this embodiment.
  • the machine learning system 2 includes a machine learning device 300 and one or more terminal devices 200 used by a user.
  • the machine learning device 300 further includes a providing unit 3324 and an estimating unit 3325 (described in detail in FIG. 11) as compared with the machine learning device 100 according to the first embodiment.
  • the providing unit 3324 indicates how the image data input by the user changes when it is calculated in the plaintext execution area, and information such as the calculation cost, thereby allowing the user to select the range in which the operation is performed in the encryption execution area. It has a function to assist the
  • FIG. 11 is a block diagram showing the functional configuration of the machine learning device 300 according to this embodiment.
  • Machine learning device 300 includes communication unit 110 , storage unit 120 , and control unit 330 . Since the functional configurations of the communication unit 110 and the storage unit 120 in the machine learning device 300 are the same as those of the machine learning device 100, description thereof will be omitted.
  • the control unit 330 is implemented by the processor of the machine learning device 300 reading a program stored in the storage unit 120 and executing instructions included in the program. Control unit 330 controls the operation of machine learning device 300 . Specifically, the control unit 330 includes a data acquisition unit 131, a machine learning calculation unit 332, a reception unit 1321, an encryption processing unit 1322, a plaintext processing unit 1323, a provision unit 3324, an estimation unit 3325, including.
  • the control unit 330 is the same as the control unit 130 in the machine learning device 100 except that it includes a providing unit 3324 and an estimating unit 3325, so redundant description will be omitted.
  • the providing unit 3324 provides mid-plaintext operation information related to operations performed by the plaintext processing unit 1323 from the input layer to the output layer for the image data input by the user acquired by the data acquisition unit 131.
  • Intermediate plaintext operation information is information related to operations in the intermediate process from the input layer to the output layer. total time related to inference or learning estimated from), the amount of computation required up to the middle layer (and the total amount of computation required for inference or learning estimated from this), and the fee calculated from the amount of computation.
  • the plaintext mid-computation information can be calculated by the plaintext processing unit 1323 on the basis of information related to the computations performed by the plaintext processing unit 1323 from the input layer to the output layer for one piece of image data input by the user.
  • the plaintext mid-computation information may be transmitted to the terminal device 200 used by the user via the communication unit 110, or may be displayed on the display device (not shown) of the machine learning device 100, for example.
  • the providing unit 3324 provides, for example, the difference in information between the image data input to the input layer and the data input to each layer from the input layer to the output layer as the plaintext mid-process information in a manner that allows the user to compare. You may also, the providing unit 3324 may provide the image data input to each layer as the plaintext mid-computation information, without necessarily providing it in a form that the user can compare.
  • the providing unit 3324 provides the user with the image data input to each layer on the premise that visual identification becomes difficult due to repeated convolution operations, so that the image data input to any layer can be visually identified. It provides a reference for identifiability (the difference in information), and sometimes a comparison provides information to determine which layer needs to be encrypted and machine-learned. For example, for sample image data, the user may be presented with data input to a first layer, which is an intermediate layer, and a second layer, which is processed after the first layer. . As a result, the user can compare how the sample image data is changed by the layer processing and how the information differs, thereby assisting the user in designating the layer designation information.
  • the providing unit 3324 does not have to provide all the input image data from the input layer to the output layer.
  • the image data to be processed and the image data to be input when the plaintext processing unit 1323 performs the operation may be provided in a manner that allows the user to compare them.
  • the plurality of predetermined layers may be selected with periodicity such as extracting one layer every five layers, or a plurality of layers may be randomly extracted.
  • the providing unit 3324 may provide a mask image instead of image data input to an intermediate layer when the cryptographic processing unit 1322 performs an operation. That is, since the image data input when the cryptographic processing unit 1322 performs the calculation is encrypted and cannot be identified by humans, there is little need to dare to present the image data. By providing a mask image to , it may be indicated that the data is indistinguishable to humans.
  • the provision unit 3324 provides the user with the layer designation estimation information calculated by the estimation unit 3325 together with the plaintext mid-processing information, which serves as a guideline for designating the layer designation information. This allows the user to easily designate the layer designation information.
  • the screen 402 also displays the calculation time ("Time") when the intermediate layers are calculated in the cryptographic execution area and the subsequent layers are calculated in the plaintext execution area. and the cost (“Cost") are also shown.
  • “Time” is “5'36” and “Cost” is "$4". That is, it shows that the computation time is “5'36” and the cost is "$4" when computations up to the computation process 1 are performed in the cryptographic execution area and the subsequent computations are performed in the plaintext execution area.
  • the calculation time and cost are presented as the calculation cost, but the amount of calculation required for calculation, the calculation resource, etc. may also be presented to the user as the calculation cost.
  • plaintext mid-computation information is provided based on these sample images.
  • FIG. 13 is a diagram showing an example of a screen provided by the providing unit 3324.
  • FIG. An area 413 of the screen 403 indicates that the user has selected "calculation process 2" as the range of operations to be performed in the cryptographic execution area.
  • the user can input “calculation process 2” as layer designation information by clicking the “determine” button 423 or the like.
  • the designation of the layer may be performed, for example, by clicking the image data shown in each calculation process or the icon (the key icon in FIG. 13) shown below the image data. However, it may be performed by keyboard or by voice.
  • the control unit 130 acquires data such as image data, or data such as image data and a label from the terminal device 200 via the communication unit 110 (step S201).
  • control unit 130 In each layer from the input layer to the output layer, the control unit 130 provides the terminal device 200 via the communication unit 110 with plaintext mid-computation information related to the computation executed by the plaintext processing unit 1323 (step S202). .
  • the control unit 130 encrypts the acquired data such as images and the learning model to be applied using homomorphic encryption. Then, the 0th layer to the Nth layer are calculated in the encryption execution area, and then decrypted (step S204).
  • control unit 130 Based on the computation results decoded in step S204, the control unit 130 computes from the (N+1)-th layer to the output layer in the plaintext execution area, and updates the inference or learning model parameters. Then, the control unit 130 stores the calculation result in the storage unit 120 and ends the processing (step S205).
  • the machine learning device may realize its functions by, for example, having a computer execute a program instead of using the above device.
  • Programs for realizing the functions of the information provision system are USB (Universal Serial Bus) memory, CD-ROM (Compact Disc-Read Only Memory), DVD (Digital Versatile Disc), HDD (Hard Disc Drive), SSD (Solid State Drive) or other computer-readable recording medium, or downloaded to a computer via a network.
  • USB Universal Serial Bus
  • CD-ROM Compact Disc-Read Only Memory
  • DVD Digital Versatile Disc
  • HDD Hard Disc Drive
  • SSD Solid State Drive

Landscapes

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

Abstract

ユーザの求める実用的な計算コストとセキュリティレベルに応じた、畳み込みニューラルネットワークを用いた機械学習の技術を提供する。 機械学習装置は、画像データを取得するデータ取得部と、画像データに基づいて、畳み込みニューラルネットワークを用いた計算処理を行う機械学習計算部とを備え、畳み込みニューラルネットワークは複数の層から構成され、機械学習計算部は、準同型暗号による暗号実行領域において演算する暗号処理部と、平文実行領域において演算する平文処理部と、畳み込みニューラルネットワークの入力層から出力層に向けての途中の層である第N層を指定する層指定情報を受け付ける受付部とを有し、暗号処理部は、入力層から第N層までの演算を実行し、平文処理部は、第(N+1)層から出力層までの演算を実行する。

Description

機械学習装置、機械学習システム、機械学習方法、および機械学習プログラム
 本開示は、機械学習装置、機械学習システム、機械学習方法、および機械学習プログラムに関する。
 近年、畳み込みニューラルネットワークの学習モデルを用いた画像認識により、複雑なデータの分析を高精度に行うことが可能となっている。
 一方、分析対象が医療画像など個人のプライバシーに直結した機微データである場合は、プライバシー情報を秘匿(暗号化)したまま分析処理を行うことが求められる。
 例えば、特許文献1では、準同型暗号を用いたニューラルネットワークのシステムに関する技術が開示されている。
特開2019-46460号公報
 準同型暗号を用いた畳み込みニューラルネットワークにより画像認識を行えば、プライバシー情報を暗号化したまま分析処理を行うことができる。しかしながら、一般的に、準同型暗号を用いた演算は、セキュリティレベルは高いものの、計算量が膨大になってしまい、実用的な計算コストで実行することが難しいという課題があった。
 そこで、本開示は、上記課題を解決すべくなされたものであって、その目的は、ユーザの求める実用的な計算コストとセキュリティレベルに応じた、畳み込みニューラルネットワークを用いた機械学習に関する技術を提供することである。
 上記目的を達成するため、本開示に係る機械学習装置は、画像データを取得するデータ取得部と、画像データに基づいて、畳み込みニューラルネットワークを用いた計算処理を行う機械学習計算部と、を備え、畳み込みニューラルネットワークは複数の層から構成され、機械学習計算部は、準同型暗号による暗号実行領域において演算する暗号処理部と、平文実行領域において演算する平文処理部と、畳み込みニューラルネットワークの入力層から出力層に向けての途中の層である第N層を指定する層指定情報を受け付ける受付部と、を有し、暗号処理部は、入力層から第N層までの演算を実行し、平文処理部は、第(N+1)層から出力層までの演算を実行する。
 上記目的を達成するため、本開示に係る機械学習システムは、画像データを取得するデータ取得部と、画像データに基づいて、畳み込みニューラルネットワークを用いた計算処理を行う機械学習計算部と、を備え、畳み込みニューラルネットワークは複数の層から構成され、機械学習計算部は、準同型暗号による暗号実行領域において演算する暗号処理部と、平文実行領域において演算する平文処理部と、畳み込みニューラルネットワークの入力層から出力層に向けての途中の層である第N層を指定する層指定情報を受け付ける受付部と、を有し、暗号処理部は、入力層から第N層までの演算を実行し、平文処理部は、第(N+1)層から出力層までの演算を実行する。
 上記目的を達成するため、本開示に係る機械学習方法は、画像データを取得するステップと、画像データに基づいて、畳み込みニューラルネットワークを用いた計算処理を行うステップと、を備え、畳み込みニューラルネットワークは複数の層から構成され、畳み込みニューラルネットワークを用いた計算処理を行うステップは、準同型暗号による暗号実行領域において演算するステップと、平文実行領域において演算するステップと、畳み込みニューラルネットワークの入力層から出力層に向けての途中の層である第N層を指定する層指定情報を受け付けるステップと、を有し、暗号実行領域では、入力層から第N層までの演算が実行され、平文実行領域では、第(N+1)層から出力層までの演算が実行される。
 また、上記目的を達成するため、本開示に係る機械学習プログラムは、制御部と、記憶部と、を備えるコンピュータに実行させる機械学習プログラムであって、制御部が、画像データを取得するステップと、記憶部が、画像データを記憶するステップと、制御部が、記憶部が記憶した画像データに基づいて、畳み込みニューラルネットワークを用いた計算処理を行うステップと、を備え、畳み込みニューラルネットワークは複数の層から構成され、畳み込みニューラルネットワークを用いた計算処理を行うステップは、準同型暗号による暗号実行領域において演算するステップと、平文実行領域において演算するステップと、畳み込みニューラルネットワークの入力層から出力層に向けての途中の層である第N層を指定する層指定情報を受け付けるステップと、を有し、暗号実行領域では、入力層から第N層までの演算が実行され、平文実行領域では、第(N+1)層から出力層までの演算が実行される。
 本開示によれば、ユーザの求める実用的な計算コストとセキュリティレベルに応じた畳み込みニューラルネットワークを用いた機械学習を実現することができる。
機械学習システム1を示す図である。 機械学習装置100のハードウェア構成を示す図である。 機械学習装置100の機能的構成を示すブロック図である。 鍵格納部121の一例を示す図である。 学習モデル格納部122の一例を示す図である。 ユーザが画像データとラベルを入力するための画面の一例を示す図である。 一般的な畳み込みニューラルネットワークのモデル概念図である。 中間層を具体的に示した図である。 機械学習装置100が実行する処理の一例を示すフローチャートである。 機械学習システム2を示す図である。 機械学習装置300の機能的構成を示すブロック図である。 提供部3324が提供する画面の一例を示す図である。 提供部3324が提供する画面の一例を示す図である。 機械学習装置300が実行する処理の一例を示すフローチャートである。
 以下、本開示の実施形態について図面を参照して説明する。実施形態を説明する全図において、共通の構成要素には同一の符号を付し、繰り返しの説明を省略する。なお、以下の実施形態は、特許請求の範囲に記載された本開示の内容を不当に限定するものではない。また、実施形態に示される構成要素のすべてが、本開示の必須の構成要素であるとは限らない。
<本発明の概要>
 近年、畳み込みニューラルネットワークを用いて高精度で画像認識を行うことが可能となり、複雑なデータの分析を行うケースが増加しており、画像認識の対象となる画像データに個人情報等の機微データが含まれる場合は、プライバシーへの配慮が求められる。そこで、畳み込みニューラルネットワークに係る計算過程を、暗号化したまま演算を行うことができる準同型暗号を用いて実行すれば、プライバシーを保護しつつ、画像データの分析処理を行うことができる。
 しかしながら、一般的に、準同型暗号を用いた演算は、セキュリティレベルは高いものの、計算コストが膨大になってしまうという課題がある。そこで、本発明では、当該課題を解決すべく、畳み込みニューラルネットワークを用いた画像認識において、畳み込み演算のフィルタリング処理が繰り返される過程で、画像を目視で識別することが困難になっていくことに着目した。すなわち、本発明では、ユーザが予め定めた計算過程までを、準同型暗号による暗号実行領域において処理し、それ以降の計算過程は平文実行領域において処理を行う。
 目視で画像を識別することが困難になる一定の計算過程以降では、平文実行領域において計算を行うことにより、計算過程の画像が第三者に流出したとしても、当該画像を目視で識別することが困難なため、暗号化されていなくても、機微データの内容を第三者に知られることを防ぐことができる。それと同時に、全ての計算過程を準同型暗号による暗号実行領域において実行しないため、計算コストを抑えることができる。
(機械学習システム1の構成)
 図1は、機械学習システム1を示す図である。図1に示すように、本実施形態に係る機械学習システム1は、機械学習装置100と、ユーザによって使用される一つ以上の端末装置200とを備える。
 機械学習装置100と、端末装置200とは、ネットワークNWを介して通信可能に接続される。ネットワークNWは、WAN(Wide Area Network)、LAN(Local Area Network)等から構成される。機械学習システム1は、ユーザからの入力に基づいて機械学習の学習モデルを構築し、又はユーザからの入力及び学習モデルを用いて、機械学習による推論を行う。
 端末装置200は、ユーザからの入力を受け付け、その入力内容を、ネットワークNWを介して機械学習装置100に送信する。また、端末装置200は、機械学習装置100からネットワークNWを介して送信されたデータを受信し、ユーザに提示する。
(機械学習装置100のハードウェア構成)
 図2は、本実施形態の機械学習装置100のハードウェア構成を示す図である。機械学習装置100は、汎用のコンピュータである。機械学習装置100は、例えば、サーバコンピュータ、据え置き型のPC(Personal Computer)、ラップトップPC等により実現される。
 図2に示すように、機械学習装置100は、プロセッサ11と、メモリ12と、ストレージ13と、通信IF14と、入出力IF15と、を備える。
 プロセッサ11は、プログラムに記述された命令セットを実行するためのハードウェアであり、演算装置、レジスタ、周辺回路などにより構成される。メモリ12は、プログラム、および、プログラム等で処理されるデータ等を一時的に記憶するためのものであり、例えばDRAM(Dynamic Random Access Memory)等の揮発性のメモリにより実現される。メモリ12に記憶されるプログラムは、本発明に係る機械学習を実行するプログラム等である。ストレージ13は、データを保存するための記憶装置であり、例えばフラッシュメモリ、HDD(Hard Disc Drive)、SSD(Solid State Drive)により実現される。通信IF14は、機械学習装置100が外部の装置と通信するため、信号を送受信するためのインタフェースである。入出力IF15は、ユーザからの入力を受け付けるための入力装置、および、ユーザに対し情報を提示するための出力装置とのインタフェースとして機能する。
 なお、端末装置200においても、図2に示したハードウェア構成と同様の構成としてもよい。端末装置200の各構成要素の動作は、上述の機械学習装置100と同様に、メモリ12に記憶されたプログラムに従ったプロセッサ11により実現する。
(機械学習装置100の機能的構成)
 図3は、本実施形態に係る機械学習装置100の機能的構成を示すブロック図である。図3を参照して、実施形態1に係る機械学習装置100の機能的構成について説明する。
 機械学習装置100は、通信部110と、記憶部120と、制御部130とを備える。
 通信部110は、機械学習装置100が他の装置と通信するための処理を行う。ここでいう他の装置とは、ネットワークNWで接続されたPCでもよいし、スマートフォン、タブレットなどの端末であってもよい。また、他の装置は、入出力装置、例えば、フラッシュメモリやHDD、SSDなどによりデータの入出力を行う装置であってもよい。
 通信部110は、また、ネットワークNWを介した装置やローカルに接続された装置等と、セキュリティが確保されたセキュアな通信チャンネルでデータを送受信する。セキュアな通信チャンネルの構築、通信方法は、共通鍵(セッション鍵など)や公開鍵等を用いた周知の技術であるため、説明を省略する。
 記憶部120は、例えば、RAM等の揮発性のメモリ、フラッシュメモリ、HDD、SSD等により構成され、機械学習装置100が利用するデータ、及びプログラムを記憶する。記憶部120は、例えば、後述する暗号処理部1322が暗号実行領域において演算するため、データを暗号化し、又は暗号化されたデータを復号するための鍵を記憶する鍵格納部121、機械学習装置100において使用する学習モデルを記憶する学習モデル格納部122を含む。なお、鍵は、機械学習装置100内で記憶するのではなく、機械学習装置100とネットワークを介して、又は直接的に接続される鍵管理装置(不図示)において記憶するようにしてもよい。また、機械学習装置100が、機械学習のために利用した画像データ等は、セキュリティ向上のため、使用後は記憶部120から削除することが好ましい。
 鍵格納部121(後述する図4参照)は、暗号処理部1322が暗号実行領域において演算するために、データを暗号化し、又は暗号化されたデータを復号するための鍵を記憶する。鍵格納部121は、例えば、ID、鍵データや、鍵ファイルのパスを記憶する。IDは、ユーザや、組織など任意のグループ毎に割り当てて鍵を利用する構成としてもよいし、セッション毎に割り当てて鍵を利用する構成としてもよい。
 学習モデル格納部122(後述する図5参照)は、機械学習装置100において使用する学習モデルを記憶する。学習モデル格納部122は、学習モデルに加え、複数の学習モデルを区別するためのID、学習モデルが適用できる範囲などを示すタグ、画像診断において特定の部位の特定までも可能とする学習モデルか否かの区別、当該学習モデルを用いて計算を行う際の計算コスト(計算量、計算時間、費用、計算資源等を含む。)及び計算速度、当該学習モデルを用いて推論を行った場合の精度などを関連付けて記憶してもよい。
 制御部130は、機械学習装置100のプロセッサが記憶部120に記憶されるプログラムを読み込み、プログラムに含まれる命令を実行することにより実現される。制御部130は、機械学習装置100の動作を制御する。具体的には、制御部130は、データ取得部131と、機械学習計算部132と、受付部1321と、暗号処理部1322と、平文処理部1323と、を含む。
 データ取得部131は、機械学習により学習モデルのパラメータを更新する場面(以下、特に言及する場合を除き、学習モデルを新たに生成する場合も含む。)においては、教師データとなる画像データ及び当該画像データに対するラベルを取得する。「ラベル」は、例えば、画像データが示す対象物の種別を示したり、画像データにおいて特定したい対象物の範囲(位置)を示したりするものを含む。また、データ取得部131は、学習モデルを用いて推論を行う場面においては、推論対象となる画像データを取得する。例えば、ユーザは、端末装置200等において画像データ及びラベルを入力し、データ取得部131は、ネットワークNWを介して、ユーザが入力した画像データ及びラベルを取得する。
 機械学習計算部132は、データ取得部131において取得した画像データ等に基づいて、畳み込みニューラルネットワークを用いた計算処理を行う。この計算処理は、具体的には、学習モデルのパラメータを更新するための学習、もしくは、取得した画像データ等から学習モデルを用いて行う推論のための計算処理である。なお、畳み込みニューラルネットワークは複数の層から構成される。「層」については、図7及び図8(後述)において説明する。
 機械学習計算部132は、計算処理の過程において、予めユーザから暗号実行領域において演算する範囲を取得しておき、計算処理の過程の一部を準同型暗号による暗号実行領域において演算し、計算処理の過程の一部を平文実行領域において演算する。機械学習計算部132は、具体的には、受付部1321と、暗号処理部1322と、平文処理部1323と、を含む。
 受付部1321は、畳み込みニューラルネットワークの入力層から出力層に向けての途中の層である第N層(ただし、Nは自然数。)を指定する層指定情報を受け付ける。すなわち、層指定情報により第N層が指定されたとき、入力層から第N層までは暗号実行領域において演算し、第(N+1)層から出力層までの演算を平文実行領域において演算する。
 受付部1321は、第N層を指定する層指定情報を受け付けるが、ここで取得する層指定情報は、「N」を示す具体的な数字であって、畳み込みニューラルネットワークにおいて、中間層のどの層までを暗号実行領域において演算するかという範囲を示すものである。畳み込みニューラルネットワークは、一般的には、入力層(0層)、中間層(1層~M層)、出力層(M+1層)といった複数の層を有する。ここで、Mは任意の自然数である。このとき、ユーザは、中間層の第N層までを暗号実行領域において演算することを決め、受付部1321は、暗号実行領域において演算を行う境界の層となるNを取得する。
 また、層指定情報は、「N」を示す具体的な数字の他に、「N」を指定することができる情報であってもよい。例えば、ユーザから受け付けた計算コストの条件であってもよい。受付部1321は、層指定情報として、計算コストの条件を受け付けた場合は、その計算コストで実行することができる「N」を算出する。
 暗号処理部1322は、準同型暗号による暗号実行領域において演算する機能を有する。暗号処理部1322は、機械学習計算部132における計算処理の過程において、入力層(0層)から中間層のN層までの計算処理を準同型暗号による暗号実行領域において演算する。
 暗号処理部1322は、具体的には、鍵格納部121において管理する暗号化のための鍵(公開鍵)を用いて、データ取得部131が取得した画像データ等を暗号化する。このとき、暗号処理部1322は、暗号化の方法について、暗号化状態のまま演算が可能な準同型暗号方式(Paillier方式等、Lifted-Ellgamal方式、Somewhat Homomorphic Encryption方式、Fully Homomorphic Encryption方式等)を用いる。
 暗号処理部1322は、データ取得部131が取得した画像データ等及び機械学習に用いる学習モデルを暗号化し、暗号実行領域において演算する。
 暗号処理部1322は、入力層(0層)からユーザの指定した中間層のN層までの計算処理を暗号化実行領域において演算した後、鍵格納部121において管理する復号のための鍵(秘密鍵)を用いて、データを復号する。
 平文処理部1323は、平文実行領域において演算する機能を有する。平文処理部1323は、暗号処理部1322において演算されたN層までの演算結果を取得し、引き続き(N+1)層から出力層までの演算を平文実行領域において行う。これにより、推論または学習モデルのパラメータの更新を行う。
 なお、上述した機械学習装置100の機能の一部を、端末装置200が担ってもよい。例えば、予め、機械学習装置100と端末装置200とで、画像データ等を準同型暗号で暗号化するための鍵を共有しておき、端末装置200において、推論や機械学習の対象となる画像データを準同型暗号で暗号化するようにしてもよい。
 端末装置200は、準同型暗号で暗号化された画像データを機械学習装置100に送信し、機械学習装置100は、通信部110を介して受信した当該画像データを、記憶部120に格納する。そして、データ取得部131は、暗号化された画像データを記憶部120から取得し、暗号処理部1322へ送る。次いで、暗号処理部1322は、暗号化された画像データについて演算を実行する。その際、上述したように暗号処理部1322が演算結果を復号するのに代えて、平文処理部1323が演算結果を復号するようにしてもよい。すなわち、暗号処理部1322では、準同型暗号で暗号化されたデータのみ扱うようにする。このような構成をとることで、機械学習装置100においては、画像データが準同型暗号で暗号化された状態、もしくは、復号されても人間が画像を目視では識別困難な状態であるため、機械学習装置100は、よりセキュリティを高めて、計算処理を実行することができる。
(データベースの具体例)
 図4は、鍵格納部121の一例を示す図である。鍵格納部121は、例えば、ユーザ、セッションなど鍵の利用場面を識別するための「ID」、鍵(公開鍵「key1」及び秘密鍵「key2」)の値を、関連付けて記憶する。図4において、「ID」が「0000001」の公開鍵は「0KJFDEMNFS679FDDFHKL…」、秘密鍵は、「2SFSHLJHFSKLJADL7DJLH…」である。同様に、「ID」が「0000002」の公開鍵は「43JFLKEJFDHKLFS3JKLFN…」、秘密鍵は、「FDLK732492SFGKJHKSDH…」であり、「ID」が「0000003」の公開鍵は「JLKJ02SFHL89JLKHJKF897…」、秘密鍵は、「40389439LFKSJFLKJFSLH…」である。なお、図4は、鍵管理の一例であって、鍵の管理方法は、これらに限られない。例えば、鍵と復号権限を持つユーザとを関連付けて記憶してもよい。
 図5は、学習モデル格納部122の一例を示す図である。学習モデル格納部122は、複数の学習モデルを区別するための「ID」、学習モデルが適用できる範囲などを示す「タグ」、画像診断において特定の部位の特定までも可能とする学習モデルか否かの区別する「部位特定」、当該学習モデルを用いて計算を行う際のコスト(計算量)を示す「コスト/MB」、及び計算速度を示す「計算速度/Mb」、当該学習モデルを用いて推論を行った場合の精度を示す「精度」、学習モデルのファイル名を示す「ファイル」が関連付けて記憶されている。
 図5において、「ID」が「0001」の学習モデルは、「タグ」欄が「CT、ガン、腎臓、医療、画像診断」であり、これらの用途に適用可能で、部位特定には対応していないことを示している。また、「コスト」は10円/Mb、「計算速度」は1Mbあたり5'10、「精度」は80%で、学習モデル自身は「0001.json」というファイルに記憶されていることを示している。
 また、「ID」が「0002」の学習モデルは、「タグ」欄が「CT、ガン、腎臓、医療、画像診断」であり、これらの用途に適用可能で、「部位特定」欄が「〇」であることから、部位特定に対応していることを示している。また、「コスト」は45円/Mb、「計算速度」は1Mbあたり6'00、「精度」は85%で、学習モデル自身は「0002.json」というファイルに記憶されていることを示している。
 「ID」が「0003」や「0004」についても同様であるので、説明を省略する。なお、学習モデル格納部122は、上述した項目に限らず、学習モデルを適用する組織(会社、部署など)、業界(医療、食品、ECなど)や、所有者等に関連付けて記憶されていてもよい。
(画像データ及びラベルの具体例)
 図6は、ユーザが画像データとラベルを入力するための画面の一例を示す図である。データ取得部131は、ユーザから対象となる画像データの入力を受け付けると、当該画像データを読み込んだ上で、画面401に示すような画像410やファイル情報(ファイル名、ファイル生成日時等)をユーザが操作する端末装置200に表示させる。このとき、データ取得部131は、ユーザからラベルも取得する。画面401において、ユーザは、入力した画像データが「正常」を示すデータか「異常」を示すデータかを選択し、ラベル付けを行う。また、ユーザは、異常部分を示す部位の特定まで行う学習モデルのラベル付けを行う場合には、当該部位の範囲を画面上で指定し、ラベル付けを行う。例えば、図6において、指定された部位特定の範囲は、画像410の斜線部分にて示されている。
 このようにして、データ取得部131は、画像データ及び当該画像データに対するラベルを関連付けた教師データを取得する。そして、機械学習計算部132は、教師データに基づいて、画像データに対するラベルを出力するように畳み込みニューラルネットワークの学習モデルのパラメータを生成(更新)する。ラベルの出力として、例えば、入力した画像データについて、ガンの診断を行う場合、正常を示す画像か異常を示す(ガンの疑い)画像であるかを出力する。また、ガンの疑いがあると出力するときは、その部位特定も出力するようにしてもよい。
 なお、推論を行うために画像データの入力のみを行う場合は、ラベル付けは不要であり、画像データの入力のみが行われる。
(畳み込みニューラルネットワークの一例)
 図7は、一般的な畳み込みニューラルネットワークのモデル概念図である。ニューラルネットワークは、入力層(0層)、中間層(1層からM層)、出力層(M+1層)といった複数の層を有する。機械学習計算部132は、その計算処理過程において、受付部1321が暗号実行領域で演算する範囲の境界(第N層)を示す層指定情報を取得し、暗号処理部1322において暗号実行領域での演算を、平文処理部1323において平文実行領域での演算を行う。
 暗号処理部1322は、データ取得部131において取得した画像データ等と選択された学習モデルを、鍵格納部121に記憶する鍵(公開鍵)を用いて準同型暗号で暗号化し、推論または学習モデルのパラメータ更新のための演算を暗号実行領域において行う。具体的には、暗号処理部1322は、0層から中間層の第N層までの演算処理を行う。また、暗号処理部1322は、暗号実行領域における演算結果を、鍵格納部121に記憶する鍵(暗号化した公開鍵と対になる秘密鍵)を用いて復号する。復号した結果は、平文処理部1323へ送ってもよい。なお、暗号実行領域における演算結果を記憶部120に格納する場合は、セキュリティ上、暗号化したまま格納し、平文処理部1323において、演算結果を復号することが好ましい。
 平文処理部1323は、暗号処理部1322において復号した画像データ等及び学習モデルを用いて、第(N+1)層から第(M+1)層までの計算過程について、平文実行領域において演算処理を行う。
 図8は、中間層を具体的に示した図である。畳み込みニューラルネットワークは、中間層として、一般的に、畳み込み演算を行うための畳み込み層、ReLu層、プーリング層、全結合層などを有する。本発明において、「層」とは、畳み込み層、ReLu層、プーリング層など各層単位を、1層、2層、3層としてもよいし、畳み込み、ReLu、プーリングといった一連の処理を一つの処理単位として1層、2層、3層としてもよい。この場合、例えば、「畳み込み」、「ReLu」、「プーリング」の組み合わせを一層としてもよいし、「畳み込み」、「プーリング」の組み合わせや、「ReLu」、「プーリング」の組み合わせを一層としてもよい。
 なお、畳み込みニューラルネットワークは、一般的に、全結合層を中間層の後半で用いることが多いが、全結合層を暗号化実行領域で演算してもよい。
(処理の流れ)
 図9は、機械学習装置100が実行する処理の一例を示すフローチャートである。
 制御部130は、画像データ等のデータ、又は画像データ等のデータ及びラベルを、通信部110を介して、端末装置200から取得する(ステップS101)。
 制御部130は、暗号実行領域で行う演算と平文実行領域で行う演算との境界となる、第N層を指定する層指定情報を、通信部110を介して、端末装置200から取得する(ステップS102)。
 制御部130は、取得した画像等のデータと適用する学習モデルを準同型暗号で暗号化する。そして、0層から第N層までを暗号化実行領域において演算し、その後復号する(ステップS103)。
 制御部130は、ステップS103において復号した演算結果に基づいて、第(N+1)層から出力層までを平文実行領域において演算し、推論又は学習モデルのパラメータの更新を行う。そして、制御部130は、演算結果を記憶部120に格納し、処理を終了する(ステップS104)。
(効果の説明)
 本実施形態に係る機械学習装置100は、機械学習における演算の一部を暗号化実行領域において、その他の部分を平文実行領域において演算することで、全てを暗号化実行領域において演算する場合と比較して、計算コストを削減し、現実的な時間で演算することを可能にする。
 畳み込みニューラルネットワークを用いた機械学習モデルでは、一般的に中間層の処理過程において、畳み込み演算のフィルタリング処理が繰り返されることにより、入力層に入力された画像データは、目視で識別が困難な状態となっていく。すなわち、畳み込み演算を繰り返した後の入力データは、人間によって識別することが困難であるから、暗号化していなくとも情報漏洩のリスクが低い。本実施形態に係る機械学習装置100は、この点に着目し、ユーザが指定した第N層までを暗号化実行領域において演算し、第(N+1)層以降を平文実行領域において演算することで、計算コストの削減と、セキュリティの確保の両立を実現することができる。
 実施形態1に係る機械学習システム1は、ユーザから層指定情報を取得した後、暗号実行領域及び平文実行領域において計算処理を行う。これに対し、実施形態2に係る機械学習システム2は、ユーザが層指定情報を指定する際、入力画像を平文実行領域において計算したときに入力画像が畳み込み演算によりどのように変化するか、また、計算コストがどのように変化するかなどの情報をユーザに提供する。ユーザは、提供された情報を参照して、ユーザが求める計算コストやセキュリティレベルに応じた層指定情報を容易に指定することができるようになる。
(機械学習システム2の構成)
 図10は、本実施形態に係る機械学習システム2を示す図である。図10に示すように、本実施形態に係る機械学習システム2は、機械学習装置300と、ユーザによって使用される一つ以上の端末装置200と、を備える。機械学習装置300は、第1実施形態に係る機械学習装置100と比較して、提供部3324と、推定部3325と(図11において詳述。)をさらに備える。提供部3324は、ユーザが入力した画像データを平文実行領域において計算した場合にどのように変化するか、また計算コストなどの情報を示すことで、ユーザが暗号実行領域において演算を行う範囲の選択を補助する機能を備える。
(機械学習装置300の機能的構成)
 図11は、本実施形態における機械学習装置300の機能的構成を示すブロック図である。機械学習装置300は、通信部110と、記憶部120と、制御部330と、を備える。機械学習装置300における通信部110及び記憶部120の機能構成は、機械学習装置100と同様であるため、説明を省略する。
 制御部330は、機械学習装置300のプロセッサが記憶部120に記憶されるプログラムを読み込み、プログラムに含まれる命令を実行することにより実現される。制御部330は、機械学習装置300の動作を制御する。具体的には、制御部330は、データ取得部131と、機械学習計算部332と、受付部1321と、暗号処理部1322と、平文処理部1323と、提供部3324と、推定部3325と、を含む。制御部330は、提供部3324及び推定部3325を備えること以外は、機械学習装置100における制御部130と同様であるため、重複する説明を省略する。
 提供部3324は、データ取得部131において取得するユーザから入力される画像データについて、入力層から出力層までの演算を、平文処理部1323が実行した場合の当該演算に関する平文途中演算情報を提供する。平文途中演算情報とは、入力層から出力層までの途中過程における演算に関する情報であり、平文実行領域における、途中の層で入力又は出力されるデータ、途中の層までにかかる計算時間(及びここから推定される推論又は学習に係る全時間)、途中の層までにかかる計算量(及びここから推定される推論又は学習にかかる全計算量)、計算量から算出される料金などを含むものである。平文途中演算情報は、例えば、平文処理部1323が、ユーザから入力される一つの画像データについて入力層から出力層までの演算を実行し、当該演算に関する情報に基づいて算出することができる。平文途中演算情報は、例えば、通信部110を介して、ユーザが利用する端末装置200に送信されてもよいし、機械学習装置100における表示装置(不図示)に表示されてもよい。
 提供部3324は、例えば、平文途中演算情報として、入力層に入力される画像データと、入力層から出力層までの各層に入力されるデータとの情報の差を、ユーザが比較できる態様で提供してもよい。また、提供部3324は、必ずしもユーザが比較できる態様で提供せず、平文途中演算情報として、各層に入力される画像データを提供してもよい。
 提供部3324は、畳み込み演算が繰り返されることで目視による識別が困難になることを前提とし、各層に入力される画像データをユーザに提供することで、どの層に入力される画像データまで目視で識別可能かということに関する参考情報(情報の差)を提供し、ときには、比較を行うことにより、暗号化して機械学習を行う必要のある層を判断するための情報を提供する。例えば、サンプルの画像データについて、ある中間層である第1の層と、第1の層より後に処理が実行される第2の層とに入力されるデータのそれぞれをユーザに提示してもよい。これにより、サンプルの画像データが、層の処理によって、どのように変化し、情報の差がでるか、ユーザが比較でき、ユーザが層指定情報を指定するのを支援する。
 提供部3324は、入力層から出力層までの全ての入力画像データを提供しなくともよく、入力層から出力層までの複数の所定の層について、暗号処理部1322が演算を行った場合に入力される画像データと、平文処理部1323が演算を行った場合に入力される画像データとを、ユーザが比較できる態様で提供してもよい。このとき、複数の所定の層の選び方については、5層ごとに1層を抽出するなど、周期性をもって選択してもよいし、ランダムに複数の層を抽出してもよい。
 提供部3324は、さらに、暗号処理部1322が演算を行った場合に、途中の層に入力される画像データに代えて、マスク画像を提供してもよい。すなわち、暗号処理部1322が演算を行った場合に入力される画像データは暗号化されているため、人にとって識別不能なデータであることから、あえてその画像データを提示する必要性に乏しく、代わりにマスク画像を提供することで、人にとって識別不能なデータであることを示してもよい。
 提供部3324は、例えば、入力層から所定の層までを暗号処理部1322が演算し、当該所定の層の次の層から出力層までを平文処理部1323が実行した場合の計算コストを、ユーザが比較できる態様で提供してもよい。提供部3324は、所定の層までを暗号実行領域において演算し、残りを平文実行領域においてに演算した場合の計算時間及び/又は計算量などをユーザに提供することで、暗号化して機械学習を行う必要のある層を判断するための情報提供をすることができる。
 提供部3324は、推定部3325(後述)が算出する層指定推定情報を提供してもよい。層指定推定情報は、データ取得部131が取得した画像データに関連するデータと、当該画像データについて指定された層指定情報の相関関係に基づいて算出される情報である。層指定推定情報は、例えば、第N層を具体的に特定する数値であってもよいし、Nの範囲であってもよい。
 推定部3325は、データ取得部が取得した画像データに関連するデータと、当該画像データについて指定された層指定情報との相関関係を学習する。画像データに関連するデータとは、画像データを取り扱う業界(医療、食品、EC等)、内容(診断、マーケティング等)、組織、ユーザなどである。推定部3325は、何層目まで暗号化するかを、画像データに関連するデータと相関関係を学習する。そして、推定部3325は、学習した結果、入力される画像データに関連するデータと相関関係にある層指定情報を、層指定推定情報として算出する。上述したように、提供部3324が、推定部3325が算出した層指定推定情報を、平文途中演算情報とともにユーザに提供することで、層指定情報を指定する際の目安となる。これにより、ユーザは層指定情報を容易に指定することができるようになる。
(提供部3324が提供する平文途中演算情報の具体例)
 図12は、提供部3324が提供する画面の一例を示す図である。画面402には、平文処理部1323が演算を実行した場合に、計算過程5層の各層に入力される画像データ(「牛」を示す画像)を示しており、ユーザが暗号実行領域において演算を行う範囲を「選択中」であることを示すアイコン412が表示されている。
 図12において、「Input」の部分には、ユーザが入力した入力画像が表示される。また、画面402には、平文途中演算情報として、複数の層(計算過程1~5)における入力画像が、表示されている。一般的に、畳み込みニューラルネットワークにおいて、畳み込み演算のフィルタリング処理が繰り返される過程で、入力画像は目視で識別しにくくなるため、深い層における入力画像ほど、識別が困難な画像となっている。例えば、画面402の入力画像(Input)は、牛であり、Inputと計算過程1で示される画像は、目視では、殆ど区別がつかない。一方、計算過程3~5で示される画像は、牛の輪郭がなく、目視では、画像が示す対象物を識別することが困難であることが分かる。
 また、画面402には、複数の層に入力される画像データだけではなく、途中の層までを暗号実行領域において演算し、それ以降を平文実行領域において演算した場合の計算時間(「Time」)や費用(「Cost」)も合わせて示されている。例えば、計算過程1に対して、「Time」は「5'36」であり、「Cost」は「$4」である。すなわち、計算過程1までを暗号実行領域において演算し、それ以降を平文実行領域において演算した場合の計算時間は「5'36」、費用は「$4」であることを示している。畳み込みニューラルネットワークにおける処理の層が深くなる(計算過程1から5へ進む)につれて、暗号実行領域において演算する計算量が増加していくため、計算時間や費用も増加していく。なお、図12では、計算コストとして、計算時間や費用が提示されているが、演算にかかる計算量や、計算資源なども計算コストとしてユーザに提示してもよい。
 また、ユーザが、ボタン422をクリック等することで、上述の「牛」の入力画像ではなく、別の画像や、プラットフォーム側で予め用意したサンプル画像、情報量の差が示されるイラスト等の画像を入力画像として変更できるようにしてもよい。この場合、これらのサンプル画像に基づいて、平文途中演算情報が提供される。
 図13は、提供部3324が提供する画面の一例を示す図である。画面403の領域413には、ユーザが暗号実行領域において演算を行う範囲として「計算過程2」を選択したことが示されている。また、ユーザは、「決定」ボタン423をクリック等することにより「計算過程2」を層指定情報として入力できる。なお、層の指定は、例えば、各計算過程において示されている画像データや、当該画像データの下方に示されているアイコン(図13では鍵アイコン)をクリック等することにより行われてもよいし、キーボードや音声により行われてもよい。
 図13では、ユーザが選択した層である計算過程2までの層における画像データをマスク画像で示している。ある層までを暗号実行領域において演算する場合、その層までに入力される画像データは暗号化されるため、人による識別は不可能であり、その暗号化された画像データを敢えてユーザに提示する必要性は乏しい。マスク画像によって代替して表示を行うことにより、暗号実行領域における演算を減らすことができる。しかしながら、ユーザが演算結果をイメージしやすくするために、暗号実行領域における演算結果を表示することを妨げるものではない。
(処理の流れ)
 図14は、機械学習装置300が実行する処理の一例を示すフローチャートである。
 制御部130は、画像データ等のデータ、又は画像データ等のデータ及びラベルを、通信部110を介して、端末装置200から取得する(ステップS201)。
 制御部130は、入力層から出力層までの各層において、平文処理部1323が実行した場合の当該演算に関する平文途中演算情報を、通信部110を介して、端末装置200に提供する(ステップS202)。
 制御部130は、暗号実行領域で行う演算と平文実行領域で行う演算との境界となる、第N層を指定する層指定情報を、通信部110を介して、端末装置200から取得する(ステップS203)。
 制御部130は、取得した画像等のデータと適用する学習モデルを準同型暗号で暗号化する。そして、0層から第N層までを暗号化実行領域において演算し、その後復号する(ステップS204)。
 制御部130は、ステップS204において復号した演算結果に基づいて、第(N+1)層から出力層までを平文実行領域において演算し、推論又は学習モデルのパラメータの更新を行う。そして、制御部130は、演算結果を記憶部120に格納し、処理を終了する(ステップS205)。
(効果の説明)
 本実施形態に係る機械学習装置300は、機械学習における演算の一部を暗号実行領域において、その他の部分を平文実行領域において演算することを前提として、入力画像を平文実行領域で処理した場合の、平文途中演算情報をユーザに提供する。平文途中演算情報を参照することにより、ユーザは、ユーザが求める実用的な計算コストや、セキュリティレベルに応じた、境界となる層の選択が可能となる。
 以上で実施形態の説明を終了するが、上記実施形態は一例に過ぎない。そのため、機械学習装置100、300の具体的な構成、処理内容等は上記実施形態で説明したものに限られない。
 また、本開示に係る機械学習装置は、上記装置によらず、例えば、コンピュータがプログラムを実行することで、その機能を実現してもよい。情報提供システムの機能を実現するためのプログラムは、USB(Universal Serial Bus)メモリ、CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)、HDD(Hard Disc Drive)、SSD(Solid State Drive)等のコンピュータ読み取り可能な記録媒体に記憶されてもよいし、ネットワークを介してコンピュータにダウンロードされてもよい。
 以上、本開示の好ましい実施形態について説明したが、上記実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものとする。
1 機械学習システム、2 機械学習システム、11 プロセッサ、12 メモリ、13 ストレージ、14 通信IF、15 入出力IF、100 機械学習装置、110 通信部、120 記憶部、130 制御部、131 データ取得部、132,332 機械学習計算部、200 端末装置、300 機械学習装置、330 制御部、401,402,403 画面、410 画像、412 アイコン、413 領域、423 ボタン、1321 受付部、1322 暗号処理部、1323 平文処理部、3324 提供部、3325 推定部。

Claims (12)

  1.  画像データを取得するデータ取得部と、
     前記画像データに基づいて、畳み込みニューラルネットワークを用いた計算処理を行う機械学習計算部と、を備え、
     前記畳み込みニューラルネットワークは複数の層から構成され、
     前記機械学習計算部は、
      準同型暗号による暗号実行領域において演算する暗号処理部と、
      平文実行領域において演算する平文処理部と、
      前記畳み込みニューラルネットワークの入力層から出力層に向けての途中の層である第N層を指定する層指定情報を受け付ける受付部と、を有し、
      前記暗号処理部は、前記入力層から前記第N層までの演算を実行し、
      前記平文処理部は、第(N+1)層から前記出力層までの演算を実行する、機械学習装置。
  2.  前記データ取得部は、前記画像データ及び当該画像データに対するラベルを関連付けた教師データを取得し、
     前記機械学習計算部は、前記教師データに基づいて、前記画像データに対する前記ラベルを出力するよう畳み込みニューラルネットワークの学習モデルのパラメータを生成する請求項1に記載の機械学習装置。
  3.  入力される画像データについての前記入力層から前記出力層までの演算を、前記平文処理部が実行した場合の当該演算に関する平文途中演算情報を提供する提供部をさらに備える請求項1又は請求項2に記載の機械学習装置。
  4.  前記提供部は、前記平文途中演算情報として、前記入力層に入力される画像データと、前記入力層から前記出力層までの各層に入力されるデータとの情報の差を、ユーザが比較できる態様で提供する、請求項3に記載の機械学習装置。
  5.  前記提供部は、前記平文途中演算情報として、各層に入力される画像データを提供する、請求項3または請求項4に記載の機械学習装置。
  6.  前記提供部は、前記入力層から所定の層までを前記暗号処理部が演算し、当該所定の層の次の層から前記出力層までを前記平文処理部が実行した場合の計算コストを、ユーザが比較できる態様で提供する、請求項3から請求項5のいずれか一項に記載の機械学習装置。
  7.  前記提供部は、前記入力層から前記出力層までの複数の所定の層について、前記暗号処理部が演算を行った場合に入力される画像データと、前記平文処理部が演算を行った場合に入力される画像データとを、ユーザが比較できる態様で提供する、請求項3から請求項6のいずれか一項に記載の機械学習装置。
  8.  前記提供部は、前記暗号処理部が演算を行った場合に入力される画像データに代えて、マスク画像を提供する、請求項7に記載の機械学習装置。
  9.  前記データ取得部が取得した画像データに関連するデータと、当該画像データについて指定された層指定情報との相関関係を学習する推定部をさらに備え、
      前記推定部は、前記学習の結果に基づいて、入力される画像データに関連するデータと相関関係にある層指定情報を、層指定推定情報として算出し、
     前記提供部は、前記推定部が算出した層指定推定情報を提供する、請求項3から請求項8のいずれか一項に記載の機械学習装置。
  10.  画像データを取得するデータ取得部と、
     前記画像データに基づいて、畳み込みニューラルネットワークを用いた計算処理を行う機械学習計算部と、を備え、
     前記畳み込みニューラルネットワークは複数の層から構成され、
     前記機械学習計算部は、
      準同型暗号による暗号実行領域において演算する暗号処理部と、
      平文実行領域において演算する平文処理部と、
      前記畳み込みニューラルネットワークの入力層から出力層に向けての途中の層である第N層を指定する層指定情報を受け付ける受付部と、を有し、
      前記暗号処理部は、前記入力層から前記第N層までの演算を実行し、
      前記平文処理部は、第(N+1)層から前記出力層までの演算を実行する、機械学習システム。
  11.  画像データを取得するステップと、
     前記画像データに基づいて、畳み込みニューラルネットワークを用いた計算処理を行うステップと、を備え、
     前記畳み込みニューラルネットワークは複数の層から構成され、
     前記畳み込みニューラルネットワークを用いた計算処理を行うステップは、
      準同型暗号による暗号実行領域において演算するステップと、
      平文実行領域において演算するステップと、
      前記畳み込みニューラルネットワークの入力層から出力層に向けての途中の層である第N層を指定する層指定情報を受け付けるステップと、を有し、
      前記暗号実行領域では、前記入力層から前記第N層までの演算が実行され、
      前記平文実行領域では、第(N+1)層から前記出力層までの演算が実行される、機械学習方法。
  12.  制御部と、記憶部と、を備えるコンピュータに実行させる機械学習プログラムであって、
     前記制御部が、画像データを取得するステップと、
     前記記憶部が、前記画像データを記憶するステップと、
     前記制御部が、前記記憶部が記憶した前記画像データに基づいて、畳み込みニューラルネットワークを用いた計算処理を行うステップと、を備え、
     前記畳み込みニューラルネットワークは複数の層から構成され、
     前記畳み込みニューラルネットワークを用いた計算処理を行うステップは、
      準同型暗号による暗号実行領域において演算するステップと、
      平文実行領域において演算するステップと、
      前記畳み込みニューラルネットワークの入力層から出力層に向けての途中の層である第N層を指定する層指定情報を受け付けるステップと、を有し、
      前記暗号実行領域では、前記入力層から前記第N層までの演算が実行され、
      前記平文実行領域では、第(N+1)層から前記出力層までの演算が実行される、機械学習プログラム。
PCT/JP2022/043196 2021-12-01 2022-11-22 機械学習装置、機械学習システム、機械学習方法、および機械学習プログラム WO2023100720A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP22901153.1A EP4296897A1 (en) 2021-12-01 2022-11-22 Machine learning device, machine learning system, machine learning method, and machine learning program
US18/368,572 US11956353B2 (en) 2021-12-01 2023-09-15 Machine learning device, machine learning system, and machine learning method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021195808A JP7076167B1 (ja) 2021-12-01 2021-12-01 機械学習装置、機械学習システム、機械学習方法、および機械学習プログラム
JP2021-195808 2021-12-01

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/368,572 Continuation US11956353B2 (en) 2021-12-01 2023-09-15 Machine learning device, machine learning system, and machine learning method

Publications (1)

Publication Number Publication Date
WO2023100720A1 true WO2023100720A1 (ja) 2023-06-08

Family

ID=81753572

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/043196 WO2023100720A1 (ja) 2021-12-01 2022-11-22 機械学習装置、機械学習システム、機械学習方法、および機械学習プログラム

Country Status (4)

Country Link
US (1) US11956353B2 (ja)
EP (1) EP4296897A1 (ja)
JP (2) JP7076167B1 (ja)
WO (1) WO2023100720A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7076167B1 (ja) * 2021-12-01 2022-05-27 Eaglys株式会社 機械学習装置、機械学習システム、機械学習方法、および機械学習プログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019046460A (ja) 2017-08-30 2019-03-22 株式会社アクセル 推論装置、及び推論方法
US20200082259A1 (en) * 2018-09-10 2020-03-12 International Business Machines Corporation System for Measuring Information Leakage of Deep Learning Models
JP7076167B1 (ja) * 2021-12-01 2022-05-27 Eaglys株式会社 機械学習装置、機械学習システム、機械学習方法、および機械学習プログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08161284A (ja) * 1994-12-07 1996-06-21 Japan Aviation Electron Ind Ltd 暗号化装置及び復号化装置
FR3057090B1 (fr) 2016-09-30 2018-10-19 Safran Identity & Security Procedes d'apprentissage securise de parametres d'un reseau de neurones a convolution, et de classification securisee d'une donnee d'entree
JP6705777B2 (ja) 2017-07-10 2020-06-03 ファナック株式会社 機械学習装置、検査装置及び機械学習方法
US20190065974A1 (en) 2017-08-30 2019-02-28 Axell Corporation Inference device, inference system, and inference method
JP6730740B2 (ja) * 2017-12-25 2020-07-29 株式会社アクセル 処理装置、処理方法、処理プログラム、及び暗号処理システム
US11362803B2 (en) * 2019-03-29 2022-06-14 Wipro Limited Method and system for providing explanation for output generated by an artificial intelligence model
JP7017800B2 (ja) 2019-04-15 2022-02-09 株式会社アクセル 演算装置、演算システム、及び演算方法
US11611430B2 (en) 2019-04-15 2023-03-21 Axell Corporation Arithmetic apparatus, arithmetic system and arithmetic method
CN111563868B (zh) 2020-07-20 2020-10-20 腾讯科技(深圳)有限公司 基于人工智能的头部装饰处理方法及装置
KR20220048225A (ko) * 2020-10-12 2022-04-19 삼성전자주식회사 동형 연산 가속기 및 이를 포함하는 동형 연산 수행 장치
JP7096610B2 (ja) * 2021-01-15 2022-07-06 株式会社アクセル 処理装置、推論装置、学習装置、処理システム、処理方法、及び処理プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019046460A (ja) 2017-08-30 2019-03-22 株式会社アクセル 推論装置、及び推論方法
US20200082259A1 (en) * 2018-09-10 2020-03-12 International Business Machines Corporation System for Measuring Information Leakage of Deep Learning Models
JP7076167B1 (ja) * 2021-12-01 2022-05-27 Eaglys株式会社 機械学習装置、機械学習システム、機械学習方法、および機械学習プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
THEO RYFFEL; EDOUARD DUFOUR-SANS; ROMAIN GAY; FRANCIS BACH; DAVID POINTCHEVAL: "Partially Encrypted Machine Learning using Functional Encryption", ARXIV.ORG, 23 September 2021 (2021-09-23), XP091042496 *

Also Published As

Publication number Publication date
EP4296897A1 (en) 2023-12-27
US20240007287A1 (en) 2024-01-04
US11956353B2 (en) 2024-04-09
JP2023081816A (ja) 2023-06-13
JP7076167B1 (ja) 2022-05-27
JP2023081793A (ja) 2023-06-13

Similar Documents

Publication Publication Date Title
US11902413B2 (en) Secure machine learning analytics using homomorphic encryption
US11886989B2 (en) System for measuring information leakage of deep learning models
CN111931216B (zh) 一种基于隐私保护的方式获取联合训练模型的方法及系统
US11923070B2 (en) Automated visual reporting technique for medical imaging processing system
Thummisetti et al. Advancing healthcare informatics for empowering privacy and security through federated learning paradigms
WO2023100720A1 (ja) 機械学習装置、機械学習システム、機械学習方法、および機械学習プログラム
Singh et al. Cloud-based patient health information exchange system using blockchain technology
CN113810168A (zh) 机器学习模型的训练方法、服务器及计算机设备
WO2020004139A1 (ja) 個人情報分析システム、及び個人情報分析方法
JP6585846B2 (ja) 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム
US20230259654A1 (en) Privacy-preserving computing on subject data used to develop artificial intelligence tools
CN115051816B (zh) 基于隐私保护的云计算方法、金融数据云计算方法及装置
JP7112151B1 (ja) 機械学習装置、機械学習システム、機械学習方法、および機械学習プログラム
EP3985540B1 (en) Method and apparatus for generating synthetic data
US10586614B1 (en) System and method for timely multi-channel notification of treatment
JP2024519445A (ja) セキュアなデータ分析
Keerup et al. Privacy-preserving analytics, processing and data management
US20230071353A1 (en) Systems and methods for adaptively improving the performance of locked machine learning programs
US11451375B2 (en) System, method and apparatus for privacy preserving inference
WO2024098172A1 (en) Artificial neural network inner product functional encryption
US20230161907A1 (en) Method and system for unifying de-identified data from mulitple sources
EP3902194A1 (en) Method and apparatus for training analysis model
Meera et al. Secured Data Dissemination in a Real-Time Healthcare System
Rajagopal et al. ADVANCEMENTS IN SMART COMPUTING AND INFORMATION SECURITY: Second
Meera et al. 4 Secured Data

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2022901153

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2022901153

Country of ref document: EP

Effective date: 20230921