Sinkhorn Algorithm as a Special Case of Stochastic Mirror Descent
Konstantin Mishchenko, KAUST
Sinkhorn Algorithm as a Special Case of Stochastic Mirror Descent - - PowerPoint PPT Presentation
Sinkhorn Algorithm as a Special Case of Stochastic Mirror Descent Konstantin Mishchenko, KAUST <latexit
Konstantin Mishchenko, KAUST
Let X ∈ Rn×n
++
<latexit sha1_base64="Sri3LqGwQ70vfLFR5QOylps7Ds=">ACD3icbVC7SgNBFJ2Nrxhfq5Y2g4kiBMJuLQM2lhYRDEPyMYwO5kQ2Znl5m7Qlj2D2z8FRsLRWxt7fwbJ49CEw9cOJxzL/fe40eCa3CcbyuztLyupZdz21sbm3v2Lt7dR3GirIaDUWomj7RTHDJasBsGakGAl8wRr+8HLsNx6Y0jyUdzCKWDsgfcl7nBIwUsc+vmaAC02PS+wFBAa+n9ym94n0gAdMY5l2kmIxLXTsvFNyJsCLxJ2RPJqh2rG/vG5I4BJoIJo3XKdCNoJUcCpYGnOizWLCB2SPmsZKonZ1k4m/6T4yChd3AuVKQl4ov6eSEig9SjwTef4Zj3vjcX/vFYMvfN2wmUA5N0uqgXCwhHoeDu1wxCmJkCKGKm1sxHRBFKJgIcyYEd/7lRVIvl9zTUvmnK9czOLIogN0iE6Qi85QBV2hKqohih7RM3pFb9aT9WK9Wx/T1ow1m9lHf2B9/gDolpvy</latexit>Find vectors u, v ∈ Rn
+ such that
<latexit sha1_base64="ZshlrjUhVEWOmo/c6MDls9PFapE=">ACGHicbVDLSgNBEJz1GeNr1aOXwUQlLgbD3oMCuIxinlAEpfZ2UkyZHZ2mekNhCWf4cVf8eJBEa+5+TdOHgdNLGgoqrp7vJjwTU4zre1tLyurae2chubm3v7Np7+1UdJYqyCo1EpOo+0UxwySrAQbB6rBgJfcFqfu9m7Nf6TGkeyUcYxKwVko7kbU4JGMmz2+5DHCfUYiUxvnkDPebXOJmSKDr+nD0Dt9knmsE9rF0CXg2Tmn4EyAF4k7Izk0Q9mzR80goknIJFBtG64TgytlCjgVLBhtploFhPaIx3WMFSkOlWOnlsiI+NEuB2pExJwBP190RKQq0HoW86xwfreW8s/uc1EmhftVIu4wSYpNF7URgiPA4JRxwZSIRA0MIVdzcimXKELBZJk1IbjzLy+SarHgXhSK98Vc6XoWRwYdoiN0glx0iUroDpVRBVH0jF7RO/qwXqw369P6mrYuWbOZA/QH1ugHEVefKg=</latexit>W = diag(u)Xdiag(v) is doubly stochastic
<latexit sha1_base64="KLK8Q+2mrEk8g+cVUXCbpPkNd0=">ACI3icbVDLSsNAFJ34rPUVdelmsBXaTUnqQhGEohuXFewD2lAmk0k7dJIJ8yiU0H9x46+4caEUNy78F6dtFrb1wMDhnHv3Hv8hFGpHOfb2tjc2t7Zze3l9w8Oj47tk9Om5Fpg0sCcdH2kSMxqShqGKknQiCIp+Rlj98mPmtERGS8vhZjRPiRagf05BipIzUs2+LrbtuhNRARGlAUX9S0uX2sjAqFyGVMODaZ2MoFcDJBXFPbvgVJw54DpxM1IAGeo9e9oNONYRiRVmSMqO6yTKS5EwxiZ5LtakgThIeqTjqExioj0vmNE3hplACGXJgXKzhX/3akKJyHPmcra9XPVm4n9eR6vwxktpnGhFYrz4KNQMKg5ngcGACoKVudykgQU1u0ITgEBYmVjzJgR39eR10qxW3KtK9alaqN1nceTAObgAJeCa1ADj6AOGgCDF/AGPsCn9Wq9W1Pra1G6YWU9Z2AJ1s8vI06klg=</latexit>Let X ∈ Rn×n
++
<latexit sha1_base64="Sri3LqGwQ70vfLFR5QOylps7Ds=">ACD3icbVC7SgNBFJ2Nrxhfq5Y2g4kiBMJuLQM2lhYRDEPyMYwO5kQ2Znl5m7Qlj2D2z8FRsLRWxt7fwbJ49CEw9cOJxzL/fe40eCa3CcbyuztLyupZdz21sbm3v2Lt7dR3GirIaDUWomj7RTHDJasBsGakGAl8wRr+8HLsNx6Y0jyUdzCKWDsgfcl7nBIwUsc+vmaAC02PS+wFBAa+n9ym94n0gAdMY5l2kmIxLXTsvFNyJsCLxJ2RPJqh2rG/vG5I4BJoIJo3XKdCNoJUcCpYGnOizWLCB2SPmsZKonZ1k4m/6T4yChd3AuVKQl4ov6eSEig9SjwTef4Zj3vjcX/vFYMvfN2wmUA5N0uqgXCwhHoeDu1wxCmJkCKGKm1sxHRBFKJgIcyYEd/7lRVIvl9zTUvmnK9czOLIogN0iE6Qi85QBV2hKqohih7RM3pFb9aT9WK9Wx/T1ow1m9lHf2B9/gDolpvy</latexit>Let $X\in \mathbb{R}^{n\times n}_{++}$
Find vectors u, v ∈ Rn
+ such that
<latexit sha1_base64="ZshlrjUhVEWOmo/c6MDls9PFapE=">ACGHicbVDLSgNBEJz1GeNr1aOXwUQlLgbD3oMCuIxinlAEpfZ2UkyZHZ2mekNhCWf4cVf8eJBEa+5+TdOHgdNLGgoqrp7vJjwTU4zre1tLyurae2chubm3v7Np7+1UdJYqyCo1EpOo+0UxwySrAQbB6rBgJfcFqfu9m7Nf6TGkeyUcYxKwVko7kbU4JGMmz2+5DHCfUYiUxvnkDPebXOJmSKDr+nD0Dt9knmsE9rF0CXg2Tmn4EyAF4k7Izk0Q9mzR80goknIJFBtG64TgytlCjgVLBhtploFhPaIx3WMFSkOlWOnlsiI+NEuB2pExJwBP190RKQq0HoW86xwfreW8s/uc1EmhftVIu4wSYpNF7URgiPA4JRxwZSIRA0MIVdzcimXKELBZJk1IbjzLy+SarHgXhSK98Vc6XoWRwYdoiN0glx0iUroDpVRBVH0jF7RO/qwXqw369P6mrYuWbOZA/QH1ugHEVefKg=</latexit>Find vectors $u, v\in \mathbb{R}_+^n$ such that $W=\mathrm{diag}(u)X\mathrm{diag}(v)$ is doubly stochastic
n
X
i=1
Wij = 1 for any j
<latexit sha1_base64="cXOQFGOZ3l+d+4gPV4jP9ljOuJc=">ACFXicbZC7SgNBFIZnvcZ4i1raDAbBQsJuFLQJBG0sI5gLZGOYncwmk8zOrjNnxbDsS9j4KjYWitgKdr6Nk0uhiaf6+P9zOf8XiS4Btv+thYWl5ZXVjNr2fWNza3t3M5uTYexoqxKQxGqhkc0E1yKnAQrBEpRgJPsLo3uBz59XumNA/lDQwj1gpIV3KfUwJGaueOXR0H7YSXnPRW4rqhflpy3LuYdLAL7AESP1SYyCFOcb+dy9sFe1x4Hpwp5NG0Ku3cl9sJaRwCVQrZuOHUErIQo4FSzNurFmEaED0mVNg5IETLeS8VcpPjRKB4/W+6EPFZ/TyQk0HoYeKYzINDTs95I/M9rxuCftxIuoxiYpJNFfiwhHgUEe5wxSiIoQFCFTe3YtojilAwQWZNCM7sy/NQKxack0Lx+jRfvpjGkUH76AdIQedoTK6QhVURQ9omf0it6sJ+vFerc+Jq0L1nRmD/0p6/MHCdKeug=</latexit>\sum_{i=1}^n W_{ij}=1\quad \text{for any } j
n
X
j=1
Wij = 1 for any i
<latexit sha1_base64="5T7WIDdola1iK+WjoZHXbdHmwMs=">ACFXicbVDLSsNAFJ34rPUVdelmsAgupCRV0E2h6MZlBfuApobJdNJO5nEmRuxhPyEG3/FjQtF3Aru/BvTx0Jbz+pwzr3ce4XCa7Bsr6NhcWl5ZXV3Fp+fWNza9vc2a3rMFaU1WgoQtX0iGaCS1YDoI1I8VI4AnW8AaXI79xz5TmobyBYcTaAelK7nNKIJNc89jRceAm/bKd3krcBPeT8u2cxeTDnaAPUDihwoTOcQp5q5ZsIrWGHie2FNSQFNUXfPL6YQ0DpgEKojWLduKoJ0QBZwKluadWLOI0AHpslZGJQmYbifjVCk+zJQOHp3Qwl4rP7eSEig9TDwsmAQE/PeiPxP68Vg3/eTriMYmCSTg75scAQ4lFuMVoyCGSFU8exXTHtEQpZkfmsBHs28jypl4r2SbF0fVqoXEzryKF9dICOkI3OUAVdoSqIYoe0TN6RW/Gk/FivBsfk9EFY7qzh/7A+PwBCfeug=</latexit>W = diag(u)Xdiag(v) is doubly stochastic
<latexit sha1_base64="KLK8Q+2mrEk8g+cVUXCbpPkNd0=">ACI3icbVDLSsNAFJ34rPUVdelmsBXaTUnqQhGEohuXFewD2lAmk0k7dJIJ8yiU0H9x46+4caEUNy78F6dtFrb1wMDhnHv3Hv8hFGpHOfb2tjc2t7Zze3l9w8Oj47tk9Om5Fpg0sCcdH2kSMxqShqGKknQiCIp+Rlj98mPmtERGS8vhZjRPiRagf05BipIzUs2+LrbtuhNRARGlAUX9S0uX2sjAqFyGVMODaZ2MoFcDJBXFPbvgVJw54DpxM1IAGeo9e9oNONYRiRVmSMqO6yTKS5EwxiZ5LtakgThIeqTjqExioj0vmNE3hplACGXJgXKzhX/3akKJyHPmcra9XPVm4n9eR6vwxktpnGhFYrz4KNQMKg5ngcGACoKVudykgQU1u0ITgEBYmVjzJgR39eR10qxW3KtK9alaqN1nceTAObgAJeCa1ADj6AOGgCDF/AGPsCn9Wq9W1Pra1G6YWU9Z2AJ1s8vI06klg=</latexit>Wij ≥ 0
<latexit sha1_base64="atfYZ/O6iOnzDChnKiGDeTDS7c=">AB8nicbVBNS8NAEN3Ur1q/qh69LBbBU0mqoMeiF48V7Ae0oWy2k3btZhN2J0IJ/RlePCji1V/jzX/jts1BWx8MPN6bYWZekEh0HW/ncLa+sbmVnG7tLO7t39QPjxqmTjVHJo8lrHuBMyAFAqaKFBCJ9HAokBCOxjfzvz2E2gjYvWAkwT8iA2VCAVnaKVu5+Jx2lvCNTtlytu1Z2DrhIvJxWSo9Evf/UGMU8jUMglM6bruQn6GdMouIRpqZcaSBgfsyF0LVUsAuNn85On9MwqAxrG2pZCOld/T2QsMmYSBbYzYjgy95M/M/rphe+5lQSYqg+GJRmEqKMZ39TwdCA0c5sYRxLeytlI+YZhxtSiUbgrf8ip1areRbV2f1mp3+RxFMkJOSXnxCNXpE7uSIM0CScxeSav5M1B58V5dz4WrQUnzkmf+B8/gC+pDl</latexit>\min_{X\in\mathbb{R}^{n\times n}} \sum_{i,j=1}^n C_{ij} X_{ij}\quad \text{s.t. } X\mathbf{1}=\mathbf{1}, X^\top \mathbf{1}=\mathbf{1}, X\ge
doubly stochastic
<latexit sha1_base64="QbpGgn2poU28p6pPQ7elDIH3yM0=">AB+nicbVC7TsMwFHV4lvJKYWSxqJCYqQMFawMBaJPqQ2qhzHa06dmTfgKrQT2FhACFWvoSNv8FtM0DLkSwdnXPv9b0nTAU34Hnfztr6xubWdmnvLu3f3DoVo7aRmWashZVQuluSAwTXLIWcBCsm2pGklCwTji+mfmdB6YNV/IeJikLEjKUPOaUgJUGbiVSWSgm2ICiI2KA04Fb9WreHiV+AWpogLNgfvVjxTNEiaBCmJMz/dSCHKi7TDBpuV+ZlhK6JgMWc9SRJmgny+hSfWSXCsdL2ScBz9XdHThJjJkloKxMCI7PszcT/vF4G8VWQc5lmwCRdfBRnAoPCsxwxDWjYC+POKGa212xDUATCjatsg3BXz5lbTrNf+iVr+rVxvXRwldIJO0Tny0SVqoFvURC1E0SN6Rq/ozXlyXpx352NRuYUPcfoD5zPH6FdlDs=</latexit>min
X2Rn×n n
X
i,j=1
CijXij s.t. X1 = 1, X>1 = 1, X ≥ 0
<latexit sha1_base64="zoKIkpGprxy9RdUbdItoRD+o/g=">ACdnicdVHLbtQwFHXCqwyvKawQErqIJFSWlUrupVLUblgUxbaTxTOR4nKlb2wn2DWJk5RP6c+z4DjYs8TwkoIUjWT46517PspGSYdp+j2K79y9d/BxsPeo8dPnj7rbz4/c3VruRjyWtU2L5kTShoxRIlK5I0VTJdKnJdXJwv/IuwTtbmE84bMdZsZmQlOcMgFf1rqUpfE6loZrhRVn6j93EG4pSCwem64C6Vhde7lweZt3EwEnglx3ky4t+btkUKIqv6F2CQRj9U7ls+7wN92BfEKxbuB/Lp0JSIv+IE3SJeA2ydZkQNY4Lfrf6LTmrRYGuWLOjbK0wbFnFiVXouvR1omG8Ss2E6NADQtNjf1ybB1sB2UKVW3DMQhL9c8Mz7Rzc12GyEWl7qa3EP/ljVqsDsZemqZFYfjqo6pVgDUsdgBTaQVHNQ+EcStDrcAvmGUcw6Z6YQjZzZvk7PdJHuX7H7YGxwdr8exQV6RLfKWZGSfHJH35JQMCSc/opfRVjSIfsav4+34zSo0jtY5L8hfiNfVN2/jA=</latexit>\min_{X\in\mathbb{R}^{n\times n}} \sum_{i,j=1}^n \left(C_{ij} X_{ij} +\gamma X_{ij}\log X_{ij}\right)\quad \text{s.t. } X\mathbf{1} =\mathbf{1}, X^\top \mathbf{1}=\mathbf{1} \min_{X\in\mathbb{R}^{n\times n}} \sum_{i,j=1}^n \mathcal{KL} (X||X^0)\quad \text{s.t. } X\mathbf{1}=\mathbf{1}, X^\top \mathbf{1}=\mathbf{1} \text{where }X^0\overset{\text{def}}{=} \exp\left(-\frac{C}{\gamma}\right) \text{ coordinate-wise} \mathcal{KL} (X||X^0) \overset{\text{def}}{=} \sum_{i,j=1}^n \Bigl(X_{ij}\log \frac{X_{ij}}{X^0_{ij}}-X_{ij}+X_{ij}^0 \Bigr)
\min_{X\in\mathbb{R}^{n\times n}} \sum_{i,j=1}^n C_{ij} X_{ij}\quad \text{s.t. } X\mathbf{1}=\mathbf{1}, X^\top \mathbf{1}=\mathbf{1}, X\ge
min
X2Rn×n n
X
i,j=1
CijXij s.t. X1 = 1, X>1 = 1, X ≥ 0
<latexit sha1_base64="zoKIkpGprxy9RdUbdItoRD+o/g=">ACdnicdVHLbtQwFHXCqwyvKawQErqIJFSWlUrupVLUblgUxbaTxTOR4nKlb2wn2DWJk5RP6c+z4DjYs8TwkoIUjWT46517PspGSYdp+j2K79y9d/BxsPeo8dPnj7rbz4/c3VruRjyWtU2L5kTShoxRIlK5I0VTJdKnJdXJwv/IuwTtbmE84bMdZsZmQlOcMgFf1rqUpfE6loZrhRVn6j93EG4pSCwem64C6Vhde7lweZt3EwEnglx3ky4t+btkUKIqv6F2CQRj9U7ls+7wN92BfEKxbuB/Lp0JSIv+IE3SJeA2ydZkQNY4Lfrf6LTmrRYGuWLOjbK0wbFnFiVXouvR1omG8Ss2E6NADQtNjf1ybB1sB2UKVW3DMQhL9c8Mz7Rzc12GyEWl7qa3EP/ljVqsDsZemqZFYfjqo6pVgDUsdgBTaQVHNQ+EcStDrcAvmGUcw6Z6YQjZzZvk7PdJHuX7H7YGxwdr8exQV6RLfKWZGSfHJH35JQMCSc/opfRVjSIfsav4+34zSo0jtY5L8hfiNfVN2/jA=</latexit>min
X2Rn×n n
X
i,j=1
(CijXij + γXij log Xij) s.t. X1 = 1, X>1 = 1
<latexit sha1_base64="lRXIUL0F+itwe6NEUyLtszYR9+A=">AClXicbVFb9MwFHbCbSuXlfGwB14sKqQhpigZSOyl0tgQ4o2B6BapbiPHdVJvthPsE0Rl5R/xa/a2f4PbBgHbjmT5O93js4tr6WwEMdXQXjn7r37DzY2ew8fPX6y1X+6fWqrxjA+YpWsTJpTy6XQfAQCJE9rw6nKJT/L46X+tkPbqyo9DdY1HyiaKlFIRgFT2X9X0QJnbmUCE0UhXmeu6/t1GkCQnGLdtiYhuVObF3PkzaqcZE8gJ2jz1z3uJ0/b0mJVWKdi6RVfkHGlHO4RX53tAZJsB/grMRNhnrsVLmHf+EeTqcEqhrfqmb9QRzFK8M3QdKBAersJOtfklnFGsU1MEmtHSdxDRNHDQgmedsjeU1ZRe05GMPNfUzT9xqy1+6ZkZLirjnwa8Yv/NcFRZu1C5j1x2aK9rS/I2bdxAcTBxQtcNcM3WhYpGYqjw8kR4JgxnIBceUGaE7xWzOTWUgT9kzy8huT7yTXC6HyVvov0vbweHR906NtBz9ALtogS9Q4foEzpBI8SC7eAgeB8chTvhMPwQflyHhkGX8wz9Z+Hn30ZaywY=</latexit>\min_{X\in\mathbb{R}^{n\times n}} \sum_{i,j=1}^n \left(C_{ij} X_{ij} +\gamma X_{ij}\log X_{ij}\right)\quad \text{s.t. } X\mathbf{1} =\mathbf{1}, X^\top \mathbf{1}=\mathbf{1} \min_{X\in\mathbb{R}^{n\times n}} \sum_{i,j=1}^n \mathcal{KL} (X||X^0)\quad \text{s.t. } X\mathbf{1}=\mathbf{1}, X^\top \mathbf{1}=\mathbf{1} \text{where }X^0\overset{\text{def}}{=} \exp\left(-\frac{C}{\gamma}\right) \text{ coordinate-wise} \mathcal{KL} (X||X^0) \overset{\text{def}}{=} \sum_{i,j=1}^n \Bigl(X_{ij}\log \frac{X_{ij}}{X^0_{ij}}-X_{ij}+X_{ij}^0 \Bigr)
\min_{X\in\mathbb{R}^{n\times n}} \sum_{i,j=1}^n C_{ij} X_{ij}\quad \text{s.t. } X\mathbf{1}=\mathbf{1}, X^\top \mathbf{1}=\mathbf{1}, X\ge
min
X2Rn×n n
X
i,j=1
CijXij s.t. X1 = 1, X>1 = 1, X ≥ 0
<latexit sha1_base64="zoKIkpGprxy9RdUbdItoRD+o/g=">ACdnicdVHLbtQwFHXCqwyvKawQErqIJFSWlUrupVLUblgUxbaTxTOR4nKlb2wn2DWJk5RP6c+z4DjYs8TwkoIUjWT46517PspGSYdp+j2K79y9d/BxsPeo8dPnj7rbz4/c3VruRjyWtU2L5kTShoxRIlK5I0VTJdKnJdXJwv/IuwTtbmE84bMdZsZmQlOcMgFf1rqUpfE6loZrhRVn6j93EG4pSCwem64C6Vhde7lweZt3EwEnglx3ky4t+btkUKIqv6F2CQRj9U7ls+7wN92BfEKxbuB/Lp0JSIv+IE3SJeA2ydZkQNY4Lfrf6LTmrRYGuWLOjbK0wbFnFiVXouvR1omG8Ss2E6NADQtNjf1ybB1sB2UKVW3DMQhL9c8Mz7Rzc12GyEWl7qa3EP/ljVqsDsZemqZFYfjqo6pVgDUsdgBTaQVHNQ+EcStDrcAvmGUcw6Z6YQjZzZvk7PdJHuX7H7YGxwdr8exQV6RLfKWZGSfHJH35JQMCSc/opfRVjSIfsav4+34zSo0jtY5L8hfiNfVN2/jA=</latexit>min
X2Rn×n n
X
i,j=1
(CijXij + γXij log Xij) s.t. X1 = 1, X>1 = 1
<latexit sha1_base64="lRXIUL0F+itwe6NEUyLtszYR9+A=">AClXicbVFb9MwFHbCbSuXlfGwB14sKqQhpigZSOyl0tgQ4o2B6BapbiPHdVJvthPsE0Rl5R/xa/a2f4PbBgHbjmT5O93js4tr6WwEMdXQXjn7r37DzY2ew8fPX6y1X+6fWqrxjA+YpWsTJpTy6XQfAQCJE9rw6nKJT/L46X+tkPbqyo9DdY1HyiaKlFIRgFT2X9X0QJnbmUCE0UhXmeu6/t1GkCQnGLdtiYhuVObF3PkzaqcZE8gJ2jz1z3uJ0/b0mJVWKdi6RVfkHGlHO4RX53tAZJsB/grMRNhnrsVLmHf+EeTqcEqhrfqmb9QRzFK8M3QdKBAersJOtfklnFGsU1MEmtHSdxDRNHDQgmedsjeU1ZRe05GMPNfUzT9xqy1+6ZkZLirjnwa8Yv/NcFRZu1C5j1x2aK9rS/I2bdxAcTBxQtcNcM3WhYpGYqjw8kR4JgxnIBceUGaE7xWzOTWUgT9kzy8huT7yTXC6HyVvov0vbweHR906NtBz9ALtogS9Q4foEzpBI8SC7eAgeB8chTvhMPwQflyHhkGX8wz9Z+Hn30ZaywY=</latexit>\min_{X\in\mathbb{R}^{n\times n}} \sum_{i,j=1}^n \left(C_{ij} X_{ij} +\gamma X_{ij}\log X_{ij}\right)\quad \text{s.t. } X\mathbf{1} =\mathbf{1}, X^\top \mathbf{1}=\mathbf{1} \min_{X\in\mathbb{R}^{n\times n}} \sum_{i,j=1}^n \mathcal{KL} (X||X^0)\quad \text{s.t. } X\mathbf{1}=\mathbf{1}, X^\top \mathbf{1}=\mathbf{1}
where X0 def = exp ✓ −C γ ◆ coordinate-wise
<latexit sha1_base64="tLG0BlW2NOtO06znzqWzV8zjp9Y=">ACTHicbVBNbxMxFPQGaEv5CnDkYhEhtYdGuwUJLkgVvfTYSqSNFKeR1/s2seqPlf2bWTtD+TCgRu/ohcOoKpSvUkO0DKSpdHMvGd78kpJj2n6M+k8ePhobX3j8eaTp8+ev+i+fHXsbe0EDIRV1g1z7kFJAwOUqGBYOeA6V3CSn+23/sk5OC+t+YrzCsaT40speAYpUlXMIRLDBczcECb4WnKbBsHDEujgLJpwueGMrismISt3ZY6bgI+01gU641b5iT0xlu0+UEFda6QhqOsHMhPTSbk24v7acL0PskW5EeWeFw0v3BCitqDQaF4t6PsrTCceAOpVBxIas9VFyc8SmMIjVcgx+HRkNfReVgpbWxWOQLtS/JwLX3s91HpOa48zf9Vrxf96oxvLTOEhT1QhGLC8qa0XR0rZWkgHAtU8Ei6cjG+lYsZjVRgLbUvI7n75Pjne7Wfv+7tH3p7X1Z1bJA35C3ZIhn5SPbIATkAyLIN3JFfpM/yfkV3Kd3CyjnWQ185r8g87aLWRLtmM=</latexit>\text{where }X^0\overset{\text{def}}{=} \exp\left(-\frac{C}{\gamma}\right) \text{ coordinate-wise}
KL(X||X0)
def
=
n
X
i,j=1
⇣ Xij log Xij X0
ij
− Xij + X0
ij
⌘
<latexit sha1_base64="SzDo3dhqf0yXQ9FOJHoJDzLeCM=">ACZXicbZBLbxMxFIU9wysECmpumGBRYSUCohmChJsKlVlUwkWRSLtSHESeZw7qVuPbI9iMjxn+yOLRv+Bp5MFtByJctH373Hj5NXghubJD+j+M7de/cfdB52Hz3evK0t71zZlStGYyYEkpnOTUguISR5VZAVmgZS7gPL/61PTPv4M2XMlvdlnBpKQLyQvOqA1o1luRktoLRoX7/MV3B9lqlU2TfUxUYwLriIUf1s2h8N4dekxMXc4cf3N5mPqpxOSYL8QgC+TSE6EWmBSaMtcC78JRrXrbktftNk3WRr0/6/WTYbIufFukG9FHmzqd9a7JXLG6BGmZoMaM06SyE0e15UyA75LaQEXZFV3AOEhJSzATt07J41eBzHGhdFjS4jX92+FoacyzMNk4m52Wvg/3rj2hYfJ47LqrYgWXtRUQtsFW4ix3OugVmxDIyzcNbMbugISgbMu6GENKbX74tzg6G6bvhwdf3/aPjTRwd9By9RAOUog/oCJ2gUzRCDP2KOtF2tBP9jrfi3XivHY2jecZ+qfiF38Ap7W5LQ=</latexit>\mathcal{KL} (X||X^0) \overset{\text{def}}{=} \sum_{i,j=1}^n \Bigl(X_{ij}\log \frac{X_{ij}}{X^0_{ij}}-X_{ij}+X_{ij}^0 \Bigr)
min
X2Rn×n KL(X||X0)
s.t. X1 = 1, X>1 = 1
<latexit sha1_base64="A+e7qON7tAZM8eKSHqsKV/yQsw=">ACaHicbVFdSxwxFM1MbWrbceqSPEluBQslGFGBX0RF8EfbDi6sBmd8lkMxrMZMbkjrjEwf/YN3+AL/4Ksx9gqx4IHM65N7n3JC2lMBFD57/Yerjp+mZz43ZuS9fvwXz389MUWnGW6yQhU5SargUirdAgORJqTnNU8nP06v9oX9+w7URhTqFQck7Ob1QIhOMgpN6wT3JherZhAhFcgqXaWpP6q5VBETODVZ1jfHIYFTaw6O6sZbc3SXd6Be5rmgfE+C3YE0Ia5xMr4hs3G980J/46RLoCjxu24vaEZhNAJ+S+IJaIJjnvBX9IvWJVzBUxSY9pxVELHUg2CSV43SGV4SdkVveBtRxV1a3TsKga/3RKH2eFdkcBHqn/dliaGzPIU1c5nNC89obie167gmy7Y4UqK+CKjR/KomhwMPUcV9ozkAOHKFMCzcrZpdUwbubxouhPj1ym/J2XoYb4Trfzabu3uTOGbQClpFayhGW2gXHaBj1EIMPXqz3qK35D35gb/s/xiX+t6kZwH9B3/1GZKpueo=</latexit>\min_{X\in\mathbb{R}^{n\times n}} \sum_{i,j=1}^n C_{ij} X_{ij}\quad \text{s.t. } X\mathbf{1}=\mathbf{1}, X^\top \mathbf{1}=\mathbf{1}, X\ge
min
X2Rn×n n
X
i,j=1
CijXij s.t. X1 = 1, X>1 = 1, X ≥ 0
<latexit sha1_base64="zoKIkpGprxy9RdUbdItoRD+o/g=">ACdnicdVHLbtQwFHXCqwyvKawQErqIJFSWlUrupVLUblgUxbaTxTOR4nKlb2wn2DWJk5RP6c+z4DjYs8TwkoIUjWT46517PspGSYdp+j2K79y9d/BxsPeo8dPnj7rbz4/c3VruRjyWtU2L5kTShoxRIlK5I0VTJdKnJdXJwv/IuwTtbmE84bMdZsZmQlOcMgFf1rqUpfE6loZrhRVn6j93EG4pSCwem64C6Vhde7lweZt3EwEnglx3ky4t+btkUKIqv6F2CQRj9U7ls+7wN92BfEKxbuB/Lp0JSIv+IE3SJeA2ydZkQNY4Lfrf6LTmrRYGuWLOjbK0wbFnFiVXouvR1omG8Ss2E6NADQtNjf1ybB1sB2UKVW3DMQhL9c8Mz7Rzc12GyEWl7qa3EP/ljVqsDsZemqZFYfjqo6pVgDUsdgBTaQVHNQ+EcStDrcAvmGUcw6Z6YQjZzZvk7PdJHuX7H7YGxwdr8exQV6RLfKWZGSfHJH35JQMCSc/opfRVjSIfsav4+34zSo0jtY5L8hfiNfVN2/jA=</latexit>min
X2Rn×n n
X
i,j=1
(CijXij + γXij log Xij) s.t. X1 = 1, X>1 = 1
<latexit sha1_base64="lRXIUL0F+itwe6NEUyLtszYR9+A=">AClXicbVFb9MwFHbCbSuXlfGwB14sKqQhpigZSOyl0tgQ4o2B6BapbiPHdVJvthPsE0Rl5R/xa/a2f4PbBgHbjmT5O93js4tr6WwEMdXQXjn7r37DzY2ew8fPX6y1X+6fWqrxjA+YpWsTJpTy6XQfAQCJE9rw6nKJT/L46X+tkPbqyo9DdY1HyiaKlFIRgFT2X9X0QJnbmUCE0UhXmeu6/t1GkCQnGLdtiYhuVObF3PkzaqcZE8gJ2jz1z3uJ0/b0mJVWKdi6RVfkHGlHO4RX53tAZJsB/grMRNhnrsVLmHf+EeTqcEqhrfqmb9QRzFK8M3QdKBAersJOtfklnFGsU1MEmtHSdxDRNHDQgmedsjeU1ZRe05GMPNfUzT9xqy1+6ZkZLirjnwa8Yv/NcFRZu1C5j1x2aK9rS/I2bdxAcTBxQtcNcM3WhYpGYqjw8kR4JgxnIBceUGaE7xWzOTWUgT9kzy8huT7yTXC6HyVvov0vbweHR906NtBz9ALtogS9Q4foEzpBI8SC7eAgeB8chTvhMPwQflyHhkGX8wz9Z+Hn30ZaywY=</latexit>\min_{X\in\mathbb{R}^{n\times n}} \sum_{i,j=1}^n \left(C_{ij} X_{ij} +\gamma X_{ij}\log X_{ij}\right)\quad \text{s.t. } X\mathbf{1} =\mathbf{1}, X^\top \mathbf{1}=\mathbf{1} \min_{X\in\mathbb{R}^{n\times n}} \mathcal{KL} (X||X^0)\quad \text{s.t. } X\mathbf{1}=\mathbf{1}, X^\top \mathbf{1}=\mathbf{1}
where X0 def = exp ✓ −C γ ◆ coordinate-wise
<latexit sha1_base64="tLG0BlW2NOtO06znzqWzV8zjp9Y=">ACTHicbVBNbxMxFPQGaEv5CnDkYhEhtYdGuwUJLkgVvfTYSqSNFKeR1/s2seqPlf2bWTtD+TCgRu/ohcOoKpSvUkO0DKSpdHMvGd78kpJj2n6M+k8ePhobX3j8eaTp8+ev+i+fHXsbe0EDIRV1g1z7kFJAwOUqGBYOeA6V3CSn+23/sk5OC+t+YrzCsaT40speAYpUlXMIRLDBczcECb4WnKbBsHDEujgLJpwueGMrismISt3ZY6bgI+01gU641b5iT0xlu0+UEFda6QhqOsHMhPTSbk24v7acL0PskW5EeWeFw0v3BCitqDQaF4t6PsrTCceAOpVBxIas9VFyc8SmMIjVcgx+HRkNfReVgpbWxWOQLtS/JwLX3s91HpOa48zf9Vrxf96oxvLTOEhT1QhGLC8qa0XR0rZWkgHAtU8Ei6cjG+lYsZjVRgLbUvI7n75Pjne7Wfv+7tH3p7X1Z1bJA35C3ZIhn5SPbIATkAyLIN3JFfpM/yfkV3Kd3CyjnWQ185r8g87aLWRLtmM=</latexit>\text{where }X^0\overset{\text{def}}{=} \exp\left(-\frac{C}{\gamma}\right) \text{ coordinate-wise}
KL(X||X0)
def
=
n
X
i,j=1
⇣ Xij log Xij X0
ij
− Xij + X0
ij
⌘
<latexit sha1_base64="SzDo3dhqf0yXQ9FOJHoJDzLeCM=">ACZXicbZBLbxMxFIU9wysECmpumGBRYSUCohmChJsKlVlUwkWRSLtSHESeZw7qVuPbI9iMjxn+yOLRv+Bp5MFtByJctH373Hj5NXghubJD+j+M7de/cfdB52Hz3evK0t71zZlStGYyYEkpnOTUguISR5VZAVmgZS7gPL/61PTPv4M2XMlvdlnBpKQLyQvOqA1o1luRktoLRoX7/MV3B9lqlU2TfUxUYwLriIUf1s2h8N4dekxMXc4cf3N5mPqpxOSYL8QgC+TSE6EWmBSaMtcC78JRrXrbktftNk3WRr0/6/WTYbIufFukG9FHmzqd9a7JXLG6BGmZoMaM06SyE0e15UyA75LaQEXZFV3AOEhJSzATt07J41eBzHGhdFjS4jX92+FoacyzMNk4m52Wvg/3rj2hYfJ47LqrYgWXtRUQtsFW4ix3OugVmxDIyzcNbMbugISgbMu6GENKbX74tzg6G6bvhwdf3/aPjTRwd9By9RAOUog/oCJ2gUzRCDP2KOtF2tBP9jrfi3XivHY2jecZ+qfiF38Ap7W5LQ=</latexit>\mathcal{KL} (X||X^0) \overset{\text{def}}{=} \sum_{i,j=1}^n \Bigl(X_{ij}\log \frac{X_{ij}}{X^0_{ij}}-X_{ij}+X_{ij}^0 \Bigr)
min
X2Rn×n KL(X||X0)
s.t. X1 = 1, X>1 = 1
<latexit sha1_base64="A+e7qON7tAZM8eKSHqsKV/yQsw=">ACaHicbVFdSxwxFM1MbWrbceqSPEluBQslGFGBX0RF8EfbDi6sBmd8lkMxrMZMbkjrjEwf/YN3+AL/4Ksx9gqx4IHM65N7n3JC2lMBFD57/Yerjp+mZz43ZuS9fvwXz389MUWnGW6yQhU5SargUirdAgORJqTnNU8nP06v9oX9+w7URhTqFQck7Ob1QIhOMgpN6wT3JherZhAhFcgqXaWpP6q5VBETODVZ1jfHIYFTaw6O6sZbc3SXd6Be5rmgfE+C3YE0Ia5xMr4hs3G980J/46RLoCjxu24vaEZhNAJ+S+IJaIJjnvBX9IvWJVzBUxSY9pxVELHUg2CSV43SGV4SdkVveBtRxV1a3TsKga/3RKH2eFdkcBHqn/dliaGzPIU1c5nNC89obie167gmy7Y4UqK+CKjR/KomhwMPUcV9ozkAOHKFMCzcrZpdUwbubxouhPj1ym/J2XoYb4Trfzabu3uTOGbQClpFayhGW2gXHaBj1EIMPXqz3qK35D35gb/s/xiX+t6kZwH9B3/1GZKpueo=</latexit>\min_x\Bigl\{\mathcal{KL} (Ax||b) =\sum_{i}^n \Bigl(\langle a_i, x\rangle\log \frac{\langle a_i, x\rangle}{b_i}-\langle a_i, x\rangle+b_i \Bigr) \Bigr\}
x = vec(X) ∈ Rd, d = n · n
<latexit sha1_base64="VZFmJECIuWBcUjxaZ+t76JCMes=">ACFnicbVDLSgMxFM3UV62vqks3wSJU0DJTBd0Uim5cVrEP6Iwlk8m0oUlmSDLFMvQr3Pgrblwo4lbc+Temj4VWDwQO5xL7j1+zKjStv1lZRYWl5ZXsqu5tfWNza389k5DRYnEpI4jFsmWjxRhVJC6pqRViwJ4j4jTb9/OfabAyIVjcStHsbE46graEgx0kbq5I/vKy5Huid5OiB4VGwdulRMFN9Pb0Z3wZELg4pwcRBpaPIFu2RPAP8SZ0YKYIZaJ/pBhFOBEaM6RU27Fj7aVIaoZGeXcRJEY4T7qkrahAnGivHRy1geGCWAYSTNExpO1J8TKeJKDblvkuOF1bw3Fv/z2okOz72UijRODpR2HCoI7guCMYUEmwZkNDEJbU7ApxD0mEtWkyZ0pw5k/+SxrlknNSKl+fFqoXszqyYA/sgyJwBmogitQA3WAwQN4Ai/g1Xq0nq03630azVizmV3wC9bHNwAanz4=</latexit>a1 = (1, 1, . . . , 1, 0, . . . , 0)
<latexit sha1_base64="b2MV30rimIaSMXFR1q49p+JNBk=">ACDnicbVDLSgMxFM34rPU16tJNsBQqSJmpgm6EohuXFewD2mHIpJk2NPMguSOUoV/gxl9x40IRt67d+Tem0wG19ZDAybn3cHOPFwuwLK+jKXldW19cJGcXNre2fX3NtvqSiRlDVpJCLZ8YhigoesCRwE68SkcATrO2Nrqf19j2TikfhHYxj5gRkEHKfUwJacs0ycW18iSv2Cdan149A0YxaPy/r2DVLVtXKgBeJnZMSytFwzU9tpknAQqCKNW1rRiclEjgVLBJsZcoFhM6IgPW1TQkAVNOmq0zwWt9LEfSX1DwJn625GSQKlx4OnOgMBQzdem4n+1bgL+hZPyME6AhXQ2yE8EhghPs8F9LhkFMdaEUMn1XzEdEko6ASLOgR7fuVF0qpV7dNq7fasVL/K4yigQ3SEKshG56iOblADNRFD+gJvaBX49F4Nt6M91nrkpF7DtAfGB/fze2XjQ=</latexit>ai = (0, . . . , 0, 1, . . . , 1 | {z }
i−th block
, 0, . . . , 0)
<latexit sha1_base64="cGq/Ht4qJ/3tqWDfi4dMT03SwzQ=">ACOnicbVDLSgMxFM34tr6qLt0Ei6BQy0wVdCOIblwq2Fpoy5BJb9vQTGZI7ohlmO9y41e4c+HGhSJu/QDTh/g8EDicw839wSxFAZd98GZmJyanpmdm8tLC4tr+RX16omSjSHCo9kpGsBMyCFgoKlFCLNbAwkHAV9E4H/tU1aCMidYn9GJoh6yjRFpyhlfz8BfMFPaLbpE2WhEaXqQDmqgW6EAzDqn35XiZn4rdBsINptilgYx4L8tGic/wjp8vuCV3CPqXeGNSIGOc+/l7G+ZJCAq5ZMbUPTfGZso0Ci4hyzUSAzHjPdaBuqWKhWCa6fD0jG5ZpUXbkbZPIR2q3xMpC43ph4GdDBl2zW9vIP7n1RNsHzZToeIEQfHRonYiKUZ0CNtCQ0cZd8SxrWwf6W8y2xjaNvO2RK83yf/JdVydsrlS/2C8cn4zrmyAbZJNvEIwfkmJyRc1IhnNySR/JMXpw758l5d5GoxPOLNOfsB5/wBamKo5</latexit>a_i = (0, \dotsc, 0, \underbrace{1, \dotsc, 1}_{i-\text{th block}}, 0, \dotsc, 0)t a_1 = (1, 1, \dotsc, 1, 0, \dotsc, 0) x=\mathrm{vec}(X)\in\mathbb{R}^d,\ d=n\cdot n X^\top \mathbf{1}=\mathbf{1}
X1 = 1
<latexit sha1_base64="KbodkH5BKqMgoNbj6NCr5kz5dJM=">ACAHicbZDLSsNAFIZPvNZ6i7pw4WawCK5KUgXdCEU3LivYC7ShTKaTduhkEmYmQgnZ+CpuXCji1sdw59s4aQNq6w8DH/85hzn92POlHacL2tpeWV1b20Ud7c2t7Ztf2WypKJKFNEvFIdnysKGeCNjXTnHZiSXHoc9r2xzd5vf1ApWKRuNeTmHohHgoWMIK1sfr2YQf1QqxHfpC62dUP9u2KU3WmQovgFlCBQo2+/dkbRCQJqdCEY6W6rhNrL8VSM8JpVu4lisaYjPGQdg0KHFLlpdMDMnRinAEKIme0Gjq/p5IcajUJPRNZ76hmq/l5n+1bqKDSy9lIk40FWT2UZBwpCOUp4EGTFKi+cQAJpKZXREZYmJNpmVTQju/MmL0KpV3bNq7e68Ur8u4ijBERzDKbhwAXW4hQY0gUAGT/ACr9aj9Wy9We+z1iWrmDmAP7I+vgFLzJY4</latexit>\min_x\Bigl\{\mathcal{KL} (Ax||b) =\sum_{i}^n \Bigl(\langle a_i, x\rangle\log \frac{\langle a_i, x\rangle}{b_i}-\langle a_i, x\rangle+b_i \Bigr) \Bigr\}
x = vec(X) ∈ Rd, d = n · n
<latexit sha1_base64="VZFmJECIuWBcUjxaZ+t76JCMes=">ACFnicbVDLSgMxFM3UV62vqks3wSJU0DJTBd0Uim5cVrEP6Iwlk8m0oUlmSDLFMvQr3Pgrblwo4lbc+Temj4VWDwQO5xL7j1+zKjStv1lZRYWl5ZXsqu5tfWNza389k5DRYnEpI4jFsmWjxRhVJC6pqRViwJ4j4jTb9/OfabAyIVjcStHsbE46graEgx0kbq5I/vKy5Huid5OiB4VGwdulRMFN9Pb0Z3wZELg4pwcRBpaPIFu2RPAP8SZ0YKYIZaJ/pBhFOBEaM6RU27Fj7aVIaoZGeXcRJEY4T7qkrahAnGivHRy1geGCWAYSTNExpO1J8TKeJKDblvkuOF1bw3Fv/z2okOz72UijRODpR2HCoI7guCMYUEmwZkNDEJbU7ApxD0mEtWkyZ0pw5k/+SxrlknNSKl+fFqoXszqyYA/sgyJwBmogitQA3WAwQN4Ai/g1Xq0nq03630azVizmV3wC9bHNwAanz4=</latexit>a1 = (1, 1, . . . , 1, 0, . . . , 0)
<latexit sha1_base64="b2MV30rimIaSMXFR1q49p+JNBk=">ACDnicbVDLSgMxFM34rPU16tJNsBQqSJmpgm6EohuXFewD2mHIpJk2NPMguSOUoV/gxl9x40IRt67d+Tem0wG19ZDAybn3cHOPFwuwLK+jKXldW19cJGcXNre2fX3NtvqSiRlDVpJCLZ8YhigoesCRwE68SkcATrO2Nrqf19j2TikfhHYxj5gRkEHKfUwJacs0ycW18iSv2Cdan149A0YxaPy/r2DVLVtXKgBeJnZMSytFwzU9tpknAQqCKNW1rRiclEjgVLBJsZcoFhM6IgPW1TQkAVNOmq0zwWt9LEfSX1DwJn625GSQKlx4OnOgMBQzdem4n+1bgL+hZPyME6AhXQ2yE8EhghPs8F9LhkFMdaEUMn1XzEdEko6ASLOgR7fuVF0qpV7dNq7fasVL/K4yigQ3SEKshG56iOblADNRFD+gJvaBX49F4Nt6M91nrkpF7DtAfGB/fze2XjQ=</latexit>ai = (0, . . . , 0, 1, . . . , 1 | {z }
i−th block
, 0, . . . , 0)
<latexit sha1_base64="cGq/Ht4qJ/3tqWDfi4dMT03SwzQ=">ACOnicbVDLSgMxFM34tr6qLt0Ei6BQy0wVdCOIblwq2Fpoy5BJb9vQTGZI7ohlmO9y41e4c+HGhSJu/QDTh/g8EDicw839wSxFAZd98GZmJyanpmdm8tLC4tr+RX16omSjSHCo9kpGsBMyCFgoKlFCLNbAwkHAV9E4H/tU1aCMidYn9GJoh6yjRFpyhlfz8BfMFPaLbpE2WhEaXqQDmqgW6EAzDqn35XiZn4rdBsINptilgYx4L8tGic/wjp8vuCV3CPqXeGNSIGOc+/l7G+ZJCAq5ZMbUPTfGZso0Ci4hyzUSAzHjPdaBuqWKhWCa6fD0jG5ZpUXbkbZPIR2q3xMpC43ph4GdDBl2zW9vIP7n1RNsHzZToeIEQfHRonYiKUZ0CNtCQ0cZd8SxrWwf6W8y2xjaNvO2RK83yf/JdVydsrlS/2C8cn4zrmyAbZJNvEIwfkmJyRc1IhnNySR/JMXpw758l5d5GoxPOLNOfsB5/wBamKo5</latexit>a_i = (0, \dotsc, 0, \underbrace{1, \dotsc, 1}_{i-\text{th block}}, 0, \dotsc, 0)t a_1 = (1, 1, \dotsc, 1, 0, \dotsc, 0) x=\mathrm{vec}(X)\in\mathbb{R}^d,\ d=n\cdot n X^\top \mathbf{1}=\mathbf{1}
X1 = 1
<latexit sha1_base64="KbodkH5BKqMgoNbj6NCr5kz5dJM=">ACAHicbZDLSsNAFIZPvNZ6i7pw4WawCK5KUgXdCEU3LivYC7ShTKaTduhkEmYmQgnZ+CpuXCji1sdw59s4aQNq6w8DH/85hzn92POlHacL2tpeWV1b20Ud7c2t7Ztf2WypKJKFNEvFIdnysKGeCNjXTnHZiSXHoc9r2xzd5vf1ApWKRuNeTmHohHgoWMIK1sfr2YQf1QqxHfpC62dUP9u2KU3WmQovgFlCBQo2+/dkbRCQJqdCEY6W6rhNrL8VSM8JpVu4lisaYjPGQdg0KHFLlpdMDMnRinAEKIme0Gjq/p5IcajUJPRNZ76hmq/l5n+1bqKDSy9lIk40FWT2UZBwpCOUp4EGTFKi+cQAJpKZXREZYmJNpmVTQju/MmL0KpV3bNq7e68Ur8u4ijBERzDKbhwAXW4hQY0gUAGT/ACr9aj9Wy9We+z1iWrmDmAP7I+vgFLzJY4</latexit>same for X>1 = 1
<latexit sha1_base64="qI/YqXyJ1460/Lo0baWb5DBu54=">ACFXicbVDLSsNAFJ3UV62vqks3g0VwISWpgm6EohuXFewDmlgm0k7dJIJMzdiCf0JN/6KGxeKuBXc+TdO24DaelaHc+7lnv8WHANtv1l5RYWl5ZX8quFtfWNza3i9k5Dy0RVqdSNXyiWaCR6wOHARrxYqR0Bes6Q8ux37zjinNZXQDw5h5IelFPOCUgJE6xSMX2D2kmoQMB1LhUevWBRljNyTQ94PUGZ3/0E6xZJftCfA8cTJSQhlqneKn25U0CVkEVBCt24dg5cSBZwKNiq4iWYxoQPSY21DI5NCe+nkqxE+MEp3EiqQEeCJ+nsjJaHWw9A3k+OEetYbi/957QSCMy/lUZwAi+j0UJAIDBKPK8JdrhgFMTSEUMVNVkz7RBEKpsiCKcGZfXmeNCpl57hcuT4pVS+yOvJoD+2jQ+SgU1RFV6iG6oiB/SEXtCr9Wg9W2/W+3Q0Z2U7u+gPrI9vDLOfXQ=</latexit>A = a1 a2 . . . am
<latexit sha1_base64="wt+gASjeC/eKBxsV5vkwW19gGfg=">ACI3icbVDLSgMxFM34rPU16tJNsAiuykwVFEGounFZwT6gU4ZM5rYNzWSGJFMsQ/Fjb/ixoVS3LjwX0wfiLZeCDmcy73hMknCntOJ/W0vLK6tp6biO/ubW9s2v7dUnEoKVRrzWDYCoAzAVXNIdGIoFEAYd60Lsd6/U+SMVi8aAHCbQi0hGszSjRhvLty+urvBdAh4ksiYiW7HFIfBd7HiZ+afx5/TDWakpEHojwx+fbBafoTAovAncGCmhWFd8eWFM0wiEpwo1XSdRLcyIjWjHIZ5L1WQENojHWgaKEgEqpVNbhziY8OEuB1L84TGE/Z3R0YipQZRYJxmv6a18bkf1oz1e2LVsZEkmoQdDqonXKsYzwODIdMAtV8YAChkpldMe0Sag2seZNCO78yYugViq6p8XS/VmhfDOLI4cO0RE6QS46R2V0hyqoih6Qi/oDb1bz9arNbI+ptYla9ZzgP6U9fUN/vWj7Q=</latexit>\min_x\Bigl\{\mathcal{KL} (Ax||b) =\sum_{i}^{2n} \Bigl(\langle a_i, x\rangle\log \frac{\langle a_i, x\rangle}{b_i}-\langle a_i, x\rangle+b_i \Bigr) \Bigr\}
x = vec(X) ∈ Rd, d = n · n
<latexit sha1_base64="VZFmJECIuWBcUjxaZ+t76JCMes=">ACFnicbVDLSgMxFM3UV62vqks3wSJU0DJTBd0Uim5cVrEP6Iwlk8m0oUlmSDLFMvQr3Pgrblwo4lbc+Temj4VWDwQO5xL7j1+zKjStv1lZRYWl5ZXsqu5tfWNza389k5DRYnEpI4jFsmWjxRhVJC6pqRViwJ4j4jTb9/OfabAyIVjcStHsbE46graEgx0kbq5I/vKy5Huid5OiB4VGwdulRMFN9Pb0Z3wZELg4pwcRBpaPIFu2RPAP8SZ0YKYIZaJ/pBhFOBEaM6RU27Fj7aVIaoZGeXcRJEY4T7qkrahAnGivHRy1geGCWAYSTNExpO1J8TKeJKDblvkuOF1bw3Fv/z2okOz72UijRODpR2HCoI7guCMYUEmwZkNDEJbU7ApxD0mEtWkyZ0pw5k/+SxrlknNSKl+fFqoXszqyYA/sgyJwBmogitQA3WAwQN4Ai/g1Xq0nq03630azVizmV3wC9bHNwAanz4=</latexit>a1 = (1, 1, . . . , 1, 0, . . . , 0)
<latexit sha1_base64="b2MV30rimIaSMXFR1q49p+JNBk=">ACDnicbVDLSgMxFM34rPU16tJNsBQqSJmpgm6EohuXFewD2mHIpJk2NPMguSOUoV/gxl9x40IRt67d+Tem0wG19ZDAybn3cHOPFwuwLK+jKXldW19cJGcXNre2fX3NtvqSiRlDVpJCLZ8YhigoesCRwE68SkcATrO2Nrqf19j2TikfhHYxj5gRkEHKfUwJacs0ycW18iSv2Cdan149A0YxaPy/r2DVLVtXKgBeJnZMSytFwzU9tpknAQqCKNW1rRiclEjgVLBJsZcoFhM6IgPW1TQkAVNOmq0zwWt9LEfSX1DwJn625GSQKlx4OnOgMBQzdem4n+1bgL+hZPyME6AhXQ2yE8EhghPs8F9LhkFMdaEUMn1XzEdEko6ASLOgR7fuVF0qpV7dNq7fasVL/K4yigQ3SEKshG56iOblADNRFD+gJvaBX49F4Nt6M91nrkpF7DtAfGB/fze2XjQ=</latexit>ai = (0, . . . , 0, 1, . . . , 1 | {z }
i−th block
, 0, . . . , 0)
<latexit sha1_base64="cGq/Ht4qJ/3tqWDfi4dMT03SwzQ=">ACOnicbVDLSgMxFM34tr6qLt0Ei6BQy0wVdCOIblwq2Fpoy5BJb9vQTGZI7ohlmO9y41e4c+HGhSJu/QDTh/g8EDicw839wSxFAZd98GZmJyanpmdm8tLC4tr+RX16omSjSHCo9kpGsBMyCFgoKlFCLNbAwkHAV9E4H/tU1aCMidYn9GJoh6yjRFpyhlfz8BfMFPaLbpE2WhEaXqQDmqgW6EAzDqn35XiZn4rdBsINptilgYx4L8tGic/wjp8vuCV3CPqXeGNSIGOc+/l7G+ZJCAq5ZMbUPTfGZso0Ci4hyzUSAzHjPdaBuqWKhWCa6fD0jG5ZpUXbkbZPIR2q3xMpC43ph4GdDBl2zW9vIP7n1RNsHzZToeIEQfHRonYiKUZ0CNtCQ0cZd8SxrWwf6W8y2xjaNvO2RK83yf/JdVydsrlS/2C8cn4zrmyAbZJNvEIwfkmJyRc1IhnNySR/JMXpw758l5d5GoxPOLNOfsB5/wBamKo5</latexit>a_i = (0, \dotsc, 0, \underbrace{1, \dotsc, 1}_{i-\text{th block}}, 0, \dotsc, 0)t a_1 = (1, 1, \dotsc, 1, 0, \dotsc, 0) x=\mathrm{vec}(X)\in\mathbb{R}^d,\ d=n\cdot n X^\top \mathbf{1}=\mathbf{1}
X1 = 1
<latexit sha1_base64="KbodkH5BKqMgoNbj6NCr5kz5dJM=">ACAHicbZDLSsNAFIZPvNZ6i7pw4WawCK5KUgXdCEU3LivYC7ShTKaTduhkEmYmQgnZ+CpuXCji1sdw59s4aQNq6w8DH/85hzn92POlHacL2tpeWV1b20Ud7c2t7Ztf2WypKJKFNEvFIdnysKGeCNjXTnHZiSXHoc9r2xzd5vf1ApWKRuNeTmHohHgoWMIK1sfr2YQf1QqxHfpC62dUP9u2KU3WmQovgFlCBQo2+/dkbRCQJqdCEY6W6rhNrL8VSM8JpVu4lisaYjPGQdg0KHFLlpdMDMnRinAEKIme0Gjq/p5IcajUJPRNZ76hmq/l5n+1bqKDSy9lIk40FWT2UZBwpCOUp4EGTFKi+cQAJpKZXREZYmJNpmVTQju/MmL0KpV3bNq7e68Ur8u4ijBERzDKbhwAXW4hQY0gUAGT/ACr9aj9Wy9We+z1iWrmDmAP7I+vgFLzJY4</latexit>same for X>1 = 1
<latexit sha1_base64="qI/YqXyJ1460/Lo0baWb5DBu54=">ACFXicbVDLSsNAFJ3UV62vqks3g0VwISWpgm6EohuXFewDmlgm0k7dJIJMzdiCf0JN/6KGxeKuBXc+TdO24DaelaHc+7lnv8WHANtv1l5RYWl5ZX8quFtfWNza3i9k5Dy0RVqdSNXyiWaCR6wOHARrxYqR0Bes6Q8ux37zjinNZXQDw5h5IelFPOCUgJE6xSMX2D2kmoQMB1LhUevWBRljNyTQ94PUGZ3/0E6xZJftCfA8cTJSQhlqneKn25U0CVkEVBCt24dg5cSBZwKNiq4iWYxoQPSY21DI5NCe+nkqxE+MEp3EiqQEeCJ+nsjJaHWw9A3k+OEetYbi/957QSCMy/lUZwAi+j0UJAIDBKPK8JdrhgFMTSEUMVNVkz7RBEKpsiCKcGZfXmeNCpl57hcuT4pVS+yOvJoD+2jQ+SgU1RFV6iG6oiB/SEXtCr9Wg9W2/W+3Q0Z2U7u+gPrI9vDLOfXQ=</latexit>A= \begin{pmatrix}a_1 \\ a_2 \\ \vdots \\ a_m\end{pmatrix}
min
x
n KL(Ax||b) =
2n
X
i
⇣ hai, xi log hai, xi bi hai, xi + bi ⌘o
<latexit sha1_base64="bcuRXeVuKjcKjaE/AmNTHdRu3I=">AChHicbVHBbhMxEPVuoS0B2lCOXCwiRCraDelKhdQKBckOBSJXisJp1vFurtndle1EiZ7+Ev+LG3+BscoA2I1l+fm/GY79JS8GNjaI/Qbjz4OHu3v6j1uMnTw8O28+ORqaoNGVDWohCX6dgmOCKDS23gl2XmoFMBRunt59W+vgn04YX6rtdlGwqIVc84xSsp5L2LyK5SubkueCOCLB3lAQ7svXutX9OF8u02P8nphKJo7XP1xf1bhJ7RIBKhcMQ8JP8Jzo5kREkWOSaBuq167NOH16VbtjZeau/XxeiN10u5EvagJfB/EG9Bm7hK2r/JrKCVZMpSAcZM4qi0Uwfacuq7t0hlWAn0FnI28VCBZGbqGhNr/MozM5wV2i9lcP+W+FAGrOQqc9cuWTuaitymzapbPZu6rgqK8sUXTfKoFtgVcTwTOuGbVi4QFQzf1bMb0Bb6L1c2t5E+K7X74PRv1efNbrf3vbGVxu7NhHL9BL1EUxukAD9BldoSGiQRC8DqIgDnfDk/AsPF+nhsGm5jn6L8IPfwEoCsJu</latexit>a_i = (0, \dotsc, 0, \underbrace{1, \dotsc, 1}_{i-\text{th block}}, 0, \dotsc, 0)t a_1 = (1, 1, \dotsc, 1, 0, \dotsc, 0) x=\mathrm{vec}(X)\in\mathbb{R}^d,\ d=n\cdot n
W = diag(u)Xdiag(v) is doubly stochastic
<latexit sha1_base64="KLK8Q+2mrEk8g+cVUXCbpPkNd0=">ACI3icbVDLSsNAFJ34rPUVdelmsBXaTUnqQhGEohuXFewD2lAmk0k7dJIJ8yiU0H9x46+4caEUNy78F6dtFrb1wMDhnHv3Hv8hFGpHOfb2tjc2t7Zze3l9w8Oj47tk9Om5Fpg0sCcdH2kSMxqShqGKknQiCIp+Rlj98mPmtERGS8vhZjRPiRagf05BipIzUs2+LrbtuhNRARGlAUX9S0uX2sjAqFyGVMODaZ2MoFcDJBXFPbvgVJw54DpxM1IAGeo9e9oNONYRiRVmSMqO6yTKS5EwxiZ5LtakgThIeqTjqExioj0vmNE3hplACGXJgXKzhX/3akKJyHPmcra9XPVm4n9eR6vwxktpnGhFYrz4KNQMKg5ngcGACoKVudykgQU1u0ITgEBYmVjzJgR39eR10qxW3KtK9alaqN1nceTAObgAJeCa1ADj6AOGgCDF/AGPsCn9Wq9W1Pra1G6YWU9Z2AJ1s8vI06klg=</latexit>Loop
<latexit sha1_base64="OVJTgvU4yYJEiULSWsc/AaoGE3s=">AB63icbVC7SgNBFL3rM8ZX1NJmMAhWYTcWgZtLCwimAckS5idzCZD5rHMzAphyS/YWChi6w/Z+TfOJlto4oELh3Pu5d57oQzY3/21tb39jc2i7tlHf39g8OK0fHbaNSTWiLK50N8KGciZpyzLaTfRFIuI040uc39zhPVhin5aKcJDQUeSRYzgm0u3SuVDCpVv+bPgVZJUJAqFGgOKl/9oSKpoNISjo3pBX5iwxrywins3I/NTBZIJHtOeoxIKaMJvfOkPnThmiWGlX0qK5+nsiw8KYqYhcp8B2bJa9XPzP6U2vg4zJpPUkWi+KUI6tQ/jgaMk2J5VNHMNHM3YrIGtMrIun7EIl9eJe16Lbis1R/q1cZNEUcJTuEMLiCAK2jAHTShBQTG8Ayv8OYJ78V79z4WrWteMXMCf+B9/gAPf4+</latexit>X^{k+1}=\arg\min_{X\mathbf{1}=\mathbf{1}}\left\{\mathcal{KL}(X||X^k) \right\} X^{k+2}=\arg\min_{X^\top\mathbf{1}=\mathbf{1}}\left\{\mathcal{KL}(X||X^{k+1}) \right\} f_1(x)=\mathcal{KL}(A_{\text{rows}}x||\mathbf{1}),\ f_2(x)=\mathcal{KL}(A_{\text{cols}}x||\mathbf{1})
a_i = (0, \dotsc, 0, \underbrace{1, \dotsc, 1}_{i-\text{th block}}, 0, \dotsc, 0)t a_1 = (1, 1, \dotsc, 1, 0, \dotsc, 0) x=\mathrm{vec}(X)\in\mathbb{R}^d,\ d=n\cdot n
Loop
<latexit sha1_base64="OVJTgvU4yYJEiULSWsc/AaoGE3s=">AB63icbVC7SgNBFL3rM8ZX1NJmMAhWYTcWgZtLCwimAckS5idzCZD5rHMzAphyS/YWChi6w/Z+TfOJlto4oELh3Pu5d57oQzY3/21tb39jc2i7tlHf39g8OK0fHbaNSTWiLK50N8KGciZpyzLaTfRFIuI040uc39zhPVhin5aKcJDQUeSRYzgm0u3SuVDCpVv+bPgVZJUJAqFGgOKl/9oSKpoNISjo3pBX5iwxrywins3I/NTBZIJHtOeoxIKaMJvfOkPnThmiWGlX0qK5+nsiw8KYqYhcp8B2bJa9XPzP6U2vg4zJpPUkWi+KUI6tQ/jgaMk2J5VNHMNHM3YrIGtMrIun7EIl9eJe16Lbis1R/q1cZNEUcJTuEMLiCAK2jAHTShBQTG8Ayv8OYJ78V79z4WrWteMXMCf+B9/gAPf4+</latexit>Xk+1 = arg min
X1=1
X^{k+1}=\arg\min_{X\mathbf{1}=\mathbf{1}}\left\{\mathcal{KL}(X||X^k) \right\}
Xk+2 = arg min
X>1=1
Loop
<latexit sha1_base64="OVJTgvU4yYJEiULSWsc/AaoGE3s=">AB63icbVC7SgNBFL3rM8ZX1NJmMAhWYTcWgZtLCwimAckS5idzCZD5rHMzAphyS/YWChi6w/Z+TfOJlto4oELh3Pu5d57oQzY3/21tb39jc2i7tlHf39g8OK0fHbaNSTWiLK50N8KGciZpyzLaTfRFIuI040uc39zhPVhin5aKcJDQUeSRYzgm0u3SuVDCpVv+bPgVZJUJAqFGgOKl/9oSKpoNISjo3pBX5iwxrywins3I/NTBZIJHtOeoxIKaMJvfOkPnThmiWGlX0qK5+nsiw8KYqYhcp8B2bJa9XPzP6U2vg4zJpPUkWi+KUI6tQ/jgaMk2J5VNHMNHM3YrIGtMrIun7EIl9eJe16Lbis1R/q1cZNEUcJTuEMLiCAK2jAHTShBQTG8Ayv8OYJ78V79z4WrWteMXMCf+B9/gAPf4+</latexit>X^{k+2}=\arg\min_{X^\top\mathbf{1}=\mathbf{1}}\left\{\mathcal{KL}(X||X^{k+1}) \right\} f_1(x)=\mathcal{KL}(A_{\text{rows}}x||\mathbf{1}),\ f_2(x)=\mathcal{KL}(A_{\text{cols}}x||\mathbf{1})
min
X2Rn×n KL(X||X0)
s.t. X1 = 1, X>1 = 1
<latexit sha1_base64="A+e7qON7tAZM8eKSHqsKV/yQsw=">ACaHicbVFdSxwxFM1MbWrbceqSPEluBQslGFGBX0RF8EfbDi6sBmd8lkMxrMZMbkjrjEwf/YN3+AL/4Ksx9gqx4IHM65N7n3JC2lMBFD57/Yerjp+mZz43ZuS9fvwXz389MUWnGW6yQhU5SargUirdAgORJqTnNU8nP06v9oX9+w7URhTqFQck7Ob1QIhOMgpN6wT3JherZhAhFcgqXaWpP6q5VBETODVZ1jfHIYFTaw6O6sZbc3SXd6Be5rmgfE+C3YE0Ia5xMr4hs3G980J/46RLoCjxu24vaEZhNAJ+S+IJaIJjnvBX9IvWJVzBUxSY9pxVELHUg2CSV43SGV4SdkVveBtRxV1a3TsKga/3RKH2eFdkcBHqn/dliaGzPIU1c5nNC89obie167gmy7Y4UqK+CKjR/KomhwMPUcV9ozkAOHKFMCzcrZpdUwbubxouhPj1ym/J2XoYb4Trfzabu3uTOGbQClpFayhGW2gXHaBj1EIMPXqz3qK35D35gb/s/xiX+t6kZwH9B3/1GZKpueo=</latexit>a_i = (0, \dotsc, 0, \underbrace{1, \dotsc, 1}_{i-\text{th block}}, 0, \dotsc, 0)t a_1 = (1, 1, \dotsc, 1, 0, \dotsc, 0) x=\mathrm{vec}(X)\in\mathbb{R}^d,\ d=n\cdot n
Loop
<latexit sha1_base64="OVJTgvU4yYJEiULSWsc/AaoGE3s=">AB63icbVC7SgNBFL3rM8ZX1NJmMAhWYTcWgZtLCwimAckS5idzCZD5rHMzAphyS/YWChi6w/Z+TfOJlto4oELh3Pu5d57oQzY3/21tb39jc2i7tlHf39g8OK0fHbaNSTWiLK50N8KGciZpyzLaTfRFIuI040uc39zhPVhin5aKcJDQUeSRYzgm0u3SuVDCpVv+bPgVZJUJAqFGgOKl/9oSKpoNISjo3pBX5iwxrywins3I/NTBZIJHtOeoxIKaMJvfOkPnThmiWGlX0qK5+nsiw8KYqYhcp8B2bJa9XPzP6U2vg4zJpPUkWi+KUI6tQ/jgaMk2J5VNHMNHM3YrIGtMrIun7EIl9eJe16Lbis1R/q1cZNEUcJTuEMLiCAK2jAHTShBQTG8Ayv8OYJ78V79z4WrWteMXMCf+B9/gAPf4+</latexit>Xk+1 = arg min
X1=1
X^{k+1}=\arg\min_{X\mathbf{1}=\mathbf{1}}\left\{\mathcal{KL}(X||X^k) \right\}
Xk+2 = arg min
X>1=1
Loop
<latexit sha1_base64="OVJTgvU4yYJEiULSWsc/AaoGE3s=">AB63icbVC7SgNBFL3rM8ZX1NJmMAhWYTcWgZtLCwimAckS5idzCZD5rHMzAphyS/YWChi6w/Z+TfOJlto4oELh3Pu5d57oQzY3/21tb39jc2i7tlHf39g8OK0fHbaNSTWiLK50N8KGciZpyzLaTfRFIuI040uc39zhPVhin5aKcJDQUeSRYzgm0u3SuVDCpVv+bPgVZJUJAqFGgOKl/9oSKpoNISjo3pBX5iwxrywins3I/NTBZIJHtOeoxIKaMJvfOkPnThmiWGlX0qK5+nsiw8KYqYhcp8B2bJa9XPzP6U2vg4zJpPUkWi+KUI6tQ/jgaMk2J5VNHMNHM3YrIGtMrIun7EIl9eJe16Lbis1R/q1cZNEUcJTuEMLiCAK2jAHTShBQTG8Ayv8OYJ78V79z4WrWteMXMCf+B9/gAPf4+</latexit>X^{k+2}=\arg\min_{X^\top\mathbf{1}=\mathbf{1}}\left\{\mathcal{KL}(X||X^{k+1}) \right\}
f1(x) = KL(Arowsx||1), f2(x) = KL(Acolsx||1)
<latexit sha1_base64="2HEHePtKCZJPBX2bLw76bS48xng=">ACTnicdVHLSgMxFM3UV62vqks3wSJUkDJTBd0IPjaCLhSsCp0yZNI7Gsw8SO5oyzhf6Ebc+RluXCiae1CrV4IHM65h5yc+IkUGm37ySqMjI6NTxQnS1PTM7Nz5fmFMx2nikODxzJWFz7TIEUEDRQo4SJRwEJfwrl/vd/Tz29AaRFHp9hNoBWy0gEgjM0lFeGwHOqndVtN2R4xZnMDo/y6q6XuQgdzFR8q/O8c3fXl/0gc/LVNZcGXv1/j8k05PHKFbtm94cOA2cAKmQwx1750W3HPA0hQi6Z1k3HTrCVMYWCS8hLbqohYfyaXULTwIiFoFtZv46crhimTYNYmRMh7bPfHRkLte6GvtnsRdS/tR75l9ZMdhqZSJKUoSIf10UpJiTHvd0rZQwF2DWBcCZOV8iumGEfzAyVTgvP7ycPgrF5z1mv1k43Kzt6gjiJZIsukShySXbIATkmDcLJPXkmr+TNerBerHfr42u1YA08i+THFIqf+Ia2Gw=</latexit>f_1(x)=\mathcal{KL}(A_{\text{rows}}x||\mathbf{1}),\ f_2(x)=\mathcal{KL}(A_{\text{cols}}x||\mathbf{1})
min
x
n KL(Ax||b) =
2n
X
i
⇣ hai, xi log hai, xi bi hai, xi + bi ⌘o
<latexit sha1_base64="bcuRXeVuKjcKjaE/AmNTHdRu3I=">AChHicbVHBbhMxEPVuoS0B2lCOXCwiRCraDelKhdQKBckOBSJXisJp1vFurtndle1EiZ7+Ev+LG3+BscoA2I1l+fm/GY79JS8GNjaI/Qbjz4OHu3v6j1uMnTw8O28+ORqaoNGVDWohCX6dgmOCKDS23gl2XmoFMBRunt59W+vgn04YX6rtdlGwqIVc84xSsp5L2LyK5SubkueCOCLB3lAQ7svXutX9OF8u02P8nphKJo7XP1xf1bhJ7RIBKhcMQ8JP8Jzo5kREkWOSaBuq167NOH16VbtjZeau/XxeiN10u5EvagJfB/EG9Bm7hK2r/JrKCVZMpSAcZM4qi0Uwfacuq7t0hlWAn0FnI28VCBZGbqGhNr/MozM5wV2i9lcP+W+FAGrOQqc9cuWTuaitymzapbPZu6rgqK8sUXTfKoFtgVcTwTOuGbVi4QFQzf1bMb0Bb6L1c2t5E+K7X74PRv1efNbrf3vbGVxu7NhHL9BL1EUxukAD9BldoSGiQRC8DqIgDnfDk/AsPF+nhsGm5jn6L8IPfwEoCsJu</latexit>\log (x^{k+1}) = \log (x^k) - \eta \nabla f_i(x^k),\ i\sim U(\{1, 2\})
log(xk+1) = log(xk) ηrfi(xk), i ⇠ U({1, 2})
<latexit sha1_base64="/4DfvjJLF1nGYwanEBcvGoLtm8s=">ACL3icbZBNaxsxEIa1bj5c58tpj70MQGbOGbXCaSXgmg5JhAnAQsx8zKWltYq10kbahZ/I96V/xpYSWkmv+RWTHgXy9IHh5ZobRvGEqhbG+f+sVPiwtr6wWP5bW1jc2t8rbny5MkmnG2yRib4K0XApFG9bYSW/SjXHOJT8Mhwdz+qXN1wbkahzO05N8aBEpFgaB3qlX9QmQyg+vM6H+0Fkxp8gycwqsE+UG4RqMJQIkQ9Mcd1CoIaEUO7SvOgDk06qfXKFb/hzwVvTbAwFbLQa8pf2EZTFXlk0phP4qe3mqK1gk9KNDM8RTbCAe84qzDmpvP753AriN9iBLtnrIwp8ncoyNGceh64zRDs3r2gy+V+tkNvrazYVKM8sVe1wUZRJsArPwoC80Z1aOnUGmhfsrsCFqZNZFXHIhBK9Pfmsumo3goNE8O6y0vi/iKJIvZIdUSUCOSIuckFPSJoz8IlPyl/zfnt/vP/e3WNrwVvMfCYv5N0/AIA8pRQ=</latexit>\min_x \frac{1}{2}\|x-x^0\|^2\ \text{s.t. } Ax=b
min
x
1 2kx x0k2 s.t. Ax = b
<latexit sha1_base64="ICfC/q3Rw6XNu5Xc1zMfuU4RAmM=">ACGXicbVDLSsNAFJ3Ud31FXboZLIbQ1IF3QhVNy4r2FZoaplMJzp0MgkzN5IS8xtu/BU3LhRxqSv/xulj4evAhcM593LvPUEiuAbX/bRKU9Mzs3PzC+XFpeWVXtvanjVFHWoLGI1WVANBNcsgZwEOwyUYxEgWCtoH869Fu3TGkeywsYJKwTkWvJQ04JGKlru37EZTfDfqgIzb0irxb+XbabXbn+3VXVxz6wDHLtgIMLfJwdBV274jruCPgv8Sakgiaod+13vxfTNGISqCBatz03gU5OFHAqWFH2U80SQvkmrUNlSRiupOPivwtlF6OIyVKQl4pH6fyEmk9SAKTGdE4Eb/9obif147hfCwk3OZpMAkHS8KU4EhxsOYcI8rRkEMDCFUcXMrpjfEZAQmzLIJwfv98l/SrDrenlM936/UTiZxzKNtIV2kIcOUA2doTpqIru0SN6Ri/Wg/VkvVpv49aSNZnZQD9gfXwBQlufzA=</latexit>xk+1 = Πhai,xi=bi(xk), i ∼ U({1, . . . , m})
<latexit sha1_base64="XM6jlY+f0D2EQCvJuvbidAldNzk=">ACMnicbVBLSwMxGMz6rPV9eglWISKpexWQS+Fohe9VbC10NQlm6Y1NMkuSVZalv1NXvwlgc9KOLVH2H6OKh1IDCZ+YbkmyDiTBvXfXHm5hcWl5YzK9nVtfWNzdzWdkOHsSK0TkIeqmaANeVM0rphtNmpCgWAac3Qf985N/cU6VZK/NMKJtgXuSdRnBxkp+7nJwm/QPvbSCasxPEMeyxynEPivCAVKTWwUGPksLg9v+QRFBhjQTsF5AiVdEndBoUoQCpQd+Lu+W3DHgLPGmJA+mqPm5JxsnsaDSEI61bnluZNoJVoYRTtMsijWNMOnjHm1ZKrGgup2MV07hvlU6sBsqe6SBY/VnIsFC6EI7KTA5k7/9Ubif14rNt3TdsJkFBsqyeShbsyhCeGoP9hihLDh5Zgopj9KyR3WGFibMtZW4L3d+VZ0iXvKNS+eo4Xz2b1pEBu2APFIAHTkAVXIAaqAMCHsAzeAPvzqPz6nw4n5PROWea2QG/4Hx9A3ewqGw=</latexit>x^k \in x^0 + \mathrm{Range}(A^\top) x^{k+1}=\Pi_{\langle a_i, x\rangle = b_i}(x^k),\ i\sim U(\{1,\dotsc, m\})
Kaczmarz Algorithm
<latexit sha1_base64="6zEGuPClQWQcThz+d0skVd8kQs4=">AB+3icbVA9TwJBEN3DL8SvE0ubjcTEitxhoSVqY2KDiXwkcCFzywIbdm8vu3tGuPBXbCw0xtY/Yue/cYErFHzJC/vzWRmXhzpo3nfTu5tfWNza38dmFnd2/wD0sNrRMFKF1IrlUrRA05SyidcMp61YURAhp81wdDPzm49UaSajBzOaSBgELE+I2Cs1HWLd0AmAtQEX/GBVMwMRdcteWVvDrxK/IyUIZa1/3q9CRJBI0M4aB12/diE6SgDCOcTgudRNMYyAgGtG1pBILqIJ3fPsWnVunhvlS2IoPn6u+JFITWYxHaTgFmqJe9mfif105M/zJIWRQnhkZksaifcGwkngWBe0xRYvjYEiD2cUYwGYICYmxcBRuCv/zyKmlUyv5uXJfKVWvszjy6BidoDPkowtURbeohuqIoCf0jF7RmzN1Xpx352PRmnOymSP0B87nDwOlGs=</latexit>x^{k+1}=x^k+\frac{b_i-\langle a_i, x\rangle}{\|a_i\|^2}a_i
\min_x \frac{1}{2}\|x-x^0\|^2\ \text{s.t. } Ax=b
min
x
1 2kx x0k2 s.t. Ax = b
<latexit sha1_base64="ICfC/q3Rw6XNu5Xc1zMfuU4RAmM=">ACGXicbVDLSsNAFJ3Ud31FXboZLIbQ1IF3QhVNy4r2FZoaplMJzp0MgkzN5IS8xtu/BU3LhRxqSv/xulj4evAhcM593LvPUEiuAbX/bRKU9Mzs3PzC+XFpeWVXtvanjVFHWoLGI1WVANBNcsgZwEOwyUYxEgWCtoH869Fu3TGkeywsYJKwTkWvJQ04JGKlru37EZTfDfqgIzb0irxb+XbabXbn+3VXVxz6wDHLtgIMLfJwdBV274jruCPgv8Sakgiaod+13vxfTNGISqCBatz03gU5OFHAqWFH2U80SQvkmrUNlSRiupOPivwtlF6OIyVKQl4pH6fyEmk9SAKTGdE4Eb/9obif147hfCwk3OZpMAkHS8KU4EhxsOYcI8rRkEMDCFUcXMrpjfEZAQmzLIJwfv98l/SrDrenlM936/UTiZxzKNtIV2kIcOUA2doTpqIru0SN6Ri/Wg/VkvVpv49aSNZnZQD9gfXwBQlufzA=</latexit>xk+1 = Πhai,xi=bi(xk), i ∼ U({1, . . . , m})
<latexit sha1_base64="XM6jlY+f0D2EQCvJuvbidAldNzk=">ACMnicbVBLSwMxGMz6rPV9eglWISKpexWQS+Fohe9VbC10NQlm6Y1NMkuSVZalv1NXvwlgc9KOLVH2H6OKh1IDCZ+YbkmyDiTBvXfXHm5hcWl5YzK9nVtfWNzdzWdkOHsSK0TkIeqmaANeVM0rphtNmpCgWAac3Qf985N/cU6VZK/NMKJtgXuSdRnBxkp+7nJwm/QPvbSCasxPEMeyxynEPivCAVKTWwUGPksLg9v+QRFBhjQTsF5AiVdEndBoUoQCpQd+Lu+W3DHgLPGmJA+mqPm5JxsnsaDSEI61bnluZNoJVoYRTtMsijWNMOnjHm1ZKrGgup2MV07hvlU6sBsqe6SBY/VnIsFC6EI7KTA5k7/9Ubif14rNt3TdsJkFBsqyeShbsyhCeGoP9hihLDh5Zgopj9KyR3WGFibMtZW4L3d+VZ0iXvKNS+eo4Xz2b1pEBu2APFIAHTkAVXIAaqAMCHsAzeAPvzqPz6nw4n5PROWea2QG/4Hx9A3ewqGw=</latexit>xk ∈ x0 + Range(A>)
<latexit sha1_base64="6kEysvVLvwugZNZoYFRFjD0mSs=">ACDXicbVDLSsNAFJ3UV62vqEs3g1WoCWpgi6rblxWsQ9o0jKZTtqhk0mYmUhL6A+48VfcuFDErXt3/o2TNgutHrhwOde7r3HixiVyrK+jNzC4tLySn61sLa+sblbu80ZBgLTOo4ZKFoeUgSRjmpK6oYaUWCoMBjpOkNr1K/eU+EpCG/U+OIuAHqc+pTjJSWubBqDOEDuVw1LHgMXQCpAYiSG4R75NJ6aLjqDA6pFq2xNAf8SOyNFkKHWNT+dXojgHCFGZKybVuRchMkFMWMTApOLEmE8BD1SVtTjgIi3WT6zQeaqUH/VDo4gpO1Z8TCQqkHAe7kyvlfNeKv7ntWPln7sJ5VGsCMezRX7MoAphGg3sUGwYmNEBZU3wrxAmElQ6woEOw51/+SxqVsn1SrtycFquXWRx5sAf2QnY4AxUwTWogTrA4AE8gRfwajwaz8ab8T5rzRnZzC74BePjG5sJmqU=</latexit>x^k \in x^0 + \mathrm{Range}(A^\top) x^{k+1}=\Pi_{\langle a_i, x\rangle = b_i}(x^k),\ i\sim U(\{1,\dotsc, m\})
Kaczmarz Algorithm
<latexit sha1_base64="6zEGuPClQWQcThz+d0skVd8kQs4=">AB+3icbVA9TwJBEN3DL8SvE0ubjcTEitxhoSVqY2KDiXwkcCFzywIbdm8vu3tGuPBXbCw0xtY/Yue/cYErFHzJC/vzWRmXhzpo3nfTu5tfWNza38dmFnd2/wD0sNrRMFKF1IrlUrRA05SyidcMp61YURAhp81wdDPzm49UaSajBzOaSBgELE+I2Cs1HWLd0AmAtQEX/GBVMwMRdcteWVvDrxK/IyUIZa1/3q9CRJBI0M4aB12/diE6SgDCOcTgudRNMYyAgGtG1pBILqIJ3fPsWnVunhvlS2IoPn6u+JFITWYxHaTgFmqJe9mfif105M/zJIWRQnhkZksaifcGwkngWBe0xRYvjYEiD2cUYwGYICYmxcBRuCv/zyKmlUyv5uXJfKVWvszjy6BidoDPkowtURbeohuqIoCf0jF7RmzN1Xpx352PRmnOymSP0B87nDwOlGs=</latexit>x^{k+1}=x^k+\frac{b_i-\langle a_i, x\rangle}{\|a_i\|^2}a_i
xk+1 = xk + bi hai, xi kaik2 ai
<latexit sha1_base64="ZqRK8QY/4JFXWH8vRZaPtEpn8cU=">ACI3icbVDLSgMxFM3UV62vqks3wSI1TJTBUQim5cVrAP6EyHTJpQzOZIclIy7T/4sZfceNCKW5c+C+m7Sy0eiDk5Jx7k9zjRYxKZqfRmZpeWV1Lbue29jc2t7J7+7VZRgLTGo4ZKFoekgSRjmpKaoYaUaCoMBjpOH1b6d+45EISUP+oIYRcQLU5dSnGCktufmrQTvpF63x9aDdL9q+QDjxXHpqM8S7jEDk0hM4sMXsNE7skRbsUbs81rubL5glcwb4l1gpKYAUVTc/sTshjgPCFWZIypZlRspJkFAU69tzdixJhHAfdUlLU4CIp1kNuMYHmlA/1Q6MUVnKk/OxIUSDkMPF0ZINWTi95U/M9rxcq/dBLKo1gRjucP+TGDKoTwGCHCoIVG2qCsKD6rxD3kA5K6VhzOgRrceS/pF4uWel8v15oXKTxpEFB+AQHAMLXIAKuANVUAMYPIEX8AbejWfj1ZgYH/PSjJH27INfML6+AU0FpLM=</latexit>x^{k+1}=x^k-\eta \nabla f_i(x^k),\quad f_i(x) = \frac{1}{2\|a_i\|^2}(\langle a_i, x\rangle - b_i)^2
xk+1 = xk ηrfi(xk), fi(x) = 1 2kaik2 (hai, xi bi)2
<latexit sha1_base64="YjljNiGwU7tELO257/sOgm4Is=">ACTHicbVBNbxMxEPWm0KbhK5QjF4sIKRFJtLut1F4iVXDhWCTSVoqT1awzm1rxehfbixJt9wf2woEbv4ILhyKEhPNxgJYnWXrz3oxm/OJcCmN9/5tX23nwcHevt949PjJ02fN5wfnJis0xyHPZKYvYzAohcKhFVbiZa4R0ljiRTx/t/IvPqM2IlMf7TLHcQozJRLBwTopavLFpJy/CarBYjLvMbRAmYJYAk0i0XZap8s+FTDdlB06oCzRwMugKkN2DZFg15OwajMJaiaROqFLF0xvqh6NI9GZhFGz5f9Neh9EmxJi2xFjW/smnGixSV5RKMGQV+bsclaCu4xKrBCoM58DnMcOSoghTNuFyHUdHXTnH3Zto9Zela/XuihNSYZRq7zhTslbnrcT/eaPCJifjUqi8sKj4ZlFSGozukqWToVGbuXSEeBauFspvwKXlnX5N1wIwd0v3yfnYT847Icfjlqnb7dx1MlL8oq0SUCOySl5T87IkHByQ76TW/LT+L98H5vzetNW8784L8g9ruH9IEsWI=</latexit>a_i = (0, \dotsc, 0, \underbrace{1, \dotsc, 1}_{i-\text{th block}}, 0, \dotsc, 0)t a_1 = (1, 1, \dotsc, 1, 0, \dotsc, 0) x=\mathrm{vec}(X)\in\mathbb{R}^d,\ d=n\cdot n
f1(x) = KL(Arowsx||1), f2(x) = KL(Acolsx||1)
<latexit sha1_base64="2HEHePtKCZJPBX2bLw76bS48xng=">ACTnicdVHLSgMxFM3UV62vqks3wSJUkDJTBd0IPjaCLhSsCp0yZNI7Gsw8SO5oyzhf6Ebc+RluXCiae1CrV4IHM65h5yc+IkUGm37ySqMjI6NTxQnS1PTM7Nz5fmFMx2nikODxzJWFz7TIEUEDRQo4SJRwEJfwrl/vd/Tz29AaRFHp9hNoBWy0gEgjM0lFeGwHOqndVtN2R4xZnMDo/y6q6XuQgdzFR8q/O8c3fXl/0gc/LVNZcGXv1/j8k05PHKFbtm94cOA2cAKmQwx1750W3HPA0hQi6Z1k3HTrCVMYWCS8hLbqohYfyaXULTwIiFoFtZv46crhimTYNYmRMh7bPfHRkLte6GvtnsRdS/tR75l9ZMdhqZSJKUoSIf10UpJiTHvd0rZQwF2DWBcCZOV8iumGEfzAyVTgvP7ycPgrF5z1mv1k43Kzt6gjiJZIsukShySXbIATkmDcLJPXkmr+TNerBerHfr42u1YA08i+THFIqf+Ia2Gw=</latexit>min
x
n KL(Ax||b) =
2n
X
i
⇣ hai, xi log hai, xi bi hai, xi + bi ⌘o
<latexit sha1_base64="bcuRXeVuKjcKjaE/AmNTHdRu3I=">AChHicbVHBbhMxEPVuoS0B2lCOXCwiRCraDelKhdQKBckOBSJXisJp1vFurtndle1EiZ7+Ev+LG3+BscoA2I1l+fm/GY79JS8GNjaI/Qbjz4OHu3v6j1uMnTw8O28+ORqaoNGVDWohCX6dgmOCKDS23gl2XmoFMBRunt59W+vgn04YX6rtdlGwqIVc84xSsp5L2LyK5SubkueCOCLB3lAQ7svXutX9OF8u02P8nphKJo7XP1xf1bhJ7RIBKhcMQ8JP8Jzo5kREkWOSaBuq167NOH16VbtjZeau/XxeiN10u5EvagJfB/EG9Bm7hK2r/JrKCVZMpSAcZM4qi0Uwfacuq7t0hlWAn0FnI28VCBZGbqGhNr/MozM5wV2i9lcP+W+FAGrOQqc9cuWTuaitymzapbPZu6rgqK8sUXTfKoFtgVcTwTOuGbVi4QFQzf1bMb0Bb6L1c2t5E+K7X74PRv1efNbrf3vbGVxu7NhHL9BL1EUxukAD9BldoSGiQRC8DqIgDnfDk/AsPF+nhsGm5jn6L8IPfwEoCsJu</latexit>\log x^k \in \log x^0 + \textrm{Range}(A^\top)
log(xk+1) = log(xk) ηrfi(xk), i ⇠ U({1, 2})
<latexit sha1_base64="/4DfvjJLF1nGYwanEBcvGoLtm8s=">ACL3icbZBNaxsxEIa1bj5c58tpj70MQGbOGbXCaSXgmg5JhAnAQsx8zKWltYq10kbahZ/I96V/xpYSWkmv+RWTHgXy9IHh5ZobRvGEqhbG+f+sVPiwtr6wWP5bW1jc2t8rbny5MkmnG2yRib4K0XApFG9bYSW/SjXHOJT8Mhwdz+qXN1wbkahzO05N8aBEpFgaB3qlX9QmQyg+vM6H+0Fkxp8gycwqsE+UG4RqMJQIkQ9Mcd1CoIaEUO7SvOgDk06qfXKFb/hzwVvTbAwFbLQa8pf2EZTFXlk0phP4qe3mqK1gk9KNDM8RTbCAe84qzDmpvP753AriN9iBLtnrIwp8ncoyNGceh64zRDs3r2gy+V+tkNvrazYVKM8sVe1wUZRJsArPwoC80Z1aOnUGmhfsrsCFqZNZFXHIhBK9Pfmsumo3goNE8O6y0vi/iKJIvZIdUSUCOSIuckFPSJoz8IlPyl/zfnt/vP/e3WNrwVvMfCYv5N0/AIA8pRQ=</latexit>a_i = (0, \dotsc, 0, \underbrace{1, \dotsc, 1}_{i-\text{th block}}, 0, \dotsc, 0)t a_1 = (1, 1, \dotsc, 1, 0, \dotsc, 0) x=\mathrm{vec}(X)\in\mathbb{R}^d,\ d=n\cdot n
f1(x) = KL(Arowsx||1), f2(x) = KL(Acolsx||1)
<latexit sha1_base64="2HEHePtKCZJPBX2bLw76bS48xng=">ACTnicdVHLSgMxFM3UV62vqks3wSJUkDJTBd0IPjaCLhSsCp0yZNI7Gsw8SO5oyzhf6Ebc+RluXCiae1CrV4IHM65h5yc+IkUGm37ySqMjI6NTxQnS1PTM7Nz5fmFMx2nikODxzJWFz7TIEUEDRQo4SJRwEJfwrl/vd/Tz29AaRFHp9hNoBWy0gEgjM0lFeGwHOqndVtN2R4xZnMDo/y6q6XuQgdzFR8q/O8c3fXl/0gc/LVNZcGXv1/j8k05PHKFbtm94cOA2cAKmQwx1750W3HPA0hQi6Z1k3HTrCVMYWCS8hLbqohYfyaXULTwIiFoFtZv46crhimTYNYmRMh7bPfHRkLte6GvtnsRdS/tR75l9ZMdhqZSJKUoSIf10UpJiTHvd0rZQwF2DWBcCZOV8iumGEfzAyVTgvP7ycPgrF5z1mv1k43Kzt6gjiJZIsukShySXbIATkmDcLJPXkmr+TNerBerHfr42u1YA08i+THFIqf+Ia2Gw=</latexit>min
x
n KL(Ax||b) =
2n
X
i
⇣ hai, xi log hai, xi bi hai, xi + bi ⌘o
<latexit sha1_base64="bcuRXeVuKjcKjaE/AmNTHdRu3I=">AChHicbVHBbhMxEPVuoS0B2lCOXCwiRCraDelKhdQKBckOBSJXisJp1vFurtndle1EiZ7+Ev+LG3+BscoA2I1l+fm/GY79JS8GNjaI/Qbjz4OHu3v6j1uMnTw8O28+ORqaoNGVDWohCX6dgmOCKDS23gl2XmoFMBRunt59W+vgn04YX6rtdlGwqIVc84xSsp5L2LyK5SubkueCOCLB3lAQ7svXutX9OF8u02P8nphKJo7XP1xf1bhJ7RIBKhcMQ8JP8Jzo5kREkWOSaBuq167NOH16VbtjZeau/XxeiN10u5EvagJfB/EG9Bm7hK2r/JrKCVZMpSAcZM4qi0Uwfacuq7t0hlWAn0FnI28VCBZGbqGhNr/MozM5wV2i9lcP+W+FAGrOQqc9cuWTuaitymzapbPZu6rgqK8sUXTfKoFtgVcTwTOuGbVi4QFQzf1bMb0Bb6L1c2t5E+K7X74PRv1efNbrf3vbGVxu7NhHL9BL1EUxukAD9BldoSGiQRC8DqIgDnfDk/AsPF+nhsGm5jn6L8IPfwEoCsJu</latexit>log xk ∈ log x0 + Range(A>)
<latexit sha1_base64="p8hZ9mroqLQt8HxVvHELXszUnAQ=">ACF3icbVDLSgMxFM34rPVdekmWARFKDNV0KWPjcsqVoVOLZn0toZmkiG5I5ahf+HGX3HjQhG3uvNvTOsfB24cHLOveTeEyVSWPT9D29sfGJyarowU5ydm19YLC0tn1udGg51rqU2lxGzIWCOgqUcJkYHEk4SLqHQ39ixswVmh1hv0EmjHrKtERnKGTWqVKHWX3l71aCgUzR8+3aIhwi2aODtlqguDjYOrEHWy2SqV/Yo/Av1LgpyUSY5aq/QetjVPY1DIJbO2EfgJNjNmUHAJg2KYWkgY7EuNBxVLAbzEZ3Dei6U9q0o40rhXSkfp/IWGxtP45cZ8zw2v72huJ/XiPFzl4zEypJERT/+qiTSoqaDkOibWGAo+w7wrgRblfKr5lhHF2URdC8Pvkv+S8Wgm2K9WTnfL+YR5HgaySNbJBArJL9skxqZE64eSOPJAn8uzde4/ei/f61Trm5TMr5Ae8t08RKZ6g</latexit>\log x^k \in \log x^0 + \textrm{Range}(A^\top)
Arows, Acols ∈ {0, 1}n×n
<latexit sha1_base64="phf01cT6Te9ML9KHEpgLes1AXwY=">ACJnicbVDLSgMxFM34rPU16tJNsAguSpmpgm6EqhuXFewDOrVk0rQNzWSG5I5ahvkaN/6KGxcVEXd+iuljUVsPBA7n3MvJPX4kuAbH+baWldW19YzG9nNre2dXtv6rDWFWoaEIVd0nmgkuWQU4CFaPFCOBL1jN79+M/NojU5qH8h4GEWsGpCt5h1MCRmrZl1etxAP2DCpIVPik0zSPZyQTYCTscYm9xMlj10sfEukBD5jGMm3ZOafgjIEXiTslOTRFuWUPvXZI4BJoIJo3XCdCJoJUcCpYGnWizWLCO2TLmsYKonJaSbjM1N8bJQ27oTKPAl4rM5uJCTQehD4ZjIg0NPz3kj8z2vE0LloJlxGMTBJ0GdWGAI8agz3OaKURADQwhV3PwV0x5RhIJpNmtKcOdPXiTVYsE9LRTvznKl62kdGXSIjtAJctE5KqFbVEYVRNELekND9G9Wu/Wp/U1GV2ypjsH6A+sn1/jBqaZ</latexit>Xk+1 = diag(uk)X0diag(vk)
<latexit sha1_base64="Df0kCu4R9WDyMRmX+ustcpWw2ig=">ACGHicbZDLSsNAFIYn9VbrLerSzWARKkJNqAboejGZQXbBtq0TCaTdsjkwsykUEIfw42v4saFIm6782ctFnY1h8Gfr5zDnPO78SMCmkYP1phbX1jc6u4XdrZ3ds/0A+PWiJKOCZNHLGIWw4ShNGQNCWVjFgxJyhwGk7/kNWb48IFzQKn+U4JnaABiH1KEZSob5+afVS/8Kc3HUDJIc8SF2KBpNK0vPrZ6xCEcK9vWyUTVmgqvGzE0Z5Gr09WnXjXASkFBihoTomEYs7RxSTEjk1I3ESRG2EcD0lE2RAERdjo7bALPFHGhF3H1Qgln9O9EigIhxoGjOrNxXItg/VOon0bu2UhnEiSYjnH3kJgzKCWUrQpZxgycbKIMyp2hXiIeIS5VlSYVgLp+8alq1qnlVrT1dl+v3eRxFcAJOQWY4AbUwSNogCbA4AW8gQ/wqb1q79qX9j1vLWj5zDFYkDb9BZvKoCA=</latexit>X^{k+1}=\mathrm{diag}(u^k)X^0\mathrm{diag}(v^k)
log(xk+1) = log(xk) ηrfi(xk), i ⇠ U({1, 2})
<latexit sha1_base64="/4DfvjJLF1nGYwanEBcvGoLtm8s=">ACL3icbZBNaxsxEIa1bj5c58tpj70MQGbOGbXCaSXgmg5JhAnAQsx8zKWltYq10kbahZ/I96V/xpYSWkmv+RWTHgXy9IHh5ZobRvGEqhbG+f+sVPiwtr6wWP5bW1jc2t8rbny5MkmnG2yRib4K0XApFG9bYSW/SjXHOJT8Mhwdz+qXN1wbkahzO05N8aBEpFgaB3qlX9QmQyg+vM6H+0Fkxp8gycwqsE+UG4RqMJQIkQ9Mcd1CoIaEUO7SvOgDk06qfXKFb/hzwVvTbAwFbLQa8pf2EZTFXlk0phP4qe3mqK1gk9KNDM8RTbCAe84qzDmpvP753AriN9iBLtnrIwp8ncoyNGceh64zRDs3r2gy+V+tkNvrazYVKM8sVe1wUZRJsArPwoC80Z1aOnUGmhfsrsCFqZNZFXHIhBK9Pfmsumo3goNE8O6y0vi/iKJIvZIdUSUCOSIuckFPSJoz8IlPyl/zfnt/vP/e3WNrwVvMfCYv5N0/AIA8pRQ=</latexit>prescribed row and column sums, 1967
Case of Stochastic Mirror Descent, 2019 arXiv:1909.06918 NeurIPS workshop on Optimal Transport and its Application to Machine Learning Canada, December 2019 https://sites.google.com/view/otml2019/