WO2020174658A1 - データ処理装置、データ処理システムおよびデータ処理方法 - Google Patents

データ処理装置、データ処理システムおよびデータ処理方法 Download PDF

Info

Publication number
WO2020174658A1
WO2020174658A1 PCT/JP2019/007826 JP2019007826W WO2020174658A1 WO 2020174658 A1 WO2020174658 A1 WO 2020174658A1 JP 2019007826 W JP2019007826 W JP 2019007826W WO 2020174658 A1 WO2020174658 A1 WO 2020174658A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
layer
data processing
unit
information
Prior art date
Application number
PCT/JP2019/007826
Other languages
English (en)
French (fr)
Inventor
彰 峯澤
杉本 和夫
Original Assignee
三菱電機株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to SG11202108534PA priority Critical patent/SG11202108534PA/en
Priority to US17/426,032 priority patent/US20220343148A1/en
Priority to EP19917206.5A priority patent/EP3933710A4/en
Priority to CN201980092550.1A priority patent/CN113454654A/zh
Application filed by 三菱電機株式会社 filed Critical 三菱電機株式会社
Priority to MX2021010406A priority patent/MX2021010406A/es
Priority to JP2021501494A priority patent/JP7094434B2/ja
Priority to BR112021014660-1A priority patent/BR112021014660A2/pt
Priority to KR1020217025732A priority patent/KR20210113356A/ko
Priority to PCT/JP2019/007826 priority patent/WO2020174658A1/ja
Priority to CA3126905A priority patent/CA3126905C/en
Priority to TW110147159A priority patent/TWI771249B/zh
Priority to TW108130592A priority patent/TWI753290B/zh
Publication of WO2020174658A1 publication Critical patent/WO2020174658A1/ja
Priority to ZA2021/05148A priority patent/ZA202105148B/en
Priority to JP2022099475A priority patent/JP7313515B2/ja

Links

Images

Classifications

    • 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/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • 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
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/34Scalability techniques involving progressive bit-plane based encoding of the enhancement layer, e.g. fine granular scalability [FGS]

