代码修改版

前馈语言模型 · 代码修改

直接改代码里的词向量和权重,点「运行代码」看神经网络如何逐行算出一个预测。

目标实验目标

读懂这段前向传播:查向量 → 拼接 → tanh 隐藏层 → 线性打分 → softmax。黄色虚线是可改的数字,改完重新运行。

重点把 黑洞 的词向量改成和「恒星」几乎一样,运行后对比输出——这就是「举一反三」在代码里的样子。

代码可编辑源码

虚线处可直接点击修改,改完点「运行代码」。

ffnn_lm.js — 点击黄色数字可编辑

输入选择上下文

「围绕」固定为 [0.10, 0.20]。

结果分类结果

等待运行…
行星—
雨伞—

监视变量监视

待定词 = -
天文性 x₁ = -
隐藏层 h = -
行星 logit = -
P(行星) = -
判定 = -

日志执行日志

点击「运行代码」开始执行…

挑战实验课挑战

挑战 1 · 复制相似向量
把「黑洞」的向量改成 [0.90, 0.15](与恒星完全相同),运行后 P(行星) 是多少?
挑战 2 · 拉大差距
把 w_h 从 1.5 改成 4.0,「香蕉」的 P(行星) 会怎么变?为什么?
挑战 3 · 去掉激活
把 Math.tanh(...) 改成直接返回值(去掉非线性),模型还能区分天文词吗?
挑战 4 · 增加候选词
想让输出层多一个候选(比如「卫星」),代码需要加哪几处?