连接主义:神经网络控制

Views: --

对应 PPT:第四讲《神经网络控制》+ 循环神经网络专题 + Transformer 模型专题 前两篇是「人把经验交给机器」(写规则、写隶属函数),都卡在「知识获取困境」上。连接主义反其道而行:不让人写规则,给机器一堆「输入→输出」的例子,让它自己从数据里学出规律。这是 2006 年 Hinton 开辟深度学习后的 AI 主流范式。


1. 机器学习在「学」什么:构造一个映射函数

一句话本质:机器学习 ≈ 构造一个映射函数 f:xyf: x \mapsto y。看图认猫(像素→是否猫)、自动驾驶转向(画面→方向盘转角)、控制(误差→控制量 uu),剥到底都是找一个 ff。传统编程是人写死 ff(PID 公式、模糊规则都是人写的 ff);机器学习是给一堆 (x,y)(x,y) 例子,让机器自己拼出 ff

机器学习三要素(任何方法都是这三样的组合):

  1. 模型(Model):框定「ff 长什么样」的候选函数家族 + 可调旋钮 θ\theta
    • 线性模型 f(x,θ)=wTx+bf(x,\theta)=w^{\mathsf T}x+b
    • 广义线性模型 f(x,θ)=wTϕ(x)+bf(x,\theta)=w^{\mathsf T}\phi(x)+b
    • 关键:若基函数 ϕ(x)\phi(x) 本身是可学习的非线性函数,则 ff等价于一个神经网络。即:神经网络 = 连基函数 ϕ\phi 都让机器自己学的广义线性模型(呼应第 2 篇 TSK≈RBFN 的伏笔)。
  2. 学习准则(Learning Criterion):用损失函数给「这套旋钮好不好」打分,目标是让期望风险最小:

R(f)=E(x,y)p(x,y)[L(f(x),y)]\mathcal R(f)=\mathbb E_{(x,y)\sim p(x,y)}\big[\mathcal L(f(x),y)\big]

  1. 优化方法(Optimization):怎么拧旋钮让损失最小——梯度下降。直觉是「蒙眼下山」:感知当前最陡下坡方向(负梯度),迈一小步,反复滚到谷底;步长由学习率控制。

2. 神经元与激活函数

神经网络 = 用「神经元」这种小积木堆成千上万个。生物神经元:树突收信号 → 细胞体汇总 → 超过阈值就「激活 / 放电」,否则沉默。

人工神经元 = 两步

  1. 加权求和z=w1x1+w2x2++wnxn+bz=w_1x_1+w_2x_2+\cdots+w_nx_n+bwiw_i = 输入重要性,bb = 可调激活门槛)。
  2. 过激活函数y=σ(z)y=\sigma(z)

例:x=(2,4)x=(2,4)w=(0.5,0.3)w=(0.5,-0.3)b=0.1b=0.1z=0.520.34+0.1=0.1z=0.5\cdot2-0.3\cdot4+0.1=-0.1y=σ(0.1)0.475y=\sigma(-0.1)\approx0.475。神经网络要学的旋钮 θ\theta 就是所有神经元的 w,bw,b

为什么必须有激活函数:没有它,每个神经元只是线性变换,线性套线性还是线性,堆 100 层等价于 1 层,连异或都学不会。激活函数的唯一使命是注入非线性,让「多层堆叠」真正能逼近复杂弯曲函数。

三个常用激活函数:

  • Sigmoid / Logisticσ(z)=11+ez\sigma(z)=\frac{1}{1+e^{-z}},压进 (0,1)(0,1),软开关。
  • Tanhtanh(z)=ezezez+ez\tanh(z)=\frac{e^z-e^{-z}}{e^z+e^{-z}},压进 (1,1)(-1,1),以 0 为中心。
  • ReLUReLU(z)=max(0,z)\text{ReLU}(z)=\max(0,z),负的归零、正的放行,现在的默认选择。

为什么从 Sigmoid/Tanh 改投 ReLU——梯度消失:Sigmoid 在输入离 0 很远处曲线几乎水平、导数趋近 0。反向传播是一连串导数相乘,每层都乘一个趋近 0 的小导数,串起来很快衰减到 0,前面的层收不到学习信号、训练停滞。ReLU 在 z>0z>0 时导数恒为 1,连乘不缩水,梯度能传到很深——故深层网络默认用 ReLU。

