第128 章 沈默的优化
  会议室里安静了一瞬。
  几个研发人员面面相覷,有人小声嘀咕:
  “反馈路径?那是標准配置啊……”
  沈默没有理会,继续说道:
  “你们用的是时序差分误差作为反馈信號,这是dqn的標准做法。”
  “但你们忽略了一个问题,那就是在这个场景下,环境状態的稀疏性会导致梯度消失。”
  他走到白板前,拿起记號笔,快速画了一个简化的网络结构图。
  “你们看,输入层到隱藏层的连接有四个,但隱藏层到输出层只有两个。”
  “当环境反馈稀疏时,梯度反向传播到隱藏层就已经衰减得差不多了。”
  “所以训练一周,准確率只提升3.7%。”
  他放下笔,看向宋远:
  “解决方案有两个:一是增加隱藏层的残差连接,让梯度有捷径可走;”
  “二是改用ppo算法,用优势函数替代时序差分误差。”
  会议室里瞬间没声音了。
  宋远盯著白板上那张图,眼睛慢慢睁大。
  “这……確实是。”他喃喃道,“我们怎么没想到……”
  旁边一个年轻研发人员忍不住开口:
  “可是残差连接会增加计算量,影响推理速度……”
  沈默看向他:“推理速度的问题,可以通过模型剪枝和量化来解决。”
  “而且这是训练阶段,推理速度不是首要考虑因素。”
  “等模型收敛后,再对网络结构进行优化,把不必要的连接剪掉。”
  那人张了张嘴,没再说出话来。
  宋远深吸一口气,看著沈默的眼神完全变了。
  更新不易,记得分享101看书网
  “沈总,您……您是学计算机出身的?”
  沈默淡淡一笑,“算是吧。”
  他没再多解释,转身看向投影屏幕上的代码:
  “把核心代码拷给我一份,我回去再想想。”
  宋远连忙点头,“好的好的,我这就让人准备。”
  几分钟后,一个研发人员递过来一个u盘。
  沈默接过,转身往外走。
  走到门口时,他忽然停下脚步,回头看向会议室里的眾人:
  “对了,残差连接的实现,注意初始化方式,最好別用xavier初始化。”
  说完,他推门离开。
  会议室里已经一片死寂。
  过了好几秒,才有人小声开口:
  “他……他怎么知道我们在用xavier?”
  另一个人喃喃道:
  “而且连梯度消失、稀疏状態这些细节都一眼看出来了……”
  “可是,这些都是咱们一起研究半个月的成果啊。”
  宋远慢慢坐回椅子上,盯著白板上那张手绘的网络图,沉默了很久。
  他是业內资深专家,在ai领域摸爬滚打了十几年,带过上百人的团队,发表过十几篇顶会论文。
  可刚才那几分钟,他感觉自己居然像个门外汉。
  那个小沈总……他之前只当是个靠著家族背景上位、对技术一窍不通的富二代。
  可刚才那几句点拨,精准深刻得令人咋舌。
  他刚才一直注意沈默的举动。
  发现沈默连代码都没看,只是看了一眼架构图,就指出了核心问题。
  这是什么样的技术功底?
  他深吸一口气,开始正视这个“花花公子”了。
  ……
  沈默回到办公室,將u盘插入电脑。
  文件解压后,密密麻麻的代码瞬间就铺满了屏幕。
  他粗略扫了一眼,大概分成了十几个模块,注释写得还算规范。
  他没有急著往下翻,而是靠在椅背上,闭目养神了几分钟。
  脑海中,刚才看到的算法架构图再次浮现。
  输入层、隱藏层、输出层;
  反馈路径的走向,梯度传播的路径……
  得益於死后的那场神奇的灵魂之旅,那些公式和原理几乎不需要细想就自己钻了出来。
  他睁开眼,手指搭上键盘。
  屏幕上的代码一行行从他眼前掠过。
  他没有逐行细读,而是快速滑动页面,迅速捕捉关键节点。
  def、if、for……
  不管是函数结构,还是逻辑判断,他看一遍,就记住了。
  都不需要刻意去背,那些代码的逻辑结构就会自动在他脑海里浮现。
  基本算是一目十行,过目不忘。
  半个小时后,他已经把整个核心模块的代码全部看完。
  他按了按太阳穴,那些代码在脑海中开始自动重组。
  旋即他发现问题的癥结不止一个。
  宋远他们只发现了收敛速度慢这一表面问题。
  但根本原因,其实是他们对奖励函数的设计过於理想化,从而忽略了现实数据的噪声干扰。
  探索策略也过於保守,导致模型容易陷入局部最优。
  此外,网络深度和宽度的配比也有问题,某些层的神经元数量冗余,某些层又不够。
  他嘆了口气,新建一个文档,开始写。
  当然,他没有在原有的代码上修改优化,而是重新构建了一个基础框架。
  他写得很快,键盘声几乎没有停顿。
  窗外,阳光从中空缓缓西移。
  下午五点十分,最后一行代码落下。
  沈默保存文件,又检查了一遍。
  一共近四千行,刚好覆盖了核心模块的基础架构。
  他站起身,活动了一下有些僵硬的脖颈,才拿起u盘,再次走向研发中心。
  此刻,研发中心里的人比上午少了一些。
  几个工位空著,大概是去茶水间休息了。
  宋远还在,正对著屏幕皱眉。
  听到脚步声,他抬起头,看到是沈默,连忙站起身:
  “沈总?”
  沈默走到他面前,把u盘递过去:
  “基础框架写好了。你们看看,照著这个思路往下做。”
  宋远愣住了。
  “您……您写好了?”
  他接过u盘,语气里满是难以置信。
  这才一个下午。
  不说重新写,就算是查看他们提供的那个三四万行的代码,时间也不是很充裕吧?
  沈默没有解释,只是点点头:
  “核心难点基本解决了。剩下的你们团队细化。”
  说完,他转身往外走。
  宋远握著u盘,愣了几秒,连忙插进电脑。
  文件打开的那一刻,他的眼睛就直了。
  这不是在他们原有代码基础上写的。
  而是一版全新的代码!
  其间代码结构清晰明確,模块功能划分、网络参数设计,全部清清楚楚。
  他顺著往下看,越看越心惊。