用 Java 开源项目 JOONE 实现人工智能编程[1]
2008-06-30 16:08
文/朱先忠编译
简介
很少有程序员不对这里或者那里所包含的人工智能编程所吸引,然而,许
多对 AI 感兴趣的程序员很快就因其中包含的算法的复杂性而退却。在本文中,
我们将讨论一个能大大简化这种复杂性的 Java 开源工程。
Java 面向对象的神经网络(JOONE)是一开源工程,它提供给 Java 程序员一个高
适应性的神经网络。该 JOONE 工程源代码由 LGPL 所保护。简 言之,这意味着
源代码是可自由使用的而且你不需要支付版税就可以使用 JOONE。JOONE 可
以从 http://joone.sourceforge.net/处下载。
JOONE 能允许你轻易地从一个 Java 程序中创建神经网络。JOONE 支持许多特征,如多
线程和分布式处理。这意味着 JOONE 能利用多处理机计算机和多台计算机的优势来进行分
布式处理。
神经网络
JOONE 用 Java 实现了一个人工神经网络。一个人工神经网络试图仿效生物学神经网络的功
能--神经网络组成今天在地球上几乎所有高等生命的大脑形式。神经网络由神经原组成。图
1 显示了一个实际神经原图。
使用 JOONE
在这篇文章中,你将看到一个简单的怎样使用 JOONE 的实例。神经网络题目涉及广泛并覆
盖许多不同的应用领域。在本文中,我们将展示给你怎样使用 JOONE 来解决一个很简单的
模式识别问题。模式识别是神经网络中的最普遍的应用之一。
模式识别提供给神经网络一种模式,判断是否该神经网络能够识别出该模式。这种模式应
该能够在某种程度上被扭曲而该神经网络仍然能够识别它。这很像人类识 别东西(如一个
交通标志)的能力。人类应该能够识别在下雨天,晴天或者晚上的交通标志。即使这些图
像看上去可能相当不同,但人类的大脑仍能够判断出它们是 一样的图像。
当进行 JOONE 编程时,你一般要使用两种类型的对象。你要使用神经原层对象,用于描述
一层的一个或多个的具有相似特征的神经原。神经网络经常有一层或两层神经元。这些神
经元层通过触角联系在一起。这些触角把这种待识别的模式,从一个神经元层传输到另一
个神经元层。
触角不仅把这种模式从一个神经元层传输到另一个神经元层。触角还将生成一些指向这种
模式的元素的斜线。这些斜线将导致这种模式的某些元素在被传输到下一 个神经元层时不