習(xí)的入侵檢測(cè)系統(tǒng)如何克服災(zāi)難性遺忘)
1. 項(xiàng)目概述當(dāng)入侵檢測(cè)遇上“活到老學(xué)到老”的神經(jīng)網(wǎng)絡(luò)最近在復(fù)現(xiàn)和消化一篇挺有意思的論文標(biāo)題是《T-DFNN: An Incremental Learning Algorithm for Intrusion Detection Systems》。簡(jiǎn)單來說它解決的是網(wǎng)絡(luò)安全領(lǐng)域一個(gè)經(jīng)典的老大難問題如何讓一個(gè)已經(jīng)訓(xùn)練好的入侵檢測(cè)模型在不遺忘舊知識(shí)的前提下持續(xù)學(xué)習(xí)新出現(xiàn)的攻擊模式這就像教一個(gè)已經(jīng)畢業(yè)多年的安全專家學(xué)習(xí)最新的黑客技術(shù)你不能讓他把以前學(xué)的防火墻原理、病毒特征全忘了還得讓他高效掌握新技能。T-DFNN或者說“任務(wù)感知的深度前饋神經(jīng)網(wǎng)絡(luò)”就是論文作者給出的一份高分答卷。傳統(tǒng)的入侵檢測(cè)系統(tǒng)IDS尤其是基于機(jī)器學(xué)習(xí)的往往采用“靜態(tài)”模型。我們收集一段時(shí)間內(nèi)的網(wǎng)絡(luò)流量數(shù)據(jù)包含正常和攻擊流量精心標(biāo)注然后訓(xùn)練出一個(gè)模型并部署。一旦部署模型參數(shù)就固定了。然而網(wǎng)絡(luò)攻擊是動(dòng)態(tài)演化的每天都有新的漏洞利用方式、新的惡意軟件變種出現(xiàn)。用老模型去檢測(cè)新攻擊效果會(huì)急劇下降。重新訓(xùn)練代價(jià)巨大——需要把所有歷史數(shù)據(jù)可能TB級(jí)別和新數(shù)據(jù)混在一起重新訓(xùn)練耗時(shí)耗力且模型服務(wù)會(huì)中斷。增量學(xué)習(xí)或者說持續(xù)學(xué)習(xí)、終身學(xué)習(xí)就是為了解決這個(gè)“災(zāi)難性遺忘”問題而生的。T-DFNN這篇論文的核心就是設(shè)計(jì)了一種針對(duì)深度前饋神經(jīng)網(wǎng)絡(luò)DFNN的增量學(xué)習(xí)機(jī)制使其能夠在不重放舊數(shù)據(jù)的情況下通過動(dòng)態(tài)調(diào)整網(wǎng)絡(luò)結(jié)構(gòu)和對(duì)參數(shù)施加約束來平衡“記住舊任務(wù)”和“學(xué)習(xí)新任務(wù)”之間的關(guān)系。這對(duì)于需要7x24小時(shí)不間斷運(yùn)行、且威脅環(huán)境瞬息萬變的入侵檢測(cè)場(chǎng)景來說具有非常現(xiàn)實(shí)的工程價(jià)值。無論你是安全運(yùn)維工程師、算法研究員還是對(duì)自適應(yīng)系統(tǒng)感興趣的學(xué)生理解這套思路都能為你打開一扇新的大門。2. 核心思路拆解T-DFNN如何實(shí)現(xiàn)“不忘本”的進(jìn)化要理解T-DFNN我們得先拆解它的兩個(gè)核心部分“T”Task-aware任務(wù)感知和“DFNN”Deep Feedforward Neural Network深度前饋神經(jīng)網(wǎng)絡(luò)的增量學(xué)習(xí)改造。它不是一個(gè)憑空創(chuàng)造的全新網(wǎng)絡(luò)而是在經(jīng)典DFNN骨架上施加了一套精巧的“記憶保護(hù)”和“能力擴(kuò)展”機(jī)制。2.1 問題根源深度神經(jīng)網(wǎng)絡(luò)的“災(zāi)難性遺忘”為什么普通的神經(jīng)網(wǎng)絡(luò)換個(gè)任務(wù)就“失憶”根源在于基于梯度的優(yōu)化過程。當(dāng)我們用新任務(wù)的數(shù)據(jù)比如新型DDoS攻擊流量去訓(xùn)練一個(gè)已收斂的舊模型時(shí)反向傳播算法會(huì)為了最小化新任務(wù)的損失大幅度地更新網(wǎng)絡(luò)所有權(quán)重參數(shù)。這些參數(shù)中編碼了舊任務(wù)比如端口掃描、SQL注入檢測(cè)的知識(shí)。權(quán)重的劇烈改變直接導(dǎo)致舊任務(wù)上的性能崩潰。你可以想象一個(gè)已經(jīng)調(diào)好音的小提琴為了拉一首新曲子你把所有弦的松緊都胡亂擰了一遍結(jié)果就是新舊曲子都拉不出來了。2.2 T-DFNN的應(yīng)對(duì)之道結(jié)構(gòu)動(dòng)態(tài)化與參數(shù)固化論文提出的方法可以概括為“固定重要的擴(kuò)展需要的”。1. 識(shí)別并保護(hù)重要參數(shù)“固定重要的”這是解決遺忘問題的關(guān)鍵。T-DFNN借鑒了彈性權(quán)重鞏固的思想。對(duì)于舊任務(wù)它會(huì)在學(xué)習(xí)新任務(wù)前評(píng)估網(wǎng)絡(luò)中每個(gè)參數(shù)對(duì)于舊任務(wù)的重要性。如何評(píng)估一個(gè)常用且有效的方法是計(jì)算參數(shù)在舊任務(wù)損失函數(shù)上的費(fèi)舍爾信息矩陣對(duì)角近似或者更直觀地計(jì)算該參數(shù)梯度平方的指數(shù)移動(dòng)平均。重要性高的參數(shù)意味著它對(duì)舊任務(wù)的預(yù)測(cè)結(jié)果影響巨大是“核心記憶單元”。在開始學(xué)習(xí)新任務(wù)時(shí)T-DFNN會(huì)在損失函數(shù)中增加一個(gè)彈性懲罰項(xiàng)。這個(gè)懲罰項(xiàng)會(huì)約束那些重要性高的參數(shù)防止它們?cè)谟?xùn)練新任務(wù)時(shí)發(fā)生大的偏移。懲罰的強(qiáng)度與該參數(shù)的重要性成正比。重要性越高懲罰越大“鎖”得越緊。這就好比給重要的記憶神經(jīng)元加了一個(gè)“保護(hù)罩”允許它們微調(diào)以適應(yīng)新環(huán)境但禁止“傷筋動(dòng)骨”的改變。2. 動(dòng)態(tài)擴(kuò)展網(wǎng)絡(luò)容量“擴(kuò)展需要的”如果僅僅固定舊參數(shù)模型的整體學(xué)習(xí)能力可能會(huì)受限尤其是當(dāng)新舊任務(wù)差異較大時(shí)。為了給新知識(shí)留出足夠的“存儲(chǔ)空間”T-DFNN采用了動(dòng)態(tài)網(wǎng)絡(luò)結(jié)構(gòu)。當(dāng)新任務(wù)的數(shù)據(jù)到來時(shí)算法會(huì)評(píng)估現(xiàn)有網(wǎng)絡(luò)對(duì)新任務(wù)的學(xué)習(xí)難度。如果判斷出現(xiàn)有網(wǎng)絡(luò)容量不足例如驗(yàn)證集損失下降很慢或準(zhǔn)確率 plateau就會(huì)自動(dòng)在網(wǎng)絡(luò)的隱藏層添加新的神經(jīng)元節(jié)點(diǎn)。這個(gè)擴(kuò)展不是隨意的。新添加的神經(jīng)元會(huì)與現(xiàn)有網(wǎng)絡(luò)連接但其與舊神經(jīng)元連接的權(quán)重在初始階段會(huì)被謹(jǐn)慎地初始化例如接近零以避免對(duì)已穩(wěn)定的舊任務(wù)路徑造成突然干擾。新神經(jīng)元主要專注于捕捉新任務(wù)中的特征模式。隨著訓(xùn)練進(jìn)行新神經(jīng)元以及與它們相連的權(quán)重逐漸承擔(dān)起對(duì)新任務(wù)的建模職責(zé)。這就像給大腦增加了新的專用腦區(qū)來處理新技能而不去重構(gòu)主管舊技能的腦區(qū)。3. 任務(wù)感知Task-aware路由“T”的另一個(gè)體現(xiàn)是任務(wù)標(biāo)識(shí)符。在增量學(xué)習(xí)場(chǎng)景中模型需要知道當(dāng)前處理的數(shù)據(jù)屬于哪個(gè)任務(wù)或哪個(gè)任務(wù)分布。在推理檢測(cè)階段T-DFNN可以利用一個(gè)輕量級(jí)的任務(wù)分類器或者通過分析輸入數(shù)據(jù)的特性來激活相應(yīng)的網(wǎng)絡(luò)路徑更側(cè)重于使用與特定任務(wù)關(guān)聯(lián)緊密的神經(jīng)元子集。這進(jìn)一步減少了不同任務(wù)預(yù)測(cè)之間的干擾。3. 算法核心細(xì)節(jié)與實(shí)現(xiàn)要點(diǎn)理解了宏觀思路我們深入到算法實(shí)現(xiàn)的關(guān)鍵細(xì)節(jié)。這里我會(huì)結(jié)合論文中的描述和實(shí)際工程實(shí)現(xiàn)的常見選擇把那些公式背后的操作邏輯講清楚。3.1 重要性權(quán)重計(jì)算如何量化參數(shù)的“重要性”這是整個(gè)方法的基石。假設(shè)我們已經(jīng)用任務(wù)A的數(shù)據(jù)訓(xùn)練好了一個(gè)網(wǎng)絡(luò)其參數(shù)為 θ。現(xiàn)在任務(wù)B的數(shù)據(jù)到來。常用方法一基于梯度的指數(shù)移動(dòng)平均EMA對(duì)于每個(gè)參數(shù) θ_i在任務(wù)A的訓(xùn)練過程中或訓(xùn)練結(jié)束后用一個(gè)保留的驗(yàn)證集我們記錄其梯度平方。重要性 ω_i 可以通過計(jì)算梯度平方的指數(shù)移動(dòng)平均來估計(jì)ω_i λ * ω_i (1 - λ) * (?_{θ_i} L_A)^2其中L_A是任務(wù)A的損失函數(shù)λ是衰減因子如0.95。梯度平方越大說明損失函數(shù)對(duì)該參數(shù)的變化越敏感該參數(shù)就越重要。常用方法二基于費(fèi)舍爾信息矩陣對(duì)角元費(fèi)舍爾信息矩陣F衡量了模型參數(shù)對(duì)數(shù)據(jù)分布的敏感度。其對(duì)角元F_i近似等于梯度平方的期望值。在實(shí)踐中我們可以在任務(wù)A的數(shù)據(jù)集上計(jì)算損失函數(shù)對(duì)每個(gè)參數(shù)梯度的平方然后取平均ω_i E_{x~D_A} [(?_{θ_i} log p(y|x; θ))^2]對(duì)于分類任務(wù)p(y|x; θ)是模型的預(yù)測(cè)概率分布。這個(gè)值計(jì)算起來比EMA稍貴但理論依據(jù)更堅(jiān)實(shí)。實(shí)操心得在入侵檢測(cè)的背景下網(wǎng)絡(luò)流量數(shù)據(jù)維度高、特征復(fù)雜。直接在全量參數(shù)上計(jì)算精確的重要性可能開銷很大。一個(gè)實(shí)用的技巧是分層抽樣計(jì)算。不必對(duì)每一批訓(xùn)練數(shù)據(jù)都計(jì)算全參數(shù)梯度可以定期例如每100個(gè)batch用一個(gè)小型驗(yàn)證集計(jì)算一次并更新重要性權(quán)重。對(duì)于卷積層或全連接層的權(quán)重可以按輸出通道或神經(jīng)元為單位進(jìn)行重要性聚合減少存儲(chǔ)和計(jì)算量。3.2 彈性懲罰項(xiàng)給損失函數(shù)戴上“緊箍咒”得到重要性權(quán)重ω后我們?cè)趯W(xué)習(xí)新任務(wù)B時(shí)修改總的損失函數(shù)L_total L_B(θ) μ * Σ_i (ω_i * (θ_i - θ_i^*)^2)其中L_B(θ)是新任務(wù)B的標(biāo)準(zhǔn)損失如交叉熵。θ_i^*是學(xué)習(xí)新任務(wù)前參數(shù)θ_i的初始值即舊任務(wù)收斂后的值。(θ_i - θ_i^*)^2是參數(shù)變化的平方即懲罰項(xiàng)。ω_i就是上面計(jì)算的重要性權(quán)重它作為懲罰系數(shù)。μ是一個(gè)超參數(shù)控制整體懲罰強(qiáng)度平衡“學(xué)習(xí)新知識(shí)”和“保留舊記憶”。這個(gè)公式的直觀解釋對(duì)于舊任務(wù)中非常重要的參數(shù)ω_i很大如果我們?cè)谛氯蝿?wù)訓(xùn)練中試圖改變它θ_i 偏離 θ_i^*就會(huì)招致巨大的懲罰迫使優(yōu)化器盡量保持其原值。對(duì)于不重要的參數(shù)ω_i很小懲罰很輕可以相對(duì)自由地調(diào)整以適應(yīng)新任務(wù)。3.3 動(dòng)態(tài)網(wǎng)絡(luò)擴(kuò)展何時(shí)以及如何添加神經(jīng)元這是T-DFNN區(qū)別于簡(jiǎn)單參數(shù)懲罰方法的關(guān)鍵。網(wǎng)絡(luò)不是一成不變的。觸發(fā)條件 論文中通常設(shè)定一個(gè)性能閾值。例如在用一個(gè)小的新任務(wù)驗(yàn)證集進(jìn)行初始訓(xùn)練若干輪后如果準(zhǔn)確率提升低于某個(gè)閾值或者損失下降停滯則觸發(fā)擴(kuò)展。更工程化的做法是監(jiān)控驗(yàn)證集上的損失曲線如果發(fā)現(xiàn)明顯進(jìn)入平臺(tái)期且早期學(xué)習(xí)率調(diào)整無效則判斷需要增加容量。擴(kuò)展策略選擇擴(kuò)展層通常選擇網(wǎng)絡(luò)中間的一個(gè)或幾個(gè)隱藏層進(jìn)行擴(kuò)展。選擇表征能力瓶頸的層例如梯度方差較大的層。初始化新參數(shù)假設(shè)在選定的層添加了K個(gè)新神經(jīng)元。新神經(jīng)元與前一層的連接權(quán)重采用較小的隨機(jī)初始化如Xavier/Glorot初始化但縮小一個(gè)尺度目的是讓新神經(jīng)元初始輸出很小避免對(duì)下游網(wǎng)絡(luò)造成沖擊。新神經(jīng)元與后一層的連接權(quán)重同樣小規(guī)模初始化。舊神經(jīng)元與新添加的后一層連接之間的權(quán)重初始化為零。這是關(guān)鍵技巧這確保了在擴(kuò)展的瞬間新增加的路徑對(duì)網(wǎng)絡(luò)的現(xiàn)有輸出沒有任何貢獻(xiàn)舊任務(wù)的性能得以完全保留。后續(xù)訓(xùn)練擴(kuò)展完成后繼續(xù)在新任務(wù)數(shù)據(jù)上訓(xùn)練整個(gè)網(wǎng)絡(luò)包括新舊參數(shù)。此時(shí)彈性懲罰項(xiàng)仍然作用于所有“舊”參數(shù)包括擴(kuò)展前就存在的參數(shù)而新添加的參數(shù)則不受舊任務(wù)懲罰項(xiàng)的約束可以自由學(xué)習(xí)新任務(wù)的特征。注意事項(xiàng)動(dòng)態(tài)擴(kuò)展雖然靈活但也帶來了模型體積會(huì)隨時(shí)間增長(zhǎng)的問題。在入侵檢測(cè)這種數(shù)據(jù)流可能永無止境的場(chǎng)景中需要設(shè)計(jì)“神經(jīng)元剪枝”或“合并”機(jī)制作為補(bǔ)充防止模型無限膨脹。例如可以定期評(píng)估神經(jīng)元的重要性將長(zhǎng)期閑置或功能冗余的神經(jīng)元合并或剔除。4. 在入侵檢測(cè)場(chǎng)景下的實(shí)操與調(diào)優(yōu)把T-DFNN算法應(yīng)用到真實(shí)的網(wǎng)絡(luò)入侵檢測(cè)中我們需要考慮一系列工程和領(lǐng)域適配問題。這里我以一個(gè)基于網(wǎng)絡(luò)流NetFlow或數(shù)據(jù)包有效載荷特征的檢測(cè)場(chǎng)景為例拆解實(shí)操步驟。4.1 數(shù)據(jù)預(yù)處理與任務(wù)劃分第一步特征工程IDS數(shù)據(jù)通常是結(jié)構(gòu)化特征流統(tǒng)計(jì)信息和/或非結(jié)構(gòu)化特征數(shù)據(jù)包字節(jié)序列。對(duì)于DFNN數(shù)值特征流量持續(xù)時(shí)間、包數(shù)量、字節(jié)數(shù)、每秒包數(shù)等需要標(biāo)準(zhǔn)化Z-score或歸一化Min-Max。類別特征協(xié)議類型、TCP標(biāo)志位組合等需要做獨(dú)熱編碼One-hot Encoding或嵌入Embedding。序列特征如果是基于payload的檢測(cè)可能需要先用CNN或RNN提取特征再將特征向量輸入DFNN。此時(shí)T-DFNN的DFNN部分可以看作是特征提取器之后的分類器。第二步任務(wù)定義與數(shù)據(jù)流模擬增量學(xué)習(xí)研究需要模擬連續(xù)的數(shù)據(jù)流。常見的做法有按時(shí)間劃分將整個(gè)數(shù)據(jù)集如CIC-IDS2017, NSL-KDD按周或月切片每個(gè)切片視為一個(gè)任務(wù)。早期任務(wù)包含舊攻擊類型如Smurf, Neptune后期任務(wù)加入新攻擊如Heartbleed exploit, Botnet。按攻擊類型劃分將攻擊類型分組每次引入一組新的攻擊類型作為一個(gè)新任務(wù)。這更能考驗(yàn)?zāi)P妥R(shí)別全新威脅的能力。4.2 模型構(gòu)建與訓(xùn)練流程假設(shè)我們使用一個(gè)具有3個(gè)隱藏層的DFNN作為基礎(chǔ)模型。初始訓(xùn)練任務(wù)1# 偽代碼示意 model DeepFeedForwardNN(input_dim, [256, 128, 64], output_dimnum_classes_task1) train(model, data_task1, labels_task1) save_initial_weights(model.parameters()) # 保存為 θ* calculate_importance(model, data_task1_val) # 計(jì)算重要性 ω增量學(xué)習(xí)任務(wù)2到來# 1. 加載舊模型和重要性權(quán)重 model load_model_from_task1() ω load_importance_from_task1() # 2. 定義帶彈性懲罰的損失函數(shù) def elastic_loss(outputs, targets, current_params, old_params, importance_weights, mu): ce_loss cross_entropy(outputs, targets) penalty 0 for p_cur, p_old, imp in zip(current_params, old_params, importance_weights): penalty imp * ((p_cur - p_old) ** 2).sum() total_loss ce_loss mu * penalty return total_loss # 3. 在新任務(wù)數(shù)據(jù)上訓(xùn)練幾個(gè)epoch評(píng)估性能提升 performance evaluate_after_few_epochs(model, data_task2_val) if performance_gain threshold: # 4. 觸發(fā)網(wǎng)絡(luò)擴(kuò)展 expand_layer(model, layer_index1, num_new_neurons20) # 例如在第一個(gè)隱藏層加20個(gè)神經(jīng)元 # 注意初始化策略新加神經(jīng)元到舊神經(jīng)元的連接權(quán)重小隨機(jī)初始化舊神經(jīng)元到新加輸出連接的權(quán)重初始化為0。 # 5. 繼續(xù)訓(xùn)練擴(kuò)展后的模型在新任務(wù)上使用彈性損失 optimizer Adam(model.parameters(), lr0.001) for epoch in range(num_epochs): for batch_x, batch_y in task2_dataloader: optimizer.zero_grad() outputs model(batch_x) loss elastic_loss(outputs, batch_y, model.parameters(), old_params, ω, mu0.5) loss.backward() optimizer.step() # 6. 更新重要性權(quán)重可選或?yàn)橄乱粋€(gè)任務(wù)準(zhǔn)備 update_importance(model, data_task1_val, data_task2_val) # 合并新舊任務(wù)數(shù)據(jù)計(jì)算重要性4.3 超參數(shù)調(diào)優(yōu)要點(diǎn)懲罰系數(shù) μ這是最重要的超參數(shù)。μ太大模型僵化無法學(xué)習(xí)新任務(wù)μ太小遺忘嚴(yán)重。建議從[0.1, 0.5, 1, 5, 10]開始網(wǎng)格搜索。一個(gè)經(jīng)驗(yàn)是新舊任務(wù)相似度越高μ可以設(shè)得小一些差異越大μ應(yīng)設(shè)得大一些以保護(hù)舊知識(shí)。擴(kuò)展觸發(fā)閾值通常根據(jù)驗(yàn)證集準(zhǔn)確率相對(duì)提升率來設(shè)定例如 1%持續(xù)3個(gè)epoch則觸發(fā)。需要根據(jù)任務(wù)難度調(diào)整。擴(kuò)展神經(jīng)元數(shù)量不宜一次添加過多通常為當(dāng)前層神經(jīng)元數(shù)量的10%-25%。可以逐步添加。學(xué)習(xí)率由于有懲罰項(xiàng)的存在建議使用比初始訓(xùn)練稍小的學(xué)習(xí)率或者使用學(xué)習(xí)率預(yù)熱Warm-up策略避免初期更新過大破壞重要參數(shù)。5. 效果評(píng)估與對(duì)比實(shí)驗(yàn)設(shè)計(jì)評(píng)價(jià)一個(gè)增量學(xué)習(xí)算法不能只看它在最新任務(wù)上的準(zhǔn)確率必須綜合考量以下三個(gè)維度新任務(wù)性能Forward Transfer學(xué)習(xí)新任務(wù)后模型在新任務(wù)測(cè)試集上的準(zhǔn)確率/檢測(cè)率DR、誤報(bào)率FPR。這反映了模型吸收新知識(shí)的能力。舊任務(wù)性能Backward Transfer / Forgetting學(xué)習(xí)新任務(wù)后模型在所有舊任務(wù)測(cè)試集上的平均性能下降程度。這是衡量“遺忘”的核心指標(biāo)。常用“平均準(zhǔn)確率下降A(chǔ)verage Accuracy Drop”來計(jì)算。整體平均性能Overall Average Accuracy學(xué)完所有任務(wù)后模型在所有任務(wù)測(cè)試集上性能的平均值。這是最綜合的指標(biāo)。對(duì)比基線 在入侵檢測(cè)的增量學(xué)習(xí)研究中通常需要與以下方法對(duì)比微調(diào)Fine-tuning直接用新任務(wù)數(shù)據(jù)訓(xùn)練舊模型不施加任何約束。這是遺忘最嚴(yán)重的基線。聯(lián)合訓(xùn)練Joint Training每次新任務(wù)到來都用所有歷史數(shù)據(jù)舊新重新訓(xùn)練模型。這是性能上限但計(jì)算和存儲(chǔ)成本也最高通常作為理想?yún)⒄铡L卣魈崛eature Extraction凍結(jié)舊模型的大部分層只訓(xùn)練最后的分類層。這是避免遺忘的簡(jiǎn)單方法但靈活性和性能有限。其他增量學(xué)習(xí)算法如EWC、GEM、iCaRL等。需要對(duì)比在相同數(shù)據(jù)集和任務(wù)劃分下的性能。實(shí)驗(yàn)報(bào)告關(guān)鍵圖表折線圖橫軸為學(xué)習(xí)到的任務(wù)序列T1, T2, T3...縱軸為準(zhǔn)確率。為每個(gè)任務(wù)在學(xué)完所有后續(xù)任務(wù)后測(cè)試可以畫出多條曲線直觀顯示學(xué)完T3后在T1、T2、T3上的表現(xiàn)。好的增量學(xué)習(xí)算法曲線應(yīng)該比較平緩下降少。表格匯總最終的整體平均準(zhǔn)確率、平均遺忘率等關(guān)鍵指標(biāo)與基線方法并列對(duì)比。6. 潛在挑戰(zhàn)與優(yōu)化方向盡管T-DFNN提供了有前景的方案但在實(shí)際工業(yè)級(jí)IDS部署中仍面臨挑戰(zhàn)1. 任務(wù)邊界模糊真實(shí)的網(wǎng)絡(luò)流量中新舊攻擊模式并非涇渭分明而是交織出現(xiàn)。攻擊者會(huì)混合使用舊技術(shù)變種和新漏洞。嚴(yán)格的任務(wù)劃分假設(shè)可能不成立。解決方案是探索在線或模糊任務(wù)邊界的增量學(xué)習(xí)例如基于數(shù)據(jù)分布變化檢測(cè)來自動(dòng)觸發(fā)學(xué)習(xí)或鞏固機(jī)制。2. 計(jì)算與存儲(chǔ)開銷計(jì)算和存儲(chǔ)所有參數(shù)的重要性權(quán)重ω對(duì)于大型網(wǎng)絡(luò)如處理原始包數(shù)據(jù)的深度模型開銷不菲。動(dòng)態(tài)擴(kuò)展也使得模型結(jié)構(gòu)變化不利于硬件優(yōu)化。可以考慮稀疏重要性計(jì)算只計(jì)算網(wǎng)絡(luò)中關(guān)鍵層或關(guān)鍵參數(shù)的重要性。重要性量化將重要性權(quán)重量化為低精度如8位整數(shù)存儲(chǔ)。固定主干擴(kuò)展側(cè)枝采用類似漸進(jìn)式網(wǎng)絡(luò)Progressive Neural Networks的思想固定舊網(wǎng)絡(luò)為新任務(wù)學(xué)習(xí)一個(gè)平行的“側(cè)枝”網(wǎng)絡(luò)通過門控機(jī)制組合輸出。這避免了修改原有參數(shù)。3. 負(fù)遷移與干擾即使有懲罰新舊任務(wù)之間仍可能存在特征空間的競(jìng)爭(zhēng)和干擾導(dǎo)致“負(fù)遷移”——學(xué)習(xí)新任務(wù)反而降低了舊任務(wù)的性能或者新舊任務(wù)互相拖累。需要更精細(xì)的參數(shù)隔離或正則化策略例如每個(gè)任務(wù)擁有部分專屬參數(shù)配合稀疏化促進(jìn)參數(shù)解耦。4. 在非穩(wěn)態(tài)數(shù)據(jù)流上的魯棒性網(wǎng)絡(luò)流量存在概念漂移正常行為模式隨時(shí)間變化和類別不平衡攻擊樣本遠(yuǎn)少于正常樣本。T-DFNN需要與概念漂移檢測(cè)和重采樣/代價(jià)敏感學(xué)習(xí)技術(shù)結(jié)合才能穩(wěn)定工作。7. 工程落地思考與擴(kuò)展場(chǎng)景將研究轉(zhuǎn)化為實(shí)際可用的IDS組件還需要考慮部署模式云端協(xié)同在邊緣設(shè)備如分支機(jī)構(gòu)防火墻進(jìn)行輕量級(jí)初始檢測(cè)和特征提取將特征或不確定的流發(fā)送到云端中心模型T-DFNN進(jìn)行增量學(xué)習(xí)和深度分析。云端模型定期將更新后的“重要知識(shí)”如重要性權(quán)重、擴(kuò)展的神經(jīng)元結(jié)構(gòu)下發(fā)到邊緣。模型即服務(wù)將T-DFNN模型封裝為微服務(wù)通過API接收流量特征向量。服務(wù)內(nèi)部包含模型版本管理和任務(wù)調(diào)度器負(fù)責(zé)在低峰期觸發(fā)增量學(xué)習(xí)訓(xùn)練任務(wù)。超越入侵檢測(cè) T-DFNN的思路具有普適性。任何需要模型持續(xù)適應(yīng)新數(shù)據(jù)、新模式的場(chǎng)景都可借鑒金融風(fēng)控欺詐手段不斷翻新模型需要在不忘記舊騙術(shù)識(shí)別能力的情況下學(xué)習(xí)新騙術(shù)模式。工業(yè)物聯(lián)網(wǎng)預(yù)測(cè)性維護(hù)設(shè)備會(huì)出現(xiàn)新型故障監(jiān)測(cè)模型需要增量學(xué)習(xí)新故障特征同時(shí)保持對(duì)已知故障的高識(shí)別率。內(nèi)容推薦系統(tǒng)用戶興趣和流行內(nèi)容不斷變化推薦模型需要持續(xù)演化。這套“動(dòng)態(tài)固化彈性擴(kuò)展”的框架其核心思想是在穩(wěn)定性記住舊知識(shí)和可塑性學(xué)習(xí)新知識(shí)之間尋找動(dòng)態(tài)平衡。這不僅是機(jī)器學(xué)習(xí)的技術(shù)問題也反映了智能系統(tǒng)適應(yīng)復(fù)雜動(dòng)態(tài)環(huán)境的根本需求。在實(shí)際操作中最重要的不是死磕論文里的每一個(gè)公式而是理解其設(shè)計(jì)哲學(xué)然后根據(jù)自己面臨的具體數(shù)據(jù)特性、計(jì)算約束和業(yè)務(wù)需求對(duì)算法進(jìn)行裁剪、簡(jiǎn)化和增強(qiáng)。例如在資源受限的邊緣IDS設(shè)備上你可能需要大幅簡(jiǎn)化重要性計(jì)算甚至采用啟發(fā)式規(guī)則如固定網(wǎng)絡(luò)前幾層來近似而在擁有強(qiáng)大算力的安全運(yùn)營(yíng)中心SOC你可以實(shí)現(xiàn)更精細(xì)、更復(fù)雜的版本并融合多模態(tài)數(shù)據(jù)。