テンソルスケッチ

Algorithm for reducing the dimension of tensors

統計学機械学習アルゴリズムにおいてテンソルスケッチは次元削減の一種であり、テンソル構造を持つベクトルに適用すると特に効率的です。 [1] [2]このようなスケッチは、明示的カーネル法やニューラルネットワークにおける双線形プーリングを高速化するために使用でき、多くの数値線形代数アルゴリズムの基礎となっています[3]

数学的な定義

数学的には、次元削減行列またはスケッチ行列は、任意のベクトルに対してとなる行列である M R k × d {\displaystyle M\in \mathbb {R} ^{k\times d}} k < d {\displaystyle k<d} x R d {\displaystyle x\in \mathbb {R} ^{d}}

| M x 2 x 2 | < ε x 2 {\displaystyle |\|Mx\|_{2}-\|x\|_{2}|<\varepsilon \|x\|_{2}}

高い確率で。言い換えれば、ベクトルのノルムは小さな誤差まで保存されます。 M {\displaystyle M}

テンソルスケッチには、となるベクトルに対してであれば、変換をより効率的に計算できるという追加の特性があります。ここで は外積ではなくクロネッカー積を表しますが、この2つは平坦化によって関連付けられています x = y z {\displaystyle x=y\otimes z} y R d 1 , z R d 2 {\displaystyle y\in \mathbb {R} ^{d_{1}},z\in \mathbb {R} ^{d_{2}}} d 1 d 2 = d {\displaystyle d_{1}d_{2}=d} M ( y z ) {\displaystyle M(y\otimes z)} {\displaystyle \otimes }

高速化は、まず を書き直すことで実現されます。ここで は要素ごとの(アダマール)積を表します。 とはそれぞれ と の時間計算できます。アダマール積を含めると、全体の時間は になります。ほとんどの用途において、この方法は の時間を必要とする完全な方法よりも大幅に高速です M ( y z ) = M y M z {\displaystyle M(y\otimes z)=M'y\circ M''z} {\displaystyle \circ } M y {\displaystyle M'y} M z {\displaystyle M''z} O ( k d 1 ) {\displaystyle O(kd_{1})} O ( k d 2 ) {\displaystyle O(kd_{2})} O ( d 1 d 2 + k d 1 + k d 2 ) {\displaystyle O(d_{1}d_{2}+kd_{1}+kd_{2})} M ( y z ) {\displaystyle M(y\otimes z)} O ( k d ) = O ( k d 1 d 2 ) {\displaystyle O(kd)=O(kd_{1}d_{2})}

などの高次テンソルの場合、節約効果はさらに大きくなります。 x = y z t {\displaystyle x=y\otimes z\otimes t}

歴史

テンソルスケッチという用語は、2013年にRasmus Pagh [5]が同年に発表した手法を説明するために造語されました[4] 。当初は、高速フーリエ変換を用いてカウントスケッチの高速畳み込みを行う手法として理解されていました。その後の研究により、テンソルランダム埋め込みを用いたより広範な次元削減手法へと一般化されました。

テンソルランダム埋め込みは、2010年に差分プライバシーに関する論文[6]で導入され、2012年にRudelsonらによってスパース回復の文脈で初めて分析されました。[7]

Avronら[8] は、テンソルスケッチの部分空間埋め込み特性を初めて研究し、特に多項式カーネルへの応用に焦点を当てました。この文脈において、スケッチは個々のベクトルのノルムを一定の確率で保存するだけでなく、個々の線形部分空間内のすべてのベクトルのノルムを保存することが求められます。これははるかに強力な特性であり、より大きなスケッチサイズを必要としますが、David Woodruffの著書[3]で検討されているように、カーネル法を非常に幅広く適用することを可能にします。

テンソルランダム投影