3. 前馈神经网络与通用近似定理

前馈神经网络:信号只朝一个方向走——输入层 → 隐藏层 → 输出层,不回头、不成环(有向无环图)。同层神经元互不相连,相邻层通常全连接。整个网络是一串「加权和+激活」的嵌套复合函数(5 层为例):

y=f5(f4(f3(f2(f1(x)))))y=f_5\big(f_4\big(f_3\big(f_2\big(f_1(x)\big)\big)\big)\big)

通用近似定理(Universal Approximation Theorem):一个线性输出层 + 至少一层带激活函数的隐藏层的前馈网络,只要隐藏层神经元够多,就能以任意精度逼近定义在有界闭集上的任意连续函数。大白话:单隐藏层网络只要神经元够多,就能模拟几乎任何函数

意义:它给「机器学习=找映射 ff」发了可行性证明,也和第 2 篇「1992 模糊万能逼近」两边对上——模糊系统与神经网络本质相通。

两个澄清(防误解):① 「存在」≠「找得到」——定理只保证有那么个好网络,没说怎么训练(那是优化问题,靠反向传播,常很难);② 「单层够用」≠「单层最好」——做深(多隐藏层)往往用少得多的神经元达到同样效果(先学简单特征再拼复杂特征:边缘→轮廓→猫脸),这是用深度学习的原因。

4. 反向传播:神经网络怎么「学」出来

反向传播(Backpropagation, BP,Rumelhart/Hinton/Williams 1986) 解决「怎么把埋在深层的权重训练出来」。

问题:梯度下降要拧某个权重 ww,得知道它的梯度 Lw\frac{\partial L}{\partial w}(「动这个权重一点点,最终损失变多少」)。难在网络层层嵌套,要调的权重可能埋在第一层,它对末端损失的影响「拐了好几道弯」。

工具:链式求导法则。网络是大复合函数,链式法则把「跨层总账」拆成「一串局部导数连乘」。直觉 = 齿轮传动比相乘:齿轮 1→2 传动比 aa、2→3 传动比 bb,则 1 对 3 的总影响 =a×b=a\times b。把 ff 拆成 h1h6h_1\to\cdots\to h_6

fw=fh6h6h5h5h4h4h3h3h2h2h1h1w\frac{\partial f}{\partial w}=\frac{\partial f}{\partial h_6}\cdot\frac{\partial h_6}{\partial h_5}\cdot\frac{\partial h_5}{\partial h_4}\cdot\frac{\partial h_4}{\partial h_3}\cdot\frac{\partial h_3}{\partial h_2}\cdot\frac{\partial h_2}{\partial h_1}\cdot\frac{\partial h_1}{\partial w}

每项是相邻两步的局部导数,单独都好算;难算的总账 = 一串好算的小账连乘。

两趟走:① 前向传播——输入 xx 一层层算到底得预测 y^\hat y,与真值比算损失 LL(从前往后);② 反向传播——从输出层损失出发,把误差信号沿网络往回一层层倒推算梯度(「误差从后往前倒推」=「反向」的由来),复用后层已算结果、一趟回传算完全网络梯度。然后梯度下降更新权重,重复成千上万次(每次喂一个 mini-batch = MBGD)。

接回梯度消失:反向传播是一串局部导数连乘,用 Sigmoid 则每环贡献趋近 0 的小导数、连乘几层梯度消失;ReLU 正区间导数恒为 1。梯度消失 = 反向传播的连乘链断在半路。

5. 神经网络控制结构(第四讲重点,常考)

现在回到本门课的主线——控制。这么个会学习的网络,接在控制回路的哪个位置

顶层二分神经控制(神经网络为主体,独立构成控制器)vs 混合神经网络控制(用网络的学习能力改善传统控制器,或与模糊 / 专家系统结合)。

六种结构:

