IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アンスティテュ ミーヌ−テレコムの特許一覧

<>
  • 特許-格子点列挙のための装置及び方法 図1
  • 特許-格子点列挙のための装置及び方法 図2
  • 特許-格子点列挙のための装置及び方法 図3
  • 特許-格子点列挙のための装置及び方法 図4
  • 特許-格子点列挙のための装置及び方法 図5
  • 特許-格子点列挙のための装置及び方法 図6
  • 特許-格子点列挙のための装置及び方法 図7
  • 特許-格子点列挙のための装置及び方法 図8
  • 特許-格子点列挙のための装置及び方法 図9
  • 特許-格子点列挙のための装置及び方法 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-05
(45)【発行日】2024-12-13
(54)【発明の名称】格子点列挙のための装置及び方法
(51)【国際特許分類】
   G06N 3/08 20230101AFI20241206BHJP
   G06N 20/00 20190101ALI20241206BHJP
【FI】
G06N3/08
G06N20/00 130
【請求項の数】 12
(21)【出願番号】P 2021574796
(86)(22)【出願日】2020-06-24
(65)【公表番号】
(43)【公表日】2022-08-31
(86)【国際出願番号】 EP2020067690
(87)【国際公開番号】W WO2021001241
(87)【国際公開日】2021-01-07
【審査請求日】2023-06-20
(31)【優先権主張番号】19305888.0
(32)【優先日】2019-07-01
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】510229496
【氏名又は名称】アンスティテュ・ミーヌ・テレコム
(74)【代理人】
【識別番号】110001173
【氏名又は名称】弁理士法人川口國際特許事務所
(72)【発明者】
【氏名】レカヤ,ガーヤ
(72)【発明者】
【氏名】アスクリ,アイメン
【審査官】佐藤 直樹
(56)【参考文献】
【文献】特表2007-513527(JP,A)
【文献】Mostafa MOHAMMADKARIMI et al.,Deep Learning Based Sphere Decoding,[online],v1,2018年07月06日,pp.1-9,[検索日:2024年5月30日]、インターネット<URL:https://arxiv.org/pdf/1807.03162v1.pdf>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/08
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
あるベクトル空間内の有界領域の内側にある格子点数を予測するための格子予測装置(200)であって、前記有界領域は、半径値により画定され、格子点は前記ベクトル空間上に構成される格子内のデジタル信号を表し、前記格子は、成分を含む格子生成行列により画定され、前記格子予測装置(200)は、前記半径値及び前記格子生成行列の成分から導出される入力データに機械学習アルゴリズムを適用することによって、予測格子点数を特定するように構成された計算ユニット(201)を含む、格子予測装置(200)。
【請求項2】
前記計算ユニット(201)は前記格子生成行列にQR分解を実行するように構成され、それによって上三角行列が提供され、前記計算ユニット(201)は、前記上三角行列の各成分と前記半径値の逆数との間の乗算を行うことによって前記入力データを特定するように構成される、請求項1に記載の格子予測装置(200)。
【請求項3】
前記機械学習アルゴリズムは、サポートベクタマシン、線形回帰、ロジスティック回帰分析、ナイーブベイズ、線形判別分析、決定木、k近傍法アルゴリズム、ニューラルネットワーク、及び類似度学習を含む群の中で選択される教師付き機械学習アルゴリズムである、請求項1に記載の格子予測装置(200)。
【請求項4】
前記教師付き機械学習アルゴリズムは、入力層(301)、1つ又は複数の隠れ層(303)、及び出力層(305)を含み、各層は複数の計算ノード(3011)を含む多層ディープニューラルネットワーク(300)であり、前記多層ディープニューラルネットワーク(300)はモデルパラメータ及び活性化関数に関連付けられ、前記活性化関数は前記1つ又は複数の隠れ層の前記複数の計算ノードの中の少なくとも1つの計算ノード(3011)に実装される、請求項3に記載の格子予測装置(200)。
【請求項5】
前記活性化関数は、線形活性化関数、シグモイド関数、ReLU関数、TanH関数、ソフトマックス関数、及びCUBE関数を含む群の中で選択される、請求項4に記載の格子予測装置(200)。
【請求項6】
前記計算ユニット(201)は、訓練フェーズ中に受信した訓練データから前記モデルパラメータを特定するように構成され、前記計算ユニット(201)は、前記訓練データ及び期待格子点数から複数の訓練データセットを特定するように構成され、各期待格子点数は前記複数の訓練データセットの中のある訓練データセットに関連付けられ、前記訓練フェーズは2つ以上の処理イテレーションを含み、各処理イテレーションにおいて、前記計算ユニット(201)は:
-前記複数の訓練データの中のある訓練データセットを入力として使用して前記ディープニューラルネットワーク(300)を処理し、それによって前記訓練データセットに関連付けられた中間格子点数を提供し、
-前記訓練データセットに関連付けられる前記期待格子点数及び前記中間格子点数から損失関数を特定し、
-前記損失関数の最小化に従って最適化アルゴリズムを適用することにより、更新されたモデルパラメータを特定する
ように構成される、請求項4に記載の格子予測装置(200)。
【請求項7】
前記最適化アルゴリズムは、AdaDelta最適化アルゴリズム、AdaGrad最適化アルゴリズム、Adaptive Moment Estimationアルゴリズム、ネステロフの加速勾配法アルゴリズム、ネステロフ加速Adaptive Moment Estimationアルゴリズム、RMSpropアルゴリズム、確率的勾配最適化アルゴリズム、及び適応学習率最適化アルゴリズムを含む群の中で選択される、請求項6に記載の格子予測装置(200)。
【請求項8】
前記損失関数は、平均二乗誤差関数及び指数対数尤度関数を含む群の中で選択される、請求項6に記載の格子予測装置(200)。
【請求項9】
前記計算ユニット(201)は、第一の処理イテレーションについて、ランダムに生成される数値セットから初期モデルパラメータを特定するように構成される、請求項6に記載の格子予測装置(200)。
【請求項10】
前記計算ユニット(201)は、リストスフィア復号アルゴリズム又はリストSpherical-Bound Stack復号アルゴリズムを適用することによって、前記半径値及び格子生成行列から前記期待格子点数を事前に特定するように構成される、請求項6に記載の格子予測装置(200)。
【請求項11】
コンピュータが実行する、あるベクトル空間内の有界領域の内側にある格子点数を予測する格子予測方法であって、前記有界領域は半径値により画定され、格子点は、前記ベクトル空間上に構成される格子内のデジタル信号を表し、前記格子は、成分を含む格子生成行列により画定され、前記格子予測方法は、前記半径値及び前記格子生成行列の成分から導出された入力データに機械学習アルゴリズムを適用することによって、予測格子点数を特定するステップを含む、格子予測方法。
【請求項12】
あるベクトル空間内の有界領域の内側にある格子点数を予測するためのコンピュータプログラムであって、前記有界領域は半径値により画定され、格子点は、前記ベクトル空間上に構成される格子内のデジタル信号を表し、前記格子は、成分を含む格子生成行列により画定され、前記コンピュータプログラムは、プロセッサにより実行されると、前記プロセッサに、前記半径値及び前記格子生成行列の成分から導出された入力データに予測格子点数を提供する機械学習アルゴリズムを適用させる命令を含む、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は一般にコンピュータサイエンスに関し、特に有限格子内の格子点列挙の問題を解決するための方法と装置に関する。
【背景技術】
【0002】
格子は、コンピュータサイエンス、符号化理論、デジタル通信及び記憶、並びに暗号法等の幾つかの分野において多くの用途を有する効率的なツールである。
【0003】
コンピュータサイエンスにおいては、格子は例えば、有理数上の多項式を因数分解し、多項方程式系を解くために使用される整数線形プログラミングアルゴリズムを構成するために使用される。
【0004】
符号化理論においては、格子は例えば、効率的な誤り訂正符号及び、ノイズの多いチャネル上でのデータ伝送若しくはデータ保存(例えば、クラウドコンピューティングシステム内)のための効率的な代数時空符号を構成するために使用される。格子構造を有する信号配列は、ガウス及び単一アンテナレイリフェージングチャネルのどちらでの信号伝送にも使用される。
【0005】
デジタル通信においては、格子は例えば、無線多入力多出力チャネル上で伝送される符号化又は非符号化信号の検出に使用される。
【0006】
暗号法においては、格子は例えば、特にポスト量子暗号において攻撃に対して強靭である安全な暗号プリミティブの構成のため、及び主要な暗号系の安全性証明のために使用される。例示的な格子に基づく暗号系は、暗号化方式(例えば、GGH暗号化方式及びNTRUEEncrypt)、署名(例えば、GGH署名方式)、及びハッシュ関数(例えば、格子に基づくハッシュ関数のためのSWIFFT及びLASH)を含む。
【0007】
格子問題は、格子に関する最適化問題に分類される。これらは何十年も前からその対応が取られており、これには最短ベクトル問題(SVP:shortest vector problem)、最近ベクトル問題(CVP:closest vector problem)、及び格子点列挙問題が含まれる。実際の用途において、このような格子問題は例えば、無線通信システム内のデータ検出において、測位システムの搬送波位相GNSSの整数アンビギュイティを解くことにおいて、及び暗号アルゴリズムの構成又は安全性証明に関して発生する。
【0008】
次元n≧1の格子は、n次元ベクトル空間Vの点の規則的な有限配列であり、ベクトル空間はBで示される基底とNで表示されるノルムで与えられる。幾何学及び群論では、
【数1】
格子は加法群
【数2】
の部分群であり、これは実際のベクトル空間
【数3】
にわたる。このことは、
【数4】
の何れの基底についても、基底ベクトルの整数係数との全ての線形結合の部分群が格子を形成することを意味する。各格子点は、ベクトル空間V内で、n個の整数値のベクトルを表す。
【0009】
基底BとノルムNのベクトル空間Vにわたるn次元格子Lにおける最短ベクトル問題を解決することは、格子Lにおける最短非ゼロベクトルを見つけることからなり、これはノルムNで測定される。ユークリッドノルムに基づいて最短ベクトル問題を解決するための例示的な手法としては:
-例えば“R.Kannan,Improved Algorithms for Integer Programming and related Lattice Problems,In Proceedings of the Fifteenth Annual ACM Symposium on Theory of Computing,pages 193-206”において開示されている格子列挙、
-例えば“C.P.Schnorr,Lattice Reduction by Random Sampling and Birthday Methods,In Proceedings of Annual Symposium on Theoretical Aspects of Computer Science,Pages 145-156,Springer,2003”において開示されているランダムサンプリング簡約、
-例えば“M.Ajtai,R.Kumar,and D.Sivakumar,A Sieve Algorithm for the Shortest Lattice Vector Problem,In Proceedings of the Thirty-third Annual ACM Symposium on Theory of Computing,pages 601-610,2001”において開示されている格子篩、
-例えば“D.Micciancio and P.Voulgaris,A deterministic Single Exponential Time Algorithm for Most Lattice Problems based on Voronoi Cell Computations,SIAM Journal on Computing,vol.42,pages 1364-1391”において開示されている格子のボロノイセルの計算、及び
-例えば“D.Aggrawal,D.Dadush,O.Regev,and N.Stephens-Davidwowitz,Solving the Shortest Vector Problem in 2n time Using Discrete Gaussian Sampling,In Proceedings of the Forty-seventh Annual ACM Symposium on Theory of Computing,pages 733-742,2013”において開示されている離散ガウスサンプリング
が含まれる。
【0010】
格子列挙とランダムサンプリング簡約には、超指数時間及びメモリが必要である。格子篩、格子のボロノイセルの計算、及び離散ガウスサンプリングには、格子次元において多項式によりスケーリングする非常に複雑な計算が必要となる。
【0011】
基底BとメトリックMのベクトル空間V上のn次元格子Lにおける最近ベクトル問題を解くことは、格子L内で、ベクトル空間V内(必ずしも格子L内ではない)のあるベクトルvに最も近いベクトルを見つけることからなり、これはメトリックMで測定される。最近ベクトル問題を解決するために使用される例示的な手法には、“U.Fincke and M.Pohst,Improved Methods for Calculating Vectors of Short Length in a Lattice,Including a Complextiy Analysis”において開示されているFincke-Pohstバリアントが含まれる。
【0012】
基底BとメトリックMのベクトル空間V上のn次元格子Lにおける格子点列挙は、ベクトル空間V内の、Sで表示されるあるn次元有界領域(ボール又は球)の内側にある格子点を計数する(すなわち、格子点の数を特定する)ことからなる。次元nの球の内側の格子点の数は、球の堆積に比例する。
【0013】
図1は、ベクトル空間
【数5】
内の2次元格子Lを示す。黒丸は格子Lに属する格子点を示す。破線の円100は、ベクトル空間
【数6】
の白丸で表される原点を中心とする2次元球面を示し、球の内側にある4つの格子点を含む。
【0014】
格子点列挙問題は、最近ベクトル問題及び最短ベクトル問題と深いつながりがあり、正確に解決するにはNP困難であることが知られている。既存の技術では、非常に複雑な計算が必要であり、これは格子の次元に応じて増大し、それによって実践的なシステムでのその実装が困難となる。
【先行技術文献】
【非特許文献】
【0015】
【文献】R.Kannan,Improved Algorithms for Integer Programming and related Lattice Problems,In Proceedings of the Fifteenth Annual ACM Symposium on Theory of Computing,pages 193-206
【文献】C.P.Schnorr,Lattice Reduction by Random Sampling and Birthday Methods,In Proceedings of Annual Symposium on Theoretical Aspects of Computer Science,Pages 145-156,Springer,2003
【文献】M.Ajtai,R.Kumar,and D.Sivakumar,A Sieve Algorithm for the Shortest Lattice Vector Problem,In Proceedings of the Thirty-third Annual ACM Symposium on Theory of Computing,pages 601-610,2001
【文献】D.Micciancio and P.Voulgaris,A deterministic Single Exponential Time Algorithm for Most Lattice Problems based on Voronoi Cell Computations,SIAM Journal on Computing,vol.42,pages 1364-1391
【文献】D.Aggrawal,D.Dadush,O.Regev,and N.Stephens-Davidwowitz,Solving the Shortest Vector Problem in 2n time Using Discrete Gaussian Sampling,In Proceedings of the Forty-seventh Annual ACM Symposium on Theory of Computing,pages 733-742,2013
【文献】U.Fincke and M.Pohst,Improved Methods for Calculating Vectors of Short Length in a Lattice,Including a Complextiy Analysis
【発明の概要】
【発明が解決しようとする課題】
【0016】
したがって、格子点列挙問題及び最近ベクトル問題を含む格子関連問題を解決するための、演算量が少なく、効率的な手法を考案する必要がある。
【課題を解決するための手段】
【0017】
これら及びその他の問題に対処するために、あるベクトル空間内の有界領域の内側にある格子点数を予測するための格子予測装置が提供される。有界領域は、半径値により画定され、格子点はベクトル空間上に構成される格子内のデジタル信号を表す。格子は、成分を含む格子生成行列により画定される。格子予測装置は、半径値及び格子生成行列の成分から導出される入力データに機械学習アルゴリズムを適用することによって、予測格子点数を特定するように構成された計算ユニットを含む。
【0018】
幾つかの実施形態によれば、計算ユニットは格子生成行列にQR分解を実行するように構成されてよく、それによって上三角行列が提供され、計算ユニットは、上三角行列の各成分と半径値の逆数との間の乗算を行うことによって入力データを特定するように構成される。
【0019】
幾つかの実施形態によれば、機械学習アルゴリズムは、サポートベクタマシン、線形回帰、ロジスティック回帰分析、ナイーブベイズ、線形判別分析、決定木、k近傍法アルゴリズム、ニューラルネットワーク、及び類似度学習を含む群において選択される教師付き機械学習アルゴリズムであってよい。
【0020】
幾つかの実施形態によれば、教師付き機械学習アルゴリズムは多層ディープニューラルネットワークであってよく、これは入力層、1つ又は複数の隠れ層、及び出力層を含み、各層は複数の計算ノードを含み、多層ディープニューラルネットワークはモデルパラメータ及び活性化関数に関連付けられ、活性化関数は1つ又は複数の隠れ層の複数の計算ノードの中の少なくとも1つの計算ノードに実装される。
【0021】
幾つかの実施形態によれば、活性化関数は、線形活性化関数、シグモイド関数、ReLU関数、TanH関数、ソフトマックス関数、及びCUBE関数を含む群の中で選択されてよい。
【0022】
幾つかの実施形態によれば、計算ユニットは、訓練フェーズ中に受信した訓練データからモデルパラメータを特定するように構成されてよく、計算ユニットは、訓練データ及び期待格子点数から複数の訓練データセットを特定するように構成され、各期待格子点数は複数の訓練データセットの中のある訓練データセットに関連付けられ、訓練フェーズは2つ以上の処理イテレーションを含み、各処理イテレーションにおいて、計算ユニットは:
-複数の訓練データの中のある訓練データセットを入力として使用して、その訓練データセットに関連付けられた中間格子点数を提供するディープニューラルネットワークを処理し、
-その訓練データセットに関連付けられる期待格子点及び中間格子点数から損失関数を特定し、
-損失関数の最小化に従って最適化アルゴリズムを適用することにより、更新されたモデルパラメータを特定する
ように構成される。
【0023】
幾つかの実施形態によれば、最適化アルゴリズムは、AdaDelta最適化アルゴリズム、AdaGrad最適化アルゴリズム、Adaptive Moment Estimationアルゴリズム、ネステロフの加速勾配法アルゴリズム、ネステロフ加速Adaptive Moment Estimationアルゴリズム、RMSpropアルゴリズム、確率的勾配最適化アルゴリズム、及び適応学習率最適化アルゴリズムを含む群の中で選択されてよい。
【0024】
幾つかの実施形態によれば、損失関数は、平均二乗誤差関数及び指数対数尤度関数を含む群の中で選択されてよい。
【0025】
幾つかの実施形態によれば、計算ユニットは、第一の処理イテレーションについて、ランダムに生成される数値セットから初期モデルパラメータを特定するように構成されてよい。
【0026】
幾つかの実施形態によれば、計算ユニットは、リストスフィア復号アルゴリズム又はリストSpherical-Bound Stack復号アルゴリズムを適用することによって、半径値及び格子生成行列から期待格子点数を事前に特定するように構成されてよい。
【0027】
あるベクトル空間内の有界領域の内側にある格子点数を予測する格子予測方法も提供され、有界領域は半径値により画定され、格子点は、ベクトル空間上に構成される格子内のデジタル信号を表す。格子は、成分を含む格子生成行列により画定される。格子予測方法は、半径値及び格子生成行列の成分から導出された入力データに機械学習アルゴリズムを適用することによって、予測格子点数を特定するステップを含む。
【0028】
あるベクトル空間内の有界領域の内側にある格子点数を予測するためのコンピュータプログラム製品も提供され、有界領域は半径値により画定され、格子点は、ベクトル空間上に構成される格子内のデジタル信号を表す。格子は、成分を含む格子生成行列により画定される。コンピュータプログラム製品は、非一時的コンピュータ可読記憶媒体と、非一時的可読記憶媒体上に記憶された、プロセッサにより実行されると、プロセッサに、半径値及び格子生成行列の成分から導出された入力データに予測格子点数を提供する機械学習アルゴリズムを適用させる命令を含む。
【0029】
有利な点として、本発明の実施形態により、格子列挙問題のより少ない演算量での解決が可能となる。
【0030】
有利な点として、本発明の実施形態により、文献における既存の範囲と比較して、信頼できる結果を提供する格子点列挙技術が提供される。
【0031】
本明細書に組み込まれ、その一部を構成する添付の図面は、本発明の様々な実施形態を示している。
【図面の簡単な説明】
【0032】
図1】ベクトル空間
【数7】
内の例示的な2次元格子を示す。
図2】本発明の幾つかの実施形態による格子予測装置の構造を例示するブロック図である。
図3】ディープニューラルネットワークを使用する本発明の幾つかの実施形態による機械学習アルゴリズムの略図を示す。
図4】本発明の幾つかの実施形態による、格子点数の予測方法を例示するフローチャートである。
図5】本発明の幾つかの実施形態によるディープニューラルネットワークモデルパラメータの特定方法を例示するフローチャートである。
図6】本発明の幾つかの実施形態による、訓練フェーズ中の、次元n=5の格子の期待格子点数と推定値との間の予測エラーを評価するエラーヒストグラムを例示する図である。
図7】本発明の幾つかの実施形態による、訓練フェーズ中の、次元n=10の格子の期待格子点数と推定値との間の予測エラーを評価するエラーヒストグラムを例示する図である。
図8】本発明の幾つかの実施形態による、2つの格子次元n=4及びn=6に関する隠れ層の数に応じた正規化平均二乗偏差(NRMSD)値のばらつきを例示する図である。
図9】本発明の幾つかの実施形態による、それぞれ訓練セットを考慮する格子次元n=5と等しい場合の多層ディープニューラルネットワークのパフォーマンスを例示する図である。
図10】本発明の幾つかの実施形態による、それぞれテストセットを考慮する格子次元n=5と等しい場合の多層ディープニューラルネットワークのパフォーマンスを例示する図である。
【発明を実施するための形態】
【0033】
本発明の実施形態は、ある空間ベクトル内の有界領域の内側にある格子点数を、機械学習方法を用いてより少ない演算量で予測する装置、方法、及びコンピュータプログラムを提供する。
【0034】
本発明の実施形態を理解しやすくするために、後で使用される幾つかの定義と表記法を以下に説明する。
【0035】
Kは、体、すなわちそれについて加算、減算、乗算、除算が定義される代数構造を指す。
【0036】
Vは、体K上のn次元(有限次元)K-ベクトル空間を指す。
【0037】
B={v,...,v}は、ベクトル空間VのK基底を指定する。
【0038】
N(.)は、ベクトル空間Vのノルムを指定する。
【0039】
m(.)は、ベクトル空間Vのメトリックを指定する。
【0040】
ベクトル空間V上に構成されるn次元格子K格子とは、非ユニーク格子基底B={v,...,v}によって生成されるベクトル空間Vの離散部分群を指定する。格子Λはn個の線形独立ベクトルv,...,vにより範囲が定められ、
【数8】
により与えられるセットに対応する。
【0041】
ベクトルv,...,vは、格子Λの非ユニーク格子基底を表す。
【0042】
M∈Vnxnで示される格子生成行列とは、その列ベクトルが格子Λの非ユニーク格子基底を表す行列を指す。
【0043】
格子Λに属する格子点uとは、
u=Ms,s∈K (2)
に従って格子生成行列Mの関数として書くことのできるn次元ベクトル、u∈Vを指す。
【0044】
minで表示される最短ベクトルとは、格子Λ内の、ノルムNにより測定される、λminで表示される最短長さを有し、
λmin=minU∈Λ{0}N(u) (3)
となる非ゼロベクトルを指す。
【0045】
最短ベクトル問題とは、ベクトル空間V内の、格子Λに属し、ノルムNにより測定される最短長さを有する最短非ゼロベクトルuminを見出すことを目指す最適化問題を指す。最短ベクトル問題は、
min=argminu∈Λ{0}N(u) (4)
により与えられる最適化問題を解決すべきである。
【0046】
最近ベクトル問題とは、ベクトル空間V内のベクトルvについて、格子Λ内の、ベクトルvに最も近いベクトルuを見出すことを目指す最適化問題を指し、ベクトルvとベクトルuとの間の距離はメトリックmにより測定される。最近ベクトル問題とは、
cvp=argminu∈Λ{0}(v-u) (5)
により与えられる最適化問題を解決すべきである。
【0047】
格子列挙問題とは、ベクトル空間V内の有界領域の内側にある格子点を計数する(すなわち、その数を特定する)ことを目指す最適化問題を指す。格子点はベクトルu=Msに対応するため、半径値rにより画定され、原点を中心とするベクトル空間V内の有界領域内の格子列挙問題を解くことは、格子Λに属し、半径値rより小さいか、それと等しいメトリックm(u)を有し、m(u)≦rであるベクトルu∈Λを列挙すべきである。
【0048】
格子列挙問題とは、最短ベクトル問題及び最近ベクトル問題と密接に関係する。例えば、対応する最適化問題の定義により、半径値が最短ベクトル長さと等しい場合に格子列挙問題を解くことによって、最短長さを有する格子点数が提供されるかもしれない。それに加えて、メトリックm(u)がそのベクトル空間内のベクトルと、その格子に属する他のベクトルとの間の距離に対応する場合に格子列挙問題を解くことにより、そのベクトル空間に属するベクトルの、ある有界領域の内側にある最近ベクトルの数が提供されるかもしれない。
【0049】
ユークリッド空間上にベクトル空間
【数9】
として構成される
【数10】
格子の場合、Λはユークリッド空間
【数11】
の加法離散部分群を表す。格子Λは、
【数12】
のn個の線形独立ベクトルv,...,vにより範囲が画定される。格子Λはしたがって、
【数13】
による整数線形結合のセットにより与えられる。
【0050】
格子生成行列
【数14】
とは、真値成分
【数15】
を含む真値行列を指す。格子Λに属する格子点uは、n次元ベクトル
【数16】
であり、これは、
【数17】
に従って格子生成行列Mの関数として書くことができる。
【0051】
例示的な
【数18】
格子は、立方又は整数格子
【数19】
、Aで表示される六方格子、及びDとEで表示されるルート格子を含む。
【0052】
ユークリッドベクトル空間
【数20】
上に構成された
【数21】
の例示的なノルムは、(.)=||.||で表示されるユークリッドノルムであり、これはユークリッドメトリック(「ユークリッド距離」とも呼ばれる)をユークリッド空間内の2点間の距離として定義する。
【0053】
ユークリッド空間上に構成された
【数22】
格子内の最近格子点問題を解くことは、未知のベクトルが整数からなるが、行列係数と所与のベクトルは実数からなる線型方程式系の最小二乗法による解法を見出すことを目指す最適化問題を解くことと等しい。
【0054】
D(K,θk=1,...K,σ)は、入力層、1つ又は複数の隠れ層を含むK≧2の層、及び出力層と、相互に接続された人工ニューロン(以下、「ノード」又は「計算ノード」とも呼ばれる)と、から構成される多層ディープニューラルネットワークを指す。層の数Kは、ディープニューラルネットワークの深さを表し、各層内のノードの数はディープニューラルネットワークの幅を表す。N(k)は、k番目の層の幅を指定し、k番目の層の計算ノードの数に対応する。
【0055】
多層ディープニューラルネットワークとは、θk=1,...Kと表示されるモデルパラメータ及びσと表示される活性化関数に関連付けられる。活性化関数σは、多層ディープニューラルネットワークの隠れ層内のあるニューロンの出力を画定する計算非線形関数を指す。モデルパラメータθk=1,...Kは、k=1,...,Kに関するパラメータθのセットを含み、k番目のセット
【数23】
は、

