Encog手册翻译:介绍

小弟我英语水平很差,四级没过而最近要补考四级,但单纯记单词又记不住还困,然而最近又想学习人工智能,所以就找了个人工智能的外文资料自己试试翻译,有诸多错误的地方,请大神们多多指教哈

Encog是一个JAVA和.Net的机器学习框架,最初,Encog创建时仅仅支持神经网络,后来的版本扩展了更多通用的机器学习,然而,这本书将重点在主要的神经网络方面,在这本书中学到的大多数技术能够应用到其他的机器学习技术领域,随后,这本书将重点在一些Encog编程的一些领域。

这本书的出版结合了Encog3.0的正式版和应该坚持兼容之后的encog3版本,未来的版本3.x系列将试图以最小程度破坏存在的代码添加一些功能。

0.1 Encog的历史

Encog的第一个版本0.5,正式发布在2008年7月10号,Encog最初的基础包括一些代码用于编写第一个版本的<<介绍神经网络与Java>>,于2005年发布,第二个版本的特色是完全地重新设计了神经网络引擎,成为Encog 0.5版,Encog版本1.0到2.0极大地扩展了神经网络代码远远超出了本书所能介绍的,Encog3.0版本增加了更多正式地支持机器学习方法不仅仅只有神经网络。

这本书将提供一个怎样用Encog去使用神经网络综合性的介绍,对于实际实现神经网络的复杂性,参考 <<介绍神经网络与Java>> 和 <<介绍神经网络与.Net>>,本书探索怎样实现基本的神经网络和创建一个神经网络的内部。

这两本书可以顺序阅读,因为新概念的引入很少重复,这两本书不是彼此的先决条件,这本书将装备你开始和Encog, 如果你能基本了解JAVA编程语言的基础,尤其,你应该熟悉以下:

•JAVA泛型

•   集合

•   面向对象程序设计

在我们开始测试怎样使用Encog之前,让我们首先来确定Encog擅长解决哪些问题,神经网络是一个编程技术,它们不是每一个编程问题解决的新技术,然而却经常有能力地解决某些编程问题,当然,在这里还有其他的问题,对于神经网络不是很适合

0.2介绍神经网络

这本书将定义一个神经网络并且怎样去使用它,大多数人,即使非程序员,都听说过神经网络。有很多的科幻小说弦外之音和神经网络有关联,和许多事情一样,科幻小说作家创作了大量的,但是有点错误的关于神经网络是什么的公共概念。

多数的外行人员认为神经网络作为一种“人造大脑”是强大的机器人或者与人类进行智能对话,这个概念的定义更接近人工智能(AI)而不是神经网络,AI寻求创造出真实的智能机器,我不会去浪费几章去解释什么是真真的人类智能,而不是当前的计算机状态,当前的计算机不是一个智能的。

神经网络是AI的一小部分,神经网络,至少它们当前存在,执行非常小,指定的任务,基于计算机的神经网络不是像人脑那样的通用计算设备,神经网络的感知可能是偏斜的,因为大脑本身是一个神经元或者是一个神经网络,这个就产生了一个重要的区别。

人脑更准确的描述为一个生物神经网络(BNN),这本书不是关于生物神经网络的,大多数的文本在这两者间不做区分,在本书中,引用的神经网络意味着人造神经网络。

在生物神经网络和人造神经网络之间有一些基本的相似性,人造神经网络主要的数学结构的灵感来自生物神经网络,一个重要的术语“生物合理性”经常用来描述各种人造神经网络算法,这个术语定义了人造神经网络算法怎样接近于生物神经网络。

如前所述,神经网络设计来完成一个小的任务,一个完整的应用程序可能使用神经网络来完成目标的某些部分,整个应用程序不能作为一个神经网络实现,应用程序也许由几个神经网络组成,每个都为一个特定的任务而设计。

神经网络完成模式识别任务非常好,当一个模式传达的时候,一个神经网络返回模式,在这个最高级别,这是所有典型的神经网络所做的,一些网络构造将会变化,但是绝大多数的神经网络是这种方式工作的,图一阐述了这个级别的一个神经网络


正如你所看见的,上面的这个神经网络接受一个模式和返回一个模式,神经网络完全同步执行,一个神经网络仅仅当提供了一个输入时才将输出,它不像人脑不同步执行,人脑对输入作出反应,但是它将在任何适合时候产生输出。

0.2.1神经网络结构

神经网络是由相似的神经元组成,至少,大部分神经网络由输入层和输出层组成,输入模式指定到输入层,然后输出模式从输出层返回,在输入层和输出层之间发生的是一个黑盒子,在书中的这一点上,神经网络的内部结构不用考虑的,有大量的结构定义了输入层和输出层之间的相互作用,在本书的后面,这些结构进行了检测。

