您好,请问一下: 1. 代码仓库的 https://github.com/inouye-lab/ShapleyExplanationNetworks/blob/cab6644677894f0ac88610d2f9cfca239068f403/ShapNet/shallow.py#L332 这里features 的计算公式怎么理解呢,len(list_modules)) 应该是所有 dim * (dim - 1) // 2。features 是否等于 dim 呢?按照现在的计算方法,在第二个实例代码中,features = int((1 + math.sqrt(32*31 / 2)) // 2) = 11 导致 len(keys) = 55 与 len(list_modules) = 496 不一致,这个是为什么呢? 2. 关于训练过程,在本仓库中并没有直接的展示,(以Shallow SHAPNet 为例)训练过程中 explain=True 的时候应该有从shapley value 和 bias 还原模型预测的步骤?和 explain=False 的最终模型预测应该是一致的?能否提供一个训练的代码呢。 3. 论文中建模的 Shapley Transform 是任意的 从 $R^{D\times C} \rightarrow R^{c'}$ 的函数,而实际上,使用 Shapley Module 的简化计算的思想,将函数拆分成 成对的 $(x_i, x_j)$ 的函数的线性组合是否会减弱模型的表达能力,比如没有办法建模 $f(x_1, x_2, x_3) = x_1\cdot x_2 \cdot x_3$ 这样的大于等于三阶交互函数呢? 非常感谢
您好,请问一下:
代码仓库的
ShapleyExplanationNetworks/ShapNet/shallow.py
Line 332 in cab6644
关于训练过程,在本仓库中并没有直接的展示,(以Shallow SHAPNet 为例)训练过程中 explain=True 的时候应该有从shapley value 和 bias 还原模型预测的步骤?和 explain=False 的最终模型预测应该是一致的?能否提供一个训练的代码呢。
论文中建模的 Shapley Transform 是任意的 从$R^{D\times C} \rightarrow R^{c'}$ 的函数,而实际上,使用 Shapley Module 的简化计算的思想,将函数拆分成 成对的 $(x_i, x_j)$ 的函数的线性组合是否会减弱模型的表达能力,比如没有办法建模 $f(x_1, x_2, x_3) = x_1\cdot x_2 \cdot x_3$ 这样的大于等于三阶交互函数呢?
非常感谢