Definitions

  • the present invention relates to a data processing device, a data processing system, and a data processing method for generating encoded data in which information regarding the configuration of a neural network is encoded.
  • Machine learning is a method of solving classification (identification) problems and regression problems of input data.
  • a neural network simulating a neural circuit (neuron) of the brain there is a method called a neural network simulating a neural circuit (neuron) of the brain.
  • NN neural network
  • classification (identification) or regression of input data is performed by a probabilistic model (discrimination model, generation model) represented by a network in which neurons are mutually connected.
  • the NN can improve its performance by optimizing the parameters of the NN by learning using a large amount of data.
  • NNs in recent years have become large in scale, the data size of NNs tends to be large, and the computational load on computers using NNs is also increasing.
  • Non-Patent Document 1 describes a technique in which the edge weight, which is information indicating the configuration of the NN, is scalar-quantized and then encoded.
  • the data size of the data relating to the edge is compressed by encoding the weight of the edge after performing scalar quantization.
  • the NN model and parameter data size In a system in which a large number of clients are connected to a server via a data transmission network, when each of the large number of clients performs data processing using the NN learned by the server, the NN model and parameter data size and appropriate The value indicating the optimum performance depends on the processing performance of each client, the storage capacity, and the transmission band of the data transmission network with the server. Therefore, even if the NN model and parameters are encoded using the technique described in Non-Patent Document 1, it is necessary to compress the data size suitable for each of a large number of clients, and the encoding processing load increases. There was a problem of becoming higher. Further, if the number of clients is enormous, even if the data transmitted to each client is compressed, the data size to be transmitted to all clients becomes enormous.
  • the present invention solves the above problems, and provides a data processing device, a data processing system, and a data processing method that can reduce the processing load of encoding information about NNs and reduce the size of data to be transmitted.
  • the purpose is to
  • the data processing unit for learning NN the model header information for identifying the NN model, the layer header information for identifying the NN layer, and the edge weight information for each layer are coded.
  • an encoding unit that generates encoded data.
  • the encoding unit outputs the encoded data in which the model header information for identifying the NN model, the layer header information for identifying the NN layer, and the edge weight information for each layer are encoded. To generate. Since the encoding unit can encode the information regarding the layer required on the decoding side in the NN, the processing load of encoding the information regarding the NN can be reduced, and the size of data to be transmitted can be reduced.
  • FIG. 1 is a block diagram showing a configuration of a data processing system according to a first exemplary embodiment. It is a figure which shows the structural example of NN.
  • 3 is a block diagram showing a configuration of a data processing device (encoder) according to the first embodiment.
  • FIG. 3 is a block diagram showing a configuration of a data processing device (decoder) according to the first embodiment.
  • FIG. 3 is a flowchart showing the operation of the data processing device (encoder) according to the first embodiment.
  • 3 is a flowchart showing the operation of the data processing device (decoder) according to the first embodiment.
  • FIG. 4 is a diagram showing an example of encoded data according to the first embodiment.
  • FIG. 7 is a diagram showing another example of encoded data according to the first embodiment.
  • FIG. 6 is a diagram showing an example of convolution processing of one-dimensional data in the first embodiment.
  • FIG. 6 is a diagram showing an example of convolution processing of two-dimensional data in the first embodiment. It is a figure which shows the matrix of the edge weight information for every node in the 1st layer of NN. It is a figure which shows the matrix of the quantization step of the edge weight information for every node in the 1st layer of NN. It is a figure which shows the matrix of the weight information of the edge in a convolutional layer. It is a figure which shows the matrix of the quantization step of the edge weight information in a convolutional layer.
  • FIG. 15A is a block diagram showing a hardware configuration that realizes the functions of the data processing device according to the first embodiment.
  • FIG. 15B is a block diagram showing a hardware configuration that executes software that implements the functions of the data processing device according to the first embodiment.
  • FIG. 6 is a block diagram showing a configuration of a data processing device (encoder
  • FIG. 1 is a block diagram showing the configuration of the data processing system according to the first embodiment.
  • a server 1 is connected to clients 3-1, 3-2,..., 3-N via a data transmission network 2.
  • N is a natural number of 2 or more.
  • the server 1 is a data processing device that optimizes the parameters of the NN (neural network) by learning using a large amount of data to generate a high-performance NN, and the first data included in the data processing system shown in FIG. It is a processing device.
  • the data transmission network 2 is a network for transmitting data exchanged between the server 1 and the clients 3-1, 3-2,..., 3-N, and is the Internet or an intranet.
  • the information for generating the NN is transmitted from the server 1 to the clients 3-1, 3-2,..., 3-N.
  • the clients 3-1, 3-2,..., 3-N are devices that generate the NN learned by the server 1 and perform data processing using the generated NN.
  • the clients 3-1, 3-2,..., 3-N are devices having a communication function and a data processing function, such as a personal computer (PC), a camera, or a robot.
  • Each of the clients 3-1, 3-2,..., 3-N is a second data processing device included in the data processing system shown in FIG.
  • each of the clients 3-1, 3-2,..., 3-N has a different NN model and parameter data size and a value indicating appropriate performance. Therefore, even if the NN model and parameters are encoded using the technique described in Non-Patent Document 1, the data size suitable for each of the clients 3-1, 3-2,..., 3-N is obtained. Since it needs to be compressed, the processing load of encoding becomes high.
  • the server 1 encodes the model header information for identifying the NN model, the layer header information for identifying the NN layer, and the edge weight information for each layer.
  • the encoded data thus generated is generated and transmitted to the clients 3-1, 3-2,..., 3-N via the data transmission network 2.
  • Each of the clients 3-1, 3-2,..., 3-N can decode only the information regarding a necessary layer in the encoded data transmitted from the server 1 via the data transmission network 2. It is possible. As a result, the encoding processing load on the server 1 is reduced, and the data size transmitted from the server 1 to the data transmission network 2 can be reduced.
  • FIG. 2 is a diagram showing a configuration example of the NN.
  • the input data (x 1 , x 2 ,..., X N1 ) is processed in each layer of the NN, and the processing result (y 1 ,..., y NL ) is output.
  • L indicates the number of NN layers.
  • the NN has an input layer, a hidden layer, and an output layer, and each of these layers has a structure in which a plurality of nodes are connected by edges. The output value of each of the plurality of nodes can be calculated from the output value of the node of the previous layer connected by the edge, the weight information of the edge, and the activation function set for each layer.
  • NN includes, for example, not only a fully-connected layer, but also a convolutional NN having a convolutional layer and a pooling layer (CNN).
  • CNN a network that realizes data processing other than classification and regression, such as a network that realizes data filtering, can be generated.
  • CNN using an image or sound as input, filter processing of the image or sound that removes noise or improves the quality of the input signal, high-frequency restoration processing of audio in which high frequencies of compressed audio are lost, and some image areas are CNN can implement restoration processing (inpainting) of a lost image or super-resolution processing of an image.
  • CNN it is also possible to construct an NN in which a generation model and an identification model are combined, in which the authenticity of data is determined using an identification model that determines whether or not the data is generated by the generation model.
  • FIG. 3 is a block diagram showing the configuration of the data processing device (encoder) according to the first embodiment.
  • the data processing apparatus shown in FIG. 3 learns an NN using a learning data set and an evaluation data set, and generates coded data of model information (hereinafter, referred to as model information) indicating the configuration of the NN.
  • model information coded data of model information (hereinafter, referred to as model information) indicating the configuration of the NN.
  • 1 is the data processing device, for example, the server 1 shown in FIG.
  • the data processing device shown in FIG. 3 includes a data processing unit 10 and an encoding unit 11.
  • the data processing unit 10 is a first data processing unit that learns NN and includes a learning unit 101, an evaluation unit 102, and a control unit 103.
  • the encoding unit 11 outputs the model header information for identifying the NN model learned by the learning unit 101, the layer header information for identifying the NN layer, and the encoded data in which the edge weight information for each layer is encoded. To generate.
  • the learning unit 101 performs NN learning processing using the learning data set and generates model information of the learned NN.
  • the model information is output from the learning unit 101 to the evaluation unit 102.
  • the learning unit 101 has coding model information controlled by the control unit 103 described later, and outputs the coding model information to the coding unit 11 when the learning completion instruction is received from the control unit 103.
  • the evaluation unit 102 generates an NN using the model information, and uses the generated NN to perform inference processing from the evaluation data set.
  • the value of the evaluation index obtained as a result of the inference process is the evaluation result, and the evaluation result is output from the evaluation unit 102 to the control unit 103.
  • the evaluation index is preset in the evaluation unit 102 and is, for example, the inference accuracy or the output value of the loss function.
  • the control unit 103 determines whether or not the NN model learned by the learning unit 101 is updated and whether or not the learning unit 101 can complete the learning of the NN from the evaluation value obtained as the evaluation result by the evaluation unit 102,
  • the learning unit 101 is controlled according to the determination result. For example, the control unit 103 compares the evaluation value with the model update determination standard, and determines whether to update the model information as coding model information based on the comparison result. Further, the control unit 103 compares the evaluation value with the learning completion determination standard, and determines whether or not the learning of the NN by the learning unit 101 is completed based on the comparison result. Note that these judgment criteria are determined from the history of evaluation values.
  • FIG. 4 is a block diagram showing the configuration of the data processing device (decoder) according to the first embodiment.
  • the data processing apparatus shown in FIG. 4 decodes the encoded data generated by the encoding unit 11 shown in FIG. 3 to generate an NN, and uses the generated NN to infer one or more evaluation data.
  • the second data processing device is, for example, the clients 3-1, 3-2,..., 3-N shown in FIG.
  • the data processing device shown in FIG. 4 includes a decryption unit 201 and an inference unit 202.
  • the decoding unit 201 decodes the model information from the encoded data generated by the encoding unit 11. For example, the decoding unit 201 can decode only necessary information in the data processing device shown in FIG. 4 from the encoded data.
  • the inference unit 202 is a second data processing unit that generates an NN using the model information decoded by the decoding unit 201 and performs data processing using the generated NN.
  • the data processing is inference processing for the evaluation data using the NN.
  • the inference unit 202 performs inference processing on the evaluation data using the NN and outputs the inference result.
  • FIG. 5 is a flowchart showing the operation of the data processing device (encoder) according to the first embodiment, and shows the data processing method by the data processing device shown in FIG.
  • the learning unit 101 learns NN (step ST1). For example, the learning unit 101 performs NN learning using the learning data set, and outputs the model information obtained by this learning to the evaluation unit 102.
  • the model information is information indicating the structure of the NN model, and includes layer structure information indicating the structure of each layer and weight information of each edge belonging to the layer.
  • the layer structure information includes layer type information, configuration information related to the layer type, and information necessary for configuring a layer other than the edge weight.
  • the information necessary to configure the layer other than the edge weight includes, for example, an activation function.
  • the layer type information is information indicating a layer type, and by referring to the layer type information, it is possible to identify a layer type such as a convolutional layer, a pooling layer, or a fully connected layer.
  • the configuration information related to the layer type is information indicating the layer configuration of the type corresponding to the layer type information.
  • the configuration information related to the layer type includes the data size and shape (including the number of filter coefficients) of the filter (kernel) that performs the convolution, , The convolution interval (stride), the presence/absence of padding on the boundary of the input signal, and the padding method when the padding is present.
  • the configuration information related to the layer type includes a pooling method such as maximum pooling or average pooling, a kernel shape for pooling processing, a pooling interval (stride), There is a padding method for the boundary of the input signal, and a padding method when the padding is present.
  • the weight may be set independently for each edge as in the fully connected layer.
  • the edge weights may be common for each convolution filter (kernel), that is, the edge weights may be common for one filter.
  • the evaluation unit 102 evaluates the NN (step ST2). For example, the evaluation unit 102 generates an NN using the model information generated by the learning unit 101, and uses the generated NN to perform inference processing from the evaluation data set.
  • the evaluation result is output from the evaluation unit 102 to the control unit 103.
  • the evaluation result is, for example, the inference accuracy or the output value of the loss function.
  • control unit 103 determines whether to update the model information (step ST3). For example, when the evaluation value generated by the evaluation unit 102 does not satisfy the model update determination standard, the control unit 103 determines not to update the coding model information included in the learning unit 101, and the evaluation value is the model update determination standard. If it is satisfied, it is determined that the coding model information is updated.
  • the evaluation value of this learning when the evaluation value is the output value of the loss function, the evaluation value of this learning is smaller than the minimum evaluation value in the learning history from the start of learning. As another example, when the evaluation value is the inference accuracy, the evaluation value of the current learning is larger than the maximum evaluation value in the learning history from the start of learning.
  • the learning history switching unit may be arbitrary. For example, it is assumed that each model index described below has a learning history. In this case, if the model does not have a reference model index described later, learning is started without learning history. That is, in the first step ST3, the model information is always updated. On the other hand, when the model has a reference model index, the learning history (history A) of the model indicated by the reference model index is referenced. This makes it possible to prevent the model from being updated to a model having a worse evaluation value (lower inference accuracy, larger loss function value, etc.) than the model pointed to by the reference model index during learning of the model.
  • a worse evaluation value lower inference accuracy, larger loss function value, etc.
  • the learning history (history A) corresponding to the reference model index is updated every time the model is learned.
  • the learning history (history A) corresponding to the reference model index is copied as the initial value of the learning history (history B) of the model index of the model, Every time the model is learned, the learning history (history B) of the model is updated.
  • the learning unit 101 updates the coding model information to the model information (step ST4). For example, the control unit 103 generates model update instruction information indicating that model information is updated, and outputs learning control information including the model update instruction information to the learning unit 101. The learning unit 101 updates the coding model information to the model information according to the model update instruction information included in the learning control information.
  • step ST3 when it is determined that the model information is not updated (step ST3; NO), the control unit 103 generates model update instruction information indicating that the model information is not updated, and learning control information including the model update instruction information. Is output to the learning unit 101.
  • the learning unit 101 does not update the coding model information according to the model update instruction information included in the learning control information.
  • the control unit 103 compares the evaluation value with the learning completion determination standard, and based on the comparison result, determines whether or not the learning of the NN by the learning unit 101 is completed (step ST5). For example, when the learning completion determination criterion is whether the evaluation value generated by the evaluation unit 102 reaches a specific value, the control unit 103 determines that the evaluation value generated by the evaluation unit 102 satisfies the learning completion determination criterion. If it is determined that the learning unit 101 has finished learning the NN, and if the evaluation value does not satisfy the learning completion determination criterion, the learning unit 101 determines that the learning of the NN has not been completed.
  • step ST3 determines that the learning completion determination criteria. If the learning history does not satisfy the learning completion determination criterion, the control unit 103 determines that the learning unit 101 has not finished learning the NN.
  • step ST5 When the control unit 103 determines that the learning of the NN is completed (step ST5; YES), the learning unit 101 outputs the coding model information to the coding unit 11 and shifts to the process of step ST6. On the other hand, when the control unit 103 determines that the learning of NN is not completed (step ST5; NO), the process returns to step ST1.
  • the encoding unit 11 encodes the encoding model information input from the learning unit 101 (step ST6).
  • the encoding unit 11 encodes the encoding model information generated by the learning unit 101 in NN layer units, and generates encoded data composed of header information and encoded data in layer units.
  • FIG. 6 is a flowchart showing the operation of the data processing device (decoder) according to the first embodiment, and shows the operation of the data processing device shown in FIG.
  • the decoding unit 201 decodes model information from the encoded data encoded by the encoding unit 11 (step ST11).
  • the inference unit 202 generates an NN from the model information decoded by the decoding unit 201 (step ST12).
  • the inference unit 202 uses the generated NN to perform inference processing on the evaluation data and outputs the inference result (step ST13).
  • the encoding method of (1) or (2) can be used.
  • the parameter that constitutes each piece of information included in the model information is the bit string itself described with the bit precision defined in the parameter, and if the header information exists, the header information is included in the preset order.
  • the arranged data is used as encoded data.
  • the bit precision is the bit precision defined in the parameter, such as int type 8 bits or float type 32 bits.
  • Parameters constituting each information included in the model information, the bit string itself encoded by the variable length encoding method set for each parameter, is arranged in a preset order including the header information. Let the data be encoded data.
  • FIG. 7 is a diagram showing an example of encoded data in the first embodiment, and the encoded data of (1) or (2) above may be arranged in the order shown in FIG. 7.
  • the encoded data shown in FIG. 7 is composed of a collection of data called a data unit, and the data unit includes a non-layer data unit and a layer data unit.
  • the layer data unit is a data unit in which layer data that is encoded data in units of layers is stored.
  • Layer data consists of start code, data unit type, layer information header, and weight data.
  • the layer information header is encoded with layer header information for identifying the NN layer.
  • the weight data is encoded weight information of edges belonging to the layer indicated by the layer information header.
  • the arrangement order of the layer data units does not necessarily have to be the same as the arrangement order of the NN layers, and is arbitrary. This is because it is possible to identify at which position in the NN each layer data unit is located by the layer index described later.
  • Non-layer data unit is a data unit that stores data other than layer data. For example, a start code, a data unit type, and a model information header are stored in the non-layer data unit.
  • the model information header is encoded with model header information for identifying the NN model.
  • the start code is a code that is stored at the start position of the data unit and that identifies the start position of the data unit.
  • the clients 3-1, 3-2,..., 3-N (hereinafter, referred to as the decoding side) identify the start position of the non-layer data unit or the layer data unit by referring to the start code. Is possible. For example, when 0x000001 is defined as the start code, data other than the start code stored in the data unit is set so that 0x000001 does not occur. As a result, the start position of the data unit can be specified from the start code.
  • the start code may be defined as a bit string other than 0x000001 as long as it is a uniquely identifiable bit string.
  • the start code may not be used as long as the method can identify the start position of the data unit. For example, a bit string that can identify the end of the data unit may be attached to the end of the data unit.
  • the start code may be attached only to the head of the non-layer data unit, and the data size of each layer data unit may be encoded as a part of the model information header. By doing so, it is possible to identify the delimiter position of each layer data unit from the above information.
  • the data unit type is data that is stored after the start code in the data unit and that identifies the type of the data unit.
  • the value of the data unit type is defined in advance for each type of data unit.
  • the decoding side can identify whether the data unit is a non-layer data unit or a layer data unit by referring to the data unit type stored in the data unit, and further, what non-layer data unit or It is possible to identify whether it is a layer data unit.
  • the model information header in the non-layer data unit includes the model index, the number of layer data units in the model, and the number of coding layer data units.
  • the model index is an index for identifying the model of NN. Therefore, basically, each model has independent indexes, but if the data processing apparatus (decoder) according to the first embodiment newly receives a model having the same model index as the model received in the past. In this case, the model having the model index is overwritten.
  • the number of layer data units in the model is the number of layer data units that make up the model identified by the model index.
  • the number of encoded layer data units is the number of layer data units that actually exist in the encoded data. In the example of FIG. 7, since the layer data units (1) to (n) exist, the number of encoded layer data units is n.
  • the number of encoded layer data units is always equal to or less than the number of in-model layer data units.
  • the layer information header in the layer data unit contains the layer index and layer structure information.
  • the layer index is an index for identifying a layer.
  • the way of assigning the value of the layer index is fixedly defined in advance so that the layer can be identified by the layer index. For example, the index is assigned to the input layer of the NN, the index is assigned to the next layer, and the index of the next layer is assigned to the index 1, and so on.
  • the layer structure information is information indicating the configuration of each layer of the NN, and as described above, includes the layer type information, the configuration information related to the layer type, and the information necessary for configuring the layer in addition to the edge weight. I'm out.
  • the model information header may include all the layer structure information included in the encoded data and the layer index corresponding to the layer structure information.
  • the decoding side can specify the layer configuration of each layer index by referring to the model information header.
  • the layer information header may have only the layer index. By doing this, if the data size of the layer data unit is larger than the data size of the non-layer data unit, the data size of each layer data unit can be reduced, and the maximum data of the data unit in the encoded data can be reduced. The size can be reduced.
  • the weight data encoded in each layer is stored.
  • the weight data includes a non-zero flag and non-zero weight data.
  • the non-zero flag is a flag indicating whether or not the value of the edge weight is zero, and the non-zero flag is set for the weights of all the edges belonging to the corresponding layer.
  • the non-zero weight data is data that is set subsequent to the non-zero flag in the weight data, and the weight value is set for the weight for which the non-zero flag indicates non-zero (significant).
  • weight data (1) to weight data (m) each indicating a non-zero weight value are set as non-zero weight data.
  • the number m of non-zero weight data is less than or equal to the number M 1 of all weights of the corresponding layer 1. Note that the weight data relating to a layer having non-zero weight values and having sparse edges has a small amount of non-zero weight data and almost only non-zero flags.
  • FIG. 8 is a diagram showing another example of the encoded data in the first embodiment, and the encoded data of (1) or (2) above may be arranged in the order shown in FIG.
  • the data structure of the weight data is different from that of FIG. 7, and in the non-zero weight data, the weights of all edges belonging to the corresponding layer are collected in order from the upper bit for each bit plane. It is lined up.
  • bit plane data position identification information indicating the head position of each bit indicating the edge weight is set.
  • the weights of all edges belonging to the corresponding layer are described with the bit precision X, respectively.
  • the encoding unit 11 of the bit strings of these weights is the first bit non-zero weight data, that is, the first bit weight data (1), the first bit weight data (2),..., 1
  • the bit weight data (m) is set to each non-zero weight data of the first bit. This process is repeated from the second-bit non-zero weight data to the X-th bit non-zero weight data.
  • the first-bit weight data (m) are non-zero weights forming the first-bit bit plane. The data.
  • the decoding side can specify the necessary coded data from the coded data in layer units based on the bit plane data position identification information, and can decode the specified coded data with arbitrary bit precision. That is, the decoding side can select only the necessary encoded data from the encoded data, and can decode the NN model information according to the environment on the decoding side.
  • the bit plane data position identification information may be any information as long as it can identify the delimiter position between bit plane data, and may be information indicating the head position of each bit plane data, or the data of each bit plane data. It may be information indicating the size.
  • the encoding unit 11 selects the data transmission network 2
  • the non-zero weight data to be transmitted may be limited according to the transmission band. For example, among the bit string of weight information described with 32-bit precision, the non-zero weight data of the upper 8 bits is the transmission target.
  • the decoding side can recognize from the start code arranged next to the non-zero weight data that the layer data unit corresponding to the next layer is arranged after the non-zero weight data of the 8th bit in the encoded data. Further, the decoding side can correctly decode the weight having a value of zero by referring to the non-zero flag in the weight data.
  • the encoding unit 11 When the decoding side decodes the weight data with arbitrary bit precision, in order to improve the inference precision with that bit precision, the encoding unit 11 adds an offset to be added to the weight when decoded with each bit precision. It may be included in the layer information header. For example, the encoding unit 11 adds a uniform offset for each layer to a bit string having a weight described in bit precision, obtains an offset with the highest precision, and obtains the obtained offset as a layer information header. To be encoded.
  • the encoding unit 11 may include the offsets of edge weights in all layers included in the NN in the model information header for encoding. Furthermore, the encoding unit 11 may set a flag indicating whether an offset is included in the layer information header or the model information header, and may include the offset in the encoded data only when the flag is valid, for example.
  • the encoding unit 11 may set the difference between the edge weight value and a specific value as an encoding target.
  • a specific value for example, there is a weight that is one before the encoding order. Further, the weight of the corresponding edge belonging to the layer one level higher (the layer closer to the input layer) may be a specific value, or the weight of the corresponding edge of the model before updating may be a specific value.
  • the encoding unit 11 has the functions shown in (A), (B) and (C).
  • the encoding unit 11 has a scalable encoding function of separately encoding the base encoded data and the enhancement encoded data.
  • the encoding unit 11 has a function of encoding the difference from the edge weight in the reference NN.
  • the encoding unit 11 has a function of encoding only partial information (for example, information on a layer basis) in the reference NN as NN update information.
  • the encoding unit 11 quantizes the edge weights by using a quantization method defined in advance for the edge weights, sets the data obtained by encoding the quantized weights as base encoded data, and weights the quantization error.
  • the coded data is regarded as enhancement coded data.
  • the weight of the base encoded data has a bit precision lower than that of the weight before quantization due to the quantization, so that the data size is reduced.
  • the encoding unit 11 sets the quantized value when the quantization error is further quantized as the first enhancement encoded data, and sets the quantization error as the second enhancement encoded data.
  • the quantization error of the second enhancement-encoded data may be further divided into a quantized value obtained by further quantization and the quantization error so that the target number of the enhancement-encoded data can be encoded. In this way, by using the scalable coding, it is possible to transmit the coded data according to the transmission band of the data transmission network 2 and the transmission allowable time.
  • the encoding unit 11 encodes the upper M bits of the non-zero weighted data shown in FIG. 8 as base encoded data, divides the remaining bit string into 1 or more, and also as 1 or more enhancement encoded data. Good. In this case, the encoding unit 11 sets the non-zero flag again in each of the base encoded data and the enhancement encoded data. The weight that has become 0 in the enhancement coded data of the upper bits is always 0.
  • the encoding unit 11 calculates the difference between the edge weight in the NN model after re-learning and the corresponding edge weight in the model before re-learning. It may be encoded. Note that re-learning includes transfer learning or additional learning. In the data processing system, when the NN configuration is updated at high frequency or the change in the distribution of learning data for each re-learning is small, the difference in edge weight is small, so the data size of the encoded data after re-learning is small. Is reduced.
  • the encoding unit 11 may include, in addition to the model index, a reference model index for identifying the model to be referred to before updating in the model information header. In the case of the example of (B), it becomes possible to identify the model before re-learning from the reference model index. Furthermore, the encoding unit 11 may set a flag indicating whether or not the encoded data has a reference source in the model information header. The encoding unit 11 sets the reference model index in the model information header only when this flag indicates that it is encoded data for updating the model.
  • the client refers to the reference model index. By doing so, it is possible to correctly identify which model is the encoded data for updating.
  • the reference model index identifies the encoded data for updating the model that does not exist on the client side, the client can notify the server 1 of the fact.
  • the learning unit 101 fixes one or more arbitrary layers from the upper side (input layer side) of the NN for the purpose of Fine-tuning, and only some layers are fixed. May re-learn.
  • the encoding unit 11 encodes only the information indicating the layer configuration updated by re-learning.
  • the data size of the encoded data transmitted to the decoding side is reduced.
  • the number of coding layer data units in the coded data is smaller than the number of in-model layer data units.
  • the layer to be updated can be specified by referring to the reference model index included in the model information header and the layer index included in the layer information header.
  • FIG. 9 is a diagram showing an example of convolution processing of one-dimensional data in the first embodiment, and shows a convolution layer that performs convolution processing of one-dimensional data.
  • the one-dimensional data includes, for example, voice data and time series data.
  • the convolutional layer shown in FIG. 9 includes nine nodes 10-1 to 10-9 in the front layer and three nodes 11-1 to 11-3 in the next layer.
  • Edges 12-1, 12-6, 12-11 are given the same weight
  • edges 12-2, 12-7, 12-12 are given the same weight
  • edges 12-3, 12 -8, 12-13 are given the same weight
  • edges 12-4, 12-9, 12-14 are given the same weight
  • edges 12-5, 12-10, 12-15 are given.
  • the weights of the edges 12-1 to 12-5 may all have different values, or a plurality of weights may have the same value.
  • the kernel size K is 5, and the kernel is defined by the combination of these weights.
  • the node 10-1 is connected to the node 11-1 via the edge 12-1
  • the node 10-2 is connected to the node 11-1 via the edge 12-2
  • the node 10-1 is connected to the node 11-1.
  • the node 10-3 is connected to the node 11-1 via the edge 12-3
  • the node 10-4 is connected to the node 11-1 via the edge 12-4
  • the node 10-5 is connected to the edge 12-5. It is connected to the node 11-1 via.
  • the kernel is defined by the combination of weights of the edges 12-1 to 12-5.
  • the node 10-3 is connected to the node 11-2 via the edge 12-6
  • the node 10-4 is connected to the node 11-2 via the edge 12-7
  • the node 10-5 is connected to the edge 12-8.
  • the node 10-6 connected to the node 11-2 via the edge 12-9
  • the node 10-7 connected to the node 11-2 via the edge 12-10.
  • the kernel is defined by the combination of the weights of the edges 12-6 to 12-10.
  • the node 10-5 is connected to the node 11-3 via the edge 12-11
  • the node 10-6 is connected to the node 11-3 via the edge 12-12
  • the node 10-7 is connected to the edge 12-13.
  • node 10-8 connected to node 11-3 via edge 12-14
  • node 10-9 connected to node 11-3 via edge 12-15
  • the kernel is defined by the combination of the weights of the edges 12-11 to 12-15.
  • the combination of edge weights is determined by learning for each kernel.
  • the NN is often configured by a convolutional layer having a plurality of kernels.
  • FIG. 10 is a diagram showing an example of convolution processing of two-dimensional data according to the first embodiment, and shows convolution processing of two-dimensional data such as image data.
  • the kernel 20 is a block area having a size in the x direction of K x and a size in the y direction of K y .
  • the learning unit 101, the evaluation unit 102, or the inference unit 202 performs a convolution operation of data for each kernel 20 in the two-dimensional data at intervals of the x-direction step number S x and y-direction step number S y .
  • steps S x and S y are integers of 1 or more.
  • the combination of the weights w ij for each layer shown in FIG. 11 becomes the data forming the network. Therefore, in a multi-layer NN such as a deep neural network, the data amount is generally several hundred Mbytes or more, and a large memory size is also required.
  • the data processing apparatus quantizes the weight information in order to reduce the data amount of the edge weight information.
  • the quantization step q ij is set for each edge weight w ij .
  • the quantization step may be a plurality of node indexes or a plurality of edge indexes, or a plurality of node indexes and edge indexes may be shared. This reduces the quantization information to be encoded.
  • FIG. 13 is a diagram showing a matrix of edge weight information in the convolutional layer.
  • FIG. 14 is a diagram showing a matrix of quantization steps of edge weight information in the convolutional layer.
  • the edge weight for one kernel is common to all nodes, and the number of edges connected per node, that is, the kernel size K can be reduced to make the kernel a small region.
  • FIG. 13 shows data in which the edge weight w i'j' is set for each kernel
  • FIG. 14 is data in which the quantization step q i'j' is set for each kernel.
  • i′ is a kernel index
  • j′ is an edge index
  • j′ 1, 2,..., K 1 .
  • the quantization step may be shared by multiple kernel indexes, multiple edge indexes, or multiple kernel indexes and edge indexes. This reduces the quantization information to be encoded. For example, all the quantization steps in a layer may be standardized to one quantization step in one layer, or all the quantization steps in a model may be standardized and one quantization in one model. It may be a step.
  • the data processing device according to the first embodiment includes a processing circuit for executing the processes from step ST1 to step ST6 in FIG.
  • the processing circuit may be dedicated hardware, or may be a CPU (Central Processing Unit) that executes a program stored in the memory.
  • CPU Central Processing Unit
  • FIG. 15A is a block diagram showing a hardware configuration that realizes the functions of the data processing device according to the first embodiment.
  • the processing circuit 300 is a dedicated circuit which functions as the data processing device shown in FIG.
  • FIG. 15B is a block diagram showing a hardware configuration that executes software that implements the functions of the data processing device according to the first embodiment.
  • the processor 301 and the memory 302 are connected to each other by a signal bus.
  • the processing circuit 300 may be, for example, a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, an ASIC (Application Specific Integrated Circuit), or an FPGA. (Field-Programmable Gate Array) or a combination thereof is applicable. Note that the functions of the data processing unit 10 and the encoding unit 11 may be implemented by separate processing circuits, or these functions may be implemented collectively by one processing circuit.
  • the processing circuit is the processor shown in FIG. 15B
  • the functions of the data processing unit 10 and the encoding unit 11 are realized by software, firmware, or a combination of software and firmware.
  • the software or firmware is described as a program and stored in the memory 302.
  • the processor 301 realizes the functions of the data processing unit 10 and the encoding unit 11 by reading and executing the program stored in the memory 302. That is, the data processing device according to the first embodiment, when executed by the processor 301, has a memory 302 for storing a program that results in the processes of steps ST1 to ST6 shown in FIG. Equipped with. These programs cause a computer to execute the procedure or method of the data processing unit 10 and the encoding unit 11.
  • the memory 302 may be a computer-readable storage medium that stores a program that causes a computer to function as the data processing unit 10 and the encoding unit 11.
  • the memory 302 includes, for example, a RAM (Random Access Memory), a ROM (Read Only Memory), a flash memory, an EPROM (Erasable Programmable Memory), a non-volatile semiconductor memory such as an EEPROM (Electrically-volatile), or an EEPROM (Electrically-volatile).
  • RAM Random Access Memory
  • ROM Read Only Memory
  • flash memory an EPROM (Erasable Programmable Memory)
  • a non-volatile semiconductor memory such as an EEPROM (Electrically-volatile), or an EEPROM (Electrically-volatile).
  • EEPROM Electrically-volatile
  • a magnetic disk, a flexible disk, an optical disk, a compact disk, a mini disk, a DVD, etc. are applicable.
  • the functions of the data processing unit 10 and the encoding unit 11 may be partially implemented by dedicated hardware and partially implemented by software or firmware.
  • the function of the data processing unit 10 is realized by a processing circuit as dedicated hardware
  • the function of the encoding unit 11 is realized by the processor 301 reading and executing a program stored in the memory 302. May be realized.
  • the processing circuit can realize each of the above functions by hardware, software, firmware, or a combination thereof.
  • the data processing device shown in FIG. 4 includes a processing circuit for executing the processing from step ST11 to step ST13 in FIG.
  • This processing circuit may be dedicated hardware, or may be a CPU that executes a program stored in the memory.
  • the processing circuit 300 is, for example, a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, an ASIC, an FPGA, or a combination thereof. Is applicable.
  • the functions of the decoding unit 201 and the inference unit 202 may be realized by separate processing circuits, or these functions may be collectively realized by one processing circuit.
  • the processing circuit is the processor shown in FIG. 15B
  • the functions of the decoding unit 201 and the inference unit 202 are realized by software, firmware, or a combination of software and firmware.
  • the software or firmware is described as a program and stored in the memory 302.
  • the processor 301 realizes the functions of the decoding unit 201 and the inference unit 202 by reading and executing the program stored in the memory 302. That is, the data processing device shown in FIG. 4 includes a memory 302 for storing a program that, when executed by the processor 301, results in the processes of steps ST11 to ST13 shown in FIG. 6 being executed. ..
  • These programs cause a computer to execute the procedure or method of the decoding unit 201 and the inference unit 202.
  • the memory 302 may be a computer-readable storage medium that stores a program that causes a computer to function as the decoding unit 201 and the inference unit 202.
  • the decryption unit 201 and the inference unit 202 may be realized by dedicated hardware, and some of them may be realized by software or firmware.
  • the decoding unit 201 realizes its function by a processing circuit as a dedicated hardware
  • the inference unit 202 realizes its function by the processor 301 reading and executing a program stored in the memory 302. May be.
  • the encoding unit 11 encodes the information indicating the configuration of the NN and generates the encoded data including the header information and the encoded data in units of layers. To do. Since only the information about the necessary layer can be encoded on the decoding side, the processing load for encoding the information on the NN configuration is reduced, and the data size to be transmitted to the decoding side can be reduced.
  • the encoding unit 11 encodes the weight information of the edges belonging to the NN layer from the upper bits in bit plane units. As a result, the data size of the encoded data transmitted to the decoding side can be reduced.
  • the encoding unit 11 encodes information regarding one or more layers designated by the header information. As a result, only the information about the layer required on the decoding side is coded, and the data size of the coded data transmitted to the decoding side can be reduced.
  • the encoding unit 11 encodes the difference between the weight value of the edge belonging to the layer specified by the header information and the specific value. As a result, the data size of the encoded data transmitted to the decoding side can be reduced.
  • the encoding unit 11 separately encodes edge weight information into base encoded data and enhancement encoded data. As a result, it is possible to realize the transmission of the encoded data according to the transmission band of the data transmission network 2 and the transmission allowable time.
  • FIG. 16 is a block diagram showing the configuration of the data processing device (encoder) according to the second embodiment.
  • the data processing device shown in FIG. 16 is a first data processing device that learns an NN using a learning data set and an evaluation data set, and generates encoded data of model information of the NN, for example, as shown in FIG.
  • the data processing device shown in FIG. 16 includes a data processing unit 10A, an encoding unit 11, and a decoding unit 12.
  • the data processing unit 10A is a data processing unit that generates and learns an NN and includes a learning unit 101A, an evaluation unit 102, and a control unit 103.
  • the encoding unit 11 encodes the model information generated by the learning unit 101, and generates encoded data composed of header information and encoded data in units of layers.
  • the decoding unit 12 decodes the model information from the encoded data generated by the encoding unit 11.
  • the decoding unit 12 also outputs the decoded model information to the learning unit 101A.
  • the learning unit 101A performs NN learning using the learning data set and generates model information indicating the learned NN configuration. Further, the learning unit 101A uses the decoded model information to generate the NN, and uses the learning data set to re-learn the parameters of the generated NN.
  • the data processing device includes the decoding unit 12, and the data processing unit 10A learns the NN using the information decoded by the decoding unit 12.
  • the data processing device is based on the actual decoding result of the encoded data.
  • the NN can be generated and learned, and the NN can be learned with the influence of the coding error minimized under the condition that the data size of the coded data is restricted.
  • Embodiment 3 The data processing system according to the third embodiment has the same configuration as that of FIG. 1, includes the data processing device shown in FIG. 3 as a server 1, and includes clients 3-1, 3-2,...
  • the data processing apparatus shown in FIG. 4 is provided as 3-N.
  • the data output from the intermediate layer of the NN is image data and audio data, which is an example of image retrieval (retrieval) or matching (matching) described in the following references.
  • the output data of the NN intermediate layer is used as the image feature amount of image processing such as image search, matching, or object tracking
  • HOG Heistogram of Oriented Gradients
  • SIFT Scale Invariant Feature Transform
  • SURF Speeded Up Robust Features
  • the data processing device functioning as the server 1 performs data processing such as image search using the feature amount of the above data processing.
  • a data processing device that functions as a client generates NNs from encoded data up to an intermediate layer, and uses data output from the generated intermediate layer of the NNs as a feature amount to perform data processing such as image search. ..
  • the encoding unit 11 encodes the model information indicating the configuration up to the NN intermediate layer.
  • the compression rate of the parameter data by quantization is increased, so that the data amount of weight information before encoding can be reduced.
  • the client uses the model information decoded by the decoding unit 201 to generate an NN, and performs data processing using the data output from the generated intermediate layer of the NN as a feature amount.
  • the data processing device can reduce the processing load for encoding the information related to the configuration of the neural network and reduce the data size transmitted to the decoding side, it can be used, for example, in image recognition technology. Is.
  • 1 server 2 data transmission network, 3-1 to 3-N client, 10 and 10A data processing unit, 10-1 to 10-9, 11-1 to 11-3 node, 11 encoding unit, 12 decoding unit, 12-1 to 12-15 edge, 20 kernel, 101, 101A learning unit, 102 evaluation unit, 103 control unit, 201 decoding unit, 202 inference unit, 300 processing circuit, 301 processor, 302 memory.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Neurology (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Communication Control (AREA)
  • Train Traffic Observation, Control, And Security (AREA)

Abstract

ニューラルネットワークを学習するデータ処理部(10)と、ニューラルネットワークのモデルを識別するモデルヘッダ情報と、ニューラルネットワークのレイヤを識別するレイヤヘッダ情報と、レイヤ単位のエッジの重み情報とが符号化された符号化データを生成する符号化部(11)とを備える。

Description

データ処理装置、データ処理システムおよびデータ処理方法
 本発明は、ニューラルネットワークの構成に関する情報が符号化された符号化データを生成するデータ処理装置、データ処理システムおよびデータ処理方法に関する。
 入力データの分類(識別)問題および回帰問題を解決する方法として機械学習がある。機械学習には、脳の神経回路(ニューロン)を模擬したニューラルネットワークという手法がある。ニューラルネットワーク(以下、NNと記載する)では、ニューロンが相互に結合されたネットワークによって表現された確率モデル(識別モデル、生成モデル)によって、入力データの分類(識別)または回帰が行われる。
 また、NNは、大量のデータを用いた学習によってNNのパラメータを最適化することで、高性能化することができる。ただし、近年のNNは大規模化しており、NNのデータサイズが大容量化の傾向にあり、NNを用いたコンピュータの計算負荷も増加している。
 例えば、非特許文献1には、NNの構成を示す情報であるエッジの重みを、スカラ量子化した上で符号化する技術が記載されている。エッジの重みをスカラ量子化した上で符号化することで、エッジに関するデータのデータサイズが圧縮される。
Vincent Vanhoucke, Andrew Senior, Mark Z. Mao, " Improving the speed of neural networks on CPUs ", Proc. Deep Learning and Unsupervised Feature Learning NIPS Workshop, 2011.
 データ伝送ネットワークを介して、多数のクライアントがサーバと繋がったシステムにおいて、多数のクライアントのそれぞれが、サーバで学習されたNNを用いてデータ処理を行う場合、NNのモデルとパラメータのデータサイズおよび適切な性能を示す値は、個々のクライアントの処理性能、記憶容量およびサーバとの間のデータ伝送ネットワークの伝送帯域によって異なる。このため、NNのモデルおよびパラメータを、非特許文献1に記載された技術を用いて符号化しても、多数のクライアントのそれぞれに適したデータサイズに圧縮する必要があり、符号化の処理負荷が高くなるという課題があった。また、クライアントの数が膨大であると、個々のクライアントへ伝送されるデータが圧縮されても、全てのクライアントへ伝送するデータサイズは膨大になるという課題もある。
 本発明は上記課題を解決するものであって、NNに関する情報を符号化する処理負荷が低減され、伝送されるデータサイズを削減することができるデータ処理装置、データ処理システムおよびデータ処理方法を得ることを目的とする。
 本発明に係るデータ処理装置は、NNを学習するデータ処理部と、NNのモデルを識別するモデルヘッダ情報と、NNのレイヤを識別するレイヤヘッダ情報と、レイヤ単位のエッジの重み情報とが符号化された符号化データを生成する符号化部とを備える。
 本発明によれば、符号化部が、NNのモデルを識別するモデルヘッダ情報と、NNのレイヤを識別するレイヤヘッダ情報と、レイヤ単位のエッジの重み情報とが符号化された符号化データを生成する。符号化部は、NNにおいて復号側で必要なレイヤに関する情報を符号化することができるので、NNに関する情報を符号化する処理負荷が低減され、伝送されるデータサイズを削減することができる。
実施の形態1に係るデータ処理システムの構成を示すブロック図である。 NNの構成例を示す図である。 実施の形態1に係るデータ処理装置(エンコーダ)の構成を示すブロック図である。 実施の形態1に係るデータ処理装置(デコーダ)の構成を示すブロック図である。 実施の形態1に係るデータ処理装置(エンコーダ)の動作を示すフローチャートである。 実施の形態1に係るデータ処理装置(デコーダ)の動作を示すフローチャートである。 実施の形態1における符号化データの例を示す図である。 実施の形態1における符号化データの別の例を示す図である。 実施の形態1における1次元データの畳み込み処理の例を示す図である。 実施の形態1における2次元データの畳み込み処理の例を示す図である。 NNの1層目のレイヤにおけるノードごとのエッジの重み情報のマトリクスを示す図である。 NNの1層目のレイヤにおけるノードごとのエッジの重み情報の量子化ステップのマトリクスを示す図である。 畳み込み層におけるエッジの重み情報のマトリクスを示す図である。 畳み込み層におけるエッジの重み情報の量子化ステップのマトリクスを示す図である。 図15Aは、実施の形態1に係るデータ処理装置の機能を実現するハードウェア構成を示すブロック図である。図15Bは、実施の形態1に係るデータ処理装置の機能を実現するソフトウェアを実行するハードウェア構成を示すブロック図である。 実施の形態2に係るデータ処理装置(エンコーダ)の構成を示すブロック図である。
実施の形態1.
 図1は、実施の形態1に係るデータ処理システムの構成を示すブロック図である。図1に示すデータ処理システムにおいて、サーバ1は、データ伝送ネットワーク2を介して、クライアント3-1,3-2,・・・,3-Nと繋がっている。Nは、2以上の自然数である。サーバ1は、大量のデータを用いた学習によってNN(ニューラルネットワーク)のパラメータを最適化して、高性能なNNを生成するデータ処理装置であり、図1に示すデータ処理システムが備える第1のデータ処理装置である。
 データ伝送ネットワーク2は、サーバ1とクライアント3-1,3-2,・・・,3-Nとの間でやり取りされるデータが伝送されるネットワークであり、インターネットまたはイントラネットである。例えば、データ伝送ネットワーク2には、NNを生成するための情報が、サーバ1からクライアント3-1,3-2,・・・,3-Nへ送信される。
 クライアント3-1,3-2,・・・,3-Nは、サーバ1によって学習されたNNを生成し、生成されたNNを用いたデータ処理を行う機器である。例えば、クライアント3-1,3-2,・・・,3-Nは、パーソナルコンピュータ(PC)、カメラ、またはロボットといった、通信機能およびデータ処理機能を有した機器である。クライアント3-1,3-2,・・・,3-Nのそれぞれは、図1に示すデータ処理システムが備える第2のデータ処理装置である。
 図1に示すデータ処理システムにおいて、クライアント3-1,3-2,・・・,3-Nのそれぞれは、NNのモデルおよびパラメータのデータサイズおよび適切な性能を示す値が異なる。このため、非特許文献1に記載された技術を用いてNNのモデルおよびパラメータを符号化しても、クライアント3-1,3-2,・・・,3-Nのそれぞれに適したデータサイズに圧縮する必要があり、符号化の処理負荷が高くなる。
 そこで、実施の形態1に係るデータ処理システムでは、サーバ1が、NNのモデルを識別するモデルヘッダ情報と、NNのレイヤを識別するレイヤヘッダ情報と、レイヤ単位のエッジの重み情報とが符号化された符号化データを生成し、データ伝送ネットワーク2を介してクライアント3-1,3-2,・・・,3-Nに送信する。クライアント3-1,3-2,・・・,3-Nのそれぞれは、データ伝送ネットワーク2を介してサーバ1から伝送された符号化データのうち、必要なレイヤに関する情報のみを復号することが可能である。これにより、サーバ1における符号化の処理負荷が低減され、サーバ1からデータ伝送ネットワーク2へ伝送されるデータサイズを削減することができる。
 ここで、NNの構成について説明する。
 図2は、NNの構成例を示す図である。図2に示すように、入力データ(x,x,・・・,xN1)は、NNが有するそれぞれの層で処理され、処理結果(y,・・・,yNL)が出力される。N(l=1,2,・・・,L)は、l層目のレイヤのノード数を示しており、Lは、NNのレイヤ数を示している。NNは、図2に示すように、入力層、隠れ層および出力層を有しており、これらの層のそれぞれには、複数のノードがエッジで繋がれた構造になっている。複数のノードのそれぞれの出力値は、エッジによって繋がれた前の層のノードの出力値と、エッジの重み情報および層ごとに設定された活性化関数とから算出することができる。
 NNには、例えば、全結合層(Fully-connected layer)だけでなく、畳み込み層(Convolutional layer)とプーリング層(Pooling layer)とを有する畳み込みNN(CNN;Convolutional Neural Network)がある。CNNでは、データのフィルタ処理を実現するネットワークなど、分類および回帰以外のデータ処理を実現するネットワークが生成可能である。
 例えば、画像または音声を入力として、入力信号のノイズ除去または高品質化を実現する画像または音声のフィルタ処理、圧縮音声の高域が失われた音声の高域復元処理、一部の画像領域が欠損した画像の復元処理(inpainting)、あるいは画像の超解像処理がCNNで実現可能である。CNNでは、生成モデルによって生成されたデータであるか否かを判定する識別モデルを用いてデータの真贋を判定する、生成モデルと識別モデルを組み合わせたNNを構築することもできる。
 近年では、生成モデルが、識別モデルによって真のデータでないと見破られるデータを生成しないように、識別モデルが、生成モデルによって生成されたデータを真のデータでないと見破れるように敵対的に学習された敵対的生成ネットワーク(Generative Adversarial Network)という新しいNNも提案されている。このNNでは、高精度な生成モデルおよび識別モデルを生成することが可能である。
 図3は、実施の形態1に係るデータ処理装置(エンコーダ)の構成を示すブロック図である。図3に示すデータ処理装置は、学習用データセットと評価用データセットを用いてNNを学習し、NNの構成を示すモデル情報(以下、モデル情報と記載する)の符号化データを生成する第1のデータ処理装置であり、例えば、図1に示したサーバ1である。
 図3に示すデータ処理装置は、データ処理部10および符号化部11を備える。データ処理部10は、NNを学習する第1のデータ処理部であり、学習部101、評価部102および制御部103を備える。符号化部11は、学習部101によって学習されたNNのモデルを識別するモデルヘッダ情報、NNのレイヤを識別するレイヤヘッダ情報、およびレイヤ単位のエッジの重み情報が符号化された符号化データを生成する。
 学習部101は、学習用データセットを用いてNNの学習処理を実施し、学習したNNのモデル情報を生成する。モデル情報は、学習部101から評価部102に出力される。さらに、学習部101は、後述する制御部103によって制御された符号化用モデル情報を持ち、制御部103によって学習完了指示を受けた場合に符号化用モデル情報を符号化部11に出力する。評価部102は、モデル情報を用いてNNを生成し、生成されたNNを用いて、評価用データセットから推論処理を実施する。推論処理の結果として得られた評価指標の値が評価結果であり、評価結果は、評価部102から、制御部103に出力される。評価指標は、評価部102に予め設定されており、例えば、推論精度または損失関数の出力値である。
 制御部103は、評価部102によって評価結果として得られた評価値から、学習部101によって学習されたNNのモデルの更新の有無と、学習部101によるNNの学習の完了可否とを判定し、判定結果に応じて学習部101を制御する。例えば、制御部103は、評価値をモデル更新判定基準と比較して、この比較結果に基づいて当該モデル情報を符号化用モデル情報として更新するか否かを判定する。また、制御部103は、評価値を学習完了判定基準と比較して、この比較結果に基づいて学習部101によるNNの学習を完了するか否かを判定する。なお、これらの判定基準は、評価値の履歴から決定される。
 図4は、実施の形態1に係るデータ処理装置(デコーダ)の構成を示すブロック図である。図4に示すデータ処理装置は、図3に示した符号化部11によって生成された符号化データを復号してNNを生成し、生成されたNNを用いて1以上の評価用データを推論処理する第2のデータ処理装置であり、例えば、図1に示したクライアント3-1,3-2,・・・,3-Nである。
 図4に示すデータ処理装置は、復号部201および推論部202を備えている。復号部201は、符号化部11によって生成された符号化データから、モデル情報を復号する。例えば、復号部201は、図4に示すデータ処理装置において必要な情報のみを、符号化データから復号することができる。
 推論部202は、復号部201によって復号されたモデル情報を用いてNNを生成し、生成されたNNを用いたデータ処理を実施する第2のデータ処理部である。例えば、データ処理は、NNを用いた評価用データに対する推論処理である。推論部202は、NNを用いて評価用データに対する推論処理を実施し、推論結果を出力する。
 次に、実施の形態1に係るデータ処理システムの動作について説明する。
 図5は、実施の形態1に係るデータ処理装置(エンコーダ)の動作を示すフローチャートであり、図3に示したデータ処理装置によるデータ処理方法を示している。
 学習部101がNNを学習する(ステップST1)。例えば、学習部101は、学習用データセットを用いてNNの学習を実施し、この学習によって得られたモデル情報を評価部102に出力する。
 モデル情報は、NNのモデルの構成を示す情報であり、レイヤごとの構造を示すレイヤ構造情報と、レイヤに属する各エッジの重み情報とを含んで構成される。レイヤ構造情報には、レイヤ種別情報、レイヤ種別に関わる構成情報、およびエッジの重み以外でレイヤを構成するために必要な情報が含まれている。エッジの重み以外でレイヤを構成するために必要な情報には、例えば、活性化関数がある。レイヤ種別情報は、レイヤの種別を示す情報であり、レイヤ種別情報を参照することで、畳み込み層、プーリング層または全結合層といったレイヤの種別を識別することが可能である。
 レイヤ種別に関わる構成情報は、レイヤ種別情報に対応する種別のレイヤの構成を示す情報である。例えば、レイヤ種別情報に対応するレイヤの種別が畳み込み層である場合、レイヤ種別に関わる構成情報には、畳み込みを行うフィルタ(カーネル)のデータサイズと形状(フィルタ係数の数を含む)、当該フィルタの数、畳み込み間隔(ストライド)、入力信号の境界に対するパディングの有無、および、パディング有りの場合はパディングの方法がある。また、レイヤ種別情報に対応するレイヤの種別がプーリング層である場合、レイヤ種別に関わる構成情報には、最大プーリングまたは平均プーリングといったプーリング方法、プーリング処理を行うカーネルの形状、プーリング間隔(ストライド)、入力信号の境界に対するパディングの有無、および、パディング有りの場合はパディングの方法がある。
 各エッジの重みを示す情報には、全結合層のように各エッジで独立に重みが設定される場合がある。一方、畳み込み層のように、エッジの重みが畳み込みフィルタ(カーネル)単位で共通する、すなわち、一つのフィルタでエッジの重みが共通する場合もある。
 評価部102がNNを評価する(ステップST2)。例えば、評価部102は、学習部101によって生成されたモデル情報を用いてNNを生成し、生成されたNNを用いて、評価用データセットから推論処理を実施する。評価結果は、評価部102から制御部103に出力される。評価結果は、例えば、推論精度または損失関数の出力値である。
 次に、制御部103が、モデル情報を更新するか否かを判定する(ステップST3)。例えば、制御部103は、評価部102によって生成された評価値がモデル更新判定基準を満たさない場合、学習部101が持つ符号化用モデル情報を更新しないと判定し、評価値がモデル更新判定基準を満たす場合、上記符号化用モデル情報を更新すると判定する。
 モデル更新判定基準の一例としては、評価値が損失関数の出力値である場合、学習開始時からの学習履歴における評価値の最小値よりも今回の学習による評価値が小さいこと、がある。他の一例としては、評価値が推論精度である場合、学習開始時からの学習履歴における評価値の最大値よりも今回の学習の評価値が大きいこと、がある。
 また、学習履歴の切り替え単位も任意としてもよい。例えば、後述するモデルインデックスごとに学習履歴を持つとする。この場合、当該モデルが後述する参照モデルインデックスを持たない場合は学習履歴なしとして学習を開始する。すなわち、1回目のステップST3では、必ずモデル情報を更新することになる。一方、当該モデルが参照モデルインデックスを持つ場合は、当該参照モデルインデックスが指し示すモデルの学習履歴(履歴A)を参照する。これによって、当該モデルの学習時に参照モデルインデックスが指し示すモデルより評価値が悪い(推論精度が低い、損失関数の値が大きい、など)モデルに更新されてしまうことを防ぐことが可能となる。このとき、当該モデルのモデルインデックスと参照モデルインデックスが同一である場合、当該モデルの学習を実施する度に参照モデルインデックスに対応する学習履歴(履歴A)が更新されていくことになる。一方、当該モデルのモデルインデックスと参照モデルインデックスが異なる場合は、参照モデルインデックスに対応する学習履歴(履歴A)を当該モデルのモデルインデックスの学習履歴(履歴B)の初期値としてコピーした上で、当該モデルの学習を実施する度に当該モデルの学習履歴(履歴B)が更新されていくことになる。
 制御部103によってモデル情報を更新すると判定された場合(ステップST3;YES)、学習部101は、符号化用モデル情報を当該モデル情報に更新する(ステップST4)。例えば、制御部103は、モデル情報の更新があることを示すモデル更新指示情報を生成し、モデル更新指示情報を含んだ学習制御情報を学習部101に出力する。学習部101は、学習制御情報に含まれるモデル更新指示情報に従い、符号化用モデル情報を当該モデル情報に更新する。
 一方、モデル情報を更新しないと判定した場合(ステップST3;NO)、制御部103は、モデル情報の更新がないことを示すモデル更新指示情報を生成し、モデル更新指示情報を含んだ学習制御情報を学習部101に出力する。学習部101は、学習制御情報に含まれるモデル更新指示情報に従って符号化用モデル情報を更新しない。
 次に、制御部103は、評価値を学習完了判定基準と比較し、この比較結果に基づいて学習部101によるNNの学習を完了するか否かを判定する(ステップST5)。例えば、学習完了判定基準が評価部102によって生成された評価値が特定の値に達したか否かとする場合、制御部103は、評価部102によって生成された評価値が学習完了判定基準を満たした場合、学習部101によるNNの学習が完了したと判定し、評価値が学習完了判定基準を満たしていない場合、学習部101によるNNの学習が完了していないと判定する。あるいは、例えば、連続でM回(Mは1以上の予め定められた整数)、モデル情報の更新なし(ステップST3;NO)が選択されると、学習完了と判定するなどの、学習完了判定基準が直近の学習履歴に基づくものとする場合、制御部103は、学習履歴が学習完了判定基準を満たしていない場合、学習部101によるNNの学習が完了していないと判定する。
 制御部103によってNNの学習が完了したと判定された場合(ステップST5;YES)、学習部101が符号化用モデル情報を符号化部11に出力するとともに、ステップST6の処理に移行する。一方、制御部103によってNNの学習が完了していないと判定された場合(ステップST5;NO)、ステップST1の処理に戻る。
 符号化部11は、学習部101から入力された符号化用モデル情報を符号化する(ステップST6)。符号化部11は、学習部101によって生成された符号化用モデル情報を、NNのレイヤ単位で符号化し、ヘッダ情報とレイヤ単位の符号化データから構成された符号化データを生成する。
 図6は、実施の形態1に係るデータ処理装置(デコーダ)の動作を示すフローチャートであり、図4に示したデータ処理装置の動作を示している。
 復号部201は、符号化部11によって符号化された符号化データから、モデル情報を復号する(ステップST11)。次に、推論部202は、復号部201によって復号されたモデル情報から、NNを生成する(ステップST12)。推論部202は、生成されたNNを用いて、評価用データに対する推論処理を実施し、推論結果を出力する(ステップST13)。
 次に、図5のステップST6における符号化部11によるモデル情報の符号化について詳細に説明する。
 符号化部11によるモデル情報の符号化には、例えば(1)または(2)の符号化方法を用いることができる。
(1)モデル情報に含まれる各情報を構成するパラメータが、パラメータに定義されているビット精度で記述されたビット列そのものが、ヘッダ情報が存在する場合はヘッダ情報を含めて予め設定された順序で並べられたデータを符号化データとする。ビット精度は、例えば、int型8ビットあるいはfloat型32ビットといった、パラメータに定義されているビット精度である。
(2)モデル情報に含まれる各情報を構成するパラメータが、パラメータごとに設定された可変長符号化方法によって符号化されたビット列そのものが、ヘッダ情報を含めて予め設定された順序で並べられたデータを符号化データとする。
 図7は、実施の形態1における符号化データの例を示す図であり、上記(1)または(2)の符号化データは、図7に示す順序で並べてもよい。図7に示す符号化データは、データユニットと呼ぶデータの集まりから構成され、データユニットには、非レイヤデータユニットとレイヤデータユニットがある。レイヤデータユニットは、レイヤ単位の符号化データであるレイヤデータが格納されるデータユニットである。
 レイヤデータは、スタートコード、データユニットタイプ、レイヤ情報ヘッダ、および重みデータから構成される。レイヤ情報ヘッダは、NNのレイヤを識別するレイヤヘッダ情報が符号化されたものである。重みデータは、レイヤ情報ヘッダが示すレイヤに属するエッジの重み情報が符号化されたものである。なお、図7に示す符号化データにおいて、各レイヤデータユニットの並び順は必ずしもNNの各層の並び順と同じでなくてもよく、任意である。これは、後述するレイヤインデックスによって、各レイヤデータユニットがNNのどの位置のレイヤであるかを識別可能であるからである。
 非レイヤデータユニットは、レイヤデータ以外のデータが格納されるデータユニットである。例えば、非レイヤデータユニットには、スタートコード、データユニットタイプ、およびモデル情報ヘッダが格納されている。モデル情報ヘッダは、NNのモデルを識別するモデルヘッダ情報が符号化されたものである。
 スタートコードは、データユニットの先頭位置に格納され、データユニットの先頭位置を識別するためのコードである。クライアント3-1,3-2,・・・,3-N(以下、復号側と記載する)は、スタートコードを参照することにより、非レイヤデータユニットまたはレイヤデータユニットの先頭位置を特定することが可能である。例えば、スタートコードとして0x000001が定義された場合、データユニットに格納されたスタートコード以外のデータは、0x000001が発生しないように設定される。これにより、スタートコードからデータユニットの先頭位置を特定することができる。
 0x000001が発生しないように設定するためには、例えば、0x000000~0x000003の符号化データにおける3バイト目に03を挿入して0x000300~0x000303とし、復号するときに、0x000003を0x0000と変換することにより、元に戻すことができる。なお、スタートコードは、一意に識別可能なビット列であれば、0x000001以外のビット列をスタートコードとして定義してもよい。また、データユニットの先頭位置を識別可能な方法であれば、スタートコードを用いなくてもよい。例えば、データユニットの終端であることを識別可能なビット列をデータユニットの終端に付けてもよい。あるいは、非レイヤデータユニットの先頭のみスタートコードを付けることとし、モデル情報ヘッダの一部として、各レイヤデータユニットのデータサイズを符号化するようにしてもよい。このようにすることで、上記情報から各レイヤデータユニットの区切り位置を識別することが可能である。
 データユニットタイプは、データユニットにおいてスタートコードの次に格納されて、データユニットの種類を識別するためのデータである。データユニットタイプは、データユニットの種類ごとに予め値が定義されている。復号側は、データユニットに格納されたデータユニットタイプを参照することで、データユニットが、非レイヤデータユニットであるのか、レイヤデータユニットであるのかを識別でき、さらに、どのような非レイヤデータユニットまたはレイヤデータユニットであるのかを識別することが可能である。
 非レイヤデータユニットにおけるモデル情報ヘッダには、モデルインデックス、モデル内レイヤデータユニット数および符号化レイヤデータユニット数が含まれる。モデルインデックスは、NNのモデルを識別するためのインデックスである。従って、基本的には個々のモデルにおいて互いに独立したインデックスを持つが、もし実施の形態1に係るデータ処理装置(デコーダ)が過去に受信したモデルと同一のモデルインデックスを持つモデルを新たに受信した場合、当該モデルインデックスを持つモデルが上書きされることになる。モデル内レイヤデータユニット数は、モデルインデックスで識別されるモデルを構成するレイヤデータユニットの数である。符号化レイヤデータユニット数は、符号化データの中に、実際に存在するレイヤデータユニットの数である。図7の例では、レイヤデータユニット(1)~(n)が存在することから、符号化レイヤデータユニット数はnである。なお、符号化レイヤデータユニット数は、必ず、モデル内レイヤデータユニット数以下になる。
 レイヤデータユニットにおけるレイヤ情報ヘッダには、レイヤインデックスおよびレイヤ構造情報が含まれる。レイヤインデックスは、レイヤを識別するためのインデックスである。レイヤインデックスによってどの層のレイヤか識別できるように、レイヤインデックスの値の振り方は予め固定的に定義される。例えば、NNの入力層をインデックス0、次の層をインデックス1というように、入力層に近い層から順にインデックスを振る、などである。レイヤ構造情報は、NNのレイヤごとの構成を示す情報であり、前述したように、レイヤ種別情報、レイヤ種別に関わる構成情報、およびエッジの重み以外にレイヤを構成するために必要な情報を含んでいる。
 なお、これまでレイヤ構造情報を含むレイヤ情報ヘッダを示したが、モデル情報ヘッダが、符号化データに含まれる全てのレイヤ構造情報と本レイヤ構造情報に対応するレイヤインデックスを含んでもよい。復号側は、モデル情報ヘッダを参照することで、各レイヤインデックスのレイヤの構成を特定することができる。
 さらに、上記の場合は、モデル情報ヘッダを参照することで、各レイヤインデックスのレイヤの構成を特定することができるため、レイヤ情報ヘッダは、レイヤインデックスのみを持つようにしてもよい。このようにすることで、レイヤデータユニットのデータサイズが非レイヤデータユニットのデータサイズよりも大きい場合、各レイヤデータユニットのデータサイズを小さくすることができ、符号化データ内のデータユニットの最大データサイズを小さくすることができる。
 レイヤデータユニットにおいて、レイヤ情報ヘッダの次に、レイヤ単位に符号化された重みデータが格納されている。重みデータは、非零フラグおよび非零重みデータを含んでいる。非零フラグは、エッジの重みの値が零か否かを示すフラグであり、対応するレイヤに属する全てのエッジの重みについての非零フラグが設定される。
 非零重みデータは、重みデータにおいて非零フラグに続いて設定されるデータであり、非零フラグが非零(有意)を示す重みについて、その重みの値が設定されたものである。図7において、それぞれが非零の重みの値を示す重みデータ(1)~重みデータ(m)が非零重みデータとして設定されている。非零の重みデータ数mは、対応するレイヤlの全ての重みの数M以下である。なお、重みの値が非零のエッジが疎であるレイヤに関する重みデータは、非零重みデータが少なく、ほぼ非零フラグのみとなるため、重みデータのデータサイズが大きく削減される。
 図8は、実施の形態1における符号化データの別の例を示す図であり、上記(1)または(2)の符号化データは図8に示す順序で並べてもよい。図8に示す符号化データは、重みデータのデータ構成が図7と異なっており、非零重みデータには、対応するレイヤに属する全てのエッジの重みが上位ビットから順にビットプレーンごとにまとめて並べられている。さらに、レイヤ情報ヘッダには、エッジの重みを示す各ビットの先頭位置を示すビットプレーンデータ位置識別情報が設定されている。
 例えば、エッジの重みに定義されたビット精度がXであると、対応するレイヤに属する全てのエッジの重みは、ビット精度Xでそれぞれ記述される。符号化部11は、これらの重みのビット列のうち、1ビット目の非零重みデータである、1ビット目の重みデータ(1),1ビット目の重みデータ(2),・・・,1ビット目の重みデータ(m)を、1ビット目の各非零重みデータに設定する。この処理は、2ビット目の非零重みデータからXビット目の非零重みデータまで繰り返される。なお、1ビット目の重みデータ(1),1ビット目の重みデータ(2),・・・,1ビット目の重みデータ(m)は、1ビット目のビットプレーンを構成する非零の重みデータである。
 復号側は、ビットプレーンデータ位置識別情報に基づいて、レイヤ単位の符号化データのうち、必要な符号化データを特定し、特定された符号化データを任意のビット精度で復号することができる。すなわち、復号側は、符号化データから必要な符号化データのみを選別でき、復号側の環境に応じたNNのモデル情報を復号することが可能である。なお、ビットプレーンデータ位置識別情報は、ビットプレーンデータ間の区切り位置を識別可能な情報であればよく、各ビットプレーンデータの先頭位置を示す情報であってもよいし、各ビットプレーンデータのデータサイズを示す情報であってもよい。
 NNの構成を示す全ての符号化データを復号側へ伝送するためには、データ伝送ネットワーク2の伝送帯域が十分でない場合、符号化部11が、当該符号化データのうち、データ伝送ネットワーク2の伝送帯域に応じて伝送する非零重みデータを制限してもよい。
 例えば、32ビット精度で記述された重み情報のビット列のうち、上位8ビットの非零重みデータを伝送対象とする。復号側は、この非零重みデータの次に並ぶスタートコードから、符号化データにおいて、8ビット目の非零重みデータの後に次のレイヤに対応するレイヤデータユニットが並んでいることを認識できる。また、復号側は、重みデータにおける非零フラグを参照することで、値が零の重みを正しく復号することができる。
 復号側で任意のビット精度で重みデータが復号されたときに、そのビット精度での推論精度を改善するため、符号化部11は、各ビット精度で復号されたときの重みに加算するオフセットをレイヤ情報ヘッダに含めてもよい。例えば、符号化部11は、ビット精度で記述された重みのビット列に対してレイヤ単位に一様なオフセットを加算し、最も高精度になるオフセットを求めて、求められたオフセットを、レイヤ情報ヘッダに含めて符号化する。
 また、符号化部11は、NNが備える全てのレイヤにおけるエッジの重みのオフセットをモデル情報ヘッダに含めて符号化してもよい。さらに、符号化部11は、オフセットを含むか否かを示すフラグをレイヤ情報ヘッダまたはモデル情報ヘッダに設定し、例えば、フラグが有効である場合のみ、オフセットを符号化データに含めてもよい。
 符号化部11は、エッジの重みの値と特定の値との差分を符号化対象としてもよい。
 特定の値としては、例えば、符号化順が一つ前の重みが挙げられる。また、一つ上位のレイヤ(入力層に近いレイヤ)に属する、対応するエッジの重みを特定の値としてもよいし、更新前のモデルの対応するエッジの重みを特定の値としてもよい。
 さらに、符号化部11は、(A)、(B)および(C)に示す機能を有する。
(A)符号化部11は、ベース符号化データとエンハンスメント符号化データとに分けて符号化するスケーラブル符号化機能を有する。
(B)符号化部11は、基準のNNにおけるエッジの重みとの差分を符号化する機能を有する。
(C)符号化部11は、基準のNNにおける部分的な情報(例えば、レイヤ単位の情報)のみを、NNの更新用情報として符号化する機能を有する。
 (A)の例について説明する。
 符号化部11は、エッジの重みについて予め定義された量子化手法を用いて、エッジの重みを量子化し、量子化後の重みを符号化したデータをベース符号化データとし、量子化誤差を重みとみなして符号化したデータをエンハンスメント符号化データとする。ベース符号化データとされた重みは、量子化によって量子化前の重みよりもビット精度が低下するため、データサイズが削減される。復号側へ符号化データを伝送する伝送帯域が十分でない場合に、実施の形態1に係るデータ処理装置は、ベース符号化データのみを復号側に伝送する。一方、復号側へ符号化データを伝送する伝送帯域が十分な場合、実施の形態1に係るデータ処理装置は、ベース符号化データに加え、エンハンスメント符号化データも含めて復号側に伝送する。
 エンハンスメント符号化データは2つ以上とすることができる。例えば、符号化部11は、量子化誤差をさらに量子化したときの量子化値を、一つ目のエンハンスメント符号化データとし、その量子化誤差を2つ目のエンハンスメント符号化データとする。さらに、2つ目のエンハンスメント符号化データの量子化誤差をさらに量子化した量子化値とその量子化誤差とに分けて目的のエンハンスメント符号化データの数になるように符号化してもよい。このように、スケーラブル符号化を用いることで、データ伝送ネットワーク2の伝送帯域と伝送許容時間とに応じた符号化データの伝送が可能である。
 なお、符号化部11は、図8に示した非零重みデータの上位Mビットまでをベース符号化データとして符号化し、残りのビット列を1以上に分割して1以上のエンハンスメント符号化データとしてもよい。この場合、符号化部11は、ベース符号化データとエンハンスメント符号化データのそれぞれで非零フラグを再び設定する。上位ビットのエンハンスメント符号化データにおいて0となった重みは、必ず0となる。
 (B)の例について説明する。
 符号化部11は、学習部101による再学習前のNNのモデルが存在する場合、再学習後のNNのモデルにおけるエッジの重みと、再学習前のモデルにおける対応するエッジの重みとの差分を符号化してもよい。なお、再学習には、転移学習または追加学習がある。データ処理システムにおいて、高い頻度でNNの構成を更新するか、あるいは再学習ごとの学習データの分布の変化が小さい場合、エッジの重みの差分が小さいので、再学習後の符号化データのデータサイズが削減される。
 また、符号化部11は、モデルインデックスに加え、参照すべき更新前のモデルを識別するための参照モデルインデックスをモデル情報ヘッダに含めてもよい。(B)の例の場合、上記参照モデルインデックスから再学習前のモデルを識別することが可能となる。さらに、符号化部11は、符号化データに参照元があるか否かを示すフラグを、モデル情報ヘッダに設定してもよい。符号化部11は、このフラグがモデルの更新用の符号化データであることを示す場合にのみ、モデル情報ヘッダに参照モデルインデックスを設定する。
 例えば、図1に示したデータ処理システムにおいて、クライアント間でNNの更新頻度が異なるか、互いに異なるモデルのNNを用いてデータ処理を実施する場合であっても、クライアントは、参照モデルインデックスを参照することで、どのモデルに対する更新用の符号化データであるのかを正しく識別することができる。参照モデルインデックスからクライアント側にないモデルの更新用の符号化データであることが識別された場合には、クライアントが、そのことをサーバ1に伝えることも可能である。
 (C)の例について説明する。
 学習部101は、再学習前のNNのモデルが存在する場合、例えばFine-tuningを目的として、NNの上位(入力層側)から1以上の任意のレイヤを固定し、一部のレイヤのみを再学習することがある。この場合、符号化部11は、再学習によって更新されたレイヤの構成を示す情報のみを符号化する。これにより、NNの更新において、復号側へ伝送される符号化データのデータサイズが削減される。なお、符号化データにおける符号化レイヤデータユニット数は、モデル内レイヤデータユニット数よりも少ない。復号側では、モデル情報ヘッダに含まれる参照モデルインデックスと、レイヤ情報ヘッダに含まれるレイヤインデックスとを参照することで、更新すべきレイヤを特定できる。
 次に、学習部101、評価部102および推論部202によるデータ処理を説明する。
 図9は、実施の形態1における1次元データの畳み込み処理の例を示す図であり、1次元データの畳み込み処理を行う畳み込み層を示している。1次元データには、例えば、音声データ、時系列データがある。図9に示す畳み込み層は、前層に9つのノード10-1~10-9、次層に3つのノード11-1~11-3を備えている。エッジ12-1,12-6,12-11には同じ重みが付与されており、エッジ12-2,12-7,12-12には同じ重みが付与されており、エッジ12-3,12-8,12-13には同じ重みが付与されており、エッジ12-4,12-9,12-14には同じ重みが付与されており、エッジ12-5,12-10,12-15には同じ重みが付与されている。また、エッジ12-1から12-5までの重みは全て異なる値となる場合もあるし、複数の重みが同じ値となる場合もある。
 前層の9つのノード10-1~10-9のうち、5つのノードが、上記の重みで次層の1つのノードに繋がっている。カーネルサイズKは5であり、カーネルは、これらの重みの組み合わせによって規定される。例えば、図9に示すように、ノード10-1は、エッジ12-1を介してノード11-1に繋がり、ノード10-2は、エッジ12-2を介してノード11-1に繋がり、ノード10-3は、エッジ12-3を介してノード11-1に繋がり、ノード10-4は、エッジ12-4を介してノード11-1に繋がり、ノード10-5は、エッジ12-5を介してノード11-1に繋がっている。カーネルは、エッジ12-1~12-5の重みの組み合わせによって規定される。
 ノード10-3は、エッジ12-6を介してノード11-2に繋がり、ノード10-4は、エッジ12-7を介してノード11-2に繋がり、ノード10-5は、エッジ12-8を介してノード11-2に繋がり、ノード10-6は、エッジ12-9を介してノード11-2に繋がり、ノード10-7は、エッジ12-10を介してノード11-2に繋がっている。カーネルは、エッジ12-6~12-10の重みの組み合わせによって規定される。
 ノード10-5は、エッジ12-11を介してノード11-3に繋がり、ノード10-6は、エッジ12-12を介してノード11-3に繋がり、ノード10-7は、エッジ12-13を介してノード11-3に繋がり、ノード10-8は、エッジ12-14を介してノード11-3に繋がり、ノード10-9は、エッジ12-15を介してノード11-3に繋がっている。カーネルは、エッジ12-11~12-15の重みの組み合わせによって規定される。
 学習部101、評価部102および推論部202は、CNNを用いた入力データの処理において、畳み込み層のエッジの重みの組み合わせを用いて、カーネルごとにステップ数の間隔(図9では、S=2)で畳み込み演算を実施する。エッジの重みの組み合わせは、カーネルごとに学習によって決定される。なお、画像認識用途のCNNでは、複数のカーネルを有する畳み込み層でNNが構成される場合が多い。
 図10は、実施の形態1における2次元データの畳み込み処理の例を示す図であり、画像データといった2次元データの畳み込み処理を示している。図10に示す2次元データのうち、カーネル20は、x方向のサイズがK、y方向のサイズがKのブロック領域である。カーネルサイズKは、K=K×Kである。学習部101、評価部102または推論部202は、2次元データにおいて、x方向ステップ数Sの間隔およびy方向ステップ数Sの間隔で、カーネル20ごとのデータの畳み込み演算を実施する。ここで、ステップS,Sは1以上の整数である。
 図11は、NNの全結合層であるl(l=1,2,・・・,L)層目のレイヤにおけるノードごとのエッジの重み情報のマトリクスを示す図である。図12は、NNの全結合層であるl(l=1,2,・・・,L)層目のレイヤにおけるノードごとのエッジの重み情報の量子化ステップのマトリクスを示す図である。
 NNにおいては、図11に示すレイヤごとの重みwijの組み合わせが、ネットワークを構成するデータとなる。このため、ディープニューラルネットワークのような多層のNNでは、一般的に数百Mbyte以上のデータ量となり、大きなメモリサイズも必要となる。ここで、iは、ノードインデックスであり、i=1,2,・・・,Nである。jは、エッジインデックスであり、j=1,2,・・・,Nl-1である。
 そこで、実施の形態1に係るデータ処理装置では、エッジの重み情報のデータ量を削減するため、重み情報を量子化する。例えば、図12に示すように、量子化ステップqijは、エッジの重みwijごとに設定される。量子化ステップは、複数のノードインデックスまたは複数のエッジインデックスであってもよいし、複数のノードインデックスとエッジインデックスとが共通化されてもよい。これにより、符号化すべき量子化情報が削減される。
 図13は、畳み込み層におけるエッジの重み情報のマトリクスを示す図である。図14は、畳み込み層におけるエッジの重み情報の量子化ステップのマトリクスを示す図である。畳み込み層では、1つのカーネルに対するエッジの重みは、全てのノードで共通であり、ノード一つ当たりに結合するエッジ数、すなわちカーネルサイズKを小さくしてカーネルを小領域にすることができる。図13は、エッジの重みwi’j’がカーネルごとに設定されたデータであり、図14は、量子化ステップqi’j’がカーネルごとに設定されたデータである。なお、i’はカーネルインデックスであり、i’=1,2,・・・,M(l=1,2,・・・,L)である。j’はエッジインデックスであり、j’=1,2,・・・,Kである。
 量子化ステップは、複数のカーネルインデックス、複数のエッジインデックス、または複数のカーネルインデックスとエッジインデックスで共通化されてもよい。これにより、符号化すべき量子化情報が削減される。例えば、レイヤ内の全ての量子化ステップを共通化して、一つのレイヤで一つの量子化ステップとしてもよいし、モデル内の全ての量子化ステップを共通化して、一つのモデルで一つの量子化ステップとしてもよい。
 次に、実施の形態1に係るデータ処理装置の機能を実現するハードウェア構成について説明する。実施の形態1に係るデータ処理装置における、データ処理部10および符号化部11の機能は、処理回路により実現される。すなわち、実施の形態1に係るデータ処理装置は、図5のステップST1からステップST6までの処理を実行するための処理回路を備える。処理回路は、専用のハードウェアであってもよいが、メモリに記憶されたプログラムを実行するCPU(Central Processing Unit)であってもよい。
 図15Aは、実施の形態1に係るデータ処理装置の機能を実現するハードウェア構成を示すブロック図である。図15Aにおいて、処理回路300は、図3に示したデータ処理装置として機能する専用の回路である。図15Bは、実施の形態1に係るデータ処理装置の機能を実現するソフトウェアを実行するハードウェア構成を示すブロック図である。図15Bにおいて、プロセッサ301およびメモリ302は、信号バスによって互いに接続されている。
 上記処理回路が図15Aに示す専用のハードウェアである場合、処理回路300は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)またはこれらを組み合わせたものが該当する。なお、データ処理部10および符号化部11の機能を別々の処理回路で実現してもよいし、これらの機能をまとめて1つの処理回路で実現してもよい。
 上記処理回路が図15Bに示すプロセッサである場合、データ処理部10および符号化部11の機能は、ソフトウェア、ファームウェアまたはソフトウェアとファームウェアとの組み合わせによって実現される。ソフトウェアまたはファームウェアは、プログラムとして記述されて、メモリ302に記憶される。プロセッサ301は、メモリ302に記憶されたプログラムを読み出して実行することによって、データ処理部10および符号化部11の機能を実現する。すなわち、実施の形態1に係るデータ処理装置は、プロセッサ301によって実行されるときに、図5に示したステップST1からステップST6までの処理が結果的に実行されるプログラムを記憶するためのメモリ302を備える。これらのプログラムは、データ処理部10および符号化部11の手順または方法をコンピュータに実行させるものである。メモリ302は、コンピュータを、データ処理部10および符号化部11として機能させるためのプログラムが記憶されたコンピュータ可読記憶媒体であってもよい。
 メモリ302には、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electrically-EPROM)などの不揮発性または揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVDなどが該当する。
 なお、データ処理部10および符号化部11の機能について一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現してもよい。例えば、データ処理部10については、専用のハードウェアとしての処理回路でその機能を実現し、符号化部11については、プロセッサ301がメモリ302に記憶されたプログラムを読み出して実行することによってその機能を実現してもよい。このように、処理回路は、ハードウェア、ソフトウェア、ファームウェアまたはこれらの組み合わせによって、上記機能のそれぞれを実現することができる。
 なお、図3に示したデータ処理装置について説明したが、図4に示したデータ処理装置においても、同様である。例えば、図4に示したデータ処理装置は、図6のステップST11からステップST13までの処理を実行するための処理回路を備える。この処理回路は、専用のハードウェアであってもよいが、メモリに記憶されたプログラムを実行するCPUであってもよい。
 上記処理回路が図15Aに示す専用のハードウェアである場合、処理回路300は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC、FPGAまたはこれらを組み合わせたものが該当する。なお、復号部201および推論部202の機能を、別々の処理回路で実現してもよいし、これらの機能をまとめて1つの処理回路で実現してもよい。
 上記処理回路が図15Bに示すプロセッサであると、復号部201および推論部202の機能は、ソフトウェア、ファームウェアまたはソフトウェアとファームウェアとの組み合わせによって実現される。ソフトウェアまたはファームウェアは、プログラムとして記述されて、メモリ302に記憶される。プロセッサ301は、メモリ302に記憶されたプログラムを読み出して実行することによって、復号部201および推論部202の機能を実現する。すなわち、図4に示したデータ処理装置は、プロセッサ301によって実行されるときに、図6に示すステップST11からステップST13までの処理が結果的に実行されるプログラムを記憶するためのメモリ302を備える。これらのプログラムは、復号部201および推論部202の手順または方法を、コンピュータに実行させるものである。メモリ302は、コンピュータを、復号部201および推論部202として機能させるためのプログラムが記憶されたコンピュータ可読記憶媒体であってもよい。
 なお、復号部201および推論部202の機能について一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現してもよい。例えば、復号部201については専用のハードウェアとしての処理回路でその機能を実現し、推論部202については、プロセッサ301がメモリ302に記憶されたプログラムを読み出して実行することによってその機能を実現してもよい。
 以上のように、実施の形態1に係るデータ処理装置において、符号化部11が、NNの構成を示す情報を符号化し、ヘッダ情報とレイヤ単位の符号化データから構成された符号化データを生成する。復号側で必要なレイヤに関する情報のみを符号化することができるので、NNの構成に関する情報を符号化する処理負荷が低減され、復号側へ伝送するデータサイズを削減することができる。
 実施の形態1に係るデータ処理装置において、符号化部11が、NNのレイヤに属するエッジの重み情報を、上位ビットからビットプレーン単位で符号化する。これにより、復号側へ伝送する符号化データのデータサイズを削減することができる。
 実施の形態1に係るデータ処理装置において、符号化部11が、ヘッダ情報で指定された1以上のレイヤに関する情報を符号化する。これにより、復号側で必要なレイヤに関する情報のみが符号化され、復号側へ伝送する符号化データのデータサイズを削減することができる。
 実施の形態1に係るデータ処理装置において、符号化部11が、ヘッダ情報で指定されたレイヤに属するエッジの重みの値と特定の値との差分を符号化する。これにより、復号側へ伝送する符号化データのデータサイズを削減することができる。
 実施の形態1に係るデータ処理装置において、符号化部11が、エッジの重み情報を、ベース符号化データとエンハンスメント符号化データとに分けて符号化する。これにより、データ伝送ネットワーク2の伝送帯域と伝送許容時間に応じた符号化データの伝送を実現することができる。