输入和输出模式都是两个float型数组,以下是一个示例:


上面的神经网络是三个神经元的输入层和两个神经元的输出层,输入层和输出层的神经元数量不能改变,因此,对于一个特定的神经网络,它的输入层和输出层的元素个数永远不会改变。

使用神经网络,问题的输入必须表示为一个float类型的数组,同样地,问题的解决也必须是一个float类型的数组,这是必要的并且是神经网络唯一的真实值,神经网络拿到一个数组,并且将其转换为第二个,神经网络不循环、调用子程序或者执行任何其他相关的传统程序任务,神经网络识别模式。

一个神经网络很像传统编程里的哈希表,一个哈希表用于将key 映射到 value, 有点像一个字典,下面可以看做是一个哈希表的例子:


这是一个单词和每个单词的定义之间的映射, 就像一个哈希表在任何编程语言里一样,它使用一个字符串的key 到任意的一个字符串的value, 输入是字典里的一个key和输出是一个value, 这是大多数神经网络的功能,一个神经网络调用一个BidirectionalAssociative Memory (BAM)实际上允许用户通过value和接受key。

哈希表使用key和value, 想想模式发送到神经网络的输入层就像哈希表的Key, 同样地,模式从神经网络的输出层返回就像从哈希表返回value,这个哈希表和神经网络之间的比较,然而,神经网络要比哈希表工作要好得多。

如果一个单词不在哈希表中那上面的哈希表会发生什么?例如,传递一个key ‘wrote’,那哈希表将返回null或者在某种程度上表明它无法找到指定的Key, 神经网络不会返回null, 而是找到一个最接近的匹配,它不仅找到最接近的匹配,神经网络还修改输出值来估计缺失值,如果传递一个”wrote”到上面的神经网络,输出可能是’write’, 在这里没有足够的数据为神经网络去修改返回,这里仅仅三个样例,所以你可能从其他的key中得到输出。

上面的映射提出了一个非常重要的点关于神经网络,回想神经网络接受一个float类型的数组和返回另外一个数组,如何将字符串放到神经网络如上图所示?虽然有方法可以做到这一点,它处理数值型数据比处理字符型数据更容易。

一个神经网络的问题,输入必须是float型数组,这是神经网络编程最困难的一个方面,怎样让一个问题转换为一个固定长度的float型数组?最好的方式是通过演示,在本书的例子中都有介绍和探索。

0.2.2一个简单的例子

大多数基础的有关神经网络提供的例子是XOR运算符,这个XOR运算符是神经网络编程里的hello world, 虽然这本书将描述场景比XOR复杂很多,但这XOR运算符是一个伟大的介绍。

开始,如下的XOR运算符虽然他是一个哈希表,XOR运算符工作类似于AND和OR运算符,对于AND运算符结果要为true, 输入两个都要为ture, 对于OR运算符结果要为ture, 只要输入的其中一个为true, 对于XOR结果要为true, 必须输入的两个彼此不相同,XOR真值表如下:

False XOR False = false;

True XOR False = True;

False XOR True = True;

True XOR True = False;

继续哈希表的例子,上面的真值表可以表示如下:

    [0.0, 0.0] -> [0.0]

    [1.0, 0.0] -> [1.0]

    [0.0, 1.0] -> [1.0]

    [1.0, 1.0] -> [0.0]

 这些映射显示了神经网络的输入和理想期望的输出

0.3什么时候使用神经网络

定义了神经网络之后,或者当不使用时必须确定他们,知道何时不使用的东西是一样重要的知道如何使用它 ,要了解这些目标,我们将确定Encog擅长解决什么样的问题。

这本书一个重要的目标是解释怎样构造Encog神经网络和何时使用他们,神经网络程序员必须明白哪些问题是适合神经网络解决的和哪些是不适合的,一个神经网络程序员也知道神经网络的有效结构,是适合用于给定的一个问题,这节将首先确定不适合神经网络方案解决的问题。

0.3.1不适合神经网络方案解决的问题

程序很容易写成流程图的问题不是一个理想的神经网络应用程序,如果你的程序考虑能够很好的定义明确的步骤,那正常的编程技术就已经足够了。

另外一个考虑的标准是程序逻辑是否可能会改变,神经网络的主要特征是学习能力,如果你的算法用来解决的问题是一个不变的业务规则,在这里就没有理由使用神经网络,事实上,神经网络可能会对你的应用程序,如果它试图找到一个更好的解决方案,开始偏离预期的过程,可能会发生意想不到的结果。

