RU2595598C2 - Method and device for compression using approach based on neural network - Google Patents
Method and device for compression using approach based on neural network Download PDFInfo
- Publication number
- RU2595598C2 RU2595598C2 RU2014147972/08A RU2014147972A RU2595598C2 RU 2595598 C2 RU2595598 C2 RU 2595598C2 RU 2014147972/08 A RU2014147972/08 A RU 2014147972/08A RU 2014147972 A RU2014147972 A RU 2014147972A RU 2595598 C2 RU2595598 C2 RU 2595598C2
- Authority
- RU
- Russia
- Prior art keywords
- vector
- data
- data elements
- weight
- cells
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 21
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 20
- 238000013459 approach Methods 0.000 title claims abstract description 18
- 238000007906 compression Methods 0.000 title description 4
- 230000006835 compression Effects 0.000 title description 4
- 239000013598 vector Substances 0.000 claims abstract description 83
- 238000013144 data compression Methods 0.000 claims abstract description 19
- 238000012549 training Methods 0.000 claims abstract description 11
- 238000009825 accumulation Methods 0.000 claims 1
- 230000000694 effects Effects 0.000 abstract 1
- 239000000126 substance Substances 0.000 abstract 1
- 230000006870 function Effects 0.000 description 10
- VIEYMVWPECAOCY-UHFFFAOYSA-N 7-amino-4-(chloromethyl)chromen-2-one Chemical compound ClCC1=CC(=O)OC2=CC(N)=CC=C21 VIEYMVWPECAOCY-UHFFFAOYSA-N 0.000 description 4
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003909 pattern recognition Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000013529 biological neural network Methods 0.000 description 1
- 230000002490 cerebral effect Effects 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Image Analysis (AREA)
Abstract
Description
Область техники, к которой относится изобретениеFIELD OF THE INVENTION
Настоящее изобретения относится в целом к области техники обработки данных. В частности, настоящее изобретение направлено на способ и устройство сжатия данных с использованием подхода на основе нейронной сети.The present invention relates generally to the field of data processing technology. In particular, the present invention is directed to a method and apparatus for compressing data using a neural network approach.
Уровень техникиState of the art
Сжатие и сохранение объемных данных свойственны системам, используемым для 3D-моделирования, машинного распознавания образов и роботизированных применений. В уровне техники известны три основных подхода для сжатия и сохранения объемных данных: 1) воксельное представление в линейной памяти (RAM, флэш-память и т.д.); 2) сжатие данных без потерь с использованием иерархических структур данных; и 3) сжатие данных с потерями.Compression and storage of bulk data are characteristic of systems used for 3D modeling, machine pattern recognition and robotic applications. Three basic approaches are known in the art for compressing and storing bulk data: 1) voxel representation in linear memory (RAM, flash memory, etc.); 2) lossless data compression using hierarchical data structures; and 3) lossy data compression.
Воксельное представление в линейной памяти применяется, когда вычислительная эффективность систем имеет важное значение. В этом случае данные сохраняются в памяти без какой-либо модификации, т.е. в исходном виде. Воксель представляет собой один элемент или точку данных на регулярно разнесенной трехмерной сетке. Эта точка данных может состоять из одного компонента данных, например непрозрачность, или множества компонентов данных, например цвет вдобавок к непрозрачности. Воксель представляет только одну точку на этой сетке, а не объем; пространство между каждым вокселем не отображается в наборе данных, основанном на вокселях. Пример восксельного представления описан в документе US 8,587,583 B2. Недостаток воксельного представления состоит в том, что этот подход требует запоминающие устройства с большой емкостью в случае большого количества объемных данных. Кроме того, 3D-вид обычно содержит много пустого пространства, и «прямолинейное» воксельное представление может быть затратным с точки зрения использования ресурсов памяти.The voxel representation in linear memory is used when the computational efficiency of systems is important. In this case, the data is stored in memory without any modification, i.e. in its original form. A voxel is a single item or data point on a regularly spaced three-dimensional grid. This data point may consist of a single data component, such as opacity, or multiple data components, such as color, in addition to opacity. A voxel represents only one point on this grid, not a volume; the space between each voxel is not displayed in the voxel-based dataset. An example of a wax presentation is described in US Pat. No. 8,587,583 B2. The disadvantage of the voxel representation is that this approach requires large capacity storage devices in the case of a large amount of bulk data. In addition, a 3D view usually contains a lot of empty space, and a “straightforward” voxel view can be costly in terms of using memory resources.
Чтобы снизить затраты ресурсов памяти, можно сжимать объемные данные. Для сжатия данных без потерь используются различные иерархические структуры данных наподобие дерева данных. Пустые пространства кодируются с намного меньшим разрешением, чем пространства с объектами, и это снижает требуемый размер данных. Наиболее используемым типом такого подхода является дерево октантов - структура данных, в которой каждый внутренний узел имеет ровно восемь потомков. Каждый узел в дереве октантов подразделяет пространство, которое он характеризует, на восемь октантов. Пример сжатия данных без потерь описан в документе US 4,694,404 A. Этот подход имеет такой недостаток, что представление данных с использованием дерева октантов требует дополнительных вычислительных затрат для упаковки/распаковки данных.To reduce the cost of memory resources, you can compress bulk data. For lossless data compression, various hierarchical data structures like the data tree are used. Empty spaces are encoded with much lower resolution than spaces with objects, and this reduces the required data size. The most used type of this approach is the octant tree - a data structure in which each internal node has exactly eight descendants. Each node in the octant tree divides the space that it characterizes into eight octants. An example of lossless data compression is described in US Pat. No. 4,694,404 A. This approach has such a drawback that presenting data using the octant tree requires additional computational cost for packing / unpacking the data.
Сжатие данных с потерями часто приводит к лучшим коэффициентам сжатия, чем сжатие данных без потерь, поскольку некоторые исходные данные могут быть отброшены. Для сжатия данных с потерями определяются либо доминирующие признаки исходных данных, либо их компактное представление в других базисах. Количество и тип отбрасываемой информации диктуются метрикой выбора в алгоритме сжатия. Пример схемы сжатия данных с потерями описан в документе US 2013/0159263 A1. Этот документ раскрывает способ, предусматривающий разреженное представление входного вектора данных b∈Rm, используя переполненный словарь базисных векторов A∈Rmxn. В частности, учитывая словарную матрицу с m<n, представляет интерес найти x∈Rn так, чтобы Ax=b. Существует множество таких решений для x, и принцип состоит в том, чтобы выбрать решение, которое является самым «разреженным». Следует отметить, что пока x имеет высокую размерность, A может быть выбрано так, чтобы x имел очень мало ненулевых элементов, и, следовательно, x может быть сохранен эффективным образом. В документе US 2013/0159263 A1 распределенного алгоритма по Брегману используется для решения задачи оптимизации нахождения самого «разреженного» решения для x. Этот подход также требует значительных вычислительных затрат для обработки данных, в особенности для выполнения распределенного алгоритма по Брегману.Lossy data compression often leads to better compression ratios than lossless data compression, as some raw data may be discarded. To compress data with losses, either the dominant features of the source data or their compact representation in other bases are determined. The amount and type of discarded information is dictated by the selection metric in the compression algorithm. An example of a lossy data compression scheme is described in US 2013/0159263 A1. This document discloses a method involving a sparse representation of an input data vector b∈R m using an overflowed dictionary of basis vectors A∈R mxn . In particular, given the vocabulary matrix with m <n, it is of interest to find x∈R n so that Ax = b. There are many such solutions for x, and the principle is to choose the solution that is the most “sparse”. It should be noted that while x has a high dimension, A can be chosen so that x has very few nonzero elements, and therefore x can be stored in an efficient way. In document US 2013/0159263 A1, the distributed Bregman algorithm is used to solve the optimization problem of finding the most “sparse" solution for x. This approach also requires significant computational overhead for data processing, in particular for the implementation of the distributed algorithm according to Bregman.
Другой способ нахождения решения для x основан на подходе с использованием нейронной сети, описанный в документе US 4,193,115 A. В этом случае для множества входных переменных предусмотрены управляющие функции, которые вычислены в отношении данных, хранящихся в памяти. Каждое значение управляющих функций распределяется по разным физическим адресам памяти, так что линейная сумма содержимого этих физических адресов определяет это значение. Используется алгоритм адресации, в котором входные переменные отображаются в набор значений промежуточного отображения. Устройство для выполнения промежуточного отображения содержит первый и второй счетчики, которые используются для адресации памяти, хранящей промежуточные переменные заданным образом. Тем не менее решение, предложенное в документе US 4,193,115 A, также требует значительных вычислительных затрат для сжатия данных.Another way to find a solution for x is based on the neural network approach described in US 4,193,115 A. In this case, control functions are calculated for a variety of input variables, which are calculated in relation to the data stored in memory. Each value of the control functions is allocated to different physical memory addresses, so that a linear sum of the contents of these physical addresses determines this value. An addressing algorithm is used in which the input variables are mapped to a set of intermediate display values. A device for performing intermediate mapping contains the first and second counters, which are used to address memory that stores intermediate variables in a specified way. However, the solution proposed in US 4,193,115 A also requires significant computational overhead for data compression.
Раскрытие изобретенияDisclosure of invention
Задача настоящего изобретения заключается в устранении вышеупомянутых недостатков, присущих решениям, известным из уровня техники.An object of the present invention is to overcome the aforementioned disadvantages inherent in solutions known in the art.
Технический результат, достигаемый за счет использования настоящего изобретения, состоит в снижении затрат памяти и вычислительных затрат для сжатия данных посредством использования подхода на основе нейронной сети.The technical result achieved by using the present invention is to reduce memory and computing costs for data compression by using a neural network approach.
Согласно первому аспекту, предложен способ сжатия данных. Способ осуществляется следующим образом. Пространство входных данных разделяют на множество элементов данных. Каждый элемент данных характеризуется координатным вектором, задающим координаты элемента данных в пространстве входных данных, и вектором объемных значений, определяющим объемные значения элемента данных в пространстве входных данных. Используя координатные векторы, определяют адреса ячеек в ассоциативной памяти, с которыми должны быть связаны элементы данных. Каждая из ячеек имеет весовое значение. Далее элементы данных связывают с ячейками в ассоциативной памяти на основе определенных адресов. Все весовые значения ячеек, связанных с элементами данных, аккумулируют для получения весового вектора. После этого весовой вектор вычитают из вектора объемных значений для формирования сигнала ошибки. Затем проверяют, является ли сигнал ошибки ненулевым. Если сигнал ошибки является ненулевым, включают режим обучения, при котором сигнал ошибки предоставляют ассоциативной памяти для регулировки весовых значений ячеек, связанных с элементами данных на основе сигнала ошибки. Если сигнал ошибки является нулевым, включают режим вывода, при котором вектор сжатых объемных значений вычисляют с использованием весового вектора и далее выводят.According to a first aspect, a method for compressing data is provided. The method is as follows. The input data space is divided into many data elements. Each data element is characterized by a coordinate vector defining the coordinates of the data element in the input data space, and a volume vector that defines the volume values of the data element in the input data space. Using coordinate vectors, they determine the addresses of cells in associative memory with which data elements should be associated. Each of the cells has a weight value. Next, data elements are associated with cells in associative memory based on specific addresses. All weight values of cells associated with data elements are accumulated to obtain a weight vector. After that, the weight vector is subtracted from the vector of volume values to generate an error signal. Then check whether the error signal is non-zero. If the error signal is nonzero, a training mode is activated in which an error signal is provided with an associative memory for adjusting cell weights associated with data items based on the error signal. If the error signal is zero, an output mode is activated in which a vector of compressed volume values is calculated using a weight vector and then output.
Согласно второму аспекту, предложено устройство сжатия данных. Устройство содержит ассоциативную память, состоящую из ячеек, и один или более процессоров. Каждая из ячеек в ассоциативной памяти имеет весовое значение. Упомянутый один или более процессоров выполнены с возможностью разделения пространства входных данных на множество элементов данных. Каждый элемент данных характеризуется координатным вектором, задающим координаты элемента данных в пространстве входных данных, и вектором объемных значений, определяющим объемные значения элемента данных в пространстве входных данных. Упомянутый один или более процессоров дополнительно выполнены с возможностью, используя координатные векторы, определения адресов ячеек в ассоциативной памяти, с которыми должны быть связаны элементы данных, и связывания элементов данных с ячейками в ассоциативной памяти на основе определенных адресов. Упомянутый один или более процессоров дополнительно выполнены с возможностью аккумулирования всех весовых значений ячеек, связанных с элементами данных, для получения весового вектора и вычитания весового вектора из вектора объемных значений для формирования сигнала ошибки. Упомянутый один или более процессоров дополнительно выполнены с возможностью, если сигнал ошибки является ненулевым, включения режима обучения, при котором весовые значения ячеек, связанных с элементами данных, регулируются на основе сигнала ошибки, или если сигнал ошибки является нулевым, включения режима вывода, при котором вычисляется вектор сжатых объемных значений с использованием весового вектора и выводится вектор сжатых объемных значений.According to a second aspect, a data compression device is provided. The device comprises an associative memory consisting of cells and one or more processors. Each of the cells in associative memory has a weight value. Mentioned one or more processors are configured to divide the input data space into multiple data elements. Each data element is characterized by a coordinate vector defining the coordinates of the data element in the input data space, and a volume vector that defines the volume values of the data element in the input data space. Mentioned one or more processors are additionally configured to, using coordinate vectors, determine the addresses of cells in associative memory with which data elements should be associated, and associate data elements with cells in associative memory based on specific addresses. Mentioned one or more processors are additionally configured to accumulate all weight values of cells associated with data elements to obtain a weight vector and subtract the weight vector from the volume vector to generate an error signal. Said one or more processors is further configured to, if the error signal is nonzero, enable a learning mode in which the weight values of cells associated with data elements are adjusted based on the error signal, or if the error signal is zero, enable an output mode in which a vector of compressed volume values is calculated using a weight vector, and a vector of compressed volume values is output.
Эти и другие аспекты, признаки и преимущества изобретения будут очевидны и разъяснены со ссылкой на вариант(ы) осуществления, описанный(е) в данном документе.These and other aspects, features and advantages of the invention will be apparent and elucidated with reference to the embodiment (s) of implementation described (e) herein.
Краткое описание чертежейBrief Description of the Drawings
Сущность настоящего изобретения поясняется ниже со ссылкой на сопроводительные чертежи, на которых:The essence of the present invention is explained below with reference to the accompanying drawings, in which:
Фиг. 1 иллюстрирует устройство сжатия данных в соответствии с одним примером варианта осуществления настоящего изобретения;FIG. 1 illustrates a data compression device in accordance with one example of an embodiment of the present invention;
Фиг. 2 показывает объемное представление ассоциативной памяти, показанной на Фиг. 1;FIG. 2 shows a three-dimensional representation of the associative memory shown in FIG. one;
Фиг. 3 показывает способ сжатия данных в соответствии с одним примером варианта осуществления настоящего изобретения;FIG. 3 shows a data compression method in accordance with one example embodiment of the present invention;
Фиг. 4 показывает пример использования способа с Фиг. 3 относительно синусоидальной функции.FIG. 4 shows an example of the use of the method of FIG. 3 with respect to sinusoidal function.
Осуществление изобретенияThe implementation of the invention
Различные варианты осуществления настоящего изобретения описаны далее более подробно со ссылкой на сопроводительные чертежи. Однако настоящее изобретение может быть реализовано во многих других формах и не должно восприниматься как ограниченное какой-либо конкретной структурой или функцией, представленной в нижеследующем описании. Напротив, эти варианты осуществления предоставлены для того, чтобы сделать описание настоящего изобретения подробным и полным. Исходя из настоящего описания специалисту в данной области техники будет очевидно, что объем настоящего изобретения охватывает любой вариант осуществления настоящего изобретения, который раскрыт в данном документе, вне зависимости от того, реализован ли этот вариант осуществления независимо или совместно с любым другим вариантом осуществления настоящего изобретения. Например, способ и устройство, раскрытые в данном документе, могут быть реализованы на практике посредством использования любого числа вариантов осуществления, представленных в данном документе. Кроме того, должно быть понятно, что любой вариант осуществления настоящего изобретения может быть реализован с использованием одного или более этапов или элементов, представленных в приложенной формуле изобретения.Various embodiments of the present invention are described in more detail below with reference to the accompanying drawings. However, the present invention can be implemented in many other forms and should not be construed as being limited by any particular structure or function described in the following description. On the contrary, these embodiments are provided in order to make the description of the present invention detailed and complete. Based on the present description, it will be obvious to a person skilled in the art that the scope of the present invention encompasses any embodiment of the present invention that is disclosed herein, regardless of whether this embodiment is implemented independently or in conjunction with any other embodiment of the present invention. For example, the method and apparatus disclosed herein may be practiced by using any number of embodiments presented herein. In addition, it should be understood that any embodiment of the present invention can be implemented using one or more of the steps or elements presented in the attached claims.
Слово «примерный» используется в данном документе в значении «используемый в качестве примера или иллюстрации». Любой вариант осуществления, описанный здесь как «примерный», необязательно должен восприниматься как предпочтительный или имеющий преимущество над другими вариантами осуществления.The word “exemplary” is used herein to mean “used as an example or illustration”. Any embodiment described herein as “exemplary” need not be construed as preferred or having an advantage over other embodiments.
Используемый в данном документе термин «нейронная сеть» относится к вычислительной модели, основанной на структуре и функциях биологических нейронных сетей. Такие искусственные нейронные сети хорошо известны в уровне техники и используются для оценки или аппроксимации функций, которые могут зависеть от большого числа входных данных и, в общем, являются неизвестными. Основным свойством нейронных сетей является их способность к самообучению, благодаря которому они могут использоваться в задачах распознавания, прогнозирования и управления или в других целях. Одним типом нейронных сетей является мозжечковая модель суставного регулятора (или вкратце - CMAC), которая представляет собой систему ассоциативной памяти.As used herein, the term “neural network” refers to a computational model based on the structure and functions of biological neural networks. Such artificial neural networks are well known in the art and are used to evaluate or approximate functions that may depend on a large number of input data and, in general, are unknown. The main property of neural networks is their ability to self-learn, due to which they can be used in recognition, prediction and control problems or for other purposes. One type of neural network is the cerebellar model of the articular regulator (or, in short, CMAC), which is an associative memory system.
Принцип функционирования CMAC обычно используется в задачах управления и распознавания. В отличие от этого, согласно настоящему изобретению, CMAC применяется для обеспечения сжатия объемных данных. Эта идея пришла в головы авторов при реализации алгоритмов реконструкции 3D данных, учитывая, что традиционное воксельное представление является слишком затратным по памяти, а использование деревьев октантов увеличивает вычислительные затраты и усложняет сами алгоритмы (так что эти алгоритмы не могут функционировать в режиме реального времени). Подход, предложенный в данном документе, является эффективным способом сжатия данных (не только двух- или трехмерных данных, но также данных бóльших размерностей) посредством использования малых вычислительных затрат по сравнению со способами, известными из уровня техники.The principle of operation of CMAC is commonly used in control and recognition tasks. In contrast, according to the present invention, CMAC is used to provide bulk data compression. This idea came to the heads of the authors when implementing 3D data reconstruction algorithms, given that the traditional voxel representation is too expensive in memory, and the use of octant trees increases the computational cost and complicates the algorithms themselves (so these algorithms cannot function in real time). The approach proposed in this document is an effective way to compress data (not only two- or three-dimensional data, but also data of higher dimensions) by using small computational costs compared to methods known from the prior art.
Фиг. 1 иллюстрирует устройство 100 сжатия данных, использующее подход на основе нейронной сети, в соответствии с одним примером варианта осуществления настоящего изобретения. Как показано, устройство 100 содержит контроллер 102 памяти, ассоциативную память 104, сумматор 106, вычитатель 108 и переключатель 110. Устройство 100 может функционировать в двух режимах, а именно: режиме обучения и режиме вывода. Следует отметить, что каждый из контроллера 102, сумматора 106, вычитателя 108 и переключателя 110 может быть реализован в виде одного или более процессоров.FIG. 1 illustrates a
В действительности, режим обучения представляет собой режим записи массива данных в память 104, в то время как режим вывода представляет собой режим считывания массива данных из памяти 104. Такие режимы являются общепринятыми при реализации алгоритмов реконструкции 3D данных.In fact, the training mode is the mode of writing the data array to the
Перед тем как устройство 100 начинает сжатие данных, пространство входных данных (например, являющееся трехмерным) разделяется на множество точек или элементов данных любых подходящих форм. Каждый элемент данных имеет координатный вектор X[n], задающий его положение в пространстве входных данных, и вектор V[n] объемных значений, определяющий его объемные значения в пространстве входных данных. В частности, объемные значения элементов данных представляют собой значения, характеризующие свойства элементов данных в пространстве входных данных. В качестве примера, эти свойства элементов данных могут включать в себя цвет, степень непрозрачности или их комбинацию.Before the
В режиме обучения, когда элементы данных записываются в память 104, переключатель 110 находится в включенном состоянии. В этом случае контроллер 102 памяти вычисляет подходящие адреса памяти в памяти 104, используя вектора X[n] элементов данных. Другими словами, упомянутая адресация означает, что контроллер 102 памяти связывает элементы данных с соответствующими ячейками памяти 104. Каждая из ячеек памяти 104 хранит весовое значение. Далее память 104 выводит все весовые значения, которые соответствуют ячейкам, связанным с элементами данных. Сумматор 106 суммирует весовые значения для формирования весового вектора W[n] и предоставляет весовой вектор вычитателю 108. Вычитатель 108 вычитает весовой вектор из вектора V[n] для формирования сигнала ε[n] ошибки. Сигнал ошибки используется для регулировки требуемых весовых значений в ячейках памяти 104.In the training mode, when data elements are recorded in the
В частности, контроллер 102 памяти вычисляет адреса ячеек в памяти 104, используя базисный вектор A[n], получаемый с помощью следующей формулы:In particular, the
(1) (one)
где ak[n] - k-ый элемент базисного вектора A[n] для n-го момента времени, µl - l-ое размерное значение ассоциативной памяти, N - размерность вектора X[n], ρ - параметр нейронной сети, xj[n] - j-ый элемент вектора X[n], , Mi - размерное значение вдоль i-ой оси.where a k [n] is the kth element of the basis vector A [n] for the n-th moment of time, µ l is the l-th dimension value of associative memory, N is the dimension of the vector X [n], ρ is the parameter of the neural network, x j [n] is the jth element of the vector X [n], , M i - dimensional value along the i-th axis.
Кроме того, сигнал ошибки регулирует требуемые весовые значения ячеек в памяти 104 в соответствии с формулой:In addition, the error signal adjusts the required weight values of the cells in the
(2) (2)
В режиме вывода, когда элементы данных считываются из памяти 104, переключатель 110 находится в выключенном состоянии. В этом случае, в отличие от режима обучения, нет сигнала ошибки, передаваемого посредством обратной связи и регулирующего весовые коэффициенты ячеек в памяти 104, и сумма весовых значений, т.е. вектор W[n], используется для вычисления вектора сжатых объемных значений, который затем выводится.In the output mode, when data elements are read from the
Более конкретно, вектор X[n] поступает на вход контроллера 102 памяти, в котором выходной вектор A[n] вычисляется с использованием формулы (1). Используя вектор A[n], осуществляют связывание элементов данных с ячейками памяти 104. Память 104 выводит весовые значения ячеек сумматору 103. Сумматор 103 суммирует все весовые значения для формирования вектора W[n]. После этого сумматор 103 использует вектор W[n] для формирования вектора сжатых объемных значений следующим образом:More specifically, the vector X [n] is input to the
(3) (3)
Фиг. 2 поясняет объемное представление памяти 104 на Фиг. 1 для примера трехмерных объемных данных. Если размерные значения для осей x, y, z равны Mx, My, Mz соответственно, тогда общий объем памяти равен Mx×My×Mz. Согласно подходу CMAC, соответствующая ассоциативная память может быть представлена в виде набора ρ трехмерных объемов с размерными значениями для осей x, y, z, равными µx=Mx/ρ, µy=My/ρ, µz=Mz/ρ соответственно. При этом общий объем ассоциативной памяти равен µx×µy×µz×ρ=(Mx/ρ)×(My/ρ)×(Mz/ρ)×ρ. Следовательно, для трехмерного случая мы имеем выигрыш по памяти в виде ρ2. В общем случае для k-размерных объемных данных и параметра ρ нейронной сети, выигрыш по памяти равен ρk-1.FIG. 2 illustrates a three-dimensional representation of
Фиг. 3 иллюстрирует способ 300 сжатия данных, использующий подход на основе нейронной сети, в соответствии с одним примером варианта осуществления настоящего изобретения. Способ 300 выполняется устройством 100, показанным на Фиг. 1. Способ содержит следующие этапы:FIG. 3 illustrates a
Этап 302: Пространство входных данных разделяется на элементы данных, как пояснено выше, т.е. каждый элемент данных обеспечивается векторами X[n] и V[n]. Такое разделение может выполняться одним или более внешними процессорами. В некоторых вариантах осуществления эти процессоры могут быть интегрированы в устройство 100.Step 302: The input data space is divided into data elements, as explained above, i.e. each data element is provided by the vectors X [n] and V [n]. Such separation may be performed by one or more external processors. In some embodiments, these processors may be integrated into
Этап 304: Здесь, используя координатные векторы X[n], с помощью формулы (1) определяют адреса ячеек в ассоциативной памяти 104, с которыми должны быть связаны элементы данных. Step 304: Here, using the coordinate vectors X [n], using the formula (1) determine the addresses of the cells in the
Этап 306: Связывают элементы данных с ячейками в ассоциативной памяти 104 на основе определенных адресов.Step 306: Associate data items with cells in
Этап 308: Все весовые значения ячеек, связанных с элементами данных, суммируются сумматором 106 для получения весового вектора W[n].Step 308: All weight values of cells associated with the data elements are summed by
Этап 310: Весовой вектор W[n] вычитают из вектора V[n] объемных значений для формирования сигнала ε[n] ошибки.Step 310: The weight vector W [n] is subtracted from the volume vector V [n] to generate an error signal ε [n].
Этап 312: Здесь проверяют, является ли сигнал ошибки ненулевым. Если сигнал ошибки является ненулевым, способ переходит к этапу 314, и к этапу 316 в противном случае.Step 312: Here, it is checked whether the error signal is non-zero. If the error signal is nonzero, the method proceeds to step 314, and to step 316 otherwise.
Этап 314: Определяют, что сигнал ошибки является ненулевым. Тогда сигнал ошибки предоставляют ассоциативной памяти 104 для регулировки весовых значений ячеек, связанных с элементами данных, на основе сигнала ошибки (в соответствии с формулой (2)).Step 314: Determine that the error signal is non-zero. Then the error signal is provided to the
Этап 316: Определяют, что сигнал ошибки является нулевым. Тогда вычисляют вектор сжатых объемных значений с помощью сумматора 106, используя формулу (3), и выводят его.Step 316: Determine that the error signal is zero. Then, the vector of compressed volume values is calculated using the
Следует отметить, что сигнал ошибки возникает, т.е. ε[n] не равно нулю, в случае каких-либо изменений вектора X[n]. Если вектор X[n] не изменяется (что соответствует неизмененному вектору V[n]), сигнал ошибки отсутствует, и режим обучения не требуется. Такие изменения могут включать в себя смену положения элемента данных, которая приводит к новому вектору X[n] и, следовательно, новому вектору V[n].It should be noted that an error signal occurs, i.e. ε [n] is not equal to zero, in case of any changes in the vector X [n]. If the vector X [n] does not change (which corresponds to the unchanged vector V [n]), there is no error signal, and the training mode is not required. Such changes may include a change in the position of the data element, which leads to a new vector X [n] and, therefore, a new vector V [n].
Фиг. 4а-е показывают результаты сжатия данных, например, для синусоидальной функции в соответствии со способом 300, выполняемым в устройстве 100. В частности, пример сжатия двумерных данных проиллюстрирован для случая параметра нейронной сети ρ=4. В действительности, имеется четырехслойная нейронная сеть (k - номер слоя). Когда k меняется с 1 до 4, можно видеть, как сжатые данные сохраняются или отображаются в каждом из слоев (Фиг. 4а-d). Каждый из слоев соответствует соответствующей одной или более ячейкам в памяти 104. Суммируя сжатые данные во всех слоях, можно получить функцию, близкую к исходной синусоидальной функции, показанной на Фиг.4е.FIG. 4a-e show the results of data compression, for example, for a sinusoidal function in accordance with the
Настоящее изобретение может использоваться для сохранения и сжатия данных в различных видах систем компьютерной графики (например, реконструкции 3D модели) или машинного распознавания образов (например, одновременной локализации и отображения), особенно там, где размер физической памяти ограничен вследствие требований к конструкции (например, мобильная платформа или приложение на основе GPU).The present invention can be used to store and compress data in various types of computer graphics systems (e.g., reconstructing a 3D model) or machine pattern recognition (e.g., simultaneous localization and display), especially where physical memory is limited due to design requirements (e.g., GPU-based mobile platform or application).
Хотя в данном документе были раскрыты примерные варианты осуществления настоящего изобретения, следует отметить, что в этих вариантах осуществления настоящего изобретения могут быть выполнены любые различные изменения и модификации без отступления от объема правовой охраны, который определяется приложенной формулой изобретения. В приложенной формуле изобретения упоминание этапов или элементов в единственном числе не исключает наличия множества таких этапов или элементов, если в явном виде не указано иное.Although exemplary embodiments of the present invention have been disclosed herein, it should be noted that in these embodiments of the present invention, any various changes and modifications may be made without departing from the scope of legal protection that is determined by the appended claims. In the appended claims, the mention of steps or elements in the singular does not exclude the presence of a plurality of such steps or elements, unless explicitly stated otherwise.
Claims (6)
разделяют пространство входных данных на множество элементов данных, причем каждый элемент данных характеризуется координатным вектором, задающим координаты элемента данных в пространстве входных данных, и вектором объемных значений, определяющим объемные значения элемента данных, представляющие собой значения, характеризующие свойства элементов данных в пространстве входных данных;
используя координатные векторы, определяют адреса ячеек в ассоциативной памяти, с которыми должны быть связаны элементы данных, причем каждая из ячеек имеет весовое значение;
связывают элементы данных с ячейками в ассоциативной памяти на основе определенных адресов;
аккумулируют все весовые значения ячеек, связанных с элементами данных, для получения весового вектора;
вычитают весовой вектор из вектора объемных значений для формирования сигнала ошибки; и
если сигнал ошибки является ненулевым, включают режим обучения, при котором весовые значения ячеек, связанных с элементами данных, регулируют на основе сигнала ошибки; или
если сигнал ошибки является нулевым, включают режим вывода, при котором вектор сжатых объемных значений вычисляют с использованием весового вектора и затем выводят.1. A method of compressing data using an approach based on a neural network, the approach based on a neural network consisting of a training mode and an output mode, the method comprising the steps of:
dividing the input data space into a plurality of data elements, each data element having a coordinate vector defining the coordinates of the data element in the input data space and a volume vector defining the volume values of the data element, which are values characterizing the properties of data elements in the input data space;
using coordinate vectors, determine the addresses of cells in associative memory with which data elements should be associated, each cell having a weight value;
associate data elements with cells in associative memory based on specific addresses;
accumulate all weight values of cells associated with data elements to obtain a weight vector;
subtracting the weight vector from the vector of volume values to generate an error signal; and
if the error signal is nonzero, a training mode is activated in which the weight values of the cells associated with the data elements are adjusted based on the error signal; or
if the error signal is zero, an output mode is activated in which a vector of compressed volume values is calculated using a weight vector and then output.
определяют адреса ячеек в ассоциативной памяти посредством использования базисного вектора А[n], полученного с помощью следующей формулы:
где ak[n] - k-й элемент базисного вектора A[n] для n-го момента времени, µl - l-е размерное значение ассоциативной памяти, N - размерность координатного вектора X[n], ρ - параметр нейронной сети, xj[n] - j-й элемент координатного вектора X[n],
, Mi - размерное значение вдоль i-й оси.2. The method of claim 1, wherein said determining step comprises the step of:
determine the addresses of cells in associative memory by using the basis vector A [n] obtained using the following formula:
where a k [n] is the kth element of the basis vector A [n] for the n-th moment of time, µ l is the l-th dimension value of associative memory, N is the dimension of the coordinate vector X [n], ρ is the parameter of the neural network , x j [n] is the jth element of the coordinate vector X [n],
, M i - dimensional value along the i-th axis.
,
где W[n] - весовой вектор для n-го момента времени, X[n] - координатный вектор для n-го момента времени, V[n] - вектор объемных значений для n-го момента времени, A - базисный вектор.3. The method according to claim 1, in which the weight values of the cells associated with the data elements are adjusted using the following formula:
,
where W [n] is the weight vector for the nth moment of time, X [n] is the coordinate vector for the nth moment of time, V [n] is the vector of volume values for the nth moment of time, A is the basis vector.
,
где wi[n-1] - i-й элемент весового вектора W[n] для (n-1)-го момента времени.4. The method of claim 1, wherein the vector compressed volume values are calculated using the following formula:
,
where w i [n-1] is the ith element of the weight vector W [n] for the (n-1) th moment in time.
ассоциативную память, состоящую из ячеек, причем каждая из ячеек имеет весовое значение; и
один или более процессоров, выполненных с возможностью:
разделения пространства входных данных на множество элементов данных, причем каждый элемент данных характеризуется координатным вектором, задающим координаты элемента данных в пространстве входных данных, и вектором объемных значений, определяющим объемные значения элемента данных, представляющие собой значения, характеризующие свойства элементов данных в пространстве входных данных;
используя координатные векторы, определения адресов ячеек в ассоциативной памяти, с которыми должны быть связаны элементы данных;
связывания элементов данных с ячейками в ассоциативной памяти на основе определенных адресов;
аккумулирования всех весовых значений ячеек, связанных с элементами данных, для получения весового вектора;
вычитания весового вектора из вектора объемных значений для формирования сигнала ошибки; и
если сигнал ошибки является ненулевым, включения режима обучения, при котором весовые значения ячеек, связанных с элементами данных, регулируются на основе сигнала ошибки; или
если сигнал ошибки является нулевым, включения режима вывода, при котором вектор сжатых объемных значений вычисляется с использованием весового вектора и затем выводится. 6. A data compression device using an approach based on a neural network, the approach based on a neural network consisting of a training mode and an output mode, the device comprising:
associative memory, consisting of cells, and each of the cells has a weight value; and
one or more processors configured to:
dividing the input data space into a plurality of data elements, each data element having a coordinate vector defining the coordinates of the data element in the input data space and a volume vector defining the volume values of the data element, which are values characterizing the properties of data elements in the input data space;
using coordinate vectors, determining the addresses of cells in associative memory with which data elements should be associated;
associating data elements with cells in associative memory based on specific addresses;
accumulation of all weight values of cells associated with data elements to obtain a weight vector;
subtracting the weight vector from the vector of volume values to form an error signal; and
if the error signal is non-zero, enable the training mode, in which the weight values of the cells associated with the data elements are adjusted based on the error signal; or
if the error signal is zero, enable the output mode, in which the vector of compressed volume values is calculated using the weight vector and then output.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2014147972/08A RU2595598C2 (en) | 2014-11-27 | 2014-11-27 | Method and device for compression using approach based on neural network |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2014147972/08A RU2595598C2 (en) | 2014-11-27 | 2014-11-27 | Method and device for compression using approach based on neural network |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2014147972A RU2014147972A (en) | 2016-06-20 |
RU2595598C2 true RU2595598C2 (en) | 2016-08-27 |
Family
ID=56131829
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2014147972/08A RU2595598C2 (en) | 2014-11-27 | 2014-11-27 | Method and device for compression using approach based on neural network |
Country Status (1)
Country | Link |
---|---|
RU (1) | RU2595598C2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210265044A1 (en) * | 2020-02-20 | 2021-08-26 | Align Technology, Inc. | Medical imaging data compression and extraction on client side |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10276134B2 (en) | 2017-03-22 | 2019-04-30 | International Business Machines Corporation | Decision-based data compression by means of deep learning technologies |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6885320B2 (en) * | 2003-01-21 | 2005-04-26 | Samsung Elecetronics Co., Ltd. | Apparatus and method for selecting length of variable length coding bit stream using neural network |
RU2282888C2 (en) * | 2001-09-26 | 2006-08-27 | Интерэкт Дивайсиз, Инк. | System and method for exchanging signals of audio-visual information |
-
2014
- 2014-11-27 RU RU2014147972/08A patent/RU2595598C2/en active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2282888C2 (en) * | 2001-09-26 | 2006-08-27 | Интерэкт Дивайсиз, Инк. | System and method for exchanging signals of audio-visual information |
US6885320B2 (en) * | 2003-01-21 | 2005-04-26 | Samsung Elecetronics Co., Ltd. | Apparatus and method for selecting length of variable length coding bit stream using neural network |
Non-Patent Citations (1)
Title |
---|
Э. Д. АВЕДЬЯН и др. "Ассоциативная нейронная сеть СМАС и ее модификации в задаче распознавания образов", Информационные технологии, N 7, 2011, с. 63-71. * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210265044A1 (en) * | 2020-02-20 | 2021-08-26 | Align Technology, Inc. | Medical imaging data compression and extraction on client side |
US12125581B2 (en) * | 2020-02-20 | 2024-10-22 | Align Technology, Inc. | Medical imaging data compression and extraction on client side |
Also Published As
Publication number | Publication date |
---|---|
RU2014147972A (en) | 2016-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Martel et al. | Acorn: Adaptive coordinate networks for neural scene representation | |
Zeng et al. | 3dcontextnet: Kd tree guided hierarchical learning of point clouds using local and global contextual cues | |
Zhang et al. | Rotation invariant convolutions for 3d point clouds deep learning | |
Huang et al. | Recurrent slice networks for 3d segmentation of point clouds | |
Ma et al. | Binary volumetric convolutional neural networks for 3-D object recognition | |
Liu et al. | Quasi-interpolation for surface reconstruction from scattered data with radial basis function | |
CN108960230A (en) | Lightweight target identification method and device based on rotation rectangle frame | |
Wang et al. | A novel GCN-based point cloud classification model robust to pose variances | |
EP4322056A1 (en) | Model training method and apparatus | |
Arshad et al. | Dprnet: Deep 3d point based residual network for semantic segmentation and classification of 3d point clouds | |
RU2674326C2 (en) | Method of formation of neural network architecture for classification of object taken in cloud of points, method of its application for teaching neural network and searching semantically alike clouds of points | |
US11948069B2 (en) | Compression of neural network activation data | |
US20230229917A1 (en) | Hybrid multipy-accumulation operation with compressed weights | |
Wald et al. | Ray tracing structured AMR data using ExaBricks | |
CN113807330A (en) | Three-dimensional sight estimation method and device for resource-constrained scene | |
Chandrasekhar et al. | Compression of deep neural networks for image instance retrieval | |
RU2595598C2 (en) | Method and device for compression using approach based on neural network | |
Xu et al. | Classify 3D voxel based point-cloud using convolutional neural network on a neural compute stick | |
Xu et al. | 1.2 watt classification of 3D voxel based point-clouds using a CNN on a neural compute stick | |
Vedder et al. | Sparse pointpillars: Maintaining and exploiting input sparsity to improve runtime on embedded systems | |
Ghodrati et al. | Nonrigid 3D shape retrieval using deep auto-encoders | |
Maisano et al. | Reducing complexity of 3D indoor object detection | |
Pont et al. | Wasserstein auto-encoders of merge trees (and persistence diagrams) | |
Hussain et al. | Lcrm: Layer-wise complexity reduction method for cnn model optimization on end devices | |
KR20150002157A (en) | Content-based 3d model retrieval method using a single depth image, 3d model retrieval server for performing the methods and computer readable recording medium thereof |