结构网络角色直觉归类
监督控制偷师传统控制器老司机带新手:NNC 学传统控制器输出(当标准答案),学成逐渐取代、传统控制器留作保底神经控制
直接逆控制对象逆模型 G1G^{-1}英译中接中译英:网络学 G1G^{-1} 串在对象前,正反抵消使传递函数≈1。无反馈、鲁棒性差,需在线学习神经控制
自适应·自校正辨识未知参数 f,gf,g对象 y(k+1)=f(y)+g(y)u(k)y(k+1)=f(y)+g(y)u(k),解方程 u(k)=r(k+1)f(y)g(y)u(k)=\frac{r(k+1)-f(y)}{g(y)}f,gf,g 未知则用网络辨识神经控制
自适应·模型参考逼对象模仿理想榜样设参考模型(理想响应曲线 = 标准示范),NNC 调参把误差 ec=ymye_c=y_m-y 压到最小神经控制
预测控制预测未来的模型看一段路、只走一步、滚动重规划(预测模型 + 滚动优化 + 反馈校正,呼应 MPC)神经控制
自适应评判评委 + 运动员Critic 按外部再励信号打分、Actor 据内部再励信号选动作。没有标准答案、靠奖惩试错 = 强化学习核心(→第 4 篇)神经控制
混合控制与模糊 / 专家系统联姻神经网络 + 模糊 = 模糊神经网络;+ 专家系统 = 神经网络专家系统。会学 + 会讲道理混合控制

6. RBF 网络控制

RBF = Radial Basis Function(径向基函数),控制领域最常用的神经网络。固定三层,特别处在隐藏层用高斯函数当激活函数。

「径向基」拆名:径向=只看距离——每个隐藏神经元揣一个中心 CjC_j,输入 rr 进来只关心「离我中心多远」rCj\|r-C_j\|。第 jj 个隐藏神经元(高斯):

hj=exp ⁣(rCj22bj2)h_j=\exp\!\left(-\frac{\|r-C_j\|^2}{2b_j^2}\right)

行为 = 「以 CjC_j 为圆心的钟形山包」:输入正好在中心→hj=1h_j=1(最强);离中心越远→hj0h_j\to0(越弱);基宽 bjb_j 控制山包胖瘦。直觉:每个隐藏神经元是「片区探测器」,只盯输入空间里以 CjC_j 为中心的一小片。输出层线性加权:u=j=1mwjhju=\sum_{j=1}^{m}w_j h_j

控制领域偏爱 RBF 的三理由:① 局部响应→学得快、不互扰(每个高斯只管一片,调一处不乱全局),适合在线实时控制;② 结构简单单隐藏层,但仍是万能逼近器;③ 数学性质好,便于稳定性分析。

权值更新靠梯度下降——定性能指标 E(k)=12e(k)2E(k)=\frac12 e(k)^2,更新:

Δwj(k)=ηE(k)wj+α(wj(k1)wj(k2))\Delta w_j(k)=-\eta\frac{\partial E(k)}{\partial w_j}+\alpha\big(w_j(k-1)-w_j(k-2)\big)

η\eta = 学习率,α\alpha = 动量因子(让本步参考上步方向、加速收敛减震荡)。本质和反向传播同一回事。进阶版连中心 CjC_j、基宽 bjb_j 也一起在线调。实例谱系:ALVINN(早期车辆控制)→ DAVE-2(CNN 端到端转向)→ RBF 极限工况横向稳定控制 → RBFNN-PID(转向执行层非线性补偿)。

7. 回补:TSK 模糊系统 ≈ RBF 网络

现在可以兑现第 2 篇欠下的证明了。零阶 TSK 怎么算输出:规则 jj「IF x1x_1 is Fj,1F_{j,1} AND x2x_2 is Fj,2F_{j,2} THEN yjy_j=常数」,① 算点火强度 fj(x)f_j(x),② 按点火强度加权平均 y(x)=jfj(x)yjjfj(x)y(x)=\frac{\sum_j f_j(x)y_j}{\sum_j f_j(x)}

关键一步——前件隶属函数选高斯:则点火强度(两高斯相乘 = 指数相加)

fj(x)=exp ⁣((x1mj,1)2+(x2mj,2)2σj2)f_j(x)=\exp\!\Big(-\frac{(x_1-m_{j,1})^2+(x_2-m_{j,2})^2}{\sigma_j^2}\Big)

这正是 RBF 隐藏层那个「以 (mj,1,mj,2)(m_{j,1},m_{j,2}) 为中心的钟形片区探测器」hjh_j。两套输出公式并排:TSK y=jfjyjjfjy=\frac{\sum_j f_j y_j}{\sum_j f_j} 与归一化 RBF y=jhjwjjhjy=\frac{\sum_j h_j w_j}{\sum_j h_j} —— 完全一样

