跳到主要内容

优化算法

当我们获得了一些数据源及其表示、一个模型和一个合适的损失函数,接下来就需要一种算法,它能够搜索出最佳参数,以最小化损失函数。 深度学习中,大多流行的优化算法通常基于一种基本方法–梯度下降(gradient descent)。 简而言之,在每个步骤中,梯度下降法都会检查每个参数,看看如果仅对该参数进行少量变动,训练集损失会朝哪个方向移动。 然后,它在可以减少损失的方向上优化参数。

遗传算法

遗传算法 遗传算法是受自然进化理论启发的一系列搜索算法。通过模仿自然选择和繁殖的过程,遗传算法可以为涉及搜索,优化和学习的各种问题提供高质量的解决方案。同时,它们类似于自然进化,因此可以克服传统搜索和优化算法遇到的一些障碍,尤其是对于具有大量参数和复杂数学表示形式的问题。

遗传算法试图找到给定问题的最佳解。达尔文进化论保留了种群的个体性状,而遗传算法则保留了针对给定问题的候选解集合(也称为 individuals)。这些候选解经过迭代评估 (evaluate),用于创建下一代解。更优的解有更大的机会被选择,并将其特征传递给下一代候选解集合。这样,随着代际更新,候选解集合可以更好地解决当前的问题。

概念

  1. 基因型 (Genotype):在自然界中,通过基因型表征繁殖,繁殖和突变,基因型是组成染色体的一组基因的集合。在遗传算法中,每个个体都由代表基因集合的染色体构成。例如,一条染色体可以表示为二进制串,其中每个位代表一个基因:01001101
  2. 种群 (Population):遗传算法保持大量的个体 (individuals) —— 针对当前问题的候选解集合。由于每个个体都由染色体表示,因此这些种族的个体 (individuals) 可以看作是染色体集合:{01010011,01001101,01100110,01000001}
  3. 适应度函数 (Fitness function):在算法的每次迭代中,使用适应度函数(也称为目标函数)对个体进行评估。目标函数是用于优化的函数或试图解决的问题。适应度得分更高的个体代表了更好的解,其更有可能被选择繁殖并且其性状会在下一代中得到表现。随着遗传算法的进行,解的质量会提高,适应度会增加,一旦找到具有令人满意的适应度值的解,终止遗传算法。
  4. 选择 (Selection):在计算出种群中每个个体的适应度后,使用选择过程来确定种群中的哪个个体将用于繁殖并产生下一代,具有较高值的个体更有可能被选中,并将其遗传物质传递给下一代。仍然有机会选择低适应度值的个体,但概率较低。这样,就不会完全摒弃其遗传物质。
  5. 交叉 (Crossover):为了创建一对新个体,通常将从当前代中选择的双亲样本的部分染色体互换(交叉),以创建代表后代的两个新染色体。此操作称为交叉或重组
  6. 突变 (Mutation):突变操作的目的是定期随机更新种群,将新模式引入染色体,并鼓励在解空间的未知区域中进行搜索。突变可能表现为基因的随机变化。变异是通过随机改变一个或多个染色体值来实现的。例如,翻转二进制串中的一位

图式定理 (schema theorem)

要素假设的一个更形式化的表达是 Holland 图式定理,也称为遗传算法的基本定理。

该定理是指图式是可以在染色体内找到的模式(或模板)。每个图式代表染色体中具有一定相似性的子集。

例如,如果一组染色体用长度为 4 的二进制串表示,则图式 1*01 表示所有这些染色体,其中最左边的位置为1,最右边的两个位置为01,从左边数的第二个位置为 1 或 0,其中 * 表示通配符。

对于每个图式,具有以下两个度量:

阶 (Order):固定数字的数量 定义长度 (Defining length):最远的两个固定数字之间的距离 下表提供了四位二进制图式及其度量的几个示例:

图式OrderDefining Length
110143
1*0133
*10132
**0121
1***10
****00

种群中的每个染色体都对应于多个图式。例如,染色体1101对应于该表中出现的每个图式,因为它与它们代表的每个模式匹配。如果该染色体具有较高的适应度,则它及其代表的所有图式都更有可能从选择操作中幸存。当这条染色体与另一条染色体交叉或发生突变时,某些图式将保留下来,而另一些则将消失。低阶图式和定义长度短的图式更有可能幸存。

因此,图式定理指出,低阶、定义长度短且适合度高于平均值的图式频率在连续的世代中呈指数增长。换句话说,随着遗传算法的发展,代表更有效解决方案的属性的更小、更简单的要素基块将越来越多地出现在群体中。

模拟退火算法

蚁群算法

粒子群算法

Loading Comments...