JP7723331B2 - 学習装置、自己符号化装置、学習方法、自己符号化方法及びプログラム - Google Patents

学習装置、自己符号化装置、学習方法、自己符号化方法及びプログラム

Info

Publication number
JP7723331B2
JP7723331B2 JP2024528210A JP2024528210A JP7723331B2 JP 7723331 B2 JP7723331 B2 JP 7723331B2 JP 2024528210 A JP2024528210 A JP 2024528210A JP 2024528210 A JP2024528210 A JP 2024528210A JP 7723331 B2 JP7723331 B2 JP 7723331B2
Authority
JP
Japan
Prior art keywords
main data
encoding
vector
unit
learning
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2024528210A
Other languages
English (en)
Other versions
JPWO2023248427A1 (ja
Inventor
忍 工藤
正樹 北原
幸浩 坂東
崇元 佐々木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Inc
NTT Inc USA
Original Assignee
Nippon Telegraph and Telephone Corp
NTT Inc USA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp, NTT Inc USA filed Critical Nippon Telegraph and Telephone Corp
Publication of JPWO2023248427A1 publication Critical patent/JPWO2023248427A1/ja
Application granted granted Critical
Publication of JP7723331B2 publication Critical patent/JP7723331B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

本発明は、学習装置、自己符号化装置、学習方法、自己符号化方法及びプログラムに関する。
深層学習を用いたデータ圧縮において量子化処理にはスカラー量子化とベクトル量子化の2種類があり、ベクトル量子化の方が、圧縮性能が高い。ベクトル量子化の試みとして、以下の非特許文献1や非特許文献2に記載の試みがある。非特許文献1に記載の技術は、VQVAEと呼称される技術である。非特許文献1に記載の技術では、End-to-Endでの学習はせず、特徴ベクトルの分布を一様分布と仮定して、エンコード及びデコードの最適化と代表ベクトルの最適化とを分けて実施する。非特許文献2の技術は、Soft to Hardと呼称される技術である。非特許文献2の技術は、ソフトマックス関数を用いて量子化処理を近似計算し、代表ベクトルの生起確率をヒストグラムで近似してEnd-to-Endでの学習を行う。
しかしながら非特許文献1に記載の技術や非特許文献2の技術など従来の技術は、ベクトル量子化を用いた自己符号化の処理を得ることに関する問題があった。問題は、例えば安定性の問題であったり、例えば処理性能の問題であったり、例えばベクトルの次元が大きい場合や高レートでの符号化を行う場合に計算量又はメモリ使用量が爆発的に増加してしまう問題であったりであった。このように従来の技術では、ベクトル量子化を用いた自己符号化の処理を得ることに要する負担が大きい場合があった。その結果、コンピュータ資源の不足によりベクトル量子化を用いた自己符号化を実現できないなど、ベクトル量子化を用いた自己符号化に要する負担が大きい場合があった。
上記事情に鑑み、本発明は、ベクトル量子化を用いた自己符号化に要する負担を軽減する技術を提供することを目的としている。
本発明の一態様は、ベクトル量子化を用いた自己符号化の処理であり、自己符号化の対象の特徴量である主データ特徴量と、前記主データ特徴量の特徴量である補助特徴量とを用いる自己符号化の処理であり、前記主データ特徴量をベクトル量子化した結果に対するエントロピー符号化と前記補助特徴量をスカラー量子化した結果に対するエントロピー符号化とを行う自己符号化の処理、における符号化と復号との処理を学習により更新する学習部、を備え、前記学習部は前記学習において、前記主データ特徴量を示すベクトルの生起確率を推定する主データ側確率推定処理を実行し、前記主データ側確率推定処理は、代表ベクトルが格子状に配置されたベクトル空間においてパラメトライズされた確率密度関数の積分を表すモンテカルロ積分の値であって前記ベクトル空間におけるボロノイ領域のモンテカルロ積分の値の足し合わせの結果であり、前記確率密度関数の平均を表す前記ベクトル空間内の位置である平均位置に近いボロノイ領域の順に前記モンテカルロ積分の値を足し合わせた結果、が1より大きい場合に足し合わされたボロノイ領域のうち主データ特徴量を示すベクトルの位置から最も近いボロノイ領域のモンテカルロ積分の値を、前記主データ特徴量を示すベクトルの生起確率、として推定する、学習装置である。
本発明の一態様は、自己符号化の対象を取得する自己符号化対象取得部と、ベクトル量子化を用いた自己符号化の処理であり、自己符号化の対象の特徴量である主データ特徴量と、前記主データ特徴量の特徴量である補助特徴量とを用いる自己符号化の処理であり、前記主データ特徴量をベクトル量子化した結果に対するエントロピー符号化と前記補助特徴量をスカラー量子化した結果に対するエントロピー符号化とを行う自己符号化の処理、における符号化と復号との処理を学習により更新する学習部、を備え、前記学習部は前記学習において、前記主データ特徴量を示すベクトルの生起確率を推定する主データ側確率推定処理を実行し、前記主データ側確率推定処理は、代表ベクトルが格子状に配置されたベクトル空間においてパラメトライズされた確率密度関数の積分を表すモンテカルロ積分の値であって前記ベクトル空間におけるボロノイ領域のモンテカルロ積分の値の足し合わせの結果であり、前記確率密度関数の平均を表す前記ベクトル空間内の位置である平均位置に近いボロノイ領域の順に前記モンテカルロ積分の値を足し合わせた結果、が1より大きい場合に足し合わされたボロノイ領域のうち主データ特徴量を示すベクトルの位置から最も近いボロノイ領域のモンテカルロ積分の値を、前記主データ特徴量を示すベクトルの生起確率、として推定する、学習装置を用いて得られた、学習済みの符号化の処理と学習済みの復号の処理とを用いて、前記自己符号化対象取得部が取得した前記対象のベクトル量子化による自己符号化を行う自己符号化実行部と、を備える自己符号化装置である。
本発明の一態様は、ベクトル量子化を用いた自己符号化の処理であり、自己符号化の対象の特徴量である主データ特徴量と、前記主データ特徴量の特徴量である補助特徴量とを用いる自己符号化の処理であり、前記主データ特徴量をベクトル量子化した結果に対するエントロピー符号化と前記補助特徴量をスカラー量子化した結果に対するエントロピー符号化とを行う自己符号化の処理、における符号化と復号との処理を学習により更新する学習ステップ、を有し、前記学習ステップは前記学習において、前記主データ特徴量を示すベクトルの生起確率を推定する主データ側確率推定処理を実行し、前記主データ側確率推定処理は、代表ベクトルが格子状に配置されたベクトル空間においてパラメトライズされた確率密度関数の積分を表すモンテカルロ積分の値であって前記ベクトル空間におけるボロノイ領域のモンテカルロ積分の値の足し合わせの結果であり、前記確率密度関数の平均を表す前記ベクトル空間内の位置である平均位置に近いボロノイ領域の順に前記モンテカルロ積分の値を足し合わせた結果、が1より大きい場合に足し合わされたボロノイ領域のうち主データ特徴量を示すベクトルの位置から最も近いボロノイ領域のモンテカルロ積分の値を、前記主データ特徴量を示すベクトルの生起確率、として推定する、学習方法である。
本発明の一態様は、上記の学習装置としてコンピュータを機能させるためのプログラムである。
本発明により、ベクトル量子化を用いた自己符号化に要する負担を軽減することが可能となる。
実施形態の学習装置の概要を説明する説明図。 実施形態におけるLatticeVQを説明する説明図。 実施形態におけるノイズの付与の一例を説明する第1の説明図。 実施形態におけるノイズの付与の一例を説明する第2の説明図。 実施形態における累積分布関数と生起確率との関係を説明する説明図。 実施形態における超直方体分割を説明する説明図。 実施形態における学習部が実行する処理の流れの一例を示す図。 実施形態における自己符号化装置の概要を説明する第1の説明図。 実施形態における自己符号化装置の概要を説明する第2の説明図。 実施形態におけるエンコーダが実行する処理の流れの一例を示すフローチャート。 実施形態におけるデコーダが実行する処理の流れの一例を示すフローチャート。 実施形態における学習装置のハードウェア構成の一例を示す図。 実施形態における学習装置が備える制御部の構成の一例を示す図。 実施形態における自己符号化装置のハードウェア構成の一例を示す図。 実施形態における自己符号化装置が備える制御部の構成の一例を示す図。 変形例における学習ネットワークの構成の一例を説明する説明図。 変形例における学習部が実行する処理の流れの一例を示すフローチャート。
(実施形態)
図1は、実施形態の学習装置1の概要を説明する説明図である。学習装置1は、学習部10を備える。学習部10は、テンソルで表現されたデータのベクトル量子化を用いた自己符号化の性能が高まるように、学習を行う。なお、自己符号化の性能は元データと復元データの誤差Dとデータの符号量Rをラグランジュ定数λで重み付け和した量であるRDコスト(D+λR)の小ささで評価される。RD性能はRDコストが小さいほどよいことを表す。なお、学習は、機械学習を意味する。学習は、例えば深層学習である。なお、よく知られているようにデータの自己符号化とはデータの圧縮を意味する。
学習部10は、学習ネットワーク100と最適化部113とを備える。学習ネットワーク100は、ニューラルネットワークである。学習ネットワーク100は、主データ取得部101、主データ側符号化部102と、補助データ側符号化部103と、主データ側ノイズ付与部104と、補助データ側ノイズ付与部105と、補助データ側確率推定部106と、補助データ側復号部107と、補助エントロピー取得部108と、主データ側確率推定部109と、主エントロピー取得部110と、主データ側復号部111と、再構成誤差算出部112と、を備える。詳細は後述するが最適化部113は、学習ネットワーク100の出力に基づいて学習ネットワーク100を更新する。
主データ取得部101は、テンソルで表現されたデータを主データとして取得する。テンソルで表現されたデータとは、例えば画像のデータである。テンソルで表現されたデータは、例えば1又は複数のチャネルの音声の時系列のデータであってもよい。テンソルで表現されたデータは、例えば点群データであってもよい。テンソルで表現されたデータは、例えば機械学習で使われるセンサデータであってもよい。以下、主データ取得部101が取得したデータを主データという。
主データ側符号化部102は、主データ特徴量取得処理を実行する。主データ特徴量取得処理は主データを符号化する処理である。符号化とは符号化の対象の特徴を示す情報を取得する処理であるので、符号化とは特徴量を示す情報を取得する処理である。
したがって、主データ側符号化部102による主データの符号化とは主データの特徴量を取得する処理である。そのため主データ特徴量取得処理は、主データ特徴量を取得する処理である。主データ特徴量は符号化された主データである。主データ特徴量取得処理の内容は、学習により更新される。すなわち、主データ側符号化部102の実行する処理の内容は、学習により更新される。
補助データ側符号化部103は、主データ特徴量をさらに符号化する。上述したように符号化とは特徴量を示す情報を取得する処理であるので、補助データ側符号化部103による主データ特徴量の符号化とは主データ特徴量の特徴量を取得する処理である。そこで、以下、符号化された主データがさらに符号化された情報を補助特徴量という。すなわち補助特徴量は、主データ特徴量の特徴量を示す情報である。補助特徴量は、主データ特徴量が符号化された情報であるので、補助特徴量のエントロピーは主データ特徴量よりもエントロピーの小さな情報である。
以下、主データ特徴量を符号化する処理を、補助特徴量取得処理という。補助特徴量取得処理の内容は学習により更新される。すなわち、補助データ側符号化部103の実行する処理の内容は、学習により更新される。
補助特徴量取得処理の内容は、主データ統計量情報の情報量がより多く補助特徴量に含まれるように学習により更新される。主データ統計量情報は、主データを表現するテンソルの各要素の値が従う各確率分布の統計量を示す情報である。確率分布の統計量は、例えば散布度である。確率分布の統計量は、散布度だけでなく散布度と代表値との組であってもよい。
なお、情報処理や情報理論の分野において説明されるように、英文に出現する各ローマ字の出現の確率分布などのようにデータは一般に確率分布に従って出現する。主データを表現するテンソルの各要素の値もまた確率分布に従う。
主データ側ノイズ付与部104は、ノイズ付き主データ特徴量取得処理を実行する。ノイズ付き主データ特徴量取得処理は、主データ特徴量に対してベクトルノイズ付与処理を実行する処理である。ベクトルノイズ付与処理は、要素の数が予め定められた数K(Kは2以上の整数)であるK次元ベクトル(以下「ノイズ付与対象ベクトル」という。)を処理対象とする処理であって、処理対象に対してノイズを付与する処理である。したがって、ノイズ付き主データ特徴量取得処理は、主データ特徴量にノイズが付与された情報(以下「ノイズ付き主データ特徴量」という。)を取得する処理である。
ノイズ付与対象ベクトルは具体的には、主データ特徴量を表現するテンソルに含まれるK次元ベクトルである。テンソルに含まれるK次元ベクトルとは、そのベクトルのk番目の要素(kは1以上K以下の整数)が、テンソルの全要素のうちの連続するK個の要素のうちのk番目の要素である、ベクトルを意味する。
ノイズ付与対象ベクトルの要素数Kは、学習部10による学習の結果を用いたベクトル量子化を行う装置によるベクトル量子化によって、1つの符号に写像される要素の数である。以下、学習部10による学習の結果を、ネットワーク学習結果、という。したがって、ネットワーク学習結果を用いたベクトル量子化によってK個の要素がまとめて1つの符号に写像される場合、ノイズ付与対象ベクトルの要素数はKである。なお、量子化によってK個の要素がまとめて1つの符号に写像される場合、得られる符号はK次元のベクトルを示すインデックスである。
したがって、ノイズ付与対象ベクトルの要素数Kは、予め決定された数である。なお、データのベクトル量子化とはデータの符号化であるので、ネットワーク学習結果を用いたベクトル量子化とはネットワーク学習結果を用いたデータの符号化を意味する。
ここでノイズを付与する方法について説明するが、ノイズの付与の説明に先立ち、LatticeVQについて説明する。
<LatticeVQ>
ベクトル量子化では代表ベクトルが必要である。Latticeは、ベクトル空間における格子点集合である。LatticeVQは、ベクトル空間において代表ベクトルを格子状に配置する場合のベクトル量子化である。すなわち、LatticeVQは、ベクトル空間において代表ベクトルが格子状に配置されるという条件を満たすベクトル量子化である。LatticeVQは特定の条件を除いて、スカラー量子化よりもRD性能が良いことが知られている。
図2は、実施形態におけるLatticeVQを説明する説明図である。より具体的には、図2は、ノイズ付与対象ベクトルの要素数が2である場合のLatticeVQを説明する説明図である。
図2は、A格子の例である。2次元の場合、格子の種類の1つとしてA格子がある。なお8次元の場合、格子の種類の1つとして、E格子がある。なお24次元の場合、格子の種類の1つとして、リーチ格子があり、それぞれ一様分布に対してRD性能を最大にするLatticeVQの格子である。
以下、代表ベクトルが格子状に配置された空間を格子空間という。すなわち、代表ベクトルは、格子空間の各格子点に位置する。図2は格子空間の一例を示す図でもある。図2の例では格子空間は2次元であるが、代表ベクトルがK次元であれば格子空間もK次元である。
<ノイズの付与>
それでは図3及び図4を用いてノイズの付与の一例を、要素数が2の場合を例に説明する。図3は、実施形態におけるノイズの付与の一例を説明する第1の説明図である。図4は、実施形態におけるノイズの付与の一例を説明する第2の説明図である。
ノイズの付与に際してはまず、原点格子の格子単位領域(以下「対象格子単位領域」という。)に外接する(K-1)次元球面内に一様分布するランダムなK次元ベクトルを複数生成し、格子空間に配置する。例えば図4の例であれば、ノイズ付与に際してはまず、図4の内部点数が少なくとも1つ以上になるまで生成される。格子単位領域は、格子空間を分割条件が満たされるように複数の領域に分割した結果生じた各領域である。
分割条件は、各領域の大きさ及び形状が同一であり、各領域はそれぞれ格子空間の1つの格子点を含むという条件である。したがって、格子単位領域は、代表ベクトルが格子状に配置されたベクトル空間を分割する領域であってベクトル空間の1つの格子点を含む領域である。
なお、(K―1)次元球面は、K=2であれば円であり、K=3であれば球面であり、Kが4以上であれば、超球面である。図3の領域B1が対象格子単位領域の一例である。
図3及び図4の例において、格子単位領域は、ボロノイ領域である。ボロノイ領域は、格子空間等の距離空間をボロノイ分割によって複数の領域に分割した結果得られる各前記領域である。
図3のノイズ点は、対象格子単位領域の外接円内に配置されたサンプルの一例である。なお、格子空間内にサンプルが配置される処理とは、具体的には、格子空間内の座標が取得される処理である。そして、格子空間における格子単位領域は格子空間内の領域であるので、任意の1つの格子単位領域の外接円内にサンプルが配置される処理とは、その外接円内の座標を取得する処理である。
次に、配置されたノイズ点のうち、対象格子単位領域内に位置するノイズ点(以下「内部点」という。)と、対象格子単位領域外に位置するノイズ点(以下「除外点」という。)と、が図4の例に示すように、区別される。内部点と除外点との区別の処理は、具体的には、ノイズ点ごとに、ノイズ点の座標に基づき対象格子単位領域内の座標か対象格子単位領域外の座標かを判定する処理である。判定処理は具体的にはノイズ点を式(11)によってベクトル量子化した結果、原点格子と一致した点が領域内の座標と判定される処理である。
次に、対象格子単位領域内位置する複数のノイズ点のうちの1つがランダムに選択される。次に、選択されたノイズ点が1つのノイズ付与対象ベクトルに付与される。付与の処理は具体的には、ノイズ付与対象ベクトルと選択されたノイズ点を示す位置ベクトルとが足し算される処理を意味する。
このように、選択されたノイズ点を示す位置ベクトルは乱数で決まる量であるので、ノイズの一種である。そして、選択されたノイズ点を示す位置ベクトルはベクトルで表現されるので、選択されたノイズ点を示す位置ベクトルはベクトルで表現されたノイズである。そこで、以下、選択されたノイズ点を示す位置ベクトルをノイズベクトルという。このようにしてノイズ付与対象ベクトルにはノイズが付与される。
図1の説明に戻る。補助データ側ノイズ付与部105は、ノイズ付き補助特徴量取得処理を実行する。ノイズ付き補助特徴量取得処理は、補助特徴量に対してノイズを付与する処理である。すなわち、ノイズ付き補助特徴量取得処理は、補助特徴量に対してスカラーのノイズが付与された情報(以下「ノイズ付き補助特徴量」という。)を取得する処理である。より具体的には、補助データ側ノイズ付与部105は、補助特徴量を示すテンソルの各要素にスカラーのノイズを付与する。スカラーのノイズは例えば、-1/2以上1/2以下の一様ノイズである。
補助データ側確率推定部106は、補助データ側確率推定処理を実行する。補助データ側確率推定処理は、ノイズ付き補助特徴量に基づき補助データ側確率を推定する処理である。補助データ側確率は、補助特徴量を示すテンソルの各要素の生起確率を示す情報である。補助特徴量を示すテンソルの各要素の生起確率の推定には補助特徴量を示すテンソルの各要素の確率分布の情報が用いられる。
補助特徴量を示すテンソルの各要素の確率分布が予め与えられた確率分布である場合には、補助データ側確率推定部106は、その予め与えられた確率分布を後述する記憶部14等の所定の記憶装置からの読み出し等によって取得する。そして、補助データ側確率推定部106は、取得した確率分布に基づいて補助特徴量を示すテンソルの各要素の生起確率を推定する。なお、予め与えられた確率分布は、例えば累積分布関数を用いて表現された確率分布である。
補助特徴量を示すテンソルの各要素の確率分布が、パラメトライズド補助特徴量累積分布関数で表現される場合、補助データ側確率推定部106は、パラメトライズド補助特徴量累積分布関数に基づいて、補助特徴量を示すテンソルの各要素の生起確率を推定する。パラメトライズド補助特徴量累積分布関数は、補助特徴量を示すテンソルの各要素の確率分布を示す関数であってパラメトライズされた関数である。パラメトライズド補助特徴量累積分布関数のパラメータは、具体的には、補助特徴量を示すテンソルの各要素の確率分布を表す統計量に応じて変化するパラメータである。
パラメトライズド補助特徴量累積分布関数のパラメータの値は学習によって更新される。すなわち、補助データ側確率推定部106の実行する処理の内容は、学習により更新される。
パラメトライズされた累積分布関数は、例えばパラメトライズされたシグモイド関数やソフトプラス関数である。上述したようにパラメトライズド補助特徴量累積分布関数のパラメータの値は学習により更新されるので、パラメトライズされた累積分布関数のパラメータの値は学習により更新される。
ここで、累積分布関数と生起確率との関係を確率変数が1次元の場合を例に説明する。図5は、実施形態における累積分布関数と生起確率との関係を説明する説明図である。画像G1は、確率変数qの確率密度を示す確率密度関数の一例を示す画像である。Δは量子化のステップサイズを示す。画像G1は、値qを中心にした定義域内の範囲Δで確率密度関数を積分した値が値qの生起確率p(q)であることを示す。図5のような1次元の場合、ステップサイズΔは例えば閉区間[-1/2、1/2]の大きさ(すなわち1)である。
画像G2は、画像G1の確率密度関数の積分の結果として得られた累積分布関数cdf(q)である。このように、確率密度関数の積分の結果は、シグモイド関数等の単調増加関数で表される。なお、確率密度関数の積分の結果は、確率密度関数の形状によらずシグモイド関数等の単調増加関数で表される。より具体的には、累積分布関数は、cdf(-∞)=0という条件と、cdf(∞)=1という条件と、cdf(q)のqについての微分値が0以上という条件とを満たす関数である。
画像G2は、生起確率p(q)がcdf(q+Δ/2)-cdf(q-Δ/2)に等しいことを示す。図1の説明に戻る。
補助データ側復号部107は、補助特徴量復号処理を実行する。補助特徴量復号処理は補助特徴量に基づいて得られた情報を処理対象とする処理であって、処理対象を復号する処理である。補助データ側復号部107が実行する補助特徴量復号処理の処理対象は、ノイズ付き補助特徴量である。以下、ノイズ付き補助特徴量が復号された情報を補助データという。したがって、補助データ側復号部107は、ノイズ付き補助特徴量を復号することで補助データを取得する。
上述したように学習により補助特徴量取得処理の内容が更新されるほど、RDコストが小さくなる。したがって、補助特徴量取得処理の内容が更新されるほど、補助データが含み得る主データ統計量情報の情報量の最大量も増大する。
補助特徴量復号処理の内容は、RDコストが小さくなるように、学習により更新される。すなわち、補助データ側復号部107の実行する処理の内容は、学習により更新される。
補助エントロピー取得部108は、補助データ側確率推定部106の推定の結果である補助データ側確率に基づき、補助エントロピーを取得する。補助エントロピーは、補助特徴量のエントロピーである。
主データ側確率推定部109は、主データ側確率推定処理を実行する。主データ側確率推定処理は、ノイズ付き主データ特徴量と補助データとに基づき主データ側確率を推定する処理である。主データ側確率は、主データ特徴量を示すテンソルの各要素の生起確率を示す情報である。主データ特徴量を示すテンソルの各要素の生起確率の推定には主データ特徴量を示すテンソルの各要素の確率分布の情報が用いられる。
主データ特徴量を示すテンソルの各要素の確率分布が、パラメトライズド主データ特徴量累積分布関数を用いて表現される場合、主データ側確率推定部109は、パラメトライズド主データ特徴量累積分布関数に基づいて、主データ特徴量を示すテンソルの各要素の生起確率を推定する。
パラメトライズド主データ特徴量累積分布関数は、主データ特徴量を示すテンソルの各要素の確率分布を示す累積分布関数であってパラメトライズされた累積分布関数である。確率分布は例えばガウス分布である。
パラメトライズド主データ特徴量累積分布関数のパラメータは、具体的には、主データ特徴量を示すテンソルの各要素の確率分布を表す統計量である。したがって、学習においてパラメトライズド補助特徴量累積分布関数のパラメータの値としては、補助データの示す値が用いられる。
例えば確率分布がガウス分布である場合には、学習済みの学習ネットワーク100において得られる補助データはガウス分布の代表値と散布度とを示す。
<生起確率の推定>
主データ側確率推定処理について一例を説明する。より具体的には、上述したLatticeVQを用いる場合の主データ側確率推定処理の一例を説明する。主データの各ベクトルはベクトル量子化が行われた際には、代表ベクトルの1つで表される。したがって、LatticeVQを用いる場合の主データ側確率推定処理の説明とは、さらに具体的には、LatticeVQを用いる場合の代表ベクトルの生起確率を推定する処理の説明である。以下、代表ベクトルの生起確率を推定する処理を、代表ベクトル生起確率推定処理という。代表ベクトル生起確率推定処理は主データ側確率推定処理の一例である。
<代表ベクトル生起確率推定処理の一例>
上述したように、主データ側確率推定処理では、パラメトライズド主データ特徴量累積分布関数が用いられる。また、上述したようにパラメトライズド主データ特徴量累積分布関数は、具体的にはパラメトライズされた累積分布関数である。さらに、上述したように累積分布関数とは確率密度関数を積分した結果である。したがって、代表ベクトル生起確率推定処理は累積分布関数を用いる処理である。そして、代表ベクトル生起確率推定処理で累積分布関数が用いられるとは、パラメトライズされた確率密度関数を格子単位領域で積分した結果が用いられることを意味する。
ところでボロノイ領域は、上述したように格子単位領域の1つである。ボロノイ分割はよく知られた領域分割の方法であるため、格子単位領域を得る際にボロノイ分割が用いられる場合が多い。しかしながら、格子空間が2次元の場合ボロノイ領域の形は上述のように6角形である。
しかしながら、多様体上の関数の積分において、積分領域を示す領域の形状が6角形である場合、積分の実行は必ずしも容易ではない。なお、積分の実行が容易とは、予め定められた精度以上の精度で積分の結果を得ることに要する演算量が少ないことを意味する。
さらに、多様体が2次元よりも高次元の場合には、ボロノイ分割の結果として得られる領域における関数の積分の実行は、2次元の場合よりも更に容易ではない。例えば4次元の場合、ボロノイ領域の形を2次元空間に描くことは難しい場合が多く、そのような多様体上での関数の積分の実行も容易では無い。このように、ボロノイ分割の結果として得られる領域を積分領域として関数の積分を実行することは必ずしも容易ではない。
したがって、代表ベクトル生起確率推定処理で用いられるパラメトライズされた累積分布関数の取得は容易ではない場合がある。
そこで代表ベクトル生起確率推定処理では例えば、ボロノイ分割に代えて超直方体分割の結果を用いて得られたパラメトライズされた累積分布関数を用いる。超直方体分割は、形状が超直方体の格子単位領域で格子空間を分割する処理である。なお、2次元の超直方体は矩形であり、3次元の超直方体は直方体である。
図6は、実施形態における超直方体分割を説明する説明図である。より具体的には、図6は2次元の格子空間に対する超直方体分割の結果の一例を、ボロノイ分割の結果の一例とともに示す図である。図6における“真の領域”と“近似領域”とはいずれも格子単位領域の例である。
“真の領域”はボロノイ分割の結果の領域である。すなわち、“真の領域”はボロノイ領域である。“真の領域”は、6角形の格子単位領域である。“近似領域”は超直方体分割の結果の格子単位領域である。
“近似領域”の形状は直方体である。図6に示す2種類の分割の結果のうち、主データ側確率推定部109が実行する超直方体分割の結果の一例は、“近似領域”による分割の結果である。図6におけるSは“近似領域”の形状である直方体の辺の長さであって、2次元の格子空間の1次元目の辺の長さを示し、Sは2次元目の辺の長さを示す。
1次元目の辺の長さとは、格子空間における直方体を直交する2つの斜影空間に射影した際の一方の斜影空間における直方体の長さを意味する。2次元目の辺の長さとは、他方の斜影空間における直方体の長さを意味する。なお、以下の説明において、N次元の格子空間における超直方体のn次元目の辺の長さとは、超直方体を直交するN個の1次元の斜影空間に射影した際のn番目の斜影空間における超直方体の長さを意味する。なお、斜影空間における超直方体は、直線である。
ところで、2次元以上の領域を積分領域とする積分は反復積分で得られる。N次元の超直方体を積分領域とする関数の積分では関数に対してN回の積分を行う反復積分が実行される。超直方体の場合、N回の各積分の積分領域を超直方体の辺とする反復積分の実行が可能である。
そして、N回の各積分の積分領域を超直方体の辺とする反復積分を実行する場合、各積分は他の積分の結果に影響されない。一方、超直方体ではない超多面体の場合、反復積分の各積分は他の積分の結果に影響される。そのため、格子単位領域の形が超直方体である場合、格子単位領域の形が超直方体ではない超多面体の場合よりも、積分の実行が容易である。
図6の例では“真の領域”は形状が6角形であり“近似領域”の形状は直方体であるため、“近似領域”を積分領域とする積分の実行は、“真の領域”を積分領域とする積分よりも容易である。
超直方体分割の結果得られた超直方体を積分領域としてパラメトライズされた累積分布関数を得る場合、反復積分の各積分において1次元の確率密度関数であって他の次元の影響を受けない確率密度関数の積分が実行される。
学習ネットワーク100においては、反復積分の対象である確率密度関数は、予め定められた種類の分布を示す関数であり、パラメトライズされた関数である。予め定められた種類の分布は、ガウス分布である。確率密度関数のパラメータの値は補助データに応じた値である。パラメトライズされた累積分布関数は、確率密度関数に対して超直方体分割で得られた超直方体を積分領域とする反復積分を実行することで得られる。学習ネットワーク100において、確率密度関数のパラメータの値は補助データの値であるので、このようにして得られたパラメトライズされた累積分布関数は補助データに応じた関数である。
代表ベクトル生起確率推定処理では、このようにして予め得られた累積分布関数のパラメータに補助データの値を代入することが実行される。代表ベクトル生起確率推定処理では、このようにして得られた累積分布関数を用いて代表ベクトルの生起確率を推定する。
なお代表ベクトル生起確率推定処理では、例えば以下の式(1)及び式(2)の表す処理の実行により代表ベクトルの生起確率が推定される。なお式(2)における累積分布関数cdfは反復積分の各積分で得られた各累積分布関数を表す。m次元(mは自然数)の累積分布関数を1つの次元について積分した結果は、(m-1)次元の累積分布関数である。
式(1)の右辺がパラメトライズド主データ特徴量累積分布関数を用いて得られる生起確率の一例である。式(1)は式(2)の累積分布関数cfdを介してパラメトライズされた関数である。式(2)は確率密度関数を格子単位領域の1次元方向に積分した結果得られた累積分布関数である。式(1)は式(2)で得られた各次元の生起確率の積である。したがって、式(1)は、格子単位領域全面で確率密度関数を積分した結果を用いて表された生起確率である。
iは、各格子点を識別する識別子である。jは、格子空間の各次元を意味する。式(1)の左辺は、代表ベクトルの生起確率を示す。各格子点はそれぞれ代表ベクトルを示すので、各格子点における生起確率pとは、各代表ベクトルの生起確率pを意味する。Δは、格子単位領域の識別子jで表される次元の長さを意味する。格子単位領域の形状及び大きさは予め定められているので、Δは予め定められた長さである。
なお、以下の式(3)で表されるハット記号が付与されたyは、ノイズ付き主データ特徴量を意味する。以下、ハット付きの記号AをA^と記載する。したがった、例えば以下の式(3)で表されたハット付きの記号yは、y^である。
式(1)は、生起確率pは次元ごとに得られた確率p[j]の積で表現される、ことを示す。仮に格子単位領域の形状が超直方体ではない場合には、生起確率pは次元ごとに得られた確率p[j]の簡単な積で表現されない。したがって、格子単位領域の形状が超直方体であるので、主データ側確率推定部109は式(1)及び式(2)が示すように生起確率pの取得が容易である。
なお上記式(1)と(2)とは、次元間の共分散が0である場合を仮定して得られた式である。しかしながら、格子単位領域の形状が超直方体である場合、格子空間の座標軸を超直方体の各辺に平行なように回転させれば次元間の共分散を0にすることができる。したがって式(1)と式(2)とは次元間の共分散が0では無い場合であっても、座標軸の回転により成り立つ式である。なお、線形代数でよく知られた事実であるが、座標軸の回転はユニタリ変換であるので式(1)と式(2)の内容を変える変換ではない。なお、共分散を0にする処理とは、次元間の分散を表す行列を対角化する処理である。
このように、主データ側確率推定処理は、パラメトライズされた確率密度関数が、形状が超直方体である格子単位領域を積分領域として積分された結果を用いて、主データ特徴量を示すテンソルの各要素の生起確率を推定する。なお、主データ特徴量を示すテンソルの各要素の生起確率とは、主データ特徴量を表す代表ベクトルの生起確率である。
<超直方体の範囲の決定の処理>
ここまで、格子単位領域として超直方体を用いることを説明してきたが、その超直方体の形状及び大きさをどのように決めるのか、その処理については触れてこなかった。ここで、超直方体であるという条件は少なくとも満たす格子単位領域について、その形状及び大きさを決める処理(以下「超直方体決定処理」という。)の一例を説明する。
超直方体決定処理では、まず原点格子の隣接格子が算出される。なお、原点格子とは、格子空間の原点に位置する格子点である。隣接格子は、原点の隣の格子点である。次に超直方体決定処理では、超直方体決定条件を満たす超直方体が算出される。超直方体決定条件は、原点格子の格子単位領域が各隣接格子の格子単位領域と重ならないという条件と、超直方体の体積がボロノイ領域の体積に等しい、という条件とを含む条件である。
超直方体決定処理の具体例として、8次元のE8格子空間における超直方体の形状及び大きさの決定に用いられる条件について説明する。原点格子の隣接格子は、以下の2種類が存在する。1つは、[±1、0]である。他の1つは、[±(1/2)]である。ここで、上付き文字は、次元の数を示す。例えば[1、0]は、[1、1、0、0、0、0、0、0]を意味する。なお、上記の大カッコ[]は、ベクトルを表す。
<超直方体を示す記法について>
超直方体[s 、s ・・・s ]における上付き文字は、1次元目からa次元目までの各辺の長さがsであり、(a+1)次元目から(a+b)次元目までの各辺の長さがsであり、ということを示す。このように、上付き文字を用いる記法における上付き文字は、上付き文字の添付対象の文字をsとして、一続きの次元であって上付き文字の数だけの次元について、超直方体の辺の長さが同じ長さsであることを示す。すなわちsは、一続きのa個の次元については超直方体の辺の長さがsであることを示す。なお、次元が一続きか否かの判定には次元の順番の情報が必要であるが、次元の順番は予め定められた順番である。
なお[±1、0]における“±”は、+1の場合と-1の場合とが存在することを示す。したがって、[±1、0]は、具体的には、[1、1、0]と、[-1、1、0]と、[1、-1、0]と、[-1、-1、0]との4つのベクトルを意味する。
8次元の格子空間における超直方体の形状及び大きさの決定の説明に戻る。各隣接格子の超直方体が原点格子の超直方体と重ならない条件は、以下の2つである。1つは超直方体の辺(要素)のうち7つ以上が1以下という条件である。他の1つは、超直方体の辺(要素)のうち1つ以上が1/2以下という条件である。
また、E8格子のボロノイ領域の体積は1なので、超直方体は、以下の式(4)の条件を満たす。
これらの条件を満たす超直方体として、8次元のE8格子空間の場合には、例えばs=[1/2、1、2]が得られる。
他の次元の場合の例を紹介する。2次元のA2格子空間の場合には、格子単位領域の範囲は、以下の式(5)で表される超直方体の囲う範囲である。
8次元のE8格子空間の場合には、格子単位領域の範囲は、以下の式(6)で表される超直方体の囲う範囲である。
24次元のリーチ格子空間の場合には、格子単位領域の範囲は、以下の式(7)で表される超直方体の囲う範囲である。
このようにして、超直方体の範囲(格子単位領域の形状及び大きさ)が決定される。図1の説明に戻る。
主エントロピー取得部110は、主データ側確率推定部109の推定の結果に基づき主データ特徴量のエントロピーを取得する。以下、主データ特徴量のエントロピーを主エントロピーという。
主データ側復号部111は、主データ特徴量復号処理を実行する。主データ特徴量復号処理は主データ特徴量に基づいて得られた情報を処理対象とする処理であって、処理対象を復号する処理である。主データ側復号部111が実行する主データ特徴量復号処理の処理対象は、ノイズ付き主データ特徴量である。主データ側復号部111の復号の処理の内容は、学習により更新される。
再構成誤差算出部112は、主データ側復号部111の復号の結果と主データ取得部101の取得した主データとの違いを算出する。以下、主データ側復号部111の復号の結果と主データ取得部101の取得した主データとの違い、を再構成誤差という。主データ側復号部111の復号の結果と主データ取得部101の取得した主データとの違いは、例えば平均二乗誤差和で表されてもよいし、バイナリークロスエントロピーで表されてもよい。
最適化部113は、補助エントロピーと主エントロピーと再構成誤差とに基づき、学習ネットワーク100を更新する。なお、補助エントロピーと主エントロピーと再構成誤差とはいずれも学習ネットワーク100の出力の例である。最適化部113は、具体的には、最適化誤差と、主エントロピーと、補助エントロピーとを小さくするように学習ネットワーク100を更新する。最適化部113が用いる目的関数は、例えば、L=D+λ(R+R)である。
記号Lは目的関数を表す。記号Dは、再構成誤差を表す。記号ラムダは予め定められた定数である。記号Rは、補助エントロピーを表す。記号Rは、主エントロピーを表す。
エントロピーの小ささは、符号長の短さを意味するので、最適化部113は、エントロピーを小さくするよう学習ネットワーク100を更新する。また、最適化誤差が小さいほど自己符号化の精度が高いことを意味するので、最適化部113は最適化誤差を小さくするよう学習ネットワーク100を更新する。
例えば学習ネットワーク100の更新は、目的関数Lの最小化問題を解くことが勾配法を用いて行われる。すなわち、例えば誤差逆伝搬法により学習ネットワーク100の各パラメータの値が更新されることで学習ネットワーク100が更新される。
学習ネットワーク100の更新とは具体的には、主データ側符号化部102、補助データ側符号化部103、補助データ側確率推定部106、補助データ側復号部107及び主データ側復号部111の処理の内容を更新することを意味する。
<自己符号化と学習ネットワーク100との関係>
ところで学習ネットワーク100は、主データ側ノイズ付与部104を備える。主データ側ノイズ付与部104そのものは量子化の処理ではない。しかしながら、主データ側ノイズ付与部104の処理を含むからこそ、学習が行われることで、ベクトル量子化を用いた自己符号化の性能が高まる。その理由を説明する。
学習時にベクトル量子化が行われると、勾配が0になってしまうため、ベクトル量子化を用いた自己符号化の処理を高効率化する学習の実行ができないことが知られている。したがって、自己符号化の処理を学習によって高効率化するためには、ベクトル量子化そのものに代えてベクトルに対してノイズを付与する処理が学習時に行われる。
ベクトル量子化そのものに代えてノイズを付与する処理を行うことで、ベクトル量子化を行う処理そのものではなくベクトル量子化に用いられる情報を生成する他の処理の性能が高まる。その結果、自己符号化の際にはノイズを付与する処理に代えてベクトル量子化を行っても、学習前よりも高効率な自己符号化が行われる。
学習部10について関しては、主データ側ノイズ付与部104がノイズ付与対象ベクトルに対してノイズを付与する。したがって、主データ側ノイズ付与部104を含む学習を行うことで、勾配が0にならない。その結果、ベクトル量子化を用いた自己符号化の際にも用いられる主データ側符号化部102、補助データ側符号化部103、補助データ側確率推定部106、補助データ側復号部107及び主データ側復号部111の内容を更新することが可能である。
したがって、ここまでネットワーク学習結果と説明してきた内容は、具体的には、ベクトル量子化に代えてノイズの付与を実行するニューラルネットワーク(すなわち学習ネットワーク100)の学習で更新された周辺処理、を意味する。周辺処理は、ベクトル量子化で用いられる情報を生成する処理である。周辺処理は具体的には、主データ側符号化部102、補助データ側符号化部103、補助データ側確率推定部106、補助データ側復号部107及び主データ側復号部111のそれぞれが実行する処理である。
図7は、実施形態における学習部10が実行する処理の流れの一例を示す図である。主データ取得部101が主データx=[x、x、・・・、x]を取得する(ステップS101)。主データxはxからxまでのN個の要素を有するN次元ベクトルである。xからxまでの各要素はテンソルである。したがって、xからxまでの各要素はスカラーであってもよいしベクトルであってもよい。
次に、主データ側符号化部102が、主データ特徴量取得処理を実行する(ステップS102)。すなわち、主データ側符号化部102が主データxを符号化する。主データの符号化により、主データ特徴量y=fenc(x)が得られる。関数fenc(x)は、主データxの符号化の処理を表現する関数(以下「主データ符号化関数」という。)である。なお主データ特徴量yはk個のK次元ベクトルで構成されるテンソルである。
次に、補助データ側符号化部103が補助特徴量取得処理を実行する(ステップS103)。補助特徴量取得処理の実行により、補助特徴量z=genc(y)が得られる。関数genc(y)は、主データ特徴量yの符号化の処理を表現する関数(以下「主データ特徴量符号化関数」という。)である。なお補助特徴量zはベクトル等のテンソルである。
次に、主データ側ノイズ付与部104がノイズ付き主データ特徴量取得処理を実行する(ステップS104)。ノイズ付き主データ特徴量取得処理の実行により、主データ特徴量にノイズが付与される。すなわち、ノイズ付き主データ特徴量取得処理の実行により、ノイズ付き主データ特徴量y^=[y^、y^、・・・、y^]が得られる。ただし、y^=y+uである。yは、主データ特徴量yのi番目のベクトル要素を表す。uはノイズを表す。
次に、補助データ側ノイズ付与部105がノイズ付き補助特徴量取得処理を実行する(ステップS105)。ノイズ付き補助特徴量取得処理の実行により、補助特徴量にノイズが付与される。すなわち、ノイズ付き補助特徴量取得処理の実行により、ノイズ付き補助特徴量z^=[z^、z^、・・・、z^]が得られる。なお、wは1以上の整数である。ただし、z^=z+uである。zは、補助特徴量zのi番目の要素を表す。uはノイズを表す。
次に、補助データ側確率推定部106が補助データ側確率推定処理を実行する(ステップS106)。補助データ側確率推定部106は、補助データ側確率推定処理の実行により補助データ側確率を推定する。補助データ側確率は具体的には以下の式(8)で表される。
式(8)の左辺の記号が補助データ側確率を表す。記号hはパラメトライズド補助特徴量累積分布関数である。
次に補助データ側復号部107が、ノイズ付き補助特徴量に対して補助特徴量復号処理を実行する(ステップS107)。補助特徴量復号処理の実行により、補助特徴量復号処理の実行により、ノイズ付き補助特徴量が復号される。すなわち、補助特徴量復号処理の実行により、補助データθ=gdec(z^)が得られる。関数gdec(z^)は、ノイズ付き補助特徴量z^の復号の処理を表現する関数(以下「補助特徴量復号関数」という。)である。なお補助データθはベクトル等のテンソルである。
次に、補助エントロピー取得部108が補助データ側確率に基づき、補助エントロピーを取得する(ステップS108)。具体的には、以下の式(9)で表される処理を実行することで、補助エントロピー取得部108は補助エントロピーを取得する。
式(9)の左辺の記号が補助エントロピーを表す。
次に、主データ側確率推定部109が、主データ側確率推定処理を実行する(ステップS109)。主データ側確率推定部109は、主データ側確率推定処理の実行によりノイズ付き主データ特徴量と補助データとに基づき主データ側確率を推定する。主データ側確率は、具体的には上述の式(1)で表される。
次に、主エントロピー取得部110が、主データ側確率に基づき主エントロピーを取得する(ステップS110)。具体的には、以下の式(10)で表される処理を実行することで、主エントロピー取得部110は主エントロピーを取得する。
式(10)の左辺の記号が主エントロピーを表す。
次に、主データ側復号部111が、ノイズ付き主データ特徴量に対して主データ特徴量復号処理を実行する(ステップS111)。主データ特徴量復号処理の実行により、ノイズ付き主データ特徴量が復号される。以下、ノイズ付き主データ特徴量が復号された情報を復号主データという。したがって、主データ側復号部111は主データ特徴量復号処理の実行による復号主データx^=fdec(y^)を得る。関数fdec(y^)は、ノイズ付き主データ特徴量y^の復号の処理を表現する関数(以下「主データ特徴量復号関数」という。)である。なお復号主データx^はベクトル等のテンソルである。
次に、再構成誤差算出部112が、復号主データと主データ取得部101の取得した主データとの違いを取得する(ステップS112)。復号主データと主データ取得部101の取得した主データとの違いが再構成誤差である。
次に最適化部113は、補助データエントロピーと主データエントロピーと再構成誤差とに基づき、学習ネットワーク100を更新する(ステップS113)。次に、最適化部113は学習に関する所定の終了条件(以下「学習終了条件」という。)が満たされたか否かを判定する(ステップS114)。学習終了条件は、例えば、学習ネットワーク100の所定の回数の更新が行われた、という条件である。
学習終了条件が満たされた場合(ステップS114:YES)、処理が終了する。一方、学習終了条件が満たされない場合(ステップS114:NO)、ステップS101の処理に戻る。学習終了条件が満たされた時点の周辺処理が学習済みの周辺処理としてベクトル量子化に用いられる。
なお、ステップS101~ステップS114の各処理は因果律に反することが無ければどのような順番で実行されてもよい。
なお、上述したように、補助データ側確率推定部106は予め与えられた確率分布を所定の記憶装置からの読み出し等によって取得してもよい。このような場合、補助データ側確率推定処理の内容は学習によって更新されない。したがって、学習済みの補助データ側確率推定処理は学習前の補助データ側確率推定処理と同じである。
なお、補助データ側確率推定処理の内容の更新は、より具体的には、パラメトライズド補助特徴量累積分布関数hの更新である。したがって、補助データ側確率推定部106が予め与えられた確率分布を所定の記憶装置からの読み出し等によって取得する場合、学習済みのパラメトライズド補助特徴量累積分布関数hは学習前のパラメトライズド補助特徴量累積分布関数hと同じである。
このように学習部10は、ベクトル量子化を用いた自己符号化の処理における符号化と復号との処理を学習により更新する。ベクトル量子化を用いた自己符号化の処理は、自己符号化の対象の特徴量である主データ特徴量と、主データ特徴量の特徴量である補助特徴量とを用いる。さらに、ベクトル量子化を用いた自己符号化の処理は、主データ特徴量をベクトル量子化した結果に対するエントロピー符号化と補助特徴量をスカラー量子化した結果に対するエントロピー符号化とを行う。
このようなベクトル量子化を用いた自己符号化の処理における符号化の処理は、具体的には、主データ側符号化部102が実行する主データ特徴量取得処理と、補助データ側符号化部103が実行する補助特徴量取得処理とである。また、このようなベクトル量子化を用いた自己符号化の処理における復号の処理は、具体的には、補助データ側復号部107が実行する補助特徴量復号処理と、主データ側復号部111が実行する主データ特徴量復号処理とである。
学習済みの周辺処理を用いるベクトル量子化、を用いた自己符号化について図8及び図9を用いて説明する。学習済みとは、学習終了条件が満たされた時点の、という意味である。より具体的には、学習済みの周辺処理を用いるベクトル量子化、を用いた自己符号化を実行する装置の例として、エンコードとデコードとの処理を実行する自己符号化装置2を説明する。自己符号化装置2は、自己符号化器(オートエンコーダ)の1種である。
図8は、実施形態における自己符号化装置2の概要を説明する第1の説明図である。図9は、実施形態における自己符号化装置2の概要を説明する第2の説明図である。より具体的には、図8は自己符号化装置2で実行されるエンコードの処理を説明する説明図であり、図9は、自己符号化装置2で実行されるデコードの処理を説明する説明図である。
自己符号化装置2は、自己符号化器の1種であるので、エンコーダとデコーダとを備える。具体的には、自己符号化装置2は、エンコーダ200とデコーダ212とを備える。エンコーダ200は、自己符号化対象取得部201、学習済み主データ側符号化部202、学習済み補助データ側符号化部203、ベクトル量子化部204、スカラー量子化部205、学習済み補助データ側確率推定部206、学習済み補助データ側復号部207、補助エントロピー符号化部208、主データ側確率推定部209、主エントロピー符号化部210及びデータ多重化部211を備える。
デコーダ212は、符号化データ取得部213、データ分離部214、補助エントロピー復号部215、学習済み補助データ側復号部216、主エントロピー復号部217及び学習済み主データ側復号部218を備える。
自己符号化対象取得部201は、自己符号化の対象であるデータを主データとして取得する。以下、自己符号化の対象を自己符号化対象という。
学習済み主データ側符号化部202は、自己符号化対象に対して学習済みの主データ特徴量取得処理を実行する。学習済みの主データ特徴量取得処理の実行により学習済み主データ側符号化部202は自己符号化対象の主データ特徴量を取得する。
学習済み補助データ側符号化部203は、自己符号化対象の主データ特徴量に対して学習済みの補助特徴量取得処理を実行する。学習済みの補助特徴量取得処理の実行により学習済み補助データ側符号化部203は自己符号化対象の補助特徴量を取得する。
ベクトル量子化部204は、自己符号化対象の主データ特徴量に対してベクトル量子化の処理を実行する。ベクトル量子化の処理の実行によりベクトル量子化部204は、自己符号化対象のベクトル量子化された主データ特徴量(以下「ベクトル量子化特徴量」という。)を取得する。
スカラー量子化部205は、自己符号化対象の補助特徴量に対してスカラー量子化の処理を実行する。スカラー量子化の処理の実行によりスカラー量子化部205は、自己符号化対象のスカラー量子化された補助特徴量(以下「スカラー量子化特徴量」という。)を取得する。
学習済み補助データ側確率推定部206は、学習済みの補助データ側確率推定処理を実行する。学習済み補助データ側確率推定部206は、学習済みの補助データ側確率推定処理の実行により、スカラー量子化特徴量に基づき自己符号化対象の補助データ側確率を推定する。
学習済み補助データ側復号部207は、スカラー量子化特徴量に対して学習済みの補助特徴量復号処理を実行する。すなわち、学習済み補助データ側復号部207は、スカラー量子化特徴量を復号する。以下、スカラー量子化特徴量が復号された情報を量子化補助データという。したがって、学習済み補助データ側復号部207は、スカラー量子化特徴量を復号することで量子化補助データを取得する処理である。
補助エントロピー符号化部208は、スカラー量子化特徴量と自己符号化対象の補助データ側確率とに基づき、スカラー量子化特徴量のエントロピー符号化を行う。エントロピー符号化は例えば算術符号化である。
主データ側確率推定部209は、ベクトル量子化特徴量と量子化補助データとに基づき自己符号化対象の主データ側確率を推定する。
主エントロピー符号化部210は、ベクトル量子化特徴量と自己符号化対象の主データ側確率とに基づき、ベクトル量子化特徴量のエントロピー符号化を行う。エントロピー符号化は例えば算術符号化である。
データ多重化部211は、エントロピー符号化されたベクトル量子化特徴量と、エントロピー符号化されたスカラー量子化特徴量とをデコーダ212に出力する。このようにして、エンコーダ200は、自己符号化対象をエンコードする。
符号化データ取得部213は、エントロピー符号化されたベクトル量子化特徴量と、エントロピー符号化されたスカラー量子化特徴量とを取得する。
データ分離部214は、符号化データ取得部213の取得した、エントロピー符号化されたベクトル量子化特徴量と、エントロピー符号化されたスカラー量子化特徴量と、を取得する。データ分離部214は、エントロピー符号化されたスカラー量子化特徴量を補助エントロピー復号部215に出力し、エントロピー符号化されたベクトル量子化特徴量を主エントロピー復号部217に出力する。
学習済み補助エントロピー復号部215は、学習済みのパラメトライズド補助特徴量累積分布関数を用いて、エントロピー符号化されたスカラー量子化特徴量に対してエントロピー復号を行う。
学習済み補助データ側復号部216は、学習済み補助エントロピー復号部215によるエントロピー復号の結果に対して、学習済みの補助特徴量復号処理を実行する。
主エントロピー復号部217は、エントロピー符号化されたベクトル量子化特徴量と、学習済み補助データ側復号部216による学習済みの補助特徴量復号処理の結果と、に基づき、エントロピー符号化されたベクトル量子化特徴量のエントロピー符号化を行う。より具体的には、主エントロピー復号部217は、復号累積分布関数を用いて、エントロピー符号化されたベクトル量子化特徴量のエントロピー復号を行う。復号累積分布関数は、パラメータの値が学習済み補助データ側復号部216による学習済みの補助特徴量復号処理の結果が示す値であるパラメトライズド主データ特徴量累積分布関数である。
学習済み主データ側復号部218は、主エントロピー復号部217による復号の結果に対して、学習済みの主データ特徴量復号処理を実行する。
このようにして、デコーダ212は、エンコーダ200によってエンコードされた自己符号化対象をデコードする。また、このようにして、自己符号化装置2は、自己符号化対象の自己符号化を行う。
図10は、実施形態におけるエンコーダ200が実行する処理の流れの一例を示すフローチャートである。自己符号化対象取得部201が自己符号化対象X=[X、X、・・・、X]を取得する(ステップS201)。自己符号化対象XはXからXまでのN個の要素を有するN次元ベクトルである。XからXまでの各要素はテンソルである。したがって、XからXまでの各要素はスカラーであってもよいしベクトルであってもよい。
次に、学習済み主データ側符号化部202が、学習済みの主データ特徴量取得処理を実行する(ステップS202)。すなわち、学習済み主データ側符号化部202が自己符号化対象Xを符号化する。自己符号化対象の符号化により、自己符号化対象の主データ特徴量Y=Fenc(Y)が得られる。関数Fenc(X)は、学習済みの主データ符号化関数である。なお主データ特徴量Yはベクトル等のテンソルである。
次に、学習済み補助データ側符号化部203が学習済み補助特徴量取得処理を実行する(ステップS203)。学習済み補助特徴量取得処理の実行により、自己符号化対象の補助特徴量Z=Genc(Y)が得られる。関数Genc(Y)は、学習済みの主データ特徴量符号化関数である。なお補助特徴量Zはベクトル等のテンソルである。
次に、ベクトル量子化部204が自己符号化対象の主データ特徴量Yに対してベクトル量子化を行う(ステップS204)。ベクトル量子化の実行により、ベクトル量子化特徴量Y^=[Y^、Y^、・・・、Y^]=[Q(Y)、Q(Y)、・・・、Q(Y)]が得られる。Yは、自己符号化対象の主データ特徴量Yのi番目の要素を表す。Y^は、ベクトル量子化特徴量Y^のi番目の要素を表す。Qは以下の式(11)で表される関数である。
なお、記号Λは全格子点の集合を意味する。
次に、スカラー量子化部205が自己符号化対象の補助特徴量Zに対してスカラー量子化を行う(ステップS205)。スカラー量子化の処理の実行によりスカラー量子化部205は、スカラー量子化特徴量Z^=round(Z)を取得する。なお、roundは丸め処理を表す。
次に学習済み補助データ側確率推定部206が、学習済みの補助データ側確率推定処理を実行する(ステップS206)。学習済み補助データ側確率推定部206は、学習済みの補助データ側確率推定処理の実行により、スカラー量子化特徴量Z^に基づき自己符号化対象の補助データ側確率を推定する。自己符号化対象の補助データ側確率は具体的には以下の式(12)で表される。
式(12)の左辺の記号が自己符号化対象の補助データ側確率を表す。記号Hは学習済みのパラメトライズド補助特徴量累積分布関数である。
学習済み補助データ側復号部207が、スカラー量子化特徴量Z^に対して学習済みの補助特徴量復号処理を実行する(ステップS207)。すなわち、学習済み補助データ側復号部207は、スカラー量子化特徴量を復号することで量子化補助データΘ=Gdec(Z^)が得られる。関数Gdec(Z^)は、学習済みの補助特徴量復号関数である。なお量子化補助データΘはベクトル等のテンソルである。
次に補助エントロピー符号化部208が、スカラー量子化特徴量Z^と自己符号化対象の補助データ側確率とに基づき、スカラー量子化特徴量Z^のエントロピー符号化を行う(ステップS208)。
次に主データ側確率推定部209が、ベクトル量子化特徴量Y^と量子化補助データΘとに基づき自己符号化対象の主データ側確率を推定する(ステップS209)。
次に主エントロピー符号化部210が、ベクトル量子化特徴量Y^と自己符号化対象の主データ側確率とに基づき、ベクトル量子化特徴量Y^のエントロピー符号化を行う(ステップS210)。
次にデータ多重化部211が、エントロピー符号化されたベクトル量子化特徴量と、エントロピー符号化されたスカラー量子化特徴量とをデコーダ212に出力する(ステップS211)。
ステップS201からステップS211までの一連の処理がエンコーダ200によるエンコードの処理の一例である。なお、ステップS201~ステップS211までの各処理は因果律に反することが無ければどのような順番で実行されてもよい。
図11は、実施形態におけるデコーダ212が実行する処理の流れの一例を示すフローチャートである。符号化データ取得部213が、エンコーダ200によるエンコードの結果を取得する(ステップS301)。エンコーダ200によるエンコードの結果とは具体的には、ステップS211で出力されたエントロピー符号化されたベクトル量子化特徴量と、エントロピー符号化されたスカラー量子化特徴量とである。
次にデータ分離部214が、ステップS301で取得されたエントロピー符号化されたスカラー量子化特徴量と、ステップS302で取得されたエントロピー符号化されたベクトル量子化特徴量とを分離する(ステップS302)。分離するとは、具体的には、ステップS301で取得されたエントロピー符号化されたスカラー量子化特徴量を補助エントロピー復号部215に出力し、ステップS302で取得されたエントロピー符号化されたベクトル量子化特徴量を主エントロピー復号部217に出力することを意味する。
次に学習済み補助エントロピー復号部215が、学習済みのパラメトライズド補助特徴量累積分布関数を用いて、エントロピー符号化されたスカラー量子化特徴量に対してエントロピー復号を行う(ステップS303)。
次に学習済み補助データ側復号部216が、学習済み補助エントロピー復号部215によるエントロピー復号の結果に対して、学習済みの補助特徴量復号処理を実行する(ステップS304)。
次に主エントロピー復号部217が、復号累積分布関数を用いて、エントロピー符号化されたベクトル量子化特徴量のエントロピー復号を行う(ステップS305)。
次に学習済み主データ側復号部218が、主エントロピー復号部217による復号の結果に対して、学習済みの主データ特徴量復号処理を実行する(ステップS306。
ステップS301からステップS306までの一連の処理がデコーダ212によるデコードの処理の一例である。なお、ステップS301~ステップS306までの各処理は、ステップS211等のエンコーダ200によるエンコードの処理の実行後に実行され、なおかつ、因果律に反することが無ければどのような順番で実行されてもよい。
<ハードウェアの説明>
図12は、実施形態における学習装置1のハードウェア構成の一例を示す図である。学習装置1は、バスで接続されたCPU(Central Processing Unit)等のプロセッサ91とメモリ92とを備える制御部11を備え、プログラムを実行する。学習装置1は、プログラムの実行によって制御部11、入力部12、通信部13、記憶部14及び出力部15を備える装置として機能する。
より具体的には、プロセッサ91が記憶部14に記憶されているプログラムを読み出し、読み出したプログラムをメモリ92に記憶させる。プロセッサ91が、メモリ92に記憶させたプログラムを実行することによって、学習装置1は、制御部11、入力部12、通信部13、記憶部14及び出力部15を備える装置として機能する。
制御部11は、学習装置1が備える各種機能部の動作を制御する。制御部11は、例えば出力部15の動作を制御する。制御部11は、例えば学習により生じた各種情報を記憶部14に記録する。
入力部12は、マウスやキーボード、タッチパネル等の入力装置を含んで構成される。入力部12は、これらの入力装置を学習装置1に接続するインタフェースとして構成されてもよい。入力部12は、学習装置1に対する各種情報の入力を受け付ける。
通信部13は、学習装置1を外部装置に接続するための通信インタフェースを含んで構成される。通信部13は、有線又は無線を介して外部装置と通信する。外部装置は、例えば学習に用いられる主データの送信元の装置である。通信部13は、主データの送信元の装置との通信によって学習に用いられる主データを取得する。外部装置は、例えば自己符号化装置2である。通信部13は自己符号化装置2との通信により自己符号化装置2にネットワーク学習結果を送信する。なお、主データは、必ずしも通信部13を介して入力される必要は無く、入力部12に入力されてもよい。
記憶部14は、磁気ハードディスク装置や半導体記憶装置などのコンピュータ読み出し可能な記憶媒体装置を用いて構成される。記憶部14は学習装置1に関する各種情報を記憶する。記憶部14は、例えば入力部12又は通信部13を介して入力された情報を記憶する。記憶部14は、例えば学習の実行により生じた各種情報を記憶する。
記憶部14は、例えば補助特徴量を示すテンソルの各要素の生起確率の取得に用いられる確率分布を予め記憶する。記憶部14は、例えばパラメトライズド補助特徴量累積分布関数を予め記憶する。記憶部14は、例えばパラメトライズド主データ特徴量累積分布関数を予め記憶する。記憶部14は、例えば代表ベクトル情報を予め記憶する。記憶部14は、例えば超直方体分割の結果を記憶する。
記憶部14は、例えば学習ネットワーク100の各パラメータの値の初期値を予め記憶する。初期値は例えばランダムな値である。記憶部14は、例えばネットワーク学習結果を記憶する。
出力部15は、各種情報を出力する。出力部15は、例えばCRT(Cathode Ray Tube)ディスプレイや液晶ディスプレイ、有機EL(Electro-Luminescence)ディスプレイ等の表示装置を含んで構成される。出力部15は、これらの表示装置を学習装置1に接続するインタフェースとして構成されてもよい。出力部15は、例えば入力部12に入力された情報を出力する。出力部15は、例えば学習の結果を表示してもよい。
図13は、実施形態における学習装置1が備える制御部11の構成の一例を示す図である。制御部11は、学習部10、記憶制御部120、通信制御部130及び出力制御部140を備える。記憶制御部120は、記憶部14に各種情報を記録する。通信制御部130は通信部13の動作を制御する。出力制御部140は、出力部15の動作を制御する。
図14は、実施形態における自己符号化装置2のハードウェア構成の一例を示す図である。自己符号化装置2は、バスで接続されたCPU(Central Processing Unit)等のプロセッサ93とメモリ94とを備える制御部21を備え、プログラムを実行する。自己符号化装置2は、プログラムの実行によって制御部21、入力部22、通信部23、記憶部24及び出力部25を備える装置として機能する。
より具体的には、プロセッサ93が記憶部24に記憶されているプログラムを読み出し、読み出したプログラムをメモリ94に記憶させる。プロセッサ93が、メモリ94に記憶させたプログラムを実行することによって、自己符号化装置2は、制御部21、入力部22、通信部23、記憶部24及び出力部25を備える装置として機能する。
制御部21は、自己符号化装置2が備える各種機能部の動作を制御する。制御部21は、例えば出力部25の動作を制御する。制御部21は、例えばエンコーダ200によるエンコードとデコーダ212によるデコードとにより生じた各種情報を記憶部24に記録する。
入力部22は、マウスやキーボード、タッチパネル等の入力装置を含んで構成される。入力部22は、これらの入力装置を自己符号化装置2に接続するインタフェースとして構成されてもよい。入力部22は、自己符号化装置2に対する各種情報の入力を受け付ける。
通信部23は、自己符号化装置2を外部装置に接続するための通信インタフェースを含んで構成される。通信部23は、有線又は無線を介して外部装置と通信する。外部装置は、例えば自己符号化対象の送信元の装置である。通信部23は、自己符号化対象の送信元の装置との通信によって自己符号化対象を取得する。外部装置は、例えば学習装置1である。通信部23は学習装置1との通信によりネットワーク学習結果を受信する。なお、自己符号化対象は、必ずしも通信部23を介して入力される必要は無く、入力部22に入力されてもよい。
記憶部24は、磁気ハードディスク装置や半導体記憶装置などのコンピュータ読み出し可能な記憶媒体装置を用いて構成される。記憶部24は自己符号化装置2に関する各種情報を記憶する。記憶部24は、例えば入力部22又は通信部23を介して入力された情報を記憶する。記憶部24は、例えばエンコーダ200によるエンコードとデコーダ212によるデコードとの実行により生じた各種情報を記憶する。
記憶部24は、例えばネットワーク学習結果を記憶する。記憶部24は、例えば代表ベクトル情報を予め記憶する。記憶部24は、例えば超直方体分割の結果を記憶する。
出力部25は、各種情報を出力する。出力部25は、例えばCRT(Cathode Ray Tube)ディスプレイや液晶ディスプレイ、有機EL(Electro-Luminescence)ディスプレイ等の表示装置を含んで構成される。出力部25は、これらの表示装置を学習装置1に接続するインタフェースとして構成されてもよい。出力部25は、例えば入力部22に入力された情報を出力する。出力部25は、例えば自己符号化対象の自己符号化の結果を出力してもよい。
図15は、実施形態における自己符号化装置2が備える制御部21の構成の一例を示す図である。制御部21は、自己符号化実行部20、記憶制御部220、通信制御部230及び出力制御部240を備える。自己符号化実行部20は、自己符号化対象に対して自己符号化を行う。自己符号化実行部20はエンコーダ200とデコーダ212とを備える。自己符号化実行部20は、エンコーダ200によるエンコードとデコーダ212によるデコードとを行うことで、自己符号化対象の自己符号化を行う。
記憶制御部220は、記憶部24に各種情報を記録する。通信制御部230は通信部23の動作を制御する。出力制御部240は、出力部25の動作を制御する。
このように構成された学習装置1は、LatticeVQ等のベクトル空間において格子状に配置された代表ベクトルの位置を示す情報である代表ベクトル情報を用いてベクトル量子化のための周辺処理の学習を行う。そして学習装置1は、超直方体分割の結果を用いて代表ベクトルの生起確率の推定を行う。上述したように、代表ベクトルを用いる場合にはボロノイ分割を用いて代表ベクトルの生起確率の推定が行われる場合があるが積分が容易ではない。
したがって、超直方体分割によって得られた超直方体を用いて代表ベクトルの生起確率を推定する学習装置1は、ベクトル量子化を用いた自己符号化の処理を得ることに要する負担を軽減することができる。これはベクトル量子化を用いた自己符号化の実現までに要する学習段階からの負担を軽減することである。したがって、学習装置1は、ベクトル量子化を用いた自己符号化に要する負担を軽減することができる。
また、このように構成された学習装置1は、代表ベクトルを用いてベクトル量子化のための周辺処理の学習を行うため、代表ベクトルの学習に要する負担を軽減することができる。また、このように構成された学習装置1は、代表ベクトルを用いてベクトル量子化のための周辺処理の学習を行うため、代表ベクトルの学習を行う際には必要となるメモリの使用が無い。そのため、学習装置1は、メモリ不足の問題が生じる頻度を下げることができ、より大きな次元の主データを処理することができる。
ところで上述したように、ベクトル量子化の学習では量子化に変えてノイズの付与を行う必要がある。しかしながら、LatticeVQ等の代表ベクトル情報を用いる場合、ボロノイ領域の範囲が量子化誤差になるため、確率分布がガウス分布であるノイズの生成そのものが容易ではない。
一方、このように構成された学習装置1は、学習において、K次元のベクトル空間におけるボロノイ領域に外接する(K-1)次元球面内にランダムに生成させたサンプルのうち、ボロノイ領域内のサンプルのみノイズとして用いる。このため、ガウス分布に従うノイズを生成することができる。したがって、学習装置1は、ベクトル量子化を用いた自己符号化の処理を得ることに要する負担を軽減することができる。そのため、学習装置1は、ベクトル量子化を用いた自己符号化に要する負担を軽減することができる。
このように構成された自己符号化装置2は、学習装置1による学習の結果を用いてベクトル量子化を用いた自己符号化を行う。そのため、ベクトル量子化を用いた自己符号化に要する負担を軽減することができる。
(変形例)
主データ特徴量に対するノイズの付与では、体積をK次元のベクトル空間におけるボロノイ領域の体積に近似させた(K-1)次元球面内に一様に発生させたサンプルがノイズ点として用いられてもよい。主データ特徴量に対するノイズの付与では、超直方体分割によって得られた超直方体内に一様に発生させたサンプルがノイズ点として用いられてもよい。
したがって主データ特徴量に対するノイズを付与する処理(すなわちベクトルノイズ付与処理)は、第1ノイズ付与処理、第2ノイズ付与処理又は第3ノイズ付与処理のいずれかひとつの処理であってもよい。第1ノイズ付与処理は、K次元のベクトル空間におけるボロノイ領域に外接する(K-1)次元球面内にランダムに生成させたサンプルのうち、ボロノイ領域内のサンプルをノイズとして付与する処理である。すなわち第1ノイズ付与処理は、図3及び図4を用いて説明した処理である。
第2ノイズ付与処理は、体積をK次元のベクトル空間におけるボロノイ領域の体積に近似させた(K-1)次元球面内に一様に発生させたサンプルをノイズとして付与する処理である。第3ノイズ付与処理は、代表ベクトルが格子状に配置されたベクトル空間を分割する領域でありベクトル空間の1つの格子点を含む領域であり形状が超直方体である領域内に一様に発生させたサンプルをノイズとして付与する処理である。
<主データ側確率推定処理の他の例>
上述したように、パラメトライズされた累積分布関数の取得が必ずしも容易ではない。そのため、主データ側確率推定処理によって主データ特徴量を表す代表ベクトルの生起確率を推定することは必ずしも容易ではない。そこで上述した例では、超直方体分割を用いてパラメトライズされた累積分布関数を得ることで、主データ特徴量を表す代表ベクトルの生起確率を得た。
ここでは、パラメトライズされた累積分布関数を得る他の例を説明することで、主データ特徴量を表す代表ベクトルの生起確率を推定する処理の他の例を説明する。具体的には、モンテカルロ積分を用いることで主データ特徴量を表す代表ベクトルの生起確率を推定する主データ側確率推定処理(以下「モンテカルロ型生起確率推定処理」という。)を説明する。
以下、説明の簡単のため、格子空間内の位置をxで表し、格子空間内の位置xにおける確率密度関数をf(x)と表す。確率密度関数f(x)は上述したようにパラメトライズされた確率密度関数である。このような場合、格子空間内の領域Vにおける累積分布関数は、以下の式(13)で表される。
式(13)は、モンテカルロ積分を用いれば、以下の式(14)で近似される。式(14)の右辺が、式(13)を表現するモンテカルロ積分である。すなわち式(14)の右辺のモンテカルロ積分は、格子空間における確率密度関数f(x)の積分を表す。
式(14)のq(x)は、一様分布にしたがう確率であってモンテカルロ法において格子空間内の位置xがサンプルされる確率を示す。一様分布であるのでq(x)の値は領域Vの大きさの逆数に等しい。式(14)におけるiは、格子空間内の位置xであってサンプルされた位置xをそれぞれ識別する識別子である。式(14)の右辺の和はモンテカルロ法によって領域V内にサンプリングされた位置xについての和である。式(14)の右辺と左辺との各表現から明らかに、式(14)が示す右辺と左辺との誤差はN→無限で0に収束する。
領域Vが1つのボロノイ領域である場合、式(13)の累積分布関数の値は領域Vが示すボロノイ領域に属する代表ベクトルの生起確率である。したがって、このような場合、式(14)の右辺のモンテカルロ積分の値は、領域Vが示すボロノイ領域に属する代表ベクトルの生起確率である。なお、累積分布関数は、式(13)が示すようにパラメトライズされた確率密度関数が積分された結果である。
モンテカルロ型生起確率推定処理のより具体的な処理を説明する。モンテカルロ型生起確率推定処理では、まず、格子空間内の位置xのうち確率密度関数f(x)の平均を示す位置xが推定される。平均の位置とは、言い換えれば、確率密度関数f(x)で表される確率密度の分布の中心である。以下、確率密度関数f(x)の平均を示す位置xを平均位置という。モンテカルロ型生起確率推定処理では、次に、推定された平均位置を含むボロノイ領域(以下「始領域」という。)において式(14)で表されるモンテカルロ積分の値が取得される。
モンテカルロ型生起確率推定処理では次に、平均位置との距離が近い代表ベクトルから順に生起確率を足し算することが、所定の終了条件(以下「足し算終了条件」という。)が満たされるまで行われる。上述したように式(13)及び(14)より、各代表ベクトルの生起確率は、各代表ベクトルの属するボロノイ領域におけるモンテカルロ積分である。したがって、始領域におけるモンテカルロ積分の値は、始領域に属する代表ベクトルの生起確率である。
また隣接する代表ベクトル間の距離と隣接するボロノイ領域間の距離とは同じであるので、平均位置との距離が近い代表ベクトルから順に生起確率を足し算するとは、平均位置に近いボロノイ領域の順にモンテカルロ積分の値を足し合わせることを意味する。ボロノイ領域間の距離とは、例えばボロノイ領域の中心間の距離である。
足し算終了条件は、例えば、第1副条件が満たされるという条件である。第1副条件は、生起確率の足し算の結果が1より大きい、という条件である。足し算終了条件は、例えば、第2副条件が満たされるという条件であってもよい。第2副条件は、平均位置と代表ベクトルとの距離が、平均位置と主データ特徴量を表現する格子空間内の位置(以下「主格子空間位置」という。)との距離よりも長いという条件である。足し算終了条件は、第1副条件又は第2副条件のいずれか一方が満たされるという条件であってもよい。
主格子空間位置は、必ずしも代表ベクトルの位置ではない。主格子空間位置は、学習により更新される数理モデルであって、主データ特徴量から格子空間内の位置を推定する数理モデルによる推定の結果である。
足し算終了条件が満たされたか否かの判定は、例えば主データ側確率推定部109が行う。足し算終了条件が満たされたか否かの判定は、例えば1つの代表ベクトルの生起確率が足し算されるたびに行われる。
第1副条件が満たされた場合、モンテカルロ型生起確率推定処理では次に、最近接代表ベクトルの生起確率が、主データ特徴量を表す代表ベクトルの生起確率として取得される。最近接代表ベクトルは、生起確率が足し算された代表ベクトルのうち主格子空間位置を含まないボロノイ領域に含まれる代表ベクトルであって主格子空間位置に最も近い代表ベクトルである。さらに、モンテカルロ型生起確率推定処理では、最近接代表ベクトルが主データ特徴量を表す代表ベクトルであると判定される。
最近接代表ベクトルは定義より、平均位置に近いボロノイ領域の順にモンテカルロ積分の値を足し合わせた結果が1より大きい場合に足し合わされたボロノイ領域のうち主データ特徴量を示すベクトルの位置から最も近いボロノイ領域(以下「最近接ボロノイ領域」という。)に属する代表ベクトルである。したがって、第1副条件が満たされた場合、モンテカルロ型生起確率推定処理では、最近接ボロノイ領域のモンテカルロ積分の値が、主データ特徴量を示すベクトルの生起確率、として推定される。
第2副条件が満たされた場合、モンテカルロ型生起確率推定処理では次に、主格子空間位置を含むボロノイ領域の代表ベクトルの生起確率が、主データ特徴量を表す代表ベクトルの生起確率として推定される。さらに、モンテカルロ型生起確率推定処理では、主格子空間位置を含むボロノイ領域の代表ベクトルが主データ特徴量を表す代表ベクトルであると判定される。
このようにモンテカルロ型生起確率推定処理を用いて、主データ特徴量を表す代表ベクトルの生起確率を推定する学習装置1は、モンテカルロ積分を用いて主データ特徴量を表す代表ベクトルの生起確率を推定する。ところで、超直方体分割を用いて自己符号化を行う場合にはボロノイ領域が超直方体に近似された。しかしながらこのような近似は必ずしも精度が良いとは限らない。その結果、超直方体による近似の精度が悪い場合には、近似を用いることなく演算を行う必要が生じてしまうという負担の増大が生じる場合がある。
一方、モンテカルロ積分を用いる場合、式(14)が示すように、累積分布関数との近似の精度はボロノイ領域の形状に依存せず、なおかつ高い。そのため、モンテカルロ型生起確率推定処理を用いて主データ特徴量を表す代表ベクトルの生起確率を推定する学習装置1は、ベクトル量子化を用いた自己符号化の処理を得ることに要する負担を軽減することができる。これはベクトル量子化を用いた自己符号化の実現までに要する学習段階からの負担を軽減することである。したがって、学習装置1は、ベクトル量子化を用いた自己符号化に要する負担を軽減することができる。
また、このように構成された自己符号化装置2は、学習装置1による学習の結果を用いてベクトル量子化を用いた自己符号化を行う。そのため、ベクトル量子化を用いた自己符号化に要する負担を軽減することができる。
(学習ネットワーク100の他の例)
なお学習部10は、学習ネットワーク100に代えて学習ネットワーク100aを備えてもよい。このような場合、最適化部113は、学習ネットワーク100に代えて学習ネットワーク100aを学習ネットワーク100aの出力に基づいて更新する。以下、学習ネットワーク100が備える各機能部と同様の機能を有するものについては図1と同じ符号を付すことで説明を省略する。
図16は、変形例における学習ネットワーク100aの構成の一例を説明する説明図である。学習ネットワーク100aは、STE実行部114を備える点と、主データ側復号部111に代えて主データ側復号部111aを備える点と、で学習ネットワーク100と異なる。また学習ネットワーク100aの主データ側ノイズ付与部104は、主データ側復号部111aには出力されない点でも学習ネットワーク100aは学習ネットワーク100と異なる。
STE実行部114は、Straight Through Estimator(STE)を実行する。STEは、ベクトル量子化を行う数理モデルであって誤差逆伝搬時の勾配が1に固定された数理モデルである。STE実行部114によるSTEの実行の対象は主データ側符号化部102の実行結果である。主データ側符号化部102の実行結果とは具体的には、主データ特徴量である。
主データ側復号部111aは、主データ特徴量復号処理を実行する。主データ側復号部111aは、主データ特徴量復号処理の実行の対象が、主データ側ノイズ付与部104の実行の結果ではなく、STE実行部114の実行の結果である点で、主データ側復号部111と異なる。
図17は、変形例における学習部10が実行する処理の流れの一例を示すフローチャートである。以下説明の簡単のため実施形態の学習部10が実行する処理と同様の処理については図7と同じ符号を付すことで説明を省略する。
ステップS101からステップS103までの処理の実行の次に、STE実行部114が主データ特徴量に対してSTEを実行する(ステップS115)。ステップS115の次にステップS104が実行される。ステップS104からステップS110までの処理の実行の次に、ステップS112からステップS114の処理が実行される。
なお、ステップS115の処理はステップS102より後であってステップS112より前に実行されればどのようなタイミングで実行されてもよい。
<学習ネットワーク100aの奏する効果について>
学習ネットワーク100aの奏する効果について説明する。上述したように自己符号化装置2による自己符号化(いわゆる推論時)においては、符号化対象にノイズが付与されることなく、ベクトル量子化が行われる。そして、学習時に用いられる数理モデルである学習ネットワーク100はSTE実行部114を含む。
STE実行部114による符号化は、ノイズを付与することなく符号化の対象の量子化を行う符号化である。したがって、推論時の自己符号化と同じ符号化により、学習ネットワーク100aの学習は行われる。
ただ、STEはバックワード時の勾配を1に固定する数理モデルである。その結果、量子化誤差の分布が学習時と推論時とで異なるという事象を引き起こす場合があり、確率分布の推定精度が過学習によって低下してしまう場合がある。言い換えれば、STEがばらつきを加えることはない処理であるために過学習の発生が生じやすい、と言うこともできる。
そこで学習ネットワーク100は、このような状況の発生を抑制するため、学習時の確率分布の推定については、ノイズを加算した値を用いる。具体的には、主データ側ノイズ付与部104の結果を用いて、主データ側確率推定部109によって、主データ特徴量を表す代表ベクトルの生起確率が推定される。
その結果、学習ネットワーク100aは、学習時と推定時との処理の違いによる自己符号化の精度の低下を抑制するとともに、ノイズを用いることにより過学習の発生を抑制することができる。
したがって、このように構成された学習ネットワーク100aを備える変形例の学習装置1は、自己符号化の精度の低下を抑制することと、過学習の発生を抑制することとを両立することができる。
また、このように構成された学習ネットワーク100aを備える変形例の学習装置1は、学習時と推定時との処理の違いによる自己符号化の精度の低下を抑制するとともに、ノイズを用いることにより過学習の発生を抑制することができる。そのため、学習ネットワーク100aを用いれば、自己符号化の精度の低下を抑制しつつ、過学習の発生を抑制するためにばらつきの大きな学習データを準備することなどの学習データの生成に要する労力が軽減される。
したがって、学習ネットワーク100aを備える変形例の学習装置1は、ベクトル量子化を用いた自己符号化の処理を得ることに要する負担を軽減することができる。これはベクトル量子化を用いた自己符号化の実現までに要する学習段階からの負担を軽減することである。したがって、学習ネットワーク100aを備える変形例の学習装置1は、ベクトル量子化を用いた自己符号化に要する負担を軽減することができる。
また、このように構成された変形例の学習装置1の学習結果を用いる自己符号化装置2は、自己符号化の精度の低下を抑制された数理モデルであって過学習の発生が抑制された数理モデルで、自己符号化を行う。そのため、ベクトル量子化を用いた自己符号化に要する負担を軽減することができる。
なお、学習装置1は、ネットワークを介して通信可能に接続された複数台の情報処理装置を用いて実装されてもよい。この場合、学習装置1が備える各機能部は、複数の情報処理装置に分散して実装されてもよい。
なお、自己符号化装置2は、ネットワークを介して通信可能に接続された複数台の情報処理装置を用いて実装されてもよい。この場合、自己符号化装置2が備える各機能部は、複数の情報処理装置に分散して実装されてもよい。
なお、学習装置1と、自己符号化装置2と、の各機能の全て又は一部は、ASIC(Application Specific Integrated Circuit)やPLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)等のハードウェアを用いて実現されてもよい。プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。プログラムは、電気通信回線を介して送信されてもよい。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
1…学習装置、 10…学習部、 100、100a…学習ネットワーク、 101…主データ取得部、 102…主データ側符号化部、 103…補助データ側符号化部、 104…主データ側ノイズ付与部、 105…補助データ側ノイズ付与部、 106…補助データ側確率推定部、 107…補助データ側復号部、 108…補助エントロピー取得部、 109…主データ側確率推定部、 110…主エントロピー取得部、 111、111a…主データ側復号部、 112…再構成誤差算出部、 113…最適化部、 114…STE実行部、 2…自己符号化装置、 200…エンコーダ、 201…自己符号化対象取得部、 202…学習済み主データ側符号化部、 203…学習済み補助データ側符号化部、 204…ベクトル量子化部、 205…スカラー量子化部、 206…学習済み補助データ側確率推定部、 207…学習済み補助データ側復号部、 208…補助エントロピー符号化部、 209…主データ側確率推定部、 210…主エントロピー符号化部、 211…データ多重化部、 213…符号化データ取得部、 214…データ分離部、 215…補助エントロピー復号部、 216…学習済み補助データ側復号部、 217…主エントロピー復号部、 218…学習済み主データ側復号部、 11…制御部、 12…入力部、 13…通信部、 14…記憶部、 15…出力部、 120…記憶制御部、 130…通信制御部、 140…出力制御部、 21…制御部、 22…入力部、 23…通信部、 24…記憶部、 25…出力部、 20…自己符号化実行部、 220…記憶制御部、 230…通信制御部、 240…出力制御部、 91…プロセッサ、 92…メモリ、 93…プロセッサ、 94…メモリ

Claims (7)

  1. ベクトル量子化を用いた自己符号化の処理であり、自己符号化の対象の特徴量である主データ特徴量と、前記主データ特徴量の特徴量である補助特徴量とを用いる自己符号化の処理であり、前記主データ特徴量をベクトル量子化した結果に対するエントロピー符号化と前記補助特徴量をスカラー量子化した結果に対するエントロピー符号化とを行う自己符号化の処理、における符号化と復号との処理を学習により更新する学習部、
    を備え、
    前記学習部は前記学習において、前記主データ特徴量を示すベクトルの生起確率を推定する主データ側確率推定処理を実行し、
    前記主データ側確率推定処理は、代表ベクトルが格子状に配置されたベクトル空間においてパラメトライズされた確率密度関数の積分を表すモンテカルロ積分の値であって前記ベクトル空間におけるボロノイ領域のモンテカルロ積分の値の足し合わせの結果であり、前記確率密度関数の平均を表す前記ベクトル空間内の位置である平均位置に近いボロノイ領域の順に前記モンテカルロ積分の値を足し合わせた結果、が1より大きい場合に足し合わされたボロノイ領域のうち前記主データ特徴量を示すベクトルの位置から最も近いボロノイ領域のモンテカルロ積分の値を、前記主データ特徴量を示すベクトルの生起確率、として推定する、
    学習装置。
  2. 前記学習部は、前記主データ側確率推定処理によって推定された前記生起確率に基づいて得られる前記主データ特徴量のエントロピー、を用いて前記符号化と前記復号との処理を更新する、
    請求項1に記載の学習装置。
  3. 前記ベクトル量子化は、LatticeVQである、
    請求項1又は2に記載の学習装置。
  4. 自己符号化の対象を取得する自己符号化対象取得部と、
    ベクトル量子化を用いた自己符号化の処理であり、自己符号化の対象の特徴量である主データ特徴量と、前記主データ特徴量の特徴量である補助特徴量とを用いる自己符号化の処理であり、前記主データ特徴量をベクトル量子化した結果に対するエントロピー符号化と前記補助特徴量をスカラー量子化した結果に対するエントロピー符号化とを行う自己符号化の処理、における符号化と復号との処理を学習により更新する学習部、を備え、前記学習部は前記学習において、前記主データ特徴量を示すベクトルの生起確率を推定する主データ側確率推定処理を実行し、前記主データ側確率推定処理は、代表ベクトルが格子状に配置されたベクトル空間においてパラメトライズされた確率密度関数の積分を表すモンテカルロ積分の値であって前記ベクトル空間におけるボロノイ領域のモンテカルロ積分の値の足し合わせの結果であり、前記確率密度関数の平均を表す前記ベクトル空間内の位置である平均位置に近いボロノイ領域の順に前記モンテカルロ積分の値を足し合わせた結果、が1より大きい場合に足し合わされたボロノイ領域のうち主データ特徴量を示すベクトルの位置から最も近いボロノイ領域のモンテカルロ積分の値を、前記主データ特徴量を示すベクトルの生起確率、として推定する、学習装置を用いて得られた、学習済みの符号化の処理と学習済みの復号の処理とを用いて、前記自己符号化対象取得部が取得した前記対象のベクトル量子化による自己符号化を行う自己符号化実行部と、
    を備える自己符号化装置。
  5. ベクトル量子化を用いた自己符号化の処理であり、自己符号化の対象の特徴量である主データ特徴量と、前記主データ特徴量の特徴量である補助特徴量とを用いる自己符号化の処理であり、前記主データ特徴量をベクトル量子化した結果に対するエントロピー符号化と前記補助特徴量をスカラー量子化した結果に対するエントロピー符号化とを行う自己符号化の処理、における符号化と復号との処理を学習により更新する学習ステップ、
    を有し、
    前記学習ステップは前記学習において、前記主データ特徴量を示すベクトルの生起確率を推定する主データ側確率推定処理を実行し、
    前記主データ側確率推定処理は、代表ベクトルが格子状に配置されたベクトル空間においてパラメトライズされた確率密度関数の積分を表すモンテカルロ積分の値であって前記ベクトル空間におけるボロノイ領域のモンテカルロ積分の値の足し合わせの結果であり、前記確率密度関数の平均を表す前記ベクトル空間内の位置である平均位置に近いボロノイ領域の順に前記モンテカルロ積分の値を足し合わせた結果、が1より大きい場合に足し合わされたボロノイ領域のうち主データ特徴量を示すベクトルの位置から最も近いボロノイ領域のモンテカルロ積分の値を、前記主データ特徴量を示すベクトルの生起確率、として推定する、
    学習方法。
  6. 自己符号化の対象を取得する自己符号化対象取得ステップと、
    ベクトル量子化を用いた自己符号化の処理であり、自己符号化の対象の特徴量である主データ特徴量と、前記主データ特徴量の特徴量である補助特徴量とを用いる自己符号化の処理であり、前記主データ特徴量をベクトル量子化した結果に対するエントロピー符号化と前記補助特徴量をスカラー量子化した結果に対するエントロピー符号化とを行う自己符号化の処理、における符号化と復号との処理を学習により更新する学習ステップ、を有し、前記学習ステップは前記学習において、前記主データ特徴量を示すベクトルの生起確率を推定する主データ側確率推定処理を実行し、前記主データ側確率推定処理は、代表ベクトルが格子状に配置されたベクトル空間においてパラメトライズされた確率密度関数の積分を表すモンテカルロ積分の値であって前記ベクトル空間におけるボロノイ領域のモンテカルロ積分の値の足し合わせの結果であり、前記確率密度関数の平均を表す前記ベクトル空間内の位置である平均位置に近いボロノイ領域の順に前記モンテカルロ積分の値を足し合わせた結果、が1より大きい場合に足し合わされたボロノイ領域のうち主データ特徴量を示すベクトルの位置から最も近いボロノイ領域のモンテカルロ積分の値を、前記主データ特徴量を示すベクトルの生起確率、として推定する、学習方法を用いて得られた、学習済みの符号化の処理と学習済みの復号の処理とを用いて、前記自己符号化対象取得ステップが取得した前記対象のベクトル量子化による自己符号化を行う自己符号化実行ステップと、
    を有する自己符号化方法。
  7. 請求項1に記載の学習装置としてコンピュータを機能させるためのプログラム。
JP2024528210A 2022-06-23 2022-06-23 学習装置、自己符号化装置、学習方法、自己符号化方法及びプログラム Active JP7723331B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/025101 WO2023248427A1 (ja) 2022-06-23 2022-06-23 学習装置、自己符号化装置、学習方法、自己符号化方法及びプログラム

Publications (2)

Publication Number Publication Date
JPWO2023248427A1 JPWO2023248427A1 (ja) 2023-12-28
JP7723331B2 true JP7723331B2 (ja) 2025-08-14

Family

ID=89379313

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2024528210A Active JP7723331B2 (ja) 2022-06-23 2022-06-23 学習装置、自己符号化装置、学習方法、自己符号化方法及びプログラム

Country Status (2)

Country Link
JP (1) JP7723331B2 (ja)
WO (1) WO2023248427A1 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210360259A1 (en) 2020-05-12 2021-11-18 Tencent America LLC Substitutional end-to-end video coding

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210360259A1 (en) 2020-05-12 2021-11-18 Tencent America LLC Substitutional end-to-end video coding

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
GUO, Zongyu, et al.,Soft then Hard: Rethinking the Quantization in Neural Image Compression,arXiv.org, [online],2021年06月17日,[retrieved on 2022.08.31], Retrieved from <https://arxiv.org/pdf/2104.05168v3.pdf>,<DOI: 10.48550/arXiv.2104.05168>
LI, Binglin, et al.,Deep Learning-based Image Compression with Trellis Coded Quantization,2020 Data Compression Conference (DCC), [online],2020年,[retrieved on 2022.08.31], Retrieved from <https://ieeexplore.ieee.org/document/9105892>,<DOI: 10.1109/DCC47342.2020.00009>

Also Published As

Publication number Publication date
JPWO2023248427A1 (ja) 2023-12-28
WO2023248427A1 (ja) 2023-12-28

Similar Documents

Publication Publication Date Title
CN113424202B (zh) 针对神经网络训练调整激活压缩
KR102771938B1 (ko) 신경망 모델 압축
CN113313229B (zh) 模型压缩中对稀疏率的贝叶斯优化
CN113348474B (zh) 具有非均匀尾数的神经网络激活压缩
Xin et al. Maximal sparsity with deep networks?
US12155849B2 (en) Method and system for image compressing and coding with deep learning
US11221990B2 (en) Ultra-high compression of images based on deep learning
US12354311B2 (en) Data compression and decompression system and method thereof
CN111147862B (zh) 一种基于目标编码的端到端图像压缩方法
JP2022187683A5 (ja)
CN111727445A (zh) 局部熵编码的数据压缩
JP2022078735A (ja) 画像処理装置、画像処理プログラム、画像認識装置、画像認識プログラム及び画像認識システム
CN113467949A (zh) 边缘计算环境下用于分布式dnn训练的梯度压缩方法
CN115983370A (zh) 散乱数据插值模型训练方法、插值方法及装置
CN119341575A (zh) 一种分形数据压缩存储方法、系统及相关设备
US11922018B2 (en) Storage system and storage control method including dimension setting information representing attribute for each of data dimensions of multidimensional dataset
JP7583338B2 (ja) 学習装置、自己符号化装置、学習方法、自己符号化方法及びプログラム
JP7583337B2 (ja) 学習装置、自己符号化装置、学習方法、自己符号化方法及びプログラム
JP7723331B2 (ja) 学習装置、自己符号化装置、学習方法、自己符号化方法及びプログラム
JP7730071B2 (ja) 学習装置、学習方法及びプログラム
CN120632401A (zh) 基于量子近似优化的温湿度传感器数据高维特征压缩方法
CN113177627A (zh) 优化系统、重新训练系统及其方法及处理器和可读介质
CN113038134B (zh) 一种图片处理方法、智能终端及存储介质
KR20220065306A (ko) 연속 심층 영상 압축을 위한 장치 및 방법
WO2020177863A1 (en) Training of algorithms

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20241016

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20250701

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20250714

R150 Certificate of patent or registration of utility model

Ref document number: 7723331

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150