---- theme: fancy 原文链接 Minimax Improvements -- 作者 Ofek Gila 在上一篇文章中,我们讨论了在 AI 游戏(主要是五子棋)中,应用 Minimax...无关移动 一些零和游戏中,在极大极小值搜索算法应用过程中,有些移动是可以跳过的。...Alpha-Beta 剪枝 很经典,且很出名的优化极大极小值算法的是 alpha-beta 剪枝 算法。...该算法允许你在运行极大极小值算法时跳过分支,该算法和原本极大极小值算法一样 -- 在同个深度找到相同的结果。该方法的本质是当它发现该分支比之前检查过的分支更糟糕的时候,就会退出该分支。...复查你的代码 这看起来不应该在本文出现,但是你可以在你的函数方法中进行改进。在极大极小值算法中,评估函数总是被调用。如果有任何东西 -- 无论多么微不足道 -- 如果有任何提高它的效率,这是值得的。
在该算法中,可将递归树的所有可能移动探索到特定的深度,并在递归树的子节点处对位置进行评估。...(也就是说,我们试图最大化或者最小化每一级的结果) 从“我方”的角度可视化极大极小算法。...isMaximisingPlayer)); game.undo(); } return bestMove; } }; 通过适当的极大极小算法...通过alpha-beta剪枝,我们的极大极小算法就会获得极大的提升,演示如下: 查看chess AI的alpha-beta增强版本:https://jsfiddle.net/Laa0p1mh/3/ 步骤五...通过文中方法,我们已经编写了一个能进行简单对战的国际象棋程序算法。算法中涉及AI的部分仅有200行代码,可以实现象棋中的一些基本概念。你可以在GitHub上查看最终的版本。
图3:借助简单的评估功能,双方进行游戏 步骤3:使用Minimax搜索树 接下来,我们要利用Minimax(极大极小)搜索树算法,它可以从多种选择中确定最佳方法。...也就是说,我们试图尽可能地减少或最大限度地提高每一级的评估值。 ? 图4:在人为选择位置时,可视化极大极小算法。白棋的最佳走法是b2-c3,此时能够达到评估为-50的位置 ?...步骤4:α-β剪枝搜索 α-β剪枝搜索是极小极大算法的一种优化方法,允许我们忽略搜索树中的一些分支,这有助于我们在使用相同的计算资源时更深入地评估极大极小搜索树。...α-β剪枝搜索的原理是是如果我们找到比已经发现的动作更糟糕的情况,那我们可以停止评估搜索树那一部分的情况。 α-β剪枝搜索不会影响极大极小算法的结果,而是大大加速其计算过程。...图9:加上评估方法和α-β剪枝优化的极大极小算法表现,设置搜索深度为3。 结论 对于一个简单的象棋机器人,它的优点是不会产生愚蠢的错误操作。但是它仍然缺乏对象棋的战略性理解。
通过在CS50.ai应用程序中为Ed上的CS50 Duck创建的一个专用API端点,开发人员就可以控制由GPT-4输出的回答,确保CS50 Duck的输出符合课程的设置和教学理念,而非简单地直接回答学生的问题...这些嵌入是向量表示的(即数值),可以为机器学习算法捕捉语义,从而更有效地解释和利用数据。...之后,开发人员还会为每个输入进来的来自学生的提问创建一个新的嵌入,并在向量数据库中执行嵌入搜索,以检索按相关性排序的内容。 如此一来,就最大程度地规避了幻觉的出现。...他们有可能还没习惯,或者是本身已经非常优秀了,不需要AI来协助自己学习。 还有不少用过的学生将CS50 Duck拟人化,把这个小动物当作自己的好朋友。...而为了评估CS50 Duck在Ed上的表现,开发人员邀请了一位不在团队中的资深开发者来审查CS50.ai生成的回复。
引言与背景 当开发一个算法用来玩游戏时,目标通常是让它玩得尽量好。对于许多游戏来说,成功有一个合适且明确的数字标准。...在这种情况下,这些内容应该是由类似人类一样的人工智能玩家去进行测试,不像人类的人工智能玩家测试的话可能会在很多地方出现很大差异,即便它们都有相同的技能等级。...试验平台和数据收集 我们使用GVG-AI平台来进行试验,因为它包含大量的拥有相同玩家API的视频内容,且它很容易被用来进行数据收集。这些游戏是用VGDL来进行编码的,能够代表许多2D游戏。...4.提出的MCTS修改方案 蒙特卡洛树搜索(MCTS)是一个随机树搜索算法,它被广泛应用于一般游戏以及特定玩法的游戏如Go:在适用的情况下,它逐渐接近和极大极小值算法一样的结果。...4.4极大极小值 极大极小值是Jacobsen等人提出的,其中的几个技术被用于提高MCTS运行无限Mario Bros的性能,极大极小值通常被建议为Mario中克服懦弱行为的方法——角色会不自觉的避开间隙和敌人
比如用户-项目的评分矩阵,通常会用用户对所有项目的评分均值或者是对项目评分的均值来取代对应的位置,然后再建立线性模型(其实就是SVD分解)拟合矩阵A,但是通常用这种比较原始的方法来拟合矩阵可能会出现用错误的模型拟合出来与正解偏差更大的值...,然后根据错误的值拟合模型,从而使得整个模型也出现问题。...X表示参数,其实就是我们极大似然最大情况下近似的表示矩阵A的矩阵,我们要求的就是X。在存在可观测数据和隐数据的情况下估计参数就需要利用EM算法。 如果Ai,j是可观测数据,则有 ?...极大化Q函数,需要极小化下式: ? 我们可以把上面这个式子通过规范 ? 我们的目标转换为极小化 ? 根据我们在前面的分析,达到上式中的极小情况,可以用SVD来解决,对 ?...) i,j近似的表示Ai,j。 下面是算法的详细过程: ?
前言 上篇文章,介绍了一下五子棋 AI 的入门实现,学完之后能用,就是 AI 还太年轻,只能思考一步棋。 本文将介绍一种提高 AI 思考能力的算法:极大极小值算法。...Minimax算法 又名极小化极大算法,是一种找出失败的最大可能性中的最小值的算法(即最小化对手的最大得益)。通常以递归形式来实现。 Minimax算法常用于棋类等由两方较量的游戏和程序。...—— 百度百科 极大极小值搜索算法 算法实现原理 对于五子棋游戏来说,如果 AI 执黑子先下,那么第一步 AI 共有 225 种落子方式,AI 落子到一个点后,表示 AI 回合结束,换到对手(白子)...AI 选择的分支一定是选最高分值的叫做 Max 分支,对方选择的分支一定是选最低分值的叫做 Min 分支,然后由低到高,倒推着求出起点的得分,这就是 极大极小值搜索 的实现原理。...attack; 新增 minimax 方法,编写 极大极小值搜索 算法的实现代码。
主要内容包括:参数和非参数回归、聚类、提升、图形分析、极大极小理论、降维等。本课程最适合已有统计学和数学基础的学生。此外,课程还提供作业任务和解决方法。 3. 滑铁卢大学机器学习课程 ?...这是一个理论性质的课程,将带领你探讨机器学习算法中的数学关系。...本系列共31个视频,将介绍 Pandas 及其用途,演示数据分析中的每个步骤。 8. CS50 机器学习课程 ?...v=G-kiewt438M&t=560s 这是哈佛大学和耶鲁大学的 CS50 机器学习课程中的一节。这个视频介绍了机器学习及其应用。...v=Xhec39dVGDE AI 驱动下的计算机如今很聪明,似乎可以在任何新游戏中击败人类。AlphaGo 今年初在围棋对弈中赢得人类专业棋士时获得了极大的关注。
这篇文章出现后,包括Yann Lecun在内的业界专家纷纷点赞转发,大概真的是说出了他们的心里话吧。而除了AI记者,这篇文章中提到的事实和建议,大概需要每一个关心人工智能的人仔细读读。...(作者:不,我不是个脾气糟糕的怪老头) 亲爱的记者朋友们, 近期常能读到不少人工智能相关的“烂文”(新闻和公关稿都有),故想针对如何写成更好更真实的人工智能新闻为各位稍提建议。...有些文章基本上是废话,有些错误满篇,有的看起来好像很靠谱但也充满着误导。我不会指名道姓,任何在AI领域工作或者经常读AI新闻的人都会有大把的例子。...IBM的深蓝计算机战胜了国际象棋大师盖瑞 卡斯帕罗夫证明了电脑比人类更会下国际象棋,其中的核心算法是有阿兰· 图灵在1940年代就提出的极大极小值算法。...这些人在AI变得很酷之前就开始研究AI了,所以已经经历过了一个AI炒作的循环。 有可能这个人可以告诉你这个新进展是从哪个旧想法稍微改进一点而来的。 不要相信炒作,多寻求客观意见。
10月,哈佛大学极受欢迎的(并且对所有人开放的)计算机科学入门课程 CS50 有一位特邀讲师加入:人工智能应用构建平台 Fixie 的联合创始人 Matt Welsh。但他是这样开始他的演讲的。...50 年来,编程语言在疯狂尝试新的数据类型和方法论,构建了大量复杂的工具生态系统,但我们人类在编程方面依然很糟糕。“我不认为再花 50 年去解决它。”...也许未来的程序员在 AI 的帮助下会提高 1 万倍的效率。他们提出的可能性是,“使软件工程师成为软件工程师的不只是实际数据”。 Welsh 思索着总结了这个问题。...但是最后一个问题问到,所有这一切对今天的 CS50 学生意味着什么。在 AI 驱动的界面已经将整个层抽象出来的未来,今天的“经典”编程培训是否在任何程度上有帮助? “这才是真正的问题。”...但是,如果社会希望其学生了解他们世界中的程序是如何被创造出来的,“我认为,如果例如大学项目不关注这一点,假设教授计算机科学的方式与过去 25 年相同是正确的,那将是一种错误。”
深度学习(2012)出现之前,如果不考虑集成学习的算法,不考虑特定的训练数据集,在分类算法中的表现SVM说是排第一估计是没有什么异议的。...在二维平面中,感知机模型是去找到一条直线,尽可能地将两个不同类别的样本点分开。同理,在三维甚至更高维空间中,就是要去找到一个超平面。...二、理解线性支持向量机 2.1 线性支持向量机思想 正如上文所说,线性支持向量机的思想跟感知机的思想很相似。其思想也是对给定的训练样本,找到一个超平面去尽可能的分隔更多正反例。...从(4)中,我们可以先求目标函数对于w和b的极小值,再求拉格朗日乘子α的极大值。...首先,分别对w和b分别求偏导数,并令为0: 将(5)和(6)代入(4)得到: 对(7)取反得到: 只要我们可以求出(8)中极小化的α向量,那么我们就可以对应的得到w和b,而求解α需要使用SMO算法,由于该算法比较复杂
不知不觉中,把自己打包给卖了,本文就是来补坑的。 我们一步步来讲解,详细的代码,请跳转到文末。 基本术语 我们先来了解一下五子棋的基本术语。...最合适这个位置需要遍历整个棋盘,会很耗电脑,得不偿失,具体可以参考文章深度优先搜索实现 AI 井字游戏 我们通过极大极小值算法,算出最最优位置。...我们先对极大极小值算法有个概念: Minmax 算法又名极小化极大算法,是一种找出失败的最大可能性中的最小值的算法(即最小化对手的最大得益)。通常以递归的形式来实现。...先挖个坑,后面有文章详细讲解这个搜索算法。还有 Alpha-beta 剪枝这个搜索算法。...参考文章 极大极小值算法 对抗搜索 五子棋基本棋形及特点 五子棋AI进阶:极大极小值搜索 五子棋算法设计 本文正在参加「金石计划 . 瓜分6万现金大奖」
其中包括大量严重的误诊、治疗方法错误、资源的极大浪费、低效的工作流程、不平等、患者和临床医生之间时间不足。带着改善这些问题的渴望,医疗行业的领军者与计算机科学家声称 AI 也许能帮助解决所有这些问题。...这个例子说明有缺陷的算法有可能会给患者造成重大的伤害,导致医疗事故。不同于一位医生的错误只会伤害到一位病人,机器算法有可能带来巨大的医源性风险(iatrogenic risk)。...有关算法的黑箱的内容已被写了很多,围绕这一主题的争论也有很多;尤其是在 DNN 的情况中,我们有可能无法理解输出的决定因素。...错误算法的风险极大高于单个医生-病患交互的风险,但是降低误差、低效和成本的回报也很大。...人类的健康太宝贵了——除了风险极小的日常事务之外,还远远不能将其托付给机器。 ? 图 5:自动驾驶汽车与医学自动化的类比。第 5 级是不存在人类医生作为后备可能性的完全自动化,这不是目标。
初学者可能只能看一、两个轮次,而高手可以看几个甚至十几个轮次。 极大极小搜索策略,就是模拟人的这样一种思维过程。...算法描述 极大极小搜索策略 这个搜索策略是考虑双方对弈若干步以后,从可能的走法中找到一个相对较好的来落子,即在有限的搜索深度范围内进行求解。...前面的代码都是分别用两部分代码处理了极大节点和极小节点两种情况,其实,可以只用一部分代码,既处理极大节点也处理极小节点。...一般的,在极大极小搜索中,这个评估函数可以根据势态优劣特征来定义(主要用于对端结点的“价值”进行度量),有利于程序方的势态, 为正,有利于用户方的势态, 为负,势均力敌的情况, 为 ,并且,若...那么很容易想到的是,对于不同的状态,应当是有不同的分数。
简单来说,给定状态,并假设对手试图最小化我们的收益,该算法希望找到一个可以最大化己方收益的行动。很自然这也是该算法得名极小化极大算法的原因 。...上面的博弈树说明了如何在极小化极大算法中选择最优行动。白皇后要吃掉所有的黑棋,就要选择颜色尽可能深(尽可能黑)的博弈结果(奖励值 = 像素强度),而黑皇后则相反,要选择颜色最浅的路径。...这就是极小化极大算法的基本工作原理。 极小化极大算法的最大弱点是它需要展开整个博弈树。在面对分支因子高的博弈(如围棋或国际象棋)时,该算法生成的博弈树就会十分巨大,难以计算。 那么有没有补救办法呢?...比如下面这种棋局我们就可以很容易猜到结局。 ? 另一种克服博弈树过大问题的方法是通过 alpha-beta 剪枝算法修剪博弈树。alpha-beta 剪枝算法可以看作升级版的极小化极大算法。...它以极小化极大的方式遍历博弈树,同时避免某些分支的展开。其结果在最好的情况下与极小化极大算法结果相同,但优势在于 alpha-beta 剪枝算法通过减少搜索空间提高了搜索效率。
在这方面的研究如果得到突破,可以极大的提升机器学习的效率。...为什么算法在Tetris中可以很容易的做出大部分决定?或许所有序贯决策问题都可以呢?...ICML中的增强学习的研究主要集中于通过训练算法来玩游戏或建立竞争性的模型来研究其中的规律。...特点也是将“记忆数据”加入了算法中。记忆力的完善应该是未来AI的发展趋势,也是AI提升空间最大的地方。...入选理由:Minecraft是一款开放性游戏,让AI将这个游戏玩得有意义比让AI玩俄罗斯方块要难很多,而且这项研究也涉及了建立AI记忆的内容。
我们可以构建没有隐藏单元的小规模神经网络,其局部极小值的代价比全局最小点的代价大很多。如果具有很大代价的局部极小值是常见的,那么这将给基于梯度的优化算法带来极大的问题。...我们可以将鞍点视为代价函数某个横截面上的局部极小点,同时也可以视为代价函数某个横截面上的局部极大点。多类随机函数表现出一下性质:低维空间中,局部极小值很普遍。...这意味着,局部极小值具有很低代价的可能性比高代价大得多。具有高代价的临界点更有可能是鞍点。具有极高代价的临界点就很可能是局部极大值了。以上现象出现在许多种类的随机函数中。...例如从优化的角度看与鞍点很相似的极大值,很多算法不会被吸引到极大值,除了未经修改的牛顿法。和极小值一样,许多种类的随机函数的极大值在高维空间中也是指数级稀少。...遇到斜率极大的悬崖结构时,梯度更新会很大程度地改变参数值,通常会完全跳过这类悬崖结构。不管我们是从上还是从下接近悬崖,情况都很糟糕,但幸运的是,我们可以使用启发式梯度截断来避免其严重的后果。
上述问题假如有任何一个样本分类错误,那么就有 ? 此时如果让对应的系数ai趋于无穷大,则该函数是不可能取得极小值的,所以上面的式子要想有解,一定会满足: ? 因此 ?...而我们本来想求的就是在约束条件下的w的范数极小值,所以: ? 它要求出w,b的值满足内侧的极大值,但这个形式是难解的,不过因为下面的式子存在: ?...所以上式极小极大值问题可以转换为极大极小值问题: ? 求解上面的式子只需要将内侧的式子对w,b求导,就能得到a。 ? ? 要求上式的极大值问题,又可以转化为极小值问题求解,不再赘述。...因为它们虽然参数不多,但是有很大的计算量,下面首先看看经典网络中这些层的计算时间比例: ?...如上图,将1*1卷积层以及Pooling层分支分别合并到和它并行的3*3卷积和5*5卷积分支中。
在 A 和 B 的两人有限零和序列博弈中(其中 A 尝试最大化其收益,而 B 尝试最小化 A 的收益),极小极大算法可以用以下的递归形式来描述: ?...这正是该算法被称为极小极大的原因。我们需要做的就是展开整个博弈树,并反向传播由递归形式的规则得到的值。 ? 上图中的博弈树展示了极小极大算法中的最佳行动选择过程。...这正是基础的极小极大算法的执行过程。 极小极大算法的最大弱点是它需要展开整个博弈树。对于有高分支因子的博弈(例如围棋或国际象棋),该算法将导致巨大的博弈树,使得计算无法进行。 那么有什么解救的办法吗?...这对于人类来说很自然:即使博弈仍在进行,你也可能通过观察围棋或国际象棋的棋盘预测胜者。例如,对以下棋局可以很容易知道结束棋局的走法。 ?...alpha-beta 剪枝是提升版的极小极大算法,它以极小极大算法的形式遍历博弈树,并避免某些树分支的展开,其得到的结果在最好的情况下等于极小极大算法的结果。
领取专属 10元无门槛券
手把手带您无忧上云