实验汇总:分段线性拟合估计 structural fraction

测量框架:训练学生网络拟合含结构标签与随机标签的数据集,记录最终训练损失 L_train,计算 learned-bits 曲线 C(N) = (log V − L_train)·N / log 2, 对 C~N 做两段线性最小二乘拟合(联合搜索拐点使总残差最小),以第二段斜率 s2 / log2V 作为 structural fraction f_s 的估计量。

所有实验共用的设置

输入维度 D / 类别数 V10 / 10(log2V = 3.3219)
验证集大小 N_val200
优化器full-batch Adam,lr = 1e-3,cosine 衰减至 0,周期 30,000 epochs
早停(仅前 7 个实验)每 500 epochs 检查,相对改善 < 3e-4 连续 4 次则停止;30k 为硬上限
数据采样非嵌套:每个 N 独立采样;每个 seed 一个 teacher
图中展示 seed1000(C~N 曲线图与 loss 曲线图均为单 seed 原始点,不做平均)
拟合报告量s1 = 第一段斜率(bits/样本);N* = 拟合拐点;s2 = 第二段斜率;R² = 两段拟合优度;均为逐 seed 拟合后的中位数(3 seeds 时附 min–max)
目录(按运行时间排序,与 mirror/experiments/ 子文件夹一一对应)
  1. 20260817_1138 — 标签侧协议基线,N∈[80, 20000]
  2. 20260817_1544 — 标签侧协议,密集网格 N∈[50, 2000],d=2
  3. 20260817_1715 — 标签侧协议,d=10,无 LayerNorm
  4. 20260818_0808 — d=10 无 LN 的 loss 曲线诊断(重训 30 runs)
  5. 20260818_0859 — 标签侧协议,d=10,学生加 LayerNorm
  6. 20260818_1517 — GMM 输入侧协议(无 teacher)
  7. 20260818_2113 — 双簇输入 teacher-student,双侧 LN,早停
  8. 20260819_1738 — 双簇 TS,无早停,单 seed(CPU)
  9. 20260820_0824 — Oracle-gate + 线性单纯形 teacher

1. 20260817_1138_pwfit_fs_estimation

协议标签侧:输入 x ~ N(0, I₁₀) 无结构;结构在标签中——比例 f_s 的样本标签为 teacher(x) 的 argmax,其余为均匀随机标签
TeacherMLP w=10, d=2,无 bias,带 BatchNorm head(标签均衡用)
StudentMLP w=10, d=2,无 bias,无 norm
N 网格[80, 20000],14 个对数点
f_s / seeds{0, 0.1, 0.3, 0.5, 0.7, 0.9} × {1000, 1007, 1014} = 252 runs
训练 / 硬件早停开;CPU 48 workers;总时长 1214 s
C vs N
C_vs_N_by_fs.png — x 轴:数据集大小 N(线性);y 轴:learned bits C(bits)。 每个 f_s 一条线:实线+marker 为 seed=1000 的实测点,同色虚线为分段线性拟合的第二段(拐点 x* 至网格右端)。
C vs N loglog
C_vs_N_by_fs_loglog.png — 与上图相同的数据,x、y 轴均为对数坐标。

拟合结果(3 seeds 中位数,min–max)

f_ss1N*s2/log2Vfinal train lossfinal val loss
04.384 (4.224–4.393)142−0.0010.6432.0142.970
0.14.488 (3.926–4.762)1420.0030.7372.0102.669
0.30.159 (0.132–3.628)4273 (142–11721)0.059 (0.053–0.069)0.9931.9502.154
0.50.466 (0.437–0.468)10441 (3866–11721)0.159 (0.153–0.160)0.9991.7701.749
0.70.944 (0.904–4.053)3633 (142–11721)0.301 (0.284–0.307)0.9991.4611.502
0.91.748 (1.674–1.763)11721 (5611–11721)0.522 (0.507–0.558)0.99980.9481.267

2. 20260817_1544_pwfit_fs_estimation_dense50_2000

协议同实验 1(标签侧,d_t=d_s=2,无 norm),N 网格改为密集小区间
N 网格[50, 2000],28 个对数点
f_s / seeds{0, 0.1, 0.3, 0.5, 0.7, 0.9} × 3 seeds = 504 runs
训练 / 硬件早停开;CPU 48 workers;总时长 2011 s
C vs N seed1000
C_vs_N_by_fs.png — 坐标轴与线型同实验 1(seed=1000)。
C vs N seed1007
C_vs_N_by_fs_seed1007.png — 同一组测量在 seed=1007 上的 C~N 曲线与第二段拟合。
C vs N seed1014
C_vs_N_by_fs_seed1014.png — seed=1014。

