RU2811535C2 - Data processing device, data processing system and data processing method - Google Patents

Data processing device, data processing system and data processing method Download PDF

Info

Publication number
RU2811535C2
RU2811535C2 RU2021124838A RU2021124838A RU2811535C2 RU 2811535 C2 RU2811535 C2 RU 2811535C2 RU 2021124838 A RU2021124838 A RU 2021124838A RU 2021124838 A RU2021124838 A RU 2021124838A RU 2811535 C2 RU2811535 C2 RU 2811535C2
Authority
RU
Russia
Prior art keywords
data
information
model
layer
neural network
Prior art date
Application number
RU2021124838A
Other languages
Russian (ru)
Other versions
RU2021124838A (en
Inventor
Акира МИНЕЗАВА
Казуо СУГИМОТО
Original Assignee
Мицубиси Электрик Корпорейшн
Filing date
Publication date
Application filed by Мицубиси Электрик Корпорейшн filed Critical Мицубиси Электрик Корпорейшн
Publication of RU2021124838A publication Critical patent/RU2021124838A/en
Application granted granted Critical
Publication of RU2811535C2 publication Critical patent/RU2811535C2/en

Links

Images

Abstract

FIELD: computing systems.
SUBSTANCE: invention is related to a method and system for data processing. The device for processing image or audio data, comprising a data processing unit for training a neural network; an encoding unit for generating encoded data in which model information is encoded, including model header information that identifies a model of the neural network used to process the image or audio data, layer header information that identifies one or more layers of the neural network and indicates a configuration each layer of the neural network.
EFFECT: reducing the processing load for encoding information
9 cl, 17 dwg

Description

Область техники, к которой относится изобретениеField of technology to which the invention relates

[0001] Настоящее изобретение относится к устройству обработки данных, системе обработки данных и способу обработки данных, которые формируют кодированные данные, в которых кодируется информация относительно конфигурации нейронной сети.[0001] The present invention relates to a data processing apparatus, a data processing system and a data processing method that generates encoded data in which information regarding the configuration of a neural network is encoded.

Уровень техникиState of the art

[0002] Что касается способа для решения задач классификации (различения) и задач регрессии входных данных, предусмотрено машинное обучение. Для машинного обучения, предусмотрена технология, называемая "нейронной сетью", которая имитирует нейронную схему мозга (нейроны). В нейронной сети (далее называемой "NN" (neural network)), классификация (различение) или регрессия входных данных выполняется с использованием вероятностной модели (различающей модели или порождающей модели), представленной посредством сети, в которой нейроны взаимно соединяются. [0002] As for the method for solving classification problems and regression problems of input data, machine learning is provided. For machine learning, there is a technology called a "neural network" that mimics the brain's neural circuitry (neurons). In a neural network (hereinafter referred to as "NN" (neural network)), classification (discrimination) or regression of input data is performed using a probabilistic model (discriminative model or generative model) represented by a network in which neurons are interconnected.

[0003] Помимо этого, NN может достигать высокой производительности посредством оптимизации параметров NN посредством обучения с использованием большого объема данных. Тем не менее, следует отметить, что размер NN в последние годы растет, и имеется тенденция к увеличению размера данных NN, и вычислительная нагрузка на компьютер с использованием NN также увеличивается.[0003] In addition, NN can achieve high performance by optimizing NN parameters through training using a large amount of data. However, it should be noted that the size of NN has been increasing in recent years, and there is a tendency for the size of NN data to increase, and the computational load on the computer using NN is also increasing.

[0004] Например, непатентный документ 1 описывает технологию для скалярного квантования весовых коэффициентов ребер, которые представляют собой фрагменты информации, указывающие конфигурацию NN, и последующего кодирования весовых коэффициентов ребер. Посредством скалярного квантования весовых коэффициентов ребер и последующего кодирования весовых коэффициентов ребер, размер данных для данных относительно ребер сжимается.[0004] For example, Non-Patent Document 1 describes a technology for scalar quantization of edge weights, which are pieces of information indicating the configuration of an NN, and then encoding the edge weights. By scalar quantizing the edge weights and then encoding the edge weights, the data size of the data relative to the edges is compressed.

Список библиографических ссылокList of bibliographic references

Непатентные документыNon-patent documents

[0005] Непатентный документ 1. 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 год.[0005] Non-Patent Document 1. 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.

Сущность изобретенияThe essence of the invention

Техническая задачаTechnical problem

[0006] В системе, в которой множество клиентов соединяются с сервером через сеть передачи данных, когда каждый из множества клиентов выполняет обработку данных с использованием NN, обученной посредством сервера, размер данных модели и параметры NN и значение, указывающее соответствующую производительность, варьируются в зависимости от производительности обработки отдельных клиентов, емкости хранения и полосы частот передачи сети передачи данных, соединенной с сервером. Следовательно, даже если модель и параметры NN кодируются с использованием технологии, описанной в непатентном документе 1, кодированные данные должны сжиматься до размера данных, подходящего для каждого из множества клиентов, и в силу этого имеется проблема увеличения нагрузки по обработке для кодирования. Помимо этого, имеется другая проблема в том, что когда имеется огромное количество клиентов, даже если данные, которые должны передаваться к каждому отдельному клиенту, сжимаются, размер данных, которые должны передаваться во все клиенты, является огромным.[0006] In a system in which a plurality of clients are connected to a server via a data network, when each of the plurality of clients performs data processing using a NN trained by the server, the size of the model data and the parameters of the NN and a value indicating the corresponding performance vary depending on the processing performance of individual clients, the storage capacity and transmission bandwidth of the data network connected to the server. Therefore, even if the NN model and parameters are encoded using the technology described in Non-Patent Document 1, the encoded data must be compressed to a data size suitable for each of a plurality of clients, and thus there is a problem of increasing the processing load for encoding. In addition, there is another problem that when there is a huge number of clients, even if the data to be transmitted to each individual client is compressed, the size of the data to be transmitted to all clients is huge.

[0007] Настоящее изобретение должно разрешать вышеописанные проблемы, и задача настоящего изобретения заключается в том, чтобы получать устройство обработки данных, систему обработки данных и способ обработки данных, которые позволяют снижать нагрузку по обработке для кодирования информации относительно NN и уменьшать размер данных, которые должны передаваться.[0007] The present invention is intended to solve the above-described problems, and it is an object of the present invention to provide a data processing apparatus, a data processing system, and a data processing method that can reduce the processing load for encoding information regarding NN and reduce the size of data that must be be transmitted.

Решение задачиThe solution of the problem

[0008] Устройство обработки данных согласно настоящему изобретению включает в себя блок обработки данных для обучения NN; и блок кодирования для формирования кодированных данных, в которых кодируется информация заголовков моделей, которая идентифицирует модель NN, информация заголовков слоев, которая идентифицирует один или более слоев NN, и послойная информация весовых коэффициентов ребер.[0008] A data processing apparatus according to the present invention includes a data processing unit for training an NN; and an encoding unit for generating encoded data in which model header information that identifies the NN model, layer header information that identifies one or more NN layers, and layer-by-layer edge weight information are encoded.

Положительный эффект изобретенияPositive effect of the invention

[0009] Согласно настоящему изобретению, блок кодирования формирует кодированные данные, в которых кодируется информация заголовков моделей, которая идентифицирует модель NN, информация заголовков слоев, которая идентифицирует один или более слоев NN, и послойная информация весовых коэффициентов ребер. Блок кодирования может кодировать информацию относительно слоя в NN, которая требуется для стороны декодирования, и в силу этого нагрузка по обработке для кодирования информации относительно NN уменьшается, и может достигаться уменьшение размера данных, которые должны передаваться.[0009] According to the present invention, the encoding unit generates encoded data in which model header information that identifies the NN model, layer header information that identifies one or more NN layers, and layer-by-layer edge weight information are encoded. The encoding unit can encode information regarding a layer into the NN that is required by the decoding side, and thereby the processing load for encoding the information regarding the NN is reduced, and a reduction in the size of data to be transmitted can be achieved.

Краткое описание чертежейBrief description of drawings

[0010] Фиг. 1 является блок-схемой, показывающей конфигурацию системы обработки данных согласно первому варианту осуществления.[0010] FIG. 1 is a block diagram showing the configuration of a data processing system according to the first embodiment.

Фиг. 2 является схемой, показывающей примерную конфигурацию NN.Fig. 2 is a diagram showing an exemplary NN configuration.

Фиг. 3 является блок-схемой, показывающей конфигурацию устройства обработки данных (кодера) согласно первому варианту осуществления.Fig. 3 is a block diagram showing the configuration of a data processing apparatus (encoder) according to the first embodiment.

Фиг. 4 является блок-схемой, показывающей конфигурацию устройства обработки данных (декодера) согласно первому варианту осуществления.Fig. 4 is a block diagram showing the configuration of a data processing apparatus (decoder) according to the first embodiment.

Фиг. 5 является блок-схемой последовательности операций способа, показывающей работу устройства обработки данных (кодера) согласно первому варианту осуществления.Fig. 5 is a flowchart showing operation of a data processing apparatus (encoder) according to the first embodiment.

Фиг. 6 является блок-схемой последовательности операций способа, показывающей работу устройства обработки данных (декодера) согласно первому варианту осуществления.Fig. 6 is a flowchart showing operation of a data processing apparatus (decoder) according to the first embodiment.

Фиг. 7 является схемой, показывающей пример кодированных данных в первом варианте осуществления.Fig. 7 is a diagram showing an example of encoded data in the first embodiment.

Фиг. 8 является схемой, показывающей другой пример кодированных данных в первом варианте осуществления.Fig. 8 is a diagram showing another example of encoded data in the first embodiment.

Фиг. 9 является схемой, показывающей пример процесса свертки для одномерных данных в первом варианте осуществления.Fig. 9 is a diagram showing an example of a convolution process for one-dimensional data in the first embodiment.

Фиг. 10 является схемой, показывающей пример процесса свертки для двумерных данных в первом варианте осуществления.Fig. 10 is a diagram showing an example of a convolution process for two-dimensional data in the first embodiment.

Фиг. 11 является схемой, показывающей матрицу поузловой информации весовых коэффициентов ребер в l-ом слое NN.Fig. 11 is a diagram showing a node-wise information matrix of edge weights in the l-th layer of the NN.

Фиг. 12 является схемой, показывающей матрицу шагов квантования для поузловой информации весовых коэффициентов ребер в l-ом слое NN.Fig. 12 is a diagram showing a quantization step matrix for node-by-node information of edge weights in the l-th layer of the NN.

Фиг. 13 является схемой, показывающей матрицу информации весовых коэффициентов ребер в сверточном слое.Fig. 13 is a diagram showing an edge weight information matrix in a convolutional layer.

Фиг. 14 является схемой, показывающей матрицу шагов квантования для информации весовых коэффициентов ребер в сверточном слое.Fig. 14 is a diagram showing a quantization step matrix for edge weight information in a convolutional layer.

Фиг. 15A является блок-схемой, показывающей аппаратную конфигурацию, которая реализует функции устройства обработки данных согласно первому варианту осуществления, и фиг. 15B является блок-схемой, показывающей аппаратную конфигурацию, которая выполняет программное обеспечение, которое реализует функции устройства обработки данных согласно первому варианту осуществления.Fig. 15A is a block diagram showing a hardware configuration that implements functions of a data processing apparatus according to the first embodiment, and FIG. 15B is a block diagram showing a hardware configuration that executes software that implements functions of a data processing apparatus according to the first embodiment.

Фиг. 16 является блок-схемой, показывающей конфигурацию устройства обработки данных (кодера) согласно второму варианту осуществления.Fig. 16 is a block diagram showing the configuration of a data processing apparatus (encoder) according to the second embodiment.

Подробное описание вариантов осуществленияDetailed Description of Embodiments

[0011] Первый вариант осуществления [0011] First embodiment

Фиг. 1 является блок-схемой, показывающей конфигурацию системы обработки данных согласно первому варианту осуществления. В системе обработки данных, показанной на фиг. 1, сервер 1 соединяется с клиентами 3-1, 3-2, ..., 3-N через сеть 2 передачи данных. N является натуральным числом, большим или равным 2. Сервер 1 представляет собой устройство обработки данных, которое оптимизирует параметры NN (нейронной сети) посредством обучения с использованием большого объема данных, за счет этого создавая высокопроизводительную NN, и представляет собой первое устройство обработки данных, включенное в систему обработки данных, показанную на фиг. 1.Fig. 1 is a block diagram showing the configuration of a data processing system according to the first embodiment. In the data processing system shown in FIG. 1, server 1 connects to clients 3-1, 3-2, ..., 3-N via data network 2. N is a natural number greater than or equal to 2. Server 1 is a data processing device that optimizes the parameters of the NN (neural network) through training using a large amount of data, thereby creating a high-performance NN, and is the first data processing device turned on to the data processing system shown in FIG. 1.

[0012] Сеть 2 передачи данных представляет собой сеть, через которую передаются данные, которыми обмениваются между сервером 1 и клиентами 3-1, 3-2, ..., 3-N, и представляет собой Интернет или сеть intranet. Например, в сети 2 передачи данных, информация для создания NN передается из сервера 1 в клиенты 3-1, 3-2, ..., 3-N.[0012] The data network 2 is a network through which data exchanged between the server 1 and the clients 3-1, 3-2, ..., 3-N is transmitted, and is the Internet or an intranet. For example, in data network 2, information for creating a NN is transmitted from server 1 to clients 3-1, 3-2, ..., 3-N.

[0013] Клиенты 3-1, 3-2, ..., 3-N представляют собой устройства, которые создают NN, обученную посредством сервера 1, и выполняют обработку данных с использованием созданной NN. Например, клиенты 3-1, 3-2, ..., 3-N представляют собой устройства, имеющие функцию связи и функцию обработки данных, такие как персональные компьютеры (PC), камеры или роботы. Каждый из клиентов 3-1, 3-2, ..., 3-N представляет собой второе устройство обработки данных, включенное в систему обработки данных, показанную на фиг. 1.[0013] Clients 3-1, 3-2, ..., 3-N are devices that create a NN trained by the server 1 and perform data processing using the created NN. For example, clients 3-1, 3-2, ..., 3-N are devices having a communication function and a data processing function, such as personal computers (PCs), cameras or robots. 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. 1.

[0014] В системе обработки данных, показанной на фиг. 1, размер данных модели и параметры NN и значение, указывающее соответствующую производительность, варьируются между клиентами 3-1, 3-2, ..., 3-N. Следовательно, даже если модель и параметры NN кодируются с использованием технологии, описанной в непатентном документе 1, кодированные данные должны сжиматься до размера данных, подходящего для каждого из клиентов 3-1, 3-2, ..., 3-N, и в силу этого нагрузка по обработке для кодирования увеличивается.[0014] In the data processing system shown in FIG. 1, the model data size and NN parameters and the value indicating the corresponding performance vary between clients 3-1, 3-2, ..., 3-N. Therefore, even if the NN model and parameters are encoded using the technology described in Non-Patent Document 1, the encoded data must be compressed to a data size suitable for each of the clients 3-1, 3-2, ..., 3-N, and in As a result, the processing load for encoding increases.

[0015] Следовательно, в системе обработки данных согласно первому варианту осуществления, сервер 1 формирует кодированные данные, в которых кодируется информация заголовков моделей, которая идентифицирует модель NN, информация заголовков слоев, которая идентифицирует слой NN, и послойная информация весовых коэффициентов ребер, и передает кодированные данные в каждый из клиентов 3-1, 3-2, ..., 3-N через сеть 2 передачи данных. Каждый из клиентов 3-1, 3-2, ..., 3-N может декодировать только информацию относительно требуемого слоя из кодированных данных, передаваемых из сервера 1 в сеть 2 передачи данных. Таким образом, нагрузка по обработке для кодирования для сервера 1 снижается, и может достигаться уменьшение размера данных, передаваемых в сеть 2 передачи данных из сервера 1.[0015] Therefore, in the data processing system according to the first embodiment, the server 1 generates encoded data in which model header information that identifies the NN model, layer header information that identifies the NN layer, and layer-by-layer edge weight information is encoded, and transmits encoded data to each of the clients 3-1, 3-2, ..., 3-N via data network 2. Each of the clients 3-1, 3-2, ..., 3-N can decode only information regarding the desired layer from the encoded data transmitted from the server 1 to the data network 2. In this way, the processing load for encoding for the server 1 is reduced, and a reduction in the size of data transmitted to the data transmission network 2 from the server 1 can be achieved.

[0016] Ниже описывается конфигурация NN.[0016] The NN configuration is described below.

Фиг. 2 является схемой, показывающей примерную конфигурацию NN. Как показано на фиг. 2, входные данные (x1, x2, ..., xN1) обрабатываются посредством каждого слоя, включенного в NN, и результаты обработки (y1, ..., yNL) выводятся. Nl (l=1, 2, ..., L) указывает число узлов в l-ом слое, и L указывает число слоев в NN. Как показано на фиг. 2, NN включает в себя входной слой, скрытые слои и выходной слой, и она имеет такую структуру, в которой множество узлов соединяются с каждым из этих слоев посредством ребер. Выходное значение каждого из множества узлов может вычисляться из выходных значений узлов в предыдущем слое, которые соединяются с каждым из множества узлов посредством ребер, информации весовых коэффициентов ребер и функции активации, заданной для каждого слоя.Fig. 2 is a diagram showing an exemplary NN configuration. As shown in FIG. 2, the input data (x 1 , x 2 , ..., x N1 ) is processed by each layer included in the NN, and the processing results (y 1 , ..., y NL ) are output. N l (l=1, 2, ..., L) indicates the number of nodes in the l-th layer, and L indicates the number of layers in the NN. As shown in FIG. 2, the NN includes an input layer, hidden layers and an output layer, and it has a structure in which a plurality of nodes are connected to each of these layers through edges. The output value of each of the plurality of nodes may be calculated from the output values of the nodes in the previous layer that are connected to each of the plurality of nodes through edges, edge weight information, and an activation function specified for each layer.

[0017] NN включают в себя, например, сверточную нейронную сеть (CNN), включающую в себя не только полностью соединенные слои, но также и сверточные слои и слои объединения в пул. CNN может создавать сеть, которая реализует обработку данных, отличную от классификации и регрессии, к примеру, сеть, которая реализует процесс фильтрации данных.[0017] NNs include, for example, a convolutional neural network (CNN), including not only fully connected layers, but also convolutional and pooling layers. CNN can create a network that implements data processing other than classification and regression, for example, a network that implements data filtering process.

[0018] Например, при вводе изображения или аудио, CNN может реализовывать процесс фильтрации изображений или аудио, который достигает удаления шума или повышения качества входного сигнала, процесс высокочастотного восстановления для аудио с отсутствующими высокими частотами сжатого аудио, рисование для изображения, частичная область изображения которого отсутствует, или процесс на основе сверхразрешения для изображения. CNN также может конструировать NN, которая включает в себя комбинацию порождающей модели и различающей модели, и которая определяет то, являются или нет данные реальными, посредством использования различающей модели, причем различающая модель определяет то, формируются или нет данные посредством порождающей модели.[0018] For example, given an image or audio input, the CNN may implement an image or audio filtering process that achieves noise removal or enhancement of the input signal, a high-frequency restoration process for audio with missing high frequencies of the compressed audio, drawing for an image whose partial image area missing, or a super-resolution based process for the image. The CNN can also construct a NN that includes a combination of a generative model and a discriminative model, and which determines whether or not the data is real by using the discriminative model, wherein the discriminative model determines whether or not the data is generated by the generative model.

[0019] В последние годы, также предлагается новая NN, называемая "порождающей соперничающей сетью", которая обучается на основе соперничества таким образом, что различающая модель может отличать данные, сформированные посредством порождающей модели, от реальных данных, так что порождающая модель не формирует данные, которые могут отличаться, посредством различающей модели, от реальных данных. Эта NN может создавать высокоточную порождающую модель и различающую модель.[0019] In recent years, a new NN called a “generative adversarial network” has also been proposed, which is trained based on adversarial behavior such that the discriminative model can distinguish the data generated by the generative model from the real data, so that the generative model does not generate the data. , which may differ, through the discriminative model, from the real data. This NN can produce high-accuracy generative model and discriminative model.

[0020] Фиг. 3 является блок-схемой, показывающей конфигурацию устройства обработки данных (кодера) согласно первому варианту осуществления. Устройство обработки данных, показанное на фиг. 3, представляет собой первое устройство обработки данных, которое обучает NN с использованием набора обучающих данных и набора оценочных данных, и формирует кодированные данные информации модели, указывающей конфигурацию NN (далее называемой "информацией модели"), и, например, представляет собой сервер 1, показанный на фиг. 1.[0020] FIG. 3 is a block diagram showing the configuration of a data processing apparatus (encoder) according to the first embodiment. The data processing device shown in FIG. 3 is a first data processing apparatus that trains a NN using a training data set and an evaluation data set, and generates encoded data of model information indicating the configuration of the NN (hereinafter referred to as “model information”), and is, for example, a server 1. shown in FIG. 1.

[0021] Устройство обработки данных, показанное на фиг. 3, включает в себя блок 10 обработки данных и блок 11 кодирования. Блок 10 обработки данных представляет собой первый блок обработки данных, который обучает NN и включает в себя обучающий блок 101, блок 102 оценки и блок 103 управления. Блок 11 кодирования формирует кодированные данные, в которых кодируется информация заголовков моделей, которая идентифицирует модель NN, обученной посредством обучающего блока 101, информация заголовков слоев, которая идентифицирует слой NN, и послойная информация весовых коэффициентов ребер.[0021] The data processing apparatus 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 trains the NN and includes a training unit 101, an evaluation unit 102, and a control unit 103. The encoding unit 11 generates encoded data in which model header information that identifies the NN model trained by the training unit 101, layer header information that identifies the NN layer, and layer-by-layer edge weight information are encoded.

[0022] Обучающий блок 101 выполняет процесс обучения для NN с использованием набора обучающих данных, за счет этого формируя информацию модели обученной NN. Информация модели выводится в блок 102 оценки из обучающего блока 101. Кроме того, обучающий блок 101 имеет информацию модели кодирования, которая управляется посредством блока 103 управления, который описывается ниже, и выводит информацию модели кодирования в блок 11 кодирования, когда обучающий блок 101 принимает инструкцию завершения обучения из блока 103 управления. Блок 102 оценки создает NN с использованием информации модели и выполняет процесс логического вывода из набора оценочных данных, с использованием созданной NN. Значение индекса оценки, полученное в качестве результата процесса логического вывода, представляет собой результат оценки, и результат оценки выводится в блок 103 управления из блока 102 оценки. Индекс оценки предварительно установлен в блоке 102 оценки и, например, представляет собой точность логического вывода или выходное значение функции потерь.[0022] The training unit 101 performs a training process for the NN using the training data set, thereby generating model information of the trained NN. The model information is output to the evaluation unit 102 from the training unit 101. Moreover, the training unit 101 has encoding model information, which is controlled by the control unit 103, which is described below, and outputs the encoding model information to the encoding unit 11 when the training unit 101 receives an instruction. completion of training from control unit 103. The estimation unit 102 creates a NN using the model information and performs an inference process from the estimation data set using the created NN. The evaluation index value obtained as a result of the inference process is an evaluation result, and the evaluation result is output to the control unit 103 from the evaluation unit 102. The evaluation index is preset in evaluation block 102 and, for example, represents the accuracy of the inference or the output value of the loss function.

[0023] Блок 103 управления определяет то, следует или нет обновлять модель NN, обученной посредством обучающего блока 101, и то, может или нет обучающий блок 101 выполнять обучение NN, из значения оценки, полученного в качестве результата оценки посредством блока 102 оценки, и управляет обучающим блоком 101 на основе результатов определения. Например, блок 103 управления сравнивает значение оценки с критерием обновления модели и определяет то, следует или нет обновлять информацию модели в качестве информации модели кодирования, на основе результата сравнения. Помимо этого, блок 103 управления сравнивает значение оценки с критерием завершения обучения и, определяет то, следует или нет выполнять обучение NN посредством обучающего блока 101, на основе результата сравнения. Следует отметить, что эти критерии определяются из предыстории значений оценки.[0023] The control unit 103 determines whether or not the NN model trained by the training unit 101 should be updated, and whether or not the training unit 101 can perform NN training, from the evaluation value obtained as an evaluation result by the evaluation unit 102, and controls the training block 101 based on the determination results. For example, the control unit 103 compares the evaluation value with the model update criterion and determines whether or not to update the model information as encoding model information based on the comparison result. In addition, the control unit 103 compares the evaluation value with the training completion criterion and determines whether or not NN training should be performed by the training unit 101 based on the comparison result. It should be noted that these criteria are determined from the history of the assessment values.

[0024] Фиг. 4 является блок-схемой, показывающей конфигурацию устройства обработки данных (декодера) согласно первому варианту осуществления. Устройство обработки данных, показанное на фиг. 4, представляет собой второе устройство обработки данных, которое создает NN посредством декодирования кодированных данных, сформированных посредством блока 11 кодирования, показанного на фиг. 3, и выполняет процесс логического вывода для одного или более фрагментов оценочных данных с использованием созданной NN и соответствует, например, клиентам 3-1, 3-2, ..., 3-N, показанным на фиг. 1.[0024] FIG. 4 is a block diagram showing the configuration of a data processing apparatus (decoder) according to the first embodiment. The data processing device shown in FIG. 4 is a second data processing apparatus that creates a NN by decoding encoded data generated by the encoding unit 11 shown in FIG. 3, and performs an inference process on one or more pieces of evaluation data using the generated NN and corresponds to, for example, clients 3-1, 3-2, ..., 3-N shown in FIG. 1.

[0025] Устройство обработки данных, показанное на фиг. 4, включает в себя блок 201 декодирования и блок 202 логического вывода. Блок 201 декодирования декодирует информацию модели из кодированных данных, сформированных посредством блока 11 кодирования. Например, блок 201 декодирования может декодировать только информацию, требуемую для устройства обработки данных, показанного на фиг. 4, из кодированных данных.[0025] The data processing apparatus shown in FIG. 4 includes a decoding block 201 and a logical output block 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 only decode information required by the data processing apparatus shown in FIG. 4, from encoded data.

[0026] Блок 202 логического вывода представляет собой второй блок обработки данных, который создает NN с использованием информации модели, декодированной посредством блока 201 декодирования, и выполняет обработку данных, которая использует созданную NN. Например, обработка данных представляет собой процесс логического вывода для оценочных данных с использованием NN. Блок 202 логического вывода выполняет процесс логического вывода для оценочных данных с использованием NN и выводит результат логического вывода.[0026] The inference block 202 is a second processing block that creates a NN using the model information decoded by the decoding block 201, and performs data processing that uses the created NN. For example, data mining is an inference process for estimated data using NN. The inference unit 202 performs an inference process on the estimated data using the NN and outputs an inference result.

[0027] Далее описывается работа системы обработки данных согласно первому варианту осуществления.[0027] Next, the operation of the data processing system according to the first embodiment is described.

Фиг. 5 является блок-схемой последовательности операций способа, показывающей работу устройства обработки данных (кодера) согласно первому варианту осуществления, и показывает способ обработки данных, осуществляемый посредством устройства обработки данных, показанного на фиг. 3.Fig. 5 is a flowchart showing the operation of a data processing apparatus (encoder) according to the first embodiment, and shows a data processing method carried out by the data processing apparatus shown in FIG. 3.

Обучающий блок 101 обучает NN (этап ST1). Например, обучающий блок 101 обучает NN с использованием набора обучающих данных и выводит информацию модели, полученную посредством обучения, в блок 102 оценки.The training block 101 trains the NN (step ST1). For example, the training block 101 trains the NN using the training data set and outputs the model information obtained through training to the evaluation block 102.

[0028] Информация модели представляет собой информацию, указывающую конфигурацию модели NN, и выполнена с возможностью включать в себя информацию структуры слоев, указывающую структуру для каждого слоя, и информацию весовых коэффициентов каждого ребра, принадлежащего слою. Информация структуры слоев включает в себя информацию типов слоев, конфигурационную информацию относительно типа слоя и информацию, отличную от весовых коэффициентов ребер, которая требуется для того, чтобы формировать слой. Информация, отличная от весовых коэффициентов ребер, которая требуется для того, чтобы формировать слой, включает в себя, например, функцию активации. Информация типов слоев представляет собой информацию, указывающую тип слоя, и посредством ссылки на информацию типов слоев, может идентифицироваться тип слоя, к примеру, сверточный слой, слой объединения в пул или полностью соединенный слой.[0028] The model information is information indicating the configuration of the NN model, and is configured to include layer structure information indicating the structure for each layer, and weight coefficient information of each edge belonging to the layer. The layer structure information includes layer type information, configuration information regarding the layer type, and information other than edge weights that is required in order to form the layer. Information other than edge weights that is required to form a layer includes, for example, an activation function. The layer type information is information indicating the type of the layer, and by referring to the layer type information, the layer type, for example, a convolutional layer, a pooling layer, or a fully connected layer, can be identified.

[0029] Конфигурационная информация относительно типа слоя представляет собой информацию, указывающую конфигурацию слоя типа, соответствующего информации типов слоев. Например, когда тип слоя, соответствующий информации типов слоев, указывает сверточный слой, конфигурационная информация относительно типа слоя включает в себя фрагменты информации, указывающие размер данных и форму фильтра (ядра), который выполняет свертку (включающие в себя число коэффициентов фильтрации), число фильтров, интервал свертки (шаг), то, имеется или нет дополнение на границах входных сигналов, и способ для дополнения, когда имеется дополнение. Помимо этого, когда тип слоя, соответствующий информации типов слоев, указывает слой объединения в пул, конфигурационная информация относительно типа слоя включает в себя фрагменты информации, указывающие способ объединения в пул, к примеру, объединение в пул по максимуму или объединение в пул по среднему, форму ядра, которое выполняет процесс объединения в пул, интервал объединения в пул (шаг), то, имеется или нет дополнение на границах входных сигналов, и способ для дополнения, когда имеется дополнение.[0029] Layer type configuration information is information indicating the configuration of a layer type corresponding to the layer type information. For example, when the layer type corresponding to the layer type information indicates a convolutional layer, the configuration information regarding the layer type includes pieces of information indicating the size of the data and the shape of the filter (kernel) that performs the convolution (including the number of filter coefficients), the number of filters , the convolution interval (step), whether or not there is padding at the boundaries of the input signals, and the method for padding when padding is present. In addition, when the layer type corresponding to the layer type information indicates a pooling layer, the configuration information regarding the layer type includes pieces of information indicating a pooling method, for example, maximum pooling or average pooling. the form of the kernel that performs the pooling process, the pooling interval (step), whether there is padding at the boundaries of the input signals, and the method for padding when padding is present.

[0030] Для информации, указывающей каждый весовой коэффициент ребра, весовые коэффициенты могут независимо задаваться для соответствующих ребер, аналогично полностью соединенному слою. С другой стороны, аналогично сверточному слою, весовой коэффициент ребра может быть общим в расчете на сверточный фильтр (ядро), т.е. весовой коэффициент ребра может быть общим в одном фильтре.[0030] For information indicating each edge weight, the weights may be independently set for the corresponding edges, similar to a fully connected layer. On the other hand, similar to the convolutional layer, the edge weight can be shared per convolutional filter (kernel), i.e. an edge's weight can be shared across a single filter.

[0031] Блок 102 оценки оценивает NN (этап ST2). Например, блок 102 оценки создает NN с использованием информации модели, сформированной посредством обучающего блока 101, и выполняет процесс логического вывода из набора оценочных данных, с использованием созданной NN. Результат оценки выводится в блок 103 управления из блока 102 оценки. Результат оценки, например, представляет собой точность логического вывода или выходное значение функции потерь.[0031] The evaluation unit 102 evaluates the NN (step ST2). For example, the estimation unit 102 creates a NN using the model information generated by the training unit 101, and performs an inference process from the estimation data set using the created NN. The evaluation result is output to the control unit 103 from the evaluation unit 102. The result of the evaluation, for example, is the accuracy of the inference or the output value of the loss function.

[0032] Затем блок 103 управления определяет то, следует или нет обновлять информацию модели (этап ST3). Например, когда значение оценки, сформированное посредством блока 102 оценки, не удовлетворяет критерию обновления модели, блок 103 управления определяет необходимость не обновлять информацию модели кодирования, запоминаемую в обучающем блоке 101, а когда значение оценки удовлетворяет критерию обновления модели, блок 103 управления определяет необходимость обновлять информацию модели кодирования.[0032] Next, the control unit 103 determines whether or not 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 criterion, the control unit 103 determines whether to update the encoding model information stored in the training unit 101, and when the evaluation value satisfies the model update criterion, the control unit 103 determines whether to update coding model information.

[0033] Что касается примера критерия обновления модели, когда значение оценки представляет собой выходное значение функции потерь, значение оценки, полученное посредством обучения в этот раз, может быть меньше минимального значения оценки в предыстории обучения, записываемой с начала обучения. Что касается другого примера, когда значение оценки представляет собой точность логического вывода, значение оценки, полученное посредством обучения в этот раз, может превышать максимальное значение оценки в предыстории обучения, записываемой с начала обучения.[0033] Regarding the model update criterion example, when the evaluation value is the output value of the loss function, the evaluation value obtained by training this time may be less than the minimum evaluation value in the training history recorded from the start of training. As for another example, when the evaluation value represents inference accuracy, the evaluation value obtained by training this time may exceed the maximum evaluation value in the training history recorded from the start of training.

[0034] Помимо этого, блок переключения предыстории обучения может представлять собой любой блок. Например, предполагается, что предыстория обучения предоставляется для каждого индекса модели, который описывается ниже. В этом случае, когда модель не имеет индекса опорной модели, который описывается ниже, считается, что отсутствует предыстория обучения, и обучение начинается. А именно, на этапе ST3, выполняемом в первый раз, информация модели всегда обновляется. С другой стороны, когда модель имеет индекс опорной модели, ссылаются на предысторию обучения (предысторию A) модели, указываемой посредством индекса опорной модели. Как результат, при обучении модели, может предотвращаться обновление модели до модели, значение оценки которой является более плохим (более низкая точность логического вывода, большее значение функции потерь и т.д.), чем значение оценки для модели, указываемой посредством индекса опорной модели. В этом случае, когда индекс модели для модели является идентичным индексу опорной модели, каждый раз, когда модель обучается, предыстория обучения (предыстория A), соответствующая индексу опорной модели, обновляется. С другой стороны, когда индекс модели для модели отличается от индекса опорной модели, предыстория обучения (предыстория A), соответствующая индексу опорной модели, копируется в качестве начального значения предыстории обучения (предыстории B) индекса модели для модели, и после этого каждый раз, когда модель обучается, предыстория обучения (предыстория B) модели обновляется.[0034] In addition, the learning history switching block may be any block. For example, it is assumed that training history is provided for each model index, which is described below. In this case, when the model does not have a reference model index, which is described below, it is considered that there is no training history, and training begins. Namely, in step ST3 executed for the first time, the model information is always updated. On the other hand, when the model has a reference model index, the training history (history A) of the model indicated by the reference model index is referenced. As a result, when training a model, the model can be prevented from updating to a model whose score value is worse (lower inference accuracy, larger loss function value, etc.) than the score value for the model indicated by the reference model index. In this case, when the model index for the model is identical to the reference model index, each time the model is trained, the training history (history A) corresponding to the reference model index is updated. On the other hand, when the model index for the model is different from the reference model index, the training history (history A) corresponding to the reference model index is copied as the initial value of the training history (history B) of the model index for the model, and thereafter every time the model is trained, the training history (history B) of the model is updated.

[0035] Если блок 103 управления определяет необходимость обновлять информацию модели (этап ST3: "Да"), то обучающий блок 101 обновляет информацию модели кодирования на информацию модели (этап ST4). Например, блок 103 управления формирует информацию с инструкциями обновления модели, указывающую то, что предусмотрено обновление информации модели, и выводит управляющую информацию обучения, включающую в себя информацию с инструкциями обновления модели, в обучающий блок 101. Обучающий блок 101 обновляет информацию модели кодирования на информацию модели в соответствии с информацией с инструкциями обновления модели, включенной в управляющую информацию обучения.[0035] If the control unit 103 determines the need to update the model information (step ST3: Yes), the training unit 101 updates the encoding model information to the model information (step ST4). For example, the control unit 103 generates model update instruction information indicating that model information updating is provided, and outputs training control information including model update instruction information to the training unit 101. The training unit 101 updates the encoding model information to the information model in accordance with the model update instruction information included in the training control information.

[0036] С другой стороны, если определяется необходимость не обновлять информацию модели (этап ST3: "Нет"), то блок 103 управления формирует информацию с инструкциями обновления модели, указывающую то, что отсутствует обновление информации модели, и выводит управляющую информацию обучения, включающую в себя информацию с инструкциями обновления модели, в обучающий блок 101. Обучающий блок 101 не обновляет информацию модели кодирования в соответствии с информацией с инструкциями обновления модели, включенной в управляющую информацию обучения.[0036] On the other hand, if it is determined not to update the model information (step ST3: "No"), the control unit 103 generates model update instruction information indicating that there is no update of the model information, and outputs learning control information including includes the model update instruction information into the training block 101. The training block 101 does not update the encoding model information in accordance with the model update instruction information included in the training control information.

[0037] Затем блок 103 управления сравнивает значение оценки с критерием завершения обучения и определяет то, следует или нет выполнять обучение NN посредством обучающего блока 101, на основе результата сравнения (этап ST5). Например, что касается критерия завершения обучения, когда определяется то, достигает или нет значение оценки, сформированное посредством блока 102 оценки, конкретного значения, если значение оценки, сформированное посредством блока 102 оценки, удовлетворяет критерию завершения обучения, то блок 103 управления определяет то, что обучение NN посредством обучающего блока 101 завершено, а если значение оценки не удовлетворяет критерию завершения обучения, то блок 103 управления определяет то, что обучение NN посредством обучающего блока 101 не завершено. Альтернативно, например, когда критерий завершения обучения основан на последней предыстории обучения, например, определяется то, что обучение завершено, когда отсутствие обновления информации модели (этап ST3: "Нет") выбирается M раз в строке (M является предварительно определенным целым числом, большим или равным 1), если предыстория обучения не удовлетворяет критерию завершения обучения, то блок 103 управления определяет то, что обучение NN посредством обучающего блока 101 не завершено.[0037] Then, the control unit 103 compares the evaluation value with the training completion criterion and determines whether or not to perform NN training by the training unit 101 based on the comparison result (step ST5). For example, regarding the training completion criterion, when it is determined whether or not the evaluation value generated by the evaluation unit 102 reaches a specific value, if the evaluation value generated by the evaluation unit 102 satisfies the training completion criterion, then the control unit 103 determines that the training of the NN by the training block 101 is completed, and if the evaluation value does not satisfy the training completion criterion, the control unit 103 determines that the training of the NN by the training block 101 is not completed. Alternatively, for example, when the training completion criterion is based on the latest training history, for example, it is determined that training is complete when no model information update (Step ST3: "No") is selected M times per row (M is a predefined integer greater than or equal to 1), if the training history does not satisfy the training completion criterion, then the control unit 103 determines that the NN training by the training unit 101 has not been completed.

[0038] Если блок 103 управления определяет то, что обучение NN завершено (этап ST5: "Да"), то обучающий блок 101 выводит информацию модели кодирования в блок 11 кодирования, и обработка переходит к процессу на этапе ST6. С другой стороны, если блок 103 управления определяет то, что обучение NN не завершено (этап ST5: "Нет"), то обработка возвращается к процессу на этапе ST1.[0038] If the control unit 103 determines that the NN training is completed (step ST5: Yes), the training unit 101 outputs the encoding model information to the encoding unit 11, and processing proceeds to the process in step ST6. On the other hand, if the control unit 103 determines that the NN training is not completed (step ST5: "No"), then the processing returns to the process in step ST1.

[0039] Блок 11 кодирования кодирует информацию модели кодирования, введенную из обучающего блока 101 (этап ST6). Блок 11 кодирования кодирует информацию модели кодирования, сформированную посредством обучающего блока 101, на основе NN-слоя, за счет этого формируя кодированные данные, включающие в себя информацию заголовка, и послойные кодированные данные.[0039] The encoding block 11 encodes the encoding model information input from the training block 101 (step ST6). The encoding unit 11 encodes the encoding model information generated by the training unit 101 based on the NN layer, thereby generating encoded data including header information and layer-by-layer encoded data.

[0040] Фиг. 6 является блок-схемой последовательности операций способа, показывающей операции устройства обработки данных (декодера) согласно первому варианту осуществления, и показывает операции устройства обработки данных, показанного на фиг. 4.[0040] FIG. 6 is a flowchart showing operations of a data processing apparatus (decoder) according to the first embodiment, and shows operations of the data processing apparatus shown in FIG. 4.

Блок 201 декодирования декодирует информацию модели из кодированных данных, полученных посредством кодирования в блоке 11 кодирования (этап ST11). Затем блок 202 логического вывода создает NN из информации модели, декодированной посредством блока 201 декодирования (этап ST12). Блок 202 логического вывода выполняет процесс логического вывода для оценочных данных с использованием созданной NN и выводит результат логического вывода (этап ST13).The decoding unit 201 decodes the model information from the encoded data obtained by encoding in the encoding unit 11 (step ST11). Next, the inference block 202 creates an NN from the model information decoded by the decoding block 201 (step ST12). The inference unit 202 performs the inference process on the estimated data using the generated NN and outputs the inference result (step ST13).

[0041] Далее подробно описывается кодирование информации модели посредством блока 11 кодирования на этапе ST6 по фиг. 5.[0041] Next, the encoding of model information by the encoding unit 11 in step ST6 in FIG. 5.

Для кодирования информации модели посредством блока 11 кодирования, например, может использоваться способ (1) или (2) кодирования.To encode model information by the encoding unit 11, for example, encoding method (1) or (2) may be used.

(1) Данные, в которых непосредственно битовые строки, включающие в себя информацию заголовка, если информация заголовка присутствует, размещаются в предварительно установленном порядке, представляют собой кодированные данные. В каждой из битовых строк, параметр, включенный в каждый фрагмент информации, включенный в информацию модели, описывается с битовой точностью, заданной в параметре. Битовая точность представляет собой битовую точность, заданную в параметре, например, 8-битовое целое число или 32-битовое число с плавающей точкой.(1) Data in which the actual bit strings including header information, if header information is present, are arranged in a predetermined order is encoded data. In each of the bit strings, the parameter included in each piece of information included in the model information is described with the bit precision specified in the parameter. Bit precision is the bit precision specified in the parameter, such as 8-bit integer or 32-bit float.

(2) Данные, в которых непосредственно битовые строки, включающие в себя информацию заголовка, размещаются в предварительно установленном порядке, представляют собой кодированные данные. В каждой из битовых строк, параметр, включенный в каждый фрагмент информации, включенный в информацию модели, кодируется посредством способа кодирования переменной длины, заданного для каждого параметра.(2) Data in which the actual bit strings including header information are arranged in a predetermined order is encoded data. In each of the bit strings, a parameter included in each piece of information included in the model information is encoded by a variable length encoding method specified for each parameter.

[0042] Фиг. 7 является схемой, показывающей пример кодированных данных в первом варианте осуществления, и кодированные данные в вышеописанном (1) или (2) могут располагаться в порядке, показанном на фиг. 7. Кодированные данные, показанные на фиг. 7, включают в себя совокупность фрагментов данных, называемых "единицами данных", и единицы данных включают в себя единицу данных без слоя и единицу данных слоя. Единица данных слоя представляет собой единицу данных, которая сохраняет данные слоя, которые представляют собой послойные кодированные данные.[0042] FIG. 7 is a diagram showing an example of encoded data in the first embodiment, and the encoded data in the above-described (1) or (2) may be arranged in the order shown in FIG. 7. The encoded data shown in FIG. 7 include a plurality of data pieces called "data units", and the data units include a non-layer data unit and a layer data unit. A layer data unit is a data unit that stores layer data, which is layer-by-layer encoded data.

[0043] Данные слоя включают в себя начальный код, тип единиц данных, заголовок информации слоя и данные весовых коэффициентов. Заголовок информации слоя получается посредством кодирования информации заголовка слоя, которая идентифицирует слой NN. Данные весовых коэффициентов получаются посредством кодирования информации весовых коэффициентов ребер, принадлежащих слою, указываемому посредством заголовка информации слоя. Следует отметить, что в кодированных данных, показанных на фиг. 7, порядок размещения единиц данных слоя не обязательно является идентичным порядку размещения слоев NN и представляет собой любой порядок. Причина для этого состоит в том, что индекс слоя, который описывается ниже, может идентифицировать то, слою какой позиции NN соответствует каждая из единиц данных слоя.[0043] The layer data includes a start code, a data unit type, a layer information header, and weight data. The layer header information is obtained by encoding the layer header information that identifies the NN layer. The weight data is obtained by encoding the weight information of the edges belonging to the layer indicated by the layer information header. It should be noted that in the encoded data shown in FIG. 7, the order of the layer data units is not necessarily identical to the order of the NN layers and is any order. The reason for this is that the layer index, which is described below, can identify which layer of which NN position each of the layer data units corresponds to.

[0044] Единица данных без слоя представляет собой единицу данных, которая сохраняет данные кроме данных слоя. Например, единица данных без слоя сохраняет начальный код, тип единиц данных и заголовок информации модели. Заголовок информации модели получается посредством кодирования информации заголовка модели, которая идентифицирует модель NN.[0044] A non-layer data unit is a data unit that stores data other than layer data. For example, a data unit without a layer stores the initial code, data unit type, and model information header. The model header information is obtained by encoding the model header information that identifies the NN model.

[0045] Начальный код представляет собой код, сохраненный в начальной позиции единицы данных, чтобы идентифицировать начальную позицию единицы данных. Клиенты 3-1, 3-2, ..., 3-N (далее называемые "стороной декодирования") могут идентифицировать начальную позицию единицы данных без слоя или единицы данных слоя посредством ссылки на начальный код. Например, когда 0×000001 задается как начальный код, данные, сохраненные в единице данных, отличной от начального кода, задаются таким образом, что 0×000001 не возникает. Как результат, начальная позиция единицы данных может идентифицироваться из начального кода.[0045] The start code is a code stored in the start position of a data unit to identify the start position of the data unit. Clients 3-1, 3-2, ..., 3-N (hereinafter referred to as “decoding side”) can identify the starting position of a non-layer data unit or a layer data unit by reference to the starting code. For example, when 0x000001 is specified as the start code, data stored in a data unit other than the start code is set such that 0x000001 does not occur. As a result, the starting position of the data unit can be identified from the starting code.

[0046] Чтобы выполнять настройку таким образом, что 0×000001 не возникает, например, 03 вставляется в третий байт кодированных данных "0×000000-0×000003", в силу этого приводя к 0×000300-0×000303, и после декодирования, 0×000003 преобразуется в 0×0000, за счет чего данные могут возвращаться к исходным данным. Следует отметить, что при условии, что начальный код представляет собой битовую строку, которая может уникально идентифицироваться, битовая строка, отличная от 0×000001, может задаваться как начальный код. Помимо этого, при условии, что способ может идентифицировать начальную позицию единицы данных, начальный код не должен обязательно использоваться. Например, битовая строка, которая может идентифицировать конец единицы данных, может добавляться в конец единицы данных. Альтернативно, начальный код может добавляться только в начало единицы данных без слоя, и в качестве части заголовка информации модели, может кодироваться размер данных каждой единицы данных слоя. Следовательно, позиция разделения между любыми двумя смежными единицами данных слоя может идентифицироваться из вышеописанной информации.[0046] To perform the setting such that 0x000001 does not occur, for example, 03 is inserted into the third byte of the encoded data "0x000000-0x000003", thereby resulting in 0x000300-0x000303, and then decoding, 0x000003 is converted to 0x0000, due to which the data can be returned to the original data. It should be noted that, provided that the start code is a bit string that can be uniquely identified, a bit string other than 0x000001 may be specified as the start code. In addition, provided that the method can identify the starting position of the data unit, the starting code need not necessarily be used. For example, a bit string that can identify the end of a data unit may be appended to the end of the data unit. Alternatively, the start code may be added only to the beginning of the non-layer data unit, and as part of the model information header, the data size of each layer data unit may be encoded. Therefore, the split position between any two adjacent layer data units can be identified from the above-described information.

[0047] Тип единиц данных представляет собой данные, сохраненные после начального кода в единице данных, чтобы идентифицировать тип единицы данных. Для типа единиц данных, значение задается для каждого типа единицы данных заранее. Посредством ссылки на тип единиц данных, сохраненный в единице данных, сторона декодирования может идентифицировать то, представляет единица данных собой единицу данных без слоя или единицу данных слоя, и дополнительно может идентифицировать то, какой вид из единицы данных без слоя или единицы данных слоя представляет собой единица данных.[0047] The data unit type is data stored after the start code in the data unit to identify the type of the data unit. For data unit type, a value is specified for each data unit type in advance. By referring to the type of data units stored in the data unit, the decoding side can identify whether the data unit is a non-layer data unit or a layer data unit, and can further identify which kind of a non-layer data unit or a layer data unit is unit of data.

[0048] Заголовок информации модели в единице данных без слоя включает в себя индекс модели, число единиц данных слоя в модели и число кодированных единиц данных слоя. Индекс модели представляет собой индекс для идентификации модели NN. Таким образом, по существу, отдельные модели имеют индексы, независимые друг от друга, но если устройство обработки данных (декодер) согласно первому варианту осуществления вновь принимает модель, имеющую индекс модели, идентичный индексу модели для модели, принимаемой ранее, то предыдущая принимаемая модель, имеющая индекс модели, перезаписывается. Число единиц данных слоя в модели представляет собой число единиц данных слоя, включенных в модель, идентифицированную посредством индекса модели. Число кодированных единиц данных слоя представляет собой число единиц данных слоя, фактически присутствующих в кодированных данных. В примере по фиг. 7, предусмотрены единицы (1)-(n) данных слоя, и в силу этого число кодированных единиц данных слоя составляет n. Следует отметить, что число кодированных единиц данных слоя всегда меньше или равно числу единиц данных слоя в модели.[0048] The model information header in a non-layer data unit includes a model index, a number of layer data units in the model, and a number of encoded layer data units. The model index is an index to identify the NN model. Thus, essentially, the individual models have indices independent of each other, but if the data processing apparatus (decoder) according to the first embodiment again receives a model having a model index identical to the model index for the previously received model, then the previously received model having a model index is overwritten. The number of layer data units in the model represents the number of layer data units included in the model identified by the model index. The number of encoded layer data units represents the number of layer data units actually present in the encoded data. In the example of FIG. 7, layer data units (1) to (n) are provided, and therefore the number of encoded layer data units is n. Note that the number of layer data units encoded is always less than or equal to the number of layer data units in the model.

[0049] Заголовок информации слоя в единице данных слоя включает в себя индекс слоя и информацию структуры слоев. Индекс слоя представляет собой индекс для идентификации слоя. Чтобы иметь возможность идентифицировать соответствующий слой посредством индекса слоя, то, как назначать значения индекса слоя, фиксированно задается заранее. Например, индексы назначаются в порядке от слоя, близкого к входному слою, к последующему слою, например, входному слою NN назначается индекс 0, и последующему слою назначается индекс 1. Информация структуры слоев представляет собой информацию, указывающую конфигурацию для каждого слоя NN, и включает в себя, как описано выше, информацию типов слоев, конфигурационную информацию относительно типа слоя и информацию, отличную от весовых коэффициентов ребер, которая требуется для того, чтобы формировать слой.[0049] The layer information header in the layer data unit includes a layer index and layer structure information. The layer index is an index to identify the layer. In order to be able to identify the corresponding layer by the layer index, how to assign layer index values is fixed in advance. For example, indices are assigned in order from the layer close to the input layer to the subsequent layer, for example, the input NN layer is assigned index 0, and the subsequent layer is assigned index 1. Layer structure information is information indicating the configuration for each NN layer, and includes including, as described above, layer type information, configuration information regarding the layer type, and information other than edge weights that is required in order to configure the layer.

[0050] Следует отметить, что хотя выше показан заголовок информации слоя, включающий в себя информацию структуры слоев, заголовок информации модели может включать в себя все фрагменты информации структуры слоев, включенной в кодированные данные, и индексы слоев, соответствующие фрагментам информации структуры слоев. Сторона декодирования может идентифицировать конфигурации слоев с соответствующими индексами слоев посредством ссылки на заголовок информации модели.[0050] It should be noted that although the layer information header including layer structure information is shown above, the model information header may include all pieces of layer structure information included in the encoded data and layer indices corresponding to the pieces of layer structure information. The decoding side may identify layer configurations with corresponding layer indices by referring to the model information header.

Кроме того, в вышеописанном случае, поскольку конфигурации слоев с соответствующими индексами слоев могут идентифицироваться посредством ссылки на заголовок информации модели, заголовок информации слоя может включать в себя только индекс слоя. Следовательно, когда размер данных единицы данных слоя превышает размер данных единицы данных без слоя, размер данных каждой единицы данных слоя может уменьшаться, за счет этого обеспечивая уменьшение максимального размера данных единиц данных в кодированных данных.Moreover, in the above case, since layer configurations with corresponding layer indices can be identified by reference to a model information header, the layer information header may only include the layer index. Therefore, when the data size of a layer data unit is larger than the data size of a non-layer data unit, the data size of each layer data unit may be reduced, thereby causing the maximum data size of data units in the encoded data to be reduced.

[0051] В единице данных слоя, данные весовых коэффициентов, которые кодируются на послойной основе, сохраняются после заголовка информации слоя. Данные весовых коэффициентов включают в себя ненулевые флаги и ненулевые данные весовых коэффициентов. Ненулевой флаг представляет собой флаг, указывающий то, равно или нет значение весового коэффициента ребра нулю, и задается для каждого из всех весовых коэффициентов ребер, принадлежащих соответствующему слою.[0051] In a layer data unit, weight coefficient data that is encoded on a layer-by-layer basis is stored after the layer information header. The weighting data includes non-zero flags and non-zero weighting data. The non-zero flag is a flag indicating whether or not the edge weight value is zero, and is set for each of all edge weights belonging to the corresponding layer.

[0052] Ненулевые данные весовых коэффициентов представляют собой данные, которые задается после ненулевых флагов в данных весовых коэффициентов. В ненулевых данных весовых коэффициентов, задается значение весового коэффициента, ненулевой флаг которого указывает ненулевой (значимый). На фиг. 7, данные (1) весовых коэффициентов - данные (m) весовых коэффициентов, указывающие ненулевое значение весового коэффициента, задаются в качестве ненулевых данных весовых коэффициентов. Число m фрагментов ненулевых данных весовых коэффициентов меньше или равно числу Ml всех весовых коэффициентов в соответствующем слое l. Следует отметить, что данные весовых коэффициентов относительно слоя, имеющего разреженные ребра с ненулевым значением весового коэффициента, имеют очень небольшой объем ненулевых данных весовых коэффициентов и включают в себя фактически только ненулевые флаги, и в силу этого размер данных для данных весовых коэффициентов значительно уменьшается.[0052] Non-zero weight data is data that is specified after non-zero flags in the weight data. In non-zero weighting data, sets the value of the weighting factor whose non-zero flag indicates non-zero (significant). In fig. 7, weight coefficient data (1)—weight coefficient data (m) indicating a non-zero weight coefficient value is set as non-zero weight coefficient data. The number m of non-zero weight coefficient data fragments is less than or equal to the number M l of all weight coefficients in the corresponding layer l. It should be noted that the weight data relative to a layer having sparse edges with a non-zero weight value has a very small amount of non-zero weight data and includes virtually only non-zero flags, and as such the data size for the weight data is significantly reduced.

[0053] Фиг. 8 является схемой, показывающей другой пример кодированных данных в первом варианте осуществления, и кодированные данные в вышеописанном (1) или (2) могут располагаться в порядке, показанном на фиг. 8. Кодированные данные, показанные на фиг. 8, отличаются от кодированных данных по фиг. 7 по конфигурации данных для данных весовых коэффициентов, и в ненулевых данных весовых коэффициентов, весовые коэффициенты всех ребер, принадлежащих соответствующему слою, совместно размещаются на основе каждой битовой плоскости в порядке от верхних битов. Кроме того, в заголовке информации слоя, задается идентификационная информация позиций данных битовой плоскости, указывающая начальную позицию каждого бита, указывающего весовой коэффициент ребра.[0053] FIG. 8 is a diagram showing another example of encoded data in the first embodiment, and the encoded data in the above (1) or (2) may be arranged in the order shown in FIG. 8. The encoded data shown in FIG. 8 are different from the encoded data of FIG. 7 according to the data configuration for the weight coefficient data, and in the non-zero weight coefficient data, the weight coefficients of all edges belonging to the corresponding layer are jointly arranged on the basis of each bit plane in order from the top bits. In addition, in the layer information header, bit plane data position identification information indicating the starting position of each bit indicating an edge weight is specified.

[0054] Например, когда битовая точность, заданная для весовых коэффициентов ребер, составляет X, весовые коэффициенты всех ребер, принадлежащих соответствующему слою, описываются с битовой точностью X. Из битовой строки этих весовых коэффициентов, блок 11 кодирования задает, в качестве каждых ненулевых данных весовых коэффициентов для первого бита, данные (1) весовых коэффициентов первого бита, данные (2) весовых коэффициентов первого бита, ..., данные (m) весовых коэффициентов первого бита, которые представляют собой ненулевые данные весовых коэффициентов первого бита. Этот процесс повторяется для ненулевых данных весовых коэффициентов второго бита - ненулевых данных весовых коэффициентов X-ого бита. Следует отметить, что данные (1) весовых коэффициентов первого бита, данные (2) весовых коэффициентов первого бита, ..., данные (m) весовых коэффициентов первого бита представляют собой фрагменты ненулевых данных весовых коэффициентов, которые формируют битовую плоскость первого бита.[0054] For example, when the bit precision specified for the edge weights is X, the weights of all edges belonging to the corresponding layer are described with a bit precision of X. From the bit string of these weights, the encoding unit 11 sets, as each, non-zero data first bit weight data, (1) first bit weight data, (2) first bit weight data, ..., (m) first bit weight data, which is non-zero first bit weight data. This process is repeated for non-zero second bit weight data - non-zero X-th bit weight data. It should be noted that the first bit weight data (1), the first bit weight data (2), ..., the first bit weight data (m) are pieces of non-zero weight data that form the bit plane of the first bit.

[0055] Сторона декодирования идентифицирует требуемые кодированные данные из фрагментов послойных кодированных данных на основе идентификационной информации позиций данных битовой плоскости и может декодировать идентифицированные кодированные данные с любой битовой точностью. А именно, сторона декодирования может выбирать только требуемые кодированные данные из кодированных данных и декодировать информацию модели NN, подходящей для окружения на стороне декодирования. Следует отметить, что идентификационная информация позиций данных битовой плоскости может представлять собой любую информацию при условии, что позиция разделения между любыми двумя смежными фрагментами данных битовой плоскости может идентифицироваться, и может представлять собой информацию, указывающую начальную позицию каждого фрагмента данных битовой плоскости, либо может представлять собой информацию, указывающую размер данных каждого фрагмента данных битовой плоскости.[0055] The decoding side identifies desired encoded data from pieces of layered encoded data based on the identification information of bit plane data positions, and can decode the identified encoded data to any bit precision. Namely, the decoding side can select only the required encoded data from the encoded data and decode the information of the NN model suitable for the environment at the decoding side. It should be noted that the identification information of bit plane data positions may be any information as long as the division position between any two adjacent pieces of bit plane data can be identified, and may be information indicating the starting position of each piece of bit plane data, or may represent is information indicating the data size of each piece of bit plane data.

[0056] Когда полоса частот передачи сети 2 передачи данных не является достаточной для того, чтобы передавать все фрагменты кодированных данных, представляющих конфигурацию NN, в сторону декодирования, блок 11 кодирования может ограничивать ненулевые данные весовых коэффициентов, которые должны передаваться, из фрагментов кодированных данных, на основе полосы частот передачи сети 2 передачи данных.[0056] When the transmission bandwidth of the data transmission network 2 is not sufficient to transmit all pieces of encoded data representing the NN configuration to the decoding side, the encoding unit 11 can limit non-zero weight coefficient data to be transmitted from the pieces of encoded data , based on the transmission bandwidth of the data transmission network 2.

Например, в битовой строке информации весовых коэффициентов, описанной с 32-битовой точностью, верхние 8 битов ненулевых данных весовых коэффициентов задаются в качестве цели передачи. Сторона декодирования может распознавать, из начального кода, расположенного после ненулевых данных весовых коэффициентов, то, что единица данных слоя, соответствующая следующему слою, размещается после ненулевых данных весовых коэффициентов 8-ого бита в кодированных данных. Помимо этого, сторона декодирования может надлежащим образом декодировать весовой коэффициент, значение которого равно нулю, посредством ссылки на ненулевой флаг в данных весовых коэффициентов.For example, in a weighting information bit string described with 32-bit precision, the top 8 bits of non-zero weighting data are set as the transmission target. The decoding side can recognize, from the start code located after the non-zero weight data, that a layer data unit corresponding to the next layer is located after the non-zero weight data of the 8th bit in the encoded data. In addition, the decoding side can appropriately decode a weight whose value is zero by referring to a non-zero flag in the weight data.

[0057] Чтобы повышать, когда данные весовых коэффициентов декодируются с любой битовой точностью посредством стороны декодирования, точность логического вывода с битовой точностью, блок 11 кодирования может включать, в заголовок информации слоя, смещение, которое должно суммироваться с весовым коэффициентом, декодированным с каждой битовой точностью. Например, блок 11 кодирования суммирует смещение, которое является равномерным в расчете на слой, с битовой строкой весовых коэффициентов, описанных с битовой точностью, определяет смещение с наибольшей точностью и включает определенное смещение в заголовок информации слоя и выполняет кодирование.[0057] In order to improve, when the weight coefficient data is decoded with any bit precision by the decoding side, the bit precision inference accuracy, the encoding unit 11 may include, in the layer information header, an offset that should be summed with the weight coefficient decoded with each bit precision. accuracy. For example, the encoding unit 11 adds an offset that is uniform per layer with a bit string of weights described with bit precision, determines the offset with the greatest precision, and includes the determined offset in the layer information header and performs encoding.

[0058] Помимо этого, блок 11 кодирования может включать, в заголовок информации модели, смещения для весовых коэффициентов ребер во всех слоях, включенных в NN, и выполнять кодирование. Кроме того, блок 11 кодирования может задавать флаг, указывающий то, включается или нет смещение в заголовок информации слоя или в заголовок информации модели, и, например, только когда флаг указывает доступность смещения, смещение может включаться в кодированные данные.[0058] In addition, the encoding unit 11 may include, in the model information header, offsets for edge weights in all layers included in the NN and perform encoding. In addition, the encoding unit 11 may set a flag indicating whether or not the offset is included in the layer information header or the model information header, and, for example, only when the flag indicates the availability of the offset can the offset be included in the encoded data.

[0059] Блок 11 кодирования может задавать разность между значением весового коэффициента ребра и конкретным значением, в качестве цели кодирования.[0059] The encoding unit 11 may set the difference between the edge weight value and a specific value as an encoding target.

Конкретное значение включает в себя, например, непосредственно предыдущий весовой коэффициент в порядке кодирования. Помимо этого, соответствующий весовой коэффициент ребра, принадлежащий слою выше на один уровень (слою, близкому к входному слою), может использоваться в качестве конкретного значения, либо соответствующий весовой коэффициент ребра в модели до обновления может использоваться в качестве конкретного значения.The particular value includes, for example, the immediately previous weight in the encoding order. In addition, the corresponding edge weight belonging to a layer one level higher (the layer close to the input layer) can be used as the specific value, or the corresponding edge weight in the model before the update can be used as the specific value.

[0060] Кроме того, блок 11 кодирования имеет функции, показанные в (A), (B) и (C).[0060] In addition, the encoding unit 11 has the functions shown in (A), (B) and (C).

(A) Блок 11 кодирования имеет функцию масштабируемого кодирования, которая выполняет кодирование для базовых кодированных данных и улучшающих кодированных данных отдельно.(A) The encoding unit 11 has a scalable encoding function that performs encoding for base encoded data and enhancement encoded data separately.

(B) Блок 11 кодирования имеет функцию кодирования разности относительно весового коэффициента ребра в опорной NN.(B) The encoding unit 11 has a function of encoding the difference with respect to the weight coefficient of an edge in the reference NN.

(C) Блок 11 кодирования имеет функцию кодирования, в качестве информации NN-обновления, только частичной информации (например, послойной информации) опорной NN.(C) The encoding unit 11 has a function of encoding, as NN update information, only partial information (eg, layer information) of the reference NN.

[0061] В дальнейшем описывается пример (A).[0061] In the following, Example (A) will be described.

Блок 11 кодирования квантует весовой коэффициент ребра с использованием способа квантования, который задается заранее для весового коэффициента ребра, задает данные, полученные посредством кодирования квантованного весового коэффициента, в качестве базовых кодированных данных, и задает данные, полученные посредством кодирования ошибки квантования, которая считается весовым коэффициентом, в качестве улучшающих кодированных данных. Весовой коэффициент в качестве базовых кодированных данных имеет более низкую битовую точность, чем весовой коэффициент до квантования, вследствие квантования, и в силу этого размер данных уменьшается. Когда полоса частот передачи, используемая для того, чтобы передавать кодированные данные в сторону декодирования, не является достаточной, устройство обработки данных согласно первому варианту осуществления передает только базовые кодированные данные в сторону декодирования. С другой стороны, когда полоса частот передачи, используемая для того, чтобы передавать кодированные данные в сторону декодирования, является достаточной, устройство обработки данных согласно первому варианту осуществления передает не только базовые кодированные данные, но также и улучшающие кодированные данные в сторону декодирования.The encoding unit 11 quantizes the edge weight using a quantization method that is set in advance for the edge weight, sets the data obtained by encoding the quantized weight as the base encoded data, and sets the data obtained by encoding the quantization error to be considered the weight. , as enhancement encoded data. The weight coefficient as the base encoded data has a lower bit precision than the weight coefficient before quantization due to quantization, and thereby the data size is reduced. When the transmission bandwidth used to transmit encoded data to the decoding side is not sufficient, the data processing apparatus according to the first embodiment transmits only the base encoded data to the decoding side. On the other hand, when the transmission bandwidth used to transmit encoded data to the decoding side is sufficient, the data processing apparatus according to the first embodiment transmits not only the base encoded data but also the enhancement encoded data to the decoding side.

[0062] Могут использоваться два или более фрагмента улучшающих кодированных данных. Например, блок 11 кодирования задает квантованное значение, полученное, когда ошибка квантования дополнительно квантуется, в качестве первых улучшающих кодированных данных, и задает его ошибку квантования в качестве вторых улучшающих кодированных данных. Кроме того, квантованное значение, полученное посредством дополнительного квантования квантованной ошибки вторых улучшающих кодированных данных, его и квантованная ошибка могут отдельно кодироваться таким образом, что требуемое число фрагментов улучшающих кодированных данных получается. В связи с этим, посредством использования масштабируемого кодирования, может выполняться передача кодированных данных на основе полосы частот передачи и допустимого времени передачи сети 2 передачи данных.[0062] Two or more pieces of enhancement coded data may be used. For example, the encoding unit 11 sets the quantized value obtained when the quantization error is further quantized as the first enhancement coded data, and sets its quantization error as the second enhancement coded data. In addition, the quantized value obtained by further quantizing the quantized error of the second enhancement encoded data, it and the quantized error may be separately encoded such that a required number of enhancement encoded data pieces is obtained. In this regard, by using scalable encoding, transmission of encoded data can be performed based on the transmission frequency band and the allowable transmission time of the data transmission network 2.

[0063] Следует отметить, что блок 11 кодирования может кодировать верхние M битов ненулевых данных весовых коэффициентов, показанных на фиг. 8, в качестве базовых кодированных данных, и разделять оставшуюся битовую строку на один или более блоков и получать один или более фрагментов улучшающих кодированных данных. В этом случае, блок 11 кодирования сбрасывает ненулевой флаг для каждых из базовых кодированных данных и улучшающих кодированных данных. Весовой коэффициент, который равен 0 в улучшающих кодированных данных верхнего бита, всегда равен 0.[0063] It should be noted that the encoding unit 11 can encode the upper M bits of the non-zero weight coefficient data shown in FIG. 8 as base coded data, and divide the remaining bit string into one or more blocks and obtain one or more enhancement coded data pieces. In this case, the encoding unit 11 resets the non-zero flag for each of the base encoded data and the enhancement encoded data. A weighting factor that is 0 in the top bit enhancement encoded data is always 0.

[0064] В дальнейшем описывается (B).[0064] Hereinafter, (B) is described.

Когда предусмотрена модель NN перед переобучением посредством обучающего блока 101, блок 11 кодирования может кодировать разность между весовым коэффициентом ребра в модели NN после переобучения и соответствующим весовым коэффициентом ребра в модели перед переобучением. Следует отметить, что переобучение включает в себя обучение с переносом или дополнительное обучение. В системе обработки данных, когда конфигурация NN обновляется с высокой частотой, или изменение распределения обучающих данных для каждого переобучения является небольшим, разность между весовыми коэффициентами ребер является небольшой, и в силу этого размер данных для кодированных данных после переобучения уменьшается.When the NN model before retraining is provided by the training block 101, the encoding unit 11 may encode the difference between an edge weight in the NN model after retraining and a corresponding edge weight in the model before retraining. It should be noted that retraining includes transfer learning or additional learning. In a data processing system, when the NN configuration is updated at a high frequency, or the change in the distribution of training data for each retraining is small, the difference between edge weights is small, and therefore the data size of the encoded data after retraining is reduced.

[0065] Помимо этого, блок 11 кодирования может включать, в заголовок информации модели, индекс опорной модели для идентификации модели перед обновлением, на которую необходимо ссылаться, в дополнение к индексу модели. В случае примера (B), модель перед переобучением может идентифицироваться из вышеописанного индекса опорной модели. Кроме того, блок 11 кодирования может задавать флаг, указывающий то, имеют или нет кодированные данные опорный источник, в заголовке информации модели. Только тогда, когда флаг указывает кодированные данные для обновления модели, блок 11 кодирования задает индекс опорной модели в заголовке информации модели.[0065] In addition, the encoding unit 11 may include, in the model information header, a reference model index for identifying a pre-update model to be referenced, in addition to the model index. In the case of example (B), the model before retraining can be identified from the reference model index described above. In addition, the encoding unit 11 may set a flag indicating whether or not the reference source data is encoded in the model information header. Only when the flag indicates encoded data for updating the model, the encoding unit 11 sets the index of the reference model in the model information header.

[0066] Например, в системе обработки данных, показанной на фиг. 1, даже когда частота NN-обновления отличается между клиентами, либо клиенты выполняют обработку данных с использованием различных моделей NN, клиенты могут надлежащим образом идентифицировать то, кодированные данные какой модели служат для обновления, посредством ссылки на индекс опорной модели. Когда из индекса опорной модели идентифицируется то, что кодированные данные для обновления модели представляют собой кодированные данные для модели, которая не доступна на клиентской стороне, клиент может информировать сервер 1 в отношении этого факта.[0066] For example, in the data processing system shown in FIG. 1, even when the NN update frequency differs between clients, or the clients perform data processing using different NN models, clients can properly identify which model's encoded data is used for updating by referring to the reference model index. When it is identified from the reference model index that the encoded data for updating the model is encoded data for a model that is not available on the client side, the client may inform the server 1 regarding this fact.

[0067] В дальнейшем описывается пример (C).[0067] Example (C) is described next.

Когда предусмотрена модель NN перед переобучением, например, для целей подстройки, обучающий блок 101 может фиксировать любой один или более слоев с самого верхнего уровня (стороны входного слоя) NN и переобучать только один или более слоев. В этом случае, блок 11 кодирования кодирует только информацию, указывающую конфигурацию слоя, обновленного посредством переобучения. Как результат, в обновлении NN, размер данных для кодированных данных, которые должны передаваться в сторону декодирования, уменьшается. Следует отметить, что число кодированных единиц данных слоя в кодированных данных меньше числа единиц данных слоя в модели. Сторона декодирования может идентифицировать слой, который должен обновляться, посредством ссылки на индекс опорной модели, включенный в заголовок информации модели, и индекс слоя, включенный в заголовок информации слоя.When an NN model is provided before retraining, for example for tuning purposes, the training unit 101 may fix any one or more layers from the topmost layer (input layer side) of the NN and retrain only one or more layers. In this case, the encoding unit 11 encodes only information indicating the configuration of the layer updated by retraining. As a result, in NN update, the data size for the encoded data to be transmitted to the decoding side is reduced. It should be noted that the number of encoded layer data units in the encoded data is less than the number of layer data units in the model. The decoding side may identify a layer to be updated by referring to a reference model index included in the model information header and a layer index included in the layer information header.

[0068] Далее описывается обработка данных, выполняемая посредством обучающего блока 101, блока 102 оценки и блока 202 логического вывода.[0068] Next, the data processing performed by the training block 101, the evaluation block 102, and the inference block 202 will be described.

Фиг. 9 является схемой, показывающей пример процесса свертки для одномерных данных в первом варианте осуществления, и показывает сверточные слои, которые выполняют процесс свертки для одномерных данных. Одномерные данные включают в себя, например, аудиоданные и данные временных рядов. Сверточные слои, показанные на фиг. 9, включают в себя девять узлов 10-1 - 10-9 в предыдущем слое и три узла 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 могут иметь различные значения, либо множество весовых коэффициентов могут иметь идентичное значение.Fig. 9 is a diagram showing an example of a convolution process for one-dimensional data in the first embodiment, and shows convolution layers that perform a convolution process for one-dimensional data. Univariate data includes, for example, audio data and time series data. The convolutional layers shown in Fig. 9 include nine nodes 10-1 - 10-9 in the previous layer and three nodes 11-1 - 11-3 in the subsequent layer. Ribs 12-1, 12-6 and 12-11 are assigned an identical weight factor, ribs 12-2, 12-7 and 12-12 are assigned an identical weight factor, edges 12-3, 12-8 and 12-13 are assigned an identical weight factor , edges 12-4, 12-9 and 12-14 are assigned an identical weight factor, and edges 12-5, 12-10 and 12-15 are assigned an identical weight factor. In addition, the weights of the edges 12-1-12-5 may have different values, or multiple weights may have the same value.

[0069] Из девяти узлов 10-1 - 10-9 в предыдущем слое, пять узлов соединяются с одним узлом в последующем слое с вышеописанными весовыми коэффициентами. Размер K ядра равен 5, и ядро задается посредством комбинации этих весовых коэффициентов. Например, как показано на фиг. 9, узел 10-1 соединяется с узлом 11-1 через ребро 12-1, узел 10-2 соединяется с узлом 11-1 через ребро 12-2, узел 10-3 соединяется с узлом 11-1 через ребро 12-3, узел 10-4 соединяется с узлом 11-1 через ребро 12-4, и узел 10-5 соединяется с узлом 11-1 через ребро 12-5. Ядро задается посредством комбинации весовых коэффициентов ребер 12-1 - 12-5.[0069] Of the nine nodes 10-1 to 10-9 in the previous layer, five nodes are connected to one node in the subsequent layer with the weights described above. The size K of the kernel is 5, and the kernel is specified by a combination of these weights. For example, as shown in FIG. 9, node 10-1 is connected to node 11-1 through edge 12-1, node 10-2 is connected to node 11-1 through edge 12-2, node 10-3 is connected to node 11-1 through edge 12-3, node 10-4 connects to node 11-1 via edge 12-4, and node 10-5 connects to node 11-1 via edge 12-5. The kernel is specified by a combination of edge weights 12-1 - 12-5.

[0070] Узел 10-5 соединяется с узлом 11-3 через ребро 12-6, узел 10-6 соединяется с узлом 11-2 через ребро 12-7, узел 10-7 соединяется с узлом 11-2 через ребро 12-8, узел 10-8 соединяется с узлом 11-2 через ребро 12-9, и узел 10-9 соединяется с узлом 11-2 через ребро 12-10. Ядро задается посредством комбинации весовых коэффициентов ребер 12-6 - 12-10.[0070] Node 10-5 connects to node 11-3 via edge 12-6, node 10-6 connects to node 11-2 via edge 12-7, node 10-7 connects to node 11-2 via edge 12-8 , node 10-8 connects to node 11-2 via edge 12-9, and node 10-9 connects to node 11-2 via edge 12-10. The kernel is specified by a combination of edge weights 12-6 - 12-10.

[0071] Узел 10-5 соединяется с узлом 11-3 через ребро 12-11, узел 10-6 соединяется с узлом 11-3 через ребро 12-12, узел 10-7 соединяется с узлом 11-3 через ребро 12-13, узел 10-8 соединяется с узлом 11-3 через ребро 12-14, и узел 10-9 соединяется с узлом 11-3 через ребро 12-15. Ядро задается посредством комбинации весовых коэффициентов ребер 12-11 - 12-15.[0071] Node 10-5 connects to node 11-3 via edge 12-11, node 10-6 connects to node 11-3 via edge 12-12, node 10-7 connects to node 11-3 via edge 12-13 , node 10-8 connects to node 11-3 via edge 12-14, and node 10-9 connects to node 11-3 via edge 12-15. The kernel is specified by a combination of edge weights 12-11 - 12-15.

[0072] В процессе для входных данных с использованием CNN, обучающий блок 101, блок 102 оценки и блок 202 логического вывода выполняют, для каждого ядра, операцию свертки с интервалами в число шагов (на фиг. 9, S=2) с использованием комбинации весовых коэффициентов ребер сверточного слоя. Комбинация весовых коэффициентов ребер определяется для каждого ядра посредством обучения. Следует отметить, что в CNN, используемой для распознавания изображений, NN зачастую формируется с использованием сверточного слоя, включающего в себя множество ядер.[0072] In the process for input data using CNN, the training block 101, the estimation block 102 and the inference block 202 perform, for each core, a convolution operation at intervals of a number of steps (in FIG. 9, S=2) using a combination weight coefficients of the edges of the convolutional layer. The combination of edge weights is determined for each kernel through training. It should be noted that in CNNs used for image recognition, the NN is often formed using a convolutional layer that includes many kernels.

[0073] Фиг. 10 является схемой, показывающей пример процесса свертки для двумерных данных в первом варианте осуществления и показывает процесс свертки для двумерных данных, таких как данные изображений. В двумерных данных, показанных на фиг. 10, ядро 20 представляет собой блочную область, размер которой в направлении по оси Х составляет Kx, и размер которой в направлении по оси Y составляет Ky. Размер K ядра составляет K=Kx*Ky. Обучающий блок 101, блок 102 оценки или блок 202 логического вывода выполняет операцию свертки данных для двумерных данных на основе ядра 20, с интервалами в число Sx шагов в направлении по оси Х и с интервалами в числом Sy шагов в направлении по оси Y. Здесь, шаги Sx и Sy являются целыми числами, большими или равными 1.[0073] FIG. 10 is a diagram showing an example of a convolution process for two-dimensional data in the first embodiment, and shows a convolution process for two-dimensional data such as image data. In the two-dimensional data shown in FIG. 10, core 20 is a block region whose size in the X-axis direction is K x and whose size in the Y-axis direction is K y . The size K of the core is K=K x *K y . The training unit 101, evaluation unit 102, or inference unit 202 performs a data convolution operation on the two-dimensional data based on the kernel 20, at intervals of S x steps in the X-axis direction and at S y steps in the Y direction. Here, the steps S x and S y are integers greater than or equal to 1.

[0074] Фиг. 11 является схемой, показывающей матрицу поузловой информации весовых коэффициентов ребер в l-ом слое (l=1, 2, ..., L), который представляет собой полностью соединенный слой NN. Фиг. 12 является схемой, показывающей матрицу шагов квантования для поузловой информации весовых коэффициентов ребер в l-ом слое (l=1, 2, ..., L), который представляет собой полностью соединенный слой NN.[0074] FIG. 11 is a diagram showing a node-by-node information matrix of edge weights in the l-th layer (l=1, 2, ..., L), which is a fully connected NN layer. Fig. 12 is a diagram showing a quantization step matrix for node-wise information of edge weights in the l-th layer (l=1, 2, ..., L), which is a fully connected NN layer.

[0075] В NN, комбинации весовых коэффициентов wij для каждого слоя, показанного на фиг. 11, представляют собой данные, которые формируют сеть. Следовательно, в многослойной NN, такой как глубокая нейронная сеть, объем данных, в общем, составляет несколько сотен мегабайтов или более, и требуется большой размер запоминающего устройства. Здесь, i является индексом узла, и i=1, 2, ..., Nl, и j является индексом ребра, и j=1, 2, ..., Nl-1.[0075] In NN, combinations of weight coefficients w ij for each layer shown in FIG. 11 represent the data that forms the network. Therefore, in a multi-layer NN such as a deep neural network, the data volume is generally several hundred megabytes or more, and a large storage size is required. Here, i is the node index, and i=1, 2, ..., N l , and j is the edge index, and j=1, 2, ..., N l-1 .

[0076] Следовательно, чтобы уменьшать объем данных информации весовых коэффициентов ребер, устройство обработки данных согласно первому варианту осуществления квантует информацию весовых коэффициентов. Например, как показано на фиг. 12, шаг qij квантования задается для каждого весового коэффициента wij ребра. Шаг квантования может быть общим для множества индексов узлов или множества индексов ребер либо общим для множества индексов узлов и индексов ребер. Как результат, информация квантования, которая должна кодироваться, уменьшается.[0076] Therefore, in order to reduce the data amount of edge weight information, the data processing apparatus according to the first embodiment quantizes the weight information. For example, as shown in FIG. 12, the quantization step q ij is specified for each edge weight w ij . The quantization step may be common to a plurality of node indices or a plurality of edge indices, or common to a plurality of node indices and a plurality of edge indices. As a result, the quantization information that must be encoded is reduced.

[0077] Фиг. 13 является схемой, показывающей матрицу информации весовых коэффициентов ребер в сверточном слое. Фиг. 14 является схемой, показывающей матрицу шагов квантования для информации весовых коэффициентов ребер в сверточном слое. В сверточном слое, весовой коэффициент ребра для одного ядра является общим для всех узлов, и посредством уменьшения числа ребер, соединенных в расчете на узел, т.е. размера K ядра, ядро может формироваться в небольшую область. Фиг. 13 является данными, в которых весовой коэффициент wi'j' ребра задается для каждого ядра, и фиг. 14 является данными, в которых шаг qi'j' квантования задается для каждого ядра. Следует отметить, что i' является индексом ядра, и i'=1, 2, ..., Ml (l=1, 2, ..., L), и j' является индексом ребра, и j'=1, 2, ..., Kl.[0077] FIG. 13 is a diagram showing an edge weight information matrix in a convolutional layer. Fig. 14 is a diagram showing a quantization step matrix for edge weight information in a convolutional layer. In the convolutional layer, the edge weight for one kernel is shared by all nodes, and by reducing the number of edges connected per node, i.e. size K of the core, the core can be formed into a small area. Fig. 13 is data in which the edge weight w i'j' is set for each core, and FIG. 14 is data in which the quantization step q i'j' is set for each core. It should be noted that i' is the core index, and i'=1, 2, ..., M l (l=1, 2, ..., L), and j' is the edge index, and j'=1 , 2, ..., K l .

[0078] Шаг квантования может быть общим для множества индексов ядер, множества индексов ребер или множества индексов ядер и индексов ребер. Как результат, информация квантования, которая должна кодироваться, уменьшается. Например, все шаги квантования в слое могут преобразовываться в общий шаг квантования, и в силу этого один шаг квантования используется для одного слоя, или все шаги квантования в модели могут преобразовываться в общий шаг квантования, и в силу этого один шаг квантования может использоваться для одной модели.[0078] The quantization step may be common to a plurality of core indices, a plurality of edge indices, or a plurality of core indices and edge indices. As a result, the quantization information that must be encoded is reduced. For example, all quantization steps in a layer can be converted to a common quantization step, and therefore one quantization step is used for one layer, or all quantization steps in a model can be converted into a common quantization step, and therefore one quantization step can be used for one models.

[0079] Далее описывается аппаратная конфигурация, которая реализует функции устройства обработки данных согласно первому варианту осуществления. Функции блока 10 обработки данных и блока 11 кодирования в устройстве обработки данных согласно первому варианту осуществления реализуются посредством схемы обработки. А именно, устройство обработки данных согласно первому варианту осуществления включает в себя схему обработки для выполнения процессов на этапах ST1-ST6 по фиг. 5. Схема обработки может представлять собой специализированные аппаратные средства, но может представлять собой центральный процессор (CPU), который выполняет программы, сохраненные в запоминающем устройстве.[0079] Next, a hardware configuration that implements functions of a data processing apparatus according to the first embodiment will be described. The functions of the data processing unit 10 and the encoding unit 11 in the data processing apparatus according to the first embodiment are implemented by a processing circuit. Namely, the data processing apparatus according to the first embodiment includes a processing circuit for executing processes in steps ST1 to ST6 in FIG. 5. The processing circuitry may be dedicated hardware, but may be a central processing unit (CPU) that executes programs stored in a storage device.

[0080] Фиг. 15A является блок-схемой, показывающей аппаратную конфигурацию, которая реализует функции устройства обработки данных согласно первому варианту осуществления. На фиг. 15A, схема 300 обработки представляет собой специализированную схему, которая функционирует в качестве устройства обработки данных, показанного на фиг. 3. Фиг. 15B является блок-схемой, показывающей аппаратную конфигурацию, которая выполняет программное обеспечение, которое реализует функции устройства обработки данных согласно первому варианту осуществления. На фиг. 15B, процессор 301 и запоминающее устройство 302 соединяются между собой посредством сигнальной шины.[0080] FIG. 15A is a block diagram showing a hardware configuration that implements functions of a data processing apparatus according to the first embodiment. In fig. 15A, the processing circuit 300 is an application-specific circuit that functions as the data processing device shown in FIG. 3. Fig. 15B is a block diagram showing a hardware configuration that executes software that implements functions of a data processing apparatus according to the first embodiment. In fig. 15B, the processor 301 and the memory 302 are connected to each other via a signal bus.

[0081] Когда вышеописанная схема обработки представляет собой специализированные аппаратные средства, показанные на фиг. 15A, схема 300 обработки соответствует, например, одной схеме, комбинированной схеме, программируемому процессору, параллельно программируемому процессору, специализированной интегральной схеме (ASIC), программируемой пользователем вентильной матрице (FPGA) либо комбинации вышеозначенного. Следует отметить, что функции блока 10 обработки данных и блока 11 кодирования могут реализовываться посредством различных схем обработки, или функции могут совместно реализовываться посредством одной схемы обработки.[0081] When the above-described processing circuit is the dedicated hardware shown in FIG. 15A, the processing circuit 300 corresponds to, for example, a single circuit, a combination circuit, a programmable processor, a parallel programmable processor, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), or a combination of the above. It should be noted that the functions of the data processing unit 10 and the encoding unit 11 may be implemented by different processing circuits, or the functions may be jointly implemented by one processing circuit.

