https://github.com/dfdazac/wassdistance/tree/master
conocimientos previos
Aprendizaje de transporte óptimo computacional.
Específicamente, se puede ver que las coordenadas de la dualidad de entropía aumentan.
LC ε (a, b) = def. min P ∈ U ( a , b ) ⟨ P , C ⟩ − ε H ( P ) \mathrm{L}_{\mathbf{C}}^{\varepsilon}(\mathbf{a}, \mathbf{b }) \stackrel{\text { def. }}{=} \min _{\mathbf{P} \in \mathbf{U}(\mathbf{a}, \mathbf{b})}\angle\mathbf{P}, \mathbf{C}\rangle -\varepsilon\mathbf{H}(\mathbf{P})lCmi( un ,segundo )= definición PAG ∈ U ( a , b )min⟨P , _C ⟩−ε H ( P )
U ( a , b ) = def. { P ∈ R + n × m : P 1 m = a y PT 1 n = b } \mathbf{U}(\mathbf{a}, \mathbf{b}) \stackrel{\text { def. }}{=}\left\{\mathbf{P}\in \mathbb{R}_{+}^{n\times m}: \mathbf{P}\mathbf{1}_m=\mathbf{a} \quad \text { y } \quad \mathbf{P}^{\mathrm{T}} \mathbf{1}_n=\mathbf{b}\right\}U ( una ,segundo )= definición {
PAG∈R+n × m:P1 _m=a y PAGT 1norte=segundo }
Sea
LC ε ( a , b ) = max f ∈ R n , g ∈ R m ⟨ f , a ⟩ + ⟨ g , b ⟩ − ε ⟨ ef / ε , K eg / ε ⟩ \mathrm{L}_{ \mathbf{C}}^{\varepsilon}(\mathbf{a}, \mathbf{b})=\max _{\mathbf{f} \in \mathbb{R}^n, \mathbf{g}\ en \mathbb{R}^m}\angle\mathbf{f}, \mathbf{a}\angle+\angle\mathbf{g}, \mathbf{b}\angle-\varepsilon\left\angle e^{\ mathbf{f}/\objectpsilon}, \mathbf{K}e^{\mathbf{g}/\objectepsilon}\right\ranglelCmi( un ,segundo )=f∈R _ _norte ,gramo∈Rmetromáximo⟨ f ,un ⟩+⟨ gramo ,segundo ⟩−mi⟨ mif / e ,k eg / ε ⟩
( u , v ) = ( ef / ε , por ejemplo / ε ) (\mathbf{u}, \mathbf{v})=\left(e^{\mathbf{f} / \varepsilon}, e ^{\mathbf{g} / \varepsilon}\right)( tú ,v )=( mif / e ,mig / e )
P = diag ( u ) K diag ( v ) , K = exp ( − C ϵ ) \mathbf{P}=\rm{diag}\left(\mathbf{u}\right)\mathbf{K}\rm{ diag}\left(\mathbf{v}\right),\quad\mathbf{K}=exp\left(-\frac{C}{\epsilon}\right)PAG=diagnóstico( tú )diagnóstico K( v ),k=Exp( -ϵC)
Sea
f (l + 1) = ε log a − ε log ( K por ejemplo ( l ) / ε ), g ( l + 1 ) = ε log b − ε log ( KT ef ( l + 1 ) . /ε) \begin{alineado} \mathbf{f}^{(\ell+1)} & =\itempsilon \log \mathbf{a}-\itempsilon \log \left(\mathbf{K} e^{\mathbf{g }^{(\ell)}/\itempsilon}\right), \\\mathbf{g}^{(\ell+1)} & =\itempsilon \log \mathbf{b}-\itempsilon\log\left (\mathbf{K}^{\mathrm{T}} e^{\mathbf{f}^{(\ell+1)} / \varepsilon}\right) \end{alineado}F( ℓ + 1 )gramo( ℓ + 1 )=miiniciar sesióna−miiniciar sesión( Por ejemplo _gramo( ℓ ) /mi),=miiniciar sesiónb−miiniciar sesión( kEso es todoF( ℓ + 1 ) /mi).
Hay algunos cambios en el código.
Sea C ∈ R n × m , f ∈ R n , g ∈ R m \mathbf{C}\in\mathbb{R}^{n\times m}, \mathbf{f}\in\mathbb{R}^ n, \mathbf{g}\in\mathbb{R}^mC∈Rnorte × metro ,F∈Rnorte ,gramo∈Rmetro
Iniciar sesión ( K por ejemplo / ε ) = Iniciar sesión ( [ ∑ je - C i , j - gj ε ] i ) = Iniciar sesión ( [ ∑ je - C i , j - gj ε efi ε e - fi ε ] i ) = log ( [ ∑ je − C i , j − fi − gj ε ] i ⊙ e − f ε ) = log ( [ ∑ je − C i , j − fi − gj ε ] i ) − f ε = logsumexp ( − C − f T − g ε , dim = − 1 ) − f ε \begin{aligned} &\log \left(\mathbf{K} e^{\mathbf{g} / \varepsilon}\right) \\ =&\log\left(\left[\sum_{j}e^{-\frac{C_{i,j}-g_j}{\varepsilon}}\right]_i\right)\\ =&\ log\left(\left[\sum_{j}e^{-\frac{C_{i,j}-g_j}{\varepsilon}}e^{\frac{f_i}{\varepsilon}}e^{- \frac{f_i}{\varepsilon}}\right]_i\right)\\ =&\log\left(\left[\sum_{j}e^{-\frac{C_{i,j}-f_i- g_j}{\varepsilon}}\right]_i\odot e^{-\frac{\mathbf{f}}{\varepsilon}}\right)\\ =&\log\left(\left[\sum_{j) }e^{-\frac{C_{i,j}-f_i-g_j}{\varepsilon}}\right]_i\right)-\frac{\mathbf{f}}{\varepsilon}\\ =&\operatorname{logsumexp}\left(-\frac{\ mathbf{C}-\mathbf{f}^T-\mathbf{g}}{\valuepsilon},dim=-1\right)-\frac{\mathbf{f}}{\valuepsilon}\\ \end{ alineado}=====iniciar sesión( Por ejemplo _g / e )iniciar sesión
[j∑mi−miCyo , j− gramoj]yo
iniciar sesión
[j∑mi−miCyo , j− gramojmimiFyomi−miFyo]yo
iniciar sesión
[j∑mi−miCyo , j− fyo− gramoj]yo⊙mi−mif
iniciar sesión
[j∑mi−miCyo , j− fyo− gramoj]yo
−miflogsumexp( -miC−Ft−gramo,soy _=− 1 )−mif
El último paso, la suma de vectores y matrices, implica el mecanismo de transmisión.
Iniciar sesión ( KT ef / ε ) = Iniciar sesión ( [ ∑ es decir - C i , j - fi ε ] j ) = Iniciar sesión ( [ ∑ es decir - C i , j - fi ε egj ε e - gj ε ] j ) = log ( [ ∑ es decir − C i , j − fi − gj ε ] j ⊙ e − g ε ) = log ( [ ∑ es decir − C i , j − fi − gj ε ] j ) − g ε = logsumexp ( − C − f T − g ε , tenue = − 2 ) − g ε = logsumexp ( − ( C − f T − g ) T ε , tenue = − 1 ) − g ε \begin{aligned} &\ Iniciar sesión \left(\mathbf{K}^{\mathrm{T}} e^{\mathbf{f} / \varepsilon}\right)\\ =&\log\left(\left[\sum_{i}e ^{-\frac{C_{i,j}-f_i}{\varepsilon}}\right]_j\right)\\ =&\log\left(\left[\sum_{i}e^{-\frac {C_{i,j}-f_i}{\varepsilon}}e^{\frac{g_j}{\varepsilon}}e^{-\frac{g_j}{\varepsilon}}\right]_j\right)\ \ =&\log\left(\left[\sum_{i}e^{-\frac{C_{i,j}-f_i-g_j}{\varepsilon}}\right]_j\odot e^{-\ frac{\mathbf{g}}{\varepsilon}}\right)\\ =&\log\left(\left[\sum_{i}e^{-\frac{C_{i,j}-f_i-g_j}{\varepsilon}}\right]_j\right)-\frac{\mathbf{g}}{\varepsilon}\\ =&\operatorname{logsumexp}\left(-\frac{\ mathbf{C}-\mathbf{f}^T-\mathbf{g}}{\valuepsilon},dim=-2\right)-\frac{\mathbf{g}}{\valuepsilon}\\ =&\ nombre del operador{logsumexp}\left(-\frac{\left(\mathbf{C}-\mathbf{f}^T-\mathbf{g}\right)^T}{\varepsilon},dim=-1\right )-\frac{\mathbf{g}}{\valuepsilon}\\ \end{alineado}======iniciar sesión( kEso es todof / e )iniciar sesión
[i∑mi−miCyo , j− fyo]j
iniciar sesión
[i∑mi−miCyo , j− fyomimigramojmi−migramoj]j
iniciar sesión
[i∑mi−miCyo , j− fyo− gramoj]j⊙mi−migramo
iniciar sesión
[i∑mi−miCyo , j− fyo− gramoj]j
−migramologsumexp( -miC−Ft−gramo,soy _=− 2 )−migramologsumexp( -mi( C−Ft−gramo )t,soy _=− 1 )−migramo