人工智能:一种现代的方法 (第四章 经典搜索(优化)算法)(完结)

回到总目录可以点击索引文导航

4.1 离散的局部搜索算法

下面讨论的都是最大化目标问题。

4.1.1 爬山算法

也被称为贪婪局部搜索,思想是遇到附近更好的结点就移动过去,这显然容易陷入局部最优。故有一些提升的算法,例如随机重启爬山法,即当搜索陷入局部最优或者陷入僵局(平原)时重新尝试一次。

4.1.2 模拟退火算法

与爬山算法类似,不过能很好的解决局部最优问题。首先该算法在当前结点附近随机选取一个结点,若新结点的值比原来的结点大,则直接移动过去,而若比原来的小,则以概率 e Δ E T \displaystyle e^{\frac{\Delta E}{T}} 转移,其中 E E 是值差,这种情况为负值, T T 逐渐减少。

4.1.3 局部束算法

记录k个状态并行的爬山,而不像是随机重启爬山法是串行的爬山法。另外在该算法中,有用的信息会在并行的线程中传递,这使得好的线程将会更好,而不好的将会很快的放弃掉。

4.1.4 遗传算法

在这里插入图片描述
另外,如果某种子串的适应度函数比平均值好,那么种群内这种实例的数量就会越来越多。

粒子群算法
进化算法

  • 遗传算法
  • 遗传规划(Genetic Programming)、进化策略(Evolution Strategies)和进化规划

免疫算法

4.2 连续的局部搜索算法

4.2.1 梯度下降法

梯度的概念就不细说了,更新方程为:
x i x i + α f ( x ) x i . x_i\to x_i+\alpha\frac{\partial f(x)}{\partial x_i}.
α \alpha 为学习率,也叫步长,如果太小就需要迭代多次,如果太大就容易错过最值。有一些调整 α \alpha 的技术,如线搜索(反复使 α \alpha 加倍知道f减少)

  • AdaGrad/AdaDelta
  • 补充问题
    梯度消失问题
    梯度溢出爆炸问题
  • Batch梯度下降
  • 随机梯度下降SGD
  • 在线学习
    Mini-batch SGD
    Map Reduce
  • 其他优化算法
    BFGS
    L-BFGS
    Conjugate gradient

4.2.2 牛顿法

4.2.3 带约束的优化问题

4.2.4 线性规划问题

4.3 不确定动作的搜索

与或树

4.4 不确定环境的搜索

不确定环境包括不可观察和部分可观察的。
信念状态(想象在小黑屋找自己位置的心里所想)。

4.5 联机搜索Agent

  • Agent先采取某个行动,然后观察环境变化并且计算出下一行动。
  • 联机搜索Agent需要先行动才能记住这次行动的结果。
  • 能够建造地图并且能够根据经验不断修正启发式估计,从而找到目标,是一种避免局部最优的有效方法。

4.6 习题和参考答案

  1. 在这里插入图片描述
    参考答案:
    a. 爬山法。
    b. 宽度优先。Local beam search with one initial state and no limit on the number of states retained, resembles breadth-first search in that it adds one complete layer of nodes before adding the next layer. Starting from one state, the algorithm would be essentially identical to breadth-first search except that each layer is generated all at once.
    c. 就会变成普通的爬山法,只往高处走。
    d. 变成随机游走模型,无论随机到附近的哪个结点都会移动过去。
    e. 在不变异的情况下,每个个体都相同,因此,该算法在个体空间中执行随机游动。
  2. 略。
发布了60 篇原创文章 · 获赞 32 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_42297855/article/details/103159840