[0082] Когда вышеописанная схема обработки представляет собой процессор, показанный на фиг. 15B, функции блока 10 обработки данных и блока 11 кодирования реализуются посредством программного обеспечения, микропрограммного обеспечения либо комбинации программного обеспечения и микропрограммного обеспечения. Программное обеспечение или микропрограммное обеспечение описывается как программы и сохраняется в запоминающем устройстве 302. Процессор 301 реализует функции блока 10 обработки данных и блока 11 кодирования посредством считывания и выполнения программ, сохраненных в запоминающем устройстве 302. А именно, устройство обработки данных согласно первому варианту осуществления включает в себя запоминающее устройство 302 для сохранения программ, которые, при выполнении посредством процессора 301, инструктируют последовательное выполнение процессов на этапах ST1-ST6, показанных на фиг. 5. Программы инструктируют компьютеру выполнять процедуры или способы, осуществляемые в блоке 10 обработки данных и блоке 11 кодирования. Запоминающее устройство 302 может представлять собой машиночитаемый носитель хранения данных, имеющий сохраненные программы для инструктирования компьютеру функционировать в качестве блока 10 обработки данных и блока 11 кодирования.[0082] When the above-described processing circuit is the processor shown in FIG. 15B, the functions of the data processing unit 10 and the encoding unit 11 are implemented by software, firmware, or a combination of software and firmware. Software or firmware is described as programs and is stored in the memory device 302. The processor 301 implements the functions of the data processing unit 10 and the encoding unit 11 by reading and executing programs stored in the memory device 302. Namely, the data processing device according to the first embodiment includes includes a memory 302 for storing programs that, when executed by the processor 301, cause the processes in steps ST1 to ST6 shown in FIG. 5. The programs instruct the computer to carry out procedures or methods carried out in the data processing unit 10 and the encoding unit 11. The storage device 302 may be a computer-readable storage medium having stored programs for causing a computer to function as a data processing unit 10 and an encoding unit 11.