分割積は、行のテンソル積として定義されます(1996年にV. Slyusar [9]によって提案されました[10] [11] [12] [13] [14]レーダーおよびデジタルアンテナアレイへの応用)。より直接的に、とを2つの行列とします。このとき、面分割積は[10] [11] [12] [13]です。 この積が有用な理由は、次の恒等式によるものです。 C R 3 × 3 {\displaystyle \mathbf {C} \in \mathbb {R} ^{3\times 3}} D R 3 × 3 {\displaystyle \mathbf {D} \in \mathbb {R} ^{3\times 3}} C D {\displaystyle \mathbf {C} \bullet \mathbf {D} } C D = [ C 1 D 1 C 2 D 2 C 3 D 3 ] = [ C 1 , 1 D 1 , 1 C 1 , 1 D 1 , 2 C 1 , 1 D 1 , 3 C 1 , 2 D 1 , 1 C 1 , 2 D 1 , 2 C 1 , 2 D 1 , 3 C 1 , 3 D 1 , 1 C 1 , 3 D 1 , 2 C 1 , 3 D 1 , 3 C 2 , 1 D 2 , 1 C 2 , 1 D 2 , 2 C 2 , 1 D 2 , 3 C 2 , 2 D 2 , 1 C 2 , 2 D 2 , 2 C 2 , 2 D 2 , 3 C 2 , 3 D 2 , 1 C 2 , 3 D 2 , 2 C 2 , 3 D 2 , 3 C 3 , 1 D 3 , 1 C 3 , 1 D 3 , 2 C 3 , 1 D 3 , 3 C 3 , 2 D 3 , 1 C 3 , 2 D 3 , 2 C 3 , 2 D 3 , 3 C 3 , 3 D 3 , 1 C 3 , 3 D 3 , 2 C 3 , 3 D 3 , 3 ] . {\displaystyle \mathbf {C} \bullet \mathbf {D} =\left[{\begin{array}{c }\mathbf {C} _{1}\otimes \mathbf {D} _{1}\\\hline \mathbf {C} _{2}\otimes \mathbf {D} _{2}\\\hline \mathbf {C} _{3}\otimes \mathbf {D} _{3}\\\end{array}}\right]=\left[{\begin{array}{c c c c c c c c c }\mathbf {C} _{1,1}\mathbf {D} _{1,1}&\mathbf {C} _{1,1}\mathbf {D} _{1,2}&\mathbf {C} _{1,1}\mathbf {D} _{1,3}&\mathbf {C} _{1,2}\mathbf {D} _{1,1}&\mathbf {C} _{1,2}\mathbf {D} _{1,2}&\mathbf {C} _{1,2}\mathbf {D} _{1,3}&\mathbf {C} _{1,3}\mathbf {D} _{1,1}&\mathbf {C} _{1,3}\mathbf {D} _{1,2}&\mathbf {C} _{1,3}\mathbf {D} _{1,3}\\\hline \mathbf {C} _{2,1}\mathbf {D} _{2,1}&\mathbf {C} _{2,1}\mathbf {D} _{2,2}&\mathbf {C} _{2,1}\mathbf {D} _{2,3}&\mathbf {C} _{2,2}\mathbf {D} _{2,1}&\mathbf {C} _{2,2}\mathbf {D} _{2,2}&\mathbf {C} _{2,2}\mathbf {D} _{2,3}&\mathbf {C} _{2,3}\mathbf {D} _{2,1}&\mathbf {C} _{2,3}\mathbf {D} _{2,2}&\mathbf {C} _{2,3}\mathbf {D} _{2,3}\\\hline \mathbf {C} _{3,1}\mathbf {D} _{3,1}&\mathbf {C} _{3,1}\mathbf {D} _{3,2}&\mathbf {C} _{3,1}\mathbf {D} _{3,3}&\mathbf {C} _{3,2}\mathbf {D} _{3,1}&\mathbf {C} _{3,2}\mathbf {D} _{3,2}&\mathbf {C} _{3,2}\mathbf {D} _{3,3}&\mathbf {C} _{3,3}\mathbf {D} _{3,1}&\mathbf {C} _{3,3}\mathbf {D} _{3,2}&\mathbf {C} _{3,3}\mathbf {D} _{3,3}\end{array}}\right].}

( C D ) ( x y ) = C x D y = [ ( C x ) 1 ( D y ) 1 ( C x ) 2 ( D y ) 2 ] , {\displaystyle (\mathbf {C} \bullet \mathbf {D} )(x\otimes y)=\mathbf {C} x\circ \mathbf {D} y=\left[{\begin{array}{c }(\mathbf {C} x)_{1}(\mathbf {D} y)_{1}\\(\mathbf {C} x)_{2}(\mathbf {D} y)_{2}\\\vdots \end{array}}\right],}

ここで、は要素ごとの(アダマール)積です。この演算は線形時間で計算できるため、テンソル構造を持つベクトルの乗算は通常の行列よりもはるかに高速です。 {\displaystyle \circ } C D {\displaystyle \mathbf {C} \bullet \mathbf {D} }

高速フーリエ変換による構築

