JP6958085B2 - 行列分解装置、行列分解方法及び行列分解プログラム - Google Patents
行列分解装置、行列分解方法及び行列分解プログラム Download PDFInfo
- Publication number
- JP6958085B2 JP6958085B2 JP2017150278A JP2017150278A JP6958085B2 JP 6958085 B2 JP6958085 B2 JP 6958085B2 JP 2017150278 A JP2017150278 A JP 2017150278A JP 2017150278 A JP2017150278 A JP 2017150278A JP 6958085 B2 JP6958085 B2 JP 6958085B2
- Authority
- JP
- Japan
- Prior art keywords
- matrix
- update
- change
- updated
- spin
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Complex Calculations (AREA)
- Apparatus Associated With Microorganisms And Enzymes (AREA)
Description
次に、本実施例における処理について、図3A及び図3Bを用いて説明する。図3Aは、実施例1における行列分解処理の一例を示すフローチャートである。図3Aに示すように、行列分解装置100の入出力部131は、例えば図示しない通信部又は入力装置等を通じて、行列Vの入力を受け付けるまで待機する(S100:No)。
以上説明したように、本実施例における行列分解装置は、分解対象の行列を、第1の解行列と第2の解行列とに分解する。行列分解装置は、分解対象の行列に基づいて、エネルギー関数を生成する。行列分解装置は、温度の初期値に基づいて、アニーリングを行う温度を決定する。行列分解装置は、更新後の第1の行列と更新後の第2の行列との積を、分解対象の行列から引いた差分の絶対値を要素とする行列において、要素が1となる複数の位置情報を抽出する。行列分解装置は、ランク数と複数の位置情報とに基づいてスピンを変化させる試行回数を決定する。行列分解装置は、所定の繰り返し回数だけ、生成されたエネルギー関数に従い、更新後の第1の行列と更新後の第2の行列とに基づき、更新後のエネルギー関数を計算する。行列分解装置は、選択列番号情報に対応する第1の行列のスピンと、選択行番号情報に対応する第2の行列のスピンとをそれぞれ変化させる。行列分解装置は、変化後の第1の行列のスピンと変化後の第2の行列のスピンとを用いて変化後のエネルギー値を計算する。行列分解装置は、変化後のエネルギー値が更新後のエネルギー値よりも小さい場合、更新後のエネルギー値を変化後のエネルギー値、変化後の第1の行列のスピンを含む第1の行列を更新後の第1の行列、変化後の第2の行列のスピンを含む第2の行列を更新後の第2の行列にそれぞれ更新することを繰り返す。行列分解装置は、更新後の第1の行列と更新後の第2の行列の積が分解対象の行列と等しい場合、更新後の第1の行列を第1の解行列とし、更新後の第2の行列を第2の解行列とする。行列分解装置は、試行回数だけ、複数の位置情報に含まれる複数の列番号情報から、1つの選択列番号情報を選択するとともに、複数の位置情報に含まれる複数の行番号情報から、1つの選択行番号情報を選択することを繰り返す。これにより、要素の不一致を抑制できる。
次に、本実施例における処理について、図7を用いて説明する。図7は、実施例2における変更スピン選択処理の一例を示すフローチャートである。なお、図7は、図3AのS132における処理の詳細を示すものである。
以上説明したように、本実施例における行列分解装置は、第1の行列と第2の行列の積と、分解対象の行列との差に基づいて選択列番号情報として選択するとともに、第1の行列と第2の行列の積と、分解対象の行列との差に基づいて選択行番号情報として選択する。これにより、計算量を削減できる。
以上説明したように、本実施例において、更新後の第1の行列と更新後の第2の行列との積は、例えばブール代数による積であるが、これに限られず、2の剰余系による積としてもよく、また行列積としてもよい。これにより、要素の値がブール代数系を満たさないような行列を分解する際においても、要素の不一致を抑制できる。
次に、本実施例における処理について、図12を用いて説明する。図12は、実施例4における暗号解読処理の一例を示すフローチャートである。図12に示すように、本実施例における行列分解装置600は、例えば図示しない通信部又は入力装置等を通じて、k行n列の行列G’の入力を受け付けるまで待機する(S400:No)。
以上説明したように、本実施例において、行列分解装置は、分解対象の行列を、第1の解行列と第2の解行列と第3の解行列とに分解する。行列分解装置は、分解対象の行列に基づいて、エネルギー関数を生成する。行列分解装置は、温度の初期値に基づいて、アニーリングを行う温度を決定する。行列分解装置は、更新後の第1の行列と更新後の第4の行列との積を、分解対象の行列から引いた差分の絶対値を要素とする行列において、非ゼロ要素となる要素の複数の位置情報を抽出する。行列分解装置は、第1のランク数と複数の位置情報とに基づいてスピンを変化させる試行回数を決定する。行列分解装置は、所定の繰り返し回数だけ、生成されたエネルギー関数に従い、更新後の第1の行列と更新後の第2の行列とに基づき、更新後のエネルギー関数を計算する。行列分解装置は、選択列番号情報に対応する第1の行列のスピンと、選択行番号情報に対応する第2の行列のスピンとをそれぞれ変化させ、変化後の第1の行列のスピンと変化後の第2の行列のスピンとを用いて変化後のエネルギー値を計算する。行列分解装置は、変化後のエネルギー値が更新後のエネルギー値よりも小さい場合、更新後のエネルギー値を変化後のエネルギー値、変化後の第1の行列のスピンを含む第1の行列を更新後の第1の行列、変化後の第2の行列のスピンを含む第2の行列を更新後の第2の行列にそれぞれ更新することを繰り返す。行列分解装置は、更新後の第1の行列と更新後の第2の行列の積が分解対象の行列と等しい場合、更新後の第1の行列を第1の解行列とし、更新後の第2の行列を第4の行列とする。行列分解装置は、試行回数だけ、複数の位置情報に含まれる複数の列番号情報から、1つの選択列番号情報を選択するとともに、複数の位置情報に含まれる複数の行番号情報から、1つの選択行番号情報を選択することを繰り返す。行列分解装置は、更新後の第4の行列と更新後の第3の行列との積を、分解対象の行列から引いた差分の絶対値を要素とする行列において、非ゼロ要素となる要素の複数の位置情報を抽出する。行列分解装置は、第2のランク数と複数の位置情報とに基づいてスピンを変化させる試行回数を決定する。行列分解装置は、所定の繰り返し回数だけ、生成されたエネルギー関数に従い、更新後の第4の行列と更新後の第3の行列とに基づき、更新後のエネルギー関数を計算する。行列分解装置は、選択列番号情報に対応する第4の行列のスピンと、選択行番号情報に対応する第3の行列のスピンとをそれぞれ変化させ、変化後の第4の行列のスピンと変化後の第3の行列のスピンとを用いて変化後のエネルギー値を計算する。行列分解装置は、変化後のエネルギー値が更新後のエネルギー値よりも小さい場合、更新後のエネルギー値を変化後のエネルギー値、変化後の第4の行列のスピンを含む第4の行列を更新後の第4の行列、変化後の第3の行列のスピンを含む第3の行列を更新後の第3の行列にそれぞれ更新することを繰り返す。行列分解装置は、更新後の第4の行列と更新後の第3の行列の積が分解対象の行列と等しい場合、更新後の第4の行列を第2の解行列とし、更新後の第3の行列を第3の解行列とする。行列分解装置は、試行回数だけ、複数の位置情報に含まれる複数の列番号情報から、1つの選択列番号情報を選択するとともに、複数の位置情報に含まれる複数の行番号情報から、1つの選択行番号情報を選択することを繰り返す。これにより、例えばマクエリス暗号などの離散値の行列分解に基づく暗号の秘密鍵を、公開鍵から容易に解読することができる。
本実施例における、図3AのS132において乱数を用いて変更スピンを選択する処理について、図13乃至図15を用いて説明する。図13は、実施例5における変更スピン選択処理の一例を示すフローチャートである。図13に示すように、本実施例における行列分解装置700は、WのNw1行目〜Nwp行目を、スピンの候補として選択する。また、行列分解装置700は、HのNh1列目〜Nhp列目を、スピンの候補として選択する。この場合において、行列分解装置700は、各行における重みをDw1〜Dwpとし、各列における重みをDh1〜Dhpとする(S501)。
また、上記の実施例においては、図3AのS112に示す温度Tを算出する処理において、式(3)に示すように、イテレーション回数の対数の逆数を温度Tとして算出しているが、実施の形態はこれに限られない。例えば、温度をイテレーション回数の逆数とすることにより、温度の低下が緩やかになるような構成であってもよい。また、温度をイテレーション回数の指数の逆数とすることにより、温度が急激に低下するような構成であってもよい。
なお、上記の実施例においては、スピンsの値が{0,1}である例について説明したが、実施の形態はこれに限られない。例えば、{−1,1}であるような値をとるδをスピンの値とするような構成であってもよい。かかるスピンδの値とスピンsの値との関係は、例えばs=(δ+1)/2のような数式により示される。
次に、上記実施例に示した行列分解プログラムを実行するコンピュータの一例について説明する。図17は、行列分解装置のハードウェア構成の一例を示す図である。図17に示すように、コンピュータ400は、各種演算処理を実行するCPU401と、ユーザからのデータ入力を受け付ける入力装置402と、モニタ403とを有する。また、コンピュータ400は、各種情報を一時記憶するRAM(Random Access Memory)404と、ハードディスク装置405とを有する。また、各装置401〜405は、バス406に接続される。
120 記憶部
121 スピン記憶部
130 制御部
131 入出力部
132 初期設定部
133 スピン抽出部
134 スピン変更部
135 温度制御部
136 エネルギー算出部
137 判定部
Claims (13)
- ブール代数系を満たす非負行列または2の剰余系を満たす行列である分解対象の行列を、第1の解行列と第2の解行列とに分解する行列分解装置において、
前記分解対象の行列に基づいて、アニーリングに関するエネルギー関数を生成する関数生成部と、
温度の初期値に基づいて、前記アニーリングを行う温度を決定する温度決定部と、
更新後の第1の行列と更新後の第2の行列とのブール代数による積または2の剰余系による積を、前記分解対象の行列から引いた差分の絶対値を要素とする行列において、要素が1となる複数の位置情報を抽出するとともに、ランク数と前記複数の位置情報とに基づいてスピンを変化させる試行回数を決定する評価部と、
所定の繰り返し回数だけ、生成されたエネルギー関数に従い、前記更新後の第1の行列と前記更新後の第2の行列とに基づき、更新後のエネルギー関数を計算するとともに、選択列番号情報に対応する前記第1の行列のスピンと、選択行番号情報に対応する前記第2の行列のスピンとをそれぞれ変化させ、変化後の第1の行列のスピンと変化後の第2の行列のスピンとを用いて変化後のエネルギー値を計算し、前記変化後のエネルギー値が前記更新後のエネルギー値よりも小さい場合、前記更新後のエネルギー値を前記変化後のエネルギー値、変化後の第1の行列のスピンを含む第1の行列を前記更新後の第1の行列、変化後の第2の行列のスピンを含む第2の行列を前記更新後の第2の行列にそれぞれ更新することを繰り返し、前記更新後の第1の行列と前記更新後の第2の行列の積が前記分解対象の行列と等しい場合、前記更新後の第1の行列を前記第1の解行列とし、前記更新後の第2の行列を前記第2の解行列とする計算部と、
前記試行回数だけ、前記複数の位置情報に含まれる複数の列番号情報から、1つの前記選択列番号情報を選択するとともに、前記複数の位置情報に含まれる複数の行番号情報から、1つの前記選択行番号情報を選択することを繰り返す選択部と、
を有する行列分解装置。 - 前記選択部は、乱数に基づいて前記選択列番号情報を選択するとともに、前記乱数に基づいて前記選択行番号情報を選択することを特徴とする請求項1に記載の行列分解装置。
- 前記選択部において、
前記乱数は、一様乱数である請求項2に記載の行列分解装置。 - 前記選択部において、
前記乱数は、重み付き乱数である請求項2に記載の行列分解装置。 - 前記選択部は、前記第1の行列と前記第2の行列の積と、前記分解対象の行列との差に基づいて前記選択列番号情報として選択するとともに、前記第1の行列と前記第2の行列の積と、前記分解対象の行列との差に基づき、前記選択行番号情報として選択することを特徴とする請求項1に記載の行列分解装置。
- 前記評価部において、
前記更新後の第1の行列と前記更新後の第2の行列との積は、行列積である請求項1〜5のいずれか1項に記載の行列分解装置。 - 前記関数生成部は、更新前の前記第1の行列と更新前の前記第2の行列との積における非ゼロ要素の比率が、前記分解対象の行列における非ゼロ要素の比率に近似するように、前記第1の行列の初期値及び前記第2の行列の初期値を設定することを特徴とする請求項1〜6のいずれか1項に記載の行列分解装置。
- 前記計算部は、前記変化後のエネルギー値が前記更新後のエネルギー値よりも大きい場合、前記温度決定部により決定された前記アニーリングを行う温度を用いて乱数を発生させ、前記乱数が所定の確率値以上である場合に、前記更新後のエネルギー値を前記変化後のエネルギー値、変化後の第1の行列のスピンを含む第1の行列を前記更新後の第1の行列、変化後の第2の行列のスピンを含む第2の行列を前記更新後の第2の行列にそれぞれ更新することを特徴とする請求項1〜7のいずれか1項に記載の行列分解装置。
- ブール代数系を満たす非負行列または2の剰余系を満たす行列である分解対象の行列を、第1の解行列と第2の解行列と第3の解行列とに分解する行列分解装置において、
前記分解対象の行列に基づいて、アニーリングに関するエネルギー関数を生成する関数生成部と、
温度の初期値に基づいて、前記アニーリングを行う温度を決定する温度決定部と、
更新後の第1の行列と更新後の第4の行列とのブール代数による積または2の剰余系による積を、前記分解対象の行列から引いた差分の絶対値を要素とする行列において、非ゼロ要素となる要素の複数の位置情報を抽出するとともに、ランク数と前記複数の位置情報とに基づいてスピンを変化させる試行回数を決定する評価部と、
所定の繰り返し回数だけ、生成されたエネルギー関数に従い、前記更新後の第1の行列と前記更新後の第4の行列とに基づき、更新後のエネルギー関数を計算するとともに、選択列番号情報に対応する前記第1の行列のスピンと、選択行番号情報に対応する前記第4の行列のスピンとをそれぞれ変化させ、変化後の第1の行列のスピンと変化後の第4の行列のスピンとを用いて変化後のエネルギー値を計算し、前記変化後のエネルギー値が前記更新後のエネルギー値よりも小さい場合、前記更新後のエネルギー値を前記変化後のエネルギー値、変化後の第1の行列のスピンを含む第1の行列を前記更新後の第1の行列、変化後の第4の行列のスピンを含む第4の行列を前記更新後の第4の行列にそれぞれ更新することを繰り返し、前記更新後の第1の行列と前記更新後の第4の行列の積が前記分解対象の行列と等しい場合、前記更新後の第1の行列を前記第1の解行列とし、前記更新後の第4の行列を第4の解行列とする計算部と、
前記試行回数だけ、前記複数の位置情報に含まれる複数の列番号情報から、1つの前記選択列番号情報を選択するとともに、前記複数の位置情報に含まれる複数の行番号情報から、1つの前記選択行番号情報を選択することを繰り返す選択部と、
を有し、
前記評価部は、更新後の第2の行列と更新後の第3の行列とのブール代数による積または2の剰余系による積を、前記第4の解行列から引いた差分の絶対値を要素とする行列において、非ゼロ要素となる要素の複数の位置情報を抽出するとともに、前記ランク数と前記複数の位置情報とに基づいてスピンを変化させる試行回数を決定し、
前記計算部は、所定の繰り返し回数だけ、生成されたエネルギー関数に従い、前記更新後の第2の行列と前記更新後の第3の行列とに基づき、更新後のエネルギー関数を計算するとともに、選択列番号情報に対応する前記第2の行列のスピンと、選択行番号情報に対応する前記第3の行列のスピンとをそれぞれ変化させ、変化後の第2の行列のスピンと変化後の第3の行列のスピンとを用いて変化後のエネルギー値を計算し、前記変化後のエネルギー値が前記更新後のエネルギー値よりも小さい場合、前記更新後のエネルギー値を前記変化後のエネルギー値、変化後の第2の行列のスピンを含む第2の行列を前記更新後の第2の行列、変化後の第3の行列のスピンを含む第3の行列を前記更新後の第3の行列にそれぞれ更新することを繰り返し、前記更新後の第2の行列と前記更新後の第3の行列の積が前記第4の解行列と等しい場合、前記更新後の第2の行列を前記第2の解行列とし、前記更新後の第3の行列を第3の解行列とし、
前記選択部は、前記試行回数だけ、前記複数の位置情報に含まれる複数の列番号情報から、1つの前記選択列番号情報を選択するとともに、前記複数の位置情報に含まれる複数の行番号情報から、1つの前記選択行番号情報を選択することを繰り返すことを特徴とする行列分解装置。 - ブール代数系を満たす非負行列または2の剰余系を満たす行列である分解対象の行列を、第1の解行列と第2の解行列とに分解する行列分解方法において、
前記分解対象の行列に基づいて、アニーリングに関するエネルギー関数を生成し、
温度の初期値に基づいて、前記アニーリングを行う温度を決定し、
更新後の第1の行列と更新後の第2の行列とのブール代数による積または2の剰余系による積を、前記分解対象の行列から引いた差分の絶対値を要素とする行列において、要素が1となる複数の位置情報を抽出するとともに、ランク数と前記複数の位置情報とに基づいてスピンを変化させる試行回数を決定し、
所定の繰り返し回数だけ、生成されたエネルギー関数に従い、前記更新後の第1の行列と前記更新後の第2の行列とに基づき、更新後のエネルギー関数を計算するとともに、選択列番号情報に対応する前記第1の行列のスピンと、選択行番号情報に対応する前記第2の行列のスピンとをそれぞれ変化させ、変化後の第1の行列のスピンと変化後の第2の行列のスピンとを用いて変化後のエネルギー値を計算し、前記変化後のエネルギー値が前記更新後のエネルギー値よりも小さい場合、前記更新後のエネルギー値を前記変化後のエネルギー値、変化後の第1の行列のスピンを含む第1の行列を前記更新後の第1の行列、変化後の第2の行列のスピンを含む第2の行列を前記更新後の第2の行列にそれぞれ更新することを繰り返し、前記更新後の第1の行列と前記更新後の第2の行列の積が前記分解対象の行列と等しい場合、前記更新後の第1の行列を前記第1の解行列とし、前記更新後の第2の行列を前記第2の解行列とし、
前記試行回数だけ、前記複数の位置情報に含まれる複数の列番号情報から、1つの前記選択列番号情報を選択するとともに、前記複数の位置情報に含まれる複数の行番号情報から、1つの前記選択行番号情報を選択することを繰り返す
処理をコンピュータが実行することを特徴とする行列分解方法。 - ブール代数系を満たす非負行列または2の剰余系を満たす行列である分解対象の行列を、第1の解行列と第2の解行列と第3の解行列とに分解する行列分解方法において、
前記分解対象の行列に基づいて、アニーリングに関するエネルギー関数を生成し、
温度の初期値に基づいて、前記アニーリングを行う温度を決定し、
更新後の第1の行列と更新後の第4の行列とのブール代数による積または2の剰余系による積を、前記分解対象の行列から引いた差分の絶対値を要素とする行列において、非ゼロ要素となる要素の複数の位置情報を抽出するとともに、ランク数と前記複数の位置情報とに基づいてスピンを変化させる試行回数を決定し、
所定の繰り返し回数だけ、生成されたエネルギー関数に従い、前記更新後の第1の行列と前記更新後の第4の行列とに基づき、更新後のエネルギー関数を計算するとともに、選択列番号情報に対応する前記第1の行列のスピンと、選択行番号情報に対応する前記第4の行列のスピンとをそれぞれ変化させ、変化後の第1の行列のスピンと変化後の第4の行列のスピンとを用いて変化後のエネルギー値を計算し、前記変化後のエネルギー値が前記更新後のエネルギー値よりも小さい場合、前記更新後のエネルギー値を前記変化後のエネルギー値、変化後の第1の行列のスピンを含む第1の行列を前記更新後の第1の行列、変化後の第4の行列のスピンを含む第4の行列を前記更新後の第4の行列にそれぞれ更新することを繰り返し、前記更新後の第1の行列と前記更新後の第4の行列の積が前記分解対象の行列と等しい場合、前記更新後の第1の行列を前記第1の解行列とし、前記更新後の第4の行列を第4の解行列とし、
前記試行回数だけ、前記複数の位置情報に含まれる複数の列番号情報から、1つの前記選択列番号情報を選択するとともに、前記複数の位置情報に含まれる複数の行番号情報から、1つの前記選択行番号情報を選択することを繰り返す
処理を含み、
前記試行回数を決定する処理は、更新後の第2の行列と更新後の第3の行列とのブール代数による積または2の剰余系による積を、前記第4の解行列から引いた差分の絶対値を要素とする行列において、非ゼロ要素となる要素の複数の位置情報を抽出するとともに、前記ランク数と前記複数の位置情報とに基づいてスピンを変化させる試行回数を決定し、
前記計算する処理は、所定の繰り返し回数だけ、生成されたエネルギー関数に従い、前記更新後の第2の行列と前記更新後の第3の行列とに基づき、更新後のエネルギー関数を計算するとともに、選択列番号情報に対応する前記第2の行列のスピンと、選択行番号情報に対応する前記第3の行列のスピンとをそれぞれ変化させ、変化後の第2の行列のスピンと変化後の第3の行列のスピンとを用いて変化後のエネルギー値を計算し、前記変化後のエネルギー値が前記更新後のエネルギー値よりも小さい場合、前記更新後のエネルギー値を前記変化後のエネルギー値、変化後の第2の行列のスピンを含む第2の行列を前記更新後の第2の行列、変化後の第3の行列のスピンを含む第3の行列を前記更新後の第3の行列にそれぞれ更新することを繰り返し、前記更新後の第2の行列と前記更新後の第3の行列の積が前記第4の解行列と等しい場合、前記更新後の第2の行列を前記第2の解行列とし、前記更新後の第3の行列を第3の解行列とし、
前記選択することを繰り返す処理は、前記試行回数だけ、前記複数の位置情報に含まれる複数の列番号情報から、1つの前記選択列番号情報を選択するとともに、前記複数の位置情報に含まれる複数の行番号情報から、1つの前記選択行番号情報を選択することを繰り返す
処理をコンピュータが実行することを特徴とする行列分解方法。 - ブール代数系を満たす非負行列または2の剰余系を満たす行列である分解対象の行列を、第1の解行列と第2の解行列とに分解する行列分解プログラムにおいて、
前記分解対象の行列に基づいて、アニーリングに関するエネルギー関数を生成し、
温度の初期値に基づいて、前記アニーリングを行う温度を決定し、
更新後の第1の行列と更新後の第2の行列とのブール代数による積または2の剰余系による積を、前記分解対象の行列から引いた差分の絶対値を要素とする行列において、要素が1となる複数の位置情報を抽出するとともに、ランク数と前記複数の位置情報とに基づいてスピンを変化させる試行回数を決定し、
所定の繰り返し回数だけ、生成されたエネルギー関数に従い、前記更新後の第1の行列と前記更新後の第2の行列とに基づき、更新後のエネルギー関数を計算するとともに、選択列番号情報に対応する前記第1の行列のスピンと、選択行番号情報に対応する前記第2の行列のスピンとをそれぞれ変化させ、変化後の第1の行列のスピンと変化後の第2の行列のスピンとを用いて変化後のエネルギー値を計算し、前記変化後のエネルギー値が前記更新後のエネルギー値よりも小さい場合、前記更新後のエネルギー値を前記変化後のエネルギー値、変化後の第1の行列のスピンを含む第1の行列を前記更新後の第1の行列、変化後の第2の行列のスピンを含む第2の行列を前記更新後の第2の行列にそれぞれ更新することを繰り返し、前記更新後の第1の行列と前記更新後の第2の行列の積が前記分解対象の行列と等しい場合、前記更新後の第1の行列を前記第1の解行列とし、前記更新後の第2の行列を前記第2の解行列とし、
前記試行回数だけ、前記複数の位置情報に含まれる複数の列番号情報から、1つの前記選択列番号情報を選択するとともに、前記複数の位置情報に含まれる複数の行番号情報から、1つの前記選択行番号情報を選択することを繰り返す
処理をコンピュータに実行させることを特徴とする行列分解プログラム。 - ブール代数系を満たす非負行列または2の剰余系を満たす行列である分解対象の行列を、第1の解行列と第2の解行列と第3の解行列とに分解する行列分解プログラムにおいて、
前記分解対象の行列に基づいて、アニーリングに関するエネルギー関数を生成し、
温度の初期値に基づいて、前記アニーリングを行う温度を決定し、
更新後の第1の行列と更新後の第4の行列とのブール代数による積または2の剰余系による積を、前記分解対象の行列から引いた差分の絶対値を要素とする行列において、非ゼロ要素となる要素の複数の位置情報を抽出するとともに、ランク数と前記複数の位置情報とに基づいてスピンを変化させる試行回数を決定し、
所定の繰り返し回数だけ、生成されたエネルギー関数に従い、前記更新後の第1の行列と前記更新後の第4の行列とに基づき、更新後のエネルギー関数を計算するとともに、選択列番号情報に対応する前記第1の行列のスピンと、選択行番号情報に対応する前記第4の行列のスピンとをそれぞれ変化させ、変化後の第1の行列のスピンと変化後の第4の行列のスピンとを用いて変化後のエネルギー値を計算し、前記変化後のエネルギー値が前記更新後のエネルギー値よりも小さい場合、前記更新後のエネルギー値を前記変化後のエネルギー値、変化後の第1の行列のスピンを含む第1の行列を前記更新後の第1の行列、変化後の第4の行列のスピンを含む第4の行列を前記更新後の第4の行列にそれぞれ更新することを繰り返し、前記更新後の第1の行列と前記更新後の第4の行列の積が前記分解対象の行列と等しい場合、前記更新後の第1の行列を前記第1の解行列とし、前記更新後の第4の行列を第4の解行列とし、
前記試行回数だけ、前記複数の位置情報に含まれる複数の列番号情報から、1つの前記選択列番号情報を選択するとともに、前記複数の位置情報に含まれる複数の行番号情報から、1つの前記選択行番号情報を選択することを繰り返す
処理を含み、
前記試行回数を決定する処理は、更新後の第2の行列と更新後の第3の行列とのブール代数による積または2の剰余系による積を、前記第4の解行列から引いた差分の絶対値を要素とする行列において、非ゼロ要素となる要素の複数の位置情報を抽出するとともに、前記ランク数と前記複数の位置情報とに基づいてスピンを変化させる試行回数を決定し、
前記計算する処理は、所定の繰り返し回数だけ、生成されたエネルギー関数に従い、前記更新後の第2の行列と前記更新後の第3の行列とに基づき、更新後のエネルギー関数を計算するとともに、選択列番号情報に対応する前記第2の行列のスピンと、選択行番号情報に対応する前記第3の行列のスピンとをそれぞれ変化させ、変化後の第2の行列のスピンと変化後の第3の行列のスピンとを用いて変化後のエネルギー値を計算し、前記変化後のエネルギー値が前記更新後のエネルギー値よりも小さい場合、前記更新後のエネルギー値を前記変化後のエネルギー値、変化後の第2の行列のスピンを含む第2の行列を前記更新後の第2の行列、変化後の第3の行列のスピンを含む第3の行列を前記更新後の第3の行列にそれぞれ更新することを繰り返し、前記更新後の第2の行列と前記更新後の第3の行列の積が前記第4の解行列と等しい場合、前記更新後の第2の行列を前記第2の解行列とし、前記更新後の第3の行列を第3の解行列とし、
前記選択することを繰り返す処理は、前記試行回数だけ、前記複数の位置情報に含まれる複数の列番号情報から、1つの前記選択列番号情報を選択するとともに、前記複数の位置情報に含まれる複数の行番号情報から、1つの前記選択行番号情報を選択することを繰り返す
処理をコンピュータに実行させることを特徴とする行列分解プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017150278A JP6958085B2 (ja) | 2017-08-02 | 2017-08-02 | 行列分解装置、行列分解方法及び行列分解プログラム |
US16/043,587 US20190042543A1 (en) | 2017-08-02 | 2018-07-24 | Matrix decomposition device and matrix decomposition method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017150278A JP6958085B2 (ja) | 2017-08-02 | 2017-08-02 | 行列分解装置、行列分解方法及び行列分解プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019028896A JP2019028896A (ja) | 2019-02-21 |
JP6958085B2 true JP6958085B2 (ja) | 2021-11-02 |
Family
ID=65231537
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017150278A Active JP6958085B2 (ja) | 2017-08-02 | 2017-08-02 | 行列分解装置、行列分解方法及び行列分解プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20190042543A1 (ja) |
JP (1) | JP6958085B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11037330B2 (en) * | 2017-04-08 | 2021-06-15 | Intel Corporation | Low rank matrix compression |
JP7014069B2 (ja) * | 2018-07-11 | 2022-02-01 | 日本電信電話株式会社 | データ解析装置、方法、及びプログラム |
JP2021111097A (ja) | 2020-01-09 | 2021-08-02 | 富士通株式会社 | ノイズ推定方法、ノイズ推定プログラム及びノイズ推定装置 |
CN110874207A (zh) * | 2020-01-19 | 2020-03-10 | 光子算数(北京)科技有限责任公司 | 基于光芯片的数据处理方法、装置、存储介质及电子设备 |
CN115480122B (zh) * | 2022-10-19 | 2024-09-24 | 云南电网有限责任公司电力科学研究院 | 电能质量的扰动判断方法、装置、设备和介质 |
CN115982533B (zh) * | 2023-01-09 | 2023-07-21 | 浙江中智达科技有限公司 | 一种工业控制器降维方法、装置、设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04160463A (ja) * | 1990-10-24 | 1992-06-03 | Hitachi Ltd | ニューラルネットワークによる最適化方法 |
GB0428191D0 (en) * | 2004-12-23 | 2005-01-26 | Cambridge Display Tech Ltd | Digital signal processing methods and apparatus |
US8190553B2 (en) * | 2007-12-20 | 2012-05-29 | Routt Thomas J | Methods and systems for quantum search, computation and memory |
-
2017
- 2017-08-02 JP JP2017150278A patent/JP6958085B2/ja active Active
-
2018
- 2018-07-24 US US16/043,587 patent/US20190042543A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
JP2019028896A (ja) | 2019-02-21 |
US20190042543A1 (en) | 2019-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6958085B2 (ja) | 行列分解装置、行列分解方法及び行列分解プログラム | |
US11301571B2 (en) | Neural-network training using secure data processing | |
Mueller et al. | Bayesian approach to cluster expansions | |
Fletcher et al. | Inference in deep networks in high dimensions | |
Nunes et al. | On optimal selection of summary statistics for approximate Bayesian computation | |
US11283591B2 (en) | Secure data processing | |
US11373098B2 (en) | Processing apparatus, learning apparatus, processing method, and nonvolatile recording medium | |
JP2018097612A (ja) | 情報処理装置、プログラム及び情報処理方法 | |
CN111523674A (zh) | 模型训练方法、装置及系统 | |
JP6624052B2 (ja) | 属性変換装置、属性変換方法、学習装置、属性変換プログラム、及び、学習プログラム | |
US11157612B2 (en) | Secret tampering detection system, secret tampering detection apparatus, secret tampering detection method, and program | |
EP3848827A1 (en) | Noise estimation method, noise estimation program, and noise estimation apparatus | |
Qian et al. | An evolutionary nested sampling algorithm for Bayesian model updating and model selection using modal measurement | |
WO2024066143A1 (zh) | 分子碰撞截面的预测方法、装置、设备及存储介质 | |
JP2012243040A (ja) | 演算装置、演算方法および演算プログラム | |
Nishida et al. | Estimating energy parameters for RNA secondary structure predictions using both experimental and computational data | |
JP2005242580A (ja) | パラメータ推定方法、データ予測方法、パラメータ推定装置、データ予測装置、及びコンピュータプログラム | |
EP4318315A1 (en) | A computer implemented method for transforming a pre-trained neural network and a device therefor | |
Barman et al. | A Boolean network inference from time-series gene expression data using a statistical method | |
EP4415304A1 (en) | Method and system for modifying document without changing hash value | |
Kumar et al. | Smaller Balanced Sampling Plans Excluding Adjacent Units for One Dimensional Population | |
EP4310730A1 (en) | Processing data using a neural network "nn" implemented in hardware | |
EP4346160A1 (en) | Electronic device and method for performing a shuffling operation | |
CN115048756A (zh) | 优化设备、优化程序和优化方法 | |
WO2021064898A1 (ja) | パラメタ推定装置、パラメタ推定方法、及びパラメタ推定プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200514 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210519 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210706 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210816 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20210907 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210920 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6958085 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |