人工智能:一种现代的方法 (第四章 经典搜索(优化)算法)(完结)
回到总目录可以点击索引文导航。
4.1 离散的局部搜索算法
下面讨论的都是最大化目标问题。
4.1.1 爬山算法
也被称为贪婪局部搜索,思想是遇到附近更好的结点就移动过去,这显然容易陷入局部最优。故有一些提升的算法,例如随机重启爬山法,即当搜索陷入局部最优或者陷入僵局(平原)时重新尝试一次。
4.1.2 模拟退火算法
与爬山算法类似,不过能很好的解决局部最优问题。首先该算法在当前结点附近随机选取一个结点,若新结点的值比原来的结点大,则直接移动过去,而若比原来的小,则以概率转移,其中是值差,这种情况为负值,逐渐减少。
4.1.3 局部束算法
记录k个状态并行的爬山,而不像是随机重启爬山法是串行的爬山法。另外在该算法中,有用的信息会在并行的线程中传递,这使得好的线程将会更好,而不好的将会很快的放弃掉。
4.1.4 遗传算法
另外,如果某种子串的适应度函数比平均值好,那么种群内这种实例的数量就会越来越多。
粒子群算法
进化算法
- 遗传算法
- 遗传规划(Genetic Programming)、进化策略(Evolution Strategies)和进化规划
免疫算法
4.2 连续的局部搜索算法
4.2.1 梯度下降法
梯度的概念就不细说了,更新方程为:
为学习率,也叫步长,如果太小就需要迭代多次,如果太大就容易错过最值。有一些调整的技术,如线搜索(反复使加倍知道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 习题和参考答案
-
参考答案:
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. 在不变异的情况下,每个个体都相同,因此,该算法在个体空间中执行随机游动。 - 略。