PhamとPagh [4]によるテンソルスケッチはを計算します 。ここで、 とは独立したカウントスケッチ行列であり、はベクトル畳み込みです。彼らは驚くべきことに、これが に等しいことを示しています。これはテンソル積のカウントスケッチです。 C ( 1 ) x C ( 2 ) y {\displaystyle C^{(1)}x\ast C^{(2)}y} C ( 1 ) {\displaystyle C^{(1)}} C ( 2 ) {\displaystyle C^{(2)}} {\displaystyle \ast } C ( x y ) {\displaystyle C(x\otimes y)}

この関係は面分割積の観点から次のよう に見ることができる。

C ( 1 ) x C ( 2 ) y = F 1 ( F C ( 1 ) x F C ( 2 ) y ) {\displaystyle C^{(1)}x\ast C^{(2)}y={\mathcal {F}}^{-1}({\mathcal {F}}C^{(1)}x\circ {\mathcal {F}}C^{(2)}y)} ここで、フーリエ変換行列です。 F {\displaystyle {\mathcal {F}}}

は正規直交行列なのでのノルムには影響せず、無視できます。残るは です F {\displaystyle {\mathcal {F}}} F 1 {\displaystyle {\mathcal {F}}^{-1}} C x {\displaystyle Cx} C C ( 1 ) C ( 2 ) {\displaystyle C\sim {\mathcal {C}}^{(1)}\bullet {\mathcal {C}}^{(2)}}

一方で、

F ( C ( 1 ) x C ( 2 ) y ) = F C ( 1 ) x F C ( 2 ) y = ( F C ( 1 ) F C ( 2 ) ) ( x y ) {\displaystyle {\mathcal {F}}(C^{(1)}x\ast C^{(2)}y)={\mathcal {F}}C^{(1)}x\circ {\mathcal {F}}C^{(2)}y=({\mathcal {F}}C^{(1)}\bullet {\mathcal {F}}C^{(2)})(x\otimes y)}

一般行列への応用

オリジナルのテンソル スケッチ アルゴリズムの問​​題は、必ずしも次元削減が適切ではない カウント スケッチマトリックスを使用していたことです。

2020年[15]には、十分にランダムな独立行を持つ任意の行列であれば、テンソルスケッチを作成できることが示されました。これにより、実ガウスジョンソンリンデンシュトラウス行列など、より強い保証を持つ行列の使用が可能になります

特に、次の定理が得られる。

およびとなるようなiid 行を持つ行列を考えます。 がおよびからなる独立な行列であるとします T {\displaystyle T} T 1 , , T m R d {\displaystyle T_{1},\dots ,T_{m}\in \mathbb {R} ^{d}} E [ ( T 1 x ) 2 ] = x 2 2 {\displaystyle E[(T_{1}x)^{2}]=\|x\|_{2}^{2}} E [ ( T 1 x ) p ] 1 / p a p x 2 {\displaystyle E[(T_{1}x)^{p}]^{1/p}\leq {\sqrt {ap}}\|x\|_{2}} T ( 1 ) , , T ( c ) {\displaystyle T^{(1)},\dots ,T^{(c)}} T {\displaystyle T} M = T ( 1 ) T ( c ) {\displaystyle M=T^{(1)}\bullet \dots \bullet T^{(c)}}
そして、任意のベクトルに対して確率的に | M x 2 x 2 | < ε x 2 {\displaystyle |\|Mx\|_{2}-\|x\|_{2}|<\varepsilon \|x\|_{2}} 1 δ {\displaystyle 1-\delta } x {\displaystyle x}
m = ( 4 a ) 2 c ε 2 log 1 / δ + ( 2 a e ) ε 1 ( log 1 / δ ) c {\displaystyle m=(4a)^{2c}\varepsilon ^{-2}\log 1/\delta +(2ae)\varepsilon ^{-1}(\log 1/\delta )^{c}}

特に、 の要素がである場合 、 が得られ、これは が小さい場合の通常のジョンソン・リンデンシュトラウスの定理と一致します T {\displaystyle T} ± 1 {\displaystyle \pm 1} m = O ( ε 2 log 1 / δ + ε 1 ( 1 c log 1 / δ ) c ) {\displaystyle m=O(\varepsilon ^{-2}\log 1/\delta +\varepsilon ^{-1}({\tfrac {1}{c}}\log 1/\delta )^{c})} m = O ( ε 2 log 1 / δ ) {\displaystyle m=O(\varepsilon ^{-2}\log 1/\delta )} ε {\displaystyle \varepsilon }

論文[15]では、ガウス分布を持つテンソルランダム化投影を用いた構成には依存性が必要であることも示されている ε 1 ( 1 c log 1 / δ ) c {\displaystyle \varepsilon ^{-1}({\tfrac {1}{c}}\log 1/\delta )^{c}}