五条对应(Jang & Sun 1993):规则数 = 神经元数、前件高斯 = 隐藏层高斯激活、t-范数相乘 = 高斯多维相乘、后件常数 = 输出权重 wjw_j、加权平均 = 加权求和。

三层深意:① 两个万能逼近器本质是一个(都用局部钟形基函数分片拼曲面);② 神经模糊 / ANFIS 由此成立(白盒可解释 + 可训练,解决知识获取困境);③ TSK 等价的另外四个模型(MLP/MoE/CART/Stacking)同理,故它们的训练技巧能搬来优化模糊系统。


8. RNN 循环神经网络:给网络装上「记忆」

前面的网络都假设「每次输入独立、输出只看当前输入」。但序列问题(文本、语音、视频、物理过程——任何嵌在时间里的东西)前后有依赖、顺序有意义(「我不喜欢」vs「我喜欢」;轨迹下一秒依赖前几秒)。前馈网络两硬伤:输入输出维度固定(处理不了变长序列)、没记忆。

RNN(Recurrent Neural Network)核心结构:加一条自反馈回路,把「这一刻的内部状态」留给「下一刻」用。这个不断后传的内部状态叫隐藏状态 hth_t(= 记忆)。每个时间步:

ht=tanh(Wxxt+Whht1+b)h_t=\tanh\big(W_x x_t+W_h h_{t-1}+b\big)

大白话:这一刻记忆 = 当前输入 xtx_t 和上一刻记忆 ht1h_{t-1} 混合后过 tanh 压一下。ht1h_{t-1} 里又揉着前天的记忆……故 hth_t 层层藏着从开头到现在的历史。

两个关键概念:① 时间展开——把自环拉直、每个时间步画一个网络副本,看起来像「深度方向是时间」的深前馈网;② 参数共享——所有时间步用同一套权重 Wx,WhW_x,W_h,好处是能处理任意长度序列 + 规律平移不变(与 CNN 卷积核扫全图同理)。

致命伤——长程依赖 + 梯度消失 / 爆炸:反向传播沿时间一路连乘,链很长——每环 < 1 → 连乘趋 0 → 梯度消失(早期步学不到,记不住长程,最常见);每环 > 1 → 梯度爆炸。一句话:RNN 有记忆但记性短。输入输出形态:多对一(情感分析)、一对多(看图说话)、多对多(机器翻译)。

9. LSTM:给记忆装上「门」

RNN 只有一条记忆通道 hth_t,每步把新信息一股脑混入再整体压扁,旧信息被冲刷。LSTM(Long Short-Term Memory,Hochreiter & Schmidhuber 1997):开一条「传送带」式长期记忆通道 CtC_t 让信息原样流过多步不被冲刷,再用三道闸门精确控制忘 / 记 / 说。

门(gate)零件:逐元素相乘 + Sigmoid。Sigmoid 把数压进 (0,1):0 = 闸门全关,1 = 全开。三道门都看 [ht1,xt][h_{t-1},x_t] 做决定:

  • ① 遗忘门 ftf_t(长期记忆里哪些擦掉):ft=σ(Wf[ht1,xt]+bf)f_t=\sigma(W_f\cdot[h_{t-1},x_t]+b_f),逐元素乘到旧记忆 Ct1C_{t-1}
  • ② 输入门 iti_t(新信息里哪些值得存):先 tanh 生成候选新记忆 C~t\tilde C_t,再 Sigmoid 门 iti_t 决定写多少。
  • ③ 状态更新(心脏)Ct=ftCt1+itC~tC_t=f_t\odot C_{t-1}+i_t\odot\tilde C_t(先擦该忘的、再写该记的)。打败梯度消失的关键:旧记忆 Ct1C_{t-1} 是被进来(非反复乘权重压扁),遗忘门开着时几乎原样加过来,信息沿传送带畅通流过多步,梯度顺这条「加法高速路」回传不衰减。
  • ④ 输出门 oto_t(这步对外说什么):ot=σ(Wo[ht1,xt]+bo)o_t=\sigma(W_o\cdot[h_{t-1},x_t]+b_o)ht=ottanh(Ct)h_t=o_t\odot\tanh(C_t)

