zoukankan      html  css  js  c++  java
  • Domain Adaption 之 TCA等算法

    看TCA算法 https://www.cse.ust.hk/~qyang/Docs/2009/TCA.pdf 涉及的一些推导做一些整理。 背景介绍见 https://zhuanlan.zhihu.com/p/26764147

    • 最大均值差异(MMD,maximum mean discrepancy), 令\(\bar x_s, \bar x_t \in \mathbb{R}^D\) 分别表示源域 和 目标域样本均值。表示成矩阵形式为

    \[\begin{align} (\bar x_s - \bar x_t) &= \frac1{n_s}X_s 1_{n_s} -\frac1{n_t}X_t 1_{n_t} = [X_s, X_t] \left [\frac {1_{n_s}} {n_s} \atop -\frac {1_{n_t}} {n_t} \right] \\ (\bar x_s - \bar x_t) (\bar x_s - \bar x_t)^T &= [X_s, X_t] \left [\frac {1_{n_s}}{n_s} \atop -\frac {1_{n_t}} {n_t} \right] \Big[\frac {1_{n_s}^T} {n_s} , -\frac {1_{n_t}^T} {n_t} \Big] [X_s, X_t]^T \triangleq X M X^T \\ \end{align} \]

    再注意, \(\|v\|_2^2 = v^T v = {\rm tr}( vv^T)\), 于是 MMD 目标函数转化为

    \[\|\bar\phi(x_s) - \bar \phi(x_t)\|_2^2 = {\rm tr}\big( \phi(X) M \phi(X)^T \big) = {\rm tr}\big( \phi(X)^T \phi(X) M \big) \triangleq {\rm tr}\big( K M \big) \]

    • 注意 M 是秩-1的矩阵, 计算上或许有优化空间。如果是线性变换。

    \[\|A^T(\bar x_s - \bar x_t)\|_2^2 = {\rm tr}\big(A^T (\bar x_s - \bar x_t) (\bar x_s - \bar x_t)^T A\big) = {\rm tr}\big(A^T XMX^T A\big) \]

    TCA

    最终的优化问题为

    \[\begin{array}{c} \min _{W} \operatorname{tr}\left(W^{\top} W\right)+\mu \operatorname{tr}\left(W^{\top} K M K W\right) \\ \text { s.t. } W^{\top} K H K W=I \end{array} \]

    这里 \(H = I - \frac1n ee^T\)为中心化矩阵, 约束条件相当于变换后的变量协方差矩阵为单位阵,是常见的做法,参考变种的线性判别方法LDA等算法。 简单可以理解为,用\(K\) 替换\(X\) 实现非线性转换,再加 \(W\)求线性变换。

    GKF & MEDA

    • 进一步看GFK 以及 Visual Domain Adaptation with Manifold Embedded Distribution Alignment, 2018。 发现用

    \[\|\bar f(z_s) - \bar f(z_t)\|_2^2 = {\rm tr}\big(\beta^T KMK^T \beta\big) \]

    做为其中一个正则项。这里\(z = \sqrt{G} x\), \(G\)是根据GFK算法得到的kernel 矩阵。注意这里 kernel 矩阵\(K = K^T\) 基于 \(z\)重新构造。

    其中核心的子步骤问题,可以转化为

    \[\begin{array}{r} f=\underset{f \in \mathcal{H}_{K}}{\arg \min }\left\|\left(\mathbf{Y}-\boldsymbol{\beta}^{T} \mathbf{K}\right) \mathbf{A}\right\|_{F}^{2}+\eta \operatorname{tr}\left(\boldsymbol{\beta}^{T} \mathbf{K} \boldsymbol{\beta}\right) \\ +\operatorname{tr}\left(\boldsymbol{\beta}^{T} \mathbf{K}(\lambda \mathbf{M}+\rho \mathbf{L}) \mathbf{K} \boldsymbol{\beta}\right) \end{array} \]

    这里 \(L\) 为laplacian矩阵。\(A = {\rm diag}([1_{n_s}; 0_{n_t}])\) 为样本指示矩阵。上面的\(M\)稍微再复杂一点, 具体见论文吧。


    --- 她说, 她是仙,她不是神
  • 相关阅读:
    Windows服务器重启注意事项
    windows10设置共享目录
    新手如何让一个python写的游戏运行起来
    添加索引后SQL消耗量在执行计划中的变化
    Oracle密码验证函数与Create Profile
    visio秘钥
    一条SQL在内存结构与后台进程工作机制
    修改postgresql 密码
    svn 在Windows下用TortoiseSVN checkout 时报认证错误
    zip unzip 压缩解压缩命令
  • 原文地址:https://www.cnblogs.com/bregman/p/15630067.html
Copyright © 2011-2022 走看看