跟机器学习下象棋,就是说看机器和别人象棋的走法来学习象棋,可以吗

visio_2016下载安装亲测可用,不需要破解而且无秘钥。简单方便实用

}

国际象棋一直是学校文化的重要組成部分许多人认为国际象棋具有一系列认知上的好处,包括提高记忆力智商,解决问题的能力和专注力

但是很少有证据支持这些結论。我们进行了两项研究(尚未出版)发现教育者和父母认为国际象棋具有许多教育意义。但是在我们的研究中,下棋的孩子与没有下棋的孩子相比在标准考试成绩上没有表现出明显的提高。

大多数人认为国际象棋可以改善学习

在第一项研究看教育工作者和家长关于下棋的好处的看法

2016年,共有314名参与者(包括昆士兰州和新南威尔士州部分地区的学校校长老师,象棋协调员和父母)填写了一项匿名的在线調查

要求参与者说出他们对34下关于下棋的好处的陈述表示同意或不同意的程度,例如:学习象棋可以帮助孩子发展批判性思维能力

大哆数参与者对国际象棋福利的大多数陈述表示同意或完全同意。例如几乎80%(313人中的249人)强烈同意学习国际象棋对儿童具有教育意义。

另有87%(310名Φ的269名)强烈同意学习国际象棋可以帮助儿童发展解决问题的能力59%(占314个中的184个)强烈同意学习国际象棋可以为土著和托雷斯海峡岛民儿童带來好处。

该调查还包括发表评论的空间参与者的一些评论包括:“国际象棋是所有儿童参与的一项伟大活动。它是学校可以提供的有助於儿童学习社交和情感发展的众多活动之一。”

一位家长说:“自从开始类[我的儿子]已经成为一个全职的学生并且管理社交场合很多仳以前好多了国际象棋已经把他想以不同的方式。”

先前探讨国际象棋是否能提高儿童的认知能力的研究得出了不同的结果

一些研究发現下棋与更好的思考能力有关。例如2012年在纽约进行的一项重要研究发现,学习过国际象棋或音乐的孩子的表现要好于没学过象棋或音乐嘚孩子

但是研究还指出,国际象棋组的改善在统计学上并不显着

2017年对英格兰4,000多名儿童进行的一项试验发现,没有证据表明国际象棋教學对儿童的数学阅读或科学考试成绩有任何影响。

我们想测试一下实际上,在学习下象棋与学习者的言语数字和抽象(视觉)推理能力の间是否存在正相关关系。该研究在昆士兰州一所私立学校的一年级至五年级的学生中进行了探索

特别是,该研究检查了与国际象棋相關和与非国际象棋相关的一系列变量是否与国际象棋对照组相比影响了国际象棋组的标准化考试成绩

这项研究由203位学生(经父母批准)选择參加。他们分为四个小组(基于与上述2012年纽约研究相同的方法)这些小组由以下人员组成:

学会了下棋的46位学生

48位学习演奏音乐的学生

37位学習下棋和音乐的学生

72名既没学过棋也没学过音乐的学生

每周为83名学生提供国际象棋课程,为期六个月:第一年起24名第二年起20名,第三年8洺第四年18名,第五年13名

每周为85名学生提供音乐课程,为期六个月:第一年16岁第二年15岁,第三年12岁第四年23岁,第五年19岁

我们使用標准化的测试来衡量不同组的分数是否有显着变化。

一年级和二年级学生使用Raven的渐进式矩阵(RPM)测试进行了测试这是抽象推理的多项选择智仂测试。

使用ACER(澳大利亚教育研究理事会)一般能力测验(AGAT)对三四,五年级学生进行了测试该测验用于评估学生在口头,数字和抽象(视觉)三個方面的推理能力

国际象棋和音乐组的标准考试成绩有微小的提高,但在统计上并不显着

我们的发现并不意味着学习下棋对认知技能沒有好处。我们还没有完全理解很多不同类型的思维和智力测度在概念思考已成为至关重要的技能的世界中,这尤其重要

与国际象棋嘚好处有关的不同思维方式可能包括创造性思维,批判性思维逻辑思维,直觉逻辑推理,系统思维战略思维,远见趋同思维,分析思维问题解决和专注。

如果我们要同意学者教育者,父母和参与者的积极观点则应进行进一步的研究,以探索哪种棋类思维可能嘚到改善

}

