2011-05-30 29 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所提到的那样结合它们,尽管神经网络通常与其他训练技术相关联) - 你最终得到的是一个函数,你可以将一些真正的价值,并获得一个单一的价值。

牢记这一点,您可以设计您的程序,并将网络看作是提供这些预测的黑匣子,在测试部分。在训练期间,想想另一个黑盒子,你可以在其中放入成对的输入和输出对,并假定它会变得越好,显示的对就越多。也许你会发现这个微不足道的,但是与这种类型的算法相关的所有理论和神秘行为,我发现它让人放心(尽管有点令人失望),以便将它们减少到这些类型的盒子。