[0083] Запоминающее устройство 302 соответствует, например, энергонезависимому или энергозависимому полупроводниковому запоминающему устройству, такому как оперативное запоминающее устройство (RAM), постоянное запоминающее устройство (ROM), флэш-память, стираемое программируемое постоянное запоминающее устройство (EPROM) или электрически-EPROM (EEPROM), магнитный диск, гибкий диск, оптический диск, компакт-диск, минидиск или DVD.[0083] Storage device 302 corresponds, for example, to a non-volatile or volatile semiconductor memory device such as random access memory (RAM), read-only memory (ROM), flash memory, erasable programmable read-only memory (EPROM), or electrical-EPROM ( EEPROM), magnetic disk, floppy disk, optical disk, compact disk, minidisc or DVD.

[0084] Следует отметить, что некоторые функции блока 10 обработки данных и блока 11 кодирования могут реализовываться посредством специализированных аппаратных средств, и некоторые функции могут реализовываться посредством программного обеспечения или микропрограммного обеспечения. Например, функции блока 10 обработки данных могут реализовываться посредством схемы обработки, которая представляет собой специализированные аппаратные средства, и функция блока 11 кодирования может реализовываться посредством процессора 301, считывающего и выполняющего программу, сохраненную в запоминающем устройстве 302. В связи с этим, схема обработки может реализовывать каждую из вышеописанных функций посредством аппаратных средств, программного обеспечения, микропрограммного обеспечения либо комбинации вышеозначенного.[0084] It should be noted that some functions of the data processing unit 10 and encoding unit 11 may be implemented by dedicated hardware, and some functions may be implemented by software or firmware. For example, the functions of the data processing unit 10 may be implemented by a processing circuit that is dedicated hardware, and the function of the encoding unit 11 may be implemented by a processor 301 reading and executing a program stored in the memory 302. In this regard, the processing circuit may implement each of the above functions through hardware, software, firmware, or a combination of the above.