【数24】
で表示され、実数係数を含む重み行列を指定し、各係数がk番目の層に属するノードと(k-1)番目の層に属するノードとの間の接続に関連付けられる重み値を表す第一の層パラメータと、

【数25】
で表示され、k番目の層に関連付けられるバイアス値のベクトルを指定する第二の層パラメータと、
を含む多層ディープニューラルネットワークのk番目の層に関連付けられる層パラメータセットを指定する。
【0056】
Lは損失関数であり、ディープニューラルネットワークの訓練プロセス中に、推定(「中間」とも呼ばれる)及び期待値間の損失(「誤り」又は「コスト」とも呼ばれる)を推定するために使用される数学的関数を指す。
【0057】
オプティマイザ(「最適化アルゴリズム」又は「勾配降下最適化アルゴリズム」とも呼ばれる)とは、訓練フェーズ中にディープニューラルネットワークのパラメータを更新するために使用される最適化アルゴリズムを指す。
【0058】
エポックとは、訓練フェーズ内でディープニューラルネットワークが訓練データを学習した回数を指す。
【0059】
ミニバッチとは、訓練データから抽出され、訓練フェーズのイテレーションで使用される訓練データのサブセットを指す。ミニバッチサイズとは、区切られた各ミニバッチ内の訓練データサンプル数を指す。
【0060】
勾配降下アルゴリズムの学習率(「ステップサイズ」とも呼ばれる)とは、勾配の大きさに乗じられるスカラ値を指す。
【0061】
本発明の実施形態は、格子列挙問題の解決方を可能にし、最新ベクトル問題及び最短ベクトル問題の解決と組み合わせて使用することのできる装置、方法、及びコンピュータプログラム製品を提供する。このような格子問題は、幾つかの分野及び用途において発生し、これには例えば、コンピュータサイエンス、符号化、デジタル通信及び記憶、並びに暗号法が含まれるが、これらに限定されない。したがって、本発明の実施形態は、情報をデジタル形態で保存し、処理し、又は通信するように設計された様々なデジタルシステムで実装されてよい。例示的な用途には、これらに限定されないが、
-デジタルエレクトロニクス、
-通信(例えば、格子構造信号配列を用いたデジタルデータ符号化及び復号化)、
-データ処理(例えば、計算ネットワーク/システム、データセンタにおいて)、
-データ保存(例えば、クラウドコンピューティング)、
-暗号法(例えば、データ保護並びにデータ、機器、及びシステムへのアクセスの管理と認証のため、例えば、自動車産業では盗難防止を確実にするため、携帯電話機ではバッテリ及びアクセサリの管理とアクセスを認証するため、銀行業界では銀行口座と財務取引及びデータのセキュリティを保護するため、医薬品業界では医学的データ及び植込み式医療機器等の医療機器のセキュリティを保護するため、FPGAの機密では電子成分のためのハードウェアセキュリティを保護するため)、
-その他
が含まれる。
【0062】
例示的なデジタルシステムには、これらに限定されないが、
-通信システム(例えば、ラジオ、無線、単一アンテナ通信システム、複数アンテナ通信システム、光ファイバ系通信システム)、
-通信機器(例えば、単一アンテナ又は多末アンテナ機器のトランシーバ、基地局、信号配置により表されるデジタル非符号化又は符号化信号における符号化及び/又はその復号化のための中継局、携帯電話機、コンピュータ、ラップトップ、タブレット、ドローン、IoT機器)、
-記憶システム及び機器(例えば、クラウドコンピューティングアプリケーション及びクラウドサーバ、モバイル記憶装置等)、
-通信、データ処理、又は保存のため(例えば、RFIDタグ及び電子キー等のデジタル電子機器、スマートカード、キーを保存するために使用されるトークン、自動金銭出納機などのスマートカードリーダ並びに暗号メカニズムによりモニタされるログオンアクセスによるメモリカード及び/又はハードディスク)、及び格子型暗号方式(例えば、GGH暗号方式及びNTRUEEncrypt)、格子型署名(例えば、GGH署名方式)、及び格子型ハッシュ関数(例えば、SWIFFT及びLASH)を実装するために使用される暗号システム及び機器、
-整数プログラミングシステム/機器(例えば、コンピュータ、量子コンピュータ)、
-測位システム(例えば、搬送波位相GNSSの整数アンビギュイティ分解器のためのGNSS内)、
-その他
が含まれる。
【0063】
本発明の実施形態は、あるベクトル空間内の有界領域の内側にある格子点数を予測することによって格子列挙問題を解決する装置、方法、及びコンピュータプログラム製品を提供する。以下の説明は、あくまでも例示を目的としてユークリッド空間
【数26】
上に構成された
【数27】
格子に関して行われる。当業者であれば、本発明の実施形態が何れのベクトル空間上に構成される何れの格子にも応用されることが容易にわかるであろう。以下において、Λは、ユークリッド空間
【数28】