実施の形態2.
 図16は、実施の形態2に係るデータ処理装置(エンコーダ)の構成を示すブロック図である。図16に示すデータ処理装置は、学習用データセットと評価用データセットとを用いてNNを学習し、NNのモデル情報の符号化データを生成する第1のデータ処理装置であり、例えば、図1に示したサーバ1である。図16に示すデータ処理装置は、データ処理部10A、符号化部11および復号部12を備えている。
 データ処理部10Aは、NNを生成して学習するデータ処理部であって、学習部101A、評価部102および制御部103を備える。符号化部11は、学習部101によって生成されたモデル情報を符号化し、ヘッダ情報とレイヤ単位の符号化データから構成された符号化データを生成する。復号部12は、符号化部11によって生成された符号化データからモデル情報を復号する。また、復号部12は、復号済みのモデル情報を学習部101Aに出力する。
 学習部101Aは、実施の形態1と同様に、学習用データセットを用いてNNの学習を実施し、学習されたNNの構成を示すモデル情報を生成する。また、学習部101Aは、復号済みのモデル情報を用いてNNを生成し、学習用データセットを用いて、生成されたNNのパラメータを再学習する。
 上記再学習の際、一部のエッジの重みを固定して再学習することで、符号化データのデータサイズを小さく保ったまま高精度化することが可能である。例えば、非零フラグが0の重みは0に固定した状態で再学習を実施することで、再学習前のエッジの重みに係る符号化データのデータサイズ以上となることを防ぎながら重みの最適化が可能となる。
 以上のように、実施の形態2に係るデータ処理装置は、復号部12を備え、データ処理部10Aが、復号部12によって復号された情報を用いてNNを学習する。これにより、例えば、符号化歪みが発生する非可逆符号化を符号化部11が行う場合であっても、実施の形態2に係るデータ処理装置は、符号化データの実際の復号結果に基づいてNNを生成して学習することができ、符号化データのデータサイズに対する制約を課した状況下で、符号化誤差の影響を最小限に抑えたNNの学習が可能である。
