文章目录

  • 引言
  • 局部搜索算法
    • 爬山法
    • 模拟退火
    • 局部束搜索
    • 遗传算法
  • 连续空间中的局部搜索
  • 使用不确定动作搜索
  • 使用部分可观察信息搜索
  • 联机搜索问题
  • 总结

引言

这是最优化的内容,我们用状态(包含很多参数)描述一个对象。把这些参数作为坐标轴就会获得一个超空间(函数定义域)。超空间里的点分别对应了某个函数值,我们在空间里找函数的最大值。
后面会介绍各种算法,但是核心是找上一节课的h(n)——一个描述状态分数的函数。

局部搜索算法

所谓局部就是只关心状态,不关心路径,从一个点到其他点。

爬山法

类似梯度下降思想,只不过形式上反过来。就是找参数在状态空间临近区域的最优解。相信大家都会。
显然有很多时候无法找到全局最优解。
比如到了一个平坦的区域,往哪个方向最大值都不会变化,这时候可以有随机爬山法,比如说随机选择后继直到上升。
但这样也不行,可能会被困在局部最优解。可以采用这样一种方式,随机生成一个初始点,爬山法找到解的概率为p,那么重复进行1/p次爬山法,基本可以找到最优解。也就是反复随机生成初始点进行爬山。

模拟退火

给一个初始点,在他周围随机找点,如果比他更优则更新到这个点,否则以概率p接收这个点,每次接受“更差”的点时,p的值以指数下降。
我这里记录一下我对这个算法的理解

如果使温度(接收概率)下降够慢,找到全局最优解的概率趋于1

我们考虑特殊情况,如果我的温度不下降,始终以百分之五十的概率接收,也就是存粹的随机算法,那么在时间趋于无穷时,一定会找到全局最优解。但是事实上我们并没有无限次尝试的机会,我们必须让结果收敛,这种操作会使得找到全局最优解的可能性降低,但是性能大大提高。
时间和精准程度处在一种矛盾的平衡当中,将这个概率从1降低到0.999,但是却可以使得时间消耗从无限变为有限。模拟退火可以说是完全随机的一种妥协。

局部束搜索

随机选择k个点,搜索所有k个点生成的状态,取最好的k个,重复此过程。这和遗传算法有点像,但是没有k个点之间的交叉,所以是无性繁殖。
局部束算法也存在爬山法局部最优的问题,很容易所有点都聚集到某个区域附近。而随机束算法则是为了解决这个问题,不再是选择最好的k个后继,而是随机选k个更好的后继。

遗传算法

随机生成k个状态,给状态编码,然后用某种算法(最简单交换一部分),然后会得到很多新的状态作为“孩子”,从这些“孩子”中选k个最好的,重复过程。
说得简单,具体比较复杂,但是思想比较容易理解。

连续空间中的局部搜索

连续空间的搜索难度在于每种状态接下来的分支是无限的。基本的思想还是梯度法,但是由于自变量多,方程的梯度=0无法求出封闭式解(就是列的方程没有通解,每次都要经过数值推理),但是可以使用局部梯度(对某个参数求导),然后沿着这个方向爬。
也有更快的爬法,这些可以去看最优化算法,什么牛顿法、共轭梯度法、拟牛顿法啥的,有空再整理一下。

使用不确定动作搜索

在同样的条件下,一个状态可能转移为多个状态。那么整个过程不再是一棵树,而是一个序列。
就像你开车,大路短但可能堵车,小路长但是比较通畅。你的决策产生的结果还依赖于你不可观测的外在条件。这种时候你的策略也被叫做应急策略。

通常来说,我们想要找的是一个稳定可以达到目标的解,我们最终的解应该是一棵树,无论在树的分叉路口如何走,最终都会到达满足的状态点。

还是普通的搜索,只不过一个需要抉择的节点,需要在所有子树中都找到解,这个点才能在最后的解答中。

