計(jì)遇上時(shí)間序列:不確定性量化與自適應(yīng)預(yù)測實(shí)戰(zhàn))
1. 項(xiàng)目概述1.1 核心需求解析先說說這個(gè)標(biāo)題背后到底在講什么事兒。貝葉斯統(tǒng)計(jì)這名字聽著學(xué)術(shù)但說白了就是一套用數(shù)據(jù)更新認(rèn)知的邏輯框架。而時(shí)間序列分析是另一塊老牌領(lǐng)域?qū)iT處理按時(shí)間順序排列的數(shù)據(jù)比如每天的氣溫、每小時(shí)的電價(jià)、每分鐘的服務(wù)器請求量。把這兩個(gè)東西結(jié)合在一起核心訴求非常明確讓模型在數(shù)據(jù)量有限的情況下還能保持準(zhǔn)確的預(yù)測同時(shí)當(dāng)數(shù)據(jù)分布發(fā)生變化時(shí)模型能快速自適應(yīng)而不是一套參數(shù)打天下。我之所以對這個(gè)組合特別關(guān)注是因?yàn)樵趯?shí)際業(yè)務(wù)里絕大多數(shù)機(jī)器學(xué)習(xí)團(tuán)隊(duì)都在用傳統(tǒng)方法做時(shí)間序列預(yù)測比如ARIMA、Prophet、LightGBM那一套。這些方法各有各的合理之處但共同的問題是要么對不確定性估計(jì)不足要么在數(shù)據(jù)分布漂移時(shí)反應(yīng)遲鈍。貝葉斯方法恰恰能補(bǔ)上這兩個(gè)短板。1.2 適合誰參考這篇內(nèi)容主要面向幾類人群正在做銷量預(yù)測、流量預(yù)測、設(shè)備指標(biāo)監(jiān)控的算法工程師手上的模型精度還行但總感覺不夠穩(wěn)。想從頻率派統(tǒng)計(jì)切換到貝葉斯思維的研究者或在讀學(xué)生需要一個(gè)清晰的切入點(diǎn)。在資源受限環(huán)境下做時(shí)間序列建模的人比如邊緣設(shè)備上的預(yù)測任務(wù)數(shù)據(jù)量小、算力有限傳統(tǒng)深度學(xué)習(xí)模型跑不動貝葉斯方法反而有優(yōu)勢。2. 為什么貝葉斯和時(shí)間序列能碰撞出火花2.1 頻率派方法的天花板傳統(tǒng)的時(shí)間序列方法比如帶季節(jié)項(xiàng)分解的Prophet或者差分自回歸移動平均模型ARIMA本質(zhì)上屬于頻率派統(tǒng)計(jì)。它們把模型參數(shù)當(dāng)作固定的未知常數(shù)通過極大似然估計(jì)去找一組最優(yōu)參數(shù)。這個(gè)流程在數(shù)據(jù)量充足、數(shù)據(jù)生成過程穩(wěn)定的場景下表現(xiàn)不錯(cuò)。但有一個(gè)問題在高波動場景下特別致命模型輸出的只是點(diǎn)預(yù)測值。比如你預(yù)測明天某一產(chǎn)品銷量是347件但完全沒有告訴你這個(gè)預(yù)測有多大的不確定性。很多人在實(shí)際工作中會直接把這個(gè)數(shù)字當(dāng)確定值用而一旦真實(shí)值偏離很大復(fù)盤時(shí)才發(fā)現(xiàn)無法解釋偏差來源。另一個(gè)痛點(diǎn)是參數(shù)固定之后模型很難在線更新。為了適應(yīng)新的趨勢你必須重跑一遍訓(xùn)練流程。如果每天跑一次還好但如果是每小時(shí)甚至每分鐘的數(shù)據(jù)呢訓(xùn)練成本和延遲都不可接受。2.2 貝葉斯方法提供了什么貝葉斯方法換了個(gè)思路參數(shù)不是固定常數(shù)而是服從某個(gè)分布的隨機(jī)變量。我們用先驗(yàn)分布表達(dá)對參數(shù)的最初認(rèn)知然后通過觀測數(shù)據(jù)計(jì)算后驗(yàn)分布更新認(rèn)知。這個(gè)差異帶來了三個(gè)直接的好處。不確定性量化是最大的收獲。預(yù)測結(jié)果不再是347件這種單點(diǎn)估計(jì)而是一個(gè)完整分布比如95%置信區(qū)間為[312, 385]件。對于需要做庫存決策、風(fēng)險(xiǎn)管理的業(yè)務(wù)這個(gè)信息量完全不是同一個(gè)級別。在線更新能力也天然具備。每來一條新數(shù)據(jù)就把后驗(yàn)分布當(dāng)作新的先驗(yàn)分布繼續(xù)做貝葉斯更新。這個(gè)過程不需要重跑整個(gè)訓(xùn)練集計(jì)算量小適合流式數(shù)據(jù)場景。正則化效果是意外之喜。先驗(yàn)起著約束參數(shù)空間的作用在數(shù)據(jù)量不足時(shí)后驗(yàn)估計(jì)不會像頻率派那樣過度擬合。打個(gè)比方頻率派像是只憑最近幾天情況做判斷的人而貝葉斯會結(jié)合歷史規(guī)律和近期數(shù)據(jù)判斷更穩(wěn)健。2.3 結(jié)合后的模型有哪些典型形態(tài)把貝葉斯思維引入時(shí)間序列最經(jīng)典的幾類結(jié)構(gòu)是一是貝葉斯?fàn)顟B(tài)空間模型。狀態(tài)空間把觀測方程和狀態(tài)方程分開狀態(tài)變量隨時(shí)間演化而每個(gè)時(shí)間步的更新都可以用貝葉斯濾波處理??柭鼮V波加高斯假設(shè)在某些條件下可以得到解析解計(jì)算效率極高。二是貝葉斯結(jié)構(gòu)時(shí)間序列模型。它把時(shí)間序列拆解成趨勢項(xiàng)、季節(jié)項(xiàng)、回歸項(xiàng)的組合每個(gè)組件都賦予先驗(yàn)分布然后通過馬爾可夫鏈蒙特卡洛或變分推斷逼近后驗(yàn)。這類模型的解釋性很強(qiáng)適合需要向業(yè)務(wù)方說明預(yù)測理由的場景。三是貝葉斯神經(jīng)網(wǎng)絡(luò)結(jié)合時(shí)間序列。用深度網(wǎng)絡(luò)提取特征但最后一層換成貝葉斯線性層或者全貝葉斯網(wǎng)絡(luò)。適合數(shù)據(jù)規(guī)模較大但仍需要不確定性估計(jì)的場景只是計(jì)算成本確實(shí)高不少。3. 核心實(shí)現(xiàn)細(xì)節(jié)與實(shí)操要點(diǎn)3.1 數(shù)據(jù)準(zhǔn)備階段的特殊要求貝葉斯模型的輸入數(shù)據(jù)準(zhǔn)備和傳統(tǒng)機(jī)器學(xué)習(xí)相比有一些特殊之處。缺失值處理要更謹(jǐn)慎。傳統(tǒng)模型通??梢灾苯犹畛渚祷蛘哂貌逯捣ǖ惾~斯模型把先驗(yàn)分布和數(shù)據(jù)結(jié)合起來填充邏輯本質(zhì)上也在影響后驗(yàn)。我的做法是先用簡單的線性插值填一遍然后把缺失標(biāo)志變量也作為協(xié)變量放進(jìn)模型讓模型自己學(xué)習(xí)缺失模式是否對預(yù)測有影響。歸一化方式要分兩種場景區(qū)別對待。如果是連續(xù)型數(shù)據(jù)且噪聲接近高斯分布就直接做z-score標(biāo)準(zhǔn)化。如果是計(jì)數(shù)型數(shù)據(jù)比如銷售量、點(diǎn)擊量最好用對數(shù)變換或者在模型里直接指定泊松分布族而不是強(qiáng)行歸一化。特征構(gòu)造方面時(shí)間特征比靜態(tài)特征更重要。周幾、是否是節(jié)假日、距離上一個(gè)節(jié)假日的天數(shù)這些在貝葉斯結(jié)構(gòu)時(shí)間序列里都是高價(jià)值特征。原因在于先驗(yàn)分布的設(shè)定很多時(shí)候就是圍繞這些周期性做初始化。3.2 先驗(yàn)選擇的經(jīng)驗(yàn)法則先驗(yàn)的設(shè)定是貝葉斯建模中最容易讓人糾結(jié)的環(huán)節(jié)也是新手最容易犯錯(cuò)的點(diǎn)。一個(gè)實(shí)用原則是先驗(yàn)寧可弱一點(diǎn)不可強(qiáng)到壓制數(shù)據(jù)信號。在時(shí)間序列場景我對趨勢項(xiàng)常用隨機(jī)游走先驗(yàn)對季節(jié)項(xiàng)用平滑先驗(yàn)對回歸系數(shù)用標(biāo)準(zhǔn)正態(tài)或者寬松的正態(tài)先驗(yàn)。這些選法的出發(fā)點(diǎn)是趨勢項(xiàng)本身具有很強(qiáng)的不可預(yù)測性如果把先驗(yàn)設(shè)得太緊模型會對歷史數(shù)據(jù)過度自信一旦出現(xiàn)結(jié)構(gòu)突變預(yù)測結(jié)果會滯后好幾步才跟上實(shí)際走勢。有一個(gè)繞開敏感參數(shù)的小技巧是用標(biāo)準(zhǔn)化的數(shù)據(jù)做預(yù)建模把問題轉(zhuǎn)換成模型參數(shù)的相對幅度。在標(biāo)準(zhǔn)化條件下設(shè)置第一版先驗(yàn)如果后續(xù)直接用原始數(shù)據(jù)訓(xùn)練再按原始數(shù)據(jù)尺度做放縮這樣會穩(wěn)很多。先驗(yàn)敏感性分析是一個(gè)值得一做的穩(wěn)定性驗(yàn)證。操作方法是把先驗(yàn)方差調(diào)大和調(diào)小各一檔觀察后驗(yàn)結(jié)果的變化幅度。如果變化小說明數(shù)據(jù)信息足夠強(qiáng)先驗(yàn)的影響被壓制了如果變化大說明數(shù)據(jù)量不足此時(shí)應(yīng)該先收集更多數(shù)據(jù)而不是試圖通過調(diào)先驗(yàn)來解決所有問題。3.3 推斷算法選擇貝葉斯推斷依賴采樣或近似算法核心選擇和場景強(qiáng)相關(guān)。馬爾可夫鏈蒙特卡洛適合小數(shù)據(jù)或低維度問題。經(jīng)典的哈密頓蒙特卡洛采樣器在參數(shù)維度不是特別高時(shí)效果很好收斂速度可以接受。我對幾千個(gè)樣本、十來個(gè)參數(shù)的問題是直接用MCMC做的結(jié)果穩(wěn)定性比變分方法好不少。變分推斷的場景是數(shù)據(jù)量較大、實(shí)時(shí)性要求較高的線上預(yù)測。變分推斷用優(yōu)化代替采樣速度提升明顯但代價(jià)是近似誤差。需要特別提醒的是變分推斷對初始值比較敏感實(shí)踐中最好跑幾組不同初始值做對比。如果狀態(tài)空間模型特別是線性的場景可以直接用卡爾曼濾波做精確推斷復(fù)雜度是O(T)級別非常適合在線預(yù)測。配合平滑算法還能得到整條狀態(tài)序列的后驗(yàn)分布。這套方案是我在有實(shí)時(shí)預(yù)測需求時(shí)的首選。3.4 實(shí)操中的完整流程我把實(shí)際操作流程整理成五步每一步都有明確的產(chǎn)出物。第一步是數(shù)據(jù)清洗與平滑檢查。觀察時(shí)間序列的趨勢和季節(jié)性識別異常點(diǎn)。異常點(diǎn)不是簡單刪掉就完事要記錄異常點(diǎn)的位置和可能的背景原因這些信息在后驗(yàn)分析里能幫助你判斷模型是否被異常值帶偏了。第二步是構(gòu)造訓(xùn)練集和測試集。穩(wěn)健的做法是時(shí)序切分比如用前80%做訓(xùn)練后20%做驗(yàn)證并且驗(yàn)證集中盡量包含完整的季節(jié)周期避免只截到某一季度的片段導(dǎo)致評估偏差。第三步是設(shè)定模型結(jié)構(gòu)。確定趨勢項(xiàng)是線性還是非線性季節(jié)性周期是多少周、月、年協(xié)變量有哪些。最開始建議先跑一個(gè)不加協(xié)變量的基準(zhǔn)模型后續(xù)加變量時(shí)才能判斷增益來源。第四步是設(shè)置先驗(yàn)并運(yùn)行推斷。先弱勢先驗(yàn)跑一輪觀察后驗(yàn)分布的形狀再根據(jù)結(jié)果適度收緊或放寬。第五步是評估和迭代。貝葉斯模型要有專門的評估指標(biāo)傳統(tǒng)的RMSE、MAE當(dāng)然要看但不確定性校準(zhǔn)度更重要。所謂校準(zhǔn)度就是實(shí)際落在預(yù)測區(qū)間內(nèi)的比例是否接近設(shè)定的置信水平。如果設(shè)了90%置信區(qū)間結(jié)果只有70%的真實(shí)值落在區(qū)間內(nèi)說明模型過于自信后驗(yàn)可能過窄。3.5 核心模型表達(dá)式參考這里給出一個(gè)貝葉斯結(jié)構(gòu)時(shí)間序列的基礎(chǔ)代碼結(jié)構(gòu)方便快速上手。4. 實(shí)操過程與核心環(huán)節(jié)實(shí)現(xiàn)4.1 環(huán)境準(zhǔn)備與工具選型搭建環(huán)境這一步相當(dāng)友好不涉及特別冷門的工具。我這里用的是Python生態(tài)核心庫包括PyMC、用于數(shù)據(jù)處理的Pandas和NumPy、做圖表用的Matplotlib。安裝方面有個(gè)版本兼容的小坑。PyMC在較新版本里去掉了舊版的某些接口比如部分采樣器參數(shù)被改名了如果你的環(huán)境里同時(shí)裝了舊版的NavPy甚至?xí)霈F(xiàn)函數(shù)簽名沖突。推薦的做法是新建一個(gè)虛擬環(huán)境隔離再裝最新版的PyMC和相關(guān)依賴。硬件要求方面CPU跑幾千到幾萬樣本的MCMC是完全可以接受的真正到百萬級樣本需求才值得上GPU。如果只是做實(shí)驗(yàn)驗(yàn)證普通筆記本就能跑動。4.2 一個(gè)具體案例的數(shù)據(jù)說明用一個(gè)模擬的業(yè)務(wù)場景來演示比較好理解某電商平臺每日訂單量預(yù)測。數(shù)據(jù)包括每日訂單數(shù)、當(dāng)天是否為促銷日、距離上次促銷的天數(shù)時(shí)間跨度兩年。這里有一個(gè)真實(shí)的難點(diǎn)促銷日的訂單量和平日明顯不是一個(gè)分布模板模型很難一次到位。貝葉斯方法處理這類多模式數(shù)據(jù)的優(yōu)勢在于協(xié)變量可以直接進(jìn)入均值結(jié)構(gòu)而不確定性又可以按日調(diào)整。我們用前14個(gè)月的數(shù)據(jù)做訓(xùn)練后10個(gè)月做驗(yàn)證。驗(yàn)證周期涵蓋了雙十一、618這類大型促銷活動目標(biāo)是把促銷期的預(yù)測區(qū)間校準(zhǔn)度調(diào)到90%以上。4.3 模型構(gòu)建步驟第一步是定義似然分布。訂單量是計(jì)數(shù)數(shù)據(jù)且波動較大用負(fù)二項(xiàng)分布比泊松分布更適合因?yàn)樨?fù)二項(xiàng)自帶一個(gè)過離散參數(shù)能描述方差大于均值的情況。第二步是定義線性預(yù)測器。預(yù)測器的結(jié)構(gòu)是趨勢項(xiàng)加季節(jié)項(xiàng)加促銷影響每個(gè)部分都加先驗(yàn)。趨勢項(xiàng)用一階隨機(jī)游走季節(jié)項(xiàng)用一組傅里葉特征周期為7天促銷影響用一個(gè)階躍函數(shù)。這里需要補(bǔ)充一點(diǎn)技術(shù)細(xì)節(jié)。傅里葉特征就是把周期信號分解成一組正弦和余弦的組合以捕捉季節(jié)性重復(fù)模式只要設(shè)定周期和階數(shù)就能生成多組基函數(shù)進(jìn)入回歸模型。第三步是設(shè)定先驗(yàn)的參數(shù)。趨勢項(xiàng)的步長用半正態(tài)分布約束其波動幅度促銷系數(shù)用正態(tài)分布過離散參數(shù)用指數(shù)分布。第四步是采后驗(yàn)。用最大后驗(yàn)估計(jì)找到初始點(diǎn)之后再做2000步的調(diào)參預(yù)熱和5000步的采樣兩個(gè)鏈并行方便后續(xù)做收斂診斷。4.4 結(jié)果展示與解讀后驗(yàn)結(jié)果中促銷系數(shù)的中位數(shù)是正數(shù)且在置信區(qū)間內(nèi)不包含零說明促銷項(xiàng)對訂單量有顯著提升效應(yīng)。不確定性區(qū)間方面促銷期的預(yù)測區(qū)間明顯變寬而非促銷期的區(qū)間相對較窄。這說明模型確實(shí)學(xué)習(xí)到了數(shù)據(jù)的內(nèi)在波動模式不是簡單套一層固定噪聲。這個(gè)結(jié)果還有一個(gè)可解釋的亮點(diǎn)后驗(yàn)分布能告訴你趨勢項(xiàng)的日增長率大約是多少比如日復(fù)合增長率均值0.15%置信區(qū)間在0.1%到0.2%之間。這種粒度傳統(tǒng)時(shí)間序列模型一般不敢直接給。4.5 評估指標(biāo)的合理性討論只盯著RMSE評價(jià)貝葉斯模型會有偏差。因?yàn)樨惾~斯模型輸出的本身是分布預(yù)測精度只是其中一層。我一般同時(shí)看三個(gè)指標(biāo)點(diǎn)預(yù)測精度、區(qū)間覆蓋率、區(qū)間寬度。點(diǎn)預(yù)測精度主要參考RMSE和MAE用來判斷猜得準(zhǔn)不準(zhǔn)區(qū)間覆蓋率是看真實(shí)值落在預(yù)測區(qū)間內(nèi)的比例區(qū)間寬度是看區(qū)間是否過窄或過寬綜合判斷不確定性估計(jì)的合理性。如果RMSE很好但覆蓋率很低說明模型只是在打點(diǎn)預(yù)測賭運(yùn)氣不確定性估計(jì)并沒有可信性這種模型在風(fēng)控場景里等于沒有輸出。在實(shí)操中遇到覆蓋率不佳的情況可以考慮調(diào)整噪聲項(xiàng)的先驗(yàn)或者改用學(xué)生t分布作為似然函數(shù)增加厚尾特性。5. 常見問題與排查技巧實(shí)錄5.1 收斂診斷失敗典型表現(xiàn)是MCMC采樣結(jié)束后診斷報(bào)告里顯示R-hat值大于1.1或者有效樣本量偏小。排查順序一般是先檢查先驗(yàn)是否過于寬泛導(dǎo)致后驗(yàn)分布多峰再檢查模型參數(shù)化方式看是否存在高度相關(guān)的參數(shù)組合讓采樣器在參數(shù)空間中推進(jìn)效率降低。一個(gè)有效改進(jìn)是重參數(shù)化。比如把隨機(jī)游走趨勢實(shí)現(xiàn)為非中心化的形式把狀態(tài)變量改寫成基礎(chǔ)分布乘以尺度參數(shù)采樣效率會有明顯提升。這個(gè)優(yōu)化方式很值得記住因?yàn)樵趶?fù)雜時(shí)間序列模型里狀態(tài)變量之間的相關(guān)結(jié)構(gòu)幾乎必然導(dǎo)致采樣器混疊性能不佳。5.2 預(yù)測區(qū)間過寬區(qū)間過寬說明模型對不確定性過于保守普遍情況是噪聲項(xiàng)的方差過大。解決方案之一是把似然分布從正態(tài)換成學(xué)生t分布并給學(xué)生t分布的自由度設(shè)一個(gè)下限這樣既保留厚尾擬合能力又不至于過度夸大尾部風(fēng)險(xiǎn)。還有一種情況是趨勢項(xiàng)先驗(yàn)的步長方差設(shè)置偏大模型幾乎在完全依賴噪聲來擬合數(shù)據(jù)。此時(shí)需要把先驗(yàn)調(diào)緊或者給趨勢項(xiàng)加一個(gè)均值回歸項(xiàng)避免它跑得太自由。5.3 在線更新延遲如果要上線做實(shí)時(shí)預(yù)測每次批訓(xùn)練整段歷史顯然是低效的。我的做法是設(shè)定一個(gè)滑動窗口每次只更新最近若干天的數(shù)據(jù)另外每過一段時(shí)間做一次全局重?cái)M合來校準(zhǔn)模型。這種方案的關(guān)鍵在于狀態(tài)變量的后驗(yàn)分布會被傳遞到下一步的預(yù)測中不會因?yàn)橹蝗【植看翱诙鴣G失歷史信息。實(shí)際使用中我用滑動窗口配合定時(shí)全量校準(zhǔn)能夠把單次更新耗時(shí)控制在毫秒級。5.4 數(shù)據(jù)分布突變業(yè)務(wù)場景中經(jīng)常遇到政策調(diào)整、突發(fā)新聞、系統(tǒng)故障等因素導(dǎo)致數(shù)據(jù)分布突變。貝葉斯模型的抗突變能力有限因?yàn)樗举|(zhì)上還是假設(shè)數(shù)據(jù)生成過程相對平穩(wěn)。一個(gè)在實(shí)際項(xiàng)目里效果不錯(cuò)的做法是在模型中增加一個(gè)變化點(diǎn)檢測組件。變化點(diǎn)前后的狀態(tài)變量允許取不同水平后驗(yàn)推斷時(shí)模型會自動判斷變化點(diǎn)位置和跳躍幅度。這個(gè)做法在歷史數(shù)據(jù)分析里算是一個(gè)更靈活的結(jié)構(gòu)比人為干預(yù)閾值要干凈得多。6. 實(shí)操建議與經(jīng)驗(yàn)補(bǔ)充6.1 從傳統(tǒng)模型切換到貝葉斯的節(jié)奏建議建議不要直接放棄傳統(tǒng)模型一步跨到全貝葉斯。比較穩(wěn)妥的節(jié)奏是先用傳統(tǒng)模型跑通業(yè)務(wù)鏈路看懂?dāng)?shù)據(jù)的基線水平和波動規(guī)律然后用貝葉斯方法在同樣的數(shù)據(jù)集上做對比實(shí)驗(yàn)。通常對比三個(gè)維度點(diǎn)預(yù)測精度是否持平或略有提升、區(qū)間覆蓋率是否有明顯改善、訓(xùn)練和推理時(shí)間是否在自己的可接受范圍內(nèi)。多數(shù)場景下貝葉斯方法不會讓點(diǎn)預(yù)測精度大幅提升但區(qū)間估計(jì)的實(shí)戰(zhàn)價(jià)值非常明顯。如果只關(guān)注點(diǎn)預(yù)測數(shù)字可能覺得貝葉斯方法不劃算這是很多項(xiàng)目中途夭折的原因。6.2 算力受限時(shí)的折中方案算力受限的情況下全量貝葉斯推斷不可行時(shí)可以考慮準(zhǔn)貝葉斯策略用點(diǎn)估計(jì)跑主流程只在最后幾層或者特定噪聲參數(shù)上做后驗(yàn)采樣。這種方式可以保留大部分解釋能力和穩(wěn)定性計(jì)算量只增加一小部分。另外可以考慮用拉普拉斯近似替代MCMC采樣。拉普拉斯近似通過求最大后驗(yàn)估計(jì)處的二次近似來逼近后驗(yàn)分布速度快誤差在低維問題上可以接受。當(dāng)參數(shù)維度較高或后驗(yàn)明顯非高斯時(shí)這個(gè)近似質(zhì)量會下滑不建議強(qiáng)行使用。6.3 推薦先掌握的三件事對于剛接觸這個(gè)方向的朋友不建議一上來就啃復(fù)雜的狀態(tài)空間模型也不建議直接套用貝葉斯神經(jīng)網(wǎng)絡(luò)。建議按以下順序理解先把先驗(yàn)分布理解透徹搞清楚均值、方差、厚尾這三個(gè)概念對后驗(yàn)分布的影響。再用簡單的一元線性回歸數(shù)據(jù)做貝葉斯版本觀察后驗(yàn)的不確定性如何隨樣本量變化。最后把時(shí)間維度加入模型用結(jié)構(gòu)時(shí)間序列的思路拆解趨勢、季節(jié)、噪聲三類成分。這三步走完再去看變分推斷或者M(jìn)CMC的原理細(xì)節(jié)會順暢不少。直接跳到復(fù)雜模型會在報(bào)錯(cuò)和調(diào)參上浪費(fèi)大量時(shí)間。6.4 容易踩空的一個(gè)坑最后重點(diǎn)提醒一個(gè)容易踩的坑貝葉斯模型的時(shí)間復(fù)雜度遠(yuǎn)高于傳統(tǒng)模型這在團(tuán)隊(duì)協(xié)作中很容易被誤解為性能差。傳統(tǒng)模型訓(xùn)練耗時(shí)可能幾分鐘貝葉斯采樣耗時(shí)可能幾十分鐘但兩者提供的信息不在一個(gè)層次上。傳統(tǒng)模型給一個(gè)點(diǎn)貝葉斯模型給一套預(yù)測結(jié)果的完整置信分布。你需要在項(xiàng)目初期就與協(xié)作方確認(rèn)是否真的需要不確定性輸出。如果只需要一個(gè)粗糙的點(diǎn)預(yù)測貝葉斯方法大概率不是最優(yōu)選擇。如果你已經(jīng)明確需要不確定性量化和對動態(tài)變化進(jìn)行自適應(yīng)建模那么投入產(chǎn)出比是值得的。我的個(gè)人經(jīng)驗(yàn)是在庫存管理、流量調(diào)度、風(fēng)險(xiǎn)預(yù)警這類決策場景里貝葉斯方法帶來的收益遠(yuǎn)超訓(xùn)練成本的增加。這個(gè)技術(shù)方向目前仍有大量可以深挖的細(xì)節(jié)對于做工程和做研究的人來說都值得持續(xù)跟進(jìn)。