実施の形態3.
 実施の形態3に係るデータ処理システムは、図1と同様の構成を有しており、サーバ1として図3に示したデータ処理装置を備え、クライアント3-1,3-2,・・・,3-Nとして図4に示したデータ処理装置を備える。実施の形態3に係るデータ処理システムにおいて、NNの中間レイヤから出力されたデータは、下記の参考文献に記載された画像検索(retrieval)またはマッチング(matching)を一例とした、画像データおよび音声データに対するデータ処理の特徴量として用いられる。
(参考文献)ISO/IEC JTC1/SC29/WG11/m39219, “Improved retrieval and matching with CNN feature for CDVA”, Chengdu, China, Oct.2016.
 例えば、画像検索、マッチングまたは物体追跡といった画像処理の画像特徴量として、NNの中間レイヤの出力データを用いる場合、従来の上記画像処理で用いられていた画像特徴量であるHOG(Histogram of Oriented Gradients)、SIFT(Scale Invariant Feature Transform)、または、SURF(Speeded Up Robust Features)に対する画像特徴量の置き換えあるいは追加が行われる。これにより、従来の画像特徴量を用いた画像処理と同じ処理手順で当該画像処理を実現できる。実施の形態3に係るデータ処理システムにおいて、符号化部11は、画像特徴量を出力する中間レイヤまでのNNの構成を示すモデル情報を符号化する。
 さらに、サーバ1として機能するデータ処理装置は、上記データ処理の特徴量を用いて画像検索等のデータ処理を行う。クライアントとして機能するデータ処理装置は、符号化データから中間レイヤまでのNNを生成し、生成されたNNの中間レイヤから出力されたデータを特徴量として用いて、画像検索などのデータ処理を実施する。
 以上のように、実施の形態3に係るデータ処理システムにおいて、符号化部11が、NNの中間レイヤまでの構成を示すモデル情報を符号化する。これにより、量子化によるパラメータデータの圧縮率が高まるので、符号化前の重み情報のデータ量を削減することができる。クライアントは、復号部201によって復号されたモデル情報を用いて、NNを生成し、生成されたNNの中間レイヤから出力されたデータを特徴量として用いたデータ処理を行う。
 なお、本発明は上記実施の形態に限定されるものではなく、本発明の範囲内において、実施の形態のそれぞれの自由な組み合わせまたは実施の形態のそれぞれの任意の構成要素の変形もしくは実施の形態のそれぞれにおいて任意の構成要素の省略が可能である。
 本発明に係るデータ処理装置は、ニューラルネットワークの構成に関する情報を符号化する処理負荷が低減され、復号側へ伝送するデータサイズを削減することができるので、例えば、画像認識技術への利用が可能である。
 1 サーバ、2 データ伝送ネットワーク、3-1~3-N クライアント、10,10A データ処理部、10-1~10-9,11-1~11-3 ノード、11 符号化部、12 復号部、12-1~12-15 エッジ、20 カーネル、101,101A 学習部、102 評価部、103 制御部、201 復号部、202 推論部、300 処理回路、301 プロセッサ、302 メモリ。

