2011-05-30 57 views
5

嗨我需要一些幫助,開始創建我的第一個算法;我想創建一個用作入侵檢測系統的NN /遺傳算法。神經網絡,遺傳算法作爲入侵檢測系統

但我有一些問題(之前從未寫過的算法。)

  1. 我想用C#開發將有可能作爲一個控制檯應用程序掙扎?如果是這樣,作爲一個先導程序,粗略地說,它會是最簡單的形式。它甚至可能在C#中?
  2. 如何連接程序以從網絡讀取數據?數據包如何轉換爲算法的可讀數據。
  3. 如何讓程序爲snort或其他形式的防火牆編寫規則,並阻止程序認爲是潛在的威脅。 (即它發現來自No.2的威脅,然後它將規則寫入阻塞該特定通信量的snort規則頁面)
  4. 如何跟蹤數據。 (什麼它阻止了它觀察它是如何得出這個結論的)
  5. 把它放在網絡上的位置? (可以將程序連接到其他算法並在同一網絡上共享數據,這將是有益的)

如果任何人都可以幫助我從正確的方向開始或解釋其他替代方案如模糊邏輯等爲什麼它被認爲是一個黑匣子?

+0

snort不是防火牆。這是一個入侵檢測系統。此外,它也有一些能力,可以像上面的想法#3一樣爲防火牆生成規則,但這些規則來自snort,並未安裝到snort中。 Snort本身有檢測惡意活動的規則,但你的NN/GA很可能不會開發出與snort兼容的規則。 – 2011-05-30 15:12:41

回答

3

是的,控制檯應用程序和C#可用於創建神經網絡。當然,如果你想要更多的視覺方面的用戶界面,你會想要使用WinForms/WPF/Silverlight等..不可能告訴程序將有多大,因爲沒有足夠的信息,你想做什麼。而且,只要效率高,這個尺寸不應該是一個問題。

我認爲這是某種最後一年的項目?你使用什麼類型的神經網絡?您應該閱讀一些有關使用NN入侵檢測的學術論文/白皮書來獲取想法。例如,這個PDF有一些可能有用的信息。

您應該一次完成這一步。創建神經網絡與在Snort中創建新規則是分開的。一次處理一個主題,否則你會感到不知所措。考慮到困難的部分很可能是NN,你應該首先關注這個問題。

由於這是一個相當大的項目,所以不可能有人會經歷每一步。顯示你所做的並解釋你需要幫助的地方。

+1

作爲一個起點,我強烈推薦AI-Junkie的網站。這會給你一個關於神經網絡和遺傳算法的很好的概述。重要的是你首先了解他們是什麼,因爲當那裏有很多不同的類型時,它可能會相當混亂:http://ai-junkie.com/ – keyboardP 2011-05-30 15:17:53

+2

@Garrith:這不是一種任何一種東西。神經網絡是一種模型結構,而遺傳算法是一種訓練機制。 NN中的權重與GA中的權重不會混淆,它們是相同的參數。遺傳算法找到權重,神經網絡處理數據,而且都是高度遞歸的(遺傳算法需要知道在神經網絡中每個權重集執行得有多好,因爲這些信息指導了適者生存)。 – 2011-05-30 15:38:00

1

當我開始學習神經網絡時,我的核心實現是它們只是函數逼近器。我認爲這是一個重要的事情要記住。無論你是使用遺傳算法還是神經網絡(或者像@Ben Voigt所提到的那樣結合它們,儘管神經網絡通常與其他訓練技術相關聯) - 你最終得到的是一個函數,你可以將一些真正的價值,並獲得一個單一的價值。

牢記這一點,您可以設計您的程序,並將網絡看作是提供這些預測的黑匣子,在測試部分。在訓練期間,想想另一個黑盒子,你可以在其中放入成對的輸入和輸出對,並假定它會變得越好,顯示的對就越多。也許你會發現這個微不足道的,但是與這種類型的算法相關的所有理論和神祕行爲,我發現它讓人放心(儘管有點令人失望),以便將它們減少到這些類型的盒子。