神经网络的“自我学习”是什么?:修订间差异
跳到导航
跳到搜索
无编辑摘要 |
无编辑摘要 |
||
(未显示2个用户的5个中间版本) | |||
第4行: | 第4行: | ||
在主流棋类引擎中,神经网络都属于离线监督学习。 | 在主流棋类引擎中,神经网络都属于离线监督学习。 | ||
作者会先让引擎自对弈,从而生成数据(棋谱)。 | |||
以nnue跑谱为例,这些数据里面有每步的局面、分数、和这局游戏的结果等等信息,通常是以每步几层或者几千、几万节点自对弈生成。 | |||
生成了足够多的数据后,便拿去训练,训练过程可以简单理解为去调整神经网络里的海量参数,使得网络的输出更接近数据。比如一个局面100分,训练就会改变神经网络参数让评估分数去接近这个100分。 | |||
因为是离线学习,依赖作者训练发布,所以你使用引擎是无法让引擎“学习”的(但棋类也完全不适合在线学习),而引擎有[[置换表(哈希)是什么?设置多少好?|哈希表]]这种暂时的信息储存,所以拆棋时会感觉引擎有记忆功能,但重新加载后便失去了记忆。 | |||
所以强引擎目前不可能一边使用一边学习,而是依赖作者训练好之后再发布出来 |
2024年12月3日 (二) 17:22的最新版本
返回“棋软知识”
在主流棋类引擎中,神经网络都属于离线监督学习。
作者会先让引擎自对弈,从而生成数据(棋谱)。
以nnue跑谱为例,这些数据里面有每步的局面、分数、和这局游戏的结果等等信息,通常是以每步几层或者几千、几万节点自对弈生成。
生成了足够多的数据后,便拿去训练,训练过程可以简单理解为去调整神经网络里的海量参数,使得网络的输出更接近数据。比如一个局面100分,训练就会改变神经网络参数让评估分数去接近这个100分。
因为是离线学习,依赖作者训练发布,所以你使用引擎是无法让引擎“学习”的(但棋类也完全不适合在线学习),而引擎有哈希表这种暂时的信息储存,所以拆棋时会感觉引擎有记忆功能,但重新加载后便失去了记忆。
所以强引擎目前不可能一边使用一边学习,而是依赖作者训练好之后再发布出来