漆昊转头看向他。
“我们做无人机飞控,传统方案是pid控制器,纯数学模型,很精确,但前提是你对飞行环境有完整的物理建模。”
“不过这种方式在高原上不行,风场湍流的模式千变万化,气压密度随海拔非线性变化,经典控制理论的模型假设全崩了。”
“后来我们有个工程师,也是数学背景出身,他提了一个大胆的想法,直接拿飞行数据喂进去,让系统自己学。”
“学?”漆昊敏锐地抓住了这个词。
“对,学。”汪总点头,“他搭了一个多层的数学结构,输入是飞行器当前的状态参数,姿态角、角速度、气压、风速,输出是四个旋翼的转速指令,中间有好几层……怎么说呢,你可以理解成一层一层的非线性变换。”
“每一层做一次线性组合,然后过一个非线性激活,上万个参数,全靠数据去调整。”
多层,非线性变换,函数逼近。
漆昊脑子里仿佛有什么东西被推开了一道缝。
“等一下,你是说,这种结构理论上可以逼近任意连续函数?”
汪总愣了一下,随即笑了:“你的直觉很准,确实有一个数学定理,好像叫什么万能逼近定理,说的就是这个意思,只要中间层的节点足够多,这种结构可以以任意精度逼近任何连续函数。”
“那华记那个基站选址问题,如果把历史选址数据整理出来,输入是地形参数、用户分布、遮挡数据,输出是信号覆盖质量的评估,也可以用这种结构去逼近那个未知的估值函数?”
陈工点了点头:“思路是对的,事实上业界确实有人在做类似的尝试,学术界把这个方向叫叫机器学习,你刚才说的那种多层结构,通常被称为神经网络。”
“不过我们的基站选址模型输入维度超过两百,网络训练到后面,梯度几乎归零,模型完全学不动。”
漆昊听到这里有些想不明白了,他看到旁边有一块白板,就走过去,拿起笔写了起来。
“假设网络有n层,每一层的激活函数是σ,那反向传播的时候,梯度要经过n次链式法则……十层网络,梯度衰减系数是0.25的十次方。“
他在旁边写下结果:0.251?≈0.0000009537。
漆昊放下笔,转过身:“梯度没有消失,它只是在指数级衰减,这是激活函数选取带来的结构性缺陷,不是优化算法的问题。”
老王在旁边看得连连点头。
他这个学生说的确实没问题。
汪总问道:“那怎么解?”