由于搜索过程中会出现循环,你可以把它理解成一棵无限生长的树(或者一张有环图)。在搜索树的过程中把状态hash,如果遇到相同的状态就是遇到循环,也不需要再继续搜索了。

使用部分可观察信息搜索

  • 先是无观察信息搜索
    即便我根本不知道自己身处什么状态,也可以找出最好的决策。
    来波很不恰当的但是我相信很能说明问题的例子。你肚子疼,你应该去做身体检查,然后确定自己吃什么药。但是你怕检查完你直接痛死了,于是你吃了所有治疗肚子疼的药,然后你也不知道,总之有一个药让你肚子不疼了。
    这个例子当然是在胡说八道,但是却告诉我们,即便我们根本不知道处在什么状态,也可能做出走到目标点的决策。
    比如说状态(1,1,0)代表得了病1、2,没有病3,那么所有状态一共有8种,但是通过吃所有药都可以变为(0,0,0)的状态。

求解方法比较魔幻,因为状态太多了。可以先求解满足一个状态的路径,然后一个个看这些路是不是满足其他状态;也可以把这些状态统一打包编码不管内部情况;或者使用巧妙的动态状态描述,比如说一个药吃了能治疗某四种病,不用(0,0,0,0)表述,而是直接打包成一种某类病0。

  • 然后是可观察搜索/部分观察
    我慢慢觉得没啥好写的,无非是状态定义和转移的问题,我越来越觉得这本书只可意会不可言传。

联机搜索问题

失去上帝视角,走一步看一步。我(智能体)出生在了一个迷宫中,我现在要出去,我只有前后左右四个方向可以走,和一个标志和我位置的传感器,但我不知道迷宫长什么样子。
还是一棵树,但是只有到了某个节点才能看到之后的节点,那显然就是一个一直回朔的过程。最差情况每个点要走两次(dfs)

  • 随机行走算法
    爬山法,这回是真爬山,爬到了一个小坡上面(局部最优)。按之前的再随机一个出生点再爬,但是不行,因为这是真爬山。那我就随便走走,往右走走虽然变低了但是却可以看到一座可能更高的山(启发式函数h(n)这里我当作目测山高),那我就会往那里走。

总结

我发现这门课越来越玄学,真的全靠感受。给的都只是思想,细节实现要靠自己,也要根据实际问题。