[0085] Следует отметить, что хотя описывается устройство обработки данных, показанное на фиг. 3, то же самое также применяется к устройству обработки данных, показанному на фиг. 4. Например, устройство обработки данных, показанное на фиг. 4, включает в себя схему обработки для выполнения процессов на этапах ST11-ST13 по фиг. 6. Схема обработки может представлять собой специализированные аппаратные средства, но может представлять собой CPU, который выполняет программы, сохраненные в запоминающем устройстве.[0085] It should be noted that although the data processing apparatus shown in FIG. 3, the same also applies to the data processing device shown in FIG. 4. For example, the data processing device shown in FIG. 4 includes a processing circuit for executing processes in steps ST11 to ST13 of FIG. 6. The processing circuitry may be dedicated hardware, but may be a CPU that executes programs stored in a storage device.

[0086] Когда вышеописанная схема обработки представляет собой специализированные аппаратные средства, показанные на фиг. 15A, схема 300 обработки соответствует, например, одной схеме, комбинированной схеме, программируемому процессору, параллельно программируемому процессору, ASIC, FPGA либо комбинации вышеозначенного. Следует отметить, что функции блока 201 декодирования и блока 202 логического вывода могут реализовываться посредством различных схем обработки, или функции могут совместно реализовываться посредством одной схемы обработки.[0086] When the above-described processing circuit is the dedicated hardware shown in FIG. 15A, processing circuit 300 corresponds to, for example, a single circuit, a combination circuit, a programmable processor, a parallel programmable processor, an ASIC, an FPGA, or a combination of the above. It should be noted that the functions of the decoding unit 201 and the logical output unit 202 may be implemented by different processing circuits, or the functions may be jointly implemented by one processing circuit.