拟合结果(3 seeds 中位数,min–max)

f_ss1N*s2/log2Vfinal train lossfinal val loss
03.315 (3.220–3.363)184−0.0310.9110.94723.05
0.13.320 (3.303–3.354)178−0.0260.9011.01715.00
0.33.345 (3.273–3.348)1840.011 (0.003–0.012)0.9070.83724.74
0.53.267 (3.242–3.356)1980.092 (0.085–0.093)0.9800.74114.96
0.73.285 (3.277–3.363)2310.221 (0.219–0.241)0.9930.34519.88
0.93.309 (3.306–3.310)2970.452 (0.437–0.480)0.9970.02618.66

3. 20260817_1715_pwfit_fs_estimation_d10_dense50_2000

协议同实验 2(标签侧,密集网格),teacher 与 student 深度改为 d=10,student 仍无 norm
f_s / seeds6 档 × 3 seeds = 504 runs
训练 / 硬件早停开;H100 GPU 12 workers;总时长 5499 s
备注全部 run 的实际停止 epoch 在 4k–15k 之间(早停触发),没有任何 run 走完 30k cosine;s1 中位数 0.58–3.19,R² 低至 0.63
C vs N d10
C_vs_N_by_fs.png — 坐标轴与线型同实验 1(seed=1000)。注意 f_s=0.5 在 N≈295 处 C 降至 −165 bits。

拟合结果(3 seeds 中位数,min–max)

f_ss1N*s2/log2Vfinal train lossfinal val loss
01.722 (1.094–2.841)2830.060 (0.002–0.066)0.6311.19493.60
0.10.582 (0.571–1.411)8840.028 (−0.236–0.088)0.7131.30733.38
0.30.996 (0.833–1.795)6660.120 (0.111–0.169)0.8441.28030.89
0.51.293 (1.042–1.447)8840.129 (−0.037–0.138)0.9481.07440.09
0.72.991 (2.261–3.259)2440.318 (0.281–0.343)0.9780.67946.27
0.93.186 (2.362–3.599)2110.536 (0.524–0.541)0.9860.53066.71

4. 20260818_0808_loss_curves_d10

目的诊断实验 3 的 C~N 曲线异常:在相同 d_t=d_s=10、无 LN 设置下重训并记录完整 loss 历史
规模f_s 6 档 × N ∈ {196, 295, 585, 1010, 2000} × seed=1000 = 30 runs(GPU)
训练早停开(check=500 / patience=4 / tol=3e-4),30k cosine 上限
loss curves d10
loss_curves_d10.png — 6 个子图,每个 f_s 一个。x 轴:epoch(对数);y 轴:loss(nats,各子图共享)。 实线 = train loss,点线 = val loss(同分布新样本,teacher 标签);颜色区分 N;灰色虚线 = chance ln(10) ≈ 2.303。 曲线右端位置不同是因为各 run 早停 epoch 不同。

本实验只有图,无数值汇总表(results 未落盘到 mirror)。

5. 20260818_0859_pwfit_fs_estimation_d10ln_dense50_2000

协议同实验 3(标签侧 d=10),student 每个隐藏层改为 Linear → LayerNorm → ReLU(带仿射参数)
f_s / seeds6 档 × 3 seeds = 504 runs
训练 / 硬件早停开;H100 GPU 12 workers;总时长 8649 s
C vs N d10 LN
C_vs_N_by_fs.png — 坐标轴与线型同实验 1(seed=1000)。

拟合结果(3 seeds 中位数,min–max)

f_ss1N*s2/log2Vfinal train lossfinal val loss
03.107 (2.864–3.190)567−0.0100.9660.27111.67
0.13.089 (2.849–3.183)5140.067 (0.034–0.087)0.9610.17310.21
0.32.773 (2.683–3.051)5870.089 (0.020–0.113)0.9750.2418.68
0.53.054 (2.770–3.110)5670.202 (0.189–0.257)0.9770.1508.44
0.72.864 (2.639–3.246)6400.357 (0.261–0.404)0.9850.1097.54
0.93.030 (2.646–3.045)8510.480 (0.272–0.480)0.9940.0876.70

