File size: 28,860 Bytes
df22c21 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 | <!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>四模态病理对齐实验报告</title>
<meta name="description" content="H&E / 文本 / mIF 蛋白 / RNA 四模态 ImageBind 式对齐:最终协议结果、虚拟数据校准、外部测试与最佳训练方案">
<style>
:root{
--bg:#f7f6f2; --panel:#ffffff; --ink:#1d1f23; --muted:#5d636e; --line:#e3e1da;
--accent:#2f6f5e; --accent-soft:#e2efe9; --warn:#a4561b; --warn-soft:#f8eadf;
--bad:#a33a3a; --bad-soft:#f6e2e2; --bar:#2f6f5e; --bar2:#c9a24a; --chance:#a33a3a;
}
@media (prefers-color-scheme: dark){
:root:not([data-theme="light"]){
--bg:#15171a; --panel:#1d2024; --ink:#e8e6e1; --muted:#9aa0a9; --line:#30343a;
--accent:#6fc2a6; --accent-soft:#1f3530; --warn:#e2a06a; --warn-soft:#3a2b20;
--bad:#e38787; --bad-soft:#3a2323; --bar:#6fc2a6; --bar2:#d9b862; --chance:#e38787;
}
}
:root[data-theme="dark"]{
--bg:#15171a; --panel:#1d2024; --ink:#e8e6e1; --muted:#9aa0a9; --line:#30343a;
--accent:#6fc2a6; --accent-soft:#1f3530; --warn:#e2a06a; --warn-soft:#3a2b20;
--bad:#e38787; --bad-soft:#3a2323; --bar:#6fc2a6; --bar2:#d9b862; --chance:#e38787;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",sans-serif}
.wrap{max-width:1040px;margin:0 auto;padding:32px 16px 64px}
header h1{font-size:28px;line-height:1.3;margin:0 0 6px}
header p.sub{color:var(--muted);margin:0 0 18px}
nav{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13.5px;margin:0 0 26px;padding:10px 14px;background:var(--panel);border:1px solid var(--line);border-radius:10px}
nav a{color:var(--accent);text-decoration:none}
nav a:hover{text-decoration:underline}
h2{font-size:21px;margin:38px 0 10px;padding-top:8px;border-top:1px solid var(--line)}
h3{font-size:16.5px;margin:22px 0 8px}
p{margin:8px 0}
.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin:12px 0}
.verdict{border-left:5px solid var(--accent);background:var(--accent-soft)}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin:14px 0}
.kpi{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.kpi .v{font-size:26px;font-weight:700;color:var(--accent);line-height:1.2}
.kpi .l{font-size:13px;color:var(--muted)}
.tbl{overflow-x:auto;margin:10px 0;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
table{border-collapse:collapse;width:100%;font-size:13.8px}
th,td{padding:7px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;white-space:nowrap}
td.wrap,th.wrap{white-space:normal;min-width:180px}
th{background:var(--bg);font-weight:600}
tr:last-child td{border-bottom:none}
td.n{text-align:right;font-variant-numeric:tabular-nums}
.tag{display:inline-block;font-size:12px;padding:1px 7px;border-radius:999px;margin-left:4px}
.ok{background:var(--accent-soft);color:var(--accent)}
.warn{background:var(--warn-soft);color:var(--warn)}
.bad{background:var(--bad-soft);color:var(--bad)}
.muted{color:var(--muted)}
.small{font-size:13px}
ul{margin:6px 0 6px 20px;padding:0}
li{margin:3px 0}
.bars{margin:8px 0}
.bar{display:grid;grid-template-columns:minmax(120px,240px) 1fr 56px;align-items:center;gap:10px;margin:5px 0;font-size:13.5px}
.track{position:relative;height:16px;background:var(--bg);border:1px solid var(--line);border-radius:4px}
.fill{position:absolute;left:0;top:0;bottom:0;background:var(--bar);border-radius:3px}
.fill.b2{background:var(--bar2)}
.chance{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--chance)}
.bar .val{text-align:right;font-variant-numeric:tabular-nums}
.legend{font-size:12.5px;color:var(--muted)}
.recipe{counter-reset:s}
.recipe>li{list-style:none;position:relative;padding-left:34px;margin:10px 0}
.recipe>li:before{counter-increment:s;content:counter(s);position:absolute;left:0;top:1px;width:24px;height:24px;border-radius:50%;background:var(--accent);color:var(--panel);font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center}
code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:0 4px}
footer{margin-top:40px;color:var(--muted);font-size:12.5px}
@media (max-width:600px){
header h1{font-size:23px}
.bar{grid-template-columns:110px 1fr 46px}
}
</style>
</head>
<body>
<div class="wrap">
<header>
<h1>四模态病理对齐实验报告</h1>
<p class="sub">H&E 图像 · 文本 · mIF 蛋白 · RNA,ImageBind 式对齐到 UNI2 H&E 空间|结果截至 2026-10-22(含 13 种训练方式对比)</p>
</header>
<nav>
<a href="#verdict">总体结论</a><a href="#setup">数据与协议</a><a href="#real">训练过的配对</a>
<a href="#emergent">未一起训练的配对</a><a href="#virtual">虚拟数据校准</a><a href="#external">外部测试</a>
<a href="#encoders">编码器对比</a><a href="#text">文本清理</a><a href="#regimes">训练方式对比</a><a href="#recipe">最佳训练方案</a><a href="#next">下一步</a>
</nav>
<section id="verdict">
<div class="card verdict">
<strong>总体结论:</strong>H&E↔mIF 很强,几乎能一一对上;H&E↔文本和 H&E↔RNA 中等;从未一起训练的模态之间(如 mIF↔RNA、文本↔RNA)能对上,约为瞎猜的 4–10 倍,但很弱。模型在同类组织上能迁移,在 DLPFC(脑)外部测试上失败。
</div>
<div class="kpis">
<div class="kpi"><div class="v">0.726</div><div class="l">H&E↔mIF R@1(17 通道)<br>配对准确率 0.935</div></div>
<div class="kpi"><div class="v">0.237</div><div class="l">H&E↔文本 R@1(TCGA)<br>R@10 0.73</div></div>
<div class="kpi"><div class="v">0.148</div><div class="l">H&E↔RNA R@1(HEST)<br>R@10 0.55</div></div>
<div class="kpi"><div class="v">≈0.10</div><div class="l">mIF↔RNA,从未一起训练<br>约为瞎猜的 10 倍</div></div>
</div>
<p class="small muted">指标说明:R@1 = 从 100 个候选里第一个就找对的比例(瞎猜 0.01);配对准确率 = 100 对做一对一最优匹配后的正确率(瞎猜 0.01)。均为测试集、5 折平均、两个检索方向平均。</p>
</section>
<section id="setup">
<h2>数据与评估协议</h2>
<div class="tbl"><table>
<tr><th>模态</th><th>和 H&E 配对的数据</th><th class="wrap">规模</th><th>划分(训练 / 验证 / 测试)</th></tr>
<tr><td>mIF(蛋白)</td><td>ORION 结直肠</td><td class="wrap">3,187 个 tile,17 个通道</td><td>按病人 5 折 + 官方划分</td></tr>
<tr><td>RNA</td><td>HEST-1k Visium</td><td class="wrap">9,484 个 spot,16 种器官,57 个研究</td><td>按研究/病人分组 5 折</td></tr>
<tr><td>文本</td><td>TCGA(PathGen 系列)</td><td class="wrap">6,144 张图,清理后 6,115 条真实文本</td><td>按病人 5 折</td></tr>
</table></div>
<ul>
<li><strong>只用真实配对训练。</strong>验证集只用于早停,结果全部来自测试集,病人或研究不会跨划分。</li>
<li><strong>虚拟数据只用于评估:</strong>MIPHEI 虚拟 mIF、STPath 虚拟 RNA、GPT few-shot 合成文本。</li>
<li><span class="tag warn">循环</span> 表示两侧都由同一张 H&E 生成(如 H&E↔由这张 H&E 预测的虚拟 mIF),只能作参考,不能证明模型学到了什么。</li>
</ul>
</section>
<section id="real">
<h2>一、训练过的配对(真实数据)</h2>
<div class="tbl"><table>
<tr><th>配对</th><th>数据</th><th class="n">R@1</th><th class="n">R@10</th><th class="n">配对准确率</th><th class="wrap">评价</th></tr>
<tr><td>H&E↔mIF(17 通道)</td><td>ORION 5 折</td><td class="n"><b>0.726</b> ±0.031</td><td class="n">0.989</td><td class="n"><b>0.935</b></td><td class="wrap">很强</td></tr>
<tr><td>H&E↔mIF(16 通道)</td><td>ORION 5 折</td><td class="n">0.689</td><td class="n">0.984</td><td class="n">0.901</td><td class="wrap">通道越多越好</td></tr>
<tr><td>H&E↔mIF(10 通道)</td><td>ORION 5 折</td><td class="n">0.644</td><td class="n">0.979</td><td class="n">0.863</td><td class="wrap"></td></tr>
<tr><td>H&E↔mIF(17 通道)</td><td>ORION 官方测试</td><td class="n">0.665</td><td class="n">1.000</td><td class="n">0.948</td><td class="wrap">109 个 tile</td></tr>
<tr><td>H&E↔文本</td><td>TCGA 5 折</td><td class="n"><b>0.237</b> ±0.012</td><td class="n">0.730</td><td class="n">0.248</td><td class="wrap">中等</td></tr>
<tr><td>H&E↔RNA</td><td>HEST 5 折</td><td class="n"><b>0.148</b> ±0.026</td><td class="n">0.547</td><td class="n">0.166</td><td class="wrap">中等</td></tr>
</table></div>
<div class="bars">
<div class="bar"><span>H&E↔mIF 17 通道</span><div class="track"><div class="fill" style="width:72.6%"></div><div class="chance" style="left:1%"></div></div><span class="val">0.726</span></div>
<div class="bar"><span>H&E↔mIF 16 通道</span><div class="track"><div class="fill" style="width:68.9%"></div><div class="chance" style="left:1%"></div></div><span class="val">0.689</span></div>
<div class="bar"><span>H&E↔mIF 10 通道</span><div class="track"><div class="fill" style="width:64.4%"></div><div class="chance" style="left:1%"></div></div><span class="val">0.644</span></div>
<div class="bar"><span>H&E↔文本</span><div class="track"><div class="fill" style="width:23.7%"></div><div class="chance" style="left:1%"></div></div><span class="val">0.237</span></div>
<div class="bar"><span>H&E↔RNA</span><div class="track"><div class="fill" style="width:14.8%"></div><div class="chance" style="left:1%"></div></div><span class="val">0.148</span></div>
<div class="legend">R@1,满刻度 1.0;红线 = 瞎猜(0.01)</div>
</div>
<ul>
<li><strong>H&E↔RNA 在同一器官内很弱:</strong>只在同一器官内找时,脑 0.021、乳腺 0.040、肠 0.070。0.148 中相当一部分靠的是先认出器官。</li>
<li><strong>H&E↔文本受限于文本本身:</strong>很多文本描述的是一类组织,而不是这张图独有的特征。按文本类型:caption 0.28、总结 0.29、开放问答 0.22、选择题 0.13。</li>
</ul>
</section>
<section id="emergent">
<h2>二、从未一起训练的配对(各自只和 H&E 对齐)</h2>
<p>没有数据集同时测了这些模态的两边,所以一侧必须用虚拟数据。</p>
<div class="tbl"><table>
<tr><th>配对</th><th>数据</th><th class="n">R@1</th><th class="n">R@10</th><th class="n">配对准确率</th><th class="n">约为瞎猜</th></tr>
<tr><td>mIF(16 通道)↔RNA(STPath 虚拟)</td><td>ORION 5 折</td><td class="n">0.108</td><td class="n">0.512</td><td class="n">0.149</td><td class="n">11×</td></tr>
<tr><td>mIF(10 通道)↔RNA(STPath 虚拟)</td><td>ORION 5 折</td><td class="n">0.098</td><td class="n">0.495</td><td class="n">0.131</td><td class="n">10×</td></tr>
<tr><td>mIF↔文本(GPT 合成)</td><td>ORION 5 折</td><td class="n">0.074</td><td class="n">0.437</td><td class="n">0.072</td><td class="n">7×</td></tr>
<tr><td>文本↔RNA(虚拟)</td><td>TCGA 5 折</td><td class="n">0.056</td><td class="n">0.319</td><td class="n">0.057</td><td class="n">5.6×</td></tr>
<tr><td>文本↔mIF(MIPHEI 虚拟)</td><td>TCGA 5 折</td><td class="n">0.036</td><td class="n">0.237</td><td class="n">0.038</td><td class="n">3.6×</td></tr>
</table></div>
<ul>
<li>四个模态确实对齐到了同一个空间,但精度只有直接训练过的配对的 1/3 到 1/6。</li>
<li>链条上最弱的一环决定上限:H&E↔文本和 H&E↔RNA 本身只有 0.15–0.24。</li>
</ul>
</section>
<section id="virtual">
<h2>三、虚拟数据能否代替真实数据做验证</h2>
<p>校准方法:在同一批测试样本上,把真实数据换成虚拟数据,看配对效果保留多少。只算虚拟模型没训练过的样本。</p>
<div class="tbl"><table>
<tr><th>虚拟数据</th><th>校准对比</th><th class="n">真实</th><th class="n">虚拟</th><th>结论</th></tr>
<tr><td>MIPHEI 虚拟 mIF</td><td>H&E↔mIF 配对准确率(ORION 官方测试,MIPHEI 未见过)</td><td class="n">0.921</td><td class="n">0.553</td><td><span class="tag ok">可用,约 0.6×</span></td></tr>
<tr><td>STPath 虚拟 RNA</td><td>H&E↔RNA R@1(STPath 未见过的 spot)</td><td class="n">0.086</td><td class="n">0.080</td><td><span class="tag ok">可用</span></td></tr>
<tr><td>GPT 合成文本</td><td>H&E↔文本 R@1(同一批 TCGA 图)</td><td class="n">0.219</td><td class="n">0.162</td><td><span class="tag ok">可用,约 0.75×,偏保守</span></td></tr>
<tr><td>GigaTIME 虚拟 mIF</td><td>H&E↔mIF R@1(ORION 5 折)</td><td class="n">0.644</td><td class="n">0.038</td><td><span class="tag bad">不可用,已弃用</span></td></tr>
</table></div>
<ul class="small">
<li>MIPHEI 用 ORION 官方训练集训练过,因此只有官方测试切片(CRC02、CRC11)和 TCGA 对它是干净的。</li>
<li>通道均值和真实 mIF 的相关性:MIPHEI 0.70,GigaTIME 0.25。</li>
<li>直接用虚拟配对训练(文本↔虚拟 RNA / 虚拟蛋白)没有超过经 H&E 间接对齐:蛋白 0.596 vs 0.678(AUROC),RNA 打平。所以虚拟数据只用于评估。</li>
</ul>
</section>
<section id="external">
<h2>四、外部测试:DLPFC(脑)</h2>
<p>spatialLIBD Visium,482 个 spot / 12 张切片 / 3 名供体。这 12 张切片原本也在 HEST 里,测试前已把整个 spatialLIBD 研究从训练中剔除。</p>
<div class="tbl"><table>
<tr><th>配对</th><th>类型</th><th class="n">R@1(100 候选,瞎猜 0.01)</th><th class="n">同切片内(35 候选,瞎猜 0.029)</th></tr>
<tr><td>H&E↔RNA</td><td>真实,训练过的配对</td><td class="n">0.010</td><td class="n">0.031</td></tr>
<tr><td>RNA↔MIPHEI 虚拟 mIF</td><td>真实×虚拟</td><td class="n">0.008</td><td class="n">0.027</td></tr>
<tr><td>RNA↔合成文本</td><td>真实×虚拟</td><td class="n">0.010</td><td class="n">0.032</td></tr>
<tr><td>H&E↔合成文本 <span class="tag warn">循环</span></td><td>参考</td><td class="n">0.022</td><td class="n">0.054</td></tr>
<tr><td>H&E↔MIPHEI 虚拟 mIF <span class="tag warn">循环</span></td><td>参考</td><td class="n">0.017</td><td class="n">0.040</td></tr>
</table></div>
<ul>
<li><strong>全部在瞎猜水平。</strong>只在同一张切片内比较也一样,所以不是样本差异造成的。</li>
<li><strong>原因:</strong>脑皮层不同 spot 在 H&E 上本来就很难区分(HEST 内部脑也只有 0.021),这批图视野只有 112 µm 且模糊。GPT 也把 59% 的 spot 写成了淋巴组织,只有 6% 认出是脑组织。</li>
</ul>
</section>
<section id="encoders">
<h2>五、每个模态最好的编码器</h2>
<p>按最终协议的划分逐折比较;文本那项在干净文本上重跑。“领先”= 最好减对比项;p 为 5 折配对 t 检验(5 折全胜时 p 最低约 0.06)。</p>
<div class="tbl"><table>
<tr><th>模态</th><th>最好</th><th class="wrap">对比(领先 / 赢几折 / p)</th><th class="wrap">结论</th></tr>
<tr><td>文本</td><td><b>BiomedCLIP</b> 0.237</td><td class="wrap">CONCH 文本 +0.021(5/5,p=0.03);PLIP +0.026(5/5,p=0.007);ImageBind +0.036(5/5,p=0.002)</td><td class="wrap"><span class="tag ok">明确最好</span></td></tr>
<tr><td>H&E(对齐文本)</td><td>Phikon-v2 0.241 ≈ CONCH 0.241 ≈ UNI2 0.237</td><td class="wrap">GigaPath 0.223(UNI2 +0.014,4/5,p=0.05)</td><td class="wrap">三者打平</td></tr>
<tr><td>H&E(对齐 mIF)</td><td><b>UNI2</b> 0.727</td><td class="wrap">GigaPath +0.009(不显著);CONCH +0.155(5/5,p<0.001)</td><td class="wrap">UNI2 ≈ GigaPath ≫ CONCH</td></tr>
<tr><td>H&E(对齐 RNA)</td><td><b>UNI2</b> 0.148</td><td class="wrap">GigaPath +0.035(4/5,p=0.05)</td><td class="wrap">UNI2</td></tr>
<tr><td>mIF</td><td><b>ConvNeXt-T</b>(从头训练)0.758</td><td class="wrap">VirTues(冻结)+0.030(5/5,p=0.07)</td><td class="wrap">差距小;VirTues 跨模态更好</td></tr>
<tr><td>RNA</td><td>Geneformer-V2 0.159</td><td class="wrap">scGPT +0.005(3/5,不显著);MLP +0.011(4/5,p=0.05)</td><td class="wrap">打平</td></tr>
</table></div>
<h3>H&E × 文本编码器(干净文本,R@1)</h3>
<div class="tbl"><table>
<tr><th>H&E \ 文本</th><th class="n">BiomedCLIP</th><th class="n">CONCH 文本</th><th class="n">PLIP</th><th class="n">ImageBind</th></tr>
<tr><td>Phikon-v2</td><td class="n"><b>0.241</b></td><td class="n">0.223</td><td class="n">0.211</td><td class="n">0.207</td></tr>
<tr><td>CONCH</td><td class="n"><b>0.241</b></td><td class="n">0.221</td><td class="n">0.213</td><td class="n">0.209</td></tr>
<tr><td>UNI2</td><td class="n"><b>0.237</b></td><td class="n">0.216</td><td class="n">0.211</td><td class="n">0.201</td></tr>
<tr><td>GigaPath</td><td class="n">0.223</td><td class="n">0.201</td><td class="n">0.191</td><td class="n">0.189</td></tr>
</table></div>
<p class="small muted">UNI2 是唯一在任何配对上都没被显著超过的 H&E 编码器;Phikon-v2 只测了文本(HEST 只提供 UNI2 和 GigaPath 的特征)。CONCH 在文本上好,但 H&E↔mIF 的配对准确率只有 UNI2 的一半。</p>
</section>
<section id="text">
<h2>六、文本清理</h2>
<ul>
<li><strong>去掉 365 / 6,480 条垃圾文本:</strong>353 条只有选择题答案字母(如 “A A B B”),4 条 “error error”,8 条少于 5 个词的残缺答案。</li>
<li><strong>256 张图因此没有任何真实文本:</strong>它们保留在原划分里,用 3-shot GPT 生成描述,只用于评估。H&E↔合成文本 0.150,和有真实文本的校准集(0.162)一致。</li>
<li><strong>用干净文本重训后:</strong>H&E↔文本 0.229 → 0.237。但旧模型在干净测试集上也有 0.236,所以提升几乎全部来自测试集变干净;重训本身 +0.001(5 折 3 胜 2 负),属于噪声。</li>
</ul>
</section>
<section id="regimes">
<h2>七、训练方式对比:分开训练 vs 联合训练</h2>
<p>13 种方式,统一用同一套划分、同一份干净真实数据、同一种对齐头和优化器;虚拟数据只用于评估。数值为 R@1(5 折平均)。“相对 S1”= 各配对 R@1 除以 S1 后取平均。</p>
<div class="tbl"><table>
<tr><th>方式</th><th class="n">H&E↔mIF</th><th class="n">H&E↔RNA</th><th class="n">H&E↔文本</th><th class="n">mIF↔RNA(虚)</th><th class="n">mIF↔文本(合)</th><th class="n">文本↔RNA(虚)</th><th class="n">文本↔mIF(虚)</th><th class="n">训练过的<br>相对 S1</th><th class="n">未一起训练<br>相对 S1</th></tr>
<tr><td>S1 分开·冻结锚点(原方案)</td><td class="n">0.680</td><td class="n">0.148</td><td class="n">0.234</td><td class="n">0.108</td><td class="n">0.076</td><td class="n">0.060</td><td class="n">0.038</td><td class="n">1.00</td><td class="n">1.00</td></tr>
<tr><td>S2 分开·双塔(CLIP 式)</td><td class="n"><b>0.794</b></td><td class="n">0.130</td><td class="n">0.195</td><td class="n">0.019</td><td class="n">0.022</td><td class="n">0.014</td><td class="n">0.013</td><td class="n">0.96</td><td class="n"><span class="tag bad">0.26</span></td></tr>
<tr><td>S3 分开·冻结·全线性头</td><td class="n">0.642</td><td class="n">0.156</td><td class="n">0.237</td><td class="n"><b>0.123</b></td><td class="n">0.070</td><td class="n">0.069</td><td class="n">0.038</td><td class="n">1.00</td><td class="n">1.05</td></tr>
<tr><td>S4 分开·冻结·mIF 用 MLP,RNA/文本用线性</td><td class="n">0.680</td><td class="n">0.152</td><td class="n">0.234</td><td class="n">0.117</td><td class="n">0.074</td><td class="n"><b>0.071</b></td><td class="n">0.037</td><td class="n">1.01</td><td class="n">1.05</td></tr>
<tr><td>J1 联合·冻结锚点</td><td class="n">0.706</td><td class="n">0.148</td><td class="n"><b>0.237</b></td><td class="n">0.094</td><td class="n">0.065</td><td class="n">0.056</td><td class="n">0.031</td><td class="n">1.02</td><td class="n">0.87</td></tr>
<tr><td>J2 联合·共享可训练 H&E 头</td><td class="n">0.761</td><td class="n">0.147</td><td class="n">0.204</td><td class="n">0.061</td><td class="n">0.060</td><td class="n">0.044</td><td class="n">0.031</td><td class="n">0.99</td><td class="n">0.72</td></tr>
<tr><td>J3 J2 + 按数据量采样</td><td class="n">0.740</td><td class="n">0.138</td><td class="n">0.187</td><td class="n">0.063</td><td class="n">0.060</td><td class="n">0.039</td><td class="n">0.031</td><td class="n">0.94</td><td class="n">0.70</td></tr>
<tr><td>J4 J2 + 锚点蒸馏 λ=1</td><td class="n">0.765</td><td class="n">0.144</td><td class="n">0.202</td><td class="n">0.062</td><td class="n">0.058</td><td class="n">0.043</td><td class="n">0.030</td><td class="n">0.99</td><td class="n">0.71</td></tr>
<tr><td>J4b J2 + 锚点蒸馏 λ=10</td><td class="n">0.768</td><td class="n">0.149</td><td class="n">0.209</td><td class="n">0.067</td><td class="n">0.058</td><td class="n">0.047</td><td class="n">0.030</td><td class="n">1.01</td><td class="n">0.74</td></tr>
<tr><td>J5 联合·UNI2 + 共享残差适配器</td><td class="n">0.762</td><td class="n">0.142</td><td class="n">0.201</td><td class="n">0.058</td><td class="n">0.059</td><td class="n">0.044</td><td class="n">0.029</td><td class="n">0.98</td><td class="n">0.71</td></tr>
<tr><td>J6 J2 + 不确定性自动加权</td><td class="n">0.765</td><td class="n">0.136</td><td class="n">0.195</td><td class="n">0.057</td><td class="n">0.055</td><td class="n">0.041</td><td class="n">0.027</td><td class="n">0.96</td><td class="n">0.66</td></tr>
<tr><td>J7 两阶段:S1 → 联合残差微调</td><td class="n">0.776</td><td class="n">0.150</td><td class="n">0.234</td><td class="n">0.100</td><td class="n">0.076</td><td class="n">0.055</td><td class="n">0.035</td><td class="n">1.05</td><td class="n">0.94</td></tr>
<tr style="background:var(--accent-soft)"><td><b>J8 两阶段:S4 → 联合残差微调</b></td><td class="n">0.762</td><td class="n"><b>0.164</b></td><td class="n">0.232</td><td class="n">0.112</td><td class="n">0.073</td><td class="n">0.068</td><td class="n">0.035</td><td class="n"><b>1.07</b></td><td class="n"><b>1.01</b></td></tr>
</table></div>
<div class="bars">
<div class="bar"><span>S1 原方案</span><div class="track"><div class="fill" style="width:50%"></div></div><span class="val">1.00</span></div>
<div class="bar"><span>S2 双塔</span><div class="track"><div class="fill" style="width:48%"></div></div><span class="val">0.96</span></div>
<div class="bar"><span>J2 共享 H&E 头</span><div class="track"><div class="fill" style="width:49.7%"></div></div><span class="val">0.99</span></div>
<div class="bar"><span>J7 两阶段</span><div class="track"><div class="fill" style="width:52.5%"></div></div><span class="val">1.05</span></div>
<div class="bar"><span><b>J8 两阶段 + 混合头</b></span><div class="track"><div class="fill" style="width:53.6%"></div></div><span class="val">1.07</span></div>
<div class="legend">训练过的配对,相对 S1(满刻度 2.0)</div>
<div class="bar"><span>S1 原方案</span><div class="track"><div class="fill b2" style="width:50%"></div></div><span class="val">1.00</span></div>
<div class="bar"><span>S2 双塔</span><div class="track"><div class="fill b2" style="width:13.2%"></div></div><span class="val">0.26</span></div>
<div class="bar"><span>J2 共享 H&E 头</span><div class="track"><div class="fill b2" style="width:36.1%"></div></div><span class="val">0.72</span></div>
<div class="bar"><span>J7 两阶段</span><div class="track"><div class="fill b2" style="width:47%"></div></div><span class="val">0.94</span></div>
<div class="bar"><span><b>J8 两阶段 + 混合头</b></span><div class="track"><div class="fill b2" style="width:50.5%"></div></div><span class="val">1.01</span></div>
<div class="legend">从未一起训练的配对,相对 S1(满刻度 2.0)</div>
</div>
<ul>
<li><strong>从头训练 H&E 侧(S2、J2–J6):</strong>H&E↔mIF 涨 0.08–0.11,但 H&E↔文本降 0.03–0.05,从未一起训练的配对损失 26–74%。共享的 H&E 头被最容易的 mIF 任务“拉走”。按数据量采样和不确定性加权更差;蒸馏到 UNI2 结构只略有帮助。</li>
<li><strong>联合但锚点冻结(J1):</strong>只是训练步数变了,mIF +0.026,但未一起训练的配对 −13%。</li>
<li><strong>线性头:</strong>RNA 和文本用线性头,跨模态迁移比 MLP 更好(+5%);mIF 仍需要 MLP。</li>
<li><strong>J8 对比 S1(5 折配对):</strong>H&E↔mIF +0.083(5/5,p=0.01),H&E↔RNA +0.015(5/5,p=0.03),文本↔RNA(虚) +0.008(5/5,p=0.02);其余配对差 ≤0.004,不显著。配对准确率 mIF 0.897→0.929,RNA 0.172→0.198。</li>
</ul>
</section>
<section id="recipe">
<h2>八、最佳训练方案</h2>
<ol class="recipe">
<li><strong>两阶段训练(J8,13 种方式中最好):</strong>
<ul>
<li>第一阶段:冻结 UNI2 当锚点,每个模态各自分开训练对齐头(ImageBind 做法)。</li>
<li>第二阶段:所有头一起联合微调,同时给 UNI2 加一个三个数据集共享、初始化为零的残差适配器;lr 1e-4,1000 步,三个损失相加,加相似度蒸馏(λ=1),按三项验证 R@1 的几何平均早停。</li>
<li>不要从头训练 H&E 侧(双塔或共享 H&E 头):H&E↔mIF 会更高,但文本和跨模态对齐明显变差。</li>
</ul>
</li>
<li><strong>编码器:</strong>
<ul>
<li>H&E:<b>UNI2</b></li>
<li>文本:<b>BiomedCLIP</b>(冻结)+ <b>线性</b>对齐头</li>
<li>mIF:<b>VirTues</b>(冻结)+ <b>MLP</b> 对齐头,尽量用全部通道;只关心 H&E↔mIF 时 ConvNeXt-T 从头训练高 0.03</li>
<li>RNA:2000 个高变基因,log1p CP10k,<b>线性</b>对齐头(Geneformer / scGPT 打平);外部数据按数据集各自 z-score</li>
</ul>
</li>
<li><strong>对齐头与超参数:</strong>MLP 为 3 层(隐藏 512,LayerNorm),对称 InfoNCE(同一张图有多条文本时都当正例),可学习温度(初始 0.07),AdamW lr 3e-4、weight decay 0.05、OneCycle,batch 256,60–100 epoch,每张 H&E 8 个增强视图训练时随机取一个,按验证集 R@1 早停。</li>
<li><strong>数据:</strong>只用真实配对;按病人或研究划分(按 tile 随机划分会偏乐观);训练前清掉垃圾文本。</li>
<li><strong>不要用虚拟配对训练。</strong>直接训练没有超过经 H&E 间接对齐,蛋白还更差;虚拟数据只用于评估。</li>
</ol>
</section>
<section id="next">
<h2>九、下一步最值得做的</h2>
<ul>
<li><strong>找同一组织同时测了两个模态的真实数据</strong>(如 Visium + CODEX 同切片),这样 RNA↔mIF 能直接训练和直接测,不再依赖虚拟数据。</li>
<li><strong>提高 RNA 在同一器官内的区分能力:</strong>同器官困难负样本,或更大的 spot 视野。</li>
<li><strong>文本:</strong>以 caption 和总结类长文本为主训练,弱化选择题。</li>
</ul>
</section>
<footer>
<p>许可说明:MIPHEI-ViT 权重仅限非商业学术使用;GigaTIME 权重仅限研究使用(已弃用)。合成文本由 Azure OpenAI 生成,仅用于评估。</p>
<p>代码:<code>imagebind_exp/</code> 中的 <code>33_final_eval.py</code>(最终协议)、<code>38_</code>/<code>39_</code>(外部测试与检查)、<code>40_clean_text.py</code>、<code>41_text_enc_clean.py</code>、<code>42_train_regimes.py</code>(训练方式对比);完整数字见 <code>RESULTS.md</code> 和 <code>results/*.csv</code>。</p>
</footer>
</div>
</body>
</html>
|