最后,神经网络通常是不适合需要明确可追踪路径解决方案的问题,神经网络可以非常有用解决训练的问题,但不能解释其推理,神经网络知道一些东西,因为它被训练去了解它,然而,神经网络无法解释随后得出答案的一系列步骤。

0.3.2适合神经网络方案解决的问题

虽然神经网络有很多问题不太适合,但也有很多问题,神经网络解决方案非常有用,此外,神经网络通常可以解决问题比传统编程算法用更少的代码,重要的是要明白哪些问题能够使用神经网络方法。

神经网络对于解决那些不能用一系列步骤表示的问题特别有用,这可能包括了模式识别,分类,预测和数据挖掘。

模式识别可能是神经网络最常用的方法,对于这种类型的问题,神经网络已图像,声音或其他数据形式呈现,然后,神经网络试图确定输入数据是否与训练过的模式相匹配。本书的其余部分将研究许多例子如何使用神经网络来识别模式。

分类的过程接近模式识别,一个神经网络训练分类是为了将输入样本分组,这些组也许是模糊的,缺乏明确定义边界的,另外,这些组也许有着相当严格的边界。

0.4 本书的结构

本书开始的第一章, “回归,分类&聚类”.这章介绍了用神经网络执行的主要任务,这些任务不仅仅通过神经网络来完成,也有另外的其他机器学习算法。

神经网络的主要任务之一是识别和提供对数据的洞察,第二章,“获取数据&标准化”,说明怎样在使用神经网络之前处理这些数据,这章将研究一些可能用于神经网络的数据,以及如何使用神经网络规范化和使用这些数据。

Encog包括了一个Encog Workbench的GUI神经网络编辑器,第三章,“使用Encog Workbench”,详细说明此应用程序的最佳方法和用途,Encog Workbench提供了一个能够编辑Encog框架使用的.EG数据文件的一个GUI工具,强大的Encog分析师也能够用来自动执行大量的任务。

接下来就是构造和保存神经网络,第四章,“用JAVA构造神经网络”,说明了使用layer和激活函数怎样创建神经网络,它也将阐述怎样使用平台独立的.EG文件或者标准JAVA序列化这两种方式去保存神经网络。

神经网络必须通过有效的利用训练和这儿有几种方式去执行这个训练,第五章,“传播训练”,说明了怎样使用内置的Encog训练神经网络的传播方法,Encog支持反向传播,弹性传播,曼哈顿更新规则,快速传播和SCG。

第六章,“其他监督训练方法”,说明了Encog支持的其他监督训练算法,这章介绍了模拟退火算法和遗传算法作为Encog神经网络训练技术,第六章也详细说明怎样创建混合训练算法。

Encog不仅仅支持前馈神经网络类型,第七章,“其他神经网络类型”,提供了简要介绍其他几个Encog支持的神经网络类型,第七章描述怎样设置NEAT, ART1和Elman/Jordan神经网络。

神经网络通常使用来预测未来数据的改变,一个常见的用途是预测股市趋势,第八章,“使用时序数据”,将说明怎样使用Encog预测趋势。

图像是最常见的作为神经网络输入使用,Encog包含了易于使用的图像数据和训练神经网络的类,第九章,“使用图像数据”,说明了怎样通过Encog使用图像数据。

最后,第10章,“使用自组织映射”,讲解了Encog通过监督训练到使用无监督训练的扩展,一个自组织映射(SOM)可以用于集群数据。

当你阅读这本书虽然你对Encog框架无疑会有问题,你最好的资源是Heaton Research的论坛,可以在以下URL找到:

http://www.heatonresearch.com/forum

   另外,Encog Wiki, 位于以下的URL

http://www.heatonresearch.com/wiki/Main_Page

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,980评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,178评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,868评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,498评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,492评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,521评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,910评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,569评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,793评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,559评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,639评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,342评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,931评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,904评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,144评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,833评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,350评论 2 342

推荐阅读更多精彩内容

  • Autolayout介绍 1.Autolayout是一种“自动布局”技术,专门用来布局UI界面的2.Autolay...
    小羊快跑阅读 163评论 0 0
  • 一、RecycleView 基本使用 这部分来看Bugly写的: RecycleView必知必会 这篇文章介绍了R...
    GOOD_end阅读 4,482评论 0 13
  • 曾经时常嘲笑自己,在回忆里小心翼翼地跳过某些蠢爆的画面。最近,我好像有些爱上这个过程了。某些角度来看,仿佛曾经越可...
    唱着歌向前行阅读 103评论 0 0