[0087] Когда вышеописанная схема обработки представляет собой процессор, показанный на фиг. 15B, функции блока 201 декодирования и блока 202 логического вывода реализуются посредством программного обеспечения, микропрограммного обеспечения либо комбинации программного обеспечения и микропрограммного обеспечения. Программное обеспечение или микропрограммное обеспечение описывается как программы и сохраняется в запоминающем устройстве 302. Процессор 301 реализует функции блока 201 декодирования и блока 202 логического вывода посредством считывания и выполнения программ, сохраненных в запоминающем устройстве 302. А именно, устройство обработки данных, показанное на фиг. 4, включает в себя запоминающее устройство 302 для сохранения программ, которые, при выполнении посредством процессора 301, инструктируют последовательное выполнение процессов на этапе ST11-ST13, показанных на фиг. 6. Программы инструктируют компьютеру выполнять процедуры или способы, осуществляемые в блоке 201 декодирования и блоке 202 логического вывода. Запоминающее устройство 302 может представлять собой машиночитаемый носитель хранения данных, имеющий сохраненные программы для инструктирования компьютеру функционировать в качестве блока 201 декодирования и блока 202 логического вывода.[0087] When the above-described processing circuit is the processor shown in FIG. 15B, the functions of the decoding unit 201 and the inference unit 202 are implemented by software, firmware, or a combination of software and firmware. Software or firmware is described as programs and is stored in the memory device 302. The processor 301 implements the functions of the decoding unit 201 and the inference unit 202 by reading and executing programs stored in the memory device 302. Namely, the data processing device shown in FIG. 4 includes a memory 302 for storing programs that, when executed by the processor 301, cause the processes in steps ST11 to ST13 shown in FIG. to be executed sequentially. 6. The programs instruct the computer to perform procedures or methods implemented in the decoding block 201 and the logical output block 202. The storage device 302 may be a computer-readable storage medium having stored programs for causing a computer to function as a decoding unit 201 and an inference unit 202 .

