某医疗系统要用一次“线性映射 + 线性分类”结构对问卷症状序列做三步计算:前向预测、MSE 损失、一次 SGD 权重更新。设一条问卷包含 L 条症状记录,每条症状是 D 维向量。先用一个 D×D 的权重矩阵把每条症状做线性变换,再用一个 D×K 的权重矩阵得到 K 维分类打分。把所有记录的打分在“症状条目维度”求平均,得到最终的 K 维预测向量(不做 softmax 归一化)。随后与给定的 K 维真实向量做 MSE 损失,并用学习率 η 进行一次 SGD 更新这两个权重矩阵(均无偏置)。
· 输入第 1 行:L,D,K,η · 第 2 行:真实向量 y(K 个数) · 第 3 行:序列矩阵 X(按行展平,共 L×D 个数) · 第 4 行:映射矩阵 W_mlp(按行展平,共 D×D 个数) · 第 5 行:分类矩阵 W_cls(按行展平,共 D×K 个数) 计算规则(均为行优先展平与输出,四舍五入保留 2 位小数): · H = X @ W_mlp(逐行相乘),h_mean = 每行 H 的平均(1×D) · y_pred = h_mean @ W_cls(1×K) · MSE = (1/K) * Σ(y_pred[i] − y[i])^2 · 令 g = (2/K) * (y_pred − y)(1×K) · grad_W_cls = 外积(h_mean, g)(D×K) · 令 x_mean = 每行 X 的平均(1×D),u = g @ W_cls^T(1×D) grad_W_mlp = 外积(x_mean, u)(D×D) · 参数更新:W_mlp -= η * grad_W_mlp,W_cls -= η * grad_W_cls
输出共 4 行: 1) y_pred(K 个数) 2) MSE(1 个数) 3) 更新后的 W_mlp(D×D 个数,行优先) 4) 更新后的 W_cls(D×K 个数,行优先)
1,2,3,0.3 0.5,1.5,2.0 1.0,2.0 1.0,0.0,0.0,1.0 1.0,0.0,0.0,0.0,1.0,1.0
1.00,2.00,2.00 0.17 0.90,-0.10,-0.20,0.80 0.90,-0.10,0.00,-0.20,0.80,1.00
考点:模拟
限制 1 秒 / 256MB | 标准输入输出
推荐方向:模拟
本题切入点
按给定三步走:H = X·W_mlp 后对症状维度取均值 → 与 y 算 MSE → 用梯度对 W_mlp、W_cls 各做一次 SGD 更新,全程无偏置,输出保留两位。
不涉及复杂算法,把题目描述的流程原样翻译成代码逐步执行即可。
思路框架(模拟 通法 · 非本题专属)
实现要点:结构上通常是一个外层循环包住若干 if/else 分支;只要状态定义清楚,正确率很高。
复杂度:时间 O(操作次数) | 空间 O(状态数)
该范式的通法易错点
样例 1:输入 1,2,3,0.3 / 0.5,1.5,2.0 / 1.0,2.0 / 1.0,0.0,0.0,1.0 / 1.0,0.0,0.0,0.0,1.0,1.0 → 输出 1.00,2.00,2.00 / 0.17 / 0.90,-0.10,-0.20,0.80 / 0.90,-0.10,0.00,-0.20,0.80,1.00
h_mean = [1,2];y_pred = [1,2,2];MSE = 0.17。
g = (2/3)*([0.5,0.5,0]) = [0.33,0.33,0.00];据此求两矩阵梯度并以 η=0.3 更新后得到上述权重。
解析由校招宝本地引擎整理(依据源站考点标签 / 人工判题标注 / 题面规模信号),非官方题解,仅供思路参考。
本题来源:2025年秋招-华为-11月06号留学生AI岗。