LSTM 的计算过程

张开发
2026/6/3 11:53:43 15 分钟阅读
LSTM 的计算过程
1. 为什么把 MLP 改成 LSTMMLP 更适合处理固定长度、一次性输入的数据。 当任务变成序列建模时模型需要记住“前面发生过什么”这时 LSTM 更合适。因此这里把前面的 MLP 示例改成一个标量版 LSTM用 Excel 展示每个时间步的门控计算过程。配套文件LSTM计算过程.xlsx—## 2. 示例设定- 序列长度3- 每个时间步输入维度1- 隐藏状态维度1- 细胞状态维度1- 最后再接一个输出层得到预测值y_hat输入序列| 时间步 | 输入值 ||—|—:|| x1 | 0.5000 || x2 | 0.8000 || x3 | -0.1000 |初始状态| 变量 | 数值 ||—|—:|| h0 | 0.0000 || c0 | 0.0000 || y_true | 1.0000 |—## 3. LSTM 核心公式对每个时间步t-i_t σ(W_ix*x_t W_ih*h_(t-1) b_i)-f_t σ(W_fx*x_t W_fh*h_(t-1) b_f)-g_t tanh(W_gx*x_t W_gh*h_(t-1) b_g)-o_t σ(W_ox*x_t W_oh*h_(t-1) b_o)-c_t f_t*c_(t-1) i_t*g_t-h_t o_t*tanh(c_t)最终输出层-z_y W_y*h_T b_y-y_hat σ(z_y)—## 4. 参数设置### 门控参数| 参数 | 数值 ||—|—:|| W_ix | 0.7000 || W_ih | 0.5000 || b_i | 0.1000 || W_fx | -0.4000 || W_fh | 0.2000 || b_f | 0.3000 || W_gx | 0.6000 || W_gh | -0.1000 || b_g | 0.0000 || W_ox | 0.9000 || W_oh | 0.4000 || b_o | -0.2000 || W_y | 1.2000 || b_y | 0.0500 |—## 5. 逐时间步计算结果| t | x_t | h_(t-1) | c_(t-1) | i_t | f_t | g_t | o_t | c_t | h_t ||—|—————————:|| 1 | 0.500000 | 0.000000 | 0.000000 | 0.610639 | 0.524979 | 0.291313 | 0.562177 | 0.177887 | 0.098962 || 2 | 0.800000 | 0.098962 | 0.177887 | 0.670286 | 0.499948 | 0.438283 | 0.636356 | 0.382710 | 0.232307 || 3 | -0.100000 | 0.232307 | 0.382710 | 0.536473 | 0.595431 | -0.083039 | 0.450890 | 0.183329 | 0.081747 |—## 6. 最终输出-z_y 0.148097-y_hat 0.536957-L 1/2 * (y_hat - y_true)^2 0.107205—## 7. Excel 文件说明工作簿中包含 4 个工作表1.说明模型背景与使用方式 2.参数设置输入序列、初始状态、各门参数 3.时序计算逐时间步展示 i_t、f_t、g_t、o_t、c_t、h_t 4.结果解读解释为什么 LSTM 比 MLP 更适合序列任务 —## 8. 这个表格适合怎么用- 修改参数设置中的蓝色单元格- 查看各时间步门值如何变化- 观察c_t与h_t如何在时间维度上传递- 对比 MLP 与 LSTM前者一次处理输入后者逐步保留和更新记忆这样就能直观看到MLP 是静态映射LSTM 是带记忆的动态映射。

更多文章