バリエーション

再帰構築

面分割積に基づくテンソルスケッチにおける 指数関数的な依存性のため、2020年に[15]異なるアプローチが開発され、 c {\displaystyle c}

M ( x y ) = M ( 1 ) ( x ( M ( 2 ) y ) ) {\displaystyle M(x\otimes y\otimes \cdots )=M^{(1)}(x\otimes (M^{(2)}y\otimes \cdots ))}

このようなことを達成できるの M {\displaystyle M}

M = M ( c ) ( M ( c 1 ) I d ) ( M ( c 2 ) I d 2 ) ( M ( 1 ) I d c 1 ) {\displaystyle M=M^{(c)}(M^{(c-1)}\otimes I_{d})(M^{(c-2)}\otimes I_{d^{2}})\cdots (M^{(1)}\otimes I_{d^{c-1}})}

この方法では、一般的なテンソル スケッチ メソッドを 2 つのテンソルの順序にのみ適用し、行数の指数依存性を回避します。

このように次元削減を組み合わせると、係数 だけ増加するだけであることが証明されています[15] c {\displaystyle c} ε {\displaystyle \varepsilon } c {\displaystyle {\sqrt {c}}}

高速構築

高速ジョンソン・リンデンシュトラウス変換は次元削減行列である

行列 が与えられた場合、行列ベクトル積の計算には時間がかかります高速ジョンソン・リンデンシュトラウス変換(FJLT)[16]は、2006年にAilonとChazelleによって導入されました。 M R k × d {\displaystyle M\in \mathbb {R} ^{k\times d}} M x {\displaystyle Mx} k d {\displaystyle kd}

このメソッドのバージョンでは M = SHD {\displaystyle M=\operatorname {SHD} }

  1. D {\displaystyle D} は、各対角要素が独立している対角行列です D i , i {\displaystyle D_{i,i}} ± 1 {\displaystyle \pm 1}

行列とベクトルの乗算は時間内に計算できます D x {\displaystyle Dx} O ( d ) {\displaystyle O(d)}

  1. H {\displaystyle H} はアダマール行列であり、行列とベクトルの乗算を100分で行うことができる。 O ( d log d ) {\displaystyle O(d\log d)}
  2. S {\displaystyle S} 各行に 1 つだけ 1 がある以外はすべてゼロのサンプリング マトリックスです。 k × d {\displaystyle k\times d}

対角行列を、完全に独立しているのではなく、対角線上の値のテンソル積を持つ行列に置き換えると、高速に計算できるようになります。 ± 1 {\displaystyle \pm 1} SHD ( x y ) {\displaystyle \operatorname {SHD} (x\otimes y)}

例えば、2つの独立ベクトルと、対角線上にを持つ対角行列があるとします。すると、次のように分割できます ρ , σ { 1 , 1 } 2 {\displaystyle \rho ,\sigma \in \{-1,1\}^{2}} ± 1 {\displaystyle \pm 1} D {\displaystyle D} ρ σ {\displaystyle \rho \otimes \sigma } SHD ( x y ) {\displaystyle \operatorname {SHD} (x\otimes y)}