人工智能基础——全局搜索方法相关推荐

  1. 活动报名 | “认知神经科学”助力人工智能突围的方法路径

    与6位图灵奖得主和100多位专家 共同探讨人工智能的下一个十年 长按图片或点击阅读原文,内行盛会,首次免费注册 2020年6月21-24日,第二届北京智源大会(官网:https://2020.baai ...

  2. 理解与理论:人工智能基础问题的悲观与乐观

    来源:筑土为坛 梅剑华,男,1980年生,湖北秭归人,山西大学哲学社会学院教授,博士生导师,先后赴美国罗格斯大学.匹兹堡大学.奥地利萨尔茨堡大学等访学,研究方向是语言哲学与心灵哲学.实验哲学与认知科学 ...

  3. UC伯克利教授Stuart Russell人工智能基础概念与34个误区

    来源:数据简化DataSimp 数据简化DataSimp导读:UC伯克利教授StuartRussell人工智能基础概念与34个误区,Russell是加州大学伯克利分校人工智能系统中心创始人兼计算机科学 ...

  4. 大学计算机与人工智能基础课后答案,好书推荐 | 人工智能基础及应用

    原标题:好书推荐 | 人工智能基础及应用 扫码优惠购书 内容简介 本书主要介绍与人工智能相关的一些基础知识,全书共9 章.第1 章简要介绍人工智能的发展历史及国内外研究现状,第2 章详细给出学习人工智 ...

  5. 你不得不了解的人工智能基础知识

    你不得不了解的人工智能基础知识 1.什么是人工智能? 首先我们利用传统的软件和人工智能进行比较,就容易使大家更容易理解. (1) 传统软件 VS 人工智能 传统软件是[基于规则]的,需要人为的设定条件 ...

  6. UC伯克利教授Stuart Russell人工智能基础概念与34个误区 (公号回复“AI基础概念”可下载PDF资料)

    UC伯克利教授Stuart Russell人工智能基础概念与34个误区 (公号回复"AI基础概念"可下载PDF资料) 秦陇纪 数据简化DataSimp 今天 数据简化DataSim ...

  7. AI 人工智能基础及应用

    一.人工智能概述 1. 简史 2. 应用领域 安防 实时从视频中检测出行人和车辆. 自动找到视频中异常的行为(比如,醉酒的行人或者逆行的车辆),并及时发出带有具体地点方位信息的警报. 自动判断人群的密 ...

  8. Python人工智能基础到实战课程-北方网视频

    ** Python人工智能基础到实战课程 ** 课程主要分为6大模块,带领大家逐步进步人工智能与数据科学领域. 第一阶段:Python语言及其数据领域工具包使用 本阶段旨在帮助大家快速掌握数据领域最常 ...

  9. 人工智能基础知识总结

    本文是对人工智能基础的期末复习知识总结. 文章目录 一.绪论 什么是人工智能? 什么是图灵测试? 人工智能的研究范围有哪些? 二.Agent 什么是Agent? 什么是理性Agent? 如何构建理性A ...

最新文章

  1. 设置mysql远程连接root权限
  2. Ng-template寄宿方式
  3. Chromium on Android: 认识Chromium WebView
  4. 大爱jQuery,10美女模特有用jQuery/CSS3插入(集成点免费下载)
  5. Android之面试题总结加强版(一)
  6. 用友通ERP客户端报无法登陆错
  7. python编写网页游戏脚本_[大数据]用Python脚本做一些网页游戏中力所能及的自动化任务 - 码姐姐找文...
  8. php如何判断是否为json格式,php如何判断是否为json数据(格式)
  9. ASP.NET AJAX(开发代号Atlas)重要参考资源大收集
  10. html 星空效果,html5 canvas炫酷旋转银河系星空背景特效
  11. 图书馆占座系统(二)
  12. 网页自动关机代码HTML,电脑怎么设置自动关机时间
  13. 201632位matlab下载_Matlab R2016a x32|matlab 2016a 32位版下载 完全免费版 - 121下载站
  14. kmz转换为dwg_CAD软件中的PDF插件如何实现转换DWG?一篇文章完整解释
  15. 三条中线分的六个三角形_一个三角形的三条中线分别是3、4、5,求这个三角形的面积...
  16. 音视频入门系列-音视频基础知识篇(录播、点播、直播)
  17. 2022年1~10月语音合成(TTS)和语音识别(ASR)论文月报
  18. 如何实现罗克韦尔PLC的模拟量采集和远程上下载?
  19. linux下进程管理的原理,Linux进程管理:supervisor和nohup原理及使用
  20. Matlab中关于数值积分及符号积分的讨论

热门文章

  1. Unity TimeLine丨A1.创建TimeLine、Animation Track,Extrapolation属性讲解
  2. netty源码分析7-NioEventLoop-run方法疑难点
  3. 二、Eureka之server端集群节点发现,数据同步
  4. 如何同时登陆多个微信账号
  5. 关于《更新win11之后我的edge浏览器打不开》这件事
  6. UNITY3D自学(六)-- unity视频播放的Quicktime问题
  7. 基于JAVA教室实验室预约系统设计与实现 开题报告
  8. 多因素分析显示脂肪沉积比炎症损害更能预测强直性脊柱炎患者的脊柱新骨形成...
  9. 基于STM32的高精度温度测控系统-原理图设计
  10. 职称计算机pptt应用模块,2016年职称计算机考试PowerPoint单选练习题4