Claims (9)

  1.  ニューラルネットワークを学習するデータ処理部と、
     前記ニューラルネットワークのモデルを識別するモデルヘッダ情報と、前記ニューラルネットワークのレイヤを識別するレイヤヘッダ情報と、レイヤ単位のエッジの重み情報とが符号化された符号化データを生成する符号化部と、
     を備えたことを特徴とするデータ処理装置。
  2.  前記符号化部は、レイヤに属するエッジの重み情報を、上位ビットからビットプレーン単位で符号化すること
     を特徴とする請求項1記載のデータ処理装置。
  3.  前記符号化部は、前記レイヤヘッダ情報によって識別される、1以上のレイヤに属するエッジの重み情報を符号化すること
     を特徴とする請求項1または請求項2記載のデータ処理装置。
  4.  前記符号化部は、エッジの重みの値と特定の値との差分を符号化すること
     を特徴とする請求項1または請求項2記載のデータ処理装置。
  5.  前記符号化部は、エッジの重み情報を、ベース符号化データとエンハンスメント符号化データとに分けて符号化すること
     を特徴とする請求項1または請求項2記載のデータ処理装置。
  6.  前記符号化部によって生成された符号化データを復号する復号部を備え、
     前記データ処理部は、前記復号部によって復号された情報を用いて、前記ニューラルネットワークを学習すること
     を特徴とする請求項1または請求項2記載のデータ処理装置。
  7.  ニューラルネットワークを学習する第1のデータ処理部と、
     前記ニューラルネットワークのモデルを識別するモデルヘッダ情報と、前記ニューラルネットワークのレイヤを識別するレイヤヘッダ情報と、レイヤ単位のエッジの重み情報とが符号化された符号化データを生成する符号化部と、
     を有する第1のデータ処理装置と、
     前記符号化部によって生成された符号化データから復号する復号部と、
     前記復号部によって復号された情報を用いて、前記ニューラルネットワークを生成し、前記ニューラルネットワークを用いたデータ処理を行う第2のデータ処理部と、
     を有する第2のデータ処理装置と、
     を備えたことを特徴とするデータ処理システム。
  8.  前記符号化部は、前記ニューラルネットワークの中間レイヤまでに関する情報を符号化し、
     前記第2のデータ処理装置は、前記ニューラルネットワークの中間レイヤから出力されたデータを特徴量として用いたデータ処理を行うこと
     を特徴とする請求項7記載のデータ処理システム。
  9.  データ処理部が、ニューラルネットワークを学習するステップと、
     符号化部が、前記ニューラルネットワークのモデルを識別するモデルヘッダ情報と、前記ニューラルネットワークのレイヤを識別するレイヤヘッダ情報と、レイヤ単位のエッジの重み情報とが符号化された符号化データを生成するステップと、
     を備えたことを特徴とするデータ処理方法。