SHD ( x y ) = [ 1 0 0 0 0 0 1 0 0 1 0 0 ] [ 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ] [ σ 1 ρ 1 0 0 0 0 σ 1 ρ 2 0 0 0 0 σ 2 ρ 1 0 0 0 0 σ 2 ρ 2 ] [ x 1 y 1 x 2 y 1 x 1 y 2 x 2 y 2 ] = ( [ 1 0 0 1 1 0 ] [ 1 0 1 0 0 1 ] ) ( [ 1 1 1 1 ] [ 1 1 1 1 ] ) ( [ σ 1 0 0 σ 2 ] [ ρ 1 0 0 ρ 2 ] ) ( [ x 1 x 2 ] [ y 1 y 2 ] ) = ( [ 1 0 0 1 1 0 ] [ 1 0 1 0 0 1 ] ) ( [ 1 1 1 1 ] [ σ 1 0 0 σ 2 ] [ x 1 x 2 ] [ 1 1 1 1 ] [ ρ 1 0 0 ρ 2 ] [ y 1 y 2 ] ) = [ 1 0 0 1 1 0 ] [ 1 1 1 1 ] [ σ 1 0 0 σ 2 ] [ x 1 x 2 ] [ 1 0 1 0 0 1 ] [ 1 1 1 1 ] [ ρ 1 0 0 ρ 2 ] [ y 1 y 2 ] . {\displaystyle {\begin{aligned}&\operatorname {SHD} (x\otimes y)\\&\quad ={\begin{bmatrix}1&0&0&0\\0&0&1&0\\0&1&0&0\end{bmatrix}}{\begin{bmatrix}1&1&1&1\\1&-1&1&-1\\1&1&-1&-1\\1&-1&-1&1\end{bmatrix}}{\begin{bmatrix}\sigma _{1}\rho _{1}&0&0&0\\0&\sigma _{1}\rho _{2}&0&0\\0&0&\sigma _{2}\rho _{1}&0\\0&0&0&\sigma _{2}\rho _{2}\\\end{bmatrix}}{\begin{bmatrix}x_{1}y_{1}\\x_{2}y_{1}\\x_{1}y_{2}\\x_{2}y_{2}\end{bmatrix}}\\[5pt]&\quad =\left({\begin{bmatrix}1&0\\0&1\\1&0\end{bmatrix}}\bullet {\begin{bmatrix}1&0\\1&0\\0&1\end{bmatrix}}\right)\left({\begin{bmatrix}1&1\\1&-1\end{bmatrix}}\otimes {\begin{bmatrix}1&1\\1&-1\end{bmatrix}}\right)\left({\begin{bmatrix}\sigma _{1}&0\\0&\sigma _{2}\\\end{bmatrix}}\otimes {\begin{bmatrix}\rho _{1}&0\\0&\rho _{2}\\\end{bmatrix}}\right)\left({\begin{bmatrix}x_{1}\\x_{2}\end{bmatrix}}\otimes {\begin{bmatrix}y_{1}\\y_{2}\end{bmatrix}}\right)\\[5pt]&\quad =\left({\begin{bmatrix}1&0\\0&1\\1&0\end{bmatrix}}\bullet {\begin{bmatrix}1&0\\1&0\\0&1\end{bmatrix}}\right)\left({\begin{bmatrix}1&1\\1&-1\end{bmatrix}}{\begin{bmatrix}\sigma _{1}&0\\0&\sigma _{2}\\\end{bmatrix}}{\begin{bmatrix}x_{1}\\x_{2}\end{bmatrix}}\,\otimes \,{\begin{bmatrix}1&1\\1&-1\end{bmatrix}}{\begin{bmatrix}\rho _{1}&0\\0&\rho _{2}\\\end{bmatrix}}{\begin{bmatrix}y_{1}\\y_{2}\end{bmatrix}}\right)\\[5pt]&\quad ={\begin{bmatrix}1&0\\0&1\\1&0\end{bmatrix}}{\begin{bmatrix}1&1\\1&-1\end{bmatrix}}{\begin{bmatrix}\sigma _{1}&0\\0&\sigma _{2}\\\end{bmatrix}}{\begin{bmatrix}x_{1}\\x_{2}\end{bmatrix}}\,\circ \,{\begin{bmatrix}1&0\\1&0\\0&1\end{bmatrix}}{\begin{bmatrix}1&1\\1&-1\end{bmatrix}}{\begin{bmatrix}\rho _{1}&0\\0&\rho _{2}\\\end{bmatrix}}{\begin{bmatrix}y_{1}\\y_{2}\end{bmatrix}}.\end{aligned}}}

言い換えると、は 2 つの高速ジョンソン・リンデンシュトラウス変換に分割され、全体の削減には直接的なアプローチの場合 よりも時間がかかります。 SHD = S ( 1 ) H D ( 1 ) S ( 2 ) H D ( 2 ) {\displaystyle \operatorname {SHD} =S^{(1)}HD^{(1)}\bullet S^{(2)}HD^{(2)}} O ( d 1 log d 1 + d 2 log d 2 ) {\displaystyle O(d_{1}\log d_{1}+d_{2}\log d_{2})} d 1 d 2 log ( d 1 d 2 ) {\displaystyle d_{1}d_{2}\log(d_{1}d_{2})}

同じアプローチを拡張して、次のような高次の積を計算することもできる。 SHD ( x y z ) {\displaystyle \operatorname {SHD} (x\otimes y\otimes z)}

Ahleら[15]は、 が行を持つ場合、任意のベクトルに対しての確率でとなり、次数テンソルとの高速な乗算が可能になることを示しています。 SHD {\displaystyle \operatorname {SHD} } ε 2 ( log 1 / δ ) c + 1 {\displaystyle \varepsilon ^{-2}(\log 1/\delta )^{c+1}} | SHD x 2 x | ε x 2 {\displaystyle |\|\operatorname {SHD} x\|_{2}-\|x\||\leq \varepsilon \|x\|_{2}} x R d c {\displaystyle x\in \mathbb {R} ^{d^{c}}} 1 δ {\displaystyle 1-\delta } c {\displaystyle c}