[0088] Следует отметить, что одна из функций блока 201 декодирования и блока 202 логического вывода может реализовываться посредством специализированных аппаратных средств, и другая из функций может реализовываться посредством программного обеспечения или микропрограммного обеспечения. Например, функция блока 201 декодирования может реализовываться посредством схемы обработки, которая представляет собой специализированные аппаратные средства, и функция блока 202 логического вывода может реализовываться посредством процессора 301, считывающего и выполняющего программу, сохраненную в запоминающем устройстве 302.[0088] It should be noted that one of the functions of the decoding unit 201 and the inference unit 202 may be implemented by dedicated hardware, and the other of the functions may be implemented by software or firmware. For example, the function of the decoding unit 201 may be implemented by a processing circuit that is specialized hardware, and the function of the inference unit 202 may be implemented by a processor 301 reading and executing a program stored in the storage device 302.

[0089] Как описано выше, в устройстве обработки данных согласно первому варианту осуществления, блок 11 кодирования кодирует информацию, указывающую конфигурацию NN, за счет этого формируя кодированные данные, включающие в себя информацию заголовка, и послойные кодированные данные. Поскольку только информация относительно слоя, требуемого для стороны декодирования, может кодироваться, нагрузка по обработке для кодирования информации относительно конфигурации NN уменьшается, и может достигаться уменьшение размера данных, которые должны передаваться в сторону декодирования.[0089] As described above, in the data processing apparatus according to the first embodiment, the encoding unit 11 encodes information indicating the NN configuration, thereby generating encoded data including header information and layer-by-layer encoded data. Since only information regarding the layer required for the decoding side can be encoded, the processing load for encoding information regarding the NN configuration is reduced, and a reduction in the size of data that must be transmitted to the decoding side can be achieved.