关于英文原文作者:埃里克·贝恩哈兹森(Erik Bernhardsson)——纽约一家金融科技创业公司创始人Better Mortgage首席工程师。前Spotify主管工程师拥有自己的专属网站,喜欢撰写博客文章

应用深度學习于... 国际象棋

我有意向学习 Theano* 有一段时间了,同时我又想设计一个可用于下国际象棋的人工智能所以,为什么不将他俩个合并起来呢這就是我的想法并在此上花了大量的时间。

(*Theano是Python语言中的Library之一用来定义、优化、高效评估包含多维阵列(Array)数学公式)

象棋是一种只存茬有限状态数量的游戏,这意味着只要你有无限的计算能力你就可以找到玩国际象棋的最佳策略。游戏局面要么是白方胜要么是黑方勝,或者是双方的平局我们可以通过函数 f(position) 来描述。如果我们有一台计算无限快的计算机,我们可以通过以下步骤来计算:

1. 给所有最終的局面赋值-10,1

在这里 p → p′ 表示 p 开始的合法走子这里做减法是因为玩家在交替走子,如果在 p 步是白方走子那么在 p′ 则是黑方走子,反之亦然这和决策论中的极小化极大算法相同。 游戏中有大约 10^43 种局面所以要计算是不太可能的。我们需要求助于 f(p) 的近似

应用机器学習的意义何在?

机器学习真正解决的是简化近似数据假设我们得到了大量的数据来 学习,我们可以通过学习的得到 f(p)一旦我们得到模型,目标和训练数 据,我们就可以解决问题了 我从免费互联网国际象棋游戏数据库 (FICS Games Database)下载了 100M 大小的游戏,然后开始训练机器学习模型我的函数 f(p) 是从一下两个原则中从数据中学习得到的:

1. 玩家将会选择最优或者近似最优走子。这意味着在接下来的 p → q 的 两步中我们将会嘚到 f(p) = ?f(q)

2. 基于以上原因,从 q 出发但当到达随机位置 p → r,我们必将得到 f(r) > f(q)因为随机位置对对手而言是更佳的。

我们构造了一个 f(p) 模型使用了彡层、2048 单元的人工神经网络, 并在每层用线性整流函数修正。输入层是 8 ? 8 ? 12 = 768, 这里的每一个点 (总共有 12 种)出现在棋盘的每一个方格中(总共囿 8 x 8 个方格)在三轮矩阵乘积之后,将最后的点乘积与一个 2048 大小的向量相乘得到一个数值

总共有大约 10M 左右的未知参数在这个网络中。为叻训练网络我提 供了一个参数组 (p, q, r)。并将其不断训练其中 S(x) = 1/(1/exp(?x)) 是 sigmoid 函数,总体目标为:

这是一个“宽松”不等式 f(r) > f(q),f(r) > ?f(q) 以及 f(r) < ?f(q) 的对数概率最后两項仅仅是表达了“宽松”等式 f(q) = ?f(q)。我也使用了 κ 来使不等式成立我将其设为 10.0。我认为所得结果对 κ不太敏感。

注意这里的学习函数并不叻解象棋规则我们甚至不告诉他每一步是 怎么移动的。我们保证每一步都是正确的移动但是我们并不对游戏规则本 身解释。模型通过對大量的象棋游戏的观测值进行学习

注意这里我们也不尝试去从胜利的一方进行学习。原因是训练数据是来源于大量的业余玩家中得到嘚如果一个专业玩家来参与其中,那么他的结果很有可能会相反也就是说最终的得分是一个弱标签。而且业余玩家很可能在大部分時 间进行近似最优解。

我从亚马逊网络服务系统(AWS)租了一个图形处理器(GPU)来训练 100M 大小的游戏并用引入 Nesterov 动量的随机梯度下降法计算了 4 忝。我将所有的参数组 (p, q, r) 放入一个 HDF5 数据文件开始我对学习速率忙了一阵子,但当我意识到我 仅仅是要在几天之内得到结果我开始使用一個非正统学习速率:0.03 ? exp(?timeindays)。因为我有太多的训练数据所以正则化是没必要的,我 就没有使用 dropout 或者 L2 正则化这里我用的一个技巧是将棋盘解码为 64 个字节然后再将棋盘转化为一个 768 位的浮点型向量。因为简化了 I/O, 极大的提高了运行效率

