(57)【要約】【課題】復号処理の際に圧縮前の数値列のそれぞれの成分の大きさを特定すること。【解決手段】情報処理装置１００は、入力信号に応じた第１の数値列１０１を、複数の射影パラメータを用いて第１の数値列１０１より多くの成分を含み、かつ、成分の二乗和が所定の値になる第２の数値列１０２に射影変換する。情報処理装置１００は、射影変換した第２の数値列１０２と観測行列とのベクトル積演算によって得られる演算結果のそれぞれの成分の正負を示すビットを並べたビット列１０３を生成する。【選択図】図１
2018061105.tif 000002
【特許請求の範囲】
【請求項１】
入力信号に応じた第１の数値列を、複数の射影パラメータを用いて前記第１の数値列より多くの成分を含み、かつ、成分の二乗和が所定の値になる第２の数値列に射影変換し、
射影変換した前記第２の数値列と観測行列とのベクトル積結果のそれぞれの成分の正負を示すビットを並べたビット列を生成する、
制御部を有することを特徴とする情報処理装置。
【請求項２】
前記複数の射影パラメータは、前記第１の数値列のそれぞれの成分に応じた射影パラメータを含み、
前記制御部は、
前記第１の数値列のそれぞれの成分に応じた射影パラメータを用いて、前記第１の数値列のそれぞれの成分を、所定の大きさのベクトルをあらわす成分のペアに変換することにより、前記第１の数値列を前記第２の数値列に射影変換する、ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記制御部は、
複数の入力信号のそれぞれの入力信号に応じた数値列において、前記第１の数値列のいずれかの成分と同じ位置にある成分について標準偏差を算出し、算出した前記標準偏差を前記いずれかの成分に応じた射影パラメータに設定する、ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記制御部は、
複数の入力信号のそれぞれの入力信号に応じた数値列において、前記第１の数値列のいずれかの成分と同じ位置にある成分についてパーセンタイルを用いた指標値を算出し、算出した前記指標値を前記いずれかの成分に応じた射影パラメータに設定する、ことを特徴とする請求項２に記載の情報処理装置。
【請求項５】
前記複数の射影パラメータは、前記第１の数値列のそれぞれの成分に応じた射影パラメータを含み、
前記制御部は、
前記第１の数値列の複数の成分のうちゼロ成分を、ゼロ成分のペアに変換し、前記第１の数値列の複数の成分のうち非ゼロ成分を、前記非ゼロ成分に応じた射影パラメータを用いて、所定の大きさのベクトルをあらわす成分のペアに変換することにより、前記第１の数値列を前記第２の数値列に射影変換する、ことを特徴とする請求項１に記載の情報処理装置。
【請求項６】
コンピュータが、
入力信号に応じた第１の数値列を、複数の射影パラメータを用いて前記第１の数値列より多くの成分を含み、かつ、成分の二乗和が所定の値になる第２の数値列に射影変換し、
射影変換した前記第２の数値列と観測行列とのベクトル積結果のそれぞれの成分の正負を示すビットを並べたビット列を生成する、
処理を実行することを特徴とする情報処理方法。
【請求項７】
コンピュータに、
入力信号に応じた第１の数値列を、複数の射影パラメータを用いて前記第１の数値列より多くの成分を含み、かつ、成分の二乗和が所定の値になる第２の数値列に射影変換し、
射影変換した前記第２の数値列と観測行列とのベクトル積結果のそれぞれの成分の正負を示すビットを並べたビット列を生成する、
処理を実行させることを特徴とする情報処理プログラム。
【請求項８】
入力信号に応じた第１の数値列を、複数の射影パラメータを用いて射影変換して得られた、前記第１の数値列より多くの成分を含み、かつ、成分の二乗和が所定の値になる第２の数値列と観測行列とのベクトル積結果のそれぞれの成分の正負を示すビットを並べたビット列から、前記第２の数値列を復号し、
復号した前記第２の数値列を、前記複数の射影パラメータを用いて前記第１の数値列に逆射影変換し、逆射影変換した前記第１の数値列に応じた前記入力信号を生成する、
制御部を有することを特徴とする情報処理装置。
【請求項９】
コンピュータが、
入力信号に応じた第１の数値列を、複数の射影パラメータを用いて射影変換して得られた、前記第１の数値列より多くの成分を含み、かつ、成分の二乗和が所定の値になる第２の数値列と観測行列とのベクトル積結果のそれぞれの成分の正負を示すビットを並べたビット列から、前記第２の数値列を復号し、
復号した前記第２の数値列を、前記複数の射影パラメータを用いて前記第１の数値列に逆射影変換し、逆射影変換した前記第１の数値列に応じた前記入力信号を生成する、
処理を実行することを特徴とする情報処理方法。
【請求項１０】
コンピュータに、
入力信号に応じた第１の数値列を、複数の射影パラメータを用いて射影変換して得られた、前記第１の数値列より多くの成分を含み、かつ、成分の二乗和が所定の値になる第２の数値列と観測行列とのベクトル積結果のそれぞれの成分の正負を示すビットを並べたビット列から、前記第２の数値列を復号し、
復号した前記第２の数値列を、前記複数の射影パラメータを用いて前記第１の数値列に逆射影変換し、逆射影変換した前記第１の数値列に応じた前記入力信号を生成する、
処理を実行させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、および情報処理プログラムに関する。
【背景技術】
【０００２】
従来、成分がｎ個ある数値列を、成分がｎ個ある数値列とｍ行ｎ列の観測行列とのベクトル積演算によって得られた演算結果のそれぞれの成分の正負を示すビットを並べた、成分がｍ個あるビット列に圧縮する１ビット圧縮センシングの技術がある。
【０００３】
関連する先行技術としては、例えば、測定行列生成パラメータを利用してランダム測定行列を生成し、ランダム測定行列を利用して信号の圧縮を行い、量子化閾値を利用して圧縮信号の２ビット量子化を行うものがある。また、例えば、スケール空間における特徴点にかかる記述子を、複数のスケールレベルにわたる複数の画素について、スパース射影ベクトルと疎に標本化される画素情報との組み合わせに基づいて生成する技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−５０６５９号公報
【特許文献２】特開２０１３−５１３１６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した従来技術では、圧縮後のビット列に対して復号処理を行っても圧縮前の数値列のそれぞれの成分の大きさを特定することが難しく、圧縮前の数値列を復号することが難しい場合がある。例えば、数値列をビット列に圧縮する際に数値列のそれぞれの成分の大きさの情報が消失してしまい、圧縮後のビット列に対して復号処理を行っても圧縮前の数値列のそれぞれの成分の大きさを特定することができない。
【０００６】
１つの側面では、本発明は、復号処理の際に圧縮前の数値列のそれぞれの成分の大きさを特定することができる情報処理装置、情報処理方法、および情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一側面によれば、入力信号に応じた第１の数値列を、複数の射影パラメータを用いて前記第１の数値列より多くの成分を含み、かつ、成分の二乗和が所定の値になる第２の数値列に射影変換し、射影変換した前記第２の数値列と観測行列とのベクトル積結果のそれぞれの成分の正負を示すビットを並べたビット列を生成する情報処理装置、情報処理方法、および情報処理プログラムが提案される。
【０００８】
また、本発明の一側面によれば、入力信号に応じた第１の数値列を、複数の射影パラメータを用いて射影変換して得られた、前記第１の数値列より多くの成分を含み、かつ、成分の二乗和が所定の値になる第２の数値列と観測行列とのベクトル積結果のそれぞれの成分の正負を示すビットを並べたビット列から、前記第２の数値列を復号し、復号した前記第２の数値列を、前記複数の射影パラメータを用いて前記第１の数値列に逆射影変換し、逆射影変換した前記第１の数値列に応じた前記入力信号を生成する情報処理装置、情報処理方法、および情報処理プログラムが提案される。
【発明の効果】
【０００９】
本発明の一態様によれば、復号処理の際に圧縮前の数値列のそれぞれの成分の大きさを特定することができるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施の形態にかかる情報処理方法の一実施例を示す説明図である。
【図２】図２は、情報処理装置１００のハードウェア構成例を示すブロック図である。
【図３】図３は、観測行列３００の一例を示す説明図である。
【図４】図４は、射影パラメータセット４００の一例を示す説明図である。
【図５】図５は、情報処理装置１００の機能的構成例を示すブロック図である。
【図６】図６は、実施例１における情報処理装置１００の動作の一例を示す説明図である。
【図７】図７は、射影変換と逆射影変換との一例を示す説明図である。
【図８】図８は、設定処理手順の一例を示すフローチャートである。
【図９】図９は、圧縮処理手順の一例を示すフローチャートである。
【図１０】図１０は、復号処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下に、図面を参照して、本発明にかかる情報処理装置、情報処理方法、および情報処理プログラムの実施の形態を詳細に説明する。
【００１２】
（実施の形態にかかる情報処理方法の一実施例）
図１は、実施の形態にかかる情報処理方法の一実施例を示す説明図である。情報処理装置１００は、１ビット圧縮センシングを用いて数値列をビット列に圧縮することができるコンピュータである。数値列は、複数の数値を並べたデータである。ビット列は、複数のビットを並べたデータである。
【００１３】
従来から、カメラ、マイク、またはセンサなどが計測した画像データ、音声データ、センサデータなどに応じた数値列を、利活用が可能な状態で記憶媒体に記憶しておくことが要望されている。ここで、数値列が多ければ、数値列を圧縮してから記憶媒体に記憶しておくことが好ましい。数値列を圧縮する際には、例えば、数値列をよりスパースな数値列に変換してから圧縮することが考えられる。数値列を圧縮する際には、例えば、数値列をビット列に圧縮する１ビット圧縮センシングが用いられる。
【００１４】
しかしながら、１ビット圧縮センシングでは、圧縮後のビット列に対して復号処理を行っても、圧縮前の数値列のそれぞれの成分の大きさを特定することが難しいため、圧縮前の数値列を復元することが難しい場合がある。例えば、数値列をビット列に圧縮する際に数値列のそれぞれの成分の大きさの情報が消失してしまうため、復号処理の際に圧縮前の数値列のそれぞれの成分の大きさを一意に特定することが難しい。具体的には、ある数値列を圧縮した場合と、ある数値列のそれぞれの成分を２倍した別の数値列を圧縮した場合とのいずれの場合でも、圧縮結果としては同一のビット列が生成されてしまう。このため、生成されたビット列に基づいて圧縮前の数値列のそれぞれの成分の大きさを一意に特定することが難しい。
【００１５】
これに対し、所定の復号条件を満たす数値列を圧縮対象にすることにより、復号処理の際に圧縮前の数値列のそれぞれの成分の大きさを特定可能にすることが考えられる。所定の復号条件とは、復号処理の際に圧縮前の数値列のそれぞれの成分の大きさを特定することができる条件である。所定の復号条件は、例えば、ゼロ成分が比較的多く含まれ、かつ、成分の二乗和が１になるという条件である。しかしながら、所定の復号条件を満たさない数値列をビット列に圧縮する際には、数値列のそれぞれの成分の大きさの情報が消失してしまうため、復号処理の際に圧縮前の数値列のそれぞれの成分の大きさを一意に特定することが難しい。結果として、１ビット圧縮センシングを使用しやすい状況が限られてしまうことがある。
【００１６】
そこで、本実施の形態では、圧縮対象の数値列を、圧縮対象の数値列より成分が多く、かつ、所定の復号条件を満たす数値列に射影変換してから、１ビット圧縮センシングを行うことができる情報処理方法について説明する。かかる情報処理方法によれば、圧縮後のビット列に圧縮前の数値列のそれぞれの成分の大きさを示す情報を残し、復号処理の際に圧縮前の数値列のそれぞれの成分の大きさを一意に特定可能にすることができ、圧縮前の数値列を復号可能にすることができる。
【００１７】
図１の例では、情報処理装置１００は、入力信号に応じた第１の数値列１０１を、圧縮対象の数値列として取得する。入力信号は、カメラ、マイク、またはセンサなどが計測した画像データ、音声データ、センサデータなどである。圧縮対象の数値列は、ゼロ成分を含む数値列である。圧縮対象の数値列は、スパースな数値列であることが好ましい。
【００１８】
第１の数値列１０１は、画像データ、音声データ、またはセンサデータなどを示す数値列である。数値列の成分は、例えば、単精度の浮動小数点数または固定小数点数、もしくは、倍精度の浮動小数点数または固定小数点数である。第１の数値列１０１は、画像データ、音声データ、またはセンサデータなどを示す数値列に対して所定の演算を行うことにより得られたスパースな数値列であってもよい。所定の演算は、例えば、離散コサイン変換やフーリエ変換やウェーブレット基底展開などである。
【００１９】
（１−１）情報処理装置１００は、第１の数値列１０１を、複数の射影パラメータを用いて第１の数値列１０１より多くの成分を含み、かつ、成分の二乗和が所定の値になる第２の数値列１０２に射影変換する。情報処理装置１００は、例えば、成分がｎ個ある第１の数値列１０１を、成分が２ｎ個ある第２の数値列１０２に射影変換する。これによれば、情報処理装置１００は、第１の数値列１０１が１ビット圧縮センシングの復号条件を満たさなくても、第１の数値列１０１に逆射影変換可能であって、かつ、１ビット圧縮センシングの復号条件を満たす第２の数値列１０２を生成することができる。
【００２０】
（１−２）情報処理装置１００は、射影変換した第２の数値列１０２と観測行列とのベクトル積演算によって得られる演算結果のそれぞれの成分の正負を示すビットを並べたビット列１０３を生成する。情報処理装置１００は、例えば、１ビット圧縮センシングを用いて、成分が２ｎ個ある第２の数値列１０２とｍ行２ｎ列の観測行列とのベクトル積演算の演算結果のそれぞれの成分の正負を示すビットを並べた、成分がｍ個あるビット列１０３を生成する。これによれば、情報処理装置１００は、第２の数値列１０２をビット列１０３に圧縮しても、第２の数値列１０２のそれぞれの成分の大きさを特定可能にすることができる。
【００２１】
このように、情報処理装置１００は、ビット列１０３を基に第２の数値列１０２のそれぞれの成分の大きさを特定可能にし、かつ、第２の数値列１０２を基に第１の数値列１０１を生成可能にすることができる。これにより、情報処理装置１００は、生成したビット列１０３を基に、第１の数値列１０１のそれぞれの成分の大きさを特定可能にすることができる。換言すれば、情報処理装置１００は、第１の数値列１０１が１ビット圧縮センシングの復号条件を満たさない数値列であっても、第１の数値列１０１のそれぞれの成分の大きさを示す情報を潜在的に含むビット列１０３を生成することができる。結果として、情報処理装置１００は、比較的多くの数値列を、１ビット圧縮センシングにおいて復号可能な数値列として扱うことができる。
【００２２】
また、情報処理装置１００は、生成したビット列１０３を他のコンピュータに送信する場合、圧縮前の数値列をそのまま他のコンピュータに送信する場合に比べて、他のコンピュータとの通信量を低減することができる。他のコンピュータは、観測行列と射影パラメータとを用いて、受信したビット列１０３から圧縮前の数値列を復号することができる。
【００２３】
また、情報処理装置１００は、複数の圧縮対象の数値列のそれぞれの数値列から生成されたビット列１０３を蓄積する場合、複数の圧縮対象の数値列をそのまま蓄積する場合に比べて記憶領域の使用量を低減することができる。また、情報処理装置１００は、蓄積したビット列１０３を、機械学習の入力として用いることができる。
【００２４】
また、情報処理装置１００は、圧縮前の数値列を復号可能であるため、圧縮前の数値列を復号して類似度を算出することができる。そして、情報処理装置１００は、算出した類似度に基づいて、類似する圧縮前の数値列を検出することができる。
【００２５】
情報処理装置１００は、蓄積したビット列１０３の間のハミング距離に基づいて、圧縮前の数値列の間の類似度を近似可能であるビット列１０３の間の類似度を算出することができる。例えば、ハミング距離は、値が大きいほど類似しないことを示す。そして、情報処理装置１００は、演算を簡略化できるため、類似する圧縮前の数値列を検出する際にかかる時間を短縮しやすくなり、または省電力化を図ることができる。
【００２６】
以下の説明では、圧縮対象の成分がｎ個ある数値列を「疎ベクトル」と表記する場合がある。また、以下の説明では、圧縮対象の成分がｎ個ある数値列を射影変換して得られた成分が２ｎ個ある数値列を「射影ベクトル」と表記する場合がある。
【００２７】
（情報処理装置１００のハードウェア構成例）
次に、図２を用いて、図１に示した情報処理装置１００のハードウェア構成例について説明する。
【００２８】
図２は、情報処理装置１００のハードウェア構成例を示すブロック図である。図２では、情報処理装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１と、メモリ２０２と、ネットワークＩ／Ｆ（Ｉｎｔｅｒｆａｃｅ）２０３と、ディスクドライブ２０４と、ディスク２０５と、記録媒体Ｉ／Ｆ２０６とを有する。また、各構成部は、バス２００によってそれぞれ接続される。
【００２９】
ここで、ＣＰＵ２０１は、情報処理装置１００の全体の制御を司る。メモリ２０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有する。具体的には、例えば、フラッシュＲＯＭやＲＯＭが各種プログラムを記憶し、ＲＡＭがＣＰＵ２０１のワークエリアとして使用される。メモリ２０２に記憶されるプログラムは、ＣＰＵ２０１にロードされることで、コーディングされている処理をＣＰＵ２０１に実行させる。また、メモリ２０２は、観測行列３００や射影パラメータセット４００を記憶する。観測行列３００の一例は、例えば、図３に後述する。射影パラメータセット４００の一例は、例えば、図４に後述する。
【００３０】
ネットワークＩ／Ｆ２０３は、通信回線を通じてネットワーク２１０に接続され、ネットワーク２１０を介して他のコンピュータに接続される。そして、ネットワークＩ／Ｆ２０３は、ネットワーク２１０と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークＩ／Ｆ２０３には、例えば、モデムやＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）アダプタなどを採用することができる。
【００３１】
ディスクドライブ２０４は、ＣＰＵ２０１の制御に従ってディスク２０５に対するデータのリード／ライトを制御する。ディスクドライブ２０４は、例えば、磁気ディスクドライブである。ディスク２０５は、ディスクドライブ２０４の制御で書き込まれたデータを記憶する不揮発メモリである。ディスク２０５は、例えば、磁気ディスク、光ディスクなどである。
【００３２】
記録媒体Ｉ／Ｆ２０６は、外部の記録媒体２０７に接続され、外部の記録媒体２０７と内部のインターフェースを司り、外部の記録媒体２０７に対するデータの入出力を制御する。記録媒体Ｉ／Ｆ２０６は、例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポートである。記録媒体２０７は、例えば、ＵＳＢメモリである。記録媒体２０７は、実施の形態にかかる情報処理プログラムを記憶してもよい。
【００３３】
情報処理装置１００は、上述した構成部のほか、例えば、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、半導体メモリ、キーボード、マウス、ディスプレイなどを有することにしてもよい。また、情報処理装置１００は、ディスクドライブ２０４およびディスク２０５の代わりに、ＳＳＤおよび半導体メモリなどを有していてもよい。
【００３４】
また、情報処理装置１００は、ディスクドライブ２０４、ディスク２０５、記録媒体Ｉ／Ｆ２０６を有していなくてもよい。また、情報処理装置１００は、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を有してもよい。ＧＰＵは、ＣＰＵ２０１の代わりに所定の処理を実行してもよい。
【００３５】
（観測行列３００の一例）
次に、図３を用いて、図２に示したメモリ２０２やディスク２０５などの記憶領域に記憶される観測行列３００の一例について説明する。
【００３６】
図３は、観測行列３００の一例を示す説明図である。観測行列３００は、１ビット圧縮センシングに用いられる行列である。観測行列３００は、圧縮対象の疎ベクトルを射影変換して得られた射影ベクトルとのベクトル積演算に用いられる行列である。観測行列３００は、ｍ行２ｎ列の行列である。ｍは、ｋよりも大きい実数である。ｋは、射影ベクトルの非零成分の数である。ｎは、疎ベクトルの成分の数である。２ｎは、疎ベクトルの成分の数の２倍であって、射影ベクトルの成分の数である。観測行列３００の成分は、正規分布から標本抽出された数である。
【００３７】
情報処理装置１００は、圧縮対象の疎ベクトルの成分の数が固定であれば、観測行列３００として用いる行列を固定する。一方で、情報処理装置１００は、圧縮対象の疎ベクトルの成分の数が不定であれば、観測行列３００として用いる行列を固定しなくてもよい。情報処理装置１００は、観測行列３００として用いる行列を固定しない場合、圧縮後のビット列に、少なくとも観測行列３００の列数２ｎを示す情報を付与しておく。
【００３８】
情報処理装置１００は、例えば、ａ行ｂ列の行列を用意し、圧縮対象の疎ベクトルの成分の数に応じてａ行ｂ列の行列からｍ行２ｎ列の行列を観測行列３００として抽出する。ａは、ｍが取りうる数よりも大きい数である。ｂは、２ｎが取りうる数よりも大きい数である。
【００３９】
（射影パラメータセット４００の一例）
次に、図４を用いて、図２に示したメモリ２０２やディスク２０５などの記憶領域に記憶される射影パラメータセット４００の一例について説明する。
【００４０】
図４は、射影パラメータセット４００の一例を示す説明図である。射影パラメータセット４００は、複数の射影パラメータである。複数の射影パラメータは、疎ベクトルを射影変換する際に用いられる、ｎ個のパラメータである。それぞれのパラメータは、疎ベクトルのそれぞれの成分を射影変換する際に用いられるパラメータである。ｉ番目の射影パラメータは、疎ベクトルのｉ番目の成分を射影変換する際に用いられるパラメータである。ｉは１〜ｎである。
【００４１】
複数の射影パラメータは、例えば、情報処理装置１００の利用者によって設定される。複数の射影パラメータは、情報処理装置１００によって複数の疎ベクトルに基づいて自動で設定されてもよい。ｉ番目の射影パラメータは、例えば、複数の疎ベクトルのそれぞれの疎ベクトルのｉ番目の成分の標準偏差が設定される。ｉ番目の射影パラメータは、例えば、複数の疎ベクトルのそれぞれの疎ベクトルのｉ番目の成分のパーセンタイルを用いた指標値が設定されてもよい。
【００４２】
（情報処理装置１００の機能的構成例）
次に、図５を用いて、情報処理装置１００の機能的構成例について説明する。
【００４３】
図５は、情報処理装置１００の機能的構成例を示すブロック図である。情報処理装置１００は、記憶部５０１と、取得部５０２と、第１の変換部５０３と、第２の変換部５０４と、第３の変換部５０５と、第１の復号部５０６と、第２の復号部５０７と、第３の復号部５０８と、出力部５０９とを含む。
【００４４】
記憶部５０１は、具体的には、例えば、図２に示したメモリ２０２、ディスク２０５などの記憶領域により、その機能を実現する。取得部５０２〜出力部５０９は、制御部となる機能である。取得部５０２〜出力部５０９は、具体的には、例えば、図２に示したメモリ２０２、ディスク２０５などの記憶領域に記憶されたプログラムをＣＰＵ２０１に実行させることにより、または、ネットワークＩ／Ｆ２０３により、その機能を実現する。各機能部の処理結果は、例えば、図２に示したメモリ２０２、ディスク２０５などの記憶領域に記憶される。
【００４５】
記憶部５０１は、観測行列３００や複数の射影パラメータを記憶する。観測行列３００は、１ビット圧縮センシングに用いられるｍ行２ｎ列の行列である。複数の射影パラメータは、疎ベクトルの射影変換に用いられるｎ個のパラメータである。これにより、記憶部５０１は、射影ベクトルの１ビット圧縮センシングに用いられる情報や疎ベクトルの射影変換に用いられる情報を記憶しておくことができる。
【００４６】
取得部５０２は、圧縮対象の入力信号を取得する。入力信号は、カメラ、マイク、またはセンサなどが計測した画像データ、音声データ、センサデータなどである。これにより、取得部５０２は、圧縮対象の入力信号を取得して第１の変換部５０３に出力し、圧縮対象の入力信号を圧縮対象の第１の数値列１０１に変換させることができる。
【００４７】
第１の変換部５０３は、取得部５０２が取得した入力信号を、入力信号に応じた第１の数値列１０１に変換する。第１の数値列１０１は、ゼロ成分を含む数値列である。第１の数値列１０１は、スパースな数値列であることが好ましい。第１の数値列１０１の成分は、数値である。第１の数値列１０１の成分は、例えば、単精度の浮動小数点数または固定小数点数、もしくは、倍精度の浮動小数点数または固定小数点数である。
【００４８】
第１の変換部５０３は、例えば、入力信号より多くのゼロ成分を含むように、入力信号を可逆変換することにより、入力信号をスパースな第１の数値列１０１に変換する。第１の変換部５０３は、具体的には、入力信号に対して離散コサイン変換やフーリエ変換やウェーブレット基底展開などを行うことにより、第１の数値列１０１として疎ベクトルを生成する。これにより、第１の変換部５０３は、圧縮対象の入力信号を、圧縮対象の入力信号よりゼロ成分が多い圧縮対象の第１の数値列１０１に変換することができ、圧縮効率の向上を図ることができる。
【００４９】
第２の変換部５０４は、第１の変換部５０３が変換した第１の数値列１０１を、複数の射影パラメータを用いて前記第１の数値列１０１より多くの成分を含み、かつ、成分の二乗和が所定の値になる第２の数値列１０２に射影変換する。第２の数値列１０２の成分は、数値である。所定の値は、例えば、１である。所定の値は１でなくてもよい。複数の射影パラメータは、第１の数値列１０１のそれぞれの成分に応じた射影パラメータを含む。
【００５０】
第２の変換部５０４は、例えば、第１の数値列１０１のそれぞれの成分に応じた射影パラメータを用いて、第１の数値列１０１のそれぞれの成分を、所定の大きさのベクトルをあらわす成分のペアに変換する。第２の変換部５０４は、具体的には、疎ベクトルのそれぞれの成分を、当該成分に応じた射影パラメータを用いて、大きさが１／√ｎの２次元ベクトルをあらわす成分のペアに変換する。これにより、第２の変換部５０４は、第１の数値列１０１に逆射影変換可能であって、かつ、１ビット圧縮センシングを行っても復号可能である第２の数値列１０２を生成することができる。
【００５１】
第２の変換部５０４は、例えば、第１の数値列１０１の複数の成分のうちゼロ成分を、ゼロ成分のペアに変換してもよい。そして、第２の変換部５０４は、例えば、第１の数値列１０１の複数の成分のうち非ゼロ成分を、非ゼロ成分の位置に対応する射影パラメータを用いて、所定の大きさのベクトルをあらわす成分のペアに変換する。第２の変換部５０４は、具体的には、疎ベクトルの複数の成分のうちゼロ成分を、ゼロ成分のペアに変換する。そして、第２の変換部５０４は、具体的には、疎ベクトルの非ゼロ成分を、当該非ゼロ成分に応じた射影パラメータを用いて、大きさが１／√ｋの２次元ベクトルをあらわす成分のペアに変換する。これにより、第２の変換部５０４は、第１の数値列１０１に逆射影変換可能であって、かつ、１ビット圧縮センシングを行っても復号可能である第２の数値列１０２を生成することができる。
【００５２】
第２の変換部５０４は、射影パラメータを設定する。第２の変換部５０４は、例えば、複数の入力信号のそれぞれの入力信号に応じた数値列において、圧縮対象の入力信号に応じた第１の数値列１０１のいずれかの成分と同じ位置にある成分について標準偏差を算出する。ここで、複数の入力信号は、圧縮対象の入力信号を含んでもよい。そして、第２の変換部５０４は、算出した標準偏差をいずれかの成分に応じた射影パラメータに設定する。
【００５３】
第２の変換部５０４は、具体的には、複数の疎ベクトルのそれぞれの疎ベクトルのｉ番目の成分の標準偏差を算出し、算出した標準偏差をｉ番目の射影パラメータに設定する。これにより、第２の変換部５０４は、逆射影変換において疎ベクトルのそれぞれの成分を特定する精度を向上させる比較的好ましい射影パラメータを設定することができる。
【００５４】
第２の変換部５０４は、例えば、複数の入力信号のそれぞれの入力信号に応じた数値列において、第１の数値列１０１のいずれかの成分と同じ位置にある成分についてパーセンタイルを用いた指標値を算出する。そして、第２の変換部５０４は、算出した指標値をいずれかの成分に応じた射影パラメータに設定する。
【００５５】
第２の変換部５０４は、具体的には、複数の疎ベクトルのそれぞれの疎ベクトルのｉ番目の成分のパーセンタイルを用いた指標値を算出し、算出した指標値をｉ番目の射影パラメータに設定する。これにより、第２の変換部５０４は、逆射影変換において疎ベクトルのそれぞれの成分を特定する精度を向上させる比較的好ましい射影パラメータを設定することができる。
【００５６】
第３の変換部５０５は、第２の変換部５０４が射影変換した第２の数値列１０２と観測行列３００とのベクトル積演算によって得られる演算結果のそれぞれの成分の正負を示すビットを並べたビット列１０３を生成する。第３の変換部５０５は、射影ベクトルに対して１ビット圧縮センシングを行ってビット列１０３を生成する。これにより、第３の変換部５０５は、入力信号に応じた疎ベクトルのそれぞれの成分の大きさを特定可能な状態で、疎ベクトルを圧縮したビット列１０３を生成することができる。
【００５７】
取得部５０２は、復号対象のビット列１０３を取得してもよい。復号対象のビット列１０３は、例えば、情報処理装置１００が生成したビット列１０３である。復号対象のビット列１０３は、例えば、他のコンピュータが生成したビット列１０３であってもよい。これにより、取得部５０２は、復号対象のビット列１０３を取得して第１の復号部５０６に出力し、復号対象のビット列１０３から射影ベクトルを復号させることができる。
【００５８】
第１の復号部５０６は、取得部５０２が取得したビット列１０３から、第２の数値列１０２を復号する。第１の復号部５０６は、射影ベクトルの成分の二乗和が１になる性質に基づいて、観測行列３００を用いてビット列１０３から射影ベクトルを復号する。これにより、第１の復号部５０６は、ビット列１０３に基づいて、射影ベクトルのそれぞれの成分の大きさを特定することができる。
【００５９】
第２の復号部５０７は、第１の復号部５０６が復号した第２の数値列１０２を、複数の射影パラメータを用いて第１の数値列１０１に逆射影変換する。第２の復号部５０７は、射影ベクトルを、複数の射影パラメータを用いて、疎ベクトルに逆射影変換する。これにより、第２の復号部５０７は、射影ベクトルに基づいて、疎ベクトルのそれぞれの成分の大きさを特定することができる。
【００６０】
第３の復号部５０８は、第２の復号部５０７が逆射影変換した第１の数値列１０１に応じた入力信号を生成する。これにより、第３の復号部５０８は、１ビット圧縮センシングによって得られたビット列１０３から、圧縮前のｎ次元の疎ベクトルを復号することができ、ｎ次元の疎ベクトルから入力信号を生成することができる。
【００６１】
出力部５０９は、第３の変換部５０５が生成したビット列１０３を出力する。出力形式は、例えば、メモリ２０２、ディスク２０５などの記憶領域への記憶である。出力形式は、例えば、ネットワークＩ／Ｆ２０３による外部装置への送信であってもよい。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力であってもよい。
【００６２】
出力部５０９は、第３の復号部５０８が生成した入力信号を出力する。出力形式は、例えば、メモリ２０２、ディスク２０５などの記憶領域への記憶である。出力形式は、例えば、ネットワークＩ／Ｆ２０３による外部装置への送信であってもよい。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力であってもよい。
【００６３】
（実施例１における情報処理装置１００の動作の一例）
次に、図６を用いて、実施例１における情報処理装置１００の動作の一例について説明する。
【００６４】
図６は、実施例１における情報処理装置１００の動作の一例を示す説明図である。情報処理装置１００は、疎ベクトル変換装置６０１と、射影変換装置６０２と、１ビット圧縮センシング装置６０３と、ビット復号装置６０４と、射影復号装置６０５と、信号復号装置６０６と、射影パラメータ設定装置６０７と、処理装置６０８とを有する。
【００６５】
図６の例では、（６−１）情報処理装置１００は、圧縮対象の信号列の格納要求を受け付ける。情報処理装置１００は、格納要求に応じて、圧縮対象の信号列をメモリ２０２に格納する。
【００６６】
（６−２）疎ベクトル変換装置６０１は、メモリ２０２から圧縮対象の信号列を取得する。疎ベクトル変換装置６０１は、取得した信号列に対して離散コサイン変換を行い、成分の二乗が成分の二乗和の１％を下回る成分を０に置き換えることにより、取得した信号列を疎ベクトルに変換する。疎ベクトル変換装置６０１は、変換した疎ベクトルを、射影変換装置６０２や射影パラメータ設定装置６０７に出力する。
【００６７】
（６−３）射影変換装置６０２は、疎ベクトルを取得する。射影変換装置６０２は、取得した疎ベクトルを射影ベクトルに射影変換する。射影変換装置６０２は、射影変換した射影ベクトルを、１ビット圧縮センシング装置６０３に出力する。
【００６８】
射影変換装置６０２は、例えば、疎ベクトルのそれぞれの成分を、射影関数ｆ-1に代入することにより、射影ベクトルのそれぞれの成分を生成する。ここで、射影変換装置６０２は、射影ベクトルがスパースなベクトルであるように、疎ベクトルから射影ベクトルに射影変換することになる。
【００６９】
射影関数ｆ-1は、下記式（１）に示すように、ｎ個の集合から２ｎ個の集合への写像である。以下の説明では、太字のＲは、集合を示す。太字のＲの上付の文字は、集合の成分の数を示す。
【００７０】
【数１】
2018061105.tif 000003
【００７１】
射影関数ｆ-1は、具体的には、下記式（２）によって定義される。以下の説明では、「ｘ1，ｘ2，・・・，ｘn」は、疎ベクトルのそれぞれの成分を示す。また、「ｄ1，ｄ2，・・・，ｄn」は、射影パラメータを示す。
【００７２】
【数２】
2018061105.tif 000004
【００７３】
射影関数ｆ-1の値域は、下記式（３）に示すように、２ｎ次元空間中のトーラスである。トーラスは、２ｎ次元空間中の単位球面上にある。以下の説明では、「Ｔn」は、２ｎ次元空間中のトーラスを示す。また、「Ｓ2n-1」は、２ｎ次元空間中の単位球面を示す。
【００７４】
【数３】
2018061105.tif 000005
【００７５】
結果として、射影ベクトルのそれぞれの成分は、疎ベクトルのそれぞれの成分を用いて下記式（４）によって定義される。以下の説明では、「→」が上部に付された「Ｘ」は、射影ベクトルを示す。また、「Ｘ1，Ｘ2，・・・，Ｘ2n」は、射影ベクトルのそれぞれの成分を示す。
【００７６】
【数４】
2018061105.tif 000006
【００７７】
ここで、射影ベクトルについて下記式（５）が成立し、射影ベクトルのそれぞれの成分の二乗和は１になる。
【００７８】
【数５】
2018061105.tif 000007
【００７９】
射影ベクトルはスパースなベクトルであって、かつ、射影ベクトルについて上記式（５）が成立するため、射影ベクトルを１ビット圧縮センシングにより圧縮した場合であっても、復号処理の際には射影ベクトルのそれぞれの成分は特定可能になる。
【００８０】
さらに、射影ベクトルのそれぞれの成分は、射影関数ｆ-1の逆関数ｆに代入することにより、疎ベクトルのそれぞれの成分を復号可能になる。射影関数ｆ-1の逆関数ｆは、具体的には、下記式（６）によって定義される。
【００８１】
【数６】
2018061105.tif 000008
【００８２】
これにより、射影変換装置６０２は、１ビット圧縮センシングを行ってもそれぞれの成分の大きさが特定可能であるとともに、疎ベクトルに逆射影変換が可能である射影ベクトルを生成することができる。結果として、射影変換装置６０２は、圧縮後のビット列に、疎ベクトルのそれぞれの成分の大きさを示す情報が潜在的に含まれるようにすることができる。ここで、図７の説明に移行し、射影変換と逆射影変換との一例について説明する。
【００８３】
図７は、射影変換と逆射影変換との一例を示す説明図である。図７の例では、説明の簡略化のため、１次元部分空間Ｖ１にある疎ベクトルの成分ｘ1と、２次元部分空間Ｖ２にある射影ベクトルの成分Ｘ1，Ｘ2との間における射影変換と逆射影変換とについて説明する。
【００８４】
図７において、１次元部分空間Ｖ１となるｘ1軸上の点Ｐの座標値が、疎ベクトルの成分ｘ1を示す。一方で、２次元部分空間Ｖ２となるＸ1軸とＸ2軸との座標系における点Ｑの座標値が、射影ベクトルの成分Ｘ1，Ｘ2を示す。点Ｑは、２次元部分空間Ｖ２となるＸ1軸とＸ2軸との座標系における半径が１／√ｎである円上に位置する。
【００８５】
１次元部分空間Ｖ１となるｘ1軸は、２次元部分空間Ｖ２となるＸ1軸とＸ2軸との座標系における半径が１／√ｎである円上に位置する点Ｎからの距離が、射影パラメータｄ1の値になる直線として規定される。点Ｎから点Ｑを通るように引いた直線と、１次元部分空間Ｖ１となるｘ1軸との交点が、点Ｐになる。
【００８６】
図７において、射影関数ｆ-1は、１次元部分空間Ｖ１から２次元部分空間Ｖ２への写像を示す関数である。射影関数ｆ-1は、１次元部分空間Ｖ１となるｘ1軸上の点Ｐの座標値ｘ1を、２次元部分空間Ｖ２となるＸ1軸とＸ2軸との座標系における点Ｑの座標値（Ｘ1，Ｘ2）に射影変換する。
【００８７】
図７において、射影関数ｆ-1の逆関数ｆは、２次元部分空間Ｖ２から１次元部分空間Ｖ１への写像を示す関数である。射影関数ｆ-1の逆関数ｆは、２次元部分空間Ｖ２となるＸ1軸とＸ2軸との座標系における点Ｑの座標値（Ｘ1，Ｘ2）を、１次元部分空間Ｖ１となるｘ1軸上の点Ｐの座標値ｘ1に逆射影変換する。
【００８８】
ここでは、疎ベクトルの成分ｘ1と射影ベクトルの成分Ｘ1，Ｘ2との関係について説明したが、疎ベクトルのそれぞれの成分ｘ1，ｘ2，・・・，ｘnと射影ベクトルのそれぞれの成分Ｘ1，Ｘ2，・・・，Ｘnとの関係も同様である。
【００８９】
図６の説明に戻り、（６−４）１ビット圧縮センシング装置６０３は、射影ベクトルに対して１ビット圧縮センシングを行い、射影ベクトルをビット列に変換し、メモリ２０２に記憶する。また、１ビット圧縮センシング装置６０３は、圧縮後のビット列に対して、ランレングス符号化などを用いて、さらに圧縮してもよい。
【００９０】
１ビット圧縮センシング装置６０３は、例えば、観測行列３００と疎ベクトルとを、関数ｔｈｒに代入することにより、ビット列を生成する。１ビット圧縮センシング装置６０３は、具体的には、観測行列３００と疎ベクトルとを、下記式（７）に代入する。以下の説明では、「Ａ」は、観測行列３００を示す。また、「→」が上部に付された「ｙ」は、圧縮後のビット列を示す。「→」が上部に付された「ｘ」は、疎ベクトルを示す。
【００９１】
【数７】
2018061105.tif 000009
【００９２】
関数ｔｈｒは、具体的には、下記式（８）によって定義される。換言すれば、関数ｔｈｒは、引数ａの正負を示すビットを出力する関数である。
【００９３】
【数８】
2018061105.tif 000010
【００９４】
このように、情報処理装置１００は、入力信号に応じた疎ベクトルを、逆射影変換可能である射影ベクトルに射影変換することができ、射影ベクトルを、射影ベクトルのそれぞれの成分の大きさを特定可能であるビット列に圧縮することができる。結果として、情報処理装置１００は、入力信号に応じた疎ベクトルのそれぞれの成分の大きさを特定可能な状態で、疎ベクトルを圧縮したビット列を生成することができる。
【００９５】
（６−５）ビット復号装置６０４は、メモリ２０２から復号対象のビット列を取得する。ビット復号装置６０４は、観測行列３００を用いて、取得したビット列から射影ベクトルを復号する。ビット復号装置６０４は、復号した射影ベクトルを、射影復号装置６０５に出力する。
【００９６】
ビット復号装置６０４は、例えば、１ビットＦＰＣ（Ｆｉｘｅｄ  Ｐｏｉｎｔ  Ｃｏｎｔｉｎｕａｔｉｏｎ）などの復号アルゴリズムに基づいて、観測行列３００を用いてビット列から射影ベクトルを復号する。このように、圧縮処理と復号処理とは、同じ観測行列３００を用いることになる。
【００９７】
１ビットＦＰＣには、例えば、非特許文献「Ｐ．Ｂｏｕｆｏｕｎｏｓ  ａｎｄ  Ｒ．Ｇ．Ｂａｒａｎｉｕｋ，  “１−ｂｉｔ  ｃｏｍｐｒｅｓｓｉｖｅ  ｓｅｎｓｉｎｇ，”  ｉｎ  ４２ｎｄ  Ａｎｎｕ．  Ｃｏｎｆ．  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｃｉｅｎｃｅｓ  ａｎｄ  Ｓｙｓｔｅｍｓ  （ＣＩＳＳ），  ２００８」などを参照することができる。
【００９８】
（６−６）射影復号装置６０５は、射影ベクトルから疎ベクトルを復号する。射影復号装置６０５は、復号した疎ベクトルを、信号復号装置６０６に出力する。射影復号装置６０５は、例えば、上記式（６）に規定された逆関数ｆを用いて、射影ベクトルから疎ベクトルを復号する。
【００９９】
射影復号装置６０５は、具体的には、観測行列３００とビット列とから復号された射影ベクトルを、逆関数ｆを含む下記式（９）に代入する。以下の説明では、「Δ」は、１ビットＦＰＣの復号アルゴリズムを示す。
【０１００】
【数９】
2018061105.tif 000011
【０１０１】
（６−７）信号復号装置６０６は、疎ベクトルから信号列を復号する。信号復号装置６０６は、復号した信号列を、メモリ２０２に記憶する。また、信号復号装置６０６は、復号した信号列を処理装置６０８に出力してもよい。このように、情報処理装置１００は、ビット列から、圧縮前の疎ベクトルを復号することができ、復号した疎ベクトルから入力信号を生成することができる。
【０１０２】
（６−８）射影パラメータ設定装置６０７は、疎ベクトル変換装置６０１からｐ個の疎ベクトルを取得し、ｐ個の疎ベクトルに基づいて射影パラメータを設定する。射影パラメータ設定装置６０７は、例えば、ｐ個の疎ベクトルのｉ番目の成分ｘiを下記式（１０）に代入し、ｉ番目の成分ｘiについての標準偏差σiを算出する。
【０１０３】
【数１０】
2018061105.tif 000012
【０１０４】
射影パラメータ設定装置６０７は、算出したｉ番目の成分ｘiについての標準偏差σiを、メモリ２０２に記憶されたｉ番目の射影パラメータｄiの値として上書きする。これにより、情報処理装置１００は、逆射影変換において疎ベクトルのそれぞれの成分を特定する精度を向上させる比較的好ましい射影パラメータを設定することができる。
【０１０５】
例えば、複数の疎ベクトルのそれぞれの疎ベクトルのｉ番目の成分ｘiは色々な値になりうるため、逆射影変換の際にそれぞれの疎ベクトルのｉ番目の成分ｘiの差異を区別しやすいように、ｉ番目の射影パラメータｄiが設定されることが好ましい。
【０１０６】
一方で、ｉ番目の射影パラメータｄiが好ましくない値に設定されると、射影変換後のそれぞれの射影ベクトルの２ｉ−１番目の成分Ｘ2i-1と２ｉ番目の成分Ｘ2iとのペア同士の差異が小さくなってしまう傾向がある。そして、射影変換後のそれぞれの射影ベクトルの２ｉ−１番目の成分Ｘ2i-1と２ｉ番目の成分Ｘ2iとのペア同士の差異が小さいほど、射影変換前のそれぞれの疎ベクトルのｉ番目の成分ｘiの差異を区別することが難しくなってしまう。
【０１０７】
例えば、ｉ番目の成分ｘiのばらつきに対して射影パラメータｄiが十分に小さい場合がある。この場合、ｉ番目の成分ｘiの射影変換後の２ｉ−１番目の成分Ｘ2i-1と２ｉ番目の成分Ｘ2iとのペアは、２次元部分空間Ｖ２における点（０，１／√ｎ）の近傍に集まりやすくなる。このため、ｉ番目の成分ｘiのばらつきに対して射影パラメータｄiが十分に小さい場合、射影変換前のそれぞれの疎ベクトルのｉ番目の成分ｘiの差異を区別することが難しくなる傾向がある。
【０１０８】
また、例えば、ｉ番目の成分ｘiのばらつきに対して射影パラメータｄiが十分に大きい場合がある。この場合、ｉ番目の成分ｘiの射影変換後の２ｉ−１番目の成分Ｘ2i-1と２ｉ番目の成分Ｘ2iとのペアは、２次元部分空間Ｖ２における点（０，−１／√ｎ）の近傍に集まりやすくなる。このため、ｉ番目の成分ｘiのばらつきに対して射影パラメータｄiが十分に大きい場合、射影変換前のそれぞれの疎ベクトルのｉ番目の成分ｘiの差異を区別することが難しくなる傾向がある。
【０１０９】
これに対し、射影パラメータ設定装置６０７は、ｉ番目の射影パラメータｄiの値として、ｉ番目の成分ｘiについての標準偏差σiを用いることができる。このため、射影パラメータ設定装置６０７は、ｉ番目の射影パラメータｄiの値が、ｉ番目の成分ｘiのばらつきに対して小さすぎる値になることを抑制し、ｉ番目の成分ｘiのばらつきに対して大きすぎる値になることを抑制することができる。結果として、射影パラメータ設定装置６０７は、逆射影変換の際にそれぞれの疎ベクトルのｉ番目の成分ｘiの差異を区別しやすいように、ｉ番目の射影パラメータｄiを設定することができる。
【０１１０】
また、射影パラメータ設定装置６０７は、ｉ番目の射影パラメータｄiの値として、ｄi＝（ｘi(90)−ｘi(10)）／２を算出してもよい。ここで、ｘi(90)は、ｐ個の疎ベクトルのｉ番目の成分の第９０パーセンタイルである。ｘi(10)は、ｐ個の疎ベクトルのｉ番目の成分の第１０パーセンタイルである。パーセンタイルは、百分位点とも呼ばれる。
【０１１１】
これにより、射影パラメータ設定装置６０７は、ｉ番目の射影パラメータｄiの値が、ｉ番目の成分ｘiのばらつきに対して小さすぎる値になることを抑制し、かつ、ｉ番目の成分ｘiのばらつきに対して大きすぎる値になることを抑制することができる。結果として、射影パラメータ設定装置６０７は、逆射影変換の際にそれぞれの疎ベクトルのｉ番目の成分ｘiの差異を区別しやすいように、ｉ番目の射影パラメータｄiを設定することができる。また、射影パラメータ設定装置６０７は、パーセンタイルを用いるため、ｉ番目の成分ｘiに外れ値が含まれる場合にも、比較的好ましい射影パラメータｄiを設定しやすくなる。
【０１１２】
ここでは、射影パラメータが、標準偏差やパーセンタイルに基づく指標値である場合について説明したが、これに限らない。例えば、射影パラメータ設定装置６０７は、ｉ番目とｊ番目の成分の標準偏差の平均値（σi＋σj）／２を求め、射影パラメータｄi，ｄjとに設定してもよい。また、射影パラメータ設定装置６０７は、１番目の成分からｎ番目の成分の標準偏差の算術平均や二乗平均平方根などを、射影パラメータｄ1〜ｄnに設定してもよい。
【０１１３】
ここでは、射影パラメータ設定装置６０７が、疎ベクトル変換装置６０１から取得したｐ個の疎ベクトルに基づいて射影パラメータを設定する場合について説明したが、これに限らない。例えば、射影パラメータ設定装置６０７は、射影復号装置６０５が逆射影変換したｐ個の疎ベクトルを取得し、取得したｐ個の疎ベクトルに基づいて射影パラメータを設定してもよい。
【０１１４】
また、射影パラメータ設定装置６０７は、所定のタイミングごとに射影パラメータを更新してもよい。射影パラメータ設定装置６０７は、例えば、疎ベクトル変換装置６０１から疎ベクトルを取得する都度、最新のｐ個の疎ベクトルを基に射影パラメータを更新してもよい。また、射影パラメータ設定装置６０７は、例えば、疎ベクトル変換装置６０１から所定数の疎ベクトルを取得する都度、最新のｐ個の疎ベクトルを基に射影パラメータを更新してもよい。
【０１１５】
また、射影パラメータ設定装置６０７は、例えば、毎日所定の時刻に、最新のｐ個の疎ベクトルを基に射影パラメータを更新してもよい。また、射影パラメータ設定装置６０７は、例えば、情報処理装置１００が起動する都度、最新のｐ個の疎ベクトルを基に射影パラメータを更新してもよい。
【０１１６】
（６−９）処理装置６０８は、処理要求を受け付け、メモリ２０２に記憶された圧縮後のビット列や信号復号装置６０６から取得した信号列に基づいて、処理要求された処理を実行する。処理要求は、例えば、検索要求、照合要求、分析要求などである。処理装置６０８は、例えば、分析要求に応じて、取得したビット列を機械学習の入力として用いて分析を行い、分析結果を出力する。
【０１１７】
また、処理装置６０８は、検索要求に応じて、取得したビット列から疎ベクトルを復号し、類似する疎ベクトルを検索する。また、処理装置６０８は、検索要求に応じて、取得したビット列の間のハミング距離に基づいて、疎ベクトルの間の類似度を近似可能であるビット列の間の類似度を算出し、類似する疎ベクトルを検索してもよい。また、処理装置６０８は、メモリ２０２に記憶された圧縮後のビット列を、クラスタリングしてもよい。また、処理装置６０８は、メモリ２０２に記憶された圧縮後のビット列の中で、所定の条件を満たさないビット列などを、異常データとして検出してもよい。
【０１１８】
以上では、１つの情報処理装置１００が、信号列をビット列に圧縮する圧縮処理と、ビット列から信号列を復号する復号処理とのいずれも実行可能である場合について説明したが、これに限らない。例えば、圧縮処理を実行可能な情報処理装置１００として動作する圧縮側装置と、復号処理を実行可能な情報処理装置１００として動作する復号側装置とが、別々に存在してもよい。
【０１１９】
この場合、圧縮側装置と、復号側装置とは、同一の観測行列３００と、同一の射影パラメータセット４００とを有するようにする。例えば、圧縮側装置は、復号側装置と最初に通信する際に、圧縮側装置が圧縮処理に用いる観測行列３００と射影パラメータセット４００とを、復号側装置に送信しておく。
【０１２０】
また、圧縮側装置と、復号側装置とに、同一の観測行列３００と同一の射影パラメータセット４００とが予め設定されていてもよい。また、圧縮側装置は、複数の疎ベクトルを基に射影パラメータを更新する場合、射影パラメータを更新する都度、更新後の射影パラメータを含む更新後の射影パラメータセット４００を、復号側装置に送信してもよい。
【０１２１】
また、圧縮側装置は、複数の疎ベクトルを基に射影パラメータを更新する場合であっても、更新後の射影パラメータを含む更新後の射影パラメータセット４００を、復号側装置に送信しなくてもよい場合がある。例えば、復号側装置が、復号処理によって得られた複数の疎ベクトルを基に、圧縮側装置と同様に射影パラメータを更新可能な場合がある。
【０１２２】
（実施例２における情報処理装置１００の動作の一例）
次に、実施例２における情報処理装置１００の動作の一例について説明する。実施例２は、実施例１の射影関数ｆ-1と逆関数ｆとを変形した一例である。実施例２における情報処理装置１００の動作は、射影関数ｆ-1と逆関数ｆとが異なる点以外は同様であるため、射影関数ｆ-1と逆関数ｆとについての説明以外は省略する。
【０１２３】
実施例２における射影関数ｆ-1は、下記式（１１）によって規定される。以下の説明では、「ｋ」は、疎ベクトルの非ゼロ成分の数である。情報処理装置１００は、ｉ＝１〜ｎの範囲で、下記式（１１）を用いて、疎ベクトルのそれぞれの成分を、射影ベクトルのそれぞれの成分に射影変換する。
【０１２４】
【数１１】
2018061105.tif 000013
【０１２５】
上記式（１１）では、疎ベクトルのｉ番目の成分ｘiが０である場合、射影ベクトルの成分Ｘ2i-1と成分Ｘ2iとのペアは（０，０）になる。これにより、情報処理装置１００は、ゼロ成分がより多く、非ゼロ成分がより少なく、スパース性の強い射影ベクトルを生成しやすくすることができる。
【０１２６】
ここで、観測行列３００の行数ｍは、非ゼロ成分の数ｋよりも大きい実数であればよい。換言すれば、非ゼロ成分の数ｋが小さいほど、観測行列３００の行数ｍは小さくてもよくなる。このため、情報処理装置１００は、射影ベクトルの非ゼロ成分をより少なくしたことによって、１ビット圧縮センシングに用いる観測行列３００の行数ｍをより少なくすることができる。これにより、情報処理装置１００は、射影ベクトルと観測行列３００とのベクトル積演算にかかる演算量の増大化を抑制し、射影ベクトルと観測行列３００とのベクトル積演算にかかる時間の増大化を抑制することができる。
【０１２７】
さらに、観測行列３００の行数ｍは圧縮後のビット列の長さになる。このため、情報処理装置１００は、射影ベクトルの非ゼロ成分をより少なくしたことによって、観測行列３００の行数ｍをより少なくすることができ、圧縮後のビット列の長さをより小さくすることができる。これにより、情報処理装置１００は、圧縮効率の向上を図ることができる。
【０１２８】
また、上記式（１１）では、疎ベクトルのｉ番目の成分ｘiが非ゼロ成分である場合、射影ベクトルの成分Ｘ2i-1と成分Ｘ2iとのペアは、長さが１／√ｋの２次元ベクトルを示す成分のペアになる。これにより、情報処理装置１００は、実施例２における射影関数ｆ-1を用いた場合でも射影ベクトルについて上記式（５）を成立させることができる。
【０１２９】
射影ベクトルはスパースなベクトルであって、かつ、射影ベクトルについて上記式（５）が成立するため、射影ベクトルを１ビット圧縮センシングにより圧縮した場合であっても、復号処理の際には射影ベクトルのそれぞれの成分は特定可能になる。これにより、情報処理装置１００は、疎ベクトルに逆射影変換可能であって、かつ、圧縮後のビット列から復号可能でもある射影ベクトルを生成することができる。
【０１３０】
また、実施例２における射影関数ｆ-1の逆関数ｆは、具体的には、下記式（１２）によって定義される。ここでは、情報処理装置１００は、復号した射影ベクトルに基づいて、疎ベクトルの非ゼロ成分の数ｋを計数し、逆関数ｆの第２ｎ＋１番目の入力として用いる。
【０１３１】
例えば、上記式（１１）を参照すると、射影ベクトルの先頭から２つずつの成分のペアのうち、ゼロ成分のペアは、疎ベクトルのゼロ成分に対応し、ゼロ成分のペアではないペアは、疎ベクトルの非ゼロ成分に対応することになる。
【０１３２】
このため、情報処理装置１００は、復号した射影ベクトルの先頭から２つずつの成分のペアのうち、ゼロ成分のペアではないペアの数を計数することにより、疎ベクトルの非ゼロ成分の数ｋを求めることができる。そして、情報処理装置１００は、求めた疎ベクトルの非ゼロ成分の数ｋを、逆関数ｆの第２ｎ＋１番目の入力として用いる。これにより、情報処理装置１００は、射影ベクトルから疎ベクトルに逆射影変換することができる。
【０１３３】
【数１２】
2018061105.tif 000014
【０１３４】
（設定処理手順の一例）
次に、図８を用いて、射影パラメータを設定する設定処理手順の一例について説明する。
【０１３５】
図８は、設定処理手順の一例を示すフローチャートである。図８において、情報処理装置１００は、記憶部５０１から複数の信号列を取得する（ステップＳ８０１）。ここでは、取得した複数の信号列のそれぞれの信号列の成分の数はｎである。
【０１３６】
次に、情報処理装置１００は、それぞれの信号列に離散コサイン変換を行い、成分の二乗が成分の二乗和の１％を下回る成分を０に置き換えた数値列を、ｎ次元の疎ベクトルとして生成する（ステップＳ８０２）。そして、情報処理装置１００は、生成した複数の疎ベクトルのｉ番目の成分の標準偏差σiを算出する（ステップＳ８０３）。ここでは、ｉは１〜ｎである。
【０１３７】
次に、情報処理装置１００は、算出した標準偏差σiを、ｉ番目の成分についての射影パラメータｄiに設定する（ステップＳ８０４）。そして、情報処理装置１００は、設定処理を終了する。これにより、情報処理装置１００は、逆射影変換においてｎ次元の疎ベクトルのそれぞれの成分を特定する精度を向上させる比較的好ましい射影パラメータを設定することができる。
【０１３８】
（圧縮処理手順の一例）
次に、図９を用いて、射影パラメータを設定する圧縮処理手順の一例について説明する。
【０１３９】
図９は、圧縮処理手順の一例を示すフローチャートである。図９において、情報処理装置１００は、記憶部５０１から信号列を取得する（ステップＳ９０１）。ここでは、取得した信号列の成分の数はｎである。
【０１４０】
次に、情報処理装置１００は、信号列に離散コサイン変換を行い、成分の二乗が成分の二乗和の１％を下回る成分を０に置き換えた数値列を、ｎ次元の疎ベクトルとして生成する（ステップＳ９０２）。そして、情報処理装置１００は、射影パラメータｄiを用いて、生成したｎ次元の疎ベクトルを、２ｎ次元のベクトルに射影変換する（ステップＳ９０３）。
【０１４１】
次に、情報処理装置１００は、射影変換によって得られた２ｎ次元のベクトルとｍ行ｎ列の観測行列３００とのベクトル積演算によって得られたｍ次元のベクトルのそれぞれの成分の正負を示すビットを並べたビット列を生成する（ステップＳ９０４）。ここでは、生成したビット列の成分の数はｍである。そして、情報処理装置１００は、圧縮処理を終了する。これにより、情報処理装置１００は、信号列に応じたｎ次元の疎ベクトルを、復号可能な状態で圧縮することができる。
【０１４２】
また、図８のステップＳ８０１，Ｓ８０２と、図９のステップＳ９０１，Ｓ９０２とは、同様の処理である。このため、情報処理装置１００は、例えば、図８のステップＳ８０１，Ｓ８０２の処理に、図９のステップＳ９０１，Ｓ９０２の処理が包含されるようにしてもよい。
【０１４３】
（復号処理手順の一例）
次に、図１０を用いて、射影パラメータを設定する復号処理手順の一例について説明する。
【０１４４】
図１０は、復号処理手順の一例を示すフローチャートである。図１０において、情報処理装置１００は、圧縮されたビット列を取得する（ステップＳ１００１）。ここでは、取得したビット列の成分の数はｍである。
【０１４５】
次に、情報処理装置１００は、１ビットＦＰＣアルゴリズムを用いて、射影変換によって得られた２ｎ次元のベクトルを復号する（ステップＳ１００２）。そして、情報処理装置１００は、復号した２ｎ次元のベクトルを、ｎ次元の疎ベクトルに逆射影変換する（ステップＳ１００３）。
【０１４６】
次に、情報処理装置１００は、逆射影変換したｎ次元の疎ベクトルに逆離散コサイン変換を行い、信号列を復号する（ステップＳ１００４）。そして、情報処理装置１００は、復号処理を終了する。これにより、情報処理装置１００は、１ビット圧縮センシングによって得られたビット列から、圧縮前のｎ次元の疎ベクトルを復号することができ、ｎ次元の疎ベクトルから信号列を生成することができる。
【０１４７】
以上説明したように、情報処理装置１００によれば、入力信号に応じた疎ベクトルを、複数の射影パラメータを用いて疎ベクトルより多くの成分を含み、かつ、成分の二乗和が所定の値になる射影ベクトルに射影変換することができる。また、情報処理装置１００によれば、射影変換した射影ベクトルと観測行列３００とのベクトル積結果のそれぞれの成分の正負を示すビットを並べたビット列を生成することができる。これにより、情報処理装置１００は、信号列に応じたｎ次元の疎ベクトルを、復号可能な状態で圧縮することができる。
【０１４８】
また、情報処理装置１００によれば、疎ベクトルのそれぞれの成分に応じた射影パラメータを用いて、疎ベクトルのそれぞれの成分を、所定の大きさのベクトルをあらわす成分のペアに変換することができる。これにより、情報処理装置１００は、射影ベクトルを生成する際に、成分の二乗和が所定の値になるようにすることができる。
【０１４９】
また、情報処理装置１００によれば、複数の入力信号のそれぞれの入力信号に応じた数値列において、疎ベクトルのいずれかの成分と同じ位置にある成分について標準偏差を算出することができる。また、情報処理装置１００によれば、算出した標準偏差をいずれかの成分に応じた射影パラメータに設定することができる。これにより、情報処理装置１００は、逆射影変換において疎ベクトルのそれぞれの成分を特定する精度を向上させる比較的好ましい射影パラメータを設定することができる。
【０１５０】
また、情報処理装置１００によれば、複数の入力信号のそれぞれの入力信号に応じた数値列において、疎ベクトルのいずれかの成分と同じ位置にある成分についてパーセンタイルを用いた指標値を算出することができる。また、情報処理装置１００によれば、算出した指標値をいずれかの成分に応じた射影パラメータに設定することができる。これにより、情報処理装置１００は、逆射影変換において疎ベクトルのそれぞれの成分を特定する精度を向上させる比較的好ましい射影パラメータを設定することができる。
【０１５１】
また、情報処理装置１００によれば、疎ベクトルとして、入力信号より多くのゼロ成分を含むように、入力信号を可逆変換して得られる数値列を用いることができる。これにより、情報処理装置１００は、１ビット圧縮センシングの復号条件を満たしやすくすることができる。
【０１５２】
また、情報処理装置１００によれば、疎ベクトルの複数の成分のうちゼロ成分を、ゼロ成分のペアに変換することができる。また、情報処理装置１００によれば、疎ベクトルの複数の成分のうち非ゼロ成分を、非ゼロ成分に応じた射影パラメータを用いて、所定の大きさのベクトルをあらわす成分のペアに変換することができる。これにより、情報処理装置１００は、射影ベクトルの非ゼロ成分をより少なくし、１ビット圧縮センシングによって得られるビット列の長さをより小さくすることができ、圧縮効率の向上を図ることができる。
【０１５３】
また、情報処理装置１００によれば、ビット列から射影ベクトルを復号し、復号した射影ベクトルを複数の射影パラメータを用いて疎ベクトルに逆射影変換し、逆射影変換した疎ベクトルに応じた入力信号を生成することができる。これにより、情報処理装置１００は、１ビット圧縮センシングによって得られたビット列から、圧縮前のｎ次元の疎ベクトルを復号することができ、ｎ次元の疎ベクトルから信号列を生成することができる。
【０１５４】
なお、本実施の形態で説明した情報処理方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本情報処理プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本情報処理プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１５５】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１５６】
（付記１）入力信号に応じた第１の数値列を、複数の射影パラメータを用いて前記第１の数値列より多くの成分を含み、かつ、成分の二乗和が所定の値になる第２の数値列に射影変換し、
射影変換した前記第２の数値列と観測行列とのベクトル積結果のそれぞれの成分の正負を示すビットを並べたビット列を生成する、
制御部を有することを特徴とする情報処理装置。
【０１５７】
（付記２）前記複数の射影パラメータは、前記第１の数値列のそれぞれの成分に応じた射影パラメータを含み、
前記制御部は、
前記第１の数値列のそれぞれの成分に応じた射影パラメータを用いて、前記第１の数値列のそれぞれの成分を、所定の大きさのベクトルをあらわす成分のペアに変換することにより、前記第１の数値列を前記第２の数値列に射影変換する、ことを特徴とする付記１に記載の情報処理装置。
【０１５８】
（付記３）前記制御部は、
複数の入力信号のそれぞれの入力信号に応じた数値列において、前記第１の数値列のいずれかの成分と同じ位置にある成分について標準偏差を算出し、算出した前記標準偏差を前記いずれかの成分に応じた射影パラメータに設定する、ことを特徴とする付記２に記載の情報処理装置。
【０１５９】
（付記４）前記制御部は、
複数の入力信号のそれぞれの入力信号に応じた数値列において、前記第１の数値列のいずれかの成分と同じ位置にある成分についてパーセンタイルを用いた指標値を算出し、算出した前記指標値を前記いずれかの成分に応じた射影パラメータに設定する、ことを特徴とする付記２に記載の情報処理装置。
【０１６０】
（付記５）前記第１の数値列は、前記入力信号より多くのゼロ成分を含むように、前記入力信号を可逆変換して得られる数値列である、ことを特徴とする付記１〜４のいずれか一つに記載の情報処理装置。
【０１６１】
（付記６）前記複数の射影パラメータは、前記第１の数値列のそれぞれの成分に応じた射影パラメータを含み、
前記制御部は、
前記第１の数値列の複数の成分のうちゼロ成分を、ゼロ成分のペアに変換し、前記第１の数値列の複数の成分のうち非ゼロ成分を、前記非ゼロ成分に応じた射影パラメータを用いて、所定の大きさのベクトルをあらわす成分のペアに変換することにより、前記第１の数値列を前記第２の数値列に射影変換する、ことを特徴とする付記１に記載の情報処理装置。
【０１６２】
（付記７）コンピュータが、
入力信号に応じた第１の数値列を、複数の射影パラメータを用いて前記第１の数値列より多くの成分を含み、かつ、成分の二乗和が所定の値になる第２の数値列に射影変換し、
射影変換した前記第２の数値列と観測行列とのベクトル積結果のそれぞれの成分の正負を示すビットを並べたビット列を生成する、
処理を実行することを特徴とする情報処理方法。
【０１６３】
（付記８）コンピュータに、
入力信号に応じた第１の数値列を、複数の射影パラメータを用いて前記第１の数値列より多くの成分を含み、かつ、成分の二乗和が所定の値になる第２の数値列に射影変換し、
射影変換した前記第２の数値列と観測行列とのベクトル積結果のそれぞれの成分の正負を示すビットを並べたビット列を生成する、
処理を実行させることを特徴とする情報処理プログラム。
【０１６４】
（付記９）入力信号に応じた第１の数値列を、複数の射影パラメータを用いて射影変換して得られた、前記第１の数値列より多くの成分を含み、かつ、成分の二乗和が所定の値になる第２の数値列と観測行列とのベクトル積結果のそれぞれの成分の正負を示すビットを並べたビット列から、前記第２の数値列を復号し、
復号した前記第２の数値列を、前記複数の射影パラメータを用いて前記第１の数値列に逆射影変換し、逆射影変換した前記第１の数値列に応じた前記入力信号を生成する、
制御部を有することを特徴とする情報処理装置。
【０１６５】
（付記１０）コンピュータが、
入力信号に応じた第１の数値列を、複数の射影パラメータを用いて射影変換して得られた、前記第１の数値列より多くの成分を含み、かつ、成分の二乗和が所定の値になる第２の数値列と観測行列とのベクトル積結果のそれぞれの成分の正負を示すビットを並べたビット列から、前記第２の数値列を復号し、
復号した前記第２の数値列を、前記複数の射影パラメータを用いて前記第１の数値列に逆射影変換し、逆射影変換した前記第１の数値列に応じた前記入力信号を生成する、
処理を実行することを特徴とする情報処理方法。
【０１６６】
（付記１１）コンピュータに、
入力信号に応じた第１の数値列を、複数の射影パラメータを用いて射影変換して得られた、前記第１の数値列より多くの成分を含み、かつ、成分の二乗和が所定の値になる第２の数値列と観測行列とのベクトル積結果のそれぞれの成分の正負を示すビットを並べたビット列から、前記第２の数値列を復号し、
復号した前記第２の数値列を、前記複数の射影パラメータを用いて前記第１の数値列に逆射影変換し、逆射影変換した前記第１の数値列に応じた前記入力信号を生成する、
処理を実行させることを特徴とする情報処理プログラム。
【符号の説明】
【０１６７】
１００  情報処理装置
１０１  第１の数値列
１０２  第２の数値列
１０３  ビット列
２００  バス
２０１  ＣＰＵ
２０２  メモリ
２０３  ネットワークＩ／Ｆ
２０４  ディスクドライブ
２０５  ディスク
２０６  記録媒体Ｉ／Ｆ
２０７  記録媒体
２１０  ネットワーク
３００  観測行列
４００  射影パラメータセット
５０１  記憶部
５０２  取得部
５０３  第１の変換部
５０４  第２の変換部
５０５  第３の変換部
５０６  第１の復号部
５０７  第２の復号部
５０８  第３の復号部
５０９  出力部
６０１  疎ベクトル変換装置
６０２  射影変換装置
６０３  １ビット圧縮センシング装置
６０４  ビット復号装置
６０５  射影復号装置
６０６  信号復号装置
６０７  射影パラメータ設定装置
６０８  処理装置
【図１】
2018061105.tif 000015
【図２】
2018061105.tif 000016
【図３】
2018061105.tif 000017
【図４】
2018061105.tif 000018
【図５】
2018061105.tif 000019
【図６】
2018061105.tif 000020
【図７】
2018061105.tif 000021
【図８】
2018061105.tif 000022
【図９】
2018061105.tif 000023
【図１０】
2018061105.tif 000024