[0090] В устройстве обработки данных согласно первому варианту осуществления, блок 11 кодирования кодирует информацию весовых коэффициентов ребер, принадлежащих слою NN, на основе каждой битовой плоскости с верхних битов. Таким образом, размер данных для кодированных данных, которые должны передаваться в сторону декодирования, может уменьшаться.[0090] In the data processing apparatus according to the first embodiment, the encoding unit 11 encodes edge weight information belonging to the NN layer based on each bit plane from the upper bits. Thus, the data size for encoded data to be transmitted to the decoding side can be reduced.

[0091] В устройстве обработки данных согласно первому варианту осуществления, блок 11 кодирования кодирует информацию относительно одного или более слоев, указываемых посредством информации заголовка. Таким образом, только информация относительно слоя, требуемого для стороны декодирования, кодируется, за счет этого обеспечивая уменьшение размера данных для кодированных данных, которые должны передаваться в сторону декодирования.[0091] In the data processing apparatus according to the first embodiment, the encoding unit 11 encodes information regarding one or more layers indicated by header information. Thus, only information regarding the layer required for the decoding side is encoded, thereby reducing the data size for the encoded data to be transmitted to the decoding side.

[0092] В устройстве обработки данных согласно первому варианту осуществления, блок 11 кодирования кодирует разность между значением весового коэффициента ребра, принадлежащего слою, указываемому посредством информации заголовка, и конкретным значением. Таким образом, размер данных для кодированных данных, которые должны передаваться в сторону декодирования, может уменьшаться.[0092] In the data processing apparatus according to the first embodiment, the encoding unit 11 encodes the difference between the weight coefficient value of an edge belonging to the layer indicated by the header information and a specific value. Thus, the data size for encoded data to be transmitted to the decoding side can be reduced.

[0093] В устройстве обработки данных согласно первому варианту осуществления, блок 11 кодирования кодирует информацию весовых коэффициентов ребер в качестве базовых кодированных данных и улучшающих кодированных данных отдельно. Таким образом, может реализовываться передача кодированных данных на основе полосы частот передачи и допустимого времени передачи сети 2 передачи данных.[0093] In the data processing apparatus according to the first embodiment, the encoding unit 11 encodes edge weight information as base encoded data and enhancement encoded data separately. In this way, transmission of encoded data can be realized based on the transmission frequency band and the permissible transmission time of the data transmission network 2.

[0094] Второй вариант осуществления [0094] Second Embodiment

Фиг. 16 является блок-схемой, показывающей конфигурацию устройства обработки данных (кодера) согласно второму варианту осуществления. Устройство обработки данных, показанное на фиг. 16, представляет собой первое устройство обработки данных, которое обучает NN с использованием набора обучающих данных и набора оценочных данных и формирует кодированные данные информации модели NN и, например, представляет собой сервер 1, показанный на фиг. 1. Устройство обработки данных, показанное на фиг. 16, включает в себя блок 10A обработки данных, блок 11 кодирования и блок 12 декодирования.Fig. 16 is a block diagram showing the configuration of a data processing apparatus (encoder) according to the second embodiment. The data processing device shown in FIG. 16 is a first data processing apparatus that trains the NN using the training data set and the evaluation data set and generates encoded NN model information data, and is, for example, the server 1 shown in FIG. 1. The data processing device shown in FIG. 16 includes a data processing unit 10A, an encoding unit 11, and a decoding unit 12.

[0095] Блок 10A обработки данных представляет собой блок обработки данных, который создает и обучает NN, и включает в себя обучающий блок 101A, блок 102 оценки и блок 103 управления. Блок 11 кодирования кодирует информацию модели, сформированную посредством обучающего блока 101, за счет этого формируя кодированные данные, включающие в себя информацию заголовка, и послойные кодированные данные. Блок 12 декодирования декодирует информацию модели из кодированных данных, сформированных посредством блока 11 кодирования. Помимо этого, блок 12 декодирования выводит декодированную информацию модели в обучающий блок 101A.[0095] The data processing unit 10A is a data processing unit that creates and trains the NN, and includes a training unit 101A, an estimation unit 102, and a control unit 103. The encoding unit 11 encodes the model information generated by the training unit 101, thereby generating encoded data including header information and layer-by-layer encoded data. The decoding unit 12 decodes the model information from the encoded data generated by the encoding unit 11. In addition, the decoding unit 12 outputs the decoded model information to the training unit 101A.

[0096] Аналогично первому варианту осуществления, обучающий блок 101A обучает NN с использованием набора обучающих данных и формирует информацию модели, указывающую конфигурацию обученной NN. Помимо этого, обучающий блок 101A создает NN с использованием декодированной информации модели и переобучает параметры созданной NN с использованием набора обучающих данных.[0096] Similar to the first embodiment, the training unit 101A trains the NN using the training data set and generates model information indicating the configuration of the trained NN. In addition, the training block 101A creates a NN using the decoded model information and retrains the parameters of the created NN using the training data set.

[0097] После вышеописанного переобучения, посредством выполнения переобучения с фиксированными некоторыми весовыми коэффициентами ребер, увеличение точности может достигаться, тогда как размер данных для кодированных данных поддерживается небольшим. Например, посредством выполнения переобучения с весовым коэффициентом, ненулевой флаг которого равен 0, фиксированно равным 0, оптимизация весовых коэффициентов является возможной, тогда как предотвращается превышение или равенство, посредством размера данных для кодированных данных, размеру данных для кодированных данных для весовых коэффициентов ребер перед переобучением.[0097] After the above-described retraining, by performing retraining with certain edge weights fixed, an increase in accuracy can be achieved while the data size of the encoded data is kept small. For example, by performing retraining with a weight whose non-zero flag is 0 fixed to 0, optimization of the weights is possible while preventing the data size of the encoded data from exceeding or equaling the data size of the encoded data for the edge weights before retraining. .

[0098] Как описано выше, устройство обработки данных согласно второму варианту осуществления включает в себя блок 12 декодирования, и блок 10A обработки данных обучает NN с использованием информации, декодированной посредством блока 12 декодирования. Таким образом, например, даже когда блок 11 кодирования выполняет необратимое кодирование, за счет которого возникает искажение при кодировании, устройство обработки данных согласно второму варианту осуществления может создавать и обучать NN на основе фактических результатов декодирования кодированных данных и в силу этого может обучать NN таким способом, который минимизирует влияние ошибок кодирования, при обстоятельствах, при которых налагается ограничение на размер данных для кодированных данных.[0098] As described above, the data processing apparatus according to the second embodiment includes a decoding unit 12, and the data processing unit 10A trains the NN using information decoded by the decoding unit 12. Thus, for example, even when the encoding unit 11 performs irreversible encoding due to which encoding distortion occurs, the data processing apparatus according to the second embodiment can create and train a NN based on the actual decoding results of the encoded data, and thereby can train the NN in this manner. , which minimizes the impact of encoding errors under circumstances in which a data size limit is imposed on the encoded data.

[0099] Третий вариант осуществления [0099] Third Embodiment

Система обработки данных согласно третьему варианту осуществления имеет конфигурацию, идентичную конфигурации на фиг. 1, и включает в себя устройство обработки данных, показанное на фиг. 3, в качестве сервера 1, и включает в себя устройства обработки данных, показанные на фиг. 4, в качестве клиентов 3-1, 3-2, ..., 3-N. В системе обработки данных согласно третьему варианту осуществления, данные, выведенные из промежуточного слоя NN, используются в качестве одного или более признаков для обработки данных для данных изображений и аудиоданных, например, для извлечения или согласования изображений, описанного в нижеприведенном справочном документе.The data processing system according to the third embodiment has a configuration identical to that in FIG. 1 and includes the data processing apparatus shown in FIG. 3 as the server 1, and includes the data processing devices shown in FIG. 4, as clients 3-1, 3-2, ..., 3-N. In the data processing system according to the third embodiment, data output from the NN middle layer is used as one or more features for data processing for image data and audio data, such as image extraction or matching described in the following reference document.

