IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 确定性神经网络连子棋模型的训练(七) -> 正文阅读

[人工智能]确定性神经网络连子棋模型的训练(七)

本篇继续上篇的未完部分。前面介绍完了控制台版本和MFC对话框版本下的所有例子,几乎涵盖了训练的所有方面,本篇继续介绍训练的测试和分析,供人工智能、神经网络(包括深度学习)方面的兴趣爱好者、从业人员、科研人员参考。

7. 测试与分析

本文所做的测试是使用控制台版本下的反复迭代训练进行的,五连子(五子棋)使用了13487条数据,即13487局有效对弈棋局,而六连子使用了6800条数据。通过本次测试以及之前数据量较少时的不断训练,我们发现了以下的一些“确定性神经网络”的特性,其中部分已通过理论推导进行了确认。

(1)训练时间及结果

五连子的13487条数据从空模型开始训练一次,我们花了116小时,最短也需要18小时,这其中的差异将在后续详细说明,如果大家按照前面文章介绍的方法开发了训练软件并打算使用一万多条数据进行训练的话,大家可以把训练消耗的预计时长定在一天(即24小时)左右。我们训练出的模型有11层深度,模型文件大小为2.13MB。

六连子的6800条数据从空模型开始训练一次,我们花了27小时,最短也需要4小时。我们训练出的模型也有11层深度,模型文件大小为1.6MB。

(2)模型深度

确定性神经网络的模型深度是在训练中自然增长的,具体深度未在算法和编码中限定,即未对深度进行硬编码。训练用的高质量数据越多,则模型的深度越大,反之,低质量的数据对模型的增长及深度的增长贡献甚微。而模型的深度越大的话,训练出来的模型越聪明,智能程度越高。这就像人类从小开始学习一样,读过的好书越多就越聪明(能解决的问题越多的意思),而低质量的书籍(包括低质量的视频、网文等其它信息源)对能力的提升则比较有限,从这一点来看,确定性神经网络与人工智能更契合,与人类的思维更接近,正如之前的一篇文章中所描述的那样。

当然了,这里必须要提到的关于模型的另一点是,确定性神经网络的模型深度在有效数据充足的情况下,可能会学得很深,对应的,很深的模型在预测时将会需要较长的时间,但是,确定性神经网络在工作时(即预测时)却不必用到所有的深度,即可以只用浅层的模型,换句话说,确定性神经网络模型的深度决定着它的极限智能程度,但却不必时刻使用极限智能去工作。这一点更接近人类思维,一个科学家解决一个学术问题可能需要花一年时间来进行计算,但去买水果的时候也能像普通人一样只需要几秒钟就计算出找零多少。

(3)训练方式

前面几篇文章所介绍的是一种常用的训练方式——自然尽力增长方式,即对于每个训练数据,物尽其用,尽量充分的挖掘该数据的价值,等到该数据产生不了模型增长的时候,就换下一个训练数据,依此类推,直到所有数据训练结束,然后重头再迭代一次,直到所有数据都不再能让模型产生增长为止,整个训练工作才算结束,而且,对于确定性神经网络的训练来说,不会产生发散和不收敛的情形,必然会达到训练结束的条件。

在多次的训练和数据不断增长的过程中,我们发现,分层训练和上述的训练方式会产生差异。分层训练指的是每次迭代只增长一层,即用所有的训练数据训练一遍最多只允许增长一层,等下一次迭代的时候再允许增长一层,依此类推,这种方式即分层训练的方式。该方式会导致整体的训练时间变长很多,第一点里提到的五子棋模型训练一遍花了116个小时就是用这种分层方式训练的,而用自然尽力增长方式训练的话,仅需18小时即可完成训练。

这两种训练方式产生的差异是在我们从较少训练数据到较多数据的过程中发现的,训练数据变多之后,训练出的模型中某些信息却丢失了,而这些信息在使用较少数据训练出的模型中是存在的。不过,在训练数据越来越多之后,这种差异又在逐渐变小,甚至等数据量达到一定程度之后,这种差异就消失了。因而,究竟哪种训练方式更好、分层训练方式是否能给同行提供一个研究和改进方向、训练数据的数量在达到多少时最佳等问题便产生了,这些发现和疑问尚需要时间和数据进行测试和验证,有兴趣的相关人员可以一起讨论,看看是否有必要分层训练,以及这种训练方式会对神经网络模型产生多大的影响,尤其是对目前正在广泛应用的神经网络相关模型。

(4)训练数据

训练数据的差异越大,对模型训练的贡献越大,反之,即便相似的训练数据再多也只能产生微乎其微的贡献。因此,我们建议训练数据最好有多样化的来源,或者由大量的不同的人提供,毕竟一个人的下棋思路是有一定的模式的(即便表面上看不出来,在神经网络中也会体现出来),同一个人能提供的有效数据不会太多。

棋盘越大时产生有效数据的概率越大,反之,棋盘越小时产生相似数据的概率越大。所以,为了得到尽量好的训练数据,可以在保障数据来源的前提下增大对弈棋盘的大小,比如说,在100x100的棋盘上进行对弈。尤其是在训练高连子的模型时更有必要,这一点从我们使用和提供的训练数据就能看出一二,同样的15x15的棋盘上,训练六连子的有效数据比训练五连子的有效数据少得多。

(5)文中所提的模型和部分训练数据可在如下地址下载

我们提供了1000组五连子的训练数据混合500组六连子的训练数据,这些数据可直接用于前面几篇介绍的训练之中。另外,还提供了五连子和六连子已经训练出的模型,其中六连子的模型有滞后,最新的模型将优先应用于官网的挑战赛和挑战活动中。

官网下载:www.gnxxkj.com

github下载:https://github.com/wangdechang119

gitlab下载:https://gitlab.com/wangdechang119

gitee下载:https://gitee.com/wangdechang119
?

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章           查看所有文章
加:2021-12-26 22:09:34  更:2021-12-26 22:14:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 23:30:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码