数据科学每日总结--Day26--数据挖掘

the bad news
  • 定义:盲目搜索目标解在巨大搜索的空间里,几乎不可能成功,就像大海捞针。就算是代表同一个元素,但是因为表示形式不同,搜索的空间也同样巨大。

  • 解决办法是需要利用问题和结构信息:

    1. 启发式与元启发式:GA/DE/PSO/SA/ACO 等,通过选择、交叉/变异、信息素、速度更新等逐步偏向更优区域

    2. 局部改进:2-opt/3-opt、梯度/拟牛顿、CMA-ES 等在有结构时快速细化

    3. 先验与约束:缩小可行域、合理初始化、变量缩放与降维

    4. 并行与代理:批量评估、多岛模型、贝叶斯优化/代理模型减少昂贵评估次数

FLOPS
  • 定义:指的是单精/双精浮点运算每秒,也就是原始算力

  • 面临问题:

    • 指数级搜索空间:前面说的NP-hard或高维优化,即使EFLOPS也难以穷举

    • 成本不止算力:数据搬运、缓存/带宽、分布式通信、I/O 会成为瓶颈

    • 目标函数昂贵:一次评估可能要跑复杂仿真/训练模型,单次就耗时

  • 工程应对:

    • 并行化:批评估、种群算法天然并行(异步/岛模型),利用多核/GPU/集群

    • 算法层优化:减少评估次数比提升每次速度更关键。用启发式、局部搜索、早停、剪枝

    • 代理/多保真:Bayesian/高斯过程、随机特征、低保真仿真加速筛选,再用高保真精修

    • 内存与数据布局:向量化、混合精度、减少数据复制,提高算力利用率

    • 复杂度管理:降维、问题分解、参数化设计,尽量把指数问题"变小"

一点交叉
  • 定义:在遗传算法中,交叉是用来模拟生物遗传过程中染色体之间基因组合的操作,目的是产生新的个体(下一代)。而一点交叉的具体做法是,在两个父代染色体的同一位置(交叉点)切开,然后交换切点后的基因段,从而生成两个新的子代。

  • 实现过程:

    1. 任选两个父代染色体

    2. 随机产生一个交叉点

    3. 以该点为界,左侧来自父本A,右侧来自父本B(或反之),拼接成子代

  • 作用:

    • 重组父代的"基因片段",把各自的优良部分组合到一起,产生潜在更优的解

    • 比无性复制更能探索新的组合结构

遗传算子
  • 选择:

    • 作用:把搜索偏向"更有前景"的个体,强化利用

    • 风险:过强会降低遗传多样性,导致早熟收敛

    • 调参:降低锦标赛规模/精英数;引入随机保留

  • 交叉:

    • 作用:重组优秀"基因块"(Building Blocks),是GA的主要搜索动力,促进在解空间内做有意义的大步跳跃

    • 对多样性的影响:本身中性,取决于与选择/编码配合

    • 实务:选与编码匹配的交叉(实数SBX、排列PMX/OX等),pc常取0.6--0.9

  • 变异:

    • 作用:增加多样性、打破同质化,迫使算法探索当前焦点之外的区域

    • 风险:过大像随机搜索,过小难以逃离局部最优风险:过大像随机搜索,过小难以逃离局部最优

    • 调参:pm通常较小(如每位1/L或0.05--0.2),可自适应随代数或多样性调节

核心的平衡在于,选择提高利用,变异提高探索,交叉在二者间搭桥重组信息。一般会选择的经验策略是:前期弱选择+高交叉/略高变异促探索;后期加强选择、降低变异促收敛;配合精英保留与多样性监控/岛模型以稳健收敛

相关推荐
风象南2 小时前
我把大脑开源给了AI
人工智能·后端
Johny_Zhao4 小时前
OpenClaw安装部署教程
linux·人工智能·ai·云计算·系统运维·openclaw
飞哥数智坊5 小时前
我帮你读《一人公司(OPC)发展研究》
人工智能
冬奇Lab8 小时前
OpenClaw 源码精读(3):Agent 执行引擎——AI 如何「思考」并与真实世界交互?
人工智能·aigc
没事勤琢磨10 小时前
如何让 OpenClaw 控制使用浏览器:让 AI 像真人一样操控你的浏览器
人工智能
用户51914958484510 小时前
CrushFTP 认证绕过漏洞利用工具 (CVE-2024-4040)
人工智能·aigc
牛马摆渡人52810 小时前
OpenClaw实战--Day1: 本地化
人工智能
前端小豆10 小时前
玩转 OpenClaw:打造你的私有 AI 助手网关
人工智能
BugShare11 小时前
写一个你自己的Agent Skills
人工智能·程序员
机器之心11 小时前
英伟达护城河被AI攻破,字节清华CUDA Agent,让人人能搓CUDA内核
人工智能·openai