024、循环神经网络(RNN)与LSTM基础 024 循环神经网络(RNN)与LSTM基础一次让人抓狂的温湿度预测调试去年夏天帮朋友调试一个智能大棚的温湿度预测模型,用的是经典的三层全连接网络。输入过去24小时的温湿度数据,预测未来1小时的变化。训练集上loss降得漂亮,验证集也还行,结果一上树莓派跑实时数据,预测值直接“躺平”——输出永远是一条接近均值的直线,完全无视最近几小时的剧烈波动。当时我盯着串口打印的预测值看了半小时,差点以为是传感器坏了。后来同事路过瞄了一眼,说:“你这就是个静态模型,时间顺序信息全被你拍扁了。” 一语惊醒梦中人——全连接网络把时间步当成独立特征,根本不知道“昨天中午温度高”和“今天中午温度高”之间的因果关系。这就是RNN要解决的核心问题:让网络记住时间维度上的依赖关系。RNN的“记忆”到底长什么样先别急着看公式,想象一个最简单的场景:你在读一句话“我今天吃了____”,正常人会填“饭”或者“苹果”,不会填“月亮”。为什么?因为前面的“吃”字提供了上下文约束。RNN做的事情本质上就是给网络加了一个“内部状态”,让它在处理当前输入时,能参考之前处理过的信息。一个标准RNN单元的计算可以写成这样:h_t = tanh(W_h * x_t + U_h * h_{t-1} + b_h)别被符号吓到,拆开看就三部分:x_t:当前时刻的输入(比如当前小时的温湿度)