6. 20260818_1517_gmm_fs_estimation

协议GMM 输入侧(无 teacher):结构样本取自 V=10 类条件高斯混合——均值向量两两正交、成对距离 sep=4、簇内 σ=1,标签 = 簇编号;随机样本 x ~ N(0, I₁₀) + 均匀标签。验证集为 GMM 新样本 + 真实簇标签
StudentMLP w=10, d=2,无 bias,无 norm
N 网格 / f_s / seeds[50, 2000] × 28 点;6 档 × 3 seeds = 504 runs
训练 / 硬件早停开;H100 GPU 12 workers;总时长 4264 s
C vs N GMM
C_vs_N_by_fs.png — 坐标轴与线型同实验 1(seed=1000)。

拟合结果(3 seeds 中位数,min–max)

f_ss1N*s2/log2Vfinal train lossfinal val loss
03.212 (3.160–3.295)191−0.0350.9031.00734.99
0.13.311 (3.310–3.357)184−0.0130.9191.01222.43
0.33.375 (3.359–3.380)1910.093 (0.090–0.101)0.9800.70622.85
0.53.330 (3.308–3.350)2170.263 (0.260–0.268)0.9920.32216.47
0.73.329 (3.324–3.334)2770.446 (0.437–0.452)0.9970.02912.82
0.93.318 (3.317–3.325)4750.666 (0.657–0.674)0.9999.6e-88.30

7. 20260818_2113_twocluster_ts

协议双簇输入 teacher-student:输入 x = μ_c + z,z ~ N(0, I₁₀),两个簇中心 μ_A = +2u、μ_B = −2u(u 为随机单位向量,簇间距 sep=4)。A 簇(比例 f_s)标签 = teacher(x) argmax;B 簇直接分配均匀随机标签。验证集为 A 簇新样本 + teacher 标签
TeacherMLP w=10, d=10,每层 Linear → LayerNorm → ReLU,保留 BatchNorm head
StudentMLP w=10, d=10,Linear → LayerNorm → ReLU
N 网格 / f_s / seeds[50, 2000] × 28 点;6 档 × 3 seeds = 504 runs
训练 / 硬件早停开(实际停止 epoch 6.5k–30k 不等);H100 GPU 12 workers;总时长 3114 s
C vs N twocluster
C_vs_N_by_fs.png — 坐标轴与线型同实验 1(seed=1000)。小 N 处若干点 C < 0(对应 run 的最终 train loss 高于 chance)。
s2 vs fs
s2_over_log2V_vs_fs.png — x 轴:真实 f_s;y 轴:估计量 s2/log2V(每个 seed 一个点,marker/颜色对应 f_s)。 灰色实线 = 理论参考 y = x(即 s2 = f_s·log2V)。
loss curves twocluster
loss_curves.png — 布局同实验 4:6 个子图(每 f_s 一个),x = epoch(对数),y = loss(nats); 实线 = train loss,点线 = val loss(A 簇新样本 + teacher 标签);颜色区分 N ∈ {196, 295, 585, 1010, 2000};灰虚线 = chance。曲线长度差异来自早停。

拟合结果(3 seeds 中位数,min–max)

f_ss1N*s2/log2Vs2/(f_s·log2V)final train lossfinal val loss
02.560 (2.403–3.078)5740.0120.9650.17511.91
0.13.073 (2.955–3.146)4550.0430.4350.9570.2399.83
0.32.963 (2.767–3.082)4880.1180.3930.9680.2147.24
0.53.008 (2.773–3.014)5540.2020.4050.9750.2396.79
0.73.034 (2.813–3.147)5670.3790.5410.9890.1547.02
0.93.050 (3.040–3.100)7190.5310.5890.9850.1007.37

8. 20260819_1738_twocluster_ts_noearly_seed1000

协议同实验 7(双簇 TS,双侧 LN,sep=4),两处改动:① 关闭早停,所有 run 跑满 30,000 epochs cosine;② 单 seed=1000,N 网格减至 21 点(N≤250 保留 5 点:50/75/112/167/225)
规模 / 硬件6 档 × 21 点 × 1 seed = 126 runs;CPU(8 核配额)12 workers;总时长 3375 s。训练循环由 DataLoader 改为直接全批量步进(等梯度,CPU 上约 2.7× 加速)
C vs N noearly
C_vs_N_by_fs.png — 坐标轴与线型同实验 1(seed=1000)。所有 run 训练预算一致(30k 完整 cosine)。
s2 vs fs noearly
s2_over_log2V_vs_fs.png — 坐标轴同实验 7;单 seed,每 f_s 一个点。
loss curves noearly
loss_curves.png — 布局同实验 7,N ∈ {225, 295, 585, 1010, 2000}。所有曲线等长(无早停,均跑满 30k)。

