(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-15
(45)【発行日】2024-01-23
(54)【発明の名称】通信システム、送信装置、受信装置、行列生成装置、通信方法、送信方法、受信方法、行列生成方法、及び、記録媒体
(51)【国際特許分類】
G06N 3/02 20060101AFI20240116BHJP
H03M 7/20 20060101ALI20240116BHJP
H04L 25/49 20060101ALI20240116BHJP
【FI】
G06N3/02
H03M7/20
H04L25/49 A
(21)【出願番号】P 2022501422
(86)(22)【出願日】2020-02-17
(86)【国際出願番号】 JP2020006133
(87)【国際公開番号】W WO2021166053
(87)【国際公開日】2021-08-26
【審査請求日】2022-07-25
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100104765
【氏名又は名称】江上 達夫
(74)【代理人】
【識別番号】100107331
【氏名又は名称】中村 聡延
(74)【代理人】
【識別番号】100131015
【氏名又は名称】三輪 浩誉
(72)【発明者】
【氏名】神谷 典史
【審査官】多賀 実
(56)【参考文献】
【文献】国際公開第2018/233932(WO,A1)
【文献】国際公開第2019/080988(WO,A1)
【文献】特開2019-140680(JP,A)
【文献】特表2018-518126(JP,A)
【文献】米国特許出願公開第2019/0266482(US,A1)
【文献】特開昭58-071788(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/02-3/10
H03M 7/00-7/50
H04L 25/49
H04L 27/00-27/38
(57)【特許請求の範囲】
【請求項1】
通信路を介して送信信号を送信する送信装置と、前記通信路を介して前記送信装置が送信した前記送信信号を受信信号として受信する受信装置とを備える通信システムであって、
前記送信装置は、
第1ビット長bを有する第1ビット系列を、前記第1ビット系列のビット配列パターンに応じたビット位置にw-1(但し、wは2以上の整数)個のビット1が割り当てられ且つ前記第1ビット長bよりも長い第2ビット長nを有する第2ビット系列に変換する第1ビット変換手段と、
前記第2ビット系列を、前記第2ビット長nよりも短い第3ビット長tを有する第3ビット系列に変換する第2ビット変換手段と、
前記第3ビット長tと同じ数の入力ノードを有し且つ前記第3ビット系列が入力されると前記送信信号の特徴量を指定するインデックス値を出力するニューラルネットワークと
を備え、
前記受信装置は、
前記第3ビット長tと同じ数の出力ノードを有し且つ前記受信信号の特徴量が入力されると前記第3ビット長tと同じ数の数値データを含む第1数値データ系列を出力するニューラルネットワークと、
前記第1数値データ系列を、前記第2ビット長nと同じ数の数値データを含む第2数値データ系列に変換する数値変換手段と、
前記第2数値データ系列に対して、前記第1ビット変換手段が行う変換処理の逆変換に相当する変換処理を行うことで、前記第1ビット長bを有する第4ビット系列を生成する生成手段と
を備える通信システム。
【請求項2】
前記第2ビット変換手段は、t行×n列のバイナリ行列を用いて、前記第2ビット系列を前記第3ビット系列に変換する
請求項1に記載の通信システム。
【請求項3】
前記第2ビット変換手段は、前記第2ビット系列に含まれるw-1個のビット1のビット位置に基づいて、前記バイナリ行列からw-1個の列ベクトルを指定し、前記w-1個の列ベクトルの論理和に含まれるt個の成分を前記第3ビット系列に設定する
請求項2に記載の通信システム。
【請求項4】
前記数値変換手段は、t行×n列のバイナリ行列を用いて、前記第1数値データ系列を前記第2数値データ系列に変換する
請求項1から3のいずれか一項に記載の通信システム。
【請求項5】
前記数値変換手段は、前記第1数値データ系列に含まれるt個の数値データから構成されるt次元行ベクトルと前記バイナリ行列とを乗算することでn次元行ベクトルを算出し、前記n次元行ベクトルの各成分を、前記バイナリ行列の各列ベクトル中で1となる成分の数で除算することで、前記第2数値データ系列を構成するn個の数値データを算出する
請求項4に記載の通信システム。
【請求項6】
前記バイナリ行列は、
各列ベクトル中に1となる成分を一つ含むq(但し、qは、素数の冪)行×(q-1)列の第1行列をq+w個生成することと、
q+w個の前記第1行列を成分とするwq行×(q
2
-1)列の第2行列を生成することと、
1となる成分をw個含む列ベクトルを前記第2行列に追加することで得られる第3行列を前記バイナリ行列として設定することと
を含む行列生成方法によって生成され、
前記バイナリ行列は、
q/w以下で最大となる素数の冪q
wがw-1以上である場合には、
前記行列生成方法によってwq
w行×q’(但し、q’=q
w
2)列の前記バイナリ行列である第4行列を生成し、前記第4行列に全ての成分が0になる行ベクトルをq-wq
w個追加することでq行×q’列の第5行列を生成することと、
前記冪q
wがw-1以上でない場合には、連続したw個の成分が1となり且つそれ以外の成分が0となる列ベクトルを、任意の二つの列ベクトルについて共に1となる成分の数が高々一つになるようにq’(但し、q’は、(q-1)(w-1)以下の最大の整数)個並べることで、q行×q’列の第6行列を生成すること
と、
前記第3行列に対して、前記第5行列又は前記第6行列を対角にw個配置したブロック行列を追加することで得られる第7行列を、前記バイナリ行列として設定することと
を含む拡張行列生成方法によって生成され
る
請求項2から5のいずれか一項に記載の通信システム。
【請求項7】
通信路を介して送信信号を送信する送信装置であって、
第1ビット長bを有する第1ビット系列を、前記第1ビット系列のビット配列パターンに応じたビット位置にw-1(但し、wは2以上の整数)個のビット1が割り当てられ且つ前記第1ビット長bよりも長い第2ビット長nを有する第2ビット系列に変換する第1ビット変換手段と、
前記第2ビット系列を、前記第2ビット長nよりも短い第3ビット長tを有する第3ビット系列に変換する第2ビット変換手段と、
前記第3ビット長tと同じ数の入力ノードを有し且つ前記第3ビット系列が入力されると前記送信信号の特徴量を指定するインデックス値を出力するニューラルネットワークと
を備える送信装置。
【請求項8】
通信路を介して送信装置が送信した送信信号を受信信号として受信する受信装置であって、
前記送信装置は、第1ビット長bを有する第1ビット系列を、前記第1ビット系列のビット配列パターンに応じたビット位置にw-1(但し、wは2以上の整数)個のビット1が割り当てられ且つ前記第1ビット長bよりも長い第2ビット長nを有する第2ビット系列に変換し、前記第2ビット系列を、前記第2ビット長nよりも短い第3ビット長tを有する第3ビット系列に変換し、前記第3ビット系列に基づいて前記送信信号を生成し、
前記受信装置は、
前記第3ビット長tと同じ数の出力ノードを有し且つ前記受信信号の特徴量が入力されると前記第3ビット長tと同じ数の数値データを含む第1数値データ系列を出力するニューラルネットワークと、
前記第1数値データ系列を、前記第2ビット長nと同じ数の数値データを含む第2数値データ系列に変換する数値変換手段と、
前記第2数値データ系列に対して、前記第1ビット系列を前記第2ビット系列に変換するための変換処理の逆変換に相当する変換処理を行うことで、前記第1ビット長bを有する第4ビット系列を生成する生成手段と
を備える受信装置。
【請求項9】
バイナリ行列を生成する行列生成装置であって、
各列ベクトル中に1となる成分を一つ含むq(但し、qは、素数の冪)行×(q-1)列の第1行列をq+w(但し、wは、2以上の整数)個生成し、
q+w個の前記第1行列を成分とするwq行×(q
2-1)列の第2行列を生成し、
1となる成分をw個含む列ベクトルを前記第2行列に追加することで得られる第3行列を前記バイナリ行列として設定する
行列生成装置。
【請求項10】
前記バイナリ行列は、通信路を介して送信信号を送信する送信装置及び前記通信路を介して前記送信装置が送信した前記送信信号を受信信号として受信する受信装置の少なくとも一方によって使用される
請求項9に記載の行列生成装置。
【請求項11】
通信路を介して送信信号を送信する送信方法であって、
第1ビット長bを有する第1ビット系列を、前記第1ビット系列のビット配列パターンに応じたビット位置にw-1(但し、wは2以上の整数)個のビット1が割り当てられ且つ前記第1ビット長bよりも長い第2ビット長nを有する第2ビット系列に変換することと、
前記第2ビット系列を、前記第2ビット長nよりも短い第3ビット長tを有する第3ビット系列に変換することと、
前記第3ビット長tと同じ数の入力ノードを有し且つ前記第3ビット系列が入力されると前記送信信号の特徴量を指定するインデックス値を出力するニューラルネットワークを用いて、前記送信信号を生成することと
を含む送信方法。
【請求項12】
通信路を介して送信装置が送信した送信信号を受信信号として受信する受信方法であって、
前記送信装置は、第1ビット長bを有する第1ビット系列を、前記第1ビット系列のビット配列パターンに応じたビット位置にw-1(但し、wは2以上の整数)個のビット1が割り当てられ且つ前記第1ビット長bよりも長い第2ビット長nを有する第2ビット系列に変換し、前記第2ビット系列を、前記第2ビット長nよりも短い第3ビット長tを有する第3ビット系列に変換し、前記第3ビット系列に基づいて前記送信信号を生成し、
前記受信方法は、
前記受信信号を、前記第3ビット長tと同じ数の出力ノードを有し且つ前記受信信号の特徴量が入力されると前記第3ビット長tと同じ数の数値データを含む第1数値データ系列を出力するニューラルネットワークに入力することと、
前記第1数値データ系列を、前記第2ビット長nと同じ数の数値データを含む第2数値データ系列に変換することと、
前記第2数値データ系列に対して、前記第1ビット系列を前記第2ビット系列に変換するための変換処理の逆変換に相当する変換処理を行うことで、前記第1ビット長bを有する第4ビット系列を生成することと
を含む受信方法。
【請求項13】
バイナリ行列を生成する行列生成方法であって、
前記行列生成方法は、メモリに記録されたコンピュータプログラムをプロセッサが実行することで前記プロセッサによって実行され、
前記行列生成方法は、
各列ベクトル中に1となる成分を一つ含むq(但し、qは、素数の冪)行×(q-1)列の第1行列をq+w(但し、wは、2以上の整数)個生成することと、
q+w個の前記第1行列を成分とするwq行×(q
2-1)列の第2行列を生成することと、
1となる成分をw個含む列ベクトルを前記第2行列に追加することで得られる第3行列を前記バイナリ行列として設定することと
を含む行列生成方法。
【請求項14】
通信路を介して送信信号を送信する送信方法をコンピュータに実行させるコンピュータプログラムであって、
前記送信方法は、
第1ビット長bを有する第1ビット系列を、前記第1ビット系列のビット配列パターンに応じたビット位置にw-1(但し、wは2以上の整数)個のビット1が割り当てられ且つ前記第1ビット長bよりも長い第2ビット長nを有する第2ビット系列に変換することと、
前記第2ビット系列を、前記第2ビット長nよりも短い第3ビット長tを有する第3ビット系列に変換することと、
前記第3ビット長tと同じ数の入力ノードを有し且つ前記第3ビット系列が入力されると前記送信信号の特徴量を指定するインデックス値を出力するニューラルネットワークを用いて、前記送信信号を生成することと
を含むコンピュータプログラム。
【請求項15】
通信路を介して送信装置が送信した送信信号を受信信号として受信する受信方法をコンピュータに実行させるコンピュータプログラムであって、
前記送信装置は、第1ビット長bを有する第1ビット系列を、前記第1ビット系列のビット配列パターンに応じたビット位置にw-1(但し、wは2以上の整数)個のビット1が割り当てられ且つ前記第1ビット長bよりも長い第2ビット長nを有する第2ビット系列に変換し、前記第2ビット系列を、前記第2ビット長nよりも短い第3ビット長tを有する第3ビット系列に変換し、前記第3ビット系列に基づいて前記送信信号を生成し、
前記受信方法は、
前記受信信号を、前記第3ビット長tと同じ数の出力ノードを有し且つ前記受信信号の特徴量が入力されると前記第3ビット長tと同じ数の数値データを含む第1数値データ系列を出力するニューラルネットワークに入力することと、
前記第1数値データ系列を、前記第2ビット長nと同じ数の数値データを含む第2数値データ系列に変換することと、
前記第2数値データ系列に対して、前記第1ビット系列を前記第2ビット系列に変換するための変換処理の逆変換に相当する変換処理を行うことで、前記第1ビット長bを有する第4ビット系列を生成することと
を含むコンピュータプログラム。
【請求項16】
バイナリ行列を生成する行列生成方法をコンピュータに実行させるコンピュータプログラムであって、
前記行列生成方法は、
各列ベクトル中に1となる成分を一つ含むq(但し、qは、素数の冪)行×(q-1)列の第1行列をq+w(但し、wは、2以上の整数)個生成することと、
q+w個の前記第1行列を成分とするwq行×(q
2-1)列の第2行列を生成することと、
1となる成分をw個含む列ベクトルを前記第2行列に追加することで得られる第3行列を前記バイナリ行列として設定することと
を含むコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信路を介して信号を送受信する通信システム及び通信方法、通信路を介して信号を送信する送信装置及び送信方法、通信路を介して信号を受信する受信装置及び受信方法、バイナリ行列を生成する行列生成装置及び行列生成方法、並びに、上述した各方法を実行するためのコンピュータプログラムが記録された記録媒体の技術分野に関する。
【背景技術】
【0002】
ニューラルネットワークを用いた通信システムが知られている。例えば、特許文献1には、ニューラルネットワークを用いて受信信号を復調する通信システムが記載されている。例えば、特許文献2には、ニューラルネットワークを用いて送信信号を送信する通信システムが記載されている。
【0003】
その他、本願発明に関連する先行技術文献として、特許文献3及び非特許文献1から非特許文献5があげられる。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2019-016967号公報
【文献】特開平2-032679号公報
【文献】国際公開第2019/130475号パンフレット
【非特許文献】
【0005】
【文献】Timothy O’Shea et al.、“An Indroduction to Deep Learning for the Physical Layer”、IEEE Transactions on Cognitive Communications and Networking、Vol.3、no.4、pp.563-575、2017年12月
【文献】Thomas G.Dietterich et al.、“Solving Multiclass Learning Problems via Error-Correcting Output Codes”、Journal of Artificial Intelligence Research、Vol.2 pp.263-286、1995年
【文献】Huiqun Deng et al.、“Applying Error Correcting Output Coding to Enhance Convolutional Network for Target Detection and Pattern Recognition”、2010 International Conference on Pattenr Recognition、pp.4291-4294、2010年
【文献】W.H.Kautz et al.、“Nonrandom Binary Superimposed Codes”、IEEE Transaction on Information Theory、Vol.10 No.4、pp.363-377、1964年
【文献】Huseyin A.Inan et al.、“Sparse Combinatorial Group Testing”、arXiv:1711.05403、2019年1月25日
【発明の概要】
【発明が解決しようとする課題】
【0006】
ニューラルネットワークを用いた通信システムは、ニューラルネットワークのネットワーク構造の複雑さに起因して、演算量(つまり、計算量)が相対的に多くなってしまうという技術的問題を有する。このため、通信システムの演算量を低減する(つまり、演算量の増大を抑制する)ことが望まれる。
【0007】
一例として、通信路を介して送信装置が送信した送信信号を受信信号として受信する受信装置がニューラルネットワークを備えている場合には、ニューラルネットワークは、通信路において外乱(例えば、ノイズ及び干渉等の少なくとも一つ)の影響を受けた受信信号から、外乱の影響を受けていない正しい送信信号を推定するために用いられることがある。つまり、ニューラルネットワークは、受信信号の信号パターンが、送信信号がとり得る複数の信号パターン(つまり、送信信号のクラスであり、送信信号が表すビット系列がとり得る複数のビット配列パターンと等価)のいずれに近いかを推定する分類器として用いられることがある。この場合、ニューラルネットワークの出力層のノード数は、通常、送信信号がとり得る信号パターンの数と同じになる(或いは、比例する)ことが多い。なぜならば、ニューラルネットワークは、典型的には、受信信号の信号パターンが、送信信号がとりえる信号パターンである確率を、送信信号がとり得る信号パターンの数だけ出力するからである。このため、送信信号がとり得る信号パターンの数が多くなればなるほど、ニューラルネットワークの出力層のノード数が多くなる。その結果、ニューラルネットワークの出力層のノード数が多くなるほど、通信システムの演算量が多くなってしまう。例えば、8ビットのビット系列を表す送信信号が送信される場合には、送信信号は、256(=28)通りの信号パターンをとり得る。近年研究が進められている1024QAM(Quadrature Amplitude Modulation)又は4096QAMが用いられる場合には、送信信号がとり得る信号パターンの数は、1024又は4096にまで膨れ上がる。従って、演算量の低減が大きな技術的問題となる。
【0008】
尚、説明の簡略化のために詳細な説明は省略するものの、通信路を介して送信信号を送信する送信装置がニューラルネットワークを備えている場合にも、同様の技術的問題が生ずる。
【0009】
本発明は、上述した技術的問題を解決可能な通信システム、送信装置、受信装置、行列生成装置、通信方法、送信方法、受信方法、行列生成方法、及び、記録媒体を提供することを課題とする。一例として、本発明は、必要な演算量が相対的に少ない通信システム、送信装置、受信装置、行列生成装置、通信方法、送信方法、受信方法、行列生成方法、及び、記録媒体を提供することを課題とする。
【課題を解決するための手段】
【0010】
通信システムの一態様は、通信路を介して送信信号を送信する送信装置と、前記通信路を介して前記送信装置が送信した前記送信信号を受信信号として受信する受信装置とを備える通信システムであって、前記送信装置は、第1ビット長bを有する第1ビット系列を、前記第1ビット系列のビット配列パターンに応じたビット位置にw-1(但し、wは2以上の整数)個のビット1が割り当てられ且つ前記第1ビット長bよりも長い第2ビット長nを有する第2ビット系列に変換する第1ビット変換手段と、前記第2ビット系列を、前記第2ビット長nよりも短い第3ビット長tを有する第3ビット系列に変換する第2ビット変換手段と、前記第3ビット長tと同じ数の入力ノードを有し且つ前記第3ビット系列が入力されると前記送信信号の特徴量を指定するインデックス値を出力するニューラルネットワークとを備え、前記受信装置は、前記第3ビット長tと同じ数の出力ノードを有し且つ前記受信信号の特徴量が入力されると前記第3ビット長tと同じ数の数値データを含む第1数値データ系列を出力するニューラルネットワークと、前記第1数値データ系列を、前記第2ビット長nと同じ数の数値データを含む第2数値データ系列に変換する数値変換手段と、前記第2数値データ系列に対して、前記第1ビット変換手段が行う変換処理の逆変換に相当する変換処理を行うことで、前記第1ビット長bを有する第4ビット系列を生成する生成手段とを備える。
【0011】
送信装置の一態様は、通信路を介して送信信号を送信する送信装置であって、第1ビット長bを有する第1ビット系列を、前記第1ビット系列のビット配列パターンに応じたビット位置にw-1(但し、wは2以上の整数)個のビット1が割り当てられ且つ前記第1ビット長bよりも長い第2ビット長nを有する第2ビット系列に変換する第1ビット変換手段と、前記第2ビット系列を、前記第2ビット長nよりも短い第3ビット長tを有する第3ビット系列に変換する第2ビット変換手段と、前記第3ビット長tと同じ数の入力ノードを有し且つ前記第3ビット系列が入力されると前記送信信号の特徴量を指定するインデックス値を出力するニューラルネットワークとを備える。
【0012】
受信装置の一態様は、通信路を介して送信装置が送信した送信信号を受信信号として受信する受信装置であって、前記送信装置は、第1ビット長bを有する第1ビット系列を、前記第1ビット系列のビット配列パターンに応じたビット位置にw-1(但し、wは2以上の整数)個のビット1が割り当てられ且つ前記第1ビット長bよりも長い第2ビット長nを有する第2ビット系列に変換し、前記第2ビット系列を、前記第2ビット長nよりも短い第3ビット長tを有する第3ビット系列に変換し、前記第3ビット系列に基づいて前記送信信号を生成し、前記受信装置は、前記第3ビット長tと同じ数の出力ノードを有し且つ前記受信信号の特徴量が入力されると前記第3ビット長tと同じ数の数値データを含む第1数値データ系列を出力するニューラルネットワークと、前記第1数値データ系列を、前記第2ビット長nと同じ数の数値データを含む第2数値データ系列に変換する数値変換手段と、前記第2数値データ系列に対して、前記第1ビット系列を前記第2ビット系列に変換するための変換処理の逆変換に相当する変換処理を行うことで、前記第1ビット長bを有する第4ビット系列を生成する生成手段とを備える。
【0013】
行列生成装置の一態様は、バイナリ行列を生成する行列生成装置であって、各列ベクトル中に1となる成分を一つ含むq(但し、qは、素数の冪)行×(q-1)列の第1行列をq+w(但し、wは、2以上の整数)個生成し、q+w個の前記第1行列を成分とするwq行×(q2-1)列の第2行列を生成し、1となる成分をw個含む列ベクトルを前記第2行列に追加することで得られる第3行列を前記バイナリ行列として設定する。
【0014】
通信方法の一態様は、通信路を介して送信信号を送信する送信装置と、前記通信路を介して前記送信装置が送信した前記送信信号を受信信号として受信する受信装置とを用いた通信方法であって、第1ビット長bを有する第1ビット系列を、前記第1ビット系列のビット配列パターンに応じたビット位置にw-1(但し、wは2以上の整数)個のビット1が割り当てられ且つ前記第1ビット長bよりも長い第2ビット長nを有する第2ビット系列に変換することと、前記第2ビット系列を、前記第2ビット長nよりも短い第3ビット長tを有する第3ビット系列に変換することと、前記第3ビット長tと同じ数の入力ノードを有し且つ前記第3ビット系列が入力されると前記送信信号の特徴量を指定するインデックス値を出力するニューラルネットワークを用いて、前記送信信号を生成することと、前記受信信号を、前記第3ビット長tと同じ数の出力ノードを有し且つ前記受信信号の特徴量が入力されると前記第3ビット長tと同じ数の数値データを含む第1数値データ系列を出力するニューラルネットワークに入力することと、前記第1数値データ系列を、前記第2ビット長nと同じ数の数値データを含む第2数値データ系列に変換することと、前記第2数値データ系列に対して、前記第1ビット変換手段が行う変換処理の逆変換に相当する変換処理を行うことで、前記第1ビット長bを有する第4ビット系列を生成することとを含む。
【0015】
送信方法の一態様は、通信路を介して送信信号を送信する送信方法であって、第1ビット長bを有する第1ビット系列を、前記第1ビット系列のビット配列パターンに応じたビット位置にw-1(但し、wは2以上の整数)個のビット1が割り当てられ且つ前記第1ビット長bよりも長い第2ビット長nを有する第2ビット系列に変換することと、前記第2ビット系列を、前記第2ビット長nよりも短い第3ビット長tを有する第3ビット系列に変換することと、前記第3ビット長tと同じ数の入力ノードを有し且つ前記第3ビット系列が入力されると前記送信信号の特徴量を指定するインデックス値を出力するニューラルネットワークを用いて、前記送信信号を生成することとを含む。
【0016】
受信方法の一態様は、通信路を介して送信装置が送信した送信信号を受信信号として受信する受信方法であって、前記送信装置は、第1ビット長bを有する第1ビット系列を、前記第1ビット系列のビット配列パターンに応じたビット位置にw-1(但し、wは2以上の整数)個のビット1が割り当てられ且つ前記第1ビット長bよりも長い第2ビット長nを有する第2ビット系列に変換し、前記第2ビット系列を、前記第2ビット長nよりも短い第3ビット長tを有する第3ビット系列に変換し、前記第3ビット系列に基づいて前記送信信号を生成し、前記受信方法は、前記受信信号を、前記第3ビット長tと同じ数の出力ノードを有し且つ前記受信信号の特徴量が入力されると前記第3ビット長tと同じ数の数値データを含む第1数値データ系列を出力するニューラルネットワークに入力することと、前記第1数値データ系列を、前記第2ビット長nと同じ数の数値データを含む第2数値データ系列に変換することと、前記第2数値データ系列に対して、前記第1ビット系列を前記第2ビット系列に変換するための変換処理の逆変換に相当する変換処理を行うことで、前記第1ビット長bを有する第4ビット系列を生成することとを含む。
【0017】
行列生成方法の一態様は、バイナリ行列を生成する行列生成方法であって、各列ベクトル中に1となる成分を一つ含むq(但し、qは、素数の冪)行×(q-1)列の第1行列をq+w(但し、wは、2以上の整数)個生成することと、q+w個の前記第1行列を成分とするwq行×(q2-1)列の第2行列を生成することと、1となる成分をw個含む列ベクトルを前記第2行列に追加することで得られる第3行列を前記バイナリ行列として設定することとを含む。
【0018】
記録媒体の第1の態様は、通信路を介して送信信号を送信する送信装置と、前記通信路を介して前記送信装置が送信した前記送信信号を受信信号として受信する受信装置とを用いた通信方法をコンピュータに実行させるコンピュータプログラムが記録された記録媒体であって、前記通信方法は、第1ビット長bを有する第1ビット系列を、前記第1ビット系列のビット配列パターンに応じたビット位置にw-1(但し、wは2以上の整数)個のビット1が割り当てられ且つ前記第1ビット長bよりも長い第2ビット長nを有する第2ビット系列に変換することと、前記第2ビット系列を、前記第2ビット長nよりも短い第3ビット長tを有する第3ビット系列に変換することと、前記第3ビット長tと同じ数の入力ノードを有し且つ前記第3ビット系列が入力されると前記送信信号の特徴量を指定するインデックス値を出力するニューラルネットワークを用いて、前記送信信号を生成することと、前記受信信号を、前記第3ビット長tと同じ数の出力ノードを有し且つ前記受信信号の特徴量が入力されると前記第3ビット長tと同じ数の数値データを含む第1数値データ系列を出力するニューラルネットワークに入力することと、前記第1数値データ系列を、前記第2ビット長nと同じ数の数値データを含む第2数値データ系列に変換することと、前記第2数値データ系列に対して、前記第1ビット変換手段が行う変換処理の逆変換に相当する変換処理を行うことで、前記第1ビット長bを有する第4ビット系列を生成することとを含む。
【0019】
記録媒体の第2の態様は、通信路を介して送信信号を送信する送信方法をコンピュータに実行させるコンピュータプログラムが記録された記録媒体であって、前記送信方法は、第1ビット長bを有する第1ビット系列を、前記第1ビット系列のビット配列パターンに応じたビット位置にw-1(但し、wは2以上の整数)個のビット1が割り当てられ且つ前記第1ビット長bよりも長い第2ビット長nを有する第2ビット系列に変換することと、前記第2ビット系列を、前記第2ビット長nよりも短い第3ビット長tを有する第3ビット系列に変換することと、前記第3ビット長tと同じ数の入力ノードを有し且つ前記第3ビット系列が入力されると前記送信信号の特徴量を指定するインデックス値を出力するニューラルネットワークを用いて、前記送信信号を生成することとを含む。
【0020】
記録媒体の第3の態様は、通信路を介して送信装置が送信した送信信号を受信信号として受信する受信方法をコンピュータに実行させるコンピュータプログラムが記録された記録媒体であって、前記送信装置は、第1ビット長bを有する第1ビット系列を、前記第1ビット系列のビット配列パターンに応じたビット位置にw-1(但し、wは2以上の整数)個のビット1が割り当てられ且つ前記第1ビット長bよりも長い第2ビット長nを有する第2ビット系列に変換し、前記第2ビット系列を、前記第2ビット長nよりも短い第3ビット長tを有する第3ビット系列に変換し、前記第3ビット系列に基づいて前記送信信号を生成し、前記受信方法は、前記受信信号を、前記第3ビット長tと同じ数の出力ノードを有し且つ前記受信信号の特徴量が入力されると前記第3ビット長tと同じ数の数値データを含む第1数値データ系列を出力するニューラルネットワークに入力することと、前記第1数値データ系列を、前記第2ビット長nと同じ数の数値データを含む第2数値データ系列に変換することと、前記第2数値データ系列に対して、前記第1ビット系列を前記第2ビット系列に変換するための変換処理の逆変換に相当する変換処理を行うことで、前記第1ビット長bを有する第4ビット系列を生成することとを含む。
【0021】
記録媒体の第4の態様は、バイナリ行列を生成する行列生成方法をコンピュータに実行させるコンピュータプログラムが記録された記録媒体であって、前記行列生成方法は、各列ベクトル中に1となる成分を一つ含むq(但し、qは、素数の冪)行×(q-1)列の第1行列をq+w(但し、wは、2以上の整数)個生成することと、q+w個の前記第1行列を成分とするwq行×(q2-1)列の第2行列を生成することと、1となる成分をw個含む列ベクトルを前記第2行列に追加することで得られる第3行列を前記バイナリ行列として設定することとを含む。
【発明の効果】
【0022】
上述した通信システム、送信装置、受信装置、行列生成装置、通信方法、送信方法、受信方法、行列生成方法、及び、記録媒体のそれぞれの態様によれば、必要な演算量が相対的に少なくなる。
【図面の簡単な説明】
【0023】
【
図1】
図1は、本実施形態の通信システムの構成を示すブロック図である。
【
図2】
図2は、本実施形態の送信装置が備える演算装置内で実現される機能ブロックの構成を示すブロック図である。
【
図3】
図3は、本実施形態の受信装置が備える演算装置内で実現される機能ブロックの構成を示すブロック図である。
【
図4】
図4は、送信動作の流れを示すフローチャートである。
【
図5】
図5は、送信動作におけるデータの流れを示す模式図である。
【
図6】
図6は、受信動作の流れを示すフローチャートである。
【
図7】
図7は、受信動作におけるデータの流れを示す模式図である。
【
図8】
図8は、本実施形態の行列生成装置の構成を示すブロック図である。
【
図9】
図9は、行列生成動作の流れを示すフローチャートである。
【
図10】
図10は、バイナリ行列を生成する過程で用いられる行列を示す。
【
図11】
図11は、バイナリ行列を生成する過程で用いられる行列を示す。
【
図12】
図12は、バイナリ行列を生成する過程で用いられる行列を示す。
【
図14】
図14は、行列拡張動作の流れを示すフローチャートである。
【
図15】
図15は、拡張バイナリ行列を生成する過程で用いられる行列を示す。
【
図18】
図18は、拡張バイナリ行列を生成する過程で用いられる行列を示す。
【
図20】
図20は、拡張バイナリ行列を生成する過程で用いられる行列を示す。
【
図24】
図24は、送信装置が備える演算装置内で実現される機能ブロックの構成の他の例を示すブロック図である。
【
図25】
図25は、受信装置が備える演算装置内で実現される機能ブロックの構成の他の例を示すブロック図である。
【発明を実施するための形態】
【0024】
以下、図面を参照しながら、通信システム、送信装置、受信装置、行列生成装置、通信方法、送信方法、受信方法、行列生成方法、及び、記録媒体の実施形態について説明する。尚、本発明が以下に説明する実施形態に限定されることはない。
【0025】
<1>通信システムSYS
初めに、本実施形態の通信システムSYSについて説明する。
【0026】
<1-1>通信システムSYSの構成
初めに、
図1を参照しながら、本実施形態の通信システムSYSの構成について説明する。
図1は、本実施形態の通信システムSYSの構成を示すブロック図である。
【0027】
図1に示すように、通信システムSYSは、送信装置1と、受信装置2とを備える。送信装置1は、通信路3を介して送信信号Txを受信装置2に送信する。受信装置2は、通信路3を介して送信装置1が送信した送信信号Txを、受信信号Rxとして受信する。通信路3は、有線の通信路(つまり、通信ネットワーク網)を含んでいてもよい。通信路3は、無線の通信路(つまり、通信ネットワーク網)を含んでいてもよい。
【0028】
送信装置1は、演算装置11と、記憶装置12と、通信装置13とを備えている。演算装置11と、記憶装置12と、通信装置13とは、データバス14を介して接続されていてもよい。
【0029】
演算装置11は、CPU(Central Processing Unit)、GPU(Graphic Processing Unit)及びFPGA(Field Programmable Gate Array)の少なくとも一つを含んでいてもよい。演算装置11は、コンピュータプログラムを読み込む。例えば、演算装置11は、記憶装置12が記憶しているコンピュータプログラムを読み込んでもよい。例えば、演算装置11は、コンピュータで読み取り可能な記録媒体が記憶しているコンピュータプログラムを、図示しない記録媒体読み取り装置を用いて読み込んでもよい。演算装置11は、通信装置13を介して、送信装置1の外部に配置される不図示の装置からコンピュータプログラムを取得してもよい(つまり、ダウンロードしてもよい又は読み込んでもよい)。演算装置11は、読み込んだコンピュータプログラムを実行する。その結果、演算装置11内には、送信装置1が行うべき動作を実行するための論理的な機能ブロックが実現される。具体的には、演算装置11内には、送信信号Txを送信する送信動作を実行するための論理的な機能ブロックが実現される。つまり、演算装置11は、送信装置1が行うべき動作を実行するための論理的な機能ブロックを実現するためのコントローラとして機能可能である。
【0030】
図2には、送信動作を実行するために演算装置11内に実現される論理的な機能ブロックの一例が示されている。
図2に示すように、演算装置11内には、「第1ビット変換手段」の一具体例であるデータ変換部111と、「第2ビット変換手段」の一具体例である入力層処理部112と、ニューラルネットワーク113と、送信信号生成部114とが実現される。ニューラルネットワーク113は、入力層1131と、中間層1132と、出力層1133とを備える。尚、データ変換部111、入力層処理部112、ニューラルネットワーク113及び送信信号生成部114の夫々の動作の詳細については、後に
図4等を参照しながら詳述するが、ここでその概要について簡単に説明する。データ変換部111は、送信装置1が送信するべきデジタルの送信データを表す時系列のビットデータであるビット系列A=(a
0、a
1、・・・)を、ビット長がb(尚、bは、1以上の整数)となるビット系列Z=(z
0、z
1、・・・z
b-1)の単位で分割する。更に、データ変換部111は、ビット系列Zを、ビット長がn(尚、nは、bより大きい整数)となり且つビット系列Zのビット配列パターン(つまり、クラス)に応じたビット位置にw-1(但し、wは2以上の整数)個のビット1が割り当てられたビット系列Y=(y
0、y
1、・・・y
n-1)に変換する。入力層処理部112は、ビット系列Yを、ビット長がt(尚、tは、nより小さく且つwよりも大きい整数)となるビット系列X=(x
0、x
1、・・・x
t-1)に変換する。ニューラルネットワーク113は、ビット系列Xのビット長tと同じ数の入力ノード(つまり、入力層1131を構成するノード)を有する。ニューラルネットワーク113にビット系列Xが入力されると、ニューラルネットワーク113は、送信信号Txの特徴量を指定するインデックス値を出力する。送信信号生成部114は、ニューラルネットワーク113の出力(つまり、出力層1133の出力)に基づいて、送信信号Txを生成する。
【0031】
再び
図1において、記憶装置12は、所望のデータを記憶可能である。例えば、記憶装置12は、演算装置11が実行するコンピュータプログラムを一時的に記憶していてもよい。記憶装置12は、演算装置11がコンピュータプログラムを実行している際に演算装置11が一時的に使用するデータを一時的に記憶してもよい。記憶装置12は、送信装置1が長期的に保存するデータを記憶してもよい。尚、記憶装置12は、RAM(Random Access Memory)、ROM(Read Only Memory)、ハードディスク装置、光磁気ディスク装置、SSD(Solid State Drive)及びディスクアレイ装置のうちの少なくとも一つを含んでいてもよい。
【0032】
通信装置13は、通信路3を介して、受信装置2と通信可能である。本実施形態では、通信装置13は、通信路3を介して、演算装置11が生成した送信信号Txを受信装置2に送信する。
【0033】
受信装置2は、演算装置21と、記憶装置22と、通信装置23とを備えている。演算装置21と、記憶装置22と、通信装置23とは、データバス24を介して接続されていてもよい。
【0034】
演算装置21は、CPU、GPU及びFPGAの少なくとも一つを含んでいてもよい。演算装置21は、コンピュータプログラムを読み込む。例えば、演算装置21は、記憶装置22が記憶しているコンピュータプログラムを読み込んでもよい。例えば、演算装置21は、コンピュータで読み取り可能な記録媒体が記憶しているコンピュータプログラムを、図示しない記録媒体読み取り装置を用いて読み込んでもよい。演算装置21は、通信装置23を介して、受信装置2の外部に配置される不図示の装置からコンピュータプログラムを取得してもよい(つまり、ダウンロードしてもよい又は読み込んでもよい)。演算装置21は、読み込んだコンピュータプログラムを実行する。その結果、演算装置21内には、受信装置2が行うべき動作を実行するための論理的な機能ブロックが実現される。具体的には、演算装置21内には、受信信号Rxを受信する受信動作を実行するための論理的な機能ブロックが実現される。つまり、演算装置21は、受信装置2が行うべき動作を実行するための論理的な機能ブロックを実現するためのコントローラとして機能可能である。
【0035】
図3には、受信動作を実行するために演算装置21内に実現される論理的な機能ブロックの一例が示されている。
図3に示すように、演算装置11内には、受信信号処理部211と、ニューラルネットワーク212と、「数値変換手段」の一具体例である出力層処理部213と、「生成手段」の一具体例であるデータ変換部214とが実現される。ニューラルネットワーク212は、入力層2121と、中間層2122と、出力層2123とを備える。尚、受信信号処理部211、ニューラルネットワーク212、出力層処理部213及びデータ変換部214の夫々の動作の詳細については、後に
図6等を参照しながら詳述するが、ここでその概要について簡単に説明する。受信信号処理部211は、受信信号Rxの特徴量を抽出する。ニューラルネットワーク212は、ビット長tと同じ数の出力ノード(つまり、出力層2123を構成するノード)を有する。ニューラルネットワーク212に受信信号Rx(具体的には、受信信号Rxの特徴量)が入力されると、ニューラルネットワーク212は、t個の出力ノードを含む出力層2123からビット長tと同じ数の数値データを含む数値データ系列U=(u
0、u
1、・・・u
t-1)を出力する。出力層処理部213は、数値データ系列Uを、ビット長nと同じ数の数値データを含む数値データ系列Y’=(y’
0、y’
1、・・・y’
n-1)に変換する。データ変換部214は、数値データ系列Y’に対して、送信装置1のデータ変換部111が行う変換処理の逆変換に相当する変換処理を行うことで、ビット長がbとなるビット系列Z’=(z’
0、z’
1、・・・z’
b-1)を出力する。ビット系列Z’は、送信装置1が送信するビット系列Zの推定値に相当する。このため、逐次生成されるビット系列Z’が合成されることで生成されるビット系列A’は、送信装置1が送信するべきデジタルの送信データを表す時系列のビットデータであるビット系列Aの推定値となる。
【0036】
再び
図1において、記憶装置22は、所望のデータを記憶可能である。例えば、記憶装置22は、演算装置21が実行するコンピュータプログラムを一時的に記憶していてもよい。記憶装置22は、演算装置21がコンピュータプログラムを実行している際に演算装置21が一時的に使用するデータを一時的に記憶してもよい。記憶装置22は、受信装置2が長期的に保存するデータを記憶してもよい。尚、記憶装置22は、RAM、ROM、ハードディスク装置、光磁気ディスク装置、SSD及びディスクアレイ装置のうちの少なくとも一つを含んでいてもよい。
【0037】
通信装置23は、通信路3を介して、送信装置1と通信可能である。本実施形態では、通信装置23は、通信路3を介して、送信装置1が送信した送信信号Txを受信信号Rxとして受信する。
【0038】
<1-2>通信システムSYSの動作
続いて、通信システムSYSの動作について説明する。上述したように、通信システムSYSは、送信装置1を用いて、送信信号Txを送信する送信動作を行う。また、通信システムSYSは、受信装置2を用いて、受信信号Rxを受信する受信動作を行う。更に、通信システムSYSは、ニューラルネットワーク113及びニューラルネットワーク212のパラメータを学習する学習動作を行う。このため、以下、送信動作、受信動作及び学習動作について順に説明する。
【0039】
<1-2-1>送信動作
初めに、
図4及び
図5を参照しながら、送信装置1が行う送信動作について説明する。
図4は、送信動作の流れを示すフローチャートである。
図5は、送信動作におけるデータの流れを示す模式図である。
【0040】
図4及び
図5に示すように、まず、データ変換部111は、送信装置1が送信するべき送信データを表すビット系列A=(a
0、a
1、・・・)を、ビット長がb(尚、bは1以上の整数)となるビット系列Z=(z
0、z
1、・・・z
b-1)の単位で分割する(ステップS11)。
【0041】
その後、データ変換部111は、ステップS11で生成された各ビット系列Zを、ビット長bよりも長いビット長n(つまり、nは、n>bを満たす整数)を有するビット系列Y=(y0、y1、・・・yn-1)に変換する(ステップS12)。ここで、ビット系列Yに含まれる1の数(つまり、ビット1の数)は、w-1(wは、上述したように2以上の整数)個である。このw-1個のビット1は、ビット系列Zのビット配列パターン(つまり、ビット系列Zのクラス又はビット系列Zが表す値)に応じたw-1個のビット位置に夫々割り当てられることが好ましい。つまり、このw-1個のビット1は、ビット系列Zのビット配列パターンに固有のw-1個のビット位置に夫々割り当てられることが好ましい。その結果、ビット系列Yは、ビット系列Zのビット配列パターン(つまり、クラス)を一意に識別可能なビット配列パターン(つまり、ビット1とビット0との配列パターン)を有する。
【0042】
このようなビット系列Yの一例として、ワンホットベクトル(One Hot Vector)があげられる。ワンホットベクトルは、wが2となるビット系列Yに相当する。この場合、ビット系列Yのビット長nは、n=2^bという条件を満たす。例えば、b=6となる場合には、6ビットのビット系列Zを一意に識別するビット系列Y(つまり、ワンホットベクトル)は、2^6=64ビットのビット長を有する。この場合、ビット系列Zの10進数表記をdとすると、ビット系列Yの先頭からd番目のビットが1になり且つその他のビットが0になるビット系列Yが生成される。尚、記号「^」は、べき乗を表すための記号であり、「C^D(尚、C及びDの夫々は実数)」は、CのD乗(つまり、D次のC冪)を表している。
【0043】
ビット系列Yに含まれるビット1の数が少なくなると(つまり、wが小さくなると)、後述する学習動作の効率が向上する。なぜならば、ニューラルネットワーク113及び212の夫々とビット1の数が少ないデータ(いわゆる、スパースなデータ)との親和性が相対的に高いからである。一方で、ビット1の数が少なくなるほど、ビット系列Zのビット配列パターン(つまり、クラス)を一意に識別するために必要なビット系列Yのビット長nが長くなる。その結果、相対的に長いビット長のビット系列を送信装置1(更には、受信装置2)が処理する必要があるがゆえに、送信装置1(更には、受信装置2)の演算量が相対的に多くなる。逆に、ビット系列Yに含まれるビット1の数が多くなると(つまり、wが大きくなると)、後述する学習動作の効率の向上効果(つまり、学習動作の誤りに対する耐性効果)が薄れるものの、ビット系列Yのビット長nが短くなるがゆえに、送信装置1(更には、受信装置2)の演算量が相対的に少なくなる。このため、ビット系列Yに含まれるビット1の数(つまり、整数w)は、ビット1の数を少なくすることで得られる学習動作の効率の向上という効果とビット1の数を多くすることで得られる演算量の低減という効果との両立を相応に図ることが可能な所望の値に設定されてもよい。或いは、ビット系列Yに含まれるビット1の数(つまり、整数w)は、ビット1の数を少なくすることで得られる学習動作の効率の向上という効果よりもビット1の数を多くすることで得られる演算量の低減という効果を優先することが可能な所望の値に設定されてもよい。或いは、ビット系列Yに含まれるビット1の数(つまり、整数w)は、ビット1の数を多くすることで得られる演算量の低減という効果よりも、ビット1の数を少なくすることで得られる学習動作の効率の向上という効果を優先することが可能な所望の値に設定されてもよい。尚、上述したワンホットベクトルは、ニューラルネットワーク113及び212の夫々との親和性が高い。このため、wは、2に設定されてもよい。但し、wは、3以上の整数に設定されてもよい。
【0044】
その後、入力層処理部112は、ステップS12で生成されたビット系列Yを、ビット長nよりも短いビット長t(つまり、tは、t<nを満たす整数)を有するビット系列X=(x0、x1、・・・xt-1)に変換する(ステップS13)。この際、入力層処理部112は、t行×n列のバイナリ行列(つまり、行列の各要素がとり得る値が、0又は1になる行列)Mを用いて、ビット系列Yをビット系列Xに変換することが好ましい。但し、入力層処理部112は、その他の方法を用いて、ビット系列Yをビット系列Xに変換してもよい。
【0045】
尚、バイナリ行列Mは、後述する行列生成装置4によって生成される。バイナリ行列Mの特徴については、後に行列生成装置4について説明する際に合わせて説明するが、以下にその概要について説明する。
【0046】
バイナリ行列Mは、バイナリ行列Mに含まれる各列ベクトルに含まれる1となる成分の数がw個以上になるという第1の行列条件を満たす行列である。好ましくは、バイナリ行列Mは、バイナリ行列Mに含まれる各列ベクトルに含まれる1となる成分の数がw個になるという第1の行列条件を満たす行列であってもよい。この際、バイナリ行列Mは、バイナリ行列Mに含まれる各列ベクトルに含まれる1となる成分の数が全ての列ベクトルの間で同じであるという条件を満たす行列であることが好ましい。但し、バイナリ行列Mは、バイナリ行列Mに含まれる各列ベクトルに含まれる1となる成分の数が、少なくとも二つの列ベクトルの間で異なるという条件を満たす行列であってもよい。
【0047】
バイナリ行列Mは、バイナリ行列Mに含まれる任意の二つの列ベクトルに関して、共に1となる成分の数が高々一つであるという第2の行列条件を満たす行列である。つまり、バイナリ行列Mは、バイナリ行列Mに含まれる任意の二つの列ベクトルの各成分を行ごとに比較した場合に、共に1となる成分が含まれる行の数が高々一つであるという第2の行列条件を満たす行列である。第2の行列条件が満たされる場合、バイナリ行列Mに含まれる任意のw-1個の列ベクトルの論理和が、残りの列ベクトルを含まなくなる。尚、「ベクトルaがベクトルbを含まない」状態は、「a∨b≠a」という条件が満たされる状態を意味する。記号「∨」は、論理和を示す。このような第2の行列条件を満たす行列は、(w-1)分離行列(w-1 distinction matrix)と称されてもよい。
【0048】
バイナリ行列Mは、スパースな行列であるという第3の行列条件を満たす行列であってもよい。つまり、バイナリ行列Mは、バイナリ行列M中に占める非零成分の数(つまり、1となる成分の数)が相対的に少ないという第3の行列条件を満たす行列であってもよい。この場合、第3の行列条件は、バイナリ行列M中に占める非零成分の数(つまり、1となる成分の数)が、バイナリ行列Mの全ての成分の数の1/qになるという行列条件を含んでいてもよい。尚、「q」は、任意の素数の冪を示す。尚、記号「/」は分数を表すための記号であり、「E/F(尚、E及びFの夫々は実数)」は、Fが分母となり且つEが分子となる文数を表している。
【0049】
このようなバイナリ行列Mを用いてビット系列Yをビット系列Xに変換する場合、入力層処理部112は、数式1を用いて、ビット系列Yをビット系列Xに変換してもよい。尚、数式1中において、バイナリ行列Mのs行t列成分を、「ms,t」と表記している。また、数式1中において、記号「・」は、論理積を示す。
【0050】
【0051】
数式1を用いた演算によって得られるビット系列X=(x0、x1、・・・xt-1)は、実質的には、バイナリ行列Mのn個の列ベクトルのうちyj=1となる全てのインデックスj(尚、jは、0≦j≦nを満たす整数)に対応するj番目の列ベクトルを論理和で足し合わせることで得られるベクトルと等価である。つまり、数式1を用いてビット系列Xを生成する動作は、実質的には、ビット系列Yに含まれるw-1個のビット1のビット位置に基づいて、バイナリ行列Mからw-1個の列ベクトルを指定し、指定したw-1個の列ベクトルの論理和に含まれるt個の成分をビット系列Xに含まれるビット(x0、x1、・・・xt-1)に設定する動作と等価である。ここで、ビット系列Yに含まれるビット1の数は、w-1個に制限されている。このため、ビット系列Yに含まれるビット(y0、y1、・・・yn-1)の大部分は0になる。従って、数式1を用いてビット系列Yをビット系列Xに変換するために必要な演算量は、相対的に少なくなる。特に、wが2に設定された場合には、ビット系列Yに含まれるn個のビット(y0、y1、・・・yn-1)のうちのただ一つだけが1になる。このため、この場合には、数式1を用いた演算によってビット系列Xを生成する動作は、実質的には、バイナリ行列Mのj番目の列ベクトルを抽出する動作と等価である。このため、数式1を用いてビット系列Yをビット系列Xに変換するために必要な演算量は、より一層少なくなる。このように演算量が低減されるがゆえに、相対的に低い演算能力しか有していない(つまり、相対的に高い演算能力を有していない)送信装置1であっても、送信動作を適切に行うことができる。これは、コスト(例えば、金銭コスト及び設置場所のサイズコストの少なくとも一方)面で制約が強い通信システムSYSにとって大変有利な効果である。
【0052】
その後、ステップS14で生成されたビット系列Xがニューラルネットワーク113に入力される(ステップS14)。上述したように、ニューラルネットワーク113は、ビット系列Xのビット長tと同じ数の入力ノードを有する。つまり、ニューラルネットワーク113は、t個の入力ノードを有する。このため、ビット系列Xに含まれるt個のビット(x0、x1、・・・xt-1)は、夫々、t個の入力ノードに入力される。尚、ニューラルネットワーク113の中間ノードの数は、任意である。
【0053】
本実施形態では、ビット長nを有するビット系列Yに代えて、ビット系列Yを変換することで得られるビット長nよりも短いビット長tを有するビット系列Xがニューラルネットワーク113に入力される。このため、ビット系列Xがニューラルネットワーク113に入力される場合には、ビット系列Yがニューラルネットワーク113に入力される場合と比較して、ニューラルネットワーク113の入力ノードの数が少なくなる。入力ノードの数が少なくなると、ニューラルネットワーク113の中間ノード(つまり、中間層1132に含まれるノード)の数も減らすことができる。従って、ビット系列Xがニューラルネットワーク113に入力される場合には、ビット系列Yがニューラルネットワーク113に入力される場合と比較して、ニューラルネットワーク113のサイズを小さくすることができる。その結果、ニューラルネットワーク113を用いる通信システムSYSの演算量が少なくなる。このように演算量が低減されるがゆえに、相対的に低い演算能力しか有していない(つまり、相対的に高い演算能力を有していない)送信装置1であっても、送信動作を適切に行うことができる。これは、コスト(例えば、金銭コスト及び設置場所のサイズコストの少なくとも一方)面で制約が強い通信システムSYSにとって大変有利な効果である。
【0054】
ニューラルネットワーク113にビット系列Xが入力されると、ニューラルネットワーク113は、送信信号Txを指定するインデックス値(つまり、送信信号Txの特徴量を指定するインデックス値)を出力する。このため、ニューラルネットワーク113の出力ノードの数は、ニューラルネットワーク113が出力すべきインデックス値の数(つまり、送信信号Txの特徴量の数)と同じに設定されることが好ましい。尚、送信信号Txの特徴量の一例として、信号点(つまり、デジタル変調信号の信号点)に関する特徴量があげられる。例えば、通信システムSYSの変調方式としてQAM(Quadrature Amplitude Modulation)が用いられる場合には、信号点に関する特徴量の一例として、互いに直交する二つの搬送波の夫々の振幅があげられる。この場合、ニューラルネットワーク113の出力ノードの数は2であってもよい。
【0055】
その後、送信信号生成部114は、ニューラルネットワーク113の出力(つまり、出力層1133の出力)に基づいて、送信信号Txを生成する(ステップS15)。つまり、送信信号生成部114は、ニューラルネットワーク113が出力したインデックス値が示す特徴量を有する送信信号Txを生成する。その後、通信装置13は、ステップS15で生成された送信信号Txを、通信路3を介して受信装置2に送信する(ステップS16)。
【0056】
<1-2-2>受信動作
続いて、
図6及び
図7を参照しながら、受信装置2が行う受信動作について説明する。
図6は、受信動作の流れを示すフローチャートである。
図7は、受信動作におけるデータの流れを示す模式図である。
【0057】
図6及び
図7に示すように、まず、通信装置23は、通信路3を介して送信装置1が送信した送信信号Txを、受信信号Rxとして受信する(ステップS21)。
【0058】
その後、受信信号処理部211は、ステップS21で受信した受信信号Rxの特徴量を抽出する(ステップS22)。例えば、受信信号処理部211は、受信信号Rxの特徴量を任意の数だけ抽出してもよい。例えば、受信信号処理部211は、受信信号Rxの特徴量を、送信装置1のニューラルネットワーク113が出力したインデックス値の数(つまり、送信信号Txの特徴量の数)と同じ数だけ抽出してもよい。一例として、上述したように通信システムSYSの変調方式としてQAMが用いられる場合には、受信信号処理部211は、受信信号Rxの信号点に関する特徴量(例えば、互いに直交する二つの搬送波の夫々の振幅)を抽出してもよい。
【0059】
ステップS22で抽出された受信信号Rxの特徴量は、送信信号Txが理想的な通信路3(つまり、外乱が存在しない通信路3)を介して送信された場合には、送信信号Txの特徴量と一致する。一方で、通信路3に外乱が存在する場合には、ステップS22で抽出された受信信号Rxの特徴量は、送信信号Txの特徴量と一致するとは限らない。しかしながら、後述するように、この場合であっても、受信装置2は、送信信号Txを適切に推定することができる。
【0060】
その後、ステップS22で抽出された受信信号Rxの特徴量が、ニューラルネットワーク212に入力される(ステップS23)。ここで、ニューラルネットワーク212の入力ノード(つまり、入力層2121に含まれるノード)の数は、ステップS22で抽出された受信信号Rxの特徴量と同一であることが好ましい。例えば、上述したように受信信号処理部211が受信信号Rxの信号点に関する特徴量(例えば、互いに直交する二つの搬送波の夫々の振幅)を抽出した場合には、ニューラルネットワーク212の入力ノードの数は、2であることが好ましい。
【0061】
ニューラルネットワーク212に受信信号Rxの特徴量が入力されると、ニューラルネットワーク212は、ビット長tと同じ数の数値データuを含む数値データ系列U=(u0、u1、・・・ut-1)を出力する(ステップS23)。上述したように、ニューラルネットワーク212は、ビット長tと同じ数の出力ノードを有する。このため、t個の出力ノードが、夫々、t個の数値データ(u0、u1、・・・ut-1)を出力する。尚、ニューラルネットワーク212の中間ノードの数は、任意である。
【0062】
その後、出力層処理部213は、ステップS23で生成された数値データ系列Uを、ビット長nと同じ数の数値データy’を含む数値データ系列Y’=(y’0、y’1、・・・y’n-1)に変換する(ステップS24)。この際、出力層処理部213は、入力層処理部112が用いたバイナリ行列Mを用いて、数値データ系列Uを数値データ系列Y’に変換することが好ましい。具体的には、出力層処理部213は、数式2を用いて、数値データ系列Uを数値データ系列Y’に変換してもよい。つまり、出力層処理部213は、数値データ系列Uに含まれるt個の数値データ(u0、u1、・・・ut-1)から構成されるt次元行ベクトルとバイナリ行列Mとを乗算することでn次元行ベクトル(つまり、数式2の分子)を算出し、当該算出したn次元行ベクトルの各成分を、バイナリ行列Mの各列ベクトルに含まれる1となる成分の数(つまり、数式2の分母)で除算すること、n個の数値データ(y’0、y’1、・・・y’n-1)を生成してもよい。但し、出力層処理部213は、その他の方法を用いて、数値データ系列Uを数値データ系列Y’に変換してもよい。
【0063】
【0064】
ここで、上述したように、バイナリ行列Mは、スパースな行列(つまり、1の成分が相対的に少ない行列)となる。このため、数式2の分子を算出するために必要な積和演算回数が相対的に少なくなる。更に、バイナリ行列Mは、各列ベクトルに含まれる1の数(つまり、列重み)が一定となることが好ましいことは、上述したとおりである。この場合、数式2の分母は、定数となる。このため、数式2を用いて数値データ系列Uを数値データ系列Yに変換するために必要な演算量は、相対的に少なくなる。このように演算量が低減されるがゆえに、相対的に低い演算能力しか有していない(つまり、相対的に高い演算能力を有していない)受信装置2であっても、受信動作を適切に行うことができる。これは、コスト(例えば、金銭コスト及び設置場所のサイズコストの少なくとも一方)面で制約が強い通信システムSYSにとって大変有利な効果である。
【0065】
数式2を用いて数値データ系列Uが数値データ系列Y’に変換される場合には、ニューラルネットワーク212は、0≦u0、u1、・・・、ut-1≦1を満たすt個の数値データ(u0、u1、・・・ut-1)から構成される数値データ系列Uを出力することが好ましい。尚、「0≦u0、u1、・・・、ut-1≦1」という数式は、数値データu0、数値データu1、・・・及び数値データut-1の夫々が0以上且つ1以下の数値になることを意味している。この場合、ニューラルネットワーク212の出力層2123の最終段の活性化関数として、シグモイド関数が用いられてもよい。但し、ニューラルネットワーク212は、0≦u0、u1、・・・、ut-1≦1を満たさないt個の数値データ(u0、u1、・・・ut-1)から構成される数値データ系列Uを出力してもよい。出力層2123の最終段の活性化関数として、シグモイド関数とは異なる関数が用いられてもよい。
【0066】
ステップS24で生成された数値データ系列Y’=(y’0、y’1、・・・y’n-1)は、送信信号Txが理想的な通信路3(つまり、外乱が存在しない通信路3)を介して送信された場合には、ビット系列Y=(y0、y1、・・・yn-1)と一致する。一方で、通信路3に外乱が存在する場合には、ステップS24で生成された数値データ系列Y’=(y’0、y’1、・・・y’n-1)は、ビット系列Y=(y0、y1、・・・yn-1)と一致しない可能性がある。但し、後述する学習動作により、通信路3に外乱が存在する場合であっても、ステップS24で生成された数値データ系列Y’=(y’0、y’1、・・・y’n-1)は、ビット系列Y=(y0、y1、・・・yn-1)に相当に近い値を有する又は実質的には一致しているとみなすことができる。このため、出力層処理部213は、実質的には、数値データ系列Yを推定する動作を行っていると言える。
【0067】
ここで、出力層処理部213がn個の数値データy’を含む数値データ系列Y’を出力するがゆえに、ニューラルネットワーク212は、n個の数値データy’を含む数値データ系列Y’を出力しなくてもよい。具体的には、ニューラルネットワーク212は、n個より少ないt個の数値データuを含む数値データ系列Uを出力すれば十分である。その結果、ニューラルネットワーク212がn個の数値データy’を含む数値データ系列Y’を出力する場合と比較して、ニューラルネットワーク212の出力ノードの数が相対的に少なくなる。出力ノードの数が少なくなると、ニューラルネットワーク212の中間ノード(つまり、中間層2122に含まれるノード)の数も減らすことができる。従って、ニューラルネットワーク212がt個の数値データuを含む数値データ系列Uを出力する場合には、ニューラルネットワーク212がn個の数値データy’を含む数値データ系列Y’を出力する場合と比較して、ニューラルネットワーク212のサイズを小さくすることができる。その結果、ニューラルネットワーク212を用いる通信システムSYSの演算量が少なくなる。このように演算量が低減されるがゆえに、相対的に低い演算能力しか有していない(つまり、相対的に高い演算能力を有していない)受信装置2であっても、受信動作を適切に行うことができる。これは、コスト(例えば、金銭コスト及び設置場所のサイズコストの少なくとも一方)面で制約が強い通信システムSYSにとって大変有利な効果である。
【0068】
その後、データ変換部214は、ステップS24で生成された数値データ系列Y’に対して、送信装置1のデータ変換部111が行う変換処理の逆変換に相当する変換処理を行うことで、ビット長がbとなるビット系列Z’=(z’0、z’1、・・・z’b-1)を出力する(ステップS25)。具体的には、データ変換部214は、数値データ系列Y’に含まれるn個の数値データ(y’0、y’1、・・・y’n-1)から、値が大きいw-1個の数値データyを選択する。その後、データ変換部214は、選択されたw-1個の数値データyに対応するw-1個のビット位置に夫々割り当てられるw-1個のビットが1になり且つ選択されなかった数値データyに対応するビット位置に割り当てられるビットが0になっているビット系列を生成する。その後、データ変換部214は、生成したビット系列に対して、送信装置1のデータ変換部111が行う変換処理の逆変換に相当する変換処理を行う。その結果、ビット系列Z’=(z’0、z’1、・・・z’b-1)が生成される。
【0069】
ステップS25で生成されたビット系列Z’=(z’0、z’1、・・・z’b-1)は、送信信号Txが理想的な通信路3(つまり、外乱が存在しない通信路3)を介して送信された場合には、ビット系列Z=(z0、z1、・・・zn-1)と一致する。一方で、通信路3に外乱が存在する場合にであっても、ステップS25で生成されたビット系列Z’=(z’0、z’1、・・・z’b-1)は、ビット系列Z=(z0、z1、・・・zn-1)と一致する可能性が高い。なぜならば、上述したように通信路3に外乱が存在すことに起因して数値データ系列Y’=(y’0、y’1、・・・y’n-1)がビット系列Y=(y0、y1、・・・yn-1)と一致していなかったとしても、後述する学習動作により、数値データ系列Y’において相対的に大きくなる数値データyに対応するビット位置は、数値データ系列Yにおいてビット1が割り当てられたビット位置と一致する可能性が相対的に高くなるからである。
【0070】
その後、データ変換部214は、順次生成されるビット系列Z’を合成することで、送信装置1が送信したビット系列Aを推定することができる。
【0071】
このように、受信装置2は、通信路3において外乱の影響を受けた送信信号Txを受信信号Rxとして受信した場合であっても、受信信号Rxを復号することで、外乱の影響を受けていない送信信号Tx(つまり、送信装置1が送信した送信データであるビット系列A)を推定することができる。この場合、受信装置2は、受信信号Rxの信号パターンが、送信信号Txがとり得る複数の信号パターン(つまり、送信信号Txのクラス数であり、送信信号Txが表すビット系列Aがとり得る複数のビット配列パターンと等価)のいずれに近いかを推定する分類器として機能していると解釈してもよい。
【0072】
<1-2-3>学習動作
続いて、ニューラルネットワーク113及びニューラルネットワーク212のパラメータを学習する学習動作について説明する。尚、学習動作は、工場から通信システムSYS(つまり、送信装置1及び受信装置2)が出荷される前に行われてもよい。或いは、学習動作は、工場から通信システムSYS(つまり、送信装置1及び受信装置2)が出荷された後に行われてもよい。例えば、学習動作は、通信システムSYSがその設置位置に設置された後に行われてもよい。この場合、オンラインで学習動作が行われてもよい。
【0073】
学習動作が行われる場合には、学習用のビット系列Aが送信装置1に入力される。或いは、通信システムSYSがその設置位置に設置された後に学習動作が行われる場合には、実際に送信装置1が送信するべきビット系列Aが送信装置1に入力されてもよい。その結果、送信装置1は、ビット系列Zを生成し、その後ビット系列Yを生成し、その後ビット系列Xを生成し、その後送信信号Txを生成し、その後送信信号Txを受信装置2に送信する。受信装置2が送信信号Txを受信すると、受信装置2は、数値データ系列Uを生成し、その後数値データ系列Y’を生成し、その後ビット系列Z’を生成し、その後、ビット系列Aを推定する。
【0074】
ここで、上述したように、受信装置2が生成する数値データ系列Y’は、本来は送信装置1が生成するビット系列Yと一致するはずである。このため、ビット系列Yは、数値データ系列Y’の正解ラベルとして利用可能である。そこで、通信システムSYSは、ビット系列Yと数値データ系列Y’とに基づく損失関数に基づいて、ニューラルネットワーク113及びニューラルネットワーク212のパラメータを学習してもよい。例えば、通信システムSYSは、損失関数が小さくなるように(典型的には、最小になるように)、ニューラルネットワーク113及びニューラルネットワーク212のパラメータを学習してもよい。損失関数の一例として、数式3に示すビット系列Yと数値データ系列Y’との交差エントロピーに基づく損失関数があげられる。
【0075】
【0076】
通信システムSYSは、ニューラルネットワークのパラメータを学習するために用いられる既存の学習アルゴリズムを用いて、ニューラルネットワーク113及びニューラルネットワーク212のパラメータを学習してもよい。例えば、通信システムSYSは、誤差逆伝搬法(Backpropagation method)を用いて、ニューラルネットワーク113及びニューラルネットワーク212のパラメータを学習してもよい。ここで、ビット系列Yは、ニューラルネットワーク113とは異なる入力層処理部112を介してニューラルネットワーク113に入力される。しかしながら、上述したように、入力層処理部112は、バイナリ行列Mを用いた演算を行うがゆえに、入力層処理部112が行うバイナリ行列Mを用いた演算は、実質的には、ニューラルネットワーク113が行う演算であるとみなすことができる。同様に、数値データ系列Y’は、ニューラルネットワーク212とは異なる出力層処理部213によって生成される。しかしながら、上述したように、出力層処理部213は、バイナリ行列Mを用いた演算を行うがゆえに、出力層処理部213が行うバイナリ行列Mを用いた演算は、実質的には、ニューラルネットワーク212が行う演算であるとみなすことができる。従って、通信システムSYSがニューラルネットワークとは異なる入力層処理部112及び出力層処理部213を備えている場合であっても、ニューラルネットワークのパラメータを学習するために用いられる既存の学習アルゴリズムを用いて、ニューラルネットワーク113及びニューラルネットワーク212のパラメータが学習可能である。
【0077】
上述したように、本実施形態では、ニューラルネットワーク113及び212の夫々のサイズが相対的に小さくなる。このため、ニューラルネットワーク113及び212の夫々のパラメータを学習するための学習動作の負荷もまた小さくなる。更には、学習動作を行うために必要なテスト用の送信データの数(つまり、テストサンプル)の数もまた相対的に少なくなる。つまり、学習動作を行うために必要な演算量もまた低減される。このように演算量が低減されるがゆえに、相対的に低い演算能力しか有していない(つまり、相対的に高い演算能力を有していない)送信装置1及び受信装置2であっても、学習動作を適切に行うことができる。このため、通信システムSYSは、通信システムSYSが向上から出荷される前だけでなく、通信システムSYSが向上から出荷される後においても学習動作が適切に行われるという実践上大変有利な効果を享受することができる。従って、通信システムSYSが適用された個々の通信路3における外乱の影響に対して最適化されたニューラルネットワーク113及び212の構築が可能になる。これは、外乱の影響が変わり得る通信路3に適用される通信システムSYSにとって大変有利な効果である。
【0078】
<2>行列生成装置4
続いて、バイナリ行列Mを生成する行列生成装置4について説明する。
【0079】
<2-1>行列生成装置4の構成
初めに、
図8を参照しながら、行列生成装置4の構成について説明する。
図8は、行列生成装置4の構成を示すブロック図である。
【0080】
図8に示すように、行列生成装置4は、演算装置41と、記憶装置42と、通信装置43とを備えている。演算装置41と、記憶装置42と、通信装置43とは、データバス44を介して接続されていてもよい。
【0081】
演算装置41は、CPU、GPU及びFPGAの少なくとも一つを含んでいてもよい。演算装置41は、コンピュータプログラムを読み込む。例えば、演算装置41は、記憶装置42が記憶しているコンピュータプログラムを読み込んでもよい。例えば、演算装置41は、コンピュータで読み取り可能な記録媒体が記憶しているコンピュータプログラムを、図示しない記録媒体読み取り装置を用いて読み込んでもよい。演算装置41は、通信装置43を介して、行列生成装置4の外部に配置される不図示の装置からコンピュータプログラムを取得してもよい(つまり、ダウンロードしてもよい又は読み込んでもよい)。演算装置41は、読み込んだコンピュータプログラムを実行する。その結果、演算装置41内には、行列生成装置4が行うべき動作を実行するための論理的な機能ブロックが実現される。具体的には、演算装置41内には、バイナリ行列Mを生成するための論理的な機能ブロックである行列生成部411が実現される。つまり、演算装置41は、行列生成装置4が行うべき動作を実行するための論理的な機能ブロックを実現するためのコントローラとして機能可能である。
【0082】
記憶装置42は、所望のデータを記憶可能である。例えば、記憶装置42は、演算装置41が実行するコンピュータプログラムを一時的に記憶していてもよい。記憶装置42は、演算装置41がコンピュータプログラムを実行している際に演算装置41が一時的に使用するデータを一時的に記憶してもよい。記憶装置42は、行列生成装置4が長期的に保存するデータを記憶してもよい。尚、記憶装置42は、RAM、ROM、ハードディスク装置、光磁気ディスク装置、SSD及びディスクアレイ装置のうちの少なくとも一つを含んでいてもよい。
【0083】
通信装置43は、通信路3(或いは、通信路3とは異なる通信路)を介して、送信装置1及び受信装置2の夫々と通信可能である。本実施形態では、通信装置43は、行列生成動作によって生成したバイナリ行列Mを、送信装置1及び受信装置2の夫々に送信する。送信装置1は、通信装置13を介して、行列生成装置4が送信したバイナリ行列Mを受信し、受信したバイナリ行列Mを用いて上述した送信動作を行う。受信装置2は、通信装置23を介して、行列生成装置4が送信したバイナリ行列Mを受信し、受信したバイナリ行列Mを用いて上述した受信動作を行う。
【0084】
<2-2>行列生成動作
続いて、
図9を参照しながら、行列生成動作について説明する。
図9は、行列生成動作の流れを示すフローチャートである。
【0085】
図9に示すように、行列生成部411は、バイナリ行列Mを生成するために必要な初期パラメータを設定する(ステップS31)。
【0086】
初期パラメータは、例えば、任意の素数の冪qを含んでいてもよい。尚、行列生成動作で用いられる冪qは、上述したバイナリ行列Mの第3の行列条件で用いられる冪qと同一である。従って、上述したバイナリ行列Mの第3の行列条件で用いられる冪qは、行列生成動作で設定されてもよい。
【0087】
初期パラメータは、例えば、上述した送信動作及び受信動作で説明した整数wを含んでいてもよい。尚、行列生成動作で用いられる整数wは、上述した送信動作及び受信動作で用いられるべき整数wと同一である。従って、上述した送信動作及び受信動作で用いられる整数wは、行列生成動作で設定されてもよい。上述したように、整数wは2以上の整数であるため、行列生成部411は、整数wを2以上の整数に設定する。更に、整数wは、q+1以下の整数である。このため、行列生成部411は、整数wを2以上であって且つq+1以下の整数に設定する。
【0088】
初期パラメータは、例えば、位数がq2となる有限体の原始元βを含んでいてもよい。
【0089】
その後、行列生成部411は、q+w個の行列Bi(尚、iは、1、2、・・・、q+w)を生成する(ステップS32)。つまり、行列生成部411は、行列B0からBq+w-1を生成する。行列Biのサイズは、q行×(q-1)列である。
【0090】
行列B
iは、各列ベクトル成分に1となる成分を一つ含む行列である。つまり、行列B
iは、各列ベクトル成分に含まれる1となる成分の数が1になる行列である。この場合、行列生成部411は、
図10に示すルールに基づいて、各列ベクトル成分に1となる成分を一つ含むq+w個の行列B
iを生成してもよい。尚、以下、図面に記載する行列の空白となる成分は、特段の説明がない場合には0であるものとする。具体的には、
図10に示すように、β
iq+β
i=0が満たされる場合には、行列生成部411は、最後の行ベクトルの成分が全て1となり且つその他の成分が全て0となる行列を、行列B
iとして生成してもよい。一方で、
図10に示すように、β
iq+β
i=0が満たされない場合には、行列生成部411は、(q-1)行×(q-1)列の行列P
μ(i)に対して全ての成分がゼロになる行ベクトルを最後の行ベクトルとして追加することで得られる行列を、行列B
iとして生成してもよい。行列P
μ(i)は、
図11に示す行列である。
図11に示すように、行列P
μ(i)は、対角成分が1となるμ(i)行×μ(i)列の対角行列P1と、対角成分が1となる(q-1-μ(i))行×(q-1-μ(i))列の対角行列P2とを逆対角方向に配列し、且つ、それ以外の成分が全て0になる行列である。尚、「μ(i)」は、β
iq+β
i=0が満たされない場合にβ
(q+1)μ(i)=β
i+β
iqを満たす値としてただ一つ定まる、0以上且つq-2以下の整数である。
【0091】
その後、行列生成部411は、ステップS32で生成したq+w個の行列B
0からB
q+w-1を用いて、wq行×(q
2-1)列の行列M*
q,wを生成する(ステップS33)。行列M*
q,wは、
図12に示す行列である。
図12に示すように、行列生成部411は、列方向に並んだ連続するw個の行列B
iから構成されるブロック行列BB1を、ブロック行列BB1を構成する先頭の行の行列B
iの変数iを一つずつインクリメントしながら行方向にq+1個並べることで、行列M*
q,wを生成する。具体的には、行列生成部411は、列方向に並んだ連続するw個の行列B
0からB
w-1から構成されるブロック行列BB1と、列方向に並んだ連続するw個の行列B
1からB
wから構成されるブロック行列BB1と、・・・、列方向に並んだ連続するw個の行列B
qからBq+
w-1から構成されるブロック行列BB1とを行方向に並べることで、行列M*
q,wを生成する。尚、行列生成部411は、行方向に並んだ連続するq+1個の行列B
iから構成されるブロック行列BB2を、ブロック行列BB2を構成する先頭の列の行列B
iの変数iを一つずつインクリメントしながら列方向にw個並べることで、行列M*
q,wを生成してもよい。具体的には、行列生成部411は、行方向に並んだ連続するq+1個の行列B
0からB
qから構成されるブロック行列BB2と、行方向に並んだ連続するq+1個の行列B
1からB
q+1から構成されるブロック行列BB2と、・・・、行方向に並んだ連続するq+1個の行列B
w-1からB
q+w-1から構成されるブロック行列BB2とを列方向に並べることで、行列M*
q,wを生成してもよい。
【0092】
その後、行列生成部411は、ステップS33で生成した行列M*
q,wに対して、1となる成分をw個含む列ベクトルe
q,wを、最後の列ベクトルとして追加することで、wq行×q
2列のバイナリ行列M
q,wを生成する(ステップS34)。バイナリ行列M
q,wは、
図13に示す行列である。
図13に示すように、列ベクトルe
q,wは、例えば、最後の列の成分が1となり且つそれ以外の成分が0となるq個の成分を含む単位列ベクトルeを、列方向にw個並べることで構成される列ベクトルである。
【0093】
尚、バイナリ行列Mq,wは、送信動作及び受信動作で用いられるバイナリ行列Mとして用いられる。ここで、上述したように、バイナリ行列Mは、t行×n列の行列である。従って、この場合には、t=wq且つn=q2が成立する。
【0094】
このように生成されるバイナリ行列Mq,wは、上述した第1から第3の行列条件を満たす行列となる。つまり、バイナリ行列Mq,wは、各列ベクトルに含まれる1の数がw個になり、任意の二つの列ベクトルに関して、共に1となる成分の数が高々一つであり、且つ、バイナリ行列M中に占める非零成分の数(つまり、1となる成分の数)が、バイナリ行列Mの全ての成分数の1/qになるという条件を満たす行列となる。つまり、バイナリ行列Mq,wは、各列の重み(つまり、1となる成分の数)がwとなる(w-1)分離行列となる。
【0095】
ここで、特に第2の行列条件を満たすバイナリ行列Mが用いられると、列ベクトルの間のハミング距離が相対的に大きくなる。その結果、学習動作における誤り確率が低減され、結果として、学習動作の効率が向上する。つまり、学習動作の誤りに対する耐性が向上する。その結果、上述した学習動作により、学習精度の低下を招くことなく、ニューラルネットワーク113及び212のパラメータの学習が進められる。更に、特に第3の行列条件を満たすバイナリ行列Mが用いられると、バイナリ行列Mを用いた演算に要する演算量が低減される。特に、冪qが大きくなるほど、演算量の低減効果は顕著になる。
【0096】
<2-3>行列拡張動作
行列生成装置4は、上述した行列生成動作によって生成したバイナリ行列M
q,wを拡張するための行列拡張動作を行ってもよい。本実施形態における「バイナリ行列M
q,wを拡張する」動作は、「バイナリ行列Mを列方向に拡張する(つまり、バイナリ行列M
q,wに一つ以上の列ベクトルを追加する)」動作を含む。以下、
図14を参照しながら、行列拡張動作について説明する。
図14は、行列拡張動作の流れを示すフローチャートである。
【0097】
図14に示すように、行列生成部411は、バイナリ行列M
q,wを拡張するために必要な初期パラメータを設定する(ステップS41)。初期パラメータは、例えば、上述した行列生成動作で用いられる冪q及び整数wを含んでいてもよい。尚、行列拡張動作が行われる前に行われた行列生成動作によって冪q及び整数wが既に設定されている場合には、行列生成部411は、既に設定済みの冪q及び整数wを用いて行列拡張動作を行ってもよい。行列拡張動作では更に、初期パラメータは、q/w以下で最大となる素数の冪q
wを含んでいてもよい。尚、冪q及び整数wの夫々の値によっては、q/wが2未満になる可能性がある。その結果、2未満であるq/w以下で最大となる素数の冪q
wが存在しなくなる可能性がある。この場合には、行列生成部411は、冪q
wを0に設定してもよい。
【0098】
その後、行列生成部411は、行列AMを生成する(ステップS42)。行列AMは、
図15に示す行列である。
【0099】
具体的には、
図15に示すように、冪q
wがw-1以上となる(つまり、q
w≧w-1が成立する)場合には、行列生成部411は、まず、上述した行列生成動作を行うことで、wq
w行×q’列のバイナリ行列M
qw,wを生成する。尚、q
w≧w+1が成立する場合には、変数q’は、冪q
wの二乗(=q
w
2)である。その後、行列生成部411は、生成したバイナリ行列M
qw,wに対して、全ての成分が0となる行ベクトルをq-wq
w個追加する。尚、バイナリ行列M
qw,wに対して全ての成分が0となる行ベクトルをq-wq
w個追加する動作は、バイナリ行列M
qw,wに対して全ての成分が0となるq-wq
w行×q
w
2列の行列を追加する動作と等価である。その結果、q行×q’列の行列AMが生成される。
【0100】
一方で、冪q
wがw-1以上とならない(つまり、q
w<w-1が成立する)場合には、行列生成部411は、連続したw個の成分が1となり且つそれ以外の成分が0となるようにq’(w-1)+1個の成分を有する列ベクトルを、任意の二つの列ベクトルについて共に1となる成分の数が高々一つになるようにq’個行方向に並べることで、(q’(w-1)+1)行×q’列の行列AM1を生成する。尚、q
w<w+1が成立する場合には、変数q’は、(q-1)/(w-1)以下で最大となる整数(
図15中では、窓関数Floorを用いて、Floor((q-1)/(w-1))と表記されている)である。その後、行列生成部411は、生成した行列AM1に対して、全ての成分が0となる行ベクトルをq-(q’(w-1)+1)個追加する。尚、行列AMに対して全ての成分が0となる行ベクトルをq-(q’(w-1)+1)個追加する動作は、行列AM1に対して全ての成分が0となる(q-(q’(w-1)+1))行×q’列の行列を追加する動作と等価である。その結果、q行×q’列の行列AMが生成される。
【0101】
その後、行列生成部411は、行列生成方法によって生成したバイナリ行列M
q,wに対して、ステップS42で生成した行列AMを対角にw個配置したブロック行列を追加することで、拡張バイナリ行列M
q,w
(ext)を生成する(ステップS43)。つまり、行列生成部411は、バイナリ行列M
q,wに対して行列AMを対角にw個配置したブロック行列を追加することで得られる行列を、拡張バイナリ行列M
q,w
(ext)として設定する(ステップS43)。尚、拡張バイナリ行列M
q,w
(ext)は、
図16に示す行列である。
【0102】
このように生成される拡張バイナリ行列Mq,w
(ext)は、バイナリ行列Mq,wと同様に、上述した第1から第3の行列条件を満たす行列となる。従って、拡張バイナリ行列Mq,w
(ext)が用いられる場合であっても、バイナリ行列Mq,wが用いられる場合と同様の効果が享受可能である。更に、拡張バイナリ行列Mq,w
(ext)の列の数は、バイナリ行列Mq,wの列の数と異なる。その結果、t行×n列のバイナリ行列Mの列数nを変更することができる。このため、バイナリ行列Mを用いて処理可能なビット系列Y=(y0、y1、・・・yn-1)のビット長nの種類が多くなる。つまり、ビット長nの自由度が向上する。特に、拡張バイナリ行列Mq,w
(ext)の列の数は、バイナリ行列Mq,wの列の数よりも大きくなる。その結果、t行×n列のバイナリ行列Mの列数nが相対的に多くなる。このため、バイナリ行列Mを用いて処理可能なビット系列Y=(y0、y1、・・・yn-1)のビット長nが相対的に長くなる。つまり、相対的に長いビット長nが利用可能になる。
【0103】
<3>具体例
続いて、上述した各変数(例えば、変数b、n、t、w及びq)に具体的な数値を適用した状況下での送信動作、受信動作、学習動作、行列生成動作及び行列拡張動作について説明する。以下では、64QAM方式を採用する通信システムSYSを用いて、上述した各変数(例えば、変数b、n、t、w及びq)に具体的な数値を適用した状況下での送信動作、受信動作、行列生成動作、学習動作及び行列拡張動作について説明する。
【0104】
64QAM方式が採用されている場合には、通信システムSYSは、6ビットの単位で送信データを送信する。このため、送信装置1のデータ変換部111は、送信データを表すビット系列A=(a0、a1、・・・)を、ビット長が6となるビット系列Z=(z0、z1、・・・z5)に分割する。つまり、64QAM方式が採用されている場合には、変数bは、6に設定される。
【0105】
その後、データ変換部111は、各ビット系列Z=(z0、z1、・・・z5)を、ビット系列Y=(y0、y1、・・・yn-1)に変換する。以下では、説明の簡略化のために、ビット系列Yがワンホットベクトルである例(つまり、整数w=2となる例)について説明する。この場合、ビット系列Yのビット長nは、2^6=64になる。従って、データ変換部111は、各ビット系列Z=(z0、z1、・・・z5)を、ビット長が64となるビット系列Y=(y0、y1、・・・y63)に変換する。
【0106】
その後、入力層処理部112は、バイナリ行列Mq,wを用いて、ビット系列Y=(y0、y1、・・・y63)を、ビット系列X=(x0、x1、・・・xt-1)に変換する。上述したようにバイナリ行列q,wの行の数t及び列の数nは、t=w×q及びn=q2という条件を満たす。このため、n=64であるがゆえに、行列生成部411は、バイナリ行列q,wを生成する際に、初期パラメータに相当する変数qを、n=64の平方根である8に設定する。8は、素数2の冪であるため、変数q(つまり、冪q)に設定可能である。また、上述したように整数wが2に設定されるがゆえに、変数t(つまり、ビット系列Xのビット長t)は、2×8=16となり、ビット系列Xを生成するためにバイナリ行列M8,2が用いられる。
【0107】
バイナリ行列M
8,2を生成するために、行列生成部411は、上述した初期パラメータに相当する変数q(冪q)及び変数w(整数w)に加えて、初期パラメータに相当する原始元βを、位数がq
2=64となる有限体の原始元(原始多項式は、例えば、x
6+x+1)に設定する。その後、行列生成部411は、
図9に示すフローチャートに従って、バイナリ行列M
8,2を生成する。その結果、
図17に示す16行×64列のバイナリ行列M
8,2が生成される。
【0108】
入力層処理部112は、
図17に示すバイナリ行列M
8,2を用いて、ビット系列Y=(y
0、y
1、・・・y
63)を、ビット系列X=(x
0、x
1、・・・x
15)に変換する。ここで、ビット系列Yがワンホットベクトルであるがゆえに、ビット系列Xは、重み(つまり、ビットの数)が2となるビット系列となる。
【0109】
その後、ビット系列X=(x0、x1、・・・x15)がニューラルネットワーク113は入力される。このため、ニューラルネットワーク113は、16個の入力ノードを備える。ここで仮にビット系列Y=(y0、y1、・・・y63)がニューラルネットワーク113に入力されると仮定すると、ニューラルネットワーク113は、64個の入力ノードを備える必要がある。その結果、ニューラルネットワーク113の中間ノードの数もまた相応に多くなる。しかるに、本実施形態では、ニューラルネットワーク113の入力ノードの数は、16/64=1/4倍に減らすことができる。従って、本実施形態によるニューラルネットワーク113のサイズの削減効果が大きいことが分かる。従って、上述したように、通信システムSYSの演算量の低減効果もまた大きいことが分かる。
【0110】
尚、ニューラルネットワーク113の削減効果は、ビット系列Z=(z0、z1、・・・zb-1)のビット長b及びビット系列Y=(y0、y1、・・・yn-1)のビット長nが大きくなるほど顕著になる。例えば、通信システムSYSが1024QAM方式を採用している場合には、通信システムSYSは、10ビットの単位で送信データを送信する。データ変換部111は、ビット長bが10となるビット系列Z=(z0、z1、・・・z9)を、ビット長nが2^10=1024となるビット系列Y=(y0、y1、・・・y1023)に変換する。この場合、入力層処理部112は、32w行×1024列のバイナリ行列M32,wを用いて、ビット系列Y=(y0、y1、・・・y1023)を、ビット系列X=(x0、x1、・・・x32w-1)に変換する。このため、ニューラルネットワーク113の入力ノードの数は、32w/1024=w/32倍に減らすことができる。整数wの最小値が2であることを踏まえると、ニューラルネットワーク113の入力ノードの数は、最大で1/16倍に減らすことができる。
【0111】
その後、送信装置1は、ニューラルネットワーク113が出力したインデックス値が示す特徴量を有する送信信号Txを、通信路3を介して受信装置2に送信する。
【0112】
その後、受信装置2は、通信路3を介して送信装置1が送信した送信信号Txを、受信信号Rxとして受信する。その後、受信信号処理部211は、ステップS21で受信した受信信号Rxの特徴量を抽出する(ステップS22)。ここで抽出される受信信号Rxの特徴量は、送信信号Txの特徴量(つまり、ニューラルネットワーク113から出力されるインデックス値が示す特徴量)とは異なる可能性がある。なぜならば、受信信号Rxは、通信路3における外乱の影響を受けている可能性があるからである。
【0113】
その後、ニューラルネットワーク212は、数値データ系列Uを出力する。具体的には、ニューラルネットワーク212は、16個の出力ノードから、夫々、数値データ系列Uを構成する16個の数値データ(u0、u1、・・・u15)を出力する。ここで、送信装置1のニューラルネットワーク113に側において仮にビット長が64になるビット系列Y=(y0、y1、・・・y63)が入力されると仮定すると、ニューラルネットワーク113に対応する受信装置2のニューラルネットワーク212もまた、64個の数値データ(u0、u1、・・・u63)を含む数値データ系列Uを出力することになる。この場合、ニューラルネットワーク212は、64個の出力ノードを備える必要がある。その結果、ニューラルネットワーク212の中間ノードの数もまた相応に多くなる。従って、本実施形態によるニューラルネットワーク212のサイズの削減効果が大きいことが分かる。従って、上述したように、通信システムSYSの演算量の低減効果もまた大きいことが分かる。また、上述したように、通信システムSYSが1024QAM方式を採用している場合には、ニューラルネットワーク212の出力ノードの数は、ニューラルネットワーク113の入力ノードの数と同様に、最大で1/16倍に減らすことができる。
【0114】
ニューラルネットワーク212が出力する数値データ系列U=(u0、u1、・・・u15)は、上述したように、シグモイド関数によって、0≦u0、u1、・・・、u15≦1を満たすように正規化されていてもよい。この場合、ニューラルネットワーク212が出力する数値データ系列U=(u0、u1、・・・u15)は、ニューラルネットワーク113に入力されるビット系列X=(x0、x1、・・・x15)に対応する。このため、上述した学習動作により、ニューラルネットワーク113及び212のパラメータは、16個の数値データ(u0、u1、・・・u15)が夫々16個のビット(x0、x1、・・・x15)に夫々一致する(或いは、相応に近い値になる)ように学習される。その結果、ニューラルネットワーク212は、ビット(x0、x1、・・・x15)に夫々一致する(或いは、相応に近い値になる)数値データ(u0、u1、・・・u15)を出力することが期待される。つまり、ニューラルネットワーク212は、xi=ui(i=0、1、・・・、15)を満たす数値データ系列Uを出力することが期待される。
【0115】
その後、出力層処理部213は、数値データ系列U=(u0、u1、・・・u15)を、64個の数値データ(y’0、y’1、・・・y’63)を含む数値データ系列Y’に変換する。出力層処理部213が出力する数値データ系列Y’=(y’0、y’1、・・・y’63)は、入力層処理部112に入力されるビット系列Y=(y0、y1、・・・y63)に対応する。このため、上述した学習動作により、ニューラルネットワーク113及び212のパラメータは、64個の数値データ(y’0、y’1、・・・y’63)が夫々64個のビット(y0、y1、・・・y63)に夫々一致する(或いは、相応に近い値になる)ように学習される。その結果、出力層処理部213は、ビット(y0、y1、・・・y63)に夫々一致する(或いは、相応に近い値になる)数値データ(y’0、y’1、・・・y’63)を出力することが期待される。つまり、出力層処理部213は、y’i=yi(i=0、1、・・・、63)を満たす数値データ系列Y’を出力することが期待される。
【0116】
その後、データ変換部214は、数値データ系列Y’=(y’0、y’1、・・・y’63)を、ビット系列Z’=(z’0、z’1、・・・z’5)に変換する。データ変換部214が出力するビット系列Z’=(z’0、z’1、・・・z’5)は、送信データを分割することで得られるビット系列Z=(z0、z1、・・・z5)に対応する。このため、上述した学習動作により、ニューラルネットワーク113及び212のパラメータは、6個のビット(z’0、z’1、・・・z’5)が夫々6個のビット(z0、z1、・・・z5)に夫々一致するように学習される。その結果、データ変換部214は、ビット(z0、z1、・・・z5)に夫々一致するビット(z’0、z’1、・・・z’5)を出力することが期待される。つまり、データ変換部214は、z’i=zi(i=0、1、・・・、5)を満たすビット系列Z’を出力することが期待される。
【0117】
上述した説明では、通信システムSYSは16行×64列のバイナリ行列M
8,2を用いているが、通信システムSYSは、拡張バイナリ行列M
8,2
(ext)を用いてもよい。具体的には、q/w以下で最大となる素数の冪q
wは、q/w=8/2=4であるがゆえに、4(=2^2)となる。この場合、q
w(=4)≧w-1(=1)が成立するため、行列生成部411は、
図15の上段に示す行列AMを生成する。具体的には、行列生成部411は、バイナリ行列M
qw,w=M
4,2を生成する。この場合、原始元βとして、位数=4^2=16の有限体の原始元(例えば、原始多項式は、x
4+x+1)が用いられてもよい。バイナリ行列M
4,2は、
図18に示す行列となる。その後、行列生成部411は、生成したバイナリ行列M
4,2に全ての成分が0となる行ベクトルをq-wq
w個追加する。但し、この例では、q-wq
w=8-2×4=0となるため、行列AMは、8行×16列のバイナリ行列M
4,2と一致する。その後、行列生成部411は、バイナリ行列M
8,2に対して、行列AMに相当するバイナリ行列M
4,2を対角に2個配置したブロック行列を追加することで、16行×96列の拡張バイナリ行列M
8,2
(ext)を生成する。拡張バイナリ行列M
8,2
(ext)は、
図19に示す行列となる。
【0118】
この場合、入力層処理部112は、ビット長96のビット系列Yをビット長16のビット系列Xに変換することができる。このため、ニューラルネットワーク113の入力ノードの数は、16/96=1/6倍に減らすことができる。従って、拡張バイナリ行列M8,2
(ext)を用いることで、ニューラルネットワーク113(更には、ニューラルネットワーク212)のサイズの低減効果が大きくなり、その結果、演算量の低減効果もまた更に大きくなる。更には、上述したように、拡張バイナリ行列M8,2
(ext)を用いることで、ビット長nの自由度が向上する。つまり、入力層処理部112は、相対的に自由度が高い比率でビット長が短くなるようにビット系列Yをビット系列Xに変換することができる。
【0119】
このような行列拡張動作は、場合によっては繰り返し行われてもよい。例えば、
図19に示すように、拡張バイナリ行列M
8,2
(ext)は、バイナリ行列M
4,2を含んでいる。このため、行列生成部411は、拡張バイナリ行列M
8,2
(ext)に含まれているバイナリ行列M
4,2を拡張することで、拡張バイナリ行列M
8,2
(ext)を更に拡張してもよい。具体的には、行列生成部411は、まず、拡張バイナリ行列M
4,2
(ext)を生成する。q/w以下で最大となる素数の冪q
wは、q/w=4/2=2であるがゆえに、2(=2^1)となる。この場合、q
w(=2)≧w-1(=1)が成立するため、行列生成部411は、
図15の上段に示す行列AMを生成する。具体的には、行列生成部411は、バイナリ行列M
qw,w=M
2,2を生成する。この場合、原始元βとして、位数=2^2=4の有限体の原始元(例えば、原始多項式は、x
2+x+1)が用いられてもよい。バイナリ行列M
2,2は、
図20に示す行列となる。その後、行列生成部411は、生成したバイナリ行列M
2,2に全ての成分が0となる行ベクトルをq-wq
w個追加する。但し、この例では、q-wq
w=2-2×2<0となるため、行列AMは、4行×4列のバイナリ行列M
4,2と一致する。その後、行列生成部411は、バイナリ行列M
4,2に対して、行列AMに相当するバイナリ行列M
2,2を対角に2個配置したブロック行列を追加することで、8行×24列の拡張バイナリ行列M
4,2
(ext)を生成する。拡張バイナリ行列M
4,2
(ext)は、
図21に示す行列となる。更に、拡張バイナリ行列M
4,2
(ext)に含まれるバイナリ行列M
2,2もまた拡張可能である。従って、
図21に示す拡張バイナリ行列M
4,2
(ext)は、バイナリ行列M
2,2を拡張することで得られる4行×6列の拡張バイナリ行列M
2,2
(ext)によってバイナリ行列M
2,2が置き換えられることで、
図22に示す行列となる。その結果、
図19に示す拡張バイナリ行列M
8,2
(ext)は、8行×28列の拡張バイナリ行列M
4,2
(ext)によりバイナリ行列M
4,2が置き換えられることで、
図23に示す行列となる。具体的には、16行×120行の拡張バイナリ行列M
8,2
(ext)が生成される。つまり、元のバイナリ行列M
8,2と比較して、列数が120/64≒1.875倍になった拡張バイナリ行列M
8,2
(ext)が生成される。
【0120】
この場合、入力層処理部112は、ビット長120のビット系列Yをビット長16のビット系列Xに変換することができる。このため、ニューラルネットワーク113の入力ノードの数は、16/120=2/15倍に減らすことができる。従って、拡張バイナリ行列M8,2
(ext)を用いることで、ニューラルネットワーク113(更には、ニューラルネットワーク212)のサイズの低減効果が大きくなり、その結果、演算量の低減効果もまた更に大きくなる。更には、上述したように、拡張バイナリ行列M8,2
(ext)を用いることで、ビット長nの自由度が向上する。つまり、入力層処理部112は、相対的に自由度が高い比率でビット長が短くなるようにビット系列Yをビット系列Xに変換することができる。
【0121】
また、通信システムSYSが1024QAM方式を採用している場合においても、バイナリ行列M32,wを拡張することで、例えば、81行×1053列の拡張バイナリ行列Mが生成されてもよい。このバイナリ行列Mは、例えば、81行×729列のバイナリ行列M27,3と、27行×81列のバイナリ行列M9,3と、9行×9列のバイナリ行列M3,3とから構成されていてもよい。その結果、ニューラルネットワーク113の入力ノードの数(更には、ニューラルネットワーク212の出力ノードの数)は、81/1024倍に減らすことができる。この場合、通信システムSYSは、w=3という状況下でバイナリ行列M32,wが用いられる場合と比較して、同様の誤り耐性を有すると共に、ニューラルネットワーク113及び212のサイズをより小さくすることができる。
【0122】
<4>通信システムSYSの変形例
上述した説明では、送信装置1の演算装置11が、ニューラルネットワーク113の出力に基づいて送信信号Txを生成する送信信号生成部114を備えている。しかしながら、通信装置13が送信信号生成部114を備えていてもよい。この場合、
図24に示すように、演算装置11は、送信信号生成部114を備えていなくてもよい。
【0123】
上述した説明では、受信装置2の演算装置21が、受信信号Rxの特徴量を抽出する受信信号処理部211を備えている。しかしながら、
図25に示すように、演算装置21は、受信信号処理部211を備えていなくてもよい。この場合、ニューラルネットワーク212が受信信号Rxの特徴量を抽出してもよい。
【0124】
上述した説明では、送信装置1は、ニューラルネットワーク113の出力を用いて送信信号Txを生成している。しかしながら、送信装置1は、ニューラルネットワーク113に代えて、ニューラルネットワークとは異なる学習可能な演算モデルを用いて、送信信号Txを生成してもよい。或いは、送信装置1は、ニューラルネットワーク113の出力を用いることなく、送信信号Txを生成してもよい。例えば、送信装置1は、入力層処理部112が出力するビット系列Xに基づいて、ニューラルネットワーク113が出力するインデックス値と同様のインデックス値を生成するインデックス生成部を備えていてもよい。この場合、送信信号生成部114は、インデックス生成部が出力するインデックス値に基づいて送信信号Txを生成してもよい。或いは、例えば、送信信号生成部114は、入力層処理部112が出力するビット系列Xに基づいて、ニューラルネットワーク113の出力に基づいて生成される送信信号Txと同様の送信信号Txを生成してもよい。この場合、送信装置1は、ニューラルネットワーク113を備えていなくてもよい。
【0125】
上述した説明では、受信装置2は、ニューラルネットワーク212の出力を用いて、受信信号Rxから送信信号Txを推定している。しかしながら、受信装置2は、ニューラルネットワーク212に代えて、ニューラルネットワークとは異なる学習可能な演算モデルを用いて、受信信号Rxから送信信号Txを推定してもよい。或いは、受信装置2は、ニューラルネットワーク212の出力を用いることなく、送信信号Txを推定してもよい。例えば、受信装置2は、受信信号処理部211が出力する受信信号Rxの特徴量に基づいて、ニューラルネットワーク212が出力する数値データ系列Uと同様の数値データ系列を生成するデータ生成部を備えていてもよい。この場合、出力層処理部213は、データ生成部が出力する数値データ系列を数値データ系列Y’に変換してもよい。この場合、受信装置2は、ニューラルネットワーク212を備えていなくてもよい。
【0126】
上述した説明では、行列生成装置4は、通信システムSYSから独立した装置である。しかしながら、行列生成装置4は、通信システムSYSが備える装置であってもよい。つまり、通信システムSYSが行列生成装置4を備えていてもよい。また、送信装置1が行列生成装置4を備えていてもよい。つまり、送信装置1の演算装置11上で、バイナリ行列Mを生成するための行列生成部411が実現されてもよい。また、受信装置2が行列生成装置4を備えていてもよい。つまり、受信装置2の演算装置21上で行列生成部411が実現されてもよい。
【0127】
上述した説明では、行列生成装置4が生成したバイナリ行列Mは、通信システムSYSによって利用されている。つまり、バイナリ行列Mは、送信信号Txを送信する送信装置1及び受信信号Rxを受信するRxによって利用されている。しかしながら、バイナリ行列Mは、通信とは異なる用途で用いられてもよい。例えば、バイナリ行列Mは、非特許文献5に記載されたグループテスティング(Group Testing)の用途で用いられてもよい。
【0128】
<5>付記
以上説明した実施形態に関して、更に以下の付記を開示する。
[付記1]
通信路を介して送信信号を送信する送信装置と、前記通信路を介して前記送信装置が送信した前記送信信号を受信信号として受信する受信装置とを備える通信システムであって、
前記送信装置は、
第1ビット長bを有する第1ビット系列を、前記第1ビット系列のビット配列パターンに応じたビット位置にw-1(但し、wは2以上の整数)個のビット1が割り当てられ且つ前記第1ビット長bよりも長い第2ビット長nを有する第2ビット系列に変換する第1ビット変換手段と、
前記第2ビット系列を、前記第2ビット長nよりも短い第3ビット長tを有する第3ビット系列に変換する第2ビット変換手段と、
前記第3ビット長tと同じ数の入力ノードを有し且つ前記第3ビット系列が入力されると前記送信信号の特徴量を指定するインデックス値を出力するニューラルネットワークと
を備え、
前記受信装置は、
前記第3ビット長tと同じ数の出力ノードを有し且つ前記受信信号の特徴量が入力されると前記第3ビット長tと同じ数の数値データを含む第1数値データ系列を出力するニューラルネットワークと、
前記第1数値データ系列を、前記第2ビット長nと同じ数の数値データを含む第2数値データ系列に変換する数値変換手段と、
前記第2数値データ系列に対して、前記第1ビット変換手段が行う変換処理の逆変換に相当する変換処理を行うことで、前記第1ビット長bを有する第4ビット系列を生成する生成手段と
を備える通信システム。
[付記2]
前記第2ビット変換手段は、t行×n列のバイナリ行列を用いて、前記第2ビット系列を前記第3ビット系列に変換する
付記1に記載の通信システム。
[付記3]
前記第2ビット変換手段は、前記第2ビット系列に含まれるw-1個のビット1のビット位置に基づいて、前記バイナリ行列からw-1個の列ベクトルを指定し、前記w-1個の列ベクトルの論理和に含まれるt個の成分を前記第3ビット系列に設定する
付記2に記載の通信システム。
[付記4]
前記数値変換手段は、t行×n列のバイナリ行列を用いて、前記第1数値データ系列を前記第2数値データ系列に変換する
付記1から3のいずれか一項に記載の通信システム。
[付記5]
前記数値変換手段は、前記第1数値データ系列に含まれるt個の数値データから構成されるt次元行ベクトルと前記バイナリ行列とを乗算することでn次元行ベクトルを算出し、前記n次元行ベクトルの各成分を、前記バイナリ行列の各列ベクトル中で1となる成分の数で除算することで、前記第2数値データ系列を構成するn個の数値データを算出する
付記4に記載の通信システム。
[付記6]
前記バイナリ行列は、各列ベクトル中で1となる成分の数がw個以上であり且つ二つの列ベクトルについて共に1となる成分の数が高々一つになる行列である
付記2から5のいずれか一項に記載の通信システム。
[付記7]
前記バイナリ行列は、
各列ベクトル中に1となる成分を一つ含むq(但し、qは、素数の冪)行×(q-1)列の第1行列をq+w個生成することと、
q+w個の前記第1行列を成分とするwq行×(q2-1)列の第2行列を生成することと、
1となる成分をw個含む列ベクトルを前記第2行列に追加することで得られる第3行列を前記バイナリ行列として設定することと
を含む行列生成方法によって生成される
付記2から6のいずれか一項に記載の通信システム。
[付記8]
前記バイナリ行列は、
q/w以下で最大となる素数の冪qwがw-1以上である場合には、前記行列生成方法によってwqw行×q’(但し、q’=qw
2)列の前記バイナリ行列である第4行列を生成し、前記第4行列に全ての成分が0になる行ベクトルをq-wqw個追加することでq行×q’列の第5行列を生成することと、
前記冪qwがw-1以上でない場合には、連続したw個の成分が1となり且つそれ以外の成分が0となる列ベクトルを、任意の二つの列ベクトルについて共に1となる成分の数が高々一つになるようにq’(但し、q’は、(q-1)(w-1)以下の最大の整数)個並べることで、q行×q’列の第6行列を生成することを、
前記第3行列に対して、前記第5行列又は前記第6行列を対角にw個配置したブロック行列を追加することで得られる第7行列を、前記バイナリ行列として設定することと
を含む拡張行列生成方法によって生成される
付記7に記載の通信システム。
[付記9]
通信路を介して送信信号を送信する送信装置であって、
第1ビット長bを有する第1ビット系列を、前記第1ビット系列のビット配列パターンに応じたビット位置にw-1(但し、wは2以上の整数)個のビット1が割り当てられ且つ前記第1ビット長bよりも長い第2ビット長nを有する第2ビット系列に変換する第1ビット変換手段と、
前記第2ビット系列を、前記第2ビット長nよりも短い第3ビット長tを有する第3ビット系列に変換する第2ビット変換手段と、
前記第3ビット長tと同じ数の入力ノードを有し且つ前記第3ビット系列が入力されると前記送信信号の特徴量を指定するインデックス値を出力するニューラルネットワークと
を備える送信装置。
[付記10]
通信路を介して送信装置が送信した送信信号を受信信号として受信する受信装置であって、
前記送信装置は、第1ビット長bを有する第1ビット系列を、前記第1ビット系列のビット配列パターンに応じたビット位置にw-1(但し、wは2以上の整数)個のビット1が割り当てられ且つ前記第1ビット長bよりも長い第2ビット長nを有する第2ビット系列に変換し、前記第2ビット系列を、前記第2ビット長nよりも短い第3ビット長tを有する第3ビット系列に変換し、前記第3ビット系列に基づいて前記送信信号を生成し、
前記受信装置は、
前記第3ビット長tと同じ数の出力ノードを有し且つ前記受信信号の特徴量が入力されると前記第3ビット長tと同じ数の数値データを含む第1数値データ系列を出力するニューラルネットワークと、
前記第1数値データ系列を、前記第2ビット長nと同じ数の数値データを含む第2数値データ系列に変換する数値変換手段と、
前記第2数値データ系列に対して、前記第1ビット系列を前記第2ビット系列に変換するための変換処理の逆変換に相当する変換処理を行うことで、前記第1ビット長bを有する第4ビット系列を生成する生成手段と
を備える受信装置。
[付記11]
バイナリ行列を生成する行列生成装置であって、
各列ベクトル中に1となる成分を一つ含むq(但し、qは、素数の冪)行×(q-1)列の第1行列をq+w(但し、wは、2以上の整数)個生成し、
q+w個の前記第1行列を成分とするwq行×(q2-1)列の第2行列を生成し、
1となる成分をw個含む列ベクトルを前記第2行列に追加することで得られる第3行列を前記バイナリ行列として設定する
行列生成装置。
[付記12]
前記バイナリ行列は、通信路を介して送信信号を送信する送信装置及び前記通信路を介して前記送信装置が送信した前記送信信号を受信信号として受信する受信装置の少なくとも一方によって使用される
付記11に記載の行列生成装置。
[付記13]
通信路を介して送信信号を送信する送信装置と、前記通信路を介して前記送信装置が送信した前記送信信号を受信信号として受信する受信装置とを用いた通信方法であって、
第1ビット長bを有する第1ビット系列を、前記第1ビット系列のビット配列パターンに応じたビット位置にw-1(但し、wは2以上の整数)個のビット1が割り当てられ且つ前記第1ビット長bよりも長い第2ビット長nを有する第2ビット系列に変換することと、
前記第2ビット系列を、前記第2ビット長nよりも短い第3ビット長tを有する第3ビット系列に変換することと、
前記第3ビット長tと同じ数の入力ノードを有し且つ前記第3ビット系列が入力されると前記送信信号の特徴量を指定するインデックス値を出力するニューラルネットワークを用いて、前記送信信号を生成することと、
前記受信信号を、前記第3ビット長tと同じ数の出力ノードを有し且つ前記受信信号の特徴量が入力されると前記第3ビット長tと同じ数の数値データを含む第1数値データ系列を出力するニューラルネットワークに入力することと、
前記第1数値データ系列を、前記第2ビット長nと同じ数の数値データを含む第2数値データ系列に変換することと、
前記第2数値データ系列に対して、前記第1ビット変換手段が行う変換処理の逆変換に相当する変換処理を行うことで、前記第1ビット長bを有する第4ビット系列を生成することと
を含む通信方法。
[付記14]
通信路を介して送信信号を送信する送信方法であって、
第1ビット長bを有する第1ビット系列を、前記第1ビット系列のビット配列パターンに応じたビット位置にw-1(但し、wは2以上の整数)個のビット1が割り当てられ且つ前記第1ビット長bよりも長い第2ビット長nを有する第2ビット系列に変換することと、
前記第2ビット系列を、前記第2ビット長nよりも短い第3ビット長tを有する第3ビット系列に変換することと、
前記第3ビット長tと同じ数の入力ノードを有し且つ前記第3ビット系列が入力されると前記送信信号の特徴量を指定するインデックス値を出力するニューラルネットワークを用いて、前記送信信号を生成することと
を含む送信方法。
[付記15]
通信路を介して送信装置が送信した送信信号を受信信号として受信する受信方法であって、
前記送信装置は、第1ビット長bを有する第1ビット系列を、前記第1ビット系列のビット配列パターンに応じたビット位置にw-1(但し、wは2以上の整数)個のビット1が割り当てられ且つ前記第1ビット長bよりも長い第2ビット長nを有する第2ビット系列に変換し、前記第2ビット系列を、前記第2ビット長nよりも短い第3ビット長tを有する第3ビット系列に変換し、前記第3ビット系列に基づいて前記送信信号を生成し、
前記受信方法は、
前記受信信号を、前記第3ビット長tと同じ数の出力ノードを有し且つ前記受信信号の特徴量が入力されると前記第3ビット長tと同じ数の数値データを含む第1数値データ系列を出力するニューラルネットワークに入力することと、
前記第1数値データ系列を、前記第2ビット長nと同じ数の数値データを含む第2数値データ系列に変換することと、
前記第2数値データ系列に対して、前記第1ビット系列を前記第2ビット系列に変換するための変換処理の逆変換に相当する変換処理を行うことで、前記第1ビット長bを有する第4ビット系列を生成することと
を含む受信方法。
[付記16]
バイナリ行列を生成する行列生成方法であって、
各列ベクトル中に1となる成分を一つ含むq(但し、qは、素数の冪)行×(q-1)列の第1行列をq+w(但し、wは、2以上の整数)個生成することと、
q+w個の前記第1行列を成分とするwq行×(q2-1)列の第2行列を生成することと、
1となる成分をw個含む列ベクトルを前記第2行列に追加することで得られる第3行列を前記バイナリ行列として設定することと
を含む行列生成方法。
[付記17]
通信路を介して送信信号を送信する送信装置と、前記通信路を介して前記送信装置が送信した前記送信信号を受信信号として受信する受信装置とを用いた通信方法をコンピュータに実行させるコンピュータプログラムが記録された記録媒体であって、
前記通信方法は、
第1ビット長bを有する第1ビット系列を、前記第1ビット系列のビット配列パターンに応じたビット位置にw-1(但し、wは2以上の整数)個のビット1が割り当てられ且つ前記第1ビット長bよりも長い第2ビット長nを有する第2ビット系列に変換することと、
前記第2ビット系列を、前記第2ビット長nよりも短い第3ビット長tを有する第3ビット系列に変換することと、
前記第3ビット長tと同じ数の入力ノードを有し且つ前記第3ビット系列が入力されると前記送信信号の特徴量を指定するインデックス値を出力するニューラルネットワークを用いて、前記送信信号を生成することと、
前記受信信号を、前記第3ビット長tと同じ数の出力ノードを有し且つ前記受信信号の特徴量が入力されると前記第3ビット長tと同じ数の数値データを含む第1数値データ系列を出力するニューラルネットワークに入力することと、
前記第1数値データ系列を、前記第2ビット長nと同じ数の数値データを含む第2数値データ系列に変換することと、
前記第2数値データ系列に対して、前記第1ビット変換手段が行う変換処理の逆変換に相当する変換処理を行うことで、前記第1ビット長bを有する第4ビット系列を生成することと
を含む記録媒体。
[付記18]
通信路を介して送信信号を送信する送信方法をコンピュータに実行させるコンピュータプログラムが記録された記録媒体であって、
前記送信方法は、
第1ビット長bを有する第1ビット系列を、前記第1ビット系列のビット配列パターンに応じたビット位置にw-1(但し、wは2以上の整数)個のビット1が割り当てられ且つ前記第1ビット長bよりも長い第2ビット長nを有する第2ビット系列に変換することと、
前記第2ビット系列を、前記第2ビット長nよりも短い第3ビット長tを有する第3ビット系列に変換することと、
前記第3ビット長tと同じ数の入力ノードを有し且つ前記第3ビット系列が入力されると前記送信信号の特徴量を指定するインデックス値を出力するニューラルネットワークを用いて、前記送信信号を生成することと
を含む記録媒体。
[付記19]
通信路を介して送信装置が送信した送信信号を受信信号として受信する受信方法をコンピュータに実行させるコンピュータプログラムが記録された記録媒体であって、
前記送信装置は、第1ビット長bを有する第1ビット系列を、前記第1ビット系列のビット配列パターンに応じたビット位置にw-1(但し、wは2以上の整数)個のビット1が割り当てられ且つ前記第1ビット長bよりも長い第2ビット長nを有する第2ビット系列に変換し、前記第2ビット系列を、前記第2ビット長nよりも短い第3ビット長tを有する第3ビット系列に変換し、前記第3ビット系列に基づいて前記送信信号を生成し、
前記受信方法は、
前記受信信号を、前記第3ビット長tと同じ数の出力ノードを有し且つ前記受信信号の特徴量が入力されると前記第3ビット長tと同じ数の数値データを含む第1数値データ系列を出力するニューラルネットワークに入力することと、
前記第1数値データ系列を、前記第2ビット長nと同じ数の数値データを含む第2数値データ系列に変換することと、
前記第2数値データ系列に対して、前記第1ビット系列を前記第2ビット系列に変換するための変換処理の逆変換に相当する変換処理を行うことで、前記第1ビット長bを有する第4ビット系列を生成することと
を含む記録媒体。
[付記20]
バイナリ行列を生成する行列生成方法をコンピュータに実行させるコンピュータプログラムが記録された記録媒体であって、
前記行列生成方法は、
各列ベクトル中に1となる成分を一つ含むq(但し、qは、素数の冪)行×(q-1)列の第1行列をq+w(但し、wは、2以上の整数)個生成することと、
q+w個の前記第1行列を成分とするwq行×(q2-1)列の第2行列を生成することと、
1となる成分をw個含む列ベクトルを前記第2行列に追加することで得られる第3行列を前記バイナリ行列として設定することと
を含む記録媒体。
【0129】
本発明は、請求の範囲及び明細書全体から読み取るこのできる発明の要旨又は思想に反しない範囲で適宜変更可能であり、そのような変更を伴う通信システム、送信装置、受信装置、行列生成装置、通信方法、送信方法、受信方法、行列生成方法、コンピュータプログラム、及び、記録媒体もまた本発明の技術思想に含まれる。
【符号の説明】
【0130】
1 送信装置
11 演算装置
111 データ変換部
112 入力層処理部
113 ニューラルネットワーク
2 受信装置
21 演算装置
212 ニューラルネットワーク
213 出力層処理部
214 データ変換部
SYS 通信システム
Tx 送信信号
Rx 受信信号