口诀:遗忘门忘旧、输入门记新、输出门说话GRU(Gated Recurrent Unit) = LSTM 简化版,三门精简为两门,参数少训练快、效果常相当。

10. Transformer:抛弃循环,改用注意力

LSTM 解决了长程记忆,但和 RNN 共享缺陷——必须按时间一步步算hth_t 依赖 ht1h_{t-1}),没法并行、序列长则训练极慢。Transformer(2017) 釜底抽薪:不要循环,让每个词「一步到位」直接看到所有其他词,用注意力决定重点看谁。无递推链→所有词并行计算,任意两词「直连」(距离=1 步),长程依赖迎刃而解。

① 词→向量:One-hot → Embedding。one-hot(每词一超长向量、自己位 1 其余 0)太稀疏、任意两词正交算不出语义关系。Embedding(词嵌入):可学习矩阵把它压成低维稠密向量,训练后意思相近的词向量也相近(猫≈狗,远离桌子)。

② 注意力内核:点积算相关度。点积 = 两向量逐元素相乘求和,方向越一致越大→当「相关度打分器」:A 该不该关注 B,就拿 A、B 向量点积。

③ 为什么要「跳跃式」注意力:预测一个词,该重点看的可能是很远处某个特定词(Check the program/battery log ... whether it ran (down),决定 down 的词隔了一长串)。「跳过无关、精准盯远处关键词」= 注意力。

④ Q/K/V 机制:对每个词造三向量——Query 「我想关注什么」、Key 「我能提供什么信息(索引)」、Value 「我实际携带的内容」。比喻查字典:Q = 要查的词条,K = 词头索引,V = 解释内容。三步:① 当前词 Q 与所有词 K 点积打分;② Softmax 变成和为 1 的注意力权重;③ 用权重对所有词 V 加权求和。公式:

Attention(Q,K,V)=Softmax ⁣(QKTdk)V\text{Attention}(Q,K,V)=\text{Softmax}\!\left(\frac{QK^{\mathsf T}}{\sqrt{d_k}}\right)V

QKTQK^{\mathsf T} = 每词对每词点积打分一次矩阵乘算完(注意力 = 矩阵乘法,GPU 可大规模并行);dk\sqrt{d_k} 缩放防 Softmax 饱和。

⑤ 补两零件Masking(掩码)——文本生成时预测第 tt 词不能偷看 tt 及以后(答案),打分后 Softmax 前把未来位置设 -\infty,保证因果性;Positional Encoding(位置编码)——抛弃循环后模型不知词序(「狗咬人」=「人咬狗」),给每词 embedding 加一个编码「第几位」的向量(不同频率正弦 / 余弦),既并行又不丢顺序。

⑥ Multi-Head Attention(多头):一组 Q/K/V 只能学一种关注模式,但词间关系多维度(语法 / 语义 / 局部 / 全局)。多头 = 并行多套独立 Q/K/V,各学一种模式,结果拼接融合。比喻委员会同审一句话,各看一角度再汇总。

⑦ 收尾:多层加工后用 De-embedding 映射回词表每词分数,Softmax 成概率,挑最高词输出,逐词生成。

收口呼应:Transformer 强在并行 + 任意长程直连,但自注意力对序列长度 O(N2)O(N^2),超长吃不消——正是第 2 篇 Mamba/SSM 的动机,而 Mamba 内核绕回控制论状态空间法 h˙=Ah+Bu, y=Ch+Du\dot h=Ah+Bu,\ y=Ch+Du,闭环已合上。

11. 本篇小结

机器学习 = 找映射 f(模型 + 损失 + 梯度下降)
  神经元 = 加权和 + 激活(注入非线性,ReLU 治梯度消失)
  通用近似定理:单隐藏层够多神经元 → 逼近任意连续函数
  反向传播(链式法则):误差从后往前倒推算梯度

  神经网络控制结构(监督/直接逆/自校正/模型参考/预测/自适应评判/混合)
  RBF 网络:局部钟形探测器,又快又稳
      └── TSK ≈ RBF(神经模糊 ANFIS)
  序列建模:RNN(记忆但记性短)→ LSTM(三门 + 传送带)→ Transformer(注意力 + 并行)

下一篇:行为主义——没有人教、也没有标准答案,靠「做了之后看反馈」来学(迭代学习控制 + 强化学习)。

评论