上に構成されたn次元
【数29】
格子を表し、格子Λは、格子基底B、ユークリッドノルムN(.)=||.||、ユークリッドメトリックm(.)、及び格子生成行列
【数30】
により画定される。
【0064】
図2を参照すると、その上に格子Λが構成されるあるベクトル空間V内の、Sで表示される有界領域の内側にある、有限次元格子Λ内の格子点u∈Λの数Npredを予測する格子予測装置200が提供される。有界領域は、rで示される半径値により画定される。格子Λは、Mijで表示される成分を含む格子生成行列
【数31】
で画定され、行及び列指数i及びjは1とnの間で変化する。したがって、半径値rの有界領域Sの内側にある格子点数Npredを計数することは、格子Λに属し、各々が、半径値rより小さいかそれと等しいメトリックm(u)=||u||を有し、||u||≦rとなる格子点u∈Λの数Npredを計数することへと単純化される。
【0065】
格子予測装置200は、デジタルデータ伝送、処理、又は保存に適用される、前述のデジタルシステム及びアプリケーションを含むがこれらに限定されないデジタルデータ処理、通信、又は保存機器又はシステムで実装されてよい。
【0066】
本発明の実施形態は、格子列挙問題を解決するために人工知能モデル及びアルゴリズムの使用に依存する。したがって、格子予測装置200は、半径値rと格子生成行列Mを受信し、機械学習アルゴリズムを処理することによって予測格子点数Npredを特定するように構成された計算ユニット201を含んでいてよく、機械学習アルゴリズムは、半径値r及び格子生成行列Mの成分から導出された入力テータを使って処理される。格子予測装置200は、半径値rと格子生成行列Mを保存し、これらに値を計算ユニット201にロードするように構成された記憶ユニット203を含んでいてよい。
【0067】
幾つかの実施形態によれば、計算ユニット201は、格子生成間行列にQR分解M=QRを行うように構成されていてよく、これによって上三角行列数
【数32】
及びユニタリ行列
【数33】
が提供される。計算ユニット201は、受信した半径値rと格子生成行列Mの成分から、上三角行列の各成分と半径値の逆数との乗算を行うことによって入力データを特定するように構成されてよい。より具体的には、上三角行列の構成要素をRij、i=1,...,n、j=1,...,nとして、計算ユニット201は、ベクトル
【数34】
により表示される入力データを特定するように構成されてよく、ベクトルxはN(0)=nの真値入力を含む。
【0068】
機械学習アルゴリズムは、入力として入力ベクトル
【数35】
を取り、出力(「予測」とも呼ばれる)として、半径値rの有界領域Sの内側にある予測格子点数Npredを生成する。
【0069】
幾つかの実施形態によれば、機械学習アルゴリズムは、ラベル付けされた入力-出力ペアからなるラベル付けされた訓練データに基づいて特定される関数を使って、入力データを予測データにマッピングする教師付き機械学習アルゴリズムであってよい。例示的な教師付き機械学習アルゴリズムには、これらに限定されないが、サポートベクタマシン(SVM)、線形回帰、ロジスティック回帰分析、ナイーブベイズ、線形判別分析、決定木、k近傍法アルゴリズム、ニューラルネットワーク、及び類似度学習を含む。
【0070】
好ましい実施形態において、教師付き機械学習アルゴリズムは、少なくとも3層で構成される多層フィードフォワード人工ニューラルネットワークである多層パーセプトロンであってよい。
【0071】
図3を参照すると、入力層301と、1つ又は複数の隠れ層303及び出力層305を含む少なくとも2層(K≧2)と、で構成される多層ディープニューラルネットワークD(K,θk=1,...,K,σ)300が示されている。入力層301、1つ又は複数の隠れ層303、及び出力層305の中の各層は、複数の人工ニューロン又は計算ノード3011を含む。
【0072】
多層ディープニューラルネットワーク300は完全に接続されている。したがって、1層の各計算ノードは次の層の各計算ノードに特定の重み付けを行って接続され、すなわち、前の層の接続されたノードからの入力を入力値を増幅又は減衰させる重みセットと結合する。各層の出力は同時に、入力層301から始まって、次の層の入力であり、これは入力データを受信するように構成される。
【0073】
入力計算ノード、すなわち入力層の計算ノード3011を除いて、1つ又は複数の隠れ層に含まれる各計算ノード3011は、計算ノードの重み付けされた入力を計算ノードの出力にマッピングする非線形活性化関数σを実行する。
【0074】
多層構造によれば、ディープニューラルネットワークはマッピング
【数36】
を定義し、これは入力ベクトル
【数37】
を、Kの反復処理ステップを通じて
【数38】
で表示される出力ベクトルにマッピングし、ディープニューラルネットワークのK層の中のk番目の層は、
【数39】
により表示されるマッピングを実行し、これは、k番目の層が入力として受信した入力ベクトル
【数40】
を出力ベクトル
【数41】
にマッピングする。k番目の層でのマッピングは、入力ベクトルxk-1に依存し、これは前の層の出力ベクトル及び、k番目の層に関連付けられるパラメータセット
【数42】
に対応する。k番目の層(入力層を除く)に関連付けられるマッピングf(xk-1;θ)は、
(xk-1;θ)=σ(W(k)k-1+b(k)) (8)
として表現できる。
【0075】
k番目の層の計算ノードで行われる入力-重みプロダクトは、式(8)中の、重み行列W(k)とk番目の層により入力として処理される入力ベクトルxk-1の間のプロダクト関数W(k)k-1により表され、これらの入力-重みプロダクトはその後、合計され、合計が活性化関数σに含められる。
【0076】
幾つかの実施形態によれば、活性化関数は、1つ又は複数の隠れ層303の複数の計算ノードのうちの少なくとも1つの計算ノード3011で実行されてよい。
【0077】
幾つかの実施形態によれば、活性化関数は、隠れ層の各ノードで実行されてもよい。
【0078】
幾つかの実施形態によれば、活性化関数は、線形活性化関数、シグモイド関数、TanH関数、ソフトマックス関数、整流化線形ユニット(ReLU)関数、及びCUBE関数を含む群の中で選択されてよい。
【0079】
線形活性化関数は、信号が変化しない恒等関数である。
【0080】
シグモイド関数は、ほぼ無限の範囲の独立変数を0と1の間の単純な確率に変換する。これは、入力としてある値を取り、‘0’と‘1’の間の他の値を出力する非線形関数である。
【0081】
TanH関数は、双曲正弦と双曲余弦の間の関係tanh(x)=sinh(x)/cosh(x)を表す。
【0082】
ソフトマックス活性化は、ロジスティック回帰を生成し、相互に排他的な出力クラスにわたる確率分布を返す。ソフトマックス活性化関数は、ディープニューラルネットワークの出力層で実行されてよい。
【0083】
ReLU活性化関数は、ニューロンの入力がある閾値より高い場合にニューロンを活性化する。特に、そのある閾値はゼロ(‘0’)と等しくてよく、この場合、ReLU活性化関数は、入力変数が負の値であればゼロの値を出力し、入力変数が正の値であれば、恒等関数に従って入力変数を出力する。数学的に、ReLU関数はσ(x)=max(0,x)として表現されてよい。
【0084】
幾つかの実施形態によれば、計算装置201は、訓練フェーズ中に、訓練データから多層ディープニューラルネットワークのモデルパラメータを事前に特定し、更新するように構成されてよい。訓練フェーズ(「学習フェーズ」とも呼ばれる)は、モデルパラメータθk=1,...,Kを、その多層ディープニューラルネットワークが最良の予測を提供する理想的モデルパラメータにどれだけ近いかを定量化する予測エラーを最小化できるように調整するために実行される大域的最適化問題である。モデルパラメータは当初、初期パラメータに設定されてよく、これは例えばランダムに生成される。初期パラメータはその後、訓練フェーズ中に更新され、ニューラルネットワークが最良の予測に収束できるように調整される。
【0085】
幾つかの実施形態によれば、多層ディープニューラルネットワークは、逆伝播教師付き学習方式を用いて訓練されてよく、訓練データを使って未知のデータを予測する。
【0086】
逆伝播方式は、多層ディープニューラルネットワークの異なる層により情報を順伝播及び逆伝播する反復的プロセスである。
【0087】
順伝搬フェーズでは、ニューラルネットワークは、訓練入力値と、その訓練入力値に関連する期待値(「ラベル」とも呼ばれる)を含む訓練データを受信し、期待値は、訓練入力値が入力として使用されたときのそのニューラルネットワークの期待される出力に対応する。期待値は、教師付き機械学習技術の適用において格子予測装置200により知られている。ニューラルネットワークは、多層ニューラルネットワーク全体に訓練データを伝え、訓練入力値について得られた予測に対応する期待値(「中間値」とも呼ばれる)を特定する。訓練データは、多層ディープニューラルネットワークの異なる層に含まれる計算ノードの全てが、前の層の計算ノードから受け取った入力値にそれぞれの変換又は計算を適用し、その出力値を次の層の計算ノードに送るような方法で伝えられる。データが全ての層に伝えられ、全ての計算ノードがそれぞれの計算を行うと、出力層は訓練データに対応する推定値を生成する。
【0088】
順伝搬フェーズの最後のステップは、訓練データに関連付けられる期待値を訓練データがニューラルネットワーク全体に入力として伝えられたときに得られた推定値と比較することからなる。この比較によって、推定値が期待値に関してどれだけ良い/悪いかを測定し、推定値を期待値に近付けて、予測エラー(「推定エラー」又は「コスト」とも呼ばれる)がゼロに近くなるようにすることを目的としてモデルパラメータを更新することができる。予測エラーは、モデルパラメータを目的関数の勾配の方向に更新する勾配方式に基づく損失関数を使って推定されてよい。
【0089】
順伝播フェーズに逆伝播フェーズが続き、その中ではモデルパラメータ、例えば計算ノード3011の相互接続の重みを、最適化アルゴリズムの適用によって逆の順序で徐々に調節し、最終的に良好な予測が得られ、損失関数が最小化されるようにする。
【0090】
第一に、計算された予測エラーは、出力層から開始して、推定値の計算に直接寄与する1つ又は複数の隠れ層303の全ての計算ノード3011へと逆に伝播される。各計算ノードは、ディープニューラルネットワークの出力に対するその相対的寄与に基づいて、予測エラー全体の一部を受け取る。このプロセスは層ごとに繰り返され、最終的にディープニューラルネットワークの全ての計算ノードが、予測エラー全体に対するそれぞれの相対的寄与に対応する予測エラーを受け取るようにする。予測エラーが逆方向に広がったところで、層パラメータ、例えば第一の層パラメータ(すなわち、重み)と第二の層パラメータ(すなわち、バイアス)は、損失関数の最小化に従って最適化アルゴリズムを適用することにより更新されてよい。
【0091】
幾つかの実施形態によれば、計算ユニット201は訓練フェーズ中、損失関数を計算し、訓練データ全体のためのモデルパラメータを更新することによる「バッチ勾配降下法」に従ってモデルパラメータを更新するように構成されてよい。
【0092】
幾つかの実施形態によれば、計算ユニット201は、訓練フェーズ中、訓練データの各サンプルのためのモデルパラメータを調節することによるオンライン学習に従ってモデルパラメータを更新するように構成されてもよい。オンライン学習を使用して、損失関数が訓練データの各サンプルについて評価される。オンライン学習はまた、「オンライン訓練」及び「確率的勾配降下法」とも呼ばれる。
【0093】
幾つかの実施形態によれば、計算ユニット201は、訓練フェーズ中に、データのミニバッチを使ったミニバッチ学習(「ミニバッチ勾配降下法」とも呼ばれる)に従って訓練データからモデルパラメータを更新するように構成されてもよく、サイズsのデータのミニバッチはs訓練サンプルのサブセットである。したがって、計算ユニット201は、訓練データをサイズsの2つ以上のデータバッチに区切るように構成されてよく、各バッチは入力データのsのサンプルを含む。入力データはその後、バッチでネットワークに伝えられる。ニューラルネットワーク全体に伝えられたデータの各ミニバッチについて損失関数が評価され、モデルパラメータはデータの各ミニバッチについて更新される。順伝播及び逆伝播フェーズはしたがって、データの各ミニバッチについて、最後のバッチまで実行される。
【0094】
幾つかの実施形態によれば、計算ユニット201は、訓練プロセス中に全ての訓練データをディープニューラルネットワーク300全体に複数回(エポックと呼ばれる)伝えるように構成されてよい。エポック数は、訓練データの正確さを評価する正確さメトリクスが低下し始めるか、増大し続けるまで(例えば、過学習の可能性が検出された場合)、増やしてもよい。
【0095】
【数43】
で表示される受信訓練データは、
【数44】
で表示されるNbの訓練サンプルを含んでよく、これは格子生成行列M及び半径値rから導出される上三角行列Rの成分に依存する。
【0096】
教師付き学習に基づいて、訓練サンプルはラベルが付けられてよく、すなわち、既知の期待出力値(「ターゲット」又は「ラベル」とも呼ばれる)に関連付けられてよく、これは訓練サンプルがディープニューラルネットワークの入力として使用されたときのディープニューラルネットワークの出力に対応する。より具体的には、m=1,...,Nbの場合の各サンプルx*,mは、半径rの有界領域の内側にある格子点数の期待値
【数45】
に関連付けられてよい。
【0097】
ミニバッチ学習が使用される幾つかの実施形態によれば、計算ユニット201は、訓練フェーズ中、受け取った訓練データから抽出されたミニバッチにおいてモデルパラメータを特定(更新又は調節)するように構成されてよい。このような実施形態では、計算ユニット201は、受け取った訓練データx(*,1),x(*,2),...,x(*,NB)で表示される訓練データの複数NBのセットに区切るように構成されてよく、訓練データセットはサイズsのミニバッチであり、訓練データからのsの訓練例のセットを含み、すなわち各ミニバッチx(*,1)はsのサンプルx*,mを含み、mは1~Nbの間で変化する。ミニバッチx(*,1)はまた、Sによっても指定され、訓練サンプルはNbの訓練サンプルから抽出され、すなわちS⊂Sである。
【0098】
l=1,...,NBの場合の各ミニバッチx(*,1)は、データのミニバッチx(*,1)がディープニューラルネットワークの入力として使用されたときに、ディープニューラルネットワークにより得られると期待される格子点の期待数
【数46】
に対応するターゲット値に関連付けられてよい。訓練データとターゲット値のセットはベクトルペアに分けられてよく、それによって
【数47】
で表示される各ベクトルペアはl番目のミニバッチの訓練例及びターゲット値に対応する。
【0099】
この訓練データ及び期待出力値について、計算ユニット201は訓練プロセスの順伝播及び逆伝播フェーズを実行するように構成されてよい。
【0100】
ミニバッチトレーニングに基づいて、訓練フェーズは2つ以上の処理イテレーションを含んでいてよい。各処理イテレーションで、計算ユニット201は以下のように構成されてよい:
-複数の訓練データのうちのミニバッチx(*,l)を入力として使ってディープニューラルネットワークを処理し、そのミニバッチx(*,l)に関連付けられる、
【数48】
で表示される中間格子数を提供する。中間格子数
【数49】
は、多層ディープニューラルネットワークの出力層で予測される;
-処理されたミニバッチx(*,l)について、ミニバッチx(*,l)に関連付けられる期待格子数
【数50】
及びデータのミニバッチx(*,l)を処理することによって特定された中間格子点数
【数51】
から、
【数52】
で表示される損失関数を計算する。
-ミニバッチx(*,l)の処理の後、最適化アルゴリズムを適用することによって、損失関数
【数53】
の最小化に従って更新されたモデルパラメータを特定する。より具体的には、計算ユニット201は、多層ディープニューラルネットワークD(K,θk=1,...,k,σ)のKの層の各々に関連付けられる更新された第一の層パラメータ
【数54】
と更新された第二の層パラメータ
【数55】
を特定するように構成されてよく、第一の層パラメータと第二の層パラメータはそれぞれ、ディープニューラルネットワークのニューロン間の接続に関連付けられる重みとバイアス値に対応する。
【0101】
第一の処理イテレーションについて、計算ユニット201は初期モデルパラメータを特定するように構成されてよく、これは、訓練プロセスの第一の処理イテレーションの順番伝播フェーズ中に使用される。より具体的には、計算ユニット201は、多層ディープニューラルネットワークD(K,θk=1,...,k,σ)のKの層の各々に関連付けられる初期の第一の層パラメータ
【数56】
と初期の第二の層パラメータ
【数57】
を特定するように構成されてよい。
【0102】
幾つかの実施形態によれば、計算ユニット201は、例えば標準正規分布に従って、ランダムな値のセットからランダムに、ディープニューラルネットワークの異なる層に関連付けられる初期の第一の層パラメータと初期の第二の層パラメータを特定するように構成されてよい。
【0103】
幾つかの実施形態によれば、モデルパラメータを調節し、更新されたモデルパラメータを特定するために使用される最適化アルゴリズムは、AdaDelta最適化アルゴリズム、AdaGrad最適化アルゴリズム、各モデルパラメータのための適応学習率を計算するAdaptive Moment Estimationアルゴリズム(ADAM)、ネステロフの加速勾配法(NAG)アルゴリズム、ネステロフ加速Adaptive Moment Estimation(Nadam)アルゴリズム、RMSpropアルゴリズム、確率的勾配最適化アルゴリズム、及び適応学習率最適化アルゴリズムを含む群の中で選択されてよい。
【0104】
幾つかの実施形態によれば、予測エラー又は損失を評価するために考慮される損失関数は、線形回帰のために使用される平均二乗誤差関数(MSE)及びポワソン回帰に使用される指数対数尤度(EXPLL)関数を含む群の中で選択されてよい。
【0105】
平均二乗誤差関数が使用される幾つかの実施形態によれば、l番目のデータのミニバッチについて計算された損失関数は、
【数58】
として表現されてよい。
【0106】
幾つかの実施形態によれば、計算ユニット201は、l=1,...,NBの場合の各ミニバッチSに関連付けられる期待格子数
【数59】
を、リストスフィア復号アルゴリズム又はリストSB-Stack復号アルゴリズムを適用することによって、半径値r及び格子生成行列Mから事前に特定するように構成されてよい。リストスフィア復号(LSD)アルゴリズムとリストSB-Stack復号アルゴリズムは最新ベクトル問題を解くために実行されるスフィアに基づく復号アルゴリズムである。これらは、ある半径のある有界領域の内側にあるコードワードのリストを出力する。LSD実行については、“M.El-Khamy et al.,Reduced Complexity List Sphere Decoding for MIMO systems,Digital Signal Processing,Vol.25,Pages 84-92,2014”により詳しく開示されている。
【0107】
図4を参照すると、その上に格子Λが構成されるあるベクトル空間V内の、Sにより表示される有界領域の内側にある有限次元格子Λ内の格子点u∈Λの数Npredを予測する格子予測方法も提供される。有界領域は、半径値rにより画定される。Λは、ユークリッド空間
【数60】
上に構成されるn次元
【数61】
格子を表し、格子Λは、格子基底B、ユークリッドノルムN(.)=||.||、ユークリッドメトリックm(.)及び、成分Mijを含み、行及び列指数i及びjが1とnとの間で変化する格子生成行列
【数62】
により画定される。半径値rの有界領域Sの内側にある格子点数Npredを予測することは、格子Λに属し、各々が、半径値rより小さいかそれと等しく、||u||≦rとなるメトリックm(u)=||u||を有する格子点u∈Λの数Npredを予測することに単純化される。
【0108】
ステップ401で、格子生成行列
【数63】
と半径値rが受信されてよい。
【0109】
ステップ403で、格子生成行列に対するQR分解M=QRが実行されてよく、それによって上三角行列
【数64】
及びユニタリ行列
【数65】
が提供される。
【0110】
ステップ405で、受信した半径値rと格子生成行列Mの成分から、上三角行列の各成分と半径値の逆数との間に、N(0)=n真値入力を含む入力データベクトル
【数66】
を提供する乗算を実行することによって、入力データが特定されてよい。
【0111】
ステップ407で、入力データとして入力ベクトル
【数67】
を取る機械学習アルゴリズムを処理することによって、半径値rの有界領域Sの内側にある予測格子点数Npredが特定されてよい。
【0112】
幾つかの実施形態によれば、機械学習アルゴリズムは、サポートベクタマシン、線形回帰、ロジスティック回帰分析、ナイーブベイズ、線形判別分析、決定木、k近傍法アルゴリズム、ニューラルネットワーク、及び類似度学習を含む群の中で選択される教師付き機械学習アルゴリズムであってよい。
【0113】
好ましい実施形態によれば、教師付き機械学習アルゴリズムは多層フィードフォワード人工ニューラルネットワークD(K,θk=1,...,K,σ)である多層パーセプトロンであってよく、これは入力層と、1つ又は複数の隠れ層及び出力層を含む少なくとも2層(K≧2)と、で構成され、モデルパラメータθk=1,...,Kと活性化関数σに関連付けられ、モデルパラメータθk=1,...,Kは層パラメータの複数のセット
【数68】
を含み、層パラメータの各セットは第一の層パラメータW(k)と第二の層パラメータb(k)を含む。
【0114】
幾つかの実施形態によれば、活性化関数は、線形活性化関数、シグモイド関数、TanH関数、ソフトマックス関数、整流化線形ユニット(ReLU)関数、及びCUBE関数を含む群の中で選択されてよい。
【0115】
機械学習アルゴリズムが多層ディープニューラルネットワークである幾つかの実施形態によれば、ステップ407は、訓練データを使って多層ディープニューラルネットワークを訓練する逆伝播教師付き訓練又は学習プロセスに従って、更新されたモデルパラメータを特定するために実行されるサブステップを含んでいてよい。
【0116】
幾つかの実施形態によれば、モデルパラメータは、訓練プロセス中に、損失関数を計算し、訓練データ全体のモデルパラメータを更新することによる「バッチ勾配降下法」に従って更新されてよい。
【0117】
幾つかの実施形態によれば、モデルパラメータは、訓練プロセス中に、訓練データの各サンプルのためのモデルパラメータを調節し、訓練データの各サンプルの損失を計算することによるオンライン学習に従って更新されてよい。
【0118】
他の実施形態によれば、モデルパラメータは、訓練プロセス中、データのミニバッチを使用するミニバッチ学習に従って訓練データから更新されてよく、サイズsのデータのミニバッチはsの訓練サンプルのサブセットである。したがって、訓練データは、サイズsの2つ以上のデータのミニバッチに区切られてよく、各バッチは入力データのsのサンプルを含む。入力データはその後、ミニバッチでネットワークに伝えられる。損失関数が各データのミニバッチについて評価され、モデルパラメータはデータのミニバッチごとに更新される。
【0119】
図5は、ミニバッチ学習を使用した幾つかの実施形態による、予測エラーを最小化する点で最良の予測を提供するモデルパラメータθk=1...Kを特定するために、多層ディープニューラルネットワークD(K,θk=1,...,K,σ)を訓練する方法を示すフローチャートである。
【0120】
ステップ501で、nbの訓練サンプル
【数69】
と期待格子点数
【数70】
を含む訓練データ
【数71】
が受信されてよく、m=1,...,Nbの場合の各サンプルx*,mは、サンプルx*,mがニューラルネットワークの入力であるときの多層ディープニューラルネットワークの期待される出力又は予測に対応する半径rの有界領域の内側に含まれる格子点数の期待値
【数72】
に関連付けられる。
【0121】
ステップ503で、訓練データは複数Nbの訓練データセットx(*,1),x(*,2),...,x(*.NB)に区切られてよく、訓練データセットは訓練データから抽出されたSの訓練例のセットを含むサイズsのミニバッチである。l=1,...,NBの場合の各ミニバッチx(*,1)は、データのミニバッチx(*.1)がディープニューラルネットワークの入力として使用された場合に、ディープニューラルネットワークによって得られることが期待される期待格子点数
【数73】
に関連付けられてよい。訓練データセットと期待値は、各ベクトルペア
【数74】
がl番目のミニバッチの訓練例とターゲット値に対応するようにベクトルペアに分けられてよい。
【0122】
訓練プロセスは2つ以上の処理イテレーションを含んでいてよく、これらは停止条件に到達するまで繰り返される。停止条件は、訓練データの処理済みミニバッチの数に、及び/又は更新されたモデルパラメータの、その更新されたモデルパラメータから得られる予測エラーの最小化という点での好適性に関していてよい。
【0123】
ステップ505で、第一の処理イテレーションが行われてよく、その間に初期モデルパラメータがデータの第一のミニバッチの処理のために使用されるように特定されてよい。より具体的には、ステップ505では、多層ディープニューラルネットワークD(K,θk=1...K,σ)のKの層の各々に関連付けられる初期の第一の層パラメータ
【数75】
と初期の第二の層パラメータ
【数76】
が特定されてよい。
【0124】
幾つかの実施形態によれば、ディープニューラルネットワークの異なる層に関連付けられる初期の第一の層パラメータと初期の第二の層パラメータは、値のランダムなセットからランダムに、例えば標準正規分布に従って特定されてよい。
【0125】
ステップ507~513は、停止条件に到達するまでデータのミニバッチを処理するために繰り返されてよい。訓練プロセスの処理イテレーションは、ステップ509~513からなり、l=1,...,NBの場合の複数の訓練セットx(*,1)の中のミニバッチx(*,1)の処理に関係する。
【0126】
ステップ509で、多層ディープニューラルネットワークは、複数の訓練セットの中のあるミニバッチx(*,1)を入力として使用して処理されてよく、これによってそのミニバッチx(*,1)に関連付けられる
【数77】
と表示される中間格子点数が提供される。中間格子点数
【数78】
は、多層ディープニューラルネットワークの出力層で予測される。
【0127】
ステップ511で、処理されたミニバッチx(*,1)について、ミニバッチx(*,1)に関連付けられる既知の期待格子点数
【数79】
とステップ509でデータのミニバッチx(*,1)を処理することによって特定された中間格子点数
【数80】
から、損失関数
【数81】
が計算されてよい。
【0128】
ステップ513で、最適化アルゴリズムを適用することによって、損失関数
【数82】
の最小化に従ってミニバッチx(*,1)を処理した後、更新されたモデルパラメータが特定されてよい。より具体的には、多層ディープニューラルネットワークD(K,θk=1,..,K,σ)のKの層の各々に関連付けられる第一の層パラメータ
【数83】
と第二の層パラメータ
【数84】
がステップ513で更新されてよく、第一の層パラメータと第二の層パラメータはそれぞれ、ディープニューラルネットワークのニューロンとバイアス値との間の接続に関連付けられる重みに対応する。
【0129】
幾つかの実施形態によれば、最適化アルゴリズムは、AdaDelta最適化アルゴリズム、AdaGrad最適化アルゴリズム、Adaptive Moment Estimationアルゴリズム、ネステロフの加速勾配法アルゴリズム、ネステロフ加速Adaptive Moment Estimationアルゴリズム、RMSpropアルゴリズム、確率的勾配最適化アルゴリズム、及び適応学習率最適化アルゴリズムを含む群の中で選択されてよい。
【0130】
幾つかの実施形態によれば、損失関数は、平均二乗誤差関数及び指数対数尤度関数を含む群の中で選択されてよい。
【0131】
幾つかの実施形態によれば、ステップ501は、l=1,...,NBの場合の各ミニバッチSに関連付けられる期待格子点数
【数85】
を、スフィアデコーダ又はSB-Stackデコーダに基づくリストSB-Stackに基づくリストスフィア復号アルゴリズムを適用することによって半径値r及び格子生成行列Mから特定することを含んでいてよい。
【0132】
その上に格子Λが構成されるあるベクトル空間Vの有界領域Sの内側にある有限次元格子Λ内の格子点u∈Λの数Npredを予測するコンピュータプログラム製品も提供される。有界領域は半径値rにより画定される。Λは、ユークリッド空間
【数86】
上に構成されるn次元
【数87】
格子を表し、格子Λは、格子基底B、ユークリッドノルムN(.)=||.||、ユークリッドメトリックm(.)及び、成分Mijを含み、行及び列指数i及びjが1とnとの間で変化する格子生成行列
【数88】
により画定される。コンピュータプログラム製品は、非一時的コンピュータ可読記憶媒体と、非一時的可読記憶媒体上に記憶された、プロセッサにより実行されると、プロセッサに、半径値rと格子生成行列Mの成分Mijから導出された入力データを使って、予測格子点数Npredを提供する機械学習アルゴリズムを処理させる命令を含む。
【0133】
提供される格子予測装置及び方法のパフォーマンスを幾つかのシミュレーション実験を通じて評価した。図6~10は、2~10の異なる格子次元nを考慮して得られた結果を示す図である。格子生成行列Mの成分Mijは、単位分散でのi.i.d.ゼロ平均ガウスランダム変数としてモデル化されている。各格子次元について使用される訓練データは、50000の訓練サンプルを含む。ミニバッチ学習がこれらのシミュレーション実験で考慮され、そのために訓練サンプルはサイズs=20のNB=2500のバッチに区切られている。適応学習率が0.001と等しいAdaptive Moment Estimation(Adam)最適化アルゴリズムが使用されている。多層ディープニューラルネットワークは、入力ベクトルとして次元nのベクトルを取る入力層と、最大10の隠れ層と、予測としてある半径の有界領域の内側にある予測格子点数を生成する入力層で構成される。隠れ層の計算ノードの数は、格子次元に依存し、入力可変数の数より大きいか、又はそれと等しくなるように選択される。
【0134】
図6及び7は、それぞれ次元n=5及びn=10の格子に関する訓練フェーズ中に期待格子点数と推定値との間の訓練フェーズ中の予測エラーを評価するためのエラーヒストグラムを示す図である。図6及び7の図は、提案される予測方法が正確な予測を提供する点のパーセンテージが高いことを示す。
【0135】
図8は、2つの格子次元n=4及びn=6に関する隠れ層の数に応じた正規化平均二乗偏差(NRMSD)値のばらつきを示す図である。正規化平均二乗偏差は、平均二乗偏差(予測エラーを評価するためのメトリックとして使用される)と平均値との間の比を評価する。図8は、隠れ層の数が増えるとNRMSDが減少し、同時に、3と等しい隠れ層の十分な数は高い予測正確さを実現するのに十分であることを示している。
【0136】
図9及び10は、格子次元n=5の場合の多層ディープニューラルネットワークの、それぞれ訓練セットとテストセットを考慮したパフォーマンスを示す図である。多層ディープニューラルネットワークの予測出力がターゲット出力に対してプロットされており、すなわち予測格子点数は期待格子点数に対してプロットされている。図9及び10の図は、予測格子点数が小さい半径値の有界領域(スフィア)のy=x軸の周囲に集中していることを示している。これは、本発明の実施形態による予測モデルが格子点の濃度にフィットし、正確な予測を提供することを示している。高い半径値についてもある程度の正確さが得られるかもしれない。
【0137】
本明細書に記載の装置、方法、及びコンピュータプログラム製品は、様々な手段で実装されてよい。例えば、これらの技術はハードウェア、ソフトウェア、又はそれらの組合せで実装されてよい。ハードウェア実装の場合、格子予測装置200の処理要素を、例えばハードウェアのみのコンフィギュレーション(例えば、対応するメモリを備える1つ又は複数のFPGA、ASIC、又はVLSI集積回路)に従って、又はVLSIとデジタル信号プロセッサ(DSP)の両方を持っているコンフィギュレーションに従って実装できる。
【0138】
さらに、本明細書に記載の方法は、何れの種類のコンピュータのプロセッサに供給されるコンピュータプログラム命令によっても実装でき、本明細書において明示される機能/動作を行うための命令を実行するプロセッサを備えるマシンが製造される。これらのコンピュータプログラム命令はまた、コンピュータに対し、特定の方法で機能させるように指示できるコンピュータ可読媒体上に記憶されてもよい。そのために、コンピュータプログラム命令は、コンピュータにロードされて、一連の動作ステップの実行を生じさせてもよく、それによって、実行された命令が本明細書において明示されている機能を実行するためのプロセスを提供するようにコンピュータ実装プロセスが生成される。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10