Справочный документ. ISO/IEC JTC1/SC29/WG11/m39219, "Improved retrieval and matching with CNN feature for CDVA", Chengdu, China, октябрь 2016 года.Reference document. ISO/IEC JTC1/SC29/WG11/m39219, "Improved retrieval and matching with CNN feature for CDVA", Chengdu, China, October 2016.

[0100] Например, когда выходные данные из промежуточного слоя NN используются в качестве признаков изображений для обработки изображений, такой как извлечение, согласование изображений или отслеживание объектов, замена или добавление признаков изображений выполняется для гистограммы ориентированных градиентов (HOG), масштабно-инвариантного преобразования признаков (SIFT) или ускоренных надежных признаков (SURF), которые представляют собой признаки изображений, используемые в вышеописанной традиционной обработке изображений. Как результат, посредством процедуры обработки, идентичной процедуре обработки изображений, которая использует традиционные признаки изображений, обработка изображений может реализовываться. В системе обработки данных согласно третьему варианту осуществления, блок 11 кодирования кодирует информацию модели, указывающую конфигурацию части NN вплоть до промежуточного слоя, которая выводит признаки изображений.[0100] For example, when outputs from an NN middle layer are used as image features for image processing such as extraction, image matching, or object tracking, replacement or addition of image features is performed on a histogram of oriented gradients (HOG), a scale-invariant feature transform (SIFT) or accelerated robust features (SURF), which are image features used in the above-described traditional image processing. As a result, through a processing procedure identical to an image processing procedure that uses traditional image features, image processing can be implemented. In the data processing system according to the third embodiment, the encoding unit 11 encodes model information indicating the configuration of the NN part down to the middle layer that outputs image features.

[0101] Кроме того, устройство обработки данных, которое функционирует в качестве сервера 1, выполняет обработку данных, такую как извлечение изображения, с использованием признаков для вышеописанной обработки данных. Устройство обработки данных, которое функционирует в качестве клиента, создает NN вплоть до промежуточного слоя из кодированных данных и выполняет обработку данных, такую как извлечение изображений, с использованием, в качестве признаков, данных, выведенных из промежуточного слоя созданной NN.[0101] In addition, the data processing apparatus that functions as the server 1 performs data processing such as image extraction using features for the above-described data processing. A data processing device that functions as a client creates a NN down to the middle layer from the encoded data and performs data processing, such as image extraction, using as features data derived from the middle layer of the created NN.

[0102] Как описано выше, в системе обработки данных согласно третьему варианту осуществления, блок 11 кодирования кодирует информацию модели, указывающую конфигурацию NN вплоть до промежуточного слоя. Таким образом, коэффициент сжатия данных параметров посредством квантования увеличивается, за счет этого обеспечивая уменьшение объема данных информации весовых коэффициентов перед кодированием. Клиент создает NN с использованием информации модели, декодированной посредством блока 201 декодирования, и выполняет обработку данных, которая использует, в качестве признаков, данные, выведенные из промежуточного слоя созданной NN.[0102] As described above, in the data processing system according to the third embodiment, the encoding unit 11 encodes model information indicating the NN configuration down to the middle layer. Thus, the compression ratio of parameter data by quantization is increased, thereby reducing the amount of weight information data before encoding. The client creates the NN using the model information decoded by the decoding unit 201, and performs data processing that uses, as features, data output from the middle layer of the created NN.

[0103] Следует отметить, что настоящее изобретение не ограничено вышеописанными вариантами осуществления, и свободная комбинация вариантов осуществления, модификация любого компонента в каждом из вариантов осуществления либо опускание любого компонента в каждом из вариантов осуществления является возможным в пределах объема настоящего изобретения.[0103] It should be noted that the present invention is not limited to the above-described embodiments, and a free combination of embodiments, modification of any component in each of the embodiments, or omission of any component in each of the embodiments is possible within the scope of the present invention.

Промышленная применимостьIndustrial applicability

[0104] Устройство обработки данных согласно настоящему изобретению снижает нагрузку по обработке для кодирования информации относительно конфигурации нейронной сети и может уменьшать размер данных, которые должны передаваться в сторону декодирования, и в силу этого может использоваться, например, для технологии распознавания изображений.[0104] The data processing apparatus of the present invention reduces the processing load for encoding information regarding the neural network configuration and can reduce the size of data that must be transmitted to the decoding side, and can therefore be used for example in image recognition technology.

Список номеров ссылокList of reference numbers

[0105] 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 - запоминающее устройство[0105] 1 - server, 2 - data network, 3-1 - 3-N - client, 10, 10A - data processing unit, 10-1 - 10-9, 11-1 - 11-3 - node, 11 - encoding block, 12 - decoding block, 12-1 - 12-15 - edge, 20 - core, 101, 101A - training block, 102 - evaluation block, 103 - control block, 201 - decoding block, 202 - logical inference block , 300 - processing circuit, 301 - processor, 302 - storage device

Claims (25)

1. Устройство для обработки изображения или аудио данных, содержащее:1. A device for processing image or audio data, containing: - схему обработки данных для обучения нейронной сети с использованием набора обучающих данных и вывода информации модели обученной нейронной сети; и- data processing circuit for training a neural network using a set of training data and outputting information from the model of the trained neural network; And - схему обработки кодирования для формирования кодированных данных, в которых кодируется информация модели, включающая в себя информацию заголовков моделей, которая идентифицирует модель нейронной сети, используемой для обработки изображения или аудио данных, информацию заголовков слоев, которая идентифицирует один или более слоев нейронной сети и указывает конфигурацию каждого из слоев нейронной сети, и информацию весовых коэффициентов каждого из ребер, принадлежащих каждому из одного или более слоев, идентифицированных посредством информации заголовков слоев,- an encoding processing circuit for generating encoded data in which model information is encoded, including model header information that identifies a neural network model used to process image or audio data, layer header information that identifies one or more layers of the neural network, and indicates a configuration of each of the layers of the neural network, and weighting information of each of the edges belonging to each of the one or more layers identified by the layer header information, причем устройство передает кодированные данные наружу.wherein the device transmits the encoded data outward. 2. Устройство по п. 1, в котором схема обработки кодирования отдельно кодирует информацию весовых коэффициентов каждого из ребер, принадлежащих каждому из одного или более слоев, в качестве флага, указывающего, является ли значение весового коэффициента каждого из ребер равным нулю, и весовой коэффициент соответствующего одного из ребер, когда флаг указывает, что значение весового коэффициента соответствующего одного из ребер не равно нулю.2. The apparatus of claim 1, wherein the encoding processing circuit separately encodes the weight coefficient information of each of the edges belonging to each of the one or more layers as a flag indicating whether the weight coefficient value of each of the edges is zero, and the weight coefficient the corresponding one of the edges, when the flag indicates that the weight coefficient value of the corresponding one of the edges is not equal to zero. 3. Устройство по п. 1 или 2, в котором схема обработки кодирования кодирует информацию весовых коэффициентов ребер, принадлежащих каждому из одного или более слоев, идентифицированных посредством информации заголовков слоев.3. The apparatus of claim 1 or 2, wherein the encoding processing circuit encodes edge weight information belonging to each of the one or more layers identified by the layer header information. 4. Устройство по п. 1 или 2, в котором схема обработки кодирования кодирует разность между значением весового коэффициента ребра и конкретным значением.4. The apparatus of claim 1 or 2, wherein the encoding processing circuit encodes a difference between an edge weight value and a specific value. 5. Устройство по п. 1 или 2, в котором схема обработки кодирования кодирует информацию весовых коэффициентов ребер в качестве базовых кодированных данных и улучшающих кодированных данных отдельно.5. The apparatus of claim 1 or 2, wherein the encoding processing circuit encodes edge weight information as base encoded data and enhancement encoded data separately. 6. Устройство по п. 1 или 2, содержащее схему обработки декодирования для декодирования кодированных данных, сформированных посредством схемы обработки кодирования, при этом:6. The device according to claim 1 or 2, comprising a decoding processing circuit for decoding encoded data generated by the encoding processing circuit, wherein: - схема обработки данных обучает нейронную сеть с использованием информации, декодированной посредством схемы обработки декодирования.- the data processing circuit trains the neural network using the information decoded by the decoding processing circuit. 7. Система для обработки изображения или аудио данных, содержащая:7. A system for processing image or audio data, comprising: первое устройство обработки данных, включающее в себя:a first data processing device including: - первую схему обработки данных для обучения нейронной сети с использованием набора обучающих данных и вывода информации модели обученной нейронной сети; и- a first data processing circuit for training a neural network using a set of training data and outputting information from the model of the trained neural network; And - схему обработки кодирования для формирования кодированных данных, в которых кодируется информация модели, включающая в себя информацию заголовков моделей, которая идентифицирует модель нейронной сети, используемой для обработки изображения или аудио данных, информацию заголовков слоев, которая идентифицирует один или более слоев нейронной сети и указывает конфигурацию каждого из слоев нейронной сети, и информацию весовых коэффициентов каждого из ребер, принадлежащих каждому из одного или более слоев, идентифицированных посредством информации заголовков слоев,- an encoding processing circuit for generating encoded data in which model information is encoded, including model header information that identifies a neural network model used to process image or audio data, layer header information that identifies one or more layers of the neural network, and indicates a configuration of each of the layers of the neural network, and weighting information of each of the edges belonging to each of the one or more layers identified by the layer header information, причем первое устройство обработки данных передает кодированные данные наружу; иwherein the first data processing device transmits the encoded data outward; And второе устройство обработки данных, включающее в себя:a second data processing device including: - схему обработки декодирования для декодирования кодированных данных, сформированных посредством схемы обработки кодирования и переданных для получения только информации модели; иa decoding processing circuit for decoding encoded data generated by the encoding processing circuit and transmitted to obtain only model information; And - вторую схему обработки данных для создания нейронной сети с использованием информации модели, декодированной посредством схемы обработки декодирования, и выполнения обработки изображения или аудио данных с использованием нейронной сети.- a second data processing circuit for creating a neural network using the model information decoded by the decoding processing circuit, and performing processing on the image or audio data using the neural network. 8. Система по п. 7, в которой:8. The system according to claim 7, in which: - схема обработки кодирования кодирует информацию относительно части нейронной сети вплоть до промежуточного слоя, и- the encoding processing circuit encodes information regarding the neural network part down to the intermediate layer, and - второе устройство обработки данных выполняет обработку данных с использованием, в качестве признака, данных, выведенных из промежуточного слоя нейронной сети.- the second data processing device performs data processing using, as a feature, data derived from the intermediate layer of the neural network. 9. Способ обработки изображения или аудио данных, содержащий этапы, на которых:9. A method for processing image or audio data, comprising the steps of: - обучают нейронную сеть с использованием набора обучающих данных и выводят информацию модели обученной нейронной сети посредством схемы обработки данных; и- train the neural network using a set of training data and output information to the model of the trained neural network through a data processing circuit; And - формируют, посредством схемы обработки кодирования, кодированные данные, в которых кодируется информация модели, включающая в себя информацию заголовков моделей, которая идентифицирует модель нейронной сети, используемой для обработки изображения или аудио данных, информацию заголовков слоев, которая идентифицирует один или более слоев нейронной сети и указывает конфигурацию каждого из слоев нейронной сети, и информацию весовых коэффициентов каждого из ребер, принадлежащих каждому из одного или более слоев, идентифицированных посредством информации заголовков слоев; и- generating, by means of an encoding processing circuit, encoded data in which model information is encoded, including model header information that identifies the model of the neural network used to process the image or audio data, layer header information that identifies one or more layers of the neural network and indicates the configuration of each of the neural network layers, and weight information of each of the edges belonging to each of the one or more layers identified by the layer header information; And - передают наружу кодированные данные. - transmit encoded data outward.
RU2021124838A 2019-02-28 Data processing device, data processing system and data processing method RU2811535C2 (en)

Publications (2)

Publication Number Publication Date
RU2021124838A RU2021124838A (en) 2023-03-28
RU2811535C2 true RU2811535C2 (en) 2024-01-15

Family

ID=

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2566979C1 (en) * 2014-12-15 2015-10-27 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Тульский государственный университет" (ТулГУ) Method of training artificial neural network
WO2018142766A1 (en) * 2017-02-03 2018-08-09 パナソニックIpマネジメント株式会社 Learned model provision method and learned model provision device
JP2018206016A (en) * 2017-06-02 2018-12-27 株式会社日立製作所 Machine learning system and machine learning method
WO2019008752A1 (en) * 2017-07-07 2019-01-10 三菱電機株式会社 Data processing device, data processing method, and compressed data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2566979C1 (en) * 2014-12-15 2015-10-27 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Тульский государственный университет" (ТулГУ) Method of training artificial neural network
WO2018142766A1 (en) * 2017-02-03 2018-08-09 パナソニックIpマネジメント株式会社 Learned model provision method and learned model provision device
JP2018206016A (en) * 2017-06-02 2018-12-27 株式会社日立製作所 Machine learning system and machine learning method
WO2019008752A1 (en) * 2017-07-07 2019-01-10 三菱電機株式会社 Data processing device, data processing method, and compressed data

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Use cases and requirements for Compressed Representation of Neural Networks", ISO/IEC JTC1/SC29/WG11/N17924, опуб. 2018, URL: https://mpeg.chiariglione.org/standards/exploration/digital-representation-neural-networks/use-cases-and-requirements-compressed-1, разделы 5.4.1, 6, 7. *

Similar Documents

Publication Publication Date Title
RU2747445C1 (en) Data processing device, data processing method and data carrier
US20220188596A1 (en) Data processing device, data processing system, and data processing method
KR102382125B1 (en) Method and apparatus for neural network quantization
CA3126905C (en) Data processing device, data processing system, and data processing method
RU2811535C2 (en) Data processing device, data processing system and data processing method
RU2814940C1 (en) Data processing device, data processing system and data processing method
Naik et al. Survey on comparative study of pruning mechanism on mobilenetv3 model
JP7313515B2 (en) DATA PROCESSING DEVICE, DATA PROCESSING SYSTEM AND DATA PROCESSING METHOD
JP7336995B2 (en) Storage system and storage control method
US10891758B2 (en) Geometry encoder
KR102454420B1 (en) Method and apparatus processing weight of artificial neural network for super resolution
Hwang et al. A layer-wise extreme network compression for super resolution
Yu et al. Convolutional neural networks with compression complexity pooling for out-of-distribution image detection
CN112990434A (en) Training method of machine translation model and related device
KR102500904B1 (en) Method and apparatus for compressing data based on deep learning
CN114781604B (en) Coding method of neural network weight parameters, coder and neural network processor
KR20230059435A (en) Method and apparatus for compressing a neural network
Bischof et al. Vector quantization and minimum description length