PCT/JP2019/007826 2019-02-28 2019-02-28 データ処理装置、データ処理システムおよびデータ処理方法 WO2020174658A1 (ja)

Priority Applications (14)

Application Number Priority Date Filing Date Title
JP2021501494A JP7094434B2 (ja) 2019-02-28 2019-02-28 データ処理装置、データ処理システムおよびデータ処理方法
EP19917206.5A EP3933710A4 (en) 2019-02-28 2019-02-28 DATA PROCESSING DEVICE, DATA PROCESSING SYSTEM AND DATA PROCESSING METHODS
CN201980092550.1A CN113454654A (zh) 2019-02-28 2019-02-28 数据处理装置、数据处理系统和数据处理方法
KR1020217025732A KR20210113356A (ko) 2019-02-28 2019-02-28 데이터 처리 장치, 데이터 처리 시스템 및 데이터 처리 방법
MX2021010406A MX2021010406A (es) 2019-02-28 2019-02-28 Dispositivo de procesamiento de datos, sistema de procesamiento de datos, y metodo de procesamiento de datos.
US17/426,032 US20220343148A1 (en) 2019-02-28 2019-02-28 Data processing device, data processing system, and data processing method
BR112021014660-1A BR112021014660A2 (pt) 2019-02-28 2019-02-28 Dispositivo, sistema e método de processamento de dados
SG11202108534PA SG11202108534PA (en) 2019-02-28 2019-02-28 Data processing device, data processing system, and data processing method
PCT/JP2019/007826 WO2020174658A1 (ja) 2019-02-28 2019-02-28 データ処理装置、データ処理システムおよびデータ処理方法
CA3126905A CA3126905C (en) 2019-02-28 2019-02-28 Data processing device, data processing system, and data processing method
TW110147159A TWI771249B (zh) 2019-02-28 2019-08-27 資料處理裝置、資料處理系統以及資料處理方法
TW108130592A TWI753290B (zh) 2019-02-28 2019-08-27 資料處理裝置、資料處理系統以及資料處理方法
ZA2021/05148A ZA202105148B (en) 2019-02-28 2021-07-21 Data processing device, data processing system, and data processing method
JP2022099475A JP7313515B2 (ja) 2019-02-28 2022-06-21 データ処理装置、データ処理システムおよびデータ処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/007826 WO2020174658A1 (ja) 2019-02-28 2019-02-28 データ処理装置、データ処理システムおよびデータ処理方法

