我是人工神经网络的新手。
我对以下应用很感兴趣:
我有一个非常大的对象集合。每个对象有六个属性,分别用 P1–P6 表示。每个属性都有一个符号值。换句话说,在我的例子中,P1–P6 可以从集合 {A, B, C, D, E, F} 中取值。它们不是数值型。(假设 A,B,C,D,E,F 是颜色,你就会明白我的想法。)
现在,我还有另一个感兴趣的属性 R。假设:
R = {G1, G2, G3, G4, G5}
我需要针对大量的 P1–P6 和相关的 R 训练一个系统。现在我想做以下的事情。
我有一个对象,并且我知道 P1 到 P6 的值。我需要找到 R (该对象属于哪个组)。
为了得到想要的 R,P1–P6 需要满足什么样的模式?举个例子,如果给定 R = G2,我需要找出 P1–P6 中的任何模式。
我的问题是:
为了分别实现 1 和 2,我应该阅读和学习哪些理论/技术/方法?
您能推荐哪些工具/库来进行模拟/实现/测试?
回答:
你应该了解一下分类算法(人工智能的一个分支),尤其是最近邻算法。 你的问题可以通过不同的技术解决,这些技术都有不同的优点和缺点。
但是,我不知道任何人工智能方法可以进行双向分类(或者换句话说,可以同时实现你的前提条件 1 和 2)。由于你目前只想实现 P1..P6 <=> R 的双向映射,我建议直接使用映射表,而不是人工智能算法。 如果你不太清楚哪些样本属于 P1..P6 中的 A..E 类别,那么人工智能将会非常有用。
如果你坚持使用人工智能,我建议首先看看感知器。一个感知器由输入、中间和输出神经元组成。 对于你的例子,你将拥有输入神经元 P1a..P1e, P2a..P2e, … 和五个输出神经元 R1..R5。 经过训练后,你应该能够输入 P1..P6 并获得适当的 R1..R5 作为输出。
至于框架和技术,我只知道 Visual Studio 的 Business Intelligence 套件,尽管市面上还有很多其他的人工智能框架。 由于我没有使用过任何这些框架(我总是用 C/C++ 自己编写它们),所以我无法推荐任何框架。