同年、Jinら[17]は、部分標本化アダマール行列を含むRIPと呼ばれるより一般的な行列クラスに対して同様の結果を示した。彼らは、これらの行列は行数が であればテンソルに分割できることを示した。 の場合、これは以前の結果と一致する。 ε 2 ( log 1 / δ ) 2 c 1 log d {\displaystyle \varepsilon ^{-2}(\log 1/\delta )^{2c-1}\log d} c = 2 {\displaystyle c=2}

これらの高速な構築は、前述の再帰アプローチと組み合わせることができ、全体的に最も高速なテンソル スケッチが得られます。

データ認識スケッチ

いわゆる「データを考慮した」テンソルスケッチも可能です。データにランダム行列を乗算する代わりに、データ点はその点のノルムに応じて一定の確率で独立にサンプリングされます。[18]

アプリケーション

明示的な多項式カーネル

カーネル法は、アルゴリズム設計者にデータポイントの類似性を測定するための「特徴空間」を自由に設計できるため、機械学習でよく使用されます。単純なカーネルベースの二値分類器は、以下の計算に基づいています。

y ^ ( x ) = sgn i = 1 n y i k ( x i , x ) , {\displaystyle {\hat {y}}(\mathbf {x'} )=\operatorname {sgn} \sum _{i=1}^{n}y_{i}k(\mathbf {x} _{i},\mathbf {x'} ),}

