(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-03-18
(45)【発行日】2022-03-29
(54)【発明の名称】ニューラルネットワークモデルの暗号化方法及び装置、記憶媒体
(51)【国際特許分類】
G06N 3/04 20060101AFI20220322BHJP
G06F 21/60 20130101ALI20220322BHJP
G06F 8/30 20180101ALI20220322BHJP
G06F 8/61 20180101ALI20220322BHJP
【FI】
G06N3/04
G06F21/60 320
G06F8/30
G06F8/61
(21)【出願番号】P 2019563384
(86)(22)【出願日】2019-10-08
(86)【国際出願番号】 CN2019110022
(87)【国際公開番号】W WO2021027043
(87)【国際公開日】2021-02-18
【審査請求日】2019-11-15
(31)【優先権主張番号】201910735898.X
(32)【優先日】2019-08-09
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】516180667
【氏名又は名称】北京小米移動軟件有限公司
【氏名又は名称原語表記】Beijing Xiaomi Mobile Software Co.,Ltd.
【住所又は居所原語表記】No.018, Floor 8, Building 6, Yard 33, Middle Xierqi Road, Haidian District, Beijing 100085, China
(74)【代理人】
【識別番号】110000796
【氏名又は名称】特許業務法人三枝国際特許事務所
(72)【発明者】
【氏名】劉 ▲チー▼
(72)【発明者】
【氏名】叶 剣武
(72)【発明者】
【氏名】何 亮亮
【審査官】松崎 孝大
(56)【参考文献】
【文献】中国特許出願公開第110062014(CN,A)
【文献】GOMEZ, Laurent et al.,Intellectual Property Protection for Distributed Neural Networks - Towards Confidentiality of Data, Model, and Inference,Proceedings of the 15th International Joint Conference on e-Business and Telecommunications (ICETE 2018),2018年01月08日,pages 147-154
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/04
G06F 21/60
G06F 8/30
G06F 8/61
(57)【特許請求の範囲】
【請求項1】
ニューラルネットワークモデルの暗号化方法であって、
ターゲットニューラルネットワークモデルを記述するためのメタモデルファイルにおけるモデル情報の少なくとも一部を暗号化して、暗号化されたモデルファイルを取得することと、
前記暗号化されたモデルファイルに基づき、前記ターゲットニューラルネットワークモデルを記述するためのモデルプログラムコードを生成することと、
端末装置の要求に応じて、前記モデルプログラムコードが含まれるアプリケーションプログラムインストールパッケージを前記端末装置に送信することと、を含
み、
前記モデル情報は、
前記ターゲットニューラルネットワークモデルにおける各ノードのノード情報及び前記ターゲットニューラルネットワークモデルのグローバルパラメータを含み、
前記ノード情報がノード識別子及びノードパラメータを含み、前記ノードパラメータがノードの重みパラメータ、ノードの入力パラメータ、ノードの出力パラメータ及びノードの演算パラメータのうちの少なくとも1つを含み、
ターゲットニューラルネットワークモデルを記述するためのメタモデルファイルにおけるモデル情報の少なくとも一部を暗号化して、暗号化されたモデルファイルを取得することは、
所定のハッシュ関数に基づいて前記モデル情報の少なくとも一部に対してマッピング演算を行って、暗号化されたモデルファイルを取得することを含む、前記ニューラルネットワークモデルの暗号化方法。
【請求項2】
前記暗号化されたモデルファイルに基づき、前記ターゲットニューラルネットワークモデルを記述するためのモデルプログラムコードを生成することは、
前記ターゲットニューラルネットワークモデルに関連する汎化モデルクラス及び前記ターゲットニューラルネットワークモデルに含まれるモデル情報に関連する少なくとも1つの汎化データクラスを構築することと、
前記暗号化されたモデルファイルに基づき、前記汎化モデルクラスに関連するモデルコンストラクタを呼び出すことにより、前記ターゲットニューラルネットワークモデルに関連するモデルオブジェクトを作成することと、
前記暗号化されたモデルファイルに基づき、前記少なくとも1つの汎化データクラスに関連する少なくとも1つのデータコンストラクタを呼び出すことにより、前記モデル情報に関連するデータオブジェクトを作成することと、
前記モデルオブジェクト及び前記データオブジェクトに基づき、前記ターゲットニューラルネットワークモデルを記述するための前記モデルプログラムコードを生成することと、を含む
請求項1に記載の方法。
【請求項3】
前記モデルプログラムコードに基づき、モデルライブラリファイルを生成することと、
前記モデルライブラリファイルを実行可能ファイルにリンクして、ターゲットニューラルネットワークの機能を実行するためのアプリケーションプログラムを生成することと、を更に含む
請求項1に記載の方法。
【請求項4】
ニューラルネットワークモデルの暗号化装置であって、
ターゲットニューラルネットワークモデルを記述するためのメタモデルファイルにおけるモデル情報の少なくとも一部を暗号化して、暗号化されたモデルファイルを取得するように構成される暗号化モジュールと、
前記暗号化されたモデルファイルに基づき、前記ターゲットニューラルネットワークモデルを記述するためのモデルプログラムコードを生成するように構成される第1生成モジュールと、
端末装置の要求に応じて、前記モデルプログラムコードが含まれるアプリケーションプログラムインストールパッケージを前記端末装置に送信するように構成される送信モジュールと、を備え
、
前記モデル情報は、
前記ターゲットニューラルネットワークモデルにおける各ノードのノード情報及び前記ターゲットニューラルネットワークモデルのグローバルパラメータを含み、
前記ノード情報がノード識別子及びノードパラメータを含み、前記ノードパラメータがノードの重みパラメータ、ノードの入力パラメータ、ノードの出力パラメータ及びノードの演算パラメータのうちの少なくとも1つを含み、
前記暗号化モジュールは、
所定のハッシュ関数に基づいて前記モデル情報の少なくとも一部に対してマッピング演算を行って、暗号化されたモデルファイルを取得するように構成されるマッピングサブモジュールを含む、前記ニューラルネットワークモデルの暗号化装置。
【請求項5】
前記第1生成モジュールは、
前記ターゲットニューラルネットワークモデルに関連する汎化モデルクラス及び前記ターゲットニューラルネットワークモデルに含まれるモデル情報に関連する少なくとも1つの汎化データクラスを構築するように構成される構築サブモジュールと、
前記暗号化されたモデルファイルに基づき、前記汎化モデルクラスに関連するモデルコンストラクタを呼び出すことにより、前記ターゲットニューラルネットワークモデルに関連するモデルオブジェクトを作成するように構成される第1作成サブモジュールと、
前記暗号化されたモデルファイルに基づき、前記少なくとも1つの汎化データクラスに関連する少なくとも1つのデータコンストラクタを呼び出すことにより、前記モデル情報に関連するデータオブジェクトを作成するように構成される第2作成サブモジュールと、
前記モデルオブジェクト及び前記データオブジェクトに基づき、前記ターゲットニューラルネットワークモデルを記述するための前記モデルプログラムコードを生成するように構成される取得サブモジュールと、を含む
請求項
4に記載の装置。
【請求項6】
前記モデルプログラムコードに基づき、モデルライブラリファイルを生成するように構成される第2生成モジュールと、
前記モデルライブラリファイルを実行可能ファイルにリンクして、ターゲットニューラルネットワークの機能を実行するためのアプリケーションプログラムを生成するように構成される第3生成モジュールと、を更に備える
請求項
4に記載の装置。
【請求項7】
ニューラルネットワークモデルの暗号化装置であって、
少なくともプロセッサと、前記プロセッサにおいて実行できる実行可能命令を記憶するためのメモリと、を備え、
前記プロセッサが、前記実行可能命令を実行するとき、前記実行可能命令によって上記請求項1~
3のいずれか1項に記載のニューラルネットワークモデルの暗号化方法におけるステップを実行することに用いられる、前記ニューラルネットワークモデルの暗号化装置。
【請求項8】
非一時的コンピュータ可読記憶媒体であって、
前記非一時的コンピュータ可読記憶媒体にコンピュータ実行可能命令が記憶され、該コンピュータ実行可能命令がプロセッサにより実行されるとき、上記請求項1~
3のいずれか1項に記載のニューラルネットワークモデルの暗号化方法におけるステップを実現する、前記非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本願は、2019年08月09日に提出した中国特許出願第201910735898.X号の優先権を主張し、ここで、該中国特許出願の全内容が本願の一部として援用される。
【0002】
本開示は情報処理技術に関し、特にニューラルネットワークモデルの暗号化方法及び装置、記憶媒体に関する。
【背景技術】
【0003】
ニューラルネットワークモデルは人間の実際のニューラルネットワークを擬似する数学モデルであり、システム識別、モード識別、人工知能等の多くの分野に広く使用されている。ニューラルネットワーク技術の継続的な発展に伴い、ニューラルネットワークモデルは既に多くの端末装置の応用製品に使用されている。ニューラルネットワークモデルの応用はよくセキュリティ問題が問われ、ニューラルネットワークモデルが端末装置側に配置される場合、モデル情報が漏洩しやすい。従って、ニューラルネットワークモデルに適用される暗号化方法を考案することは、ニューラルネットワークモデルの応用における重要な課題の1つである。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示はニューラルネットワークモデルの暗号化方法及び装置、記憶媒体を提供する。
【課題を解決するための手段】
【0005】
本開示の実施例に係る第1態様では、ニューラルネットワークモデルの暗号化方法を提供し、
ターゲットニューラルネットワークモデルを記述するためのメタモデルファイルにおけるモデル情報の少なくとも一部を暗号化して、暗号化されたモデルファイルを取得することと、
前記暗号化されたモデルファイルに基づき、前記ターゲットニューラルネットワークモデルを記述するためのモデルプログラムコードを生成することと、
端末装置の要求に応じて、前記モデルプログラムコードが含まれるアプリケーションプログラムインストールパッケージを前記端末装置に送信することと、を含む。
【0006】
いくつかの実施例において、前記モデル情報は、
前記ターゲットニューラルネットワークモデルにおける各ノードのノード情報及び前記ターゲットニューラルネットワークモデルのグローバルパラメータを含み、
前記ノード情報がノード識別子及びノードパラメータを含み、前記ノードパラメータがノードの重みパラメータ、ノードの入力パラメータ、ノードの出力パラメータ及びノードの演算パラメータのうちの少なくとも1つを含む。
【0007】
いくつかの実施例において、前記暗号化されたモデルファイルに基づき、前記ターゲットニューラルネットワークモデルを記述するためのモデルプログラムコードを生成することは、
前記ターゲットニューラルネットワークモデルに関連する汎化モデルクラス及び前記ターゲットニューラルネットワークモデルに含まれるモデル情報に関連する少なくとも1つの汎化データクラスを構築することと、
前記暗号化されたモデルファイルに基づき、前記汎化モデルクラスに関連するモデルコンストラクタを呼び出すことにより、前記ターゲットニューラルネットワークモデルに関連するモデルオブジェクトを作成することと、
前記暗号化されたモデルファイルに基づき、前記少なくとも1つの汎化データクラスに関連する少なくとも1つのデータコンストラクタを呼び出すことにより、前記モデル情報に関連するデータオブジェクトを作成することと、
前記モデルオブジェクト及び前記データオブジェクトに基づき、前記ターゲットニューラルネットワークモデルを記述するためのモデルプログラムコードを生成することと、を含む。
【0008】
いくつかの実施例において、前記方法は、更に、
前記モデルプログラムコードに基づき、モデルライブラリファイルを生成することと、
前記モデルライブラリファイルを実行可能ファイルにリンクして、前記ターゲットニューラルネットワークの機能を実行するためのアプリケーションプログラムを生成することと、を含む。
【0009】
いくつかの実施例において、ターゲットニューラルネットワークモデルを記述するためのメタモデルファイルにおけるモデル情報の少なくとも一部を暗号化して、暗号化されたモデルファイルを取得することは、
所定のハッシュ関数に基づいて前記モデル情報の少なくとも一部に対してマッピング演算を行って、暗号化されたモデルファイルを取得することを含む。
【0010】
本開示の実施例に係る第2態様では、ニューラルネットワークモデルの暗号化装置を提供し、
ターゲットニューラルネットワークモデルを記述するためのメタモデルファイルにおけるモデル情報の少なくとも一部を暗号化して、暗号化されたモデルファイルを取得するように構成される暗号化モジュールと、
前記暗号化されたモデルファイルに基づき、前記ターゲットニューラルネットワークモデルを記述するためのモデルプログラムコードを生成するように構成される第1生成モジュールと、
端末装置の要求に応じて、前記モデルプログラムコードが含まれるアプリケーションプログラムインストールパッケージを前記端末装置に送信するように構成される送信モジュールと、を備える。
【0011】
いくつかの実施例において、前記モデル情報は、
前記ターゲットニューラルネットワークモデルにおける各ノードのノード情報及び前記ターゲットニューラルネットワークモデルのグローバルパラメータを含み、
前記ノード情報がノード識別子及びノードパラメータを含み、前記ノードパラメータがノードの重みパラメータ、ノードの入力パラメータ、ノードの出力パラメータ及びノードの演算パラメータのうちの少なくとも1つを含む。
【0012】
いくつかの実施例において、前記第1生成モジュールは、
前記ターゲットニューラルネットワークモデルに関連する汎化モデルクラス及び前記ターゲットニューラルネットワークモデルに含まれるモデル情報に関連する少なくとも1つの汎化データクラスを構築するように構成される構築サブモジュールと、
前記暗号化されたモデルファイルに基づき、前記汎化モデルクラスに関連するモデルコンストラクタを呼び出すことにより、前記ターゲットニューラルネットワークモデルに関連するモデルオブジェクトを作成するように構成される第1作成サブモジュールと、
前記暗号化されたモデルファイルに基づき、前記少なくとも1つの汎化データクラスに関連する少なくとも1つのデータコンストラクタを呼び出すことにより、前記モデル情報に関連するデータオブジェクトを作成するように構成される第2作成サブモジュールと、
前記モデルオブジェクト及び前記データオブジェクトに基づき、前記ターゲットニューラルネットワークモデルを記述するためのモデルプログラムコードを生成するように構成される取得サブモジュールと、を含む。
【0013】
いくつかの実施例において、前記装置は、更に、
前記モデルプログラムコードに基づき、モデルライブラリファイルを生成するように構成される第2生成モジュールと、
前記モデルライブラリファイルを実行可能ファイルにリンクして、前記ターゲットニューラルネットワークの機能を実行するためのアプリケーションプログラムを生成するように構成される第3生成モジュールと、を備える。
【0014】
いくつかの実施例において、前記暗号化モジュールは、
所定のハッシュ関数に基づいて前記モデル情報の少なくとも一部に対してマッピング演算を行って、暗号化されたモデルファイルを取得するように構成されるマッピングサブモジュールを含む。
【0015】
本開示の実施例に係る第3態様では、ニューラルネットワークモデルの暗号化装置を提供し、前記装置は少なくともプロセッサと、前記プロセッサにおいて実行できる実行可能命令を記憶するためのメモリと、を備え、
プロセッサが前記実行可能命令を実行するとき、前記実行可能命令によって上記いずれか1項に記載のニューラルネットワークモデルの暗号化方法におけるステップを実行することに用いられる。
【0016】
本開示の実施例に係る第4態様では、非一時的コンピュータ可読記憶媒体を提供し、前記コンピュータ可読記憶媒体にコンピュータ実行可能命令が記憶され、該コンピュータ実行可能命令がプロセッサにより実行されるとき、上記いずれか1項に記載のニューラルネットワークモデルの暗号化方法におけるステップを実現する。
【発明の効果】
【0017】
本開示の実施例に係る技術案は以下の有益な効果を有してもよい。サーバ側においてニューラルネットワークのメタモデルファイルにおける一部のモデル情報を暗号化して、暗号化後のモデルファイルを、該ニューラルネットワークを記述するモデルプログラムコードに変換して、端末装置側に送信することにより、サーバは端末装置へアプリケーションプログラムインストールパッケージを送信する際にメタモデルファイル(例えば、バイナリ形式のファイル)を伝送する必要がなく、これにより、伝送効率を向上させ、且つ暗号化されたモデルファイルをモデルプログラムコードに変換することにより暗号文をクラッキングする難度を大幅に増加させ、それによりモデル全体のセキュリティを確保する。一方、端末装置側においてニューラルネットワークをオフラインで設定するとき、メタモデルファイルを記憶する必要がないため、占有した記憶スペースが増加せず、従って、端末装置側のオフライン設定要求をよりよく満たすことができ、且つ、アプリケーションプログラムの外部からメタモデルファイルを呼び出さずに、モデルプログラムコードを実行すれば、該ニューラルネットワークのモデル情報を取得できるため、ニューラルネットワーク情報を取得する効率を向上させ、それによりアプリケーションプログラム全体の実行効率を向上させる。なお、サーバも暗号鍵を端末装置側に伝送する必要がないため、伝送過程のセキュリティを向上させ、モデル内部情報のセキュリティも確保する。以上の一般的な説明及び以下の詳細な説明は例示的且つ解釈的なものであって、本開示を制限するためのものではないと理解すべきである。
【図面の簡単な説明】
【0018】
【
図1】
図1は例示的な実施例に係るニューラルネットワークモデルの暗号化方法の実現フローチャートである。
【
図2】
図2は例示的な実施例に係るニューラルネットワークモデルの暗号化原理の模式図である。
【
図3】
図3は例示的な実施例に係るニューラルネットワークモデルの暗号化装置の構造模式図である。
【
図4】
図4は例示的な実施例に係るニューラルネットワークモデルの暗号化装置の実体のブロック構成図である。
【
図5】
図5は例示的な実施例に係る端末装置の実体のブロック構成図である。
【発明を実施するための形態】
【0019】
ここで、図面は明細書に援用されて本明細書の一部となり、本発明に適用される実施例を示し、且つ明細書とともに本発明の原理を解釈することに用いられる。
【0020】
ニューラルネットワークモデルの設定は、一般的に、サービス側に設定されて、ネットワーク経由でオンラインサービスを提供する方式と、端末装置側、例えば携帯電話等のスマートデバイスに設定されて、端末装置側のアクセラレーターを利用してモデルをオフラインで実行する方式と、を含む。モデルが端末装置側に設定される場合、モデルのすべての情報がモデルファイルに記憶され、モデルファイルによってモデル情報を直接取得することができ、セキュリティが低い。
【0021】
ニューラルネットワークモデルの暗号化方法は少なくとも対称暗号化方法及び非対称暗号化方法を含んでもよい。対称暗号化方法はストリームパスワード暗号化及びパケットパスワード暗号化を含む。ストリームパスワード暗号化とは、毎回1つのアルファベット又は数字を暗号化することを意味し、パケットパスワード暗号化とは、複数のビットの1つのデータブロックを1つのユニットに暗号化することを意味し、それは平文をブロックサイズの整数倍に充填する必要があり、DES(Data Encryption Standard、データ暗号化標準)アルゴリズム、3DES(三重DES)アルゴリズム、AES(Advanced Encryption Standard、高度暗号化標準)アルゴリズム、Blowfishアルゴリズム、IDEA(International Data Encryption Algorithm、国際データ暗号化アルゴリズム)、RC5アルゴリズム、RC6アルゴリズム等を含む。
【0022】
非対称暗号化は暗号鍵ペアの暗号化システムを使用し、暗号鍵ペアが2つの暗号鍵、すなわち公開鍵及び秘密鍵を含み、公開鍵が広く伝播されてもよいが、秘密鍵がユーザーのみに知られている。開示される公開鍵によって暗号文を暗号化し、受信者は秘密鍵によって復号することができる。このような暗号化アルゴリズムは強度が高く、直接クラッキングすることがより困難であるため、セキュリティがより高く、秘密鍵のセキュリティを確保すればよい。例えば、RSA暗号化アルゴリズム等が挙げられる。
【0023】
上記方法では、対称暗号化方法の暗号鍵及び非対称暗号化方法の秘密鍵が端末装置側のコードに記憶されるため、依然として潜在的な安全上の問題があり、なお、非対称暗号化アルゴリズムは復号しにくいため、効率がより低い。
【0024】
ここで、例示的な実施例を詳しく説明するが、その例は図面に示される。以下の説明は図面に関わるとき、特に示さない限り、異なる図面における同じ数字は同様又は類似の要素を示す。以下の例示的な実施例に説明される実施形態は本発明に一致するすべての実施形態を代表しない。逆に、それらは単に添付の特許請求の範囲に詳しく説明された、本発明のいくつかの態様に一致する装置及び方法の例である。
【0025】
図1は例示的な実施例に係るニューラルネットワークモデルの暗号化方法のフローチャートであり、
図1に示すように、
ターゲットニューラルネットワークモデルを記述するためのメタモデルファイルにおけるモデル情報の少なくとも一部を暗号化して、暗号化されたモデルファイルを取得するステップS101と、
前記暗号化されたモデルファイルに基づき、前記ターゲットニューラルネットワークモデルを記述するためのモデルプログラムコードを生成するステップS102と、
端末装置の要求に応じて、前記モデルプログラムコードが含まれるアプリケーションプログラムインストールパッケージを前記端末装置に送信するステップS103と、を含む。
【0026】
上記ステップS101及びステップS102における暗号化過程はサーバによりオフラインで実行され、暗号化後にモデルプログラムコードが含まれるアプリケーションプログラムインストールパッケージを生成して、端末に提供してダウンロードし使用する。端末装置の要求(例えば、ダウンロード要求又は更新要求を含むが、それらに限らない)を受信した場合、サーバが該アプリケーションプログラムインストールパッケージを端末装置に送信し、端末装置が上記アプリケーションプログラムをインストール・実行することにより、該ターゲットニューラルネットワークモデルの機能を実現できる。
【0027】
ここで、暗号化アルゴリズムによってニューラルネットワークモデルの元のモデルにおける一部又は全部のモデル情報を暗号化し、モデル情報を暗号化後のモデル情報に変換することにより、暗号化されたモデルファイルを取得する。モデル情報はターゲットニューラルネットワークのモデルにおける各ノードのノード情報を含み、ノード情報はノード識別子、ノードパラメータ及びモデルファイル全体のグローバルパラメータ等を含んでもよく、ノードパラメータはノード重み、ノードの演算パラメータ又は属性パラメータ及びノードの入力及び出力等の情報であってもよい。ノードの入力及び出力情報はニューラルネットワークモデルの構造を示してもよい。
【0028】
ターゲットニューラルネットワークのモデル情報の少なくとも一部を暗号化した後、モデルにおける関連情報を隠すことは、モデル全体の全部情報を完全に暴露させることがなく、それによりモデルのセキュリティを向上させる。
【0029】
ニューラルネットワークのメタモデルファイルは一般的に特定構造を有するファイルであり、テキストファイル、図形ファイル及び他の形式のファイル等を含む。例えば、メタモデルファイルはバイナリ形式のファイルであってもよいし、必要に応じて定義した形式、例えばprotobuf(Protocol Buffers、データ記述言語)に基づいて定義した形式のファイルであってもよく、この場合、メタモデルファイルがprotobufシリアライズ後のファイルであり、いくつかの実施例において、メタモデルファイルは更にjson(JavaScript(登録商標) Object Notation、JavaScript オブジェクトノーテーション)等の形式のテキストファイルであってもよい。端末側において上記メタモデルファイルを使用するとき、メタモデルファイルによってニューラルネットワークモデルファイルにおけるモデル情報を直接取得することができ、セキュリティが低く、暗号化後にモデルのセキュリティを向上させるが、依然としてクラッキングされるリストがある。従って、ここで、モデル情報を暗号化した後、更に暗号化されたターゲットニューラルネットワークをプログラムコードに変換し、ニューラルネットワークモデル全体のセキュリティを更に向上させる。
【0030】
つまり、プログラムコードの形式でターゲットニューラルネットワークのモデルを記述し、通常のファイルを下層コードに変換することにより、クラッキングされる難度を増加させる。且つ、該ターゲットニューラルネットワークの一部のモデル情報が既に暗号化されたため、コードに変換されるとクラッキングされにくくなる。プログラムコードは様々なプログラム言語により実現されてもよく、いくつかの実施例において、プログラムコードはオブジェクト向けのプログラム言語により実現されてもよく、例示的に、オブジェクト向けのプログラム言語はC++、JAVA(登録商標)、C#等を含んでもよいが、それらに限らない。
【0031】
サーバ側においてニューラルネットワークのメタモデルファイルにおける一部のモデル情報を暗号化して、暗号化後のモデルファイルを、該ニューラルネットワークを記述するためのモデルプログラムコードに変換して、端末装置側に送信することにより、サーバは端末装置へアプリケーションプログラムインストールパッケージを送信する際にメタモデルファイル(例えば、バイナリ形式のファイル)を伝送する必要がなく、これにより、伝送効率を向上させ、且つ暗号化されたモデルファイルをモデルプログラムコードに変換することにより暗号文をクラッキングする難度を大幅に増加させ、それによりモデル全体のセキュリティを確保する。一方、端末装置側にニューラルネットワークをオフラインで設定するとき、メタモデルファイルを記憶する必要がないため、占有した記憶スペースが増加せず、従って、端末装置側のオフライン設定要求をよりよく満たすことができ、且つ、アプリケーションプログラムの外部からメタモデルファイルを呼び出さずに、モデルプログラムコードを実行すれば、該ニューラルネットワークのモデル情報を取得できるため、ニューラルネットワーク情報を取得する効率を向上させ、それによりアプリケーションプログラム全体の実行効率を向上させる。なお、サーバも暗号鍵を端末装置側に伝送する必要がないため、伝送過程のセキュリティを向上させ、モデル内部情報のセキュリティも確保する。
【0032】
いくつかの実施例において、サーバ側において上記ターゲットニューラルネットワークモデルファイルにおけるモデル情報の少なくとも一部をオフラインで暗号化して、暗号化されたモデルファイルを取得し、且つ暗号化されたモデルファイルに基づき、上記プログラムコードを含むプログラムファイルを生成し、且つ該プログラムファイルに基づいてインストールパッケージを生成し、
サーバが受信された端末の要求に応じて、上記インストールパッケージを端末に送信し、
端末が上記インストールパッケージに基づいて上記プログラムファイルをインストールし、
次に、端末が上記プログラムファイルを実行することにより、上記ニューラルネットワークモデルにおける各パラメータを取得できる。
【0033】
いくつかの実施例において、前記モデル情報は、
前記ターゲットニューラルネットワークモデルにおける各ノードのノード情報及び前記ターゲットニューラルネットワークモデルのグローバルパラメータを含み、
前記ノード情報がノード識別子及びノードパラメータを含み、前記ノードパラメータがノードの重みパラメータ、ノードの入力パラメータ、ノードの出力パラメータ及びノードの演算パラメータのうちの少なくとも1つを含む。
【0034】
ノード識別子はノード識別子を識別するための情報、例えばノード名称又はノード番号等である。モデル情報を暗号化するとき、ノード識別子を暗号化することができ、それによりノードの識別子情報を隠して、暗号化されたノード識別子を含むモデル情報を取得する。上記暗号化されたノード識別子は暗号化アルゴリズムによって暗号化した後のノード識別子である。
【0035】
本実施例において、1つの前記ノード識別子は前記ニューラルネットワークにおける演算に参加する1つのノードを示すことに用いられてもよく、該演算は畳込み演算、重み付け演算等のニューラルネットワークにおける演算ノードであってもよい。
【0036】
ここで、ノード識別子のみを暗号化してもよいし、ノード識別子及び/又はノードパラメータを暗号化してもよい。ノードパラメータはノードの機能及びノード間の関係を示すための関連パラメータ、例えば重みパラメータ、ノード演算機能又は属性を記述する演算パラメータ及びノードの入力/出力パラメータ等である。ノードの入力/出力パラメータはノード間の接続関係を示し、更にターゲットニューラルネットワークの構造を示してもよい。従って、ノードパラメータを暗号化した後、ターゲットニューラルネットワークモデル内部情報のセキュリティを確保する。
【0037】
なお、更にターゲットニューラルネットワークモデルのグローバルパラメータを暗号化してもよく、グローバルパラメータはターゲットニューラルネットワークの入力、出力、機能、属性又は構造等を記述するパラメータであり、グローバルパラメータを暗号化することにより、ターゲットニューラルネットワークモデル内部情報のセキュリティを向上させることもできる。
【0038】
ニューラルネットワークモデルファイルのモデル情報を暗号化することは一部又は全部のノード情報を暗号化してもよいし、一部又は全部のグローバルパラメータの関連情報を暗号化して、暗号化後のモデルファイルを、該ニューラルネットワークを記述するモデルプログラムコードに変換して、端末装置側に送信してもよい。実際の応用では、必要に応じて異なる情報を暗号化してもよく、暗号化内容への要求が一定ではないため、暗号化効率を向上させ、且つ更に暗号文をクラッキングする難度を増加させる。
【0039】
いくつかの実施例において、上記ステップS102では、前記暗号化されたモデルファイルに基づき、前記ターゲットニューラルネットワークモデルを記述するためのモデルプログラムコードを生成することは、
前記ターゲットニューラルネットワークモデルに関連する汎化モデルクラス及び前記ターゲットニューラルネットワークモデルに含まれるモデル情報に関連する少なくとも1つの汎化データクラスを構築するステップS11と、
前記暗号化されたモデルファイルに基づき、前記汎化モデルクラスに関連するモデルコンストラクタを呼び出すことにより、前記ターゲットニューラルネットワークモデルに関連するモデルオブジェクトを作成するステップS12と、
前記暗号化されたモデルファイルに基づき、前記少なくとも1つの汎化データクラスに関連する少なくとも1つのデータコンストラクタを呼び出すことにより、前記モデル情報に関連するデータオブジェクトを作成するステップS13と、
前記モデルオブジェクト及び前記データオブジェクトに基づき、前記ターゲットニューラルネットワークモデルを記述するためのモデルプログラムコードを生成するステップS14と、を含む。
【0040】
上記汎化モデルクラスは様々な異なるターゲットニューラルネットワークモデルを記述することができる。一例では、1つのみの一般的な汎化モデルクラスを定義してすべてのターゲットニューラルネットワークモデルを記述してもよく、他の例では、ターゲットニューラルネットワークモデルの種類のみに対して異なる複数の汎化モデルクラスを定義してもよく、例えば特定の属性、構造又は機能を有する1種類の複数のターゲットニューラルネットワークモデルを1つの汎化モデルクラスに抽象してもよく、他の例では、ある又はいくつかのターゲットニューラルネットワークモデルのみに使用するよう、各汎化モデルクラスは更に少なくとも1つのモデルサブクラスを含んでもよい。従って、ステップS12では、例えば、前記暗号化されたモデルファイルに記述されたターゲットニューラルネットワークモデルのタイプに基づき、対応する汎化モデルクラス及び/又はそのモデルサブクラスを選択してもよい。
【0041】
上記汎化データクラスは汎化ノードデータクラス、汎化グローバルデータクラス等を含んでもよい。汎化ノードデータクラスは異なるノード情報に対応する複数種類の汎化ノードデータクラスを含んでもよい。具体的に、汎化ノードデータクラスは更に複数種類の異なる汎化ノードデータクラスを含んでもよい。具体的に、各種類の汎化ノードデータクラスはノード情報における各項に1対1に対応してもよいし、ノード情報における複数の項の組み合わせに対応してもよい。
【0042】
つまり、各種類の汎化ノードデータクラスはノード情報における1つ又は複数のノードパラメータをカプセル化することができる。例えば、汎化ノードデータクラスはノード入力/出力クラス、ノード演算パラメータクラス、ノード属性クラス及びノード重みクラス等を含んでもよいが、それらに限らない。
【0043】
汎化グローバルデータクラスについては、汎化グローバルデータクラスは1種類のグローバルパラメータクラスを含んでもよいし、複数種類の異なるグローバルパラメータクラスを含んでもよい。それに対応して、各種類の汎化グローバルデータクラスはモデルの1種類又は複数種類のグローバルパラメータをカプセル化することもできる。例えば、汎化グローバルデータクラスはモデル入力/出力クラス、モデル機能クラス、モデル属性クラス及びモデル構造クラス等を含んでもよいが、それらに限らない。
【0044】
上記汎化モデルクラスに基づき、ターゲットニューラルネットワークモデルに対応するモデルオブジェクトを作成することができ、汎化データクラスに基づき、ターゲットニューラルネットワークモデルにおけるグローバルパラメータ及び各ノード情報に対応する複数種類のデータオブジェクトを作成することができ、それによりターゲットニューラルネットワークモデルを記述するためのモデルプログラムコードを取得する。一般的に、メタモデルファイルはニューラルネットワークモデルのグラフ構造を記述することができる。本開示の実施例によれば、モデルプログラムコードを生成するとき、各暗号化されたモデルファイルは1つの汎化モデルクラスのモデルオブジェクトとして示されてもよい。次に、暗号化されたモデルファイルにおけるグラフ構造情報を読み取ることにより、複数の汎化データクラスの複数のデータオブジェクトを対応的に作成することができる。例えば、一例では、ステップS13では、暗号化されたモデルファイルに記載のモデルの構造及びパラメータ情報を取得することができ、次に対応する少なくとも1つの汎化データクラスを選択して、少なくとも1つの汎化データクラスに関連する少なくとも1つのデータコンストラクタを呼び出すことにより、モデルの構造及びパラメータ情報に関連するデータオブジェクトを作成する。
【0045】
つまり、プログラムコードによって、メタモデルファイルのグラフ構造を複数の異なる階層の汎化クラスに変換して組織することができる。これにより、様々なコンストラクタによってメタモデルファイルにおける情報を様々なオブジェクトに変換する。従って、端末装置側にニューラルネットワークをオフラインで設定するとき、メタモデルファイルを記憶する必要がないため、占有した記憶スペースが増加せず、従って、端末装置側のオフライン設定要求をよりよく満たすことができ、且つ、アプリケーションプログラムの外部からメタモデルファイルを呼び出さずに、モデルプログラムコードを実行して、上記異なる階層の汎化クラスによって様々なオブジェクトを構築すれば、該ニューラルネットワークのモデル情報を取得できるため、ニューラルネットワーク情報を取得する効率を向上させ、それによりアプリケーションプログラム全体の実行効率を向上させる。
【0046】
いくつかの実施例において、該方法は、更に、
前記プログラムコードに基づき、モデルライブラリファイルを生成するステップS21と、
前記モデルライブラリファイルを実行可能ファイルにリンクして、前記ターゲットニューラルネットワークの機能を実行するためのアプリケーションプログラムを生成するステップS22と、を含む。
【0047】
ライブラリファイルはプログラムコードにより生成されたアプリケーションプログラム拡張ファイルであり、1つの完全な実行可能ファイルではない。上記したターゲットニューラルネットワークを記述するプログラムコードに基づき、ライブラリファイルを生成することができ、リンク方式で該ライブラリファイルを実行可能ファイルにリンクし、つまり、該ライブラリファイルのリンクを含むアプリケーションプログラムを生成してもよい。実行時、呼び出し方式で該ライブラリファイルを使用してもよい。
【0048】
ライブラリファイルは静的リンクライブラリであってもよいし、動的リンクライブラリであってもよく、それらはいずれもアプリケーションプログラムの実行可能ファイルから独立した拡張ファイルであり、1つのアプリケーションプログラムに適用されてもよいし、異なるアプリケーションプログラムにより使用されてもよい。静的リンクライブラリについては、実行可能ファイルにリンクした後、アプリケーションプログラムのコードには該ライブラリファイルにおける命令が直接含まれ、実行しやすく、実行速度が速いが、動的リンクライブラリについては、実行可能ファイルにリンクしたのが該ライブラリファイルを呼び出すインターフェースのみであり、実行時、これらのインターフェースを呼び出してライブラリファイルにおける命令を実行する必要があるが、一定の記憶スペースを節約することができる。従って、どのようなライブラリファイルを用いるかは実際の要求に応じて設定してもよく、ここで制限しない。
【0049】
暗号化後のターゲットニューラルネットワークをプログラムコードに変換して、ライブラリファイルを生成し、次に該ライブラリファイルにリンクしているアプリケーションプログラムを生成することにより、ターゲットニューラルネットワークのモデルのセキュリティを効果的に向上させる。使用時、該アプリケーションプログラムを実行して、ライブラリファイルにおける関数を呼び出せば、ターゲットニューラルネットワークに対応するデータを取得でき、使用しやすく、復号せずに直接使用できる。
【0050】
いくつかの実施例において、上記ステップS101では、ターゲットニューラルネットワークモデルファイルのモデル情報の少なくとも一部を暗号化して、暗号化されたモデルファイルを取得することは、
所定のハッシュ関数に基づいて前記モデル情報に対してマッピング演算を行って、暗号化されたモデルファイルを取得することを含む。
【0051】
ターゲットニューラルネットワークのモデル情報に対する暗号化はハッシュアルゴリズムを用いてもよい。まず、一部のモデル情報又は全部のモデル情報を含むターゲットニューラルネットワークにおける暗号化可能なモデル情報を取得する。次に、所定のハッシュ関数に基づいてこれらのパラメータに対してマッピング演算を行い、つまり、これらの暗号化すべきモデル情報に対してハッシュ演算を行わば、暗号化後のモデル情報を取得でき、更に暗号化されたモデルファイルを取得する。ハッシュアルゴリズムを用いることにより、ニューラルネットワークのモデル情報に暗号鍵を追加せずに、モデル情報自体に対してマッピング演算を行うため、このような方法は暗号鍵で復号する必要がない。且つ、ハッシュアルゴリズムを用いることにより、データの長さを過度に延ばすことがないため、暗号化による記憶スペースの無駄遣いを効果的に低減することができる。
【0052】
上記ハッシュアルゴリズムはmd5アルゴリズムであってもよく、モデル情報に対して情報の概要を生成することにより、暗号化を実現する。md5アルゴリズムを用いることにより、暗号化の信頼性を向上させることができ、各モデル情報がいずれも唯一の対応する情報の概要、すなわち暗号化後のモデル情報を有するようにすることにより、データ衝突を回避する。実際の応用では、実際のニーズに応じてsha-2等の他のハッシュアルゴリズムを用いてもよく、ここで制限しない。
【0053】
端末装置は上記アプリケーションプログラムのインストールパッケージを受信した後、
端末装置がサーバからターゲットニューラルネットワークモデルに関連するモデルプログラムコードが含まれるアプリケーションプログラムインストールパッケージを受信し、
前記モデルプログラムコードが前記ターゲットニューラルネットワークモデルの暗号化されたモデルファイルを記述することに用いられ、前記暗号化されたモデルファイルが、前記サーバが前記ターゲットニューラルネットワークモデルのメタモデルファイルにおけるモデル情報の少なくとも一部を暗号化して取得したものである第1ステップ、
前記アプリケーションプログラムを実行し、入力情報に基づき、前記ターゲットニューラルネットワークモデルの出力情報を取得する第2ステップによって、ニューラルネットワークの情報を取得することができる。
【0054】
端末はサーバにターゲットニューラルネットワークモデルを取得するように要求する場合、サーバから該ターゲットニューラルネットワークモデルに関連する情報を含むアプリケーションプログラムインストールパッケージを取得することができる。ニューラルネットワークモデルはモデルプログラムコードにより記述されたため、端末に該アプリケーションプログラムインストールパッケージをインストールした後、該ターゲットニューラルネットワークモデルを使用する必要がある場合、該アプリケーションプログラムを実行してもよく、端末が上記モデルプログラムコードを実行することにより、ターゲットニューラルネットワークモデルの機能を実現できる。
【0055】
該アプリケーションプログラムに指定された入力情報を提供し、つまり、該ターゲットニューラルネットワークモデルに指定された入力情報を提供した後、ターゲットニューラルネットワークモデルの処理、つまり、該入力情報に基づいて上記プログラムコードを実行することにより、更に対応する出力情報を取得することができる。従って、端末が上記ターゲットニューラルネットワークモデルを使用するとき、その中の暗号化されたモデルファイルを復号せずに、上記アプリケーションプログラムを直接実行すれば、対応する結果を取得できる。暗号鍵等で復号した後に使用するニューラルネットワークモデルファイルに比べて、本解決手段は使用効率を大幅に向上させる。なお、端末装置側にニューラルネットワークをオフラインで設定するとき、メタモデルファイルを記憶する必要がないため、占有した記憶スペースが増加せず、従って、端末装置側のオフライン設定要求をよりよく満たすことができ、且つ、アプリケーションプログラムの外部からメタモデルファイルを呼び出さずに、モデルプログラムコードを実行すれば、該ニューラルネットワークのモデル情報を取得できるため、ニューラルネットワーク情報を取得する効率を向上させ、それによりアプリケーションプログラム全体の実行効率を向上させる。なお、サーバも暗号鍵を端末装置側に伝送する必要がないため、伝送過程のセキュリティを向上させ、モデル内部情報のセキュリティも確保する。
【0056】
一例では、md5アルゴリズムによってモデルにおけるノード名称を暗号化して、暗号化後のモデルファイルをC++コードに変換してプログラムにコンパイルしてもよい。
【0057】
【0058】
ステップS31、ニューラルネットワークモデルファイル10におけるすべてのノード情報をmd5で暗号化して、暗号化されたモデルファイル11を取得する。
【0059】
ニューラルネットワークモデルはノードからなるグラフ構造であるため、各ノードがいずれも名称、カテゴリ、入力及び出力等の情報を有する。md5でこれらのノード情報を暗号化した後、モデルの情報を隠すことができ、それにより他の人がログ等の情報によってモデル構造を推定することを防止する。あるいは、他の例では、このmd5暗号化アルゴリズムは他の類似の方法、例えばsha-2アルゴリズム、sha-256アルゴリズム等で代替してもよい。ただし、sha-256アルゴリズムはより高いセキュリティを実現できるが、モデルファイルのサイズを増加させる恐れがある。当業者が異なる応用シーン及び端末装置のニーズに応じて、異なる暗号化アルゴリズムを選択してもよい。また、ここで、
図2は本開示の実施例のプログラムコードの一例を示すものであり、本開示はこれに限らず、他のオブジェクト向けのプログラム言語を用いてもよく、前記プログラム言語は例えば、JAVA、C#等を含んでもよいが、それらに限らない。
【0060】
ステップS32、暗号化されたモデルファイル11をC++コードに変換して、モデルC++コード12を取得する。
【0061】
暗号化後のモデルファイルは同様に1つの特定形式のグラフ構造である。暗号化後のモデルファイルをモデルプログラムコードに変換するとき、モデルファイルのグラフ構造をC++クラスにおけるいくつかのクラスで構成してもよい。
【0062】
例えば、Netクラスでは、各モデルファイルがいずれも1つのNetクラスのオブジェクトである。NetクラスにはTensor、Operator、Argument及びInput/Output Informationの4つのカテゴリが含まれる。Tensorクラスはモデルにおける重み情報を定義し、Operatorクラスはモデルにおけるノード情報を定義し、Argumentクラスはモデルにおけるパラメータ情報を定義し、Input/Output Informationクラスはモデルの入力及び出力情報を定義した。
【0063】
モデルファイルにおける情報を、C++におけるオブジェクトを構築する関数に変換することはCreateNet、CreateTensor、CreateOperator、CreateNetArg、CreateInputInfo及びCreateOutputInfoを含む。このように、モデルファイルをC++コードに変換することができる。
【0064】
ステップS33、モデルC++コード12に対してコンパイル変換を行って、ライブラリファイル13、すなわちモデル静的ライブラリ(libmodel.a)を生成する。
【0065】
モデルのC++コードを静的ライブラリにコンパイルした後、アプリケーションプログラムにリンクすることができる。アプリケーションプログラムを実行するとき、CreateNet関数を呼び出せば、モデルのすべてのデータを取得できる。
【0066】
上記方法を用いることにより、セキュリティ及び効率を効果的に向上させることができる。ニューラルネットワークモデルファイルのノードを暗号化してC++コードに変換し、次にアプリケーションプログラムにリンクすることにより、モデルをクラッキングする難度を大幅に増加させることができ、更にモデルデータ及び情報を効果的に保護する。且つ、該方法で暗号化したモデルは実行時に復号する必要がないため、使用効率を効果的に向上させる。
【0067】
上記方法を用いることにより、端末装置側にニューラルネットワークモデルを設定する際のセキュリティ、使用効率及び記憶へのニーズをよりよく満たすことができる。
【0068】
端末装置側でのニューラルネットワークモデルの暗号化は主にセキュリティ、復号効率及び記憶スペースの3つの問題を考慮すべきである。本開示の実施例に係る端末装置側でのオフラインニューラルネットワークモデルの暗号化方法はこの3つの問題に対していずれも良好な効果を実現したが、具体的には以下のとおりである。
【0069】
1)セキュリティ
まず、モデルにおけるノード名称をmd5方式で暗号化し、次に、暗号化後のモデルファイルをC++コードに変換してプログラムにコンパイルする。オフライン段階のmd5暗号化方式を用いることにより、モデル内部情報のセキュリティを確保し、モデルをコードに変換することによりクラッキング難度を大幅に増加させ、それによりモデル全体のセキュリティを確保する。
【0070】
2)復号効率
本開示の実施例において、実行時に復号せずに、モデル関数を呼び出せば、モデル情報を取得できるため、復号効率が高い。
【0071】
3)記憶スペース
本開示の実施例において、モデルをC++コードに変換することにより、基本的に実際の記憶スペースが増加せず、端末装置側にニューラルネットワークモデルを設定する要求をよりよく満たすことができる。
【0072】
ただし、
図2にはmd5アルゴリズムで暗号化して、C++プログラムコードでニューラルネットワークモデルを記述することを示すが、本開示はこれに限らず、当業者が想到し得る他の暗号化アルゴリズムでニューラルネットワークのモデル情報を暗号化して、他のオブジェクト向けのプログラム言語でニューラルネットワークを記述してもよい。
【0073】
図3は例示的な実施例に係るニューラルネットワークモデルの暗号化装置のブロック構成図である。
図3に示すように、該装置300は暗号化モジュール301、第1生成モジュール302及び送信モジュール303を備える。
【0074】
暗号化モジュール301はターゲットニューラルネットワークモデルを記述するためのメタモデルファイルにおけるモデル情報の少なくとも一部を暗号化して、暗号化されたモデルファイルを取得するように構成され、
第1生成モジュール302は前記暗号化されたモデルファイルに基づき、前記ターゲットニューラルネットワークモデルを記述するためのモデルプログラムコードを生成するように構成され、
送信モジュール303は端末装置の要求に応じて、前記モデルプログラムコードが含まれるアプリケーションプログラムインストールパッケージを前記端末装置に送信するように構成される。
【0075】
いくつかの実施例において、前記モデル情報は、
前記ターゲットニューラルネットワークモデルにおける各ノードのノード情報及び前記ターゲットニューラルネットワークモデルのグローバルパラメータを含み、
前記ノード情報がノード識別子及びノードパラメータを含み、前記ノードパラメータがノードの重みパラメータ、ノードの入力パラメータ、ノードの出力パラメータ及びノードの演算パラメータのうちの少なくとも1つを含む。
【0076】
いくつかの実施例において、前記第1生成モジュールは、
前記ターゲットニューラルネットワークモデルに関連する汎化モデルクラス及び前記ターゲットニューラルネットワークモデルに含まれるモデル情報に関連する少なくとも1つの汎化データクラスを構築するように構成される構築サブモジュールと、
前記暗号化されたモデルファイルに基づき、前記汎化モデルクラスに関連するモデルコンストラクタを呼び出すことにより、前記ターゲットニューラルネットワークモデルに関連するモデルオブジェクトを作成するように構成される第1作成サブモジュールと、
前記暗号化されたモデルファイルに基づき、前記少なくとも1つの汎化データクラスに関連する少なくとも1つのデータコンストラクタを呼び出すことにより、前記モデル情報に関連するデータオブジェクトを作成するように構成される第2作成サブモジュールと、
前記モデルオブジェクト及び前記データオブジェクトに基づき、前記ターゲットニューラルネットワークモデルを記述するためのモデルプログラムコードを生成するように構成される取得サブモジュールと、を含む。
【0077】
いくつかの実施例において、前記装置は、更に、
前記モデルプログラムコードに基づき、モデルライブラリファイルを生成するように構成される第2生成モジュールと、
前記モデルライブラリファイルを実行可能ファイルにリンクして、前記ターゲットニューラルネットワークの機能を実行するためのアプリケーションプログラムを生成するように構成される第3生成モジュールと、を備える。
【0078】
いくつかの実施例において、前記暗号化モジュールは、
所定のハッシュ関数に基づいて前記モデル情報の少なくとも一部に対してマッピング演算を行って、暗号化されたモデルファイルを取得するように構成されるマッピングサブモジュールを含む。
【0079】
上記実施例における装置については、各モジュールが操作を実行する具体的な方式は既に該方法の実施例において詳しく説明されたため、ここで詳細な説明は省略する。
【0080】
図4は例示的な実施例に係るニューラルネットワークモデルの出力情報を取得するための装置400のブロック図である。例えば、装置400はサーバとして提供されてもよい。
図4に示すように、装置400は処理コンポーネント422を備え、前記処理コンポーネント422が更に1つ又は複数のプロセッサ及びメモリ432を代表とするメモリリソースを備え、前記メモリリソースが処理コンポーネント422の実行できる命令、例えばアプリケーションプログラムを記憶することに用いられる。メモリ432に記憶されるアプリケーションプログラムが1組の命令に対応する1つ又は1つ以上の各モジュールを備えてもよい。なお、処理コンポーネント422が命令を実行することにより、上記したニューラルネットワークモデルの出力情報を取得する方法を実行するように構成される。
【0081】
装置400は、更に、装置400の電源管理を実行するように構成される1つの電源コンポーネント426と、装置400をネットワークに接続するように構成される1つの有線又は無線ネットワークインターフェース450と、1つのI/O(入力/出力)インターフェース458と、を備えてもよい。装置400はメモリ432に記憶されるオペレーティングシステム、例えばWindows Server(登録商標)、Mac OS X(登録商標)、Unix(登録商標)、 Linux(登録商標)、FreeBSD(登録商標)又は類似のシステムを操作することができる。
【0082】
図5は例示的な実施例に係る端末装置500のブロック図である。該端末装置500は上記実施例に係るニューラルネットワークモデルを暗号化するいずれか1つの方法におけるステップを実行することに用いられる。例えば、端末装置500は携帯電話、コンピュータ、デジタル放送端末、メッセージ送受信装置、ゲームコンソール、タブレット装置、医療機器、フィットネス機器、パーソナルデジタルアシスタント等であってもよい。
【0083】
図5に示すように、端末装置500は処理コンポーネント501、メモリ502、電源コンポーネント503、マルチメディアコンポーネント504、オーディオコンポーネント505、入力/出力(I/O)インターフェース506、センサコンポーネント507及び通信コンポーネント508のうちの1つ又は複数のコンポーネントを備えてもよい。
【0084】
処理コンポーネント501は一般的に端末装置500の全体操作、例えば表示、電話コール、データ通信、カメラ操作及び記録操作に関連する操作を制御する。処理コンポーネント501は命令を実行することにより、上記方法の全部又は一部のステップを完了する1つ又は複数のプロセッサ510を備えてもよい。なお、処理コンポーネント501は、更に、処理コンポーネント501と他のコンポーネントとの相互作用に役立つ1つ又は複数のモジュールを備えてもよい。例えば、処理コンポーネント501はマルチメディアコンポーネント504と処理コンポーネント501との相互作用に役立つマルチメディアモジュールを備えてもよい。
【0085】
メモリ510は様々なタイプのデータを記憶することにより端末装置500における操作をサポートするように構成される。これらのデータの例は端末装置500において操作するためのいかなるアプリケーションプログラム又は方法の命令、連絡先データ、電話帳データ、メッセージ、画像、ビデオ等を含む。メモリ502はいかなるタイプの揮発性記憶装置又は不揮発性記憶装置、例えばスタティックランダムアクセスメモリ(SRAM)、電気的消去可能プログラム可能読み出し専用メモリ(EEPROM)、消去可能プログラム可能読み出し専用メモリ(EPROM)、プログラム可能読み出し専用メモリ(PROM)、読み出し専用メモリ(ROM)、磁気メモリ、フラッシュメモリ、磁気ディスク又は光ディスク、又はそれらの組み合わせで実現されてもよい。
【0086】
電源コンポーネント503は端末装置500の様々なコンポーネントに電力を提供する。電源コンポーネント503は電源管理システム、1つ又は複数の電源及び端末装置500への電力の生成、管理及び分配に関連する他のコンポーネントを備えてもよい。
【0087】
マルチメディアコンポーネント504は前記端末装置500とユーザーとの間に1つの出力インターフェースを提供するスクリーンを備える。いくつかの実施例において、スクリーンは液晶ディスプレイ(LCD)及びタッチパネル(TP)を含んでもよい。スクリーンはタッチパネルを含む場合、ユーザーからの入力信号を受信するよう、スクリーンはタッチスクリーンとして実現されてもよい。タッチ、スワイプ及びタッチパネルにおけるジェスチャーを検知するよう、タッチパネルは1つ又は複数のタッチセンサを備える。前記タッチセンサはタッチ又はスワイプ動作の境界を検知するだけでなく、更に前記タッチ又はスワイプ操作に関連する持続時間及び圧力を検出することができる。いくつかの実施例において、マルチメディアコンポーネント504は1つの前置カメラ及び/又は後置カメラを備える。端末装置500が操作モード、例えば撮影モード又はビデオモードにある場合、前置カメラ及び/又は後置カメラは外部のマルチメディアデータを受信することができる。各前置カメラ及び/又は後置カメラは1つの一定の光学レンズシステムであり、又は集束及び光学ズーム能力を有してもよい。
【0088】
オーディオコンポーネント505はオーディオ信号を出力及び/又は入力するように構成される。例えば、オーディオコンポーネント505は1つのマイクロフォン(MIC)を備え、端末装置500が操作モード、例えばコールモード、記録モード及び音声識別モードにある場合、マイクロフォンは外部オーディオ信号を受信するように構成される。受信されたオーディオ信号は更にメモリ510に記憶され又は通信コンポーネント508により送信されてもよい。いくつかの実施例において、オーディオコンポーネント505は更にオーディオ信号を出力するための1つの拡声器を備える。
【0089】
I/Oインターフェース506は処理コンポーネント501と周辺インターフェースモジュールとの間にインターフェースを提供し、上記周辺インターフェースモジュールはキーボード、クリックホイール、ボタン等であってもよい。これらのボタンはホームページボタン、音量ボタン、スタートボタン及びロックボタンを含んでもよいが、それらに限らない。
【0090】
センサコンポーネント507は端末装置500に各態様の状態評価を提供するための1つ又は複数のセンサを備える。例えば、センサコンポーネント507は端末装置500のオン/オフ状態、コンポーネントの相対位置決めを検出することができ、例えば前記コンポーネントは端末装置500のディスプレイ及びキーパッドであり、センサコンポーネント507は更に端末装置500又は端末装置500の1つのコンポーネントの位置変化、ユーザーが端末装置500に接触しているかどうか、端末装置500の方位又は加速/減速及び端末装置500の温度変化を検出することができる。センサコンポーネント507は物理的に接触しない際に近傍物体があるかどうかを検出するように構成される接近センサを備えてもよい。センサコンポーネント507は更にイメージングアプリケーションに使用されるための光センサ、例えばCMOS又はCCD画像センサを備えてもよい。いくつかの実施例において、該センサコンポーネント507は更に加速度センサ、ジャイロスコープセンサ、磁気センサ、圧力センサ又は温度センサを含んでもよい。
【0091】
通信コンポーネント508は端末装置500と他の装置との有線又は無線方式の通信に役立つように構成される。端末装置500は通信規格に基づく無線ネットワーク、例えばWiFi(登録商標)、2G又は3G、又はそれらの組み合わせにアクセスすることができる。1つの例示的な実施例において、通信コンポーネント508は放送チャネルを介して外部放送管理システムからのブロードキャスト信号又はブロードキャスト関連情報を受信する。1つの例示的な実施例において、近距離通信を促進するよう、前記通信コンポーネント508は更に近距離無線通信(NFC)モジュールを備える。例えば、NFCモジュールは無線周波数識別(RFID)技術、赤外線データ協会(IrDA)技術、超広帯域(UWB)技術、ブルートゥース(登録商標)(BT)技術又は他の技術により実現されてもよい。
【0092】
例示的な実施例において、上記方法を実行するために、端末装置500は1つ又は複数の特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブルロジックデバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、コントローラ、マイクロコントローラ、マイクロプロセッサ又は他の電子素子により実現されてもよい。
【0093】
例示的な実施例において、更に命令を含む非一時的コンピュータ可読記憶媒体、例えば命令を含むメモリ502を提供し、上記方法を完了するために、上記命令が端末装置500のプロセッサ510により実行されてもよい。例えば、前記非一時的コンピュータ可読記憶媒体はROM、ランダムアクセスメモリ(RAM)、CD-ROM、磁気テープ、フロッピー(登録商標)ディスク及び光データ記憶装置等であってもよい。
【0094】
非一時的コンピュータ可読記憶媒体であって、前記記憶媒体における命令がモバイル端末のプロセッサにより実行されるとき、モバイル端末はニューラルネットワークモデルの暗号化方法を実行することができ、前記方法は、
ターゲットニューラルネットワークの少なくとも一部のモデルパラメータを暗号化して、暗号化後のモデルパラメータを取得することと、
前記暗号化後のモデルパラメータに基づき、前記ターゲットニューラルネットワークを記述するプログラムコードを生成することと、を含む。
【0095】
非一時的コンピュータ可読記憶媒体であって、前記記憶媒体における命令がモバイル端末のプロセッサにより実行されるとき、モバイル端末はニューラルネットワークモデルの復号方法を実行することができ、前記方法は、
ターゲットニューラルネットワークの機能を実行するためのアプリケーションプログラムを実行し、前記アプリケーションプログラムには前記ターゲットニューラルネットワークの少なくとも一部の暗号化後のモデルパラメータを記述するプログラムコードが含まれることと、
実行中の前記アプリケーションプログラムに基づき、前記ターゲットニューラルネットワークのデータを取得することと、を含む。
【0096】
当業者が明細書を考慮し及びここで開示される発明を実践した後、本発明の他の実施形態に容易に想到し得る。本願は本発明のいかなる変形、用途又は適応変化を含むように意図され、これらの変形、用途又は適応変化は本発明の一般原理に従い且つ本開示に開示されていない本技術分野における周知の知識又は慣用の技術的手段を含む。明細書及び実施例は例示的なものであると見なされ、本発明の真の範囲及び趣旨は以下の特許請求の範囲に準じる。
【0097】
本発明は以上に説明されて図面に示される正確な構造に限らず、その範囲を逸脱せずに、種々の修正や変更を行うことができると理解すべきである。本発明の範囲は添付の特許請求の範囲により制限される。