林弘拿着大长老给的灵石,在后山找了个废弃的茅坑(因为没人打扰),把灵石按照“矩阵”的排列方式,在地上摆了一个简易的算力阵列。
“这玩意,在现代叫GPU集群,在修仙界,这就叫‘聚灵阵’。不过嘛……”
林弘看着这堆灵石,叹了口气:“没有优化器,修炼效率太低。老子得给这修仙界来一点‘反向传播’的震撼。”
第二天,林弘大摇大摆地走进了宗门丹房。丹房里,炼丹长老正守着一个巨大的紫金八卦炉,满头大汗地往里面催动三昧真火。
“长老,你这一炉‘驻颜丹’炼了几天了?”林弘凑过去问。
炼丹长老高傲地冷哼:“足足七七四十九天!老夫这把控火候的手法,差一秒都会炸炉!”
林弘撇了撇嘴:“太他妈落后了。你这叫‘人工试错’,效率低得令人发指。来,看老子的。”
林弘掏出一把灵石,直接贴在丹炉的阵眼上,然后从兜里摸出一根毛笔,在丹炉壁上画了一个极其复杂的图谱。
“第一步,这叫损失函数(Loss Function)。”林弘指着那个图谱,“你就把它当成一个‘傻逼质检员’。他专门盯着炉子里的丹药,只要丹药的药效不达标,这傻逼质检员就会发脾气,大声骂娘。”
“第二步,就是反向传播(Backpropagation)。”林弘嘿嘿一笑,“这玩意儿你可以想象成一个暴脾气的包工头。丹药不行,包工头不是去改丹药,而是顺着之前加火的路线,倒着走回去!一看是你加火大了,他上去就给你一巴掌;一看是灵气太杂了,他直接一脚把阵眼踹飞。这就叫反向找原因!”
“最后,就是梯度下降(Gradient Descent)。”林弘看着一脸懵逼的长老,“包工头打完人之后,让你重新调参数。这就像下山一样,你闭着眼睛,拿脚趾头去探哪边的坡度最陡(梯度),然后朝着最陡的方向往下滚(下降),滚到底部,丹药就成了。”
炼丹长老听得眼珠子都快瞪出来了:“这……这简直是魔道邪术!”
“管他什么邪术,看好了!”林弘一巴掌拍在阵眼上,开启了“自动炼丹”。
只见丹炉里的火候跟疯了一样,一会儿大一会儿小,炉子被灵气抽得嗡嗡作响。这可是暴脾气的包工头在疯狂调参!
“砰!”炉子发出巨响。长老刚想骂娘,却闻到一股沁人心脾的异香。
丹炉盖子自动掀开,里面躺着一颗金光闪闪、丹纹完美的极品驻颜丹!
“这……”长老扑通一声跪在地上,捧着丹药激动得直哆嗦,“这至少是八品神丹!”
林弘得意地翘起二郎腿:“这他妈算什么。有了我这套系统,就算是一头猪在这里扇风,它都能给你炼出九品仙丹。不过嘛……”林弘嘴角抽搐了一下,“这暴脾气的包工头有点难伺候,刚才中途,它把我定的学习率搞错了。”
“学习率?”长老抬头问道。
“学习率这玩意儿,你可以想象一个怂逼在悬崖边走。”林弘用手比划着,“如果学习率太小了,这怂逼就会一点一点挪,一次挪一厘米。风一吹,直接给这怂逼吓成傻逼了,就会往回退。这就是模型学习率太低的弊端:模型会反复在原地踏步,无法正常预测词元。”
“那太大呢?”
“如果太大了呢,那么就是一个富逼给了这个怂逼一个亿,他直接不害怕了,狂奔过去。跑两步,咔嚓,模型直接摔死成NaN(非数字)了,也就是算崩了。”林弘心虚地摸了摸鼻子,“刚才系统差点崩了,就是因为老子设定的步长太大,这怂逼直接跳崖了。”
正当长老要把林弘奉为神明的时候,丹房外突然冲进来几个浑身是血的弟子。
“不好了!长老!那个被您用邪术搞残的狗日天掌门……他……他醒了!”
林弘和长老对视一眼,赶紧跑到了掌门的寝殿。
寝殿里,狗日天坐在床榻上,双眼虽然翻白,但不再流口水了。
大长老在旁边哭着喊:“掌门!您恢复神智了吗掌门!”
狗日天面无表情,木然地转过头。然后,他突然伸手,一把抓住了旁边一只灵鹤的屁股,硬生生往自己的嘴里塞,一边塞一边还在用鼻子疯狂排泄。
大长老吓得一屁股坐在地上。
林弘一拍脑门:“坏了!这怂逼(学习率)虽然没跳崖,但模型出现了过拟合(Overfitting)!”
“什么叫过拟合?!”大长老怒吼。
“过拟合,你可以想象一个脑子进水、死读书的书呆子!”林弘指着狗日天,“他把‘用屁股排泄’这个动作,在训练集(过去的四十九天里)练得太他妈熟了,甚至连放屁的声调都背下来了。结果现在换了测试集(醒过来之后),他就死脑筋,只认这一种方法!哪怕他肚子里没屎,他也要强行用嘴吃进去,然后用屁股放出来!”
话音刚落,狗日天突然暴起,冲着林弘就扑了过来,嘴里大喊:“嘉豪!嘉豪!吃我一根九转大肠!”
林弘吓得拔腿就跑。
“长老们顶住!这老头脑子里的权重已经全卡在局部最优解(Local Minima)了!得给他找点‘动量’(Momentum),不然他会一直在这个死胡同里出不来!”
大长老一脸绝望:“什么叫他妈的老局部最优解和动量啊!!”
(第三章完)