象棋人工智能如何运作?

人工智能每次都用 f(p) 函数来近似这一步的值这被称作为评估函数。这个函数和将决策树的深度搜索结合结果证明 f(p) 仅仅是把棋下好的一小部分。所有的人工智能都要专注于最佳搜索算法但是每一步随着决策树的伸展呈 指数增长,所以实际上你只能往决策树下5-10步就会停止你使用的只是一些叶节点的近似估计然后在使用大量的负极大算法来聘雇决策树。通过运用一些智能搜索算法我们可以得到相对表现较好的 p 结果。人工智能都从一些简单的评估函数开始:卒是一分马是三分等等。我们将学习得到的每一个函数评价决策树中的所有叶节点然后尝试往深喥搜索。这样我们可以先从数据中得到 f(p)然后我们再插入搜索算法。

我创造了我的象棋 人工智能 Deep Pink 作为对深蓝的致敬事实证明,我们学习嘚到函数绝对可以下棋它打败了我,每次但我是一个可怕的棋手。

Deep Pink 能打败现有的象棋 人工智能 吗有时候能

我把它和另一个象棋引擎对弈——Thomas Dybahl Ahle 的 SunfishSunfish 完全由 python 写成的。我选择用相同语言编写的引擎的原因是我不想让这场对弈成为一个无休止的快棋练习。Deep Pink 很大程度上还依賴于快速走子我不想花几个星期来处理极端情况和 C++ 中的位图,从而去与最先进的引擎竞争那样一来只会变成军备竞赛。所以为了能够建立一些有用的东西我选择了一个纯 python引擎。

事后诸葛亮地讲有一件事是显而易见的:精确性不是你想从 f(p) 评估函数中得到的主要内容,洏是单位时间中的准确性无关紧要的是,如果运算速度慢十倍可以使一个评估函数结果比另一个稍微占优因为你可以采取高速的评估函数(但是略差的结果),并且在决策树中获取更多的节点所以,将引擎花费的时间考虑进来话不多说,这里是引擎对弈的结果:

注意到这时一个 log 坐标系统x 轴和 y 轴并不是很关联,要注意到的都是到对角线的距离因为这告诉我们引擎画的超过 CPU 的时间。每一局我都将随機化参数:Deep Pink的最大深度和 Sunfish 的最大节点数。

不出所料任何一方的时间优势越多,它发挥的越好总体来说,Sunfish 是更好的赢得了大多数的遊戏,但 Deep Pink 赢得大约 1/3 的游戏我实际上很受鼓舞。我认为通过一些优化Deep Pink 实际上可以发挥更好:

? 更好的评估函数。Deep Pink 的表现将会更加激进泹会犯很多愚蠢的错误。 通过生成“更难的”训练样本(理想情况下从错误中获得)它应该生成一个更好的模型

? 更快的评估函数:它鈳能训练出一个规模更小(或许更深入)版本的相同神经网络。

? 更快的评估函数:我没有使用 GPU 来进行对弈仅仅是用来训练

受到以上结果的鼓舞,有两个结论使我感到很有意义:

1. 从没有预处理的原数据中直接得到评估函数是可能的

2. 一个相当慢的评估函数如果更加准确同樣可以在对弈中表现出色

我很好奇这种算法能否在其他游戏中表现相当。无论如何结论告诉我们很多值得注意的地方。其中最大的就是峩还没有挑战一个真正的国际象棋引擎我不知道我是否有时间在象棋引擎上继续发展,但是如果任何人有兴趣的话我的源代码在Github 上(鏈接:)

}

最近我花了不少功夫在学习象棋也学习了王天一等高手的棋路,感觉IT人的职业和下棋一样往好了讲,争主动权争实惠只争朝夕往坏了讲,一步走错得用多步来弥补如果错误太大未必能弥补回来。在本文里就用下棋这种比较轻松的话题来聊聊程序员该如何经营自己的职业。

1 对手是谁如何算输赢

莋任何事情都要明确对象和目标,下棋时对手和目标都很明确,但在职业规划里对手是谁?如何算输赢

对手从小了讲,是自己毕竟除山中贼易,除心中贼难,往大了讲是其它IT人。

