СПОСОБ И УСТРОЙСТВО ДЛЯ ШИФРОВАНИЯ МОДЕЛИ НЕЙРОННОЙ СЕТИ И НОСИТЕЛЬ ДАННЫХ
METHOD AND APPARATUS FOR ENCRYPTING A NEURAL NETWORK MODEL AND A DATA MEDIUM

Перекрестная ссылка на родственные заявки
[0001] Данная заявка основана на китайской заявке №201910735898.X, поданной 9 августа 2019 года, и испрашивает приоритет по этой заявке. Содержание указанной китайской заявки полностью включено в настоящий документ посредством ссылки.
Область техники, к которой относится изобретение
[0002] Настоящее изобретение относится к обработке информации, в частности - к способу и устройству для шифрования модели нейронной сети и носителю данных.
Уровень техники
[0003] Модель нейронной сети является математической моделью, моделирующей реальную нейронную сеть человека, и может широко применяться в таких областях, как распознавание систем, идентификация режимов, искусственный интеллект и т.д. По мере продолжения развития технологии нейронных сетей, модель нейронной сети была применена к продуктам приложений (АРР) для различных видов пользовательских устройств (UE). Применение модели нейронной сети часто связано с проблемой безопасности. Могут иметься попытки раскрыть информацию о модели, когда модель нейронной сети развернута на стороне UE. Поэтому основной темой в применении модели нейронной сети является поиск решения для шифрования модели нейронной сети.
Сущность изобретения
[0004] Варианты осуществления, раскрытые в настоящем документе, обеспечивают способ и устройство для шифрования модели нейронной сети и носитель данных.
[0005] Согласно первому аспекту вариантов осуществления, раскрытых в настоящем документе, способ шифрования модели нейронной сети включает в себя следующее:
[0006] получают зашифрованный файл модели путем шифрования по меньшей мере части информации о модели в исходном файле модели, описывающем модель целевой нейронной сети;
[0007] согласно зашифрованному файлу модели генерируют программный код модели, описывающий модель целевой нейронной сети; и
[0008] на основании запроса, отправленного пользовательским устройством (UE), отправляют пользовательскому устройству (UE) установочный пакет для установки приложения (АРР), причем данный установочный пакет содержит программный код модели.
[0009] Информация о модели может включать в себя информацию об узле для каждого узла в модели целевой нейронной сети и глобальный параметр модели целевой нейронной сети.
[0010] Информация об узле может включать в себя идентификатор узла для каждого узла и параметр узла для каждого узла.
[0011] Параметр узла может включать в себя по меньшей мере одно из следующего: весовой параметр каждого узла, параметр ввода каждого узла, параметр вывода каждого узла, или рабочий параметр каждого узла.
[0012] Генерирование, согласно зашифрованному файлу модели, программного кода модели, описывающего модель целевой нейронной сети, может включать в себя следующее:
[0013] выполняют построение обобщенного класса модели, связанного с моделью целевой нейронной сети, и по меньшей мере одного обобщенного класса данных, связанного с информацией о модели, содержащейся в модели целевой нейронной сети;
[0014] в соответствии с зашифрованным файлом модели создают объект модели, связанный с моделью целевой нейронной сети, путем вызова функции построения модели, связанной с обобщенным классом модели;
[0015] в соответствии с зашифрованным файлом модели создают объект данных, связанный с информацией о модели, путем вызова по меньшей мере одной функции построения данных, связанной по меньшей мере с одним обобщенным классом данных; и
[0016] в соответствии с объектом модели и объектом данных генерируют программный код модели, описывающий модель целевой нейронной сети,
[0017] Способ может дополнительно включать в себя следующее:
[0018] генерируют файл библиотеки модели в соответствии с программным кодом модели; и
[0019] генерируют АРР, обеспечивающее выполнение модели целевой нейронной сети, путем связывания файла библиотеки моделей с исполняемым файлом.
[0020] Получение зашифрованного файла модели путем шифрования по меньшей мере части информации о модели в исходном файле модели, описывающем модель целевой нейронной сети, может включать в себя следующее:
[0021] получают зашифрованный файл модели путем выполнения операции преобразования по меньшей мере части информации о модели в соответствии с заданной хэш-функцией.
[0022] Согласно второму аспекту вариантов осуществления настоящего изобретения, устройство для шифрования модели нейронной сети включает в себя модуль шифрования, модуль генерирования кода и модуль отправки.
[0023] Модуль шифрования выполнен с возможностью получения зашифрованного файла модели путем шифрования по меньшей мере части информации о модели в исходном файле модели, описывающем модель целевой нейронной сети.
[0024] Модуль генерирования кода выполнен с возможностью генерирования, согласно зашифрованному файлу модели, программного кода модели, описывающего модель целевой нейронной сети.
[0025] Модуль отправки выполнен с возможностью отправки пользовательскому устройству (UE), на основании запроса, отправленного указанным UE, установочного пакета для установки приложения (АРР), причем указанный установочный пакет содержит программный код модели.
[0026] Информация о модели может включать в себя информацию об узле для каждого узла в модели целевой нейронной сети и глобальный параметр модели целевой нейронной сети.
[0027] Информация об узле может включать в себя идентификатор узла для каждого узла и параметр узла для каждого узла.
[0028] Параметр узла может включать в себя по меньшей мере одно из следующего: весовой параметр каждого узла, параметр ввода каждого узла, параметр вывода каждого узла, или рабочий параметр каждого узла.
[0029] Модуль генерирования кода может включать в себя субмодуль построения, субмодуль создания объекта модели, субмодуль создания объекта данных и субмодуль генерирования.
[0030] Субмодуль построения может быть выполнен с возможностью построения обобщенного класса модели, связанного с моделью целевой нейронной сети, и по меньшей мере одного обобщенного класса данных, связанного с информацией о модели, содержащейся в модели целевой нейронной сети.
[0031] Субмодуль создания объекта модели может быть выполнен с возможностью создания, согласно зашифрованному файлу модели, объекта модели, связанного с моделью целевой нейронной сети, путем вызова функции построения модели, связанной с обобщенным классом модели.
[0032] Субмодуль создания объекта данных может быть выполнен с возможностью создания, в соответствии с зашифрованным файлом модели, объекта данных, связанного с информацией о модели, путем вызова по меньшей мере одной функции построения данных, связанной по меньшей мере с одним обобщенным классом данных.
[0033] Субмодуль генерирования может быть выполнен с возможностью генерирования, в соответствии с объектом модели и объектом данных, программного кода модели, описывающего модель целевой нейронной сети.
[0034] Устройство может дополнительно включать в себя модуль генерирования библиотеки и модуль генерирования АРР.
[0035] Модуль генерирования библиотеки может быть выполнен с возможностью генерирования файла библиотеки модели в соответствии с программным кодом модели.
[0036] Модуль генерирования АРР может быть выполнен с возможностью генерирования АРР, обеспечивающего выполнение модели целевой нейронной сети путем связывания файла библиотеки моделей с исполняемым файлом.
[0037] Модуль шифрования может включать в себя субмодуль преобразования.
[0038] Субмодуль преобразования может быть выполнен с возможностью получения зашифрованного файла модели путем выполнения операции преобразования по меньшей мере части информации о модели в соответствии с заданной хэш-функцией.
[0039] Согласно третьему аспекту вариантов осуществления в данном документе, устройство для шифрования модели нейронной сети включает в себя по меньшей мере процессор и память.
[0040] В памяти хранится инструкция, исполняемая процессором.
[0041] При выполнении процессором инструкция реализует по меньшей мере часть любого вышеупомянутого способа.
[0042] В соответствии с четвертым аспектом вариантов осуществления настоящего изобретения, долговременный машиночитаемый носитель данных содержит сохраненные на нем исполняемые компьютером инструкции, которые при выполнении процессором, обеспечивают реализацию процессором по меньшей мере части любого вышеупомянутого способа.
[0043] Техническое решение, обеспеченное в настоящем документе, имеет следующие положительные результаты. На стороне сервера часть информации о модели в исходном файле модели нейронной сети может быть зашифрована. Зашифрованный файл модели может быть преобразован в программный код модели, описывающий нейронную сеть. Программный код модели может быть отправлен на сторону UE. Таким образом, при отправке установочного пакета для установки АРР в UE, сервер может не отправлять файл исходной модели (например, файл в бинарном формате) на UE, что повышает эффективность передачи. Кроме того, благодаря преобразованию зашифрованного файла модели в программный код модели становится значительно сложнее взломать зашифрованный текст, что обеспечивает безопасность всей модели. С другой стороны, когда нейронная сеть развернута в автономном режиме на стороне UE, исходный файл модели может не нуждаться в его сохранении, что экономит место для сохранения, лучше удовлетворяя потребность в автономном развертывании на стороне UE. Кроме того, информацию о модели нейронной сети можно получить, просто запустив программный код модели без необходимости вызывать исходный файл модели, внешний по отношению к АРР, что повышает эффективность получения информации в нейронной сети, тем самым повышая общую эффективность работы АРР. Кроме того, сервер может не отправлять ключ на сторону UE, что повышает безопасность передачи, обеспечивая безопасность информации, внутренней для модели. Приведенное выше общее описание и пояснения ниже являются только примерными и пояснительными и не ограничивают раскрытие объекта изобретения.
Краткое описание чертежей
[0044] В настоящем документе чертежи включены в раскрытие объекта изобретения, составляют часть раскрытия объекта изобретения, иллюстрируют по меньшей мере один вариант осуществления в соответствии с раскрытием объекта изобретения и вместе с раскрытием объекта изобретения служат для объяснения принципа объекта изобретения.
[0045] На фиг. 1 показана блок-схема способа шифрования модели нейронной сети в соответствии с примерным вариантом осуществления.
[0046] На фиг. 2 показана схема принципа шифрования модели нейронной сети в соответствии с примерным вариантом осуществления,
[0047] На фиг. 3 показана схема структуры устройства для шифрования модели нейронной сети в соответствии с примерным вариантом осуществления.
[0048] На фиг. 4 показана структурная схема физической структуры устройства для шифрования модели нейронной сети в соответствии с примерным вариантом осуществления.
[0049] На фиг. 5 показана блок-схема физической структуры UE согласно примерному варианту осуществления.
Подробное раскрытие изобретения
[0050] В общем, модель нейронной сети может быть развернута в двух режимах. Одним из них является развертывание модели нейронной сети на сервере для предоставления онлайн-сервиса через сеть. Другой заключается в развертывании модели нейронной сети на стороне UE, включающей в себя интеллектуальное UE, такое как мобильный телефон, для выполнения модели в автономном режиме с использованием ускорителя на стороне UE. Когда модель развернута на стороне UE, вся информация о модели может быть сохранена в файле модели. Информация о модели может быть получена напрямую через файл модели, что ведет к снижению безопасности.
[0051] Модель нейронной сети может быть зашифрована посредством по меньшей мере одного из симметричного шифрования или асимметричного шифрования. Модель нейронной сети может быть зашифрована в двух симметричных режимах шифрования, то есть шифрованием с потоковым шифром и шифрованием с блочным шифром. При шифровании с потоковым шифром, шифрование может происходить по одной букве или цифре. При шифровании с блочным шифром блок данных, включающий в себя множество битов, может быть зашифрован в один компонент. Множество блоков данных можно заполнить открытым текстом. Блочное шифрование может включать в себя алгоритм стандарта шифрования данных (DES, от англ. Data Encryption Standard), алгоритм тройной DES (Triple DESTDES), алгоритм улучшенного стандарта шифрования (AES, от англ. Advanced Encryption Standard), алгоритм Biowfish, международный алгоритм шифрования данных (IDEA, от англ. International Data Encryption Algorithm), алгоритм RC5, алгоритм RC6 и т.д.
[0052] Система асимметричного шифрования может использовать пару ключей. Пара ключей может включать в себя два ключа, то есть открытый ключ и закрытый ключ. Открытый ключ может распространяться широко. Закрытый ключ может быть известен только владельцу. Зашифрованный текст может быть зашифрован с использованием открытого ключа и дешифрован получателем с использованием личного ключа. Благодаря асимметричному шифрованию данные будут надежно зашифрованы и вряд ли могут быть взломаны напрямую, что приводит к высокой безопасности, пока защищен закрытый ключ. Например, асимметричное шифрование может включать в себя алгоритм шифрования RSA.
[0053] Ключ симметричного шифрования, а также закрытый ключ асимметричного шифрования, как упомянуто выше, будут храниться в коде на стороне UE, что создает потенциальную проблему для безопасности. Кроме того, асимметричное шифрование может потребовать сложного дешифрования, что приводит к низкой эффективности.
[0054] Примерные варианты осуществления (примеры которых проиллюстрированы на прилагаемых чертежах) подробно раскрыты ниже. Нижеследующее описание относится к прилагаемым чертежам, на которых одинаковые или похожие элементы на двух чертежах обозначены одинаковыми ссылочными позициями, если не указано иное. Реализации, раскрытые в нижеследующих примерных вариантах осуществления, не представляют все реализации в соответствии с раскрытием объекта изобретения. В настоящем документе они являются просто примерами устройства и способа в соответствии с определенными аспектами, которые изложены в прилагаемой формуле изобретения.
[0055] На фиг. 1 показана блок-схема способа шифрования модели нейронной сети в соответствии с примерным вариантом осуществления. Как показано на фиг. 1, способ включает в себя по меньшей мере одну следующую опцию.
[0056] На этапе S101 получают зашифрованный файл модели путем шифрования по меньшей мере части информации о модели в исходном файле модели. Исходный файл модели описывает модель целевой нейронной сети.
[0057] На этапе S102 генерируют программный код модели в соответствии с зашифрованным файлом модели. Программный код модели описывает модель целевой нейронной сети.
[0058] На этапе S103 отправляют установочный пакет для установки приложения (АРР) на пользовательское устройство (UE) на основании запроса, отправленного пользовательским устройством (UE). Установочный пакет включает в себя программный код модели.
[0059] Шифрование на этапах S101 и S102 может выполняться автономно сервером. После шифрования может быть сгенерирован установочный пакет для установки АРР, который включает в себя программный код модели, чтобы загружать и использовать UE. Когда запрос (включая, но не ограничиваясь этим, например, запрос на загрузку, запрос на обновление или тому подобное), отправленный посредством UE, будет принят, сервер может отправить установочный пакет для установки АРР на UE. UE может установить и запустить АРР для реализации функции модели целевой нейронной сети.
[0060] Зашифрованный файл модели может быть получен путем преобразования информации о модели в зашифрованную информацию о модели путем шифрования части или всей информации о модели в исходной модели нейронной сети с использованием алгоритма шифрования. Информация о модели может включать в себя информацию об узле для каждого узла в модели целевой нейронной сети. Информация о модели может включать в себя глобальный параметр всего файла модели. Информация об узле может включать в себя идентификатор узла для каждого узла, параметр узла для каждого узла и т.д. Параметром узла может быть информация, такая как вес узла, рабочий параметр каждого узла, параметр атрибута узла, ввод в узел, вывод из узла и т.д. Информация о вводе в узел и выводе из узла может отражать структуру модели нейронной сети.
[0061] Посредством шифрования по меньшей мере части информации о модели целевой нейронной сети, релевантная информация в модели может быть скрыта, во избежание полного раскрытия всей информации для всей модели, что улучшает характеристики безопасности модели.
[0063] Таким образом, за счет описания модели целевой нейронной сети с использованием кода, общий файл можно преобразовать в базовый код, что увеличивает сложность взлома файла. Кроме того, часть информации о модели целевой нейронной сети может быть зашифрована и затем преобразована в код, что усложняет взлом. Код может быть реализован с использованием различных языков программирования. Код может быть реализован с использованием различных объектно-ориентированных программных языков. Например, объектно-ориентированный программный язык может включать в себя, не ограничиваясь этим, С++, JAVA, С# и т.д.
[0064] На стороне сервера часть информации о модели в исходном файле модели нейронной сети может быть зашифрована. Зашифрованный файл модели может быть преобразован в программный код модели, описывающий нейронную сеть. Программный код модели может быть отправлен на сторону UE. Таким образом, при отправке установочного пакета для установки АРР на UE, сервер может не отправлять файл исходной модели (например, файла в бинарном формате) на UE, что повышает эффективность передачи. Кроме того, благодаря преобразованию зашифрованного файла модели в программный код модели, значительно усложняется взлом зашифрованного текста, что обеспечивает безопасность всей модели. С другой стороны, когда нейронная сеть развернута в автономном режиме на стороне UE, исходный файл модели может не нуждаться в сохранении, что экономит пространство хранения данных, лучше удовлетворяя потребность в автономном развертывании на стороне UE. Кроме того, информацию о модели нейронной сети можно получить, просто запустив программный код модели, без необходимости вызывать исходный файл модели, внешний по отношению к АРР, что повышает эффективность получения информации в нейронной сети, тем самым повышая общую эффективность работы АРР. Кроме того, сервер может не отправлять ключ на сторону UE, что повышает безопасность передачи, обеспечивая безопасность информации, внутренней для модели.
[0065] Зашифрованный файл модели может быть получен путем шифрования по меньшей мере части информации о модели в файле модели целевой нейронной сети в автономном режиме на стороне сервера. В соответствии с зашифрованным файлом модели может быть сгенерирован программный файл, содержащий код. В соответствии с программным файлом может быть создан установочный пакет.
[0066] Сервер может отправлять установочный пакет на UE по запросу UE.
[0067] UE может установить файл программы в соответствии с установочным пакетом.
[0068] UE может запускать программный файл для получения каждого параметра в модели нейронной сети.
[0069] Информация о модели может включать в себя информацию об узле для каждого узла в модели целевой нейронной сети. Информация о модели может включать в себя глобальный параметр модели целевой нейронной сети.
[0070] Информация об узле может включать в себя идентификатор узла для каждого узла, параметр узла для каждого узла и т.д.
[0071] Параметр узла может включать в себя по меньшей мере одно из следующего: весовой параметр каждого узла, параметр ввода каждого узла, параметр вывода каждого узла, рабочий параметр каждого узла и т.д.
[0072] Идентификатор узла может быть информацией для идентификации узла, такой как имя узла, нумерация узла и т.д. Во время шифрования информации о модели идентификатор узла можно зашифровать, скрывая информацию об идентификации узла, в результате чего информация о модели будет содержать зашифрованный идентификатор узла. Зашифрованный идентификатор узла может быть идентификатором узла, зашифрованным с использованием алгоритма шифрования.
[0073] Идентификатор узла может служить для указания узла, участвующего в операции в нейронной сети. Операция может быть сверткой, взвешиванием и т.д. рабочего узла в нейронной сети.
[0074] Шифрование может выполняться только на идентификаторе узла, который может быть зашифрован. Шифрование может выполняться на идентификаторе узла и/или параметре узла. Параметр узла может служить для представления отношения между узлом и функцией узла. Параметр узла может быть весовым параметром. Параметр узла может быть рабочим параметром. Операционный параметр может описывать рабочую функцию или атрибут узла. Параметр узла может быть параметром ввода/вывода (I/O) узла. Параметр ввода/вывода узла может отражать отношение межузлового соединения, а также структуру целевой нейронной сети. Таким образом, шифрование параметра узла может обеспечить безопасность информации, внутренней по отношению к модели целевой нейронной сети.
[0075] Шифрование может выполняться по глобальному параметру модели целевой нейронной сети. Глобальный параметр может описывать ввод в целевую нейронную сеть или вывод, функцию, атрибут, структуру, и т.п., целевой нейронной сети. Шифрование глобального параметра может улучшить безопасность информации, внутренней по отношению к модели целевой нейронной сети.
[0078] Информация о модели файла модели нейронной сети может быть зашифрована путем шифрования части или всей информации об узле, или путем шифрования информации, относящейся к части или всем глобальным параметрам. Зашифрованный файл модели может быть преобразован в программный код модели, описывающий нейронную сеть. Программный код модели должен быть отправлен на сторону UE. В практическом применении различная информация может быть зашифрована по мере необходимости. Поскольку не существует фиксированного требования в отношении того, какой контент должен быть зашифрован, эффективность шифрования повышается, что еще больше усложняет взлом зашифрованного текста.
[0077] На этапе S102 программный код модели, описывающий модель целевой нейронной сети, может быть сгенерирован согласно зашифрованному файлу модели следующим образом.
[0078] На этапе S11 может быть создан обобщенный класс модели, связанный с моделью целевой нейронной сети. Может быть создан по меньшей мере один обобщенный класс данных, связанный с информацией о модели, содержащейся в модели целевой нейронной сети.
[0079] На этапе S12 объект модели, связанный с моделью целевой нейронной сети, может быть создан в соответствии с зашифрованным файлом модели, путем вызова функции построения модели, связанной с обобщенным классом модели.
[0080] На этапе S13 объект данных, связанный с информацией о модели, может быть создан в соответствии с зашифрованным файлом модели путем вызова по меньшей мере одной функции построения данных, связанной по меньшей мере с одним обобщенным классом данных.
[0081] На этапе S14 программный код модели может быть сгенерирован в соответствии с объектом модели и объектом данных. Программный код модели может описывать модель целевой нейронной сети.
[0082] Обобщенный класс модели может описывать различные модели целевых нейронных сетей, В одном примере только один универсальный обобщенный класс модели может быть определен для описания всех моделей целевых нейронных сетей. В другом примере множество различных обобщенных классов модели могут быть определены в соответствии с классификацией модели целевой нейронной сети. Например, один обобщенный класс модели может быть отделен от множества моделей целевых нейронных сетей класса с определенным атрибутом, структурой или функцией и т.д. В другом примере обобщенный класс модели может иметь по меньшей мере один класс субмодели, выделенный одной или более моделям целевых нейронных сетей. Следовательно, на этапе S12, например, обобщенный класс модели и/или класс субмодели могут быть выбраны в соответствии с типом модели целевой нейронной сети, описанной посредством зашифрованного файла модели.
[0083] Вышеупомянутый обобщенный класс данных может включать в себя обобщенный класс данных узла, обобщенный класс глобальных данных и т.д. Обобщенный класс данных узла может включать в себя обобщенные классы данных узла, соответствующие различным типам информации об узле, соответственно. Обобщенный класс данных узла может включать в себя множество различных обобщенных классов данных узла. Каждый обобщенный класс данных узла может соответствовать одной записи в информации об узле, соответственно. В одном из примеров каждый обобщенный класс данных узла может соответствовать комбинации нескольких записей в информации об узле.
[0084] Иначе говоря, один или более параметров узла в информации об узле могут быть инкапсулированы в один обобщенный класс данных узла. Например, обобщенный класс данных узла может включать в себя, не ограничиваясь этим, класс ввода-вывода узла, класс рабочих параметров узла, класс атрибутов узла, класс весовых параметров узла и т.д.
[0085] Обобщенный класс глобальных данных может включать в себя только один класс глобальных параметров. Обобщенный класс глобальных данных может включать в себя множество различных классов глобальных параметров. Один или более глобальных параметров модели могут быть инкапсулированы в один обобщенный класс глобальных данных. Например, обобщенный класс глобальных данных может включать в себя, не ограничиваясь этим, класс ввода-вывода модели, класс функций модели, класс атрибутов модели, класс структур модели и т.д.
[0086] Объект модели, соответствующий модели целевой нейронной сети, может быть создан на основе вышеупомянутого обобщенного модельного класса. Множество объектов данных, соответствующих глобальному параметру и различным записям информации об узле в модели целевой нейронной сети, соответственно, могут быть созданы на основе обобщенного класса данных. Таким образом, может быть получен программный код модели, описывающий модель целевой нейронной сети. Исходный файл модели может в общем описывать структуру графа модели нейронной сети. Во время генерирования программного кода модели каждый зашифрованный файл модели может быть выражен как объект модели обобщенного класса модели. Множество объектов данных из множества обобщенных классов данных может быть создано путем считывания информации о структуре графа в зашифрованном файле модели. Например, в одном из примеров на этапе S13 может быть получена информация о параметре и структуре модели, записанная в зашифрованном файле модели. Затем может быть выбран по меньшей мере один обобщенный класс данных, соответствующий информации о параметре и структуре модели. Объект данных, связанный с информацией о параметре и структуре модели, может быть создан путем вызова по меньшей мере одной функции построения данных, связанной по меньшей мере с одним обобщенным классом данных.
[0087] Иначе говоря, структура графа исходного файла модели может быть преобразована с использованием кода для организации обобщенных классов разных уровней. Таким образом, информация в исходном файле модели может быть преобразована в различные объекты с помощью различных функций построения. Соответственно, когда нейронная сеть развернута в автономном режиме на стороне UE, исходный файл модели можно не сохранять, так что дополнительное пространство хранения данных не будет занято, что лучше удовлетворяет потребность в автономном развертывании на стороне UE. Кроме того, программный код модели может быть запущен, и информация о модели нейронной сети может быть получена с помощью различных объектов, построенных на основе обобщенных классов различных уровней, без необходимости вызова исходного файла модели, внешнего по отношению к АРР, что повышает эффективность в получении информации о нейронной сети, повышая общую эффективность работы АРР.
[0088] Способ может дополнительно включать в себя по меньшей мере одну следующую опцию.
[0089] На этапе S21 в соответствии с кодом может быть сгенерирован файл библиотеки модели.
[0090] На этапе S22, путем связывания файла библиотеки моделей с исполняемым файлом, может быть сгенерировано АРР, обеспечивающее выполнение модели целевой нейронной сети.
[0091] Файл библиотеки может быть расширенным файлом АРР, сгенерированного посредством кода. Расширенный файл АРР может быть неполным исполняемым файлом. Файл библиотеки может быть сгенерирован в соответствии с кодом, описывающим целевую нейронную сеть. Файл библиотеки может быть связан с исполняемым файлом, чтобы генерировать АРР, содержащее ссылку на файл библиотеки. Файл библиотеки может быть вызван и использован во время выполнения.
[0092] Файл библиотеки может быть статически подключаемой библиотекой. Файл библиотеки может быть динамически подключаемой библиотекой. И статически подключаемая библиотека, и динамически подключаемая библиотека могут быть расширенными файлами, независимыми от исполняемого файла АРР. Подключаемая библиотека может использоваться в одном приложении. Подключаемая библиотека может использоваться разными приложениями. После того, как статически подключаемая библиотека будет связана с исполняемым файлом, код приложения может напрямую содержать инструкцию в файле библиотеки, облегчая выполнение и быстрый запуск. С другой стороны, только интерфейс для вызова динамически подключаемой библиотеки связан с исполняемым файлом. Во время выполнения может потребоваться вызвать интерфейс для выполнения инструкции в файле библиотеки, хотя пространство хранения данных может быть сэкономлено. Следовательно, конкретный файл библиотеки, который следует использовать, может быть определен по мере необходимости и не лимитируется в настоящем документе.
[0093] Зашифрованная целевая нейронная сеть может быть преобразована в код. Файл библиотеки может быть сгенерирован. Может быть создано АРР, связанное с файлом библиотеки. Следовательно, эффективность безопасности целевой модели нейронной сети значительно повышается. При использовании данные целевой нейронной сети, которые соответствуют функции, могут быть получены только путем запуска АРР и вызова функции в файле библиотеки, облегчая использование. Модель может быть использована напрямую, без декодирования.
[0094] На этапе S101 зашифрованный файл модели может быть получен путем шифрования по меньшей мере части информации о модели в исходном файле модели целевой нейронной сети следующим образом.
[0095] На этапе S31 зашифрованный файл модели может быть получен путем выполнения операции преобразования информации о модели в соответствии с заданной хэш-функцией.
[0096] Информация о модели целевой нейронной сети может быть зашифрована с использованием алгоритма хеширования. Может быть получена информация о модели в целевой нейронной сети, которая может быть зашифрована, включая часть или всю информацию о модели. Такие параметры могут преобразовываться в соответствии с заданной хэш-функцией. Таким образом, операция хеширования может быть выполнена для информации модели, подлежащей шифрованию, чтобы получить зашифрованную информацию о модели. Затем может быть получен зашифрованный файл модели. При использовании алгоритма хеширования не требуется добавлять ключ к информации о модели нейронной сети. Информация о модели, как таковая, может быть преобразована. Следовательно, с этим решением не требуется ключ для дешифровки. Кроме того, с алгоритмом хеширования длина данных не будет чрезмерно увеличена, что приведет к сокращению потерь пространства хранения данных благодаря эффективному шифрованию,
[0097] Алгоритм хеширования может представлять собой алгоритм MD5 дайджеста сообщения. Шифрование может быть реализовано путем генерирования информации/дайджеста сообщения информации о модели. С помощью алгоритма MD5 надежность шифрования может быть улучшена таким образом, что каждая запись информации о модели может соответствовать уникальному дайджесту сообщения, то есть зашифрованной информации о модели, что позволяет избежать конфликта данных. В практическом применении при необходимости можно использовать другой алгоритм хеширования, такой как алгоритм защищенного хеширования sha-2, что не лимитируется в настоящем документе.
[0098] Приняв установочный пакет для установки АРР, UE может получить информацию о нейронной сети посредством по меньшей мере одной следующей опции следующим образом.
[0099] В опции 1 UE может принимать отправленный сервером установочный пакет для установки АРР, Установочный пакет может содержать программный код модели, связанный с моделью целевой нейронной сети.
[00100] Программный код модели может служить для описания зашифрованного файла модели для модели целевой нейронной сети. Зашифрованный файл модели может быть получен сервером путем шифрования по меньшей мере части информации о модели в исходном файле модели для модели целевой нейронной сети.
[00101] В опции 2 может быть запущено АРР. Информация о выводе модели целевой нейронной сети может быть получена на основе информации о вводе,
[00102] UE может запросить с сервера целевую модель нейронной сети. Затем UE может получить установочный пакет для установки АРР. Установочный пакет может содержать информацию, относящуюся к целевой модели нейронной сети. Модель нейронной сети может быть описана программным кодом модели. Следовательно, после того, как установочный пакет будет установлен на UE, для использования модели целевой нейронной сети UE может запустить АРР. Выполняя программный код модели, UE может реализовать функцию модели целевой нейронной сети.
[00103] После того, как приложению (АРР), а именно - модели целевой нейронной сети, была предоставлена указанная информация для ввода, модель целевой нейронной сети может исполнить код и получить выводимую информацию в соответствии с вводимой информацией. Таким образом, при использовании модели целевой нейронной сети, UE может получить результат путем непосредственного запуска АРР без дешифрования его зашифрованного файла модели. По сравнению с файлом модели нейронной сети, подлежащей перед использованием дешифровке с помощью ключа и т.п., решение согласно настоящему документу может значительно повысить эффективность использования. Кроме того, когда нейронная сеть развернута в автономном режиме на стороне UE, исходный файл модели можно не сохранять, что экономит пространство хранения данных, лучше удовлетворяя потребность в автономном развертывании на стороне UE. Кроме того, информацию о модели нейронной сети можно получить, просто запустив программный код модели без необходимости вызывать исходный файл модели, внешний по отношению к АРР, что повышает эффективность получения информации о нейронной сети, тем самым повышая общую эффективность работы АРР, Кроме того, сервер может не отправлять ключ на сторону UE, что повышает безопасность передачи, обеспечивая безопасность информации, внутренней для модели.
[00104] В одном из примеров, имя узла в модели может быть зашифровано с использованием алгоритма MD5. Затем зашифрованный файл модели может быть преобразован в код С++, который может быть скомпилирован в программу.
[00105] Например, как показано на фиг. 2, способ может включать в себя по меньшей мере одну следующую опцию.
[00108] На этапе S31 зашифрованный файл 11 модели может быть получен путем шифрования всей информации об узле в файле 10 модели нейронной сети с помощью MD5.
[00107] Модель нейронной сети может представлять собой структуру графа, состоящую из узлов. Каждый узел может иметь такую информацию, как имя, категория, ввод, вывод и т.д. Путем шифрования такой информации об узле с помощью MD5, информация о модели может быть скрыта, что не позволит кому-либо еще вывести структуру модели из такой информации, как журнал. В одном из примеров алгоритм MD5 шифрования может быть заменен аналогичным алгоритмом, таким как sha-2, sha-256 и т.д. Sha-256 может обеспечить более высокий уровень безопасности, но может увеличить размер файла модели. Специалист в данной области техники посредством UE может выбрать необходимый алгоритм шифрования, а также сцену приложения. Кроме того, отметим, что фиг. 2 является просто примером кода, принятого в настоящем документе. Раскрытие объекта изобретения этим не ограничено. Например, может быть также использован другой объектно-ориентированный программный язык, включая, но не ограничиваясь этим, JAVA, С# и т.д.
[00108] На этапе S32, код 12 С++ модели может быть получен путем преобразования зашифрованного файла 11 модели в код С++.
[00109] Зашифрованный файл модели может быть структурой графа в конкретном формате. При преобразовании зашифрованного файла модели в программный код модели структура графа файла модели может быть сформирована из ряда классов С++.
[00110] Например, каждый файл модели может быть объектом класса Net. Класс Net может включать в себя четыре класса, а именно: тензор (Tensor), оператор (Operator), аргумент (Argument), и информация ввода/вывода (Input/Output Information). Класс Tensor может определять информацию о весе в модели. Класс Operator может определять информацию об узле в модели. Класс Argument может определять информацию о параметрах в модели. Класс Input/Output information может определять информацию о данных ввода в модель, а также о данных вывода модели.
[00111] Информация в файле модели может быть преобразована в объект построения в С++ посредством такой функции, как CreateNet, CreateTensor, CreateOperator, CreateNetArg, Createinputlnfo и CreateOutputlnfo. Таким образом, файл модели может быть преобразован в код С++.
[00112] На этапе S33 код 12 С++ модели может быть скомпилирован и преобразован для генерирования файла 13 библиотеки, который может быть статической библиотекой модели (libmodel.a).
[00113] Код С++ модели может быть скомпилирован в статическую библиотеку. Статическая библиотека может быть связана с АРР. Все данные модели могут быть получены путем вызова функции CreateNet при запуске АРР.
[00114] Таким образом, безопасность и эффективность могут быть значительно улучшены Узел файла модели нейронной сети может быть зашифрован. Зашифрованный узел может быть преобразован в код С++. Код может быть связан с АРР. Следовательно, можно значительно усложнить взлом модели, что обеспечивает эффективную защиту данных и информации модели. Модель, зашифрованная таким образом, может не нуждаться в дешифровке во время выполнения, что существенно повышает эффективность.
[00115] Посредством этого решения может хорошо удовлетворяться требование для обеспечения безопасности, эффективности и хранения при развертывании модели нейронной сети на стороне UE.
[00118] При шифровании модели нейронной сети на стороне UE могут учитываться три фактора, а именно: безопасность, эффективность при дешифровании и пространство хранения данных. Автономное шифрование модели нейронной сети на стороне UE, согласно по меньшей мере одному примеру, предпочтительно с точки зрения этих трех факторов, как проиллюстрировано ниже,
[00117] 1) Безопасность обеспечивается следующим образом. Имя узла в модели может быть зашифровано посредством MD5. Затем зашифрованный файл модели может быть преобразован в код С++. Этот код может быть скомпилирован в программу. Информация, внутренняя для модели, защищена посредством шифрования MD5 на автономной стадии. Сложность взлома модели значительно возрастает за счет преобразования модели в код, что обеспечивает безопасность всей модели.
[00118] 2) Эффективность дешифрования обеспечивается следующим образом. Информация о модели может быть получена просто путем вызова функции модели без дешифрования во время выполнения, что приводит к высокой эффективности.
[00119] 3) Пространство хранения данных экономится следующим образом. Модель может быть преобразована в код С++, который на практике едва ли займет больше пространства хранения данных, лучше удовлетворяя потребность в развертывании модели нейронной сети на стороне UE.
[00120] Как показано на фиг. 2, шифрование может выполняться с использованием алгоритма MD5, а код С++ может использоваться для описания модели нейронной сети, при этом объект изобретения этим не ограничивается. Для шифрования информации о модели нейронной сети можно использовать другой алгоритм шифрования, который может задумать специалист в данной области техники. Для описания нейронной сети можно использовать другой объектно-ориентированный программный язык,
[00121] Фиг. 3 является блок-схемой структуры устройства для шифрования модели нейронной сети в соответствии с примерным вариантом осуществления. Как показано на фиг. 3, устройство 300 включает в себя модуль 301 шифрования, модуль 302 генерирования кода и модуль 303 отправки.
[00122] Модуль 301 шифрования выполнен с возможностью получения зашифрованного файла модели путем шифрования по меньшей мере части информации о модели в исходном файле модели, описывающем модель целевой нейронной сети.
[00123] Модуль 302 генерирования кода выполнен с возможностью генерирования, согласно зашифрованному файлу модели, программного кода модели, описывающего модель целевой нейронной сети.
[00124] Модуль 303 отправки выполнен с возможностью отправки на пользовательское устройство (UE) на основе запроса, отправленного посредством UE, установочного пакета для установки приложения (АРР). Установочный пакет включает в себя программный код модели.
[00126] Информация о модели может включать в себя информацию об узле для каждого узла в модели целевой нейронной сети и глобальный параметр модели целевой нейронной сети.
[00126] Информация об узле может включать в себя идентификатор узла для каждого узла и параметр узла для каждого узла.
[00127] Параметр узла может включать в себя по меньшей мере одно из следующего: весовой параметр каждого узла, параметр ввода каждого узла, параметр вывода каждого узла или рабочий параметр каждого узла.
[00128] Модуль генерирования кода может включать в себя субмодуль построения, субмодуль создания объекта модели, субмодуль создания объекта данных и субмодуль генерирования.
[00129] Субмодуль построения может быть выполнен с возможностью построения обобщенного класса модели, связанного с моделью целевой нейронной сети, и по меньшей мере одного обобщенного класса данных, связанного с информацией о модели, содержащейся в модели целевой нейронной сети.
[00130] Субмодуль создания объекта модели может быть выполнен с возможностью создания, согласно зашифрованному файлу модели, объекта модели, связанного с моделью целевой нейронной сети, путем вызова функции построения модели, связанной с обобщенным классом модели.
[00131] Субмодуль создания объекта данных может быть выполнен с возможностью создания, согласно зашифрованному файлу модели, объекта данных, связанного с информацией о модели, путем вызова по меньшей мере одной функции построения данных, связанной по меньшей мере с одним обобщенным классом данных.
[00132] Генерирующий субмодуль может быть выполнен с возможностью генерирования, в соответствии с объектом модели и объектом данных, программного кода модели, описывающего модель целевой нейронной сети.
[00133] Устройство может дополнительно включать в себя модуль генерирования библиотеки и модуль генерирования АРР.
[00134] Модуль генерирования библиотеки может быть выполнен с возможностью генерирования файла библиотеки модели в соответствии с программным кодом модели.
[00135] Модуль генерирования АРР может быть выполнен с возможностью генерирования АРР, обеспечивающего выполнение модели целевой нейронной сети, путем связывания файла библиотеки модели с исполняемым файлом.
[00136] Модуль шифрования может включать в себя субмодуль преобразования.
[00137] Субмодуль преобразования может быть выполнен с возможностью получения зашифрованного файла модели путем выполнения операции преобразования по меньшей мере части информации о модели согласно заданной хэш-функции.
[00138] Каждый модуль устройства согласно по меньшей мере одному варианту осуществления из настоящего документа может выполнять операцию в режиме, разработанном по меньшей мере в одном варианте осуществления способа из настоящего документа, что здесь не будет повторяться.
[00139] На фиг. 4 представлена блок-схема устройства 400 для получения информации о выводе модели нейронной сети в соответствии с примерным вариантом осуществления. Например, устройство 400 может быть обеспечено в качестве сервера. Как показано на фиг. 4, устройство 400 может включать в себя компонент 422 обработки (который, как таковой, может включать в себя один или более процессоров) и ресурс памяти, обозначенный как память 432, выполненный с возможностью хранения инструкций, таких как АРР, исполняемых компонентом 422 обработки. АРР, сохраненное в памяти 432, может включать в себя один или более модулей, каждый из которых соответствует набору инструкций. Кроме того, компонент 422 обработки может обеспечивать выполнение инструкций для выполнения по меньшей мере части вышеупомянутого способа.
[00140] Устройство 400 может дополнительно включать в себя компонент 426 источника питания, выполненный с возможностью управления источником питания устройства 400, интерфейс 450 проводной или беспроводной сети, выполненный с возможностью подключения устройства 400 к сети, и интерфейс 458 ввода/вывода (I/O). Устройство 400 может работать на основе операционной системы, хранящейся в памяти 432, такой как Windows ServerTM, Mac OS XTM, UnixTM, LinuxTM, FreeBSDTM или подобной этим.
[00141] На фиг. 5 представлена блок-схема UE 500 в соответствии с примерным вариантом осуществления. UE 500 обеспечивает выполнение по меньшей мере части любого способа шифрования модели нейронной сети согласно по меньшей мере одному примеру из настоящего документа. UE 500 может быть, например, мобильным телефоном, компьютером, UE цифрового вещания, устройством обмена сообщениями, игровой консолью, планшетом, медицинским устройством, тренажером, персональным цифровым помощником и т.д.
[00142] Как показано на фиг. 5, UE 500 может включать в себя по меньшей мере одно из следующего: компонент 501 обработки, память 502, компонент 503 источника питания, мультимедийный компонент 504, аудиокомпонент 505, интерфейс 506 ввода/вывода (I/O), компонент датчика 507 или коммуникационный компонент 508.
[00143] Компонент 501 обработки обычно может управлять всей работой UE 500, такой как операции, связанные с отображением, телефонным вызовом, передачей данных, операцией съемки, операцией записи и т.д. Компонент 501 обработки может включать в себя один или более процессоров 510 для выполнения инструкций, чтобы завершить весь вышеупомянутый способ или его часть. Кроме того, компонент 501 обработки может включать в себя один или более модулей для облегчения взаимодействия между компонентом 501 обработки и другими компонентами. Например, компонент 501 обработки может включать в себя мультимедийный модуль для облегчения взаимодействия между мультимедийным компонентом 504 и компонентом 501 обработки.
[00144] Память 510 может быть выполнена с возможностью хранения различных типов данных для поддержки работы на UE 500. Примерь! таких данных могут включать в себя инструкции любого приложения или способа, адаптированного для работы на UE 500, контактные данные, данные телефонной книги, сообщения, изображения, видео и т.д. Память 502 может быть реализована любым типом кратковременного или долговременного запоминающего оборудования или их комбинацией, такой как статическая оперативная память (SRAM), электрически стираемая программируемая постоянная память (EEPROM), стираемая программируемая постоянная память (EPROM), программируемая постоянная память (PROM), постоянная память (ROM), магнитная память, флэш-память, магнитный диск, компакт-диск, и т.п.
[00145] Компонент 503 источника питания может подавать электропитание различным компонентам UE 500, Компонент 503 источника питания может включать в себя систему управления питанием, один или более источников питания и другие компоненты, связанные с генерированием, управлением и распределением электроэнергии для UE 500.
[00146] Мультимедийный компонент 504 может включать в себя экран, который обеспечивает интерфейс вывода между UE 500 и пользователем. Экран может включать в себя жидкокристаллический дисплей (LCD, от англ. Liquid Crystal Display), сенсорную панель (TP, от англ. Touch Panel) и т.д. Если экран включает в себя TP, то он может быть реализован в виде сенсорного экрана для приема сигнала, вводимого пользователем. TP может включать в себя один или более сенсорных датчиков для восприятия касания, скольжения и жестов на ТР. Один или более датчиков касания могут не только определять границу касания или движения скольжения, но также определять продолжительность и давление, связанные с касанием или движением скольжения. Мультимедийный компонент 504 может включать в себя фронтальную камеру и/или заднюю камеру. Когда UE 500 находится в рабочем режиме, таком как режим фотографирования или видео, фронтальная камера и/или задняя камера может принимать внешние мультимедийные данные. Каждая из фронтальной камеры или задней камеры может представлять собой систему с системой фиксированных оптических линз или может иметь фокусное расстояние и быть способной к оптическому масштабированию.
[00147] Аудиокомпонент 505 может быть выполнен с возможностью вывода и/или ввода аудиосигнала. Например, аудиокомпонент 505 может включать в себя микрофон (МIC). Когда UE 500 находится в рабочем режиме, таком как режим вызова, режим записи, режим распознавания голоса и т.д., MIC может иметь возможность приема внешнего аудиосигнала. Принятый аудиосигнал может быть далее сохранен в памяти 510 или может быть отправлен через компонент 508 связи. Аудиокомпонент 505 может дополнительно включать в себя громкоговоритель, выполненный с возможностью выдачи аудиосигнала.
[00148] Интерфейс 506 ввода/вывода может обеспечивать интерфейс между компонентом 501 обработки и периферийным модулем интерфейса. Такой периферийный модуль интерфейса может представлять собой клавиатуру, нажимное колесико, кнопку и т.д. Такая кнопка может включать в себя, не ограничиваясь этим, по меньшей мере одно из следующего: кнопку домашней страницы, кнопку громкости, кнопку запуска или кнопку блокировки.
[00149] Датчиковый компонент 507 может включать в себя один или более датчиков для оценки различных состояний UE 500, Например, датчиковый компонент 507 может обнаруживать состояние включения/выключения UE 500 и относительное расположение компонентов, таких как дисплей и клавиатура оборудования UE 500. Датчиковый компонент 507 может дополнительно обнаруживать изменение в положении UE 500 или компонента оборудования UE 500, независимо от того, существует ли контакт между UE 500 и пользователем, ориентацию или ускорение/замедление UE 500, изменение температурь! UE 500 и т.д. Датчиковый компонент 507 может включать в себя датчик близости, выполненный с возможностью обнаружения наличия поблизости объекта без физического контакта. Датчиковый компонент 507 может дополнительно включать в себя оптический датчик, такой как на основе комплементарной структуры металл-оксид-полупроводник (КМОП) или датчик изображения на основе прибора с зарядовой связью (ПЗС), используемый в приложении формирования изображения, Датчиковый компонент 507 может дополнительно включать в себя датчик ускорения, датчик гироскопа, магнитный датчик, датчик давления, датчик температуры и т.д.
[00150] Компонент 508 связи может быть выполнен с возможностью облегчения проводной или беспроводной связи между UE 500 и другим оборудованием. UE 500 может осуществлять доступ к беспроводной сети на основе стандарта связи, такого как Wi-Fi, 2G, 3G или их комбинации. Компонент 508 связи может транслировать связанную информацию или принимать широковещательный сигнал от внешней системы управления широковещанием через широковещательный канал. Компонент 508 связи может включать в себя модуль ближней связи (NFC) для осуществления связи ближнего действия. Например, модуль NFC может быть основан на такой технологии, как радиочастотная идентификация (RFID), ассоциация инфракрасной передачи данных (IrDA), сверхширокополосная (UWB) технология, Bluetooth (ВТ) и т.д.
[00151] Для реализации вышеупомянутого способа, UE 500 может быть реализовано с помощью одного или более электронных компонентов, таких как специализированная интегральная схема (ASIC), цифровой сигнальный процессор (DSP), устройство цифровой обработки сигналов (DSPD), программируемое логическое устройство (PLD), программируемая пользователем вентильная матрица (FPGA), контроллер, микроконтроллер, микропроцессор и т.д.
[00152] Может быть предусмотрен долговременный машиночитаемый носитель данных, содержащий инструкции, такой как содержащая инструкции память 502. Инструкции могут исполняться процессором 510 пользовательского устройства (UE) 500 для реализации вышеупомянутого способа. Например, долговременным машиночитаемым носителем данных может быть постоянное запоминающее устройство (ROM), оперативное запоминающее устройство (RAM), компактное дисковое постоянное запоминающее устройство (CD-ROM), магнитная лента, дискета, оптическое оборудование для хранения данных, и т.п.
[00153] Долговременный машиночитаемый носитель данных может включать в себя инструкции, которые при исполнении процессором мобильного UE могут обеспечивать реализацию мобильным UE способа шифрования модели нейронной сети. Данный способ включает в себя по меньшей мере одну следующую опцию.
[00154] Зашифрованный параметр модели получают путем шифрования по меньшей мере одного параметра модели целевой нейронной сети.
[00155] Код, описывающий целевую нейронную сеть, генерируют согласно параметру зашифрованной модели.
[00156] Долговременный машиночитаемый носитель данных может включать в себя инструкции, которые при выполнении процессором мобильного UE могут обеспечивать реализацию мобильным UE способа дешифрования модели нейронной сети. Данный способ включает в себя по меньшей мере одну следующую опцию.
[00157] Запускают АРР, обеспечивающее выполнение модели целевой нейронной сети. Указанное АРР содержит код, описывающий по меньшей мере один параметр зашифрованной модели целевой нейронной сети.
[00158] Данные целевой нейронной сети получают в соответствии с запущенным АРР,
[00159] Другие варианты осуществления согласно раскрытию объекта изобретения будут очевидны для специалиста в данной области техники после рассмотрения раскрытия объекта изобретения и применения на практике изобретения, раскрытого в настоящем документе. Подразумевается, что объект заявки охватывает любое изменение, применение или адаптацию раскрытия объекта изобретения в соответствии с общим принципом раскрытия объекта изобретения и включает в себя такие отступления от раскрытия объекта изобретения, которые соответствуют знаниям или обычной практике в данной области техники. Раскрытие объекта изобретения и варианты его осуществления приведены только в качестве примера, при этом истинные объем и сущность раскрытия объекта изобретения указаны в прилагаемой формуле изобретения.
[00160] Настоящее раскрытие объекта изобретения не ограничено конкретным построением, раскрытым выше и проиллюстрированным на прилагаемых чертежах. Различные модификации и изменения могут быть сделаны без выхода за рамки раскрытия объекта изобретения. Предполагается, что объем раскрытия объекта изобретения ограничен только прилагаемой формулой изобретения.