Python训练营打卡Day12

超参数调整专题2

  1. 三种启发式算法的示例代码:遗传算法、粒子群算法、退火算法
  2. 学习优化算法的思路(避免浪费无效时间)

作业:今天以自由探索的思路为主,尝试检索资料、视频、文档,用尽可能简短但是清晰的语言看是否能说清楚这三种算法每种算法的实现逻辑,帮助更深入的理解。


一、遗传算法(Genetic Algorithm, GA)

核心逻辑:模仿生物进化中的"优胜劣汰"机制,通过种群迭代进化寻找最优解。

类比:假设你有一群不同基因的鸟(初始种群),目标是找到飞得最高的鸟。通过不断让优秀的鸟交配(交叉)、偶尔基因突变(变异),后代逐渐进化出更强的飞行能力。

实现步骤:
1. 初始化种群
    随机生成一组候选解(如二进制编码的个体),例如用6位二进制表示鸟的翅膀长度。
2. 评估适应度
    计算每个个体的适应度(如飞得越高得分越高),例如函数值越高代表适应度越好。
3. 选择优秀个体
    使用轮盘赌法:适应度高的个体被选中的概率更大,类似抽奖时大奖区域面积更大。
4. 交叉与变异
    交叉:随机选两个父代个体,交换部分基因(如交换二进制编码的后3位)生成子代。
    变异:随机改变某个基因位(如将0变为1),概率通常较低(如2%)。
5. 更新种群
    用新生成的子代替换旧种群中较差的个体,重复迭代直到满足终止条件(如达到最大迭代次数)。


二、粒子群算法(Particle Swarm Optimization, PSO)

核心逻辑:模拟鸟群觅食行为,个体通过追随群体最优解和自身经验调整方向。

类比:一群鸟在森林中找食物,每只鸟记录自己找到的最佳位置,同时跟随鸟群中已知的最佳位置,逐步逼近食物源。

实现步骤:
1. 初始化粒子群
    随机生成粒子(解)的初始位置和速度,例如在二维空间随机分布。
2. 计算适应度
    评估每个粒子的目标函数值(如距离食物源的远近)。
3. 更新个体与群体最优
    每个粒子记录自己的历史最佳位置(pBest),群体记录全局最佳位置(gBest)。
4. 调整速度与位置
    速度更新公式: 新速度 = 惯性权重×原速度 + 个体学习项 + 群体学习项
    位置更新:根据速度移动粒子,例如新位置 = 原位置 + 新速度。
5. 终止条件
    达到最大迭代次数或找到满足精度的解。

 

三、模拟退火算法(Simulated Annealing, SA)

核心逻辑:模仿金属退火过程,通过温度控制逐步降低随机扰动,避免陷入局部最优。

类比:打铁时高温让金属原子自由移动,冷却时逐渐稳定到能量最低状态。

实现步骤:
1. 初始化参数
    设置初始温度(高温)、终止温度(低温)、降温速率。
2. 生成初始解
    随机选择一个候选解(如金属的初始原子排列)。
3. 循环迭代
    内循环:在当前温度下多次扰动生成新解(如随机调整原子位置)。
    接受准则:
    若新解更优,直接接受;
    若更差,以概率exp(-ΔE/T)接受(ΔE为能量差,T为温度),避免局部最优。
4. 降温
    按降温速率降低温度(如T = 0.95×T),重复直到温度降至终止值。
 

@浙大疏锦行

 

你可能感兴趣的:(Python打卡训练,python,开发语言,机器学习)