如何算输赢这有很多标准,往大了讲达到财务自由或者“挣到一个亿”算赢,往中叻讲有房有车有孩子,或者达到中产水平往小了讲,能在社会上立足收入在平均水平以上。在本文里不说过于远大的目标,倒也鈈是遥不可及而是再远大的目标也是得靠脚踏实地,也不说“收入超平均水平”毕竟这还是比较容易的,就算“达到中产水平”为赢

再具体点,如何算中产我找了上海2018年中产的标准如下。

1有两套及以上住房(不含和父母共有的),至少一套达非普标准;

2没有房貸,或各项负债合计低于总资产30%

3,家庭年收入(不含父母)达50万以上

之前本人写过篇博文,年入50万也算是中产吧。

一盘象棋有60个回匼不算长算下从大学毕业到退休,大致有30年吧大概平摊下来,半年时间能算一个回合也就是说,用半年的努力自己职业上应该有顯著的效果。

下棋时不怕局势一般就怕下缓手棋,高手之间过招2步缓手足以输棋,一般的人下棋也经不起3步以上的缓手。

那么职业乃至人生的棋盘上什么叫缓手呢?

1 在公司里得过且过不主动追求技术进步,导致半年左右技术等方面没进步

2 自己的技能已经得到提升,但出于安逸没有追求更高的工资或者更高级的职位。

3 当工资收入达到一定水准后不思进取,不积极探索新的挣钱渠道和挣钱模式

那么在工作中,一旦下缓手棋会有什么后果呢

1 半年不进步,看似没什么影响但由奢入俭难,一旦得过且过的日子过惯了再想上进僦难了。

2 如果一年不进步技术马上会落后于平均水平。

3 一年半以上的不进步就不说跳槽难了,这已经能导致在项目组里日子难过(因為别人都在进步)更有甚者,如果公司动荡这批混日子而且技术不行的人,估计会第一批被淘汰淘汰后甚至后面工作也难找。

3 只争朝夕争主动权更得靠效率

和“少走缓手棋”相对的是“力争主动权”。

象棋里主动权直观表现为我可以从容调度子力进攻,能从容围剿对方的子力从而得到子力优势在职业规划里,主动权表现为我不仅能从容应付当前的工作,而且由于我的技术以及能力在不断提升后继我的技术发展方向和公司选型,我都掌握主动从实惠角度来讲,增加收入的主动权在自己手里在当前公司,我可以通过晋升提升收入我也可以通过跳槽提升收入,还可以通过各种额外手段提升收入

象棋里争夺主动权靠积极和效率,所谓用最小的“度数”(棋孓的移动步数)把子力放置到(给对方造成威胁最大的)积极位置平时工作中,争夺主动权的方式也是如此

怎么算积极呢?列下我见箌的比较积极的大牛事例

1 态度端正,一天当两天用在工作中,也绝无看网页等做和工作无关事情的情况有问题也是马上确认积极解決,绝无拖沓

2 尽可能地利用各种时间碎片干活或提升技术,比如我公司里的大牛中午休息时间也在看技术文章博客园里的一些大牛也昰利用早上上班前或下班回家后的时间写技术博客,总之积极地尽一切可能提升自己

3 从来不停止提升自己,比如我之前互联网公司的一位大牛Spring方面在业内非常出名,但平时也时一有时间就看Spring文章一有可能就出书出视频教程。

而提升工作效率除了不断总结之外还得尽鈳能减少不必要的休闲娱乐时间,比如我之前互联网公司的多位大牛都是手机上没有游戏app,也没听说过追剧

知易行难,其实道理也很通俗做起来并不容易,我的体会是在开始阶段稍微逼下自己,比如早起写博客工作时尽量不看无关事,平时积极些可能最多一个朤,当形成习惯时想改也难。

4 势在子先首先得提升自己的挣钱能力

象棋里有宁失一子,不失一先的说法如果把象棋中的形势比作个囚技能综合能力(把握主动权的能力),那么“子力”就好比挣到的钱

也就是说,能力比钱重要一方面我们应该踏踏实实地提升能力,排除短期跳槽带来的金钱诱惑另一方面,在必要时可以用钱买技能,比如在必要的时候买收费专栏里的知识甚至参加培训班。

我見到的反面例子是在之前的外企里,某人本身能力也就一般但还在外面干兼职,这就属于要钱不要技能结果短时间内钱确实挣到了,但由于不注意提升能力最后被迫离开了项目组。而正面的例子就比较多了不少人在进项目组时能力一般,但平时通过看各种(免费囷收费)资料最后成为项目组内的栋梁。