Publications (1)

Publication Number Publication Date
WO2020174658A1 true WO2020174658A1 (ja) 2020-09-03

Family

ID=72238306

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/007826 WO2020174658A1 (ja) 2019-02-28 2019-02-28 データ処理装置、データ処理システムおよびデータ処理方法

Country Status (12)

Country Link
US (1) US20220343148A1 (ja)
EP (1) EP3933710A4 (ja)
JP (1) JP7094434B2 (ja)
KR (1) KR20210113356A (ja)
CN (1) CN113454654A (ja)
BR (1) BR112021014660A2 (ja)
CA (1) CA3126905C (ja)
MX (1) MX2021010406A (ja)
SG (1) SG11202108534PA (ja)
TW (2) TWI753290B (ja)
WO (1) WO2020174658A1 (ja)
ZA (1) ZA202105148B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023039627A1 (en) * 2021-09-15 2023-03-23 Canon Kabushiki Kaisha System and method for encoding and decoding data

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018142766A1 (ja) * 2017-02-03 2018-08-09 パナソニックIpマネジメント株式会社 学習済みモデル提供方法および学習済みモデル提供装置
JP2018206016A (ja) * 2017-06-02 2018-12-27 株式会社日立製作所 機械学習システム及び機械学習方法
WO2019008752A1 (ja) * 2017-07-07 2019-01-10 三菱電機株式会社 データ処理装置、データ処理方法および圧縮データ

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6816194B2 (en) * 2000-07-11 2004-11-09 Microsoft Corporation Systems and methods with error resilience in enhancement layer bitstream of scalable video coding
US10796223B2 (en) * 2014-02-10 2020-10-06 Mitsubishi Electric Corporation Hierarchical neural network apparatus, classifier learning method and discriminating method
US10679120B2 (en) * 2014-11-10 2020-06-09 International Business Machines Corporation Power driven synaptic network synthesis
CN106203624B (zh) * 2016-06-23 2019-06-21 上海交通大学 基于深度神经网络的矢量量化系统及方法
CN106650922B (zh) * 2016-09-29 2019-05-03 清华大学 硬件神经网络转换方法、计算装置、软硬件协作系统
WO2018135002A1 (ja) * 2017-01-23 2018-07-26 株式会社カヤック 人工ニューラルネットワークシステム、人工ニューラルネットワークの制御方法および人工ニューラルネットワークのためのデータ構造
TWI767000B (zh) * 2017-05-20 2022-06-11 英商淵慧科技有限公司 產生波形之方法及電腦儲存媒體
CN107832718B (zh) * 2017-11-13 2020-06-05 重庆工商大学 基于自编码器的手指静脉防伪鉴别方法及系统
CN109214003B (zh) * 2018-08-29 2019-08-09 陕西师范大学 基于多层注意力机制的循环神经网络生成标题的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018142766A1 (ja) * 2017-02-03 2018-08-09 パナソニックIpマネジメント株式会社 学習済みモデル提供方法および学習済みモデル提供装置
JP2018206016A (ja) * 2017-06-02 2018-12-27 株式会社日立製作所 機械学習システム及び機械学習方法
WO2019008752A1 (ja) * 2017-07-07 2019-01-10 三菱電機株式会社 データ処理装置、データ処理方法および圧縮データ

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3933710A4 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023039627A1 (en) * 2021-09-15 2023-03-23 Canon Kabushiki Kaisha System and method for encoding and decoding data
AU2021232739A1 (en) * 2021-09-15 2023-03-30 Canon Kabushiki Kaisha System and method for encoding and decoding data