拟合结果(单 seed=1000)

f_ss1N*s2/log2Vs2/(f_s·log2V)final train lossfinal val loss
03.1734380.0620.9880.52115.73
0.13.1524880.0550.5500.9790.26616.12
0.33.2874950.1350.4490.9940.2039.47
0.53.1465650.2030.4050.9880.21211.59
0.73.2265230.3780.5400.9980.11011.12
0.93.3184880.6480.7200.9940.03511.10

9. 20260820_0824_oracle_gate_ts_noearly_seed1000

协议Oracle-gate teacher-student:输入 x = (g, z),z ~ N(0, I₉),第一维为显式门控坐标——结构样本 g=+1(比例 f_s),随机样本 g=−1(均匀随机标签)。结构标签由固定的线性单纯形 teacher 产生:10 个单位向量 w_v ∈ R⁹ 两两内积 −1/9(正则单纯形,所有 seed 共用),y = argmax_v w_v·z。验证集为 g=+1 新样本 + teacher 标签
StudentMLP w=16, d=2,Linear → LayerNorm → ReLU;无 weight decay
N 网格 / f_s / seeds21 点(同实验 8);f_s ∈ {0, 0.1, 0.3, 0.5, 0.7, 0.9, 1.0}(含端点 1.0);seed=1000 = 147 runs
训练 / 硬件无早停,跑满 30k cosine;H100 GPU 12 workers;总时长 1886 s
C vs N oracle
C_vs_N_by_fs.png — 坐标轴与线型同实验 1(seed=1000,含 f_s=1 共 7 条曲线)。
s2 vs fs oracle
s2_over_log2V_vs_fs.png — x 轴:真实 f_s;y 轴:估计的结构比例。 实心点 = s2/log2V;空心点 = 端点校准估计 (s2(f_s) − s2(0)) / (s2(1) − s2(0));灰实线 = 理论 y = x。单 seed。
loss curves oracle
loss_curves.png — 7 个子图(含 f_s=1),坐标轴与线型同实验 8;val loss 为 g=+1 新样本上的 teacher 标签损失。
train loss vs N
train_loss_vs_N.png — x 轴:N(线性);y 轴:最终 train loss(nats,对数坐标)。每 f_s 一条线(seed=1000),灰虚线 = chance ln(10)。
train loss vs N logx
train_loss_vs_N_logx.png — 同上数据,x 轴改为对数坐标。

拟合结果(单 seed=1000)

f_ss1N*s2/log2Vs2/(f_s·log2V)端点校准val acc @N=2000final train lossfinal val loss
03.301381−0.0420.0000.9820.1200.54713.07
0.13.289395−0.016~00.0250.9890.3550.46514.63
0.33.2984310.2140.7150.2460.9930.7950.11912.41
0.53.3205370.4260.8510.4490.9990.8559.6e-410.32
0.73.3218210.6110.8730.6260.9990.8706.7e-77.43
0.93.33115220.8920.9910.8960.99990.9351.0e-73.74
1.03.3227711.00001.0001.0001.00000.9301.4e-81.79

附:val loss 最低点 vs 终值(实验 9,seed=1000,选自 checkpoint 的完整 loss 历史)

f_sNmin val lossfinal val lossfinal / min最低点 epochfinal val acc
0.02252.47043.85217.8160.085
0.020002.3182.9331.3780.120
0.12252.42630.15712.4390.195
0.120001.7482.2221.34520.355
0.32252.08221.44410.31890.315
0.320000.3862.4656.410840.795
0.52251.50510.3186.93800.470
0.520000.2622.65410.16420.855
0.72251.6258.1865.03800.510
0.720000.1852.50913.57640.870
0.92251.0955.4665.03190.645
0.920000.1211.75514.512910.935
1.02250.8253.8634.74520.725
1.020000.0820.81710.012910.930

生成时间:2026-08-22。本页仅公开 figures;原始数据(results/summary.json 与 checkpoint 内的 loss 历史)保存在本地 mirror 与远端 cephfs 同名 experiments 目录,未随本站发布。