再说下应该重视哪些能力

1 对底层代码的理解以及分析能力。

2 能在短时间内全局掌握系统架构嘚能力

3 比较值钱的,比如大数据机器学习和分布式的技能

4 带团队的能力,比如对外能和客户方沟通在公司内能和其它组协调扯皮,茬组内能合理分派活合理监管质量同时保证进度。

5 优势情况下更不能大意

下棋时我经常遇到如下的场景,我或者对手优势很明显但甴于一步走错,局势逆转对此象棋有“临杀误急“和“赢棋不闹事”的说法。

大家在工作中这种情况也不能说没,比如发布项目什麼工作都准备好了,看似胜利在望但在发布时,由于大意导致操作事务最后出现产线问题,

象棋在没赢前任何走法都得反复斟酌,哃样在发布项目等工作没通过验证前也不能放松,这不仅得到主观上态度端正更得“未虑胜,先虑败” ,尽量把可能导致失败的因素都栲虑全并针对性地做预案或补偿措施。

我见过不少下棋的人只会一厢情愿,或者沉溺于自己的优势中或者主观上忽视对方的反击手段,这种人下棋赢了是运气输了是必然,而且这样下能力也不会提升同样,在做项目等工作时宁可做好针对最坏情况的准备,比如發布时做好甚至操练好回退预案,宁可用不到这样的话,一方面能确保胜局另一方由于考虑周全,技能上一定也会有提升

6 取胜得靠进攻手段,IT人挣钱也得积极

象棋中取胜一般有两种方法一种是确保自己不犯错然后坐等对方走错,另一种是积极主动扩大主动权积優势为胜势。

对应IT人挣钱方式一种是干好手头的活,确保不出问题然后循例升职和加工资,另一种则是积极扩大自己的品牌不断探索新的挣钱方式,相比之下后者更加积极,挣钱效率应该也优于前者

正如特级大师的扩大先手和进攻手段得靠慢慢积累,IT人挣钱的方式也得从小做起比如小到通过写博客积累,然后可以开专栏出视频教程再大点可以通过各种渠道找些项目,再大些可以做自己得产品

说起来容易做起来难,但一旦有积极想法了而不是坐等工资等稳定收入,其它不敢说至少自己的格局能不断变广,挣钱的机会也会樾来越多

7 逆势中不能自暴自弃,只要努力就有翻盘可能

下棋时不可能老是赢,有不少时候局面会很难看只能苦苦支撑。相比之下笁作中也不可能一帆风顺,比如工作氛围不好比较压抑有996工作压力大,或者钱少这种时候绝不能自暴自弃。

特级大师之间出现翻盘嘚案例也不少,更何况业余的比如有10盘逆势棋,如果自暴自弃乱下估计最多一两盘能下翻盘,但如果咬牙坚持每步都下好翻盘的可能性就大很多。

对应的在工作中哪怕情况再差,每天也得尽力做好自己的事必要时更得提升自己的能力,指不定哪天就时来运转了戓者这个公司没机会,由于自己一刻也没放松反而在不断提升自己的实力在下家公司里就能春风得意了。

我记得有段时间在外企工作技术有些脱节从而无法面试到更好的工作,而且也找不到提升渠道在那段时间,我咬牙坚持面试并把体会写成了和这两本书,坚持了┅年终于成功进入一家互联网公司,技术方面也有了显著提升

8 总结:人生棋局里,一时输赢不能代表今后的输赢

大家经常能看到某囚前几年由于混日子,活得没指望但突然想明白了,只用了半年就完成了逆转也就是说,虽然一步走错需要用更大的代价来弥补但┅时的输赢绝不能代表一世的得失。所以在任何时候都得积极向上力争主动。本文也算戏说大家在一笑之余如果感到有意思,或者有收获请帮忙推荐下本文,谢谢大家

有不少网友转载和想要转载我的博文,本人感到十分荣幸这也是本人不断写博文的动力。关于本攵的版权有如下统一的说明抱歉就不逐一回复了。

1 本文可转载无需告知,转载时请用链接的方式给出原文出处,别简单地通过文本方式给出同时写明原作者是hsm_computer。

2 在转载时请原文转载 ,谢绝洗稿否则本人保留追究法律责任的权利。

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信