(57)【要約】【課題】伝達する信号の量を制御することができるニューラルネットワーク、符号化装置、復号装置等を提供する。【解決手段】ニューラルネットワークは、１個以上の素子と、開閉制御可能な１個以上のスイッチとを備える。少なくとも一部の前記素子の出力に前記スイッチが設けられる。前記スイッチが設けられた前記素子に関しては前記スイッチからの出力の少なくとも一部が、または前記スイッチが設けられていない前記素子に関しては当該素子からの出力の少なくとも一部が、当該素子の入力または他の前記素子の入力に接続されるようにする。【選択図】図３
2019016166.tif 000002
【特許請求の範囲】
【請求項１】
１個以上の素子と、
開閉制御可能な１個以上のスイッチと、
を備え、
少なくとも一部の前記素子の出力に前記スイッチが設けられ、
前記スイッチが設けられた前記素子に関しては前記スイッチからの出力の少なくとも一部が、または前記スイッチが設けられていない前記素子に関しては当該素子からの出力の少なくとも一部が、当該素子の入力または他の前記素子の入力に接続された、
ことを特徴とするニューラルネットワーク。
【請求項２】
入力層の１個以上の素子と、中間層の０個以上の素子と、出力層の１個以上の素子とを備え、少なくとも一部の前記素子の出力が当該素子の入力または他の前記素子の入力に接続された、ニューラルネットワークと、
出力層の前記素子のうちの少なくとも一部の素子の出力に接続されたスイッチと、
前記スイッチの開閉を制御する制御部と、
を備え、
入力層の前記素子が取得した符号化対象データに応じて、出力層の前記素子のうちの前記スイッチに接続されていない素子からの出力値と、出力層の前記素子のうちの前記制御部によって閉に制御されたスイッチが接続された素子からの出力値とに応じた符号を出力する、
ことを特徴とする符号化装置。
【請求項３】
入力層の１個以上の素子と、中間層の０個以上の素子と、出力層の１個以上の素子とを備え、少なくとも一部の前記素子の出力が当該素子の入力または他の前記素子の入力に接続された、ニューラルネットワークと、
符号化装置側から出力された符号を取得して、前記符号が前記符号化装置内の出力層の有効な素子から出力された信号値を表す場合に当該信号値を前記ニューラルネットワーク内の前記入力層の対応する前記素子に与え、前記符号が前記符号化装置内の出力層の有効な素子以外の素子に対応する場合に有効な素子以外の素子であることを表す値を前記ニューラルネットワーク内の前記入力層の対応する前記素子に与える、符号取得部と、
を備え、
前記ニューラルネットワーク内の前記出力層の前記素子が、前記符号化装置側から出力された符号に応じた復号データを出力する、
ことを特徴とする復号装置。
【請求項４】
ニューラルネットワークの学習方法であって、
前記ニューラルネットワークは、第１部分ニューラルネットワークと第２部分ニューラルネットワークとを含んで構成されており、
前記第１部分ニューラルネットワークは、入力層の１個以上の素子と、中間層の０個以上の素子と、出力層の１個以上の素子とを備え、前記第１部分ニューラルネットワーク内の少なくとも一部の前記素子の出力が当該素子の入力または前記第１部分ニューラルネットワーク内の他の前記素子の入力に接続されたものであり、
前記第１部分ニューラルネットワークの出力層の前記素子のうちの少なくとも一部の素子の出力に接続されたスイッチの開閉を制御可能とし、
前記第２部分ニューラルネットワークは、入力層の１個以上の素子と、中間層の０個以上の素子と、出力層の１個以上の素子とを備え、前記第２部分ニューラルネットワーク内の少なくとも一部の前記素子の出力が当該素子の入力または前記第２部分ニューラルネットワーク内の他の前記素子の入力に接続されたものであり、
前記第１部分ニューラルネットワークの入力層の前記素子に学習用信号値を与えて、前記第１部分ニューラルネットワークの順伝播を行い、
前記第１部分ニューラルネットワークの出力層の前記素子のうちの前記スイッチに接続されていない素子の出力値と、前記第１部分ニューラルネットワークの出力層の前記素子のうちの閉状態の前記スイッチに接続された素子の出力値とを、前記第２部分ニューラルネットワークの入力層のそれぞれ対応する前記素子に与え、
前記第１部分ニューラルネットワークの出力層の前記素子のうちの開状態の前記スイッチに接続された素子に対応する前記第２部分ニューラルネットワークの入力層の前記素子には、当該素子が有効な素子以外の素子であることを表す値を与え、
前記第２部分ニューラルネットワークの順伝播を行い、
前記第２部分ニューラルネットワークの出力層の前記素子から出力される出力値と、前記学習用信号値との間の差異を求め、
前記差異に基づく誤差信号値を誤差逆伝播法により逆伝播することによって前記第２部分ニューラルネットワークおよび前記第１部分ニューラルネットワークの各素子のパラメーター値を更新し、ただし前記逆伝播において、開状態の前記スイッチが付随する素子間結合においては当該素子が有効な素子以外の素子であることを表す値を逆伝播させる、
学習方法であって、
複数の前記学習用信号値を与える際に、前記スイッチの開閉状態を変える場合がある、
ことを特徴とする学習方法。
【請求項５】
入力層の１個以上の素子と、中間層の０個以上の素子と、出力層の１個以上の素子とを備え、少なくとも一部の前記素子の出力が当該素子の入力または他の前記素子の入力に接続された、ニューラルネットワークと、
出力層の前記素子のうちの少なくとも一部の素子の出力に接続されたスイッチと、
前記スイッチの開閉を制御する制御部と、
を備え、
入力層の前記素子が取得した符号化対象データに応じて、出力層の前記素子のうちの前記スイッチに接続されていない素子からの出力値と、出力層の前記素子のうちの前記制御部によって閉に制御されたスイッチが接続された素子からの出力値とに応じた符号を出力する、
符号化装置を用いて、
前記制御部が、前記スイッチのうち閉状態とする前記スイッチの数を加減することによって前記符号化装置から出力する符号の符号量を制御する、
制御方法。
【請求項６】
コンピューターを、
１個以上の素子と、
開閉制御可能な１個以上のスイッチと、
を備え、
少なくとも一部の前記素子の出力に前記スイッチが設けられ、
前記スイッチが設けられた前記素子に関しては前記スイッチからの出力の少なくとも一部が、または前記スイッチが設けられていない前記素子に関しては当該素子からの出力の少なくとも一部が、当該素子の入力または他の前記素子の入力に接続された、
ニューラルネットワークとして機能させるためのプログラム。
【請求項７】
コンピューターを、
入力層の１個以上の素子と、中間層の０個以上の素子と、出力層の１個以上の素子とを備え、少なくとも一部の前記素子の出力が当該素子の入力または他の前記素子の入力に接続された、ニューラルネットワークと、
出力層の前記素子のうちの少なくとも一部の素子の出力に接続されたスイッチと、
前記スイッチの開閉を制御する制御部と、
を備え、
入力層の前記素子が取得した符号化対象データに応じて、出力層の前記素子のうちの前記スイッチに接続されていない素子からの出力値と、出力層の前記素子のうちの前記制御部によって閉に制御されたスイッチが接続された素子からの出力値とに応じた符号を出力する、
符号化装置として機能させるためのプログラム。
【請求項８】
コンピューターを、
入力層の１個以上の素子と、中間層の０個以上の素子と、出力層の１個以上の素子とを備え、少なくとも一部の前記素子の出力が当該素子の入力または他の前記素子の入力に接続された、ニューラルネットワークと、
符号化装置側から出力された符号を取得して、前記符号が前記符号化装置内の出力層の有効な素子から出力された信号値を表す場合に当該信号値を前記ニューラルネットワーク内の前記入力層の対応する前記素子に与え、前記符号が前記符号化装置内の出力層の有効な素子以外の素子に対応する場合に有効な素子以外の素子であることを表す値を前記ニューラルネットワーク内の前記入力層の対応する前記素子に与える、符号取得部と、
を備え、
前記ニューラルネットワーク内の前記出力層の前記素子が、前記符号化装置側から出力された符号に応じた復号データを出力する、
復号装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ニューラルネットワーク、符号化装置、復号装置、学習方法、制御方法、およびプログラムに関する。
【背景技術】
【０００２】
データ圧縮の技術において、データに含まれるシンボルの生起確率の偏りに応じて、例えば生起確率の高いシンボルほど短い符号語を割り当てることで、トータルの符号語長を圧縮、即ち情報を圧縮する方法がある。
【０００３】
例えば、欧文モールス符号（Morse code）では、「Ｅ」には１短点、「Ｔ」には１長点、「Ｉ」には２短点というように、英文に出現する頻度の高いシンボル（文字）に対しては短い符号語が割り当てられている。その一方で、「Ｊ」や「Ｑ」や「Ｙ」などの、比較的出現頻度の低いシンボルには長い符号語が割り当てられている。具体的には、「Ｊ」も「Ｑ」も「Ｙ」も、１短点および３長点を適宜配列した符号語が割り当てられている。
また、例えば、ハフマン符号化（Huffman coding）は、各シンボルの生起確率に基づいて２分木（符号木）を構成することで、エントロピーに応じた圧縮符号化を実現している。
さらに、算術符号化では、数直線をシンボルの生起確率に比例した大きさの半開区間に区分し、さらに各半開区間を次シンボルの生起確率に比例した大きさで区分する。この操作を繰り返すことで、シンボル列を半開区間に対応付ける。シンボル列の符号化の際には、当該シンボル列がどの半開区間に属するかを特定するのに必要な精度（ビット長）の数値を以て符号語とする。
また、シンボル列を記憶するメモリ（辞書）を有し、辞書内のシンボル列との最長一致に基づいて情報圧縮を実行する手法がある。この辞書式圧縮法としては、例えば、ＬＺＷ（Lempel-Ziv-Welch）法がある。
特許文献１には、上記のＬＺＷ法について記載されている。
以上列挙した従来技術は、符号化および復号において情報が完全に復元される可逆（ロスレス）圧縮法である。
【０００４】
画像や、映像や、音声等のデータ圧縮技術においては、符号化処理および復号処理における情報の損失（信号劣化）を許容して、さらに圧縮率を向上する手法がある。情報の損失を許容できるのは、画像や、映像や、音声等の情報における冗長性がそもそも比較的高く、例えばヒトが、劣化した信号に基づいた場合にもこれらの画像や、映像や、音声等を元データに近い状態で認識できるためである。
例えば、画像の符号化においては、例えばＪＰＥＧ（Joint Photographic Experts Group）等の方式が実用化されている。ＪＰＥＧ等の手法では、画像を領域（ブロック）に分割し、各領域に対して直交変換を適用し、その結果の直交変換係数列に対して量子化を行い、その量子化された直交変換係数列をハフマン符号化や算術符号化などによってエントロピー符号化する。このとき、量子化の幅を粗くすればするほど圧縮率が向上する反面、信号劣化が大きくなる。また、直交変換には、例えば、離散コサイン変換（ＤＣＴ，discrete cosine transform）などが用いられる。人間の視覚は、粗いテクスチャに比して、細かいテクスチャの信号変化に対しては気づきにくい。そこで、信号系列を周波数軸上に変換する手法の一つであるＤＣＴを用い、得られた変換係数列のうち高周波成分に対する量子化の幅を、直流成分や低周波成分に対する量子化の幅よりも粗く取ることで、信号劣化を視覚的に目立ちにくくしている。
【０００５】
さらに、画像符号化において、ニューラルネットワークを用いる方式も研究されている。
非特許文献１に開示されている手法では、再帰型の畳み込みニューラルネットワークにより、３２画素×３２画素×３色のブロックを１２８ビットの符号語に写像することで圧縮符号化を実現している。そして、１２８ビットの符号語を、再帰型の畳み込みニューラルネットワークにより３２画素×３２画素×３色のブロックに写像することで復号を実現している。この場合の符号長は、符号化用ニューラルネットワークの出力層の素子数で決定される。非特許文献１の手法では、符号化用ニューラルネットワークの出力層の素子数は固定であるが、入力３２画素×３２画素×３色のブロックの符号化の後、それを送信側（符号化側）において復号用ニューラルネットワークで復号し、符号化・復号の過程で損失した信号成分（残差成分）を再度同じ符号化用ネットワークで符号化する。この操作を所望回数繰り返すことにより、信号劣化と符号量とを制御可能としている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平８−２３７１３８号公報
【非特許文献】
【０００７】
【非特許文献１】G. Toderici, 外６名，“Full Resolution Image Compression with Recurrent Neural Networks,” arXiv:1608.05148v1 [cs.CV], 18 Aug 2016.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
非特許文献１に記載されている手法では、符号化用ニューラルネットワークの出力層の素子数が固定であり、したがって、１ブロックあたり且つ符号化１回あたりの符号語長は固定である。したがって、１回の符号化では圧縮率を上げたり下げたりするための制御ができない。そこで非特許文献１の手法では、残差の符号化を繰り返すことで符号語長を等価的に自然数倍し、これを信号損失の補てんに充てている。このような手法では、１ブロックあたり且つ符号化１回あたりの符号語長（例えば、非特許文献１においては１２８ビット）の整数倍の単位でしか符号量を制御できない。つまり、細やかな圧縮率制御（レート制御）には向かないという問題があった。
【０００９】
本発明は、上記のような課題認識に基づいて為されたものであり、伝達する信号の量を制御することができ、その各々の信号の量において学習を行うことのできるニューラルネットワークおよびそのプログラムを提供しようとするものである。
また、本発明は、そのようなニューラルネットワークを用いることにより、符号長を制御することのできる符号化装置、復号装置、学習方法、制御方法、およびプログラムを提供しようとするものである。
【課題を解決するための手段】
【００１０】
［１］上記の課題を解決するため、本発明の一態様によるニューラルネットワークは、１個以上の素子と、開閉制御可能な１個以上のスイッチと、を備え、少なくとも一部の前記素子の出力に前記スイッチが設けられ、前記スイッチが設けられた前記素子に関しては前記スイッチからの出力の少なくとも一部が、または前記スイッチが設けられていない前記素子に関しては当該素子からの出力の少なくとも一部が、当該素子の入力または他の前記素子の入力に接続された、ことを特徴とする。
【００１１】
［２］また、本発明の一態様による符号化装置は、入力層の１個以上の素子と、中間層の０個以上の素子と、出力層の１個以上の素子とを備え、少なくとも一部の前記素子の出力が当該素子の入力または他の前記素子の入力に接続された、ニューラルネットワークと、出力層の前記素子のうちの少なくとも一部の素子の出力に接続されたスイッチと、前記スイッチの開閉を制御する制御部と、を備え、入力層の前記素子が取得した符号化対象データに応じて、出力層の前記素子のうちの前記スイッチに接続されていない素子からの出力値と、出力層の前記素子のうちの前記制御部によって閉に制御されたスイッチが接続された素子からの出力値とに応じた符号を出力する、ことを特徴とする。
【００１２】
［３］また、本発明の一態様による復号装置は、入力層の１個以上の素子と、中間層の０個以上の素子と、出力層の１個以上の素子とを備え、少なくとも一部の前記素子の出力が当該素子の入力または他の前記素子の入力に接続された、ニューラルネットワークと、符号化装置側から出力された符号を取得して、前記符号が前記符号化装置内の出力層の有効な素子から出力された信号値を表す場合に当該信号値を前記ニューラルネットワーク内の前記入力層の対応する前記素子に与え、前記符号が前記符号化装置内の出力層の有効な素子以外の素子に対応する場合に有効な素子以外の素子であることを表す値を前記ニューラルネットワーク内の前記入力層の対応する前記素子に与える、符号取得部と、を備え、前記ニューラルネットワーク内の前記出力層の前記素子が、前記符号化装置側から出力された符号に応じた復号データを出力する、ことを特徴とする。
【００１３】
［４］また、本発明の一態様による学習方法は、ニューラルネットワークの学習方法であって、前記ニューラルネットワークは、第１部分ニューラルネットワークと第２部分ニューラルネットワークとを含んで構成されており、前記第１部分ニューラルネットワークは、入力層の１個以上の素子と、中間層の０個以上の素子と、出力層の１個以上の素子とを備え、前記第１部分ニューラルネットワーク内の少なくとも一部の前記素子の出力が当該素子の入力または前記第１部分ニューラルネットワーク内の他の前記素子の入力に接続されたものであり、前記第１部分ニューラルネットワークの出力層の前記素子のうちの少なくとも一部の素子の出力に接続されたスイッチの開閉を制御可能とし、前記第２部分ニューラルネットワークは、入力層の１個以上の素子と、中間層の０個以上の素子と、出力層の１個以上の素子とを備え、前記第２部分ニューラルネットワーク内の少なくとも一部の前記素子の出力が当該素子の入力または前記第２部分ニューラルネットワーク内の他の前記素子の入力に接続されたものであり、前記第１部分ニューラルネットワークの入力層の前記素子に学習用信号値を与えて、前記第１部分ニューラルネットワークの順伝播を行い、前記第１部分ニューラルネットワークの出力層の前記素子のうちの前記スイッチに接続されていない素子の出力値と、前記第１部分ニューラルネットワークの出力層の前記素子のうちの閉状態の前記スイッチに接続された素子の出力値とを、前記第２部分ニューラルネットワークの入力層のそれぞれ対応する前記素子に与え、前記第１部分ニューラルネットワークの出力層の前記素子のうちの開状態の前記スイッチに接続された素子に対応する前記第２部分ニューラルネットワークの入力層の前記素子には、当該素子が有効な素子以外の素子であることを表す値を与え、前記第２部分ニューラルネットワークの順伝播を行い、前記第２部分ニューラルネットワークの出力層の前記素子から出力される出力値と、前記学習用信号値との間の差異を求め、前記差異に基づく誤差信号値を誤差逆伝播法により逆伝播することによって前記第２部分ニューラルネットワークおよび前記第１部分ニューラルネットワークの各素子のパラメーター値を更新し、ただし前記逆伝播において、開状態の前記スイッチが付随する素子間結合においては当該素子が有効な素子以外の素子であることを表す値を逆伝播させる、学習方法であって、複数の前記学習用信号値を与える際に、前記スイッチの開閉状態を変える場合がある、ことを特徴とする。
【００１４】
［５］また、本発明の一態様は、入力層の１個以上の素子と、中間層の０個以上の素子と、出力層の１個以上の素子とを備え、少なくとも一部の前記素子の出力が当該素子の入力または他の前記素子の入力に接続された、ニューラルネットワークと、出力層の前記素子のうちの少なくとも一部の素子の出力に接続されたスイッチと、前記スイッチの開閉を制御する制御部と、を備え、入力層の前記素子が取得した符号化対象データに応じて、出力層の前記素子のうちの前記スイッチに接続されていない素子からの出力値と、出力層の前記素子のうちの前記制御部によって閉に制御されたスイッチが接続された素子からの出力値とに応じた符号を出力する、符号化装置を用いて、前記制御部が、前記スイッチのうち閉状態とする前記スイッチの数を加減することによって前記符号化装置から出力する符号の符号量を制御する、制御方法である。
【００１５】
［６］また、本発明の一態様は、コンピューターを、１個以上の素子と、開閉制御可能な１個以上のスイッチと、を備え、少なくとも一部の前記素子の出力に前記スイッチが設けられ、前記スイッチが設けられた前記素子に関しては前記スイッチからの出力の少なくとも一部が、または前記スイッチが設けられていない前記素子に関しては当該素子からの出力の少なくとも一部が、当該素子の入力または他の前記素子の入力に接続された、ニューラルネットワークとして機能させるためのプログラムである。
【００１６】
［７］また、本発明の一態様は、コンピューターを、入力層の１個以上の素子と、中間層の０個以上の素子と、出力層の１個以上の素子とを備え、少なくとも一部の前記素子の出力が当該素子の入力または他の前記素子の入力に接続された、ニューラルネットワークと、出力層の前記素子のうちの少なくとも一部の素子の出力に接続されたスイッチと、前記スイッチの開閉を制御する制御部と、を備え、入力層の前記素子が取得した符号化対象データに応じて、出力層の前記素子のうちの前記スイッチに接続されていない素子からの出力値と、出力層の前記素子のうちの前記制御部によって閉に制御されたスイッチが接続された素子からの出力値とに応じた符号を出力する、符号化装置として機能させるためのプログラムである。
【００１７】
［８］また、本発明の一態様は、コンピューターを、入力層の１個以上の素子と、中間層の０個以上の素子と、出力層の１個以上の素子とを備え、少なくとも一部の前記素子の出力が当該素子の入力または他の前記素子の入力に接続された、ニューラルネットワークと、符号化装置側から出力された符号を取得して、前記符号が前記符号化装置内の出力層の有効な素子から出力された信号値を表す場合に当該信号値を前記ニューラルネットワーク内の前記入力層の対応する前記素子に与え、前記符号が前記符号化装置内の出力層の有効な素子以外の素子に対応する場合に有効な素子以外の素子であることを表す値を前記ニューラルネットワーク内の前記入力層の対応する前記素子に与える、符号取得部と、を備え、前記ニューラルネットワーク内の前記出力層の前記素子が、前記符号化装置側から出力された符号に応じた復号データを出力する、復号装置として機能させるためのプログラムである。
【発明の効果】
【００１８】
本発明によれば、ニューラルネットワーク内の素子からの出力の一部を、スイッチの開閉により制御できる。これにより、信号の量を可変に制御することができる。また、スイッチの複数の状態においてニューラルネットワークの学習を行うことができる。
また、本発明に依れば、符号化対象データを非可逆符号化する際、符号長をきめ細かく可変に制御できる。また、そのように符号化された結果である符号を、復号できる。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施形態による符号化装置および復号装置を構成する要素であるパーセプトロンの入出力関係を示す概略図である。
【図２】同実施形態によるパーセプトロンが用いる活性化関数φの例を示すグラフである。
【図３】同実施形態による伝送システムの概略機能構成を示すブロック図である。
【図４】同実施形態による符号化装置における、レート制御部が制御するスイッチの開閉パターンの例を示す概略図である。
【図５】同実施形態による符号化用ニューラルネットワークおよび復号用ニューラルネットワークの、学習時の接続形態（回路構成）を示す概略図である。
【図６】同実施形態によるニューラルネットワークの、学習処理における１単位の処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００２０】
次に、本発明の一実施形態について、図面を参照しながら説明する。
図１は、本実施形態による符号化装置および復号装置を構成する要素であるパーセプトロンの入出力関係を示す概略図である。図示するパーセプトロンを結合することにより、本実施形態による符号化装置および復号装置が有するニューラルネットワークが構成される。図示するように、１個の単純パーセプトロンは、Ｎ個（Ｎは１以上の整数）の入力ｘ１，ｘ２，・・・，ｘＮと、１個の出力ｙを有する。Ｎ個の入力のうち、第ｎ番目（ｎは１以上Ｎ以下の整数）の入力の信号値をｘｎと表す。このパーセプトロンは、入力値や重み係数を用いて、下の式（１）による演算を実行する。
【００２１】
【数１】
2019016166.tif 000003
【００２２】
なお、式（１）において、ｗ０，ｗ１，ｗ２，・・・，ｗＮは重み係数である。これらの重み係数は、パーセプトロンごとの記憶領域に記憶しておくようにする。なお、後述する学習処理において、これらの重み係数値の記憶を更新できるようにする。また、φは活性化関数である。この活性化関数φとしては、例えば、例えば、閾値関数、双曲線正接関数、ＲｅＬＵ関数（Rectified Linear Unit,正規化線形関数）などといった非線形関数を用いることができる。また、活性化関数φとして、線形関数を用いてもよい。
【００２３】
図２は、図１に示したパーセプトロンが用いる活性化関数φの例を示すグラフである。図２（ａ）は、φ（ｚ）として閾値関数を用いる場合のグラフを示す。この場合、ｚ≦０の場合にφ（ｚ）＝０であり、ｚ＞０の場合にφ（ｚ）＝１である。図２（ｂ）は、φ（ｚ）として双曲線正接関数を用いる場合のグラフを示す。つまり、φ（ｚ）＝ｔａｎｈ  ｚである。図２（ｃ）は、φ（ｚ）としてＲｅＬＵ関数を用いる場合のグラフを示す。この場合、ｚ≦０の場合にφ（ｚ）＝０であり、ｚ＞０の場合にφ（ｚ）＝ｚである。これらのグラフからもわかる通り、ここに例示した活性化関数φ（ｚ）を用いる場合、ｚ１＜ｚ２ならば、φ（ｚ１）≦φ（ｚ２）である。
【００２４】
以下では、単純パーセプトロンを「素子」と称する場合がある。
【００２５】
図３は、本実施形態による伝送システムの概略機能構成を示すブロック図である。伝送システム１００は、符号化対象データを符号化し、その符号を伝送し、伝送された符号を復号する。図示するように、伝送システム１００は、符号化装置１と復号装置２とを含んで構成される。符号化装置１は、符号化対象データを入力し、入力されたデータを符号化し、その符号を出力する。復号装置２は、符号化装置１から出力された符号を入力し、入力された符号を復号し、復号の結果である復号データを出力する。符号化装置１と復号装置２とは、例えば、通信回線等によって接続され、符号化装置１が出力した符号を通信によって復号装置２に伝送する。
【００２６】
なお、符号化装置１と復号装置２のそれぞれに含まれる機能を、例えば電子回路を用いて実現するようにする。また、それらの機能の少なくとも一部をコンピュータープログラムとして記述してもよい。
【００２７】
また、符号化装置１および復号装置２のそれぞれは、ニューラルネットワークを用いて構成される。ニューラルネットワークは、複数の単純パーセプトロン（素子）を適宜配置して成るものである。ニューラルネットワークにおいて、データを入力する素子の層を「入力層」と呼ぶ。また、データを出力する素子の層を「出力層」と呼ぶ。また、入力層と出力層の間の素子の層を「中間層」と呼ぶ。なお、中間層が複数の層で構成されていてもよい。なお、入力層に配置される素子を「入力素子」と呼ぶ場合がある。また、中間層に配置される素子を「中間素子」と呼ぶ場合がある。また、出力層に配置される素子を「出力素子」と呼ぶ場合がある。
【００２８】
入力層に配置される素子は、典型的には１入力である。この入力値をｘとすると、入力素子の入出力関係は、下の式（２）で表す通りである。
【００２９】
【数２】
2019016166.tif 000004
【００３０】
なお、符号化装置１側の符号化用ニューラルネットワーク１０と、復号装置２側の復号用ニューラルネットワーク６０との全体をあわせてニューラルネットワークと捉えることもできる。この場合、符号化用ニューラルネットワーク１０を、第１部分ニューラルネットワークと呼べる。また、復号用ニューラルネットワーク６０を、第２部分ニューラルネットワークと呼べる。符号化用ニューラルネットワーク１０と復号用ニューラルネットワーク６０とをあわせてニューラルネットワークと捉える場合、後述するスイッチ（図３においては、符号３１、３２、３３、３４）が、ニューラルネットワーク内部の信号伝達の一部を遮断し得る。これらのスイッチの開閉を制御することにより、ニューラルネットワーク内部の素子間結合において、信号を伝達するか遮断するかを制御できる。
【００３１】
まず、符号化装置１側について詳細を説明する。
符号化装置１は、符号化用ニューラルネットワーク１０と、レート制御部２０（制御部）と、スイッチ３１、３２、３３、３４と、送信部４０とを含んで構成される。
符号化用ニューラルネットワーク１０は、素子として、少なくとも入力素子と出力素子とを備え、必要に応じてさらに中間素子を備える。なお、１個以上の出力素子の出力にはスイッチ（図３では、スイッチ３１、３２、３３、３４）が設けられる。
つまり、符号化用ニューラルネットワーク１０は、入力層の１個以上の素子と、中間層の０個以上の素子と、出力層の１個以上の素子とを備え、少なくとも一部の素子の出力が当該素子の入力または他の前記素子の入力に接続されたものである。
【００３２】
レート制御部２０は、入力されるレートの値に基づいて、スイッチ３１、３２、３３、３４を開閉する制御を行う。
スイッチ３１、３２、３３、３４は、それぞれ、符号化用ニューラルネットワーク１０出力素子と送信部４０との接続を、ＯＮ／ＯＦＦ（オン・オフ）制御する。つまり、各スイッチは、出力層の素子のうちの少なくとも一部の素子の出力に接続されたものである。図３に示す状態において、スイッチ３１および３２がＯＮ（オン，閉）であり、スイッチ３３および３４がＯＦＦ（オフ，開）である。
送信部４０は、符号化用ニューラルネットワーク１０側から、スイッチ３１、３２、３３、３４を介して得られるデータ（符号）を、復号装置２に向けて送信する。
【００３３】
この構成により、符号化装置１は、入力層の素子が取得した符号化対象データに応じて、出力層の素子のうちの前記スイッチに接続されていない素子からの出力値と、出力層の素子のうちのレート制御部２０によって閉に制御されたスイッチが接続された素子からの出力値とに応じた符号を出力する。
【００３４】
符号化用ニューラルネットワーク１０についてさらに詳細に説明する。
各入力素子の出力は、１個以上の他の素子（中間素子または出力素子）の入力端子に接続される。また、各中間素子の出力は、１個以上の他の素子（中間素子または出力素子）の入力端子に接続される。なお、各中間素子の出力を、自中間素子と他中間素子と他出力素子のいずれか１個以上の入力端子に、時間遅延を以て接続するようにしてもよい。また、各出力素子の出力を、他中間素子と自出力素子と他出力素子のいずれか１個以上の入力端子に、時間遅延を以て接続するようにしてもよい。ある素子の出力がある素子（自素子または他素子）の入力端子に接続される場合、前段の素子の出力値が後段の素子の入力端子における入力値となる。
【００３５】
ニューラルネットワーク１０は、入力素子群（入力層）から中間素子群（中間層）へ、ある中間層からより出力側寄りの中間層（図面では省略）へ、最も出力寄りの中間層から出力素子群（出力層）へと、層間で信号線が全接続される。つまり、ニューラルネットワーク１０は、多層パーセプトロンの接続形態である。
【００３６】
ニューラルネットワーク１０の入力素子には、符号化対象となるデータ（符号化対象データ）を与える。符号化対象データは複数の要素からなるベクトル値であってもよいし、スカラー値であっても構わない。また、符号化対象データの値（ベクトルにあっては各要素値）は二値、多値、アナログ値のいずれでも構わない。符号化対象データを各入力素子に与えるにあたって、スカラー値（またはベクトルの各要素値）をそれぞれ１個の入力素子に与えても良いし、複数の入力素子に分け与えてもよい。分け与える場合には、例えば、スカラー値（またはベクトルの各要素値）をアナログ−デジタル変換（ＡＤ変換）して複数のビットで表し、各ビットをそれぞれ１個の入力素子に与えてもよい。さらに、符号化対象データに対して、線形または非線形の演算（ベクトル関数であってもスカラー関数であってもよい）を適用し、該演算結果を１個以上の入力素子に与えてもよい。
【００３７】
符号化対象データに関して上で述べたことを一般化すると、次の通りである。即ち、符号化対象データをベクトルＸとして、このベクトルＸに既定のベクトル関数ｆを適用すると、下の式（３）に表す結果が得られる。
【００３８】
【数３】
2019016166.tif 000005
【００３９】
ｆ（Ｘ）は、Ｍ個（Ｍは１以上の整数）の要素で構成されるベクトルであり、その要素は、ｘ（１），ｘ（２），・・・，ｘ（Ｍ）である。そして、Ｍ個の入力素子にこれらの要素をそれぞれ割り当て、第１入力素子から第Ｍ入力素子までのそれぞれの素子の入力値をｘ（１），ｘ（２），・・・，ｘ（Ｍ）とすることができる。
【００４０】
出力素子には、スイッチが接続されている出力素子と、スイッチが接続されていない出力素子とが存在する。
スイッチが接続されている出力素子に関しては、そのスイッチの出力値が送信部４０に接続される。
出力素子にスイッチが接続されていて、そのスイッチの開閉状態が「閉」（ＯＮ／ＯＦＦにおける「ＯＮ」）である場合、そのスイッチの出力値は、対応する出力素子からの出力値である。
出力素子にスイッチが接続されていて、そのスイッチの開閉状態が「開」（ＯＮ／ＯＦＦにおける「ＯＦＦ」）である場合、そのスイッチの出力値は、スイッチＯＦＦを表す特別な値である。
スイッチが接続されていない出力素子に関しては、その出力素子の出力値が送信部４０に接続される。スイッチが接続されてない出力素子を「常時出力素子」と呼ぶ場合がある。
なお、開閉状態が「閉」（ＯＮ）のスイッチに接続された出力素子と、スイッチの接続されない出力素子とを、合わせて「有効出力素子」と呼ぶ。
【００４１】
送信部４０は、出力素子またはスイッチから受け取った信号の値を、復号装置２へ伝送するための符号に変換し、その符号を復号装置２へ送信する。このとき、符号としては、送信部４０に入力された信号数（即ち、有効出力素子の数）に応じてその情報量が加減できることが好ましい。典型的には、有効出力素子の数が少ないほど情報量も少なくなる。
【００４２】
レート制御部２０は、スイッチ３１、３２、３３、３４を開閉制御することにより、有効出力素子数Ｋを可変に制御する。一般に、Ｋは１以上の整数である。図３に示す符号化装置１の構成例においては、常時出力素子の数が１であり、スイッチを備えた出力素子の数が４であるので、１≦Ｋ≦５である。
【００４３】
レート制御部２０は、レート入力端子を有する。レート入力端子から入力される値の信号に基づいて、レート制御部２０は、送信部４０からの符号の出力レート（符号量）を所望に制御する。レート入力端子から入力されるレート値（符号レートの値）が大きいほど、レート制御部２０は、より多くの数のスイッチを閉状態とする。逆に、入力されるレート値が小さいほど、レート制御部２０は、より少ない数のスイッチを閉状態とする。
【００４４】
スイッチが複数存在する場合（例えば、図３のスイッチ３１、３２、３３、３４）には、例えば、スイッチに優先順位を予め付与しておく。そして、レート制御部２０は、レート入力値に応じて優先順位が高いスイッチから順次回路を閉じる。
【００４５】
図４は、レート制御部２０が制御するスイッチの開閉パターンの例を示す概略図である。
図４に例示するように、レート入力値が所定値以下の場合にはスイッチ３１乃至３４をすべて開放し（ＯＦＦにし）、レート入力値が大きくなるにつれスイッチ３１、スイッチ３２、スイッチ３３、そしてスイッチ３４の順に順次回路を閉じる（ＯＮにする）ように制御する。
【００４６】
送信部４０は、例えば、有効出力素子数Ｋを符号化し、さらに有効出力素子の出力信号値を符号化する。有効出力素子数Ｋおよび出力信号値の符号化にはエントロピー符号化を適用してもよい。
あるいは、送信部４０は、例えば、有効出力素子の出力信号値を順次符号化した後、符号化終了を知らせるための符号を付加してもよい。この場合も、有効出力素子数Ｋに関する情報は符号化されている。
さらに、送信部４０がその他の符号化を行うようにしてもよい。
いずれの場合も、送信部４０は、有効出力素子数に関する情報と、有効出力素子の出力信号値の情報とを、復号装置２に対して送信する。
【００４７】
つまり、本実施形態において、次のような制御を行う。
即ち、入力層の１個以上の素子と、中間層の０個以上の素子と、出力層の１個以上の素子とを備え、少なくとも一部の前記素子の出力が当該素子の入力または他の前記素子の入力に接続された、ニューラルネットワークと、出力層の前記素子のうちの少なくとも一部の素子の出力に接続されたスイッチと、前記スイッチの開閉を制御するレート制御部２０と、を備え、入力層の前記素子が取得した符号化対象データに応じて、出力層の前記素子のうちの前記スイッチに接続されていない素子からの出力値と、出力層の前記素子のうちの前記レート制御部２０によって閉に制御されたスイッチが接続された素子からの出力値とに応じた符号を出力する、符号化装置１を用いて、前記レート制御部２０が、前記スイッチのうち閉状態とする前記スイッチの数を加減することによって前記符号化装置から出力する符号の符号量を制御する。
【００４８】
図３に戻り、復号装置２側について説明する。
復号装置２は、受信部５０（符号取得部）と、復号用ニューラルネットワーク６０とを含んで構成される。
復号装置２における、復号用ニューラルネットワーク６０内の出力層の素子が、符号化装置１側から出力された符号に応じた復号データを出力する。
【００４９】
復号用ニューラルネットワーク６０は、少なくとも入力素子と出力素子とを備え、必要に応じて中間素子を備える。各入力素子の出力は、１個以上の他の素子（中間素子または出力素子）の入力端子に接続される。また、各中間素子の出力は、１個以上の他の素子（中間素子または出力素子）の入力端子に接続される。なお、各中間素子の出力を、自中間素子と他中間素子と他出力素子のいずれか１個以上の入力端子に、時間遅延を以て接続するようにしてもよい。また、各出力素子の出力を、他中間素子と自出力素子と他出力素子のいずれか１個以上の入力端子に、時間遅延を以て接続するようにしてもよい。ある素子の出力がある素子（自素子または他素子）の入力端子に接続される場合、前段の素子の出力値が後段の素子の入力端子における入力値となる。
つまり、ニューラルネットワーク６０は、入力層の１個以上の素子と、中間層の０個以上の素子と、出力層の１個以上の素子とを備え、少なくとも一部の素子の出力が当該素子の入力または他の前記素子の入力に接続されたものである。
【００５０】
受信部５０は、符号化装置１の送信部４０から伝送された符号を受信して復号し、その結果を復号用ニューラルネットワーク６０の入力素子に入力する。
受信部５０は、符号化装置１の符号化用ニューラルネットワーク１０における有効出力素子数Ｋに応じて、復号用ニューラルネットワーク６０の入力素子への入力値を設定する。前述の通り、有効出力素子数Ｋの情報は、符号化装置１から復号装置２に伝送される。例えば、復号用ニューラルネットワーク６０の入力素子に優先順位を予め付与しておく。そして、受信部５０は、復号したＫ個の信号値（送信部４０が符号化したＫ個の出力信号値）を、定められた優先順位の上位Ｋ個の入力素子に対して入力する。
優先順位上位Ｋ個に含まれなかった入力端子に対しては、受信部５０は所定の数値を入力する。ここで「所定の数値」とは、例えば、０や、信号値がないことを表す特別な値などである。
【００５１】
つまり、受信部５０は、符号化装置１側から出力された符号を取得して、符号が符号化装置１内の出力層の有効な素子から出力された信号値を表す場合に当該信号値を復号用ニューラルネットワーク６０内の入力層の対応する素子に与え、符号が符号化装置１内の出力層の有効な素子以外の素子に対応する場合に有効な素子以外の素子であることを表す値を復号用ニューラルネットワーク６０内の入力層の対応する前記素子に与える。
【００５２】
上記の入力値に応じて、復号用ニューラルネットワーク６０の出力素子からの出力値列として、復号データＸ＾（「＾」は実際には、Ｘに上に位置する。）を得る。例えば、出力素子からの各出力値を所定の順序で並べたベクトル値（ただし、出力素子数が１個の場合にはスカラー値）を以て復号データＸ＾としてもよい。また、前記ベクトル値（ただし、出力素子が１個の場合にはスカラー値）に関数ｇを適用し、その関数ｇの出力値を以て復号データＸ＾としてもよい。後者の場合を式で表すと、式（４）により復号データＸ＾が得られる。
【００５３】
【数４】
2019016166.tif 000006
【００５４】
ここで、ｙ（ｎ）（ただし、ｎは１以上Ｎ以下の整数。Ｎは復号用ニューラルネットワーク６０の出力素子数。）は、復号用ニューラルネットワーク６０の第ｎ番目の出力素子からの出力値である。
【００５５】
つまり、本実施形態におけるニューラルネットワークは、１個以上の素子と、開閉制御可能な１個以上のスイッチと、を備え、少なくとも一部の前記素子の出力に前記スイッチが設けられ、前記スイッチが設けられた前記素子に関しては前記スイッチからの出力の少なくとも一部が、または前記スイッチが設けられていない前記素子に関しては当該素子からの出力の少なくとも一部が、当該素子の入力または他の前記素子の入力に接続されるように構成される。符号化用ニューラルネットワーク１０および復号用ニューラルネットワーク６０は、それぞれ、ニューラルネットワークである。また、符号化用ニューラルネットワーク１０と復号用ニューラルネットワーク６０とを合わせた全体を、ニューラルネットワークとして捉えてもよい。この構成によるニューラルネットワークでは、スイッチを開閉することによって、素子間で、信号を伝達するか遮断するかを制御できる。また、スイッチを開閉しながら学習を行うことができる。また、スイッチの開閉の状態に応じた挙動をするニューラルネットワークを実現できる。
【００５６】
［ニューラルネットワークの学習］
次に、符号化用ニューラルネットワーク１０および復号用ニューラルネットワーク６０の学習方法について説明する。符号化用ニューラルネットワーク１０および復号用ニューラルネットワーク６０のそれぞれの学習を、誤差逆伝播法（Backpropagation，バックプロパゲーション）により実行する。また、それぞれのニューラルネットワークを構成する各素子には学習用の誤差値入力端子を設け、その誤差値入力に与えられた誤差値に応じて、素子の入力端子に設定されるパラメーター（重み係数（式（１）におけるｗ０，ｗ１，ｗ２，・・・，ｗＮ））を更新可能とする。
【００５７】
また、符号化用ニューラルネットワーク１０および復号用ニューラルネットワーク６０は、ある素子の出力からある素子の入力への信号の流れ（これを「順伝播」と呼ぶ）と逆行する方向に誤差逆伝播のための、不図示の信号路を有する。この誤差逆伝播の信号路に対しても、順伝播の信号路に設定された重み係数と同値の重み係数を付与し、学習時において後段の誤差値を前段に逆伝播する際に当該重み係数を適用する。
なお、誤差逆伝播法自体は、既存の技術に属するものである。
【００５８】
図５は、符号化用ニューラルネットワーク１０および復号用ニューラルネットワーク６０の、学習時の接続形態（回路構成）を示す概略図である。つまり、図３に示した符号化用ニューラルネットワーク１０および復号用ニューラルネットワーク６０の接続を、学習時には図５に示すように変える。
なお、符号化用ニューラルネットワーク１０を、第１部分ニューラルネットワークと呼ぶ場合がある。また、復号用ニューラルネットワーク６０を、第２部分ニューラルネットワークと呼ぶ場合がある。
【００５９】
図５に示すように、学習時の構成として、符号化用ニューラルネットワーク１０の出力側と復号用ニューラルネットワーク６０の入力側との間に、接続部７０を設ける。即ち、符号化用ニューラルネットワーク１０の出力素子の出力端子（ただし、スイッチを付随する出力素子に関しては、そのスイッチの出力端子）と、復号用ニューラルネットワークの入力素子の入力端子との、対応する端子同士を、接続部７０において接続する。図示する接続部７０内の黒丸印が、この接続のための接点を表す。
【００６０】
また、図５に示すように、学習時の構成として、学習データを供給するための学習データ端子を設ける。また、復号用ニューラルネットワーク６０の出力素子の出力側に減算部９０を設ける。減算部９０は、復号用ニューラルネットワーク６０の各出力素子に対応した減算器を備えている。各減算器は、正入力端子と負入力端子と出力端子とを有する。各減算器は、正入力端子から入力される値から、負入力端子から入力される値を減じて、出力端子に出力する。
【００６１】
また、図５の構成における数値列発生部８０は、レート制御部２０に供給するレート値を、順次発生するものである。数値列発生部８０は、発生させたレート値を、レート制御部２０に与える。レート制御部２０は、入力されたレート値にしたがって、スイッチ３１、３２、３３、３４のうちの、どのスイッチを閉じ、どのスイッチを開くかを制御する。なお、数値列発生部８０については後でも説明する。
【００６２】
そして、学習データ端子から供給される学習データは、符号化用ニューラルネットワーク１０の各入力素子に入力される。また、その学習データは、減算部９０に含まれる各減算器の正入力端子にも入力される。また、復号用ニューラルネットワーク６０の各出力素子からの出力は、減算部９０に含まれる各減算器の負入力端子に入力される。減算部９０に含まれる各減算器は、入力された値に応じた減算を行い、減算結果（学習に用いるための誤差）を出力する。減算部９０に含まれる各減算器から出力される値は、復号用ニューラルネットワーク６０内の、対応する出力素子の誤差入力端子に入力される。
【００６３】
なお、符号化時に式（３）の関数ｆ（）を適用する場合には、符号化用ニューラルネットワーク１０の入力素子に学習データを入力する際にも同じく関数ｆ（）を適用するようにする。また、復号時に式（４）の関数ｇ（）を適用する場合には、減算部９０の各減算器の正入力の前処理として、関数ｇ（）の逆関数であるｇ−１（）を適用する。
【００６４】
すなわち、学習データをベクトルＸＬとするとき、減算部９０の第ｎ番目（１≦ｎ≦Ｎ）の減算器の正入力に与える値ｙＬ（ｎ）は、下の式（５）により与えられる。
【００６５】
【数５】
2019016166.tif 000007
【００６６】
符号化用ニューラルネットワーク１０と復号用ニューラルネットワーク６０の学習処理の際には、スイッチ３１、３２、３３、３４の開閉制御を行う。具体的には、各スイッチに対して優先順位を設定し、優先順位の高い方からｋ個のスイッチのみを閉じた（ＯＮとした）状態で、１単位以上の学習処理を実行する。なお、ｋは、０以上且つスイッチ個数以下の整数である。そして、学習処理においてはｋの値を様々に変化させる。上記の学習処理の「１単位」については後で説明する。
【００６７】
ｋの値を変化させる方法として、例えば、体系的に（例えば、ｋ＝０，１，２，・・・と順に）変化させる方法としてもよく、ランダムに変化させる方法としてもよい。ｋの値を変化させながら、所定の条件を満たすまで、学習処理をくり返し実行する。所定の条件とは、例えば、次の通りであるが、ここに列挙する条件には限定されない。
（ａ）減算部９０で評価した誤差値（符号化前の学習データの値と、その学習データに対して符号化および復号の処理を行った結果の値との差）が所定の閾値以下になること。
（ｂ）学習処理の繰り返し回数が予め定めた所定回数に達すること。
（ｃ）学習処理の進行に伴う上記誤差値の変化量が、収束に近付いたと見なせるための所定条件を満たすこと。例えば、１単位前の処理で得られた誤差値と、今回の処理で得られた誤差値との差の絶対値が、予め定めた所定の閾値以下であることなど。
なお、例えば上記（ａ）から（ｃ）までの条件等の複数を組み合わせて、学習処理の終了を判定する条件としてもよい。
【００６８】
上では、ｋの値（閉スイッチの数）を変化させながら学習処理を行うことを説明したが、ｋの値を直接制御する代わりに、レート制御部２０に入力されるレート値を様々に変化させて、その結果としてｋの値が変化するようにしてもよい。図５に示す構成において、数値列発生部８０は、学習処理のために、発生させるレート値を体系的に変化させ、またはランダムに変化させる。レート制御部２０がそのレート値にしたがってスイッチの開閉制御を行い、結果として、様々なｋの値による学習が可能となる。
【００６９】
ここで、学習処理における、上述の「１単位」の処理について説明する。
図６は、学習処理における１単位の処理の手順を示すフローチャートである。図示するステップＳ１からＳ１０間での処理が１単位の処理である。以下、このフローチャートに沿って説明する。
【００７０】
まずステップＳ１において、符号化用ニューラルネットワーク１０は、学習データ１個を入力する。
ステップＳ２において、符号化用ニューラルネットワーク１０は、入力された１個の学習データに基づき、順伝播の処理を行う。なお、符号化用ニューラルネットワーク１０は、順方向の伝播を行う前に必要に応じて、式（３）により、入力データに関数ｆ（）を適用する。
【００７１】
ステップＳ３において、符号化用ニューラルネットワーク１０の有効出力素子からの出力値を、その接続先の復号用ニューラルネットワーク６０の入力素子の入力端子に与える。その他の出力素子（即ち、スイッチが開状態（ＯＦＦ）の出力素子）については、その接続先の復号用ニューラルネットワーク６０の入力素子の入力端子に、所定の値（例えば０）を与える。
【００７２】
ステップＳ４において、復号用ニューラルネットワーク６０は、ステップＳ３で入力されたデータに基づき、順伝播の処理を行う。
ステップＳ５において、復号用ニューラルネットワーク６０の各出力素子の出力端子に現れた出力値を、減算部９０の各減算器の負入力に入力する。
ステップＳ６において、減算部９０の各減算器は、学習データ（ステップＳ１で符号化用ニューラルネットワーク１０に入力された学習データと同一のデータ）を、自身の正入力に入力する。なお、減算部９０の各減算器は、必要に応じて、式（５）により、学習データに関数ｇ−１（）を適用してから、上記の正入力への入力を行う。
【００７３】
ステップＳ７において、減算部９０の各減算器は、減算を実行する。即ち、各減算器は、正入力に入力された学習データの値から、負入力に入力された復号用ニューラルネットワーク６０からの出力の値を減ずる。そして、各減算器は、得られた結果（誤差値）を、復号用ニューラルネットワーク６０の各誤差入力端子に与える。
ステップＳ８において、復号用ニューラルネットワーク６０は、減算部９０から与えられた誤差値に基づいて逆伝播の処理を行う。この過程で、復号用ニューラルネットワーク６０は、復号用ニューラルネットワーク６０内の各素子におけるパラメーター（重み値）を更新する処理を行う。
【００７４】
ステップＳ９において、符号化用ニューラルネットワーク１０は、その有効出力素子に関して、各有効出力素子の接続先である復号用ニューラルネットワーク６０の入力素子における誤差値を、当該有効出力素子の誤差値として設定する。つまり、各有効出力素子は、復号用ニューラルネットワーク６０側において対応する入力素子の誤差値をコピーする。また、符号化用ニューラルネットワーク１０は、有効出力素子以外の出力素子（つまり、スイッチが開状態（ＯＦＦ）である出力素子）については、予め定めた所定値（例えば、０）を、当該出力素子における誤差値として設定する。
なお、このステップＳ９の処理は、復号用ニューラルネットワーク６０における入力層の素子から、符号化用ニューラルネットワーク１０における出力層の素子への逆伝播であると捉えることもできる。
【００７５】
ステップＳ１０において、符号化用ニューラルネットワーク１０は、復号用ニューラルネットワーク６０側から与えられた誤差値に基づいて、符号化用ニューラルネットワーク１０の逆伝播の処理を行う。この過程で、符号化用ニューラルネットワーク１０は、符号化用ニューラルネットワーク１０内の各素子におけるパラメーター（重み値）を更新する処理を行う。
【００７６】
以上の一連の処理が１単位の処理であり、符号化用ニューラルネットワーク１０および復号用ニューラルネットワーク６０は、学習時には、前述した所定の学習終了条件を満たすまで、この単位の処理をくり返し実行する。
【００７７】
このような処理を行うことにより、スイッチの有無やスイッチごとの重要度を反映した学習が行われ、各素子のパラメーターが更新される。つまり、符号化用ニューラルネットワーク１０の出力素子のうち、スイッチが付随しない出力素子は最も高い重要度を有する。また、スイッチが付随する出力素子は、スイッチの優先順位に応じた重要度を有する。このような処理によって学習済みの符号化用ニューラルネットワーク１０は、スイッチの開閉状態に応じて可変のサイズの符号を出力することができる。また、学習済みの復号用ニューラルネットワーク６０は、そのような符号化用ニューラルネットワーク１０が出力する符号を復号することができる。つまり、重要度の高いものからｋ個のスイッチを閉じる（ＯＮにする）ことで、伝送システム１００は、ｋの値に応じた精度およびレートの符号化伝送を行うことができる。なお、ｋの値が大きいほど、高精度且つ高レートである。
【００７８】
つまり、本実施形態における学習方法は、ニューラルネットワークの学習方法であって、前記ニューラルネットワークは、第１部分ニューラルネットワーク（符号化用ニューラルネットワーク１０）と第２部分ニューラルネットワーク（復号用ニューラルネットワーク６０）とを含んで構成されており、前記第１部分ニューラルネットワークは、入力層の１個以上の素子と、中間層の０個以上の素子と、出力層の１個以上の素子とを備え、前記第１部分ニューラルネットワーク内の少なくとも一部の前記素子の出力が当該素子の入力または前記第１部分ニューラルネットワーク内の他の前記素子の入力に接続されたものであり、前記第１部分ニューラルネットワークの出力層の前記素子のうちの少なくとも一部の素子の出力に接続されたスイッチの開閉を制御可能とし、前記第２部分ニューラルネットワークは、入力層の１個以上の素子と、中間層の０個以上の素子と、出力層の１個以上の素子とを備え、前記第２部分ニューラルネットワーク内の少なくとも一部の前記素子の出力が当該素子の入力または前記第２部分ニューラルネットワーク内の他の前記素子の入力に接続されたものであり、前記第１部分ニューラルネットワークの入力層の前記素子に学習用信号値を与えて、前記第１部分ニューラルネットワークの順伝播を行い、前記第１部分ニューラルネットワークの出力層の前記素子のうちの前記スイッチに接続されていない素子の出力値と、前記第１部分ニューラルネットワークの出力層の前記素子のうちの閉状態の前記スイッチに接続された素子の出力値とを、前記第２部分ニューラルネットワークの入力層のそれぞれ対応する前記素子に与え、前記第１部分ニューラルネットワークの出力層の前記素子のうちの開状態の前記スイッチに接続された素子に対応する前記第２部分ニューラルネットワークの入力層の前記素子には、当該素子が有効な素子以外の素子であることを表す値を与え、前記第２部分ニューラルネットワークの順伝播を行い、前記第２部分ニューラルネットワークの出力層の前記素子から出力される出力値と、前記学習用信号値との間の差異を求め、前記差異に基づく誤差信号値を誤差逆伝播法により逆伝播することによって前記第２部分ニューラルネットワークおよび前記第１部分ニューラルネットワークの各素子のパラメーター値を更新し、ただし前記逆伝播において、開状態の前記スイッチが付随する素子間結合においては当該素子が有効な素子以外の素子であることを表す値を逆伝播させる、学習方法であって、複数の前記学習用信号値を与える際に、前記スイッチの開閉状態を変える場合がある学習方法である。
【００７９】
なお、上述した実施形態における符号化装置１や復号装置２の機能の少なくとも一部を、コンピューターで実現するようにしても良い。例えば、符号化装置１や復号装置２がそれぞれ備えるニューラルネットワークの機能のみをコンピューターで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピューター読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピューターシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピューターシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＵＳＢメモリー等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリーのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【００８０】
以上、実施形態を説明したが、本発明はさらに次のような変形例でも実施することが可能である。
［変形例１］
上記の実施形態では、符号化装置１から出力される符号を、通信回線等によって伝送し、復号装置２側に入力していた。変形例においては、符号化装置１から出力される符号を例えば記録媒体等に記録し、復号装置２側でその記録媒体を読み取ることによって符号を入力する。ここで、記録媒体とは、例えば、磁気ディスク装置や、ＣＤ−ＲＯＭ等の光記録媒体や、半導体メモリー等であるが、これらには限定されない。
【００８１】
［変形例２］
上記の実施形態におけるニューラルネットワーク内で、ある素子から出力される出力値が、自素子の入力の一つに接続されていてもよい。また、ある素子から出力される出力値が、祖の素子よりも上流に位置する素子の入力の一つに接続されていてもよい。また、ある素子の出力値を、自素子または他の素子の入力の一つに接続するとき、前段の出力値が即座に次段の入力値となってもよいし、前段の出力値が所定量の遅延を以て次段の入力値として反映されるようにしてもよい。
【００８２】
以上、説明した実施形態および変形例によれば、ニューラルネットワークにおいて、少なくとも一部の前記素子の出力に前記スイッチが設けられ、前記スイッチが設けられた前記素子に関しては前記スイッチからの出力の少なくとも一部が、または前記スイッチが設けられていない前記素子に関しては当該素子からの出力の少なくとも一部が、当該素子の入力または他の前記素子の入力に接続されるようにする。これにより、ニューラルネットワーク内の一部回路をスイッチにより切り離すことで、回帰の近似精度と内部状態のエントロピーの関係を制御可能とすることができる。つまり、信号の量を可変に制御することができる。
【００８３】
また、そのようなニューラルネットワークを利用した符号化装置は、入力された符号化対象の信号値列の非可逆圧縮を実現することができる。そして、符号化装置が出力する符号のサイズを可変に制御することが可能となる。
また、上記の符号化装置から出力された符号を、復号することができる。即ち非可逆圧縮された情報を伸長することが可能となる。
【００８４】
また、本実施形態では、スイッチの開閉のデューティ比に応じて、ニューラルネットワーク全体に対する各素子の寄与を人為的に調整することが可能となる。
また、本実施形態では、学習処理の結果として、各素子の寄与を調整することができる。また、寄与の低い素子ほど優先的にニューラルネットワークから切り離すことで、入力信号値列の非可逆圧縮時において、そのレート歪特性（近似精度と情報量との関係）を改善することができる。
【００８５】
以上、この発明の実施形態および変形例について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【産業上の利用可能性】
【００８６】
本発明は、情報を伝送するために利用することができる。一例として、映像あるいは画像や、音声（音楽等を含む）を、通信によって配信したり、記録媒体に記録して頒布したりする事業に利用することができる。ただし、利用可能性は、ここに例示したものには限定されない。
【符号の説明】
【００８７】
１  符号化装置
２  復号装置
１０  符号化用ニューラルネットワーク（第１部分ニューラルネットワーク）
２０  レート制御部（制御部）
３１、３２、３３、３４  スイッチ
４０  送信部
５０  受信部（符号取得部）
６０  復号用ニューラルネットワーク（第２部分ニューラルネットワーク）
７０  接続部
８０  数値列発生部
９０  減算部
１００  伝送システム
【図１】
2019016166.tif 000008
【図２】
2019016166.tif 000009
【図３】
2019016166.tif 000010
【図４】
2019016166.tif 000011
【図５】
2019016166.tif 000012
【図６】
2019016166.tif 000013