Also Published As

Publication number Publication date
JPWO2020174658A1 (ja) 2021-09-30
JP7094434B2 (ja) 2022-07-01
KR20210113356A (ko) 2021-09-15
CA3126905A1 (en) 2020-09-03
TWI753290B (zh) 2022-01-21
TWI771249B (zh) 2022-07-11
SG11202108534PA (en) 2021-09-29
CA3126905C (en) 2023-12-12
US20220343148A1 (en) 2022-10-27
EP3933710A1 (en) 2022-01-05
TW202034230A (zh) 2020-09-16
TW202213192A (zh) 2022-04-01
BR112021014660A2 (pt) 2021-09-21
EP3933710A4 (en) 2022-04-13
ZA202105148B (en) 2023-12-20
CN113454654A (zh) 2021-09-28
MX2021010406A (es) 2021-09-21

Similar Documents

Publication Publication Date Title
CA3066204C (en) Data processing device, data processing method, and non-transitory computer-readable storage medium
US20220188596A1 (en) Data processing device, data processing system, and data processing method
CN114761970A (zh) 神经网络表示格式
CN117882376A (zh) 使用机器学习系统的网络参数子空间中的实例自适应图像和视频压缩
WO2020174658A1 (ja) データ処理装置、データ処理システムおよびデータ処理方法
JP7313515B2 (ja) データ処理装置、データ処理システムおよびデータ処理方法
RU2814940C1 (ru) Устройство обработки данных, система обработки данных и способ обработки данных
RU2811535C2 (ru) Устройство обработки данных, система обработки данных и способ обработки данных
Ferreira et al. A fish school search based algorithm for image channel-optimized vector quantization
JP2022078735A (ja) 画像処理装置、画像処理プログラム、画像認識装置、画像認識プログラム及び画像認識システム
Milani A distributed source autoencoder of local visual descriptors for 3D reconstruction
Hwang et al. A layer-wise extreme network compression for super resolution
CN117496310A (zh) 一种基于对比学习的数据处理方法、装置、设备及介质
CN117611922A (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: 19917206

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021501494

Country of ref document: JP

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 3126905

Country of ref document: CA

REG Reference to national code

Ref country code: BR

Ref legal event code: B01A

Ref document number: 112021014660

Country of ref document: BR

ENP Entry into the national phase

Ref document number: 20217025732

Country of ref document: KR

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 112021014660

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20210726

ENP Entry into the national phase

Ref document number: 2019917206

Country of ref document: EP

Effective date: 20210928