ここで、はデータ点、は 番目の点のラベル(-1 または +1)、はのクラスの予測値です。関数はカーネルです。典型的な例としては、ラジアル基底関数カーネル、、など多項式カーネルがあります。 x i R d {\displaystyle \mathbf {x} _{i}\in \mathbb {R} ^{d}} y i {\displaystyle y_{i}} i {\displaystyle i} y ^ ( x ) {\displaystyle {\hat {y}}(\mathbf {x'} )} x {\displaystyle \mathbf {x'} } k : R d × R d R {\displaystyle k:\mathbb {R} ^{d}\times \mathbb {R} ^{d}\to \mathbb {R} } k ( x , x ) = exp ( x x 2 2 ) {\displaystyle k(x,x')=\exp(-\|x-x'\|_{2}^{2})} k ( x , x ) = ( 1 + x , x ) 2 {\displaystyle k(x,x')=(1+\langle x,x'\rangle )^{2}}

このように用いられるカーネル法は「暗黙的」と呼ばれます。場合によっては、「明示的」カーネル法を用いる方が高速です。この方法では、 となるような関数のペアが求められます。これにより、上記の計算は次のように表すことができます。 f , g : R d R D {\displaystyle f,g:\mathbb {R} ^{d}\to \mathbb {R} ^{D}} k ( x , x ) = f ( x ) , g ( x ) {\displaystyle k(x,x')=\langle f(x),g(x')\rangle }

y ^ ( x ) = sgn i = 1 n y i f ( x i ) , g ( x ) = sgn ( i = 1 n y i f ( x i ) ) , g ( x ) , {\displaystyle {\hat {y}}(\mathbf {x'} )=\operatorname {sgn} \sum _{i=1}^{n}y_{i}\langle f(\mathbf {x} _{i}),g(\mathbf {x'} )\rangle =\operatorname {sgn} \left\langle \left(\sum _{i=1}^{n}y_{i}f(\mathbf {x} _{i})\right),g(\mathbf {x'} )\right\rangle ,}

ここで、値は事前に計算できます。 i = 1 n y i f ( x i ) {\displaystyle \sum _{i=1}^{n}y_{i}f(\mathbf {x} _{i})}

この手法の問題点は、特徴空間が非常に大きくなる可能性があることです。つまり、 です。例えば、多項式カーネルの場合および となります。ここではテンソル積であり、 です。が既に大きい場合、 はデータポイント数()よりもはるかに大きくなる可能性があり、そのため明示的な手法は非効率的です。 D >> d {\displaystyle D>>d} k ( x , x ) = x , x 3 {\displaystyle k(x,x')=\langle x,x'\rangle ^{3}} f ( x ) = x x x {\displaystyle f(x)=x\otimes x\otimes x} g ( x ) = x x x {\displaystyle g(x')=x'\otimes x'\otimes x'} {\displaystyle \otimes } f ( x ) , g ( x ) R D {\displaystyle f(x),g(x')\in \mathbb {R} ^{D}} D = d 3 {\displaystyle D=d^{3}} d {\displaystyle d} D {\displaystyle D} n {\displaystyle n}

テンソル スケッチの考え方は、 よりも小さくても という特性が維持される近似関数を計算できるというものです f , g : R d R t {\displaystyle f',g':\mathbb {R} ^{d}\to \mathbb {R} ^{t}} t {\displaystyle t} d {\displaystyle d} f ( x ) , g ( x ) k ( x , x ) {\displaystyle \langle f'(x),g'(x')\rangle \approx k(x,x')}

この方法は2020年に[15]高次多項式やラジアル基底関数カーネルでも機能することが示されました。

圧縮行列乗算

行列で表される2つの大きなデータセットがあり、内積が最大となる行を見つけたいとします単純に計算して、すべての可能性を調べることもできます。しかし、これには少なくとも時間がかかり、おそらく標準的な行列乗算手法を使用するのとほぼ同じです。 X , Y R n × d {\displaystyle X,Y\in \mathbb {R} ^{n\times d}} i , j {\displaystyle i,j} X i , Y j {\displaystyle \langle X_{i},Y_{j}\rangle } Z = X Y T R n × n {\displaystyle Z=XY^{T}\in \mathbb {R} ^{n\times n}} n 2 {\displaystyle n^{2}} n 2 {\displaystyle n^{2}} n 2 d {\displaystyle n^{2}d}

圧縮行列乗算の考え方は、一般的な恒等式である。

X Y T = i = 1 d X i Y i {\displaystyle XY^{T}=\sum _{i=1}^{d}X_{i}\otimes Y_{i}}

ここではテンソル積です。 の(線形)近似を効率的に計算できるので、それらを合計して完全な積の近似値を得ることができます。 {\displaystyle \otimes } X i Y i {\displaystyle X_{i}\otimes Y_{i}}

コンパクト多重線形プーリング

テンソル スケッチを使用すると、ニューラル ネットワークで双線形プーリングを実装するときに必要な変数の数を減らすことができます

双線形プーリングは、異なるソースから 2 つの入力ベクトルを取得し、テンソル積をニューラル ネットワークへの入力層として 使用する手法です。 x , y {\displaystyle x,y} x y {\displaystyle x\otimes y}

[19]では、著者らは必要な変数の数を減らすためにテンソルスケッチの使用を検討した。

2017年の別の論文[20]では、入力特徴量のFFTを要素ごとの積を用いて結合する前に取得しています。これもまた、元のテンソルスケッチに対応しています。

参考文献

  1. ^ 「Low-rank Tucker decomposition of large tensors using: Tensor Sketch」(PDF) . amath.colorado.edu . コロラド州ボルダー:コロラド大学ボルダー校. 2019年2月14日時点のオリジナル(PDF)からアーカイブ。 2020年7月11日閲覧
  2. ^ Ahle, Thomas; Knudsen, Jakob (2019年9月3日). 「Almost Optimal Tensor Sketch」. ResearchGate . 2020年7月11日閲覧。
  3. ^ ab Woodruff, David P.「数値線形代数のためのツールとしてのスケッチ」Wayback Machineで2022年10月22日にアーカイブ。理論計算機科学10.1-2(2014):1–157。
  4. ^ ab Ninh, Pham; Pagh, Rasmus (2013).明示的な特徴マップを用いた高速かつスケーラブルな多項式カーネル.SIGKDD国際会議「知識発見とデータマイニング」.Association for Computing Machinery. doi :10.1145/2487575.2487591.
  5. ^ Pagh, Rasmus (2013). 「圧縮行列乗算」. ACM Transactions on Computation Theory . 5 (3). Association for Computing Machinery: 1– 17. arXiv : 1108.1320 . doi :10.1145/2493252.2493254. S2CID  47560654.
  6. ^ Kasiviswanathan、Shiva Prasad、他「分割表を非公開に公開することの代償と、相関行を持つランダム行列のスペクトル」(2022年10月22日アーカイブ、Wayback Machine)第42回ACMコンピューティング理論シンポジウム議事録。2010年。
  7. ^ Rudelson, Mark, Shuheng Zhou. 「異方性ランダム測定からの再構成(2022年10月17日アーカイブ、Wayback Machineにて)」学習理論会議、2012年。
  8. ^ Avron, Haim; Nguyen, Huy; Woodruff, David (2014). 「多項式カーネルの部分空間埋め込み」(PDF) . Advances in Neural Information Processing Systems . S2CID  16658740.
  9. ^ Anna Esteve, Eva Boj & Josep Fortiana (2009): 距離ベース回帰における相互作用項、Communications in Statistics – Theory and Methods、38:19、p. 3501 [1] 2021年4月26日アーカイブ、Wayback Machine
  10. ^ ab Slyusar, VI (1998). 「レーダーアプリケーションにおけるマトリックスの最終製品」(PDF) .無線エレクトロニクスと通信システム. 41 (3): 50– 53.
  11. ^ ab Slyusar, VI (1997-05-20). 「面分割行列積に基づくデジタルアンテナアレイの解析モデル」(PDF) . Proc. ICATT-97, Kyiv : 108–109 .
  12. ^ ab Slyusar, VI (1997-09-15). 「レーダー応用のための行列積の新しい演算」(PDF) . Proc. Direct and Inverse Problems of Electromagnetic and Acoustic Wave Theory (DIPED-97), Lviv. : 73– 74.
  13. ^ ab Slyusar, VI (1998年3月13日). 「行列の面積の族とその特性」(PDF) .サイバネティクスとシステム分析 C/C of Kibernetika I Sistemnyi Analiz. – 1999 . 35 (3): 379– 384. doi :10.1007/BF02733426. S2CID  119661450.
  14. ^ Slyusar, VI (2003). 「非同一チャネルを持つデジタルアンテナアレイモデルにおける行列の一般化面積」(PDF) .無線エレクトロニクスと通信システム. 46 (10): 9– 17.
  15. ^ abcdef Ahle, Thomas; Kapralov, Michael; Knudsen, Jakob; Pagh, Rasmus ; Velingker, Ameya; Woodruff, David; Zandieh, Amir (2020).高次多項式カーネルの無意識的スケッチ. ACM-SIAM 離散アルゴリズムシンポジウム. Association for Computing Machinery. arXiv : 1909.01410 . doi : 10.1137/1.9781611975994.9 .
  16. ^ Ailon, Nir; Chazelle, Bernard (2006). 「近似最近傍法と高速ジョンソン・リンデンシュトラウス変換」.第38回ACMコンピューティング理論シンポジウム議事録. ニューヨーク: ACM Press. pp.  557– 563. doi :10.1145/1132516.1132597. ISBN 1-59593-134-1. MR  2277181. S2CID  490517.
  17. ^ Jin, Ruhui, Tamara G. Kolda, Rachel Ward. 「クロネッカー積によるジョンソン・リンデンシュトラウス変換の高速化」arXivプレプリント arXiv:1909.04801 (2019).
  18. ^ Wang, Yining; Tung, Hsiao-Yu; Smola, Alexander; Anandkumar, Anima.スケッチによる高速かつ確実なテンソル分解. ニューラル情報処理システムの進歩 28 (NIPS 2015). arXiv : 1506.04448 .
  19. ^ Gao, Yang, et al. 「コンパクト双線形プーリング(2022年1月20日アーカイブ、Wayback Machineにて)」IEEEコンピュータービジョンおよびパターン認識会議議事録。2016年。
  20. ^ Algashaam, Faisal M., et al. 「マルチモーダルコンパクトマルチリニアプーリングによるマルチスペクトル眼周囲分類」IEEE Access 5 (2017): 14572–14578.

さらに読む

  • Ahle, Thomas; Knudsen, Jakob (2019-09-03). 「ほぼ最適なテンソルスケッチ」. ResearchGate . 2020年7月11日閲覧。
  • Slyusar, VI (1998). 「レーダー応用におけるマトリックスの最終製品」(PDF) .無線エレクトロニクスと通信システム. 41 (3): 50– 53.
  • Slyusar, VI (1997-05-20). 「面分割行列積に基づくデジタルアンテナアレイの解析モデル」(PDF) . Proc. ICATT-97, キエフ: 108–109 .
  • Slyusar, VI (1997-09-15). 「レーダー応用のための行列積の新しい演算」(PDF) .電磁波・音波理論の直接問題と逆問題 (DIPED-97) 論文集, リヴィウ: 73– 74.
  • Slyusar, VI (1998年3月13日). 「行列の面積族とその特性」(PDF) .サイバネティクスとシステム分析 C/C of Kibernetika I Sistemnyi Analiz.- 1999. 35 ( 3): 379– 384. doi :10.1007/BF02733426. S2CID  119661450.
Retrieved from "https://en.wikipedia.org/w/index.php?title=Tensor_sketch&oldid=1306387296"