个人笔记,书写不易,转载请注明出处——https://www.cnblogs.com/rsmx/

人工智能 I

目录

书写不易,转载请注明出处——RSMX

概述

  • 人工智能概念提出: 1956 年
  • 20 世纪三大科学技术成就:空间技术、原子能技术、人工智能

人工智能体现在哪些方面?体现为什么形式?

  • 智能制造产业
  • 各类智能机器人
  • 无人驾驶、智能汽车
  • 大数据、云计算、物联网
  • 智慧城市、智慧医疗、智慧农业
  • 虚拟现实技术

自然界四大奥秘:物质的本质 、 宇宙的起源 、 生命的本质 、 智能的发生

图灵指出:“如果机器在某些现实的条件下,能够非常好地模仿人回答问题,以至提问者在相当长时间里误认它不是机器,那么机器就可以被认为是能够思维的。”

计算智能是借鉴仿生学的思想,基于人们对生物体智能机理的认识,采用数值计算的方法去模拟和实现人类的智能 。三大基本领域包括神经计算、进化计算、模糊计算

知识的表示

知识

概念

  • 是在长期的生活及社会实践中、在科学研究及实验中积累起来的对客观世界的认识与经验。
  • 是把有关信息关联在一起所形成的信息结构。

特性

  • 相对正确性:任何知识都是在一定的条件及环境下产生的,在这种条件及环境下才是正确的
  • 不确定性:缘由——随机性、模糊性、经验、不完全性
  • 可表示性与可利用性:可以用适当形式表示出来,可以被利用

一阶谓词逻辑表示法

谓词

一般形式

\[P(x_1, x_2, …, x_n)
\]

  • 个体 \(x_1, x_2, …, x_n\) :某个独立存在的事物或者某个抽象的概念
    • 个体是常量:一个或者一组指定的个体 Teacher
    • 个体是变元(变量):没有指定的一个或者一组个体Less(x, 5)
    • 个体是函数:一个个体到另一个个体的映射Teacher (father (Li) )
    • 个体是谓词Works (engineer (Smith), IBM)
  • 谓词名 \(P\) :刻画个体的性质、状态或个体间的关系

谓词公式

连接词
  • ﹁(否定)“机器人不在2号房间”:﹁ Inroom (robot, r2)
  • ∨(析取)李明打篮球或踢足球:Plays(Liming,basketball)∨Plays(Liming,football)
  • ∧(合取)“我喜欢音乐和绘画”:Like(I,music)∧Like(I,painting)
  • →(蕴含)如果刘华跑得最快,那么他取得冠军:RUNS(Liuhua,faster)→WINS (Liuhua,champion)
  • ⬅→(等价)P⬅→Q: “P当且仅当Q”
量词
  • 全称量词:对个体域中的所有(或任一个)个体 x “所有的机器人都是灰色的”: (\(\forall\)x)[ROBOT (x) → COLOR (x,GRAY)]
  • 存在量词:在个体域中存在个体 x “1号房间有个物体”:(\(\exists\)x)INROOM(x,r1)

表示知识的步骤

  1. 定义谓词及个体
  2. 变元赋值
  3. 用连接词连接各个谓词,形成谓词公式

例题——表示如下知识:
王宏是计算机系的一名学生。
王宏和李明是同班同学。
凡是计算机系的学生都喜欢编程序。

定义谓词:
COMPUTER(x):表示x是计算机系的学生。
CLASSMATE(x,y):表示x和y是同班同学。
LIKE(x,y):表示x喜欢y。
表示知识:
COMPUTER(Wang Hong)
CLASSMATE(Wang Hong, Li Ming) (\(\forall\)x)(COMPUTER(x) →LIKE(x, programming))

表示特点

优点:

  • 自然性
  • 精确性
  • 严密性
  • 容易实现

局限性:

  • 不能表示不确定的知识
  • 组合爆炸
  • 效率低

产生式表示法

产生式表示

确定性规则知识

  • IF P THEN QIF 动物会飞 AND 会下蛋 THEN 该动物是鸟
  • P → Q

不确定性规则知识

  • IF P THEN Q (置信度)IF 发烧 THEN 感冒 (0.6)
  • P → Q (置信度)

产生式系统的基本结构

graph LR
a[控制]–>规则库–>b[“控制系统(推理机)”]–>c[综合数据库]
a–>b
a–>c–>b
  • 规则库:用于描述相应领域内知识的产生式集合
  • 综合数据库:一个用于存放问题求解过程中各种当前信息的数据结构
  • 控制系统(推理机构):由一组程序组成,负责整个产生式系统的运行,实现对问题的求解。工作:

    • 从规则库中选择与综合数据库中的已知事实进行匹配
    • 匹配成功的规则可能不止一条,进行冲突消解
    • 执行某一规则时,若其右部是一个或多个结论,则把这些结论加入综合数据库中
    • 执行某一规则时,若其右部是一个或多个操作,则执行这些操作
    • 对于不确定性知识,在执行每一条规则时还要按一定的算法计算结论的不确定性
    • 检查综合数据库中是否包含了最终结论,决定是否停止系统的运行

表示特点

优点:

  • 自然性
  • 模块性
  • 有效性
  • 清晰性

缺点:

  • 效率不高
  • 不能表达结构性知识

适宜领域:

  • 领域知识间关系不密切,不存在结构关系。
  • 经验性及不确定性的知识,且相关领域中对这些知识没有严格、统一的理论。
  • 领域问题的求解过程可被表示为一系列相对独立的操作,且每个操作可被表示为一条或多条产生式规则。

框架表示法

一般结构

<框架名>
槽名1:   侧面名11   侧面值111 ,… ,侧面值11P1
  ┊	      ┊
  ┊     侧面名1m   侧面值1m1  , … ,侧面值1mPm
  ┊
槽名n:  侧面名n1   侧面值n11 , … ,侧面值n1P1
          ┊
        侧面名nm   侧面值nm1 , … ,侧面值nmPm
约束:   约束条件
          ┊
        约束条件
  • 框架:一种描述所论对象(一个事物、事件或概念)属性的数据结构

    • 由若干个被称为“槽”的结构组成:
      用于描述所论对象某一方面的属性

      • 每一个槽又可根据实际情况划分为若干个“侧面”
        用于描述相应属性的一个方面
  • 槽和侧面所具有的属性值分别被称为槽值侧面值
  • 当把具体的信息填入槽或侧面后,就得到了相应框架的一个事例框架

例子

教师框架

框架名: 〈教师〉
	姓名: 单位(姓、名)
	年龄: 单位(岁)
	性别: 范围(男、女)
		缺省: 男
	职称: 范围(教授,副教授,讲师,助教)
		缺省: 讲师
	部门: 单位(系,教研室)
	住址: 〈住址框架〉
	工资: 〈工资框架〉
	开始工作时间: 单位(年、月)
	截止时间: 单位(年、月)
		缺省: 现在

教师框架事例框架

框架名: 〈教师-1〉
	姓名: 夏冰
	年龄: 36
	性别: 女
	职称: 副教授
	部门: 计算机系软件教研室
	住址: 〈adr-1〉
	工资: 〈sal-1〉
	开始工作时间: 1988,9
	截止时间: 1996,7

特点

  • 结构性:便于表达结构性知识,能将知识的内部结构关系及知识间联系表示出来
  • 继承性:框架网络中,下层框架可以继承上层框架的槽值,也可以进行补充和修改
  • 自然性:框架表示法与人在观察事物时的思维活动是一致的

遗传算法

概述

  • 适用于处理传统搜索方法难以解决的复杂和非线性优化问题
  • 是一种仿生全局优化的随机搜索算法
    • 模仿生物的遗传进化原理
    • 通过选择、交叉、变异等操作机制,使种群中个体的适应性不断提高
  • 核心思想:物竞天择,适者生存

基本流程

st=>start: 开始
ed=>end: 结束
in=>inputoutput: 实际问题参数集
op1=>operation: 参数编码成为染色体
op2=>operation: 初始化群体
op3=>operation: 计算每一个体的适应度
cond=>condition: 终止条件?
op4=>subroutine: 进行遗传操作
选择/交叉/变异
op5=>operation: 群体←新群体,P(t)←P(t+1)
op6=>operation: 对染色体进行解码
out=>inputoutput: 得到问题最优解

st->in->op1->op2->op3->cond
cond(no)->op4->op5(right)->op3
cond(yes)->op6->out->ed
  1. 编码:用字符串表达所研究的问题
  2. 形成初始群体:用随机的方法产生
  3. 计算适应度
  4. 复制:从旧群体中选择优良个体予以复制,直接进入下一代群体
  5. 交叉:对染色体(字符串)的某些部分进行交叉换位。被交换的母体都选自经过复制产生的新一代个体
  6. 变异:将个体字符串某位符号进行逆变
  7. 终止:反复执行上述(3)-(6)项工作,直至得出满意的最优解

概念

  • 每个字符串称作个体
  • 每一遗传代次中个体的组合称为群体
  • 衡量字符串(染色体)好坏的指标是适应度
    • 相对适应度 \(f(x_i)/\overline{f}\)

遗传算法的基本算法

编码

位串编码:将问题空间的参数编码为一维排列的染色体的方法

  • 二进制编码:用若干二进制数表示一个个体

    • 优点:遗传操作易实现
    • 缺点:具有较大的Hamming距离
  • Gray 编码:将二进制编码通过一个变换进行转换得到的编码

    • 转换,记数为\(<\beta_1, \beta_2,…, \beta_n>\)

      • 二进制转格雷码 & 格雷码转二进制
      \[\gamma_k=\left\{
      \begin{aligned}
      \beta_1 &\quad k=1 \\
      \beta_{k-1}\oplus\beta_k &\quad k>1
      \end{aligned}
      \right.
      \]

    • 优点:任意两个连续的两个整数的编码值之间只有一个位是不同的,克服了二进制编码的Hamming悬崖问题

实数编码

  • 优点:不必进行数制转换

多参数级联编码:把每个参数二进制编码得到子串,再将子串连成一个完整的染色体

  • 特点:有不同的串长度和参数的取值范围

群体设定

初始种群的产生

  • 把握最优解在问题空间中的分布范围,然后以此范围设定初始群体
  • 随机产生个体,挑最优个体加到初始群体中,不断迭代直到达到预定规模
  • 全局性要求初始解尽量分散

种群规模的确定:一般为20~100

  • 太小:优化性能不太好,易陷入局部最优解
  • 太大:计算复杂

模式定理:若群体规模为M,则遗传操作可从这 \(M\) 个个体中生成和检测 \(M^3\) 个模式,并在此基础上能够不断形成和优化积木块,直到找到最优解

适应度函数

求解目标

\[\begin{align*}
&\max\ Fit(x)\\
& \begin{array}{r@{\quad}r@{}l@{\quad}l}
s.t.\quad \forall\ x\in \R^n,\ Fit(x)\geq 0
\end{array}
\end{align*}
\]

函数映射为适应度

  • \(\min\)\(\max\)\(Fit(f(x))=\frac{1}{f(x)}\)
  • \(<0\)\(\geq 0\)\(Fit(f(x))=\min \{f(x)-C_{min}, 0\}\)

尺度变换

欺骗问题:在遗传算法中,将所有妨碍适应度值高的个体产生,从而影响遗传算法正常工作的问题,常见问题及解决方案:

  • 过早收敛:缩小这些个体的适应度,以降低这些超级个体的竞争力。
  • 停滞现象:改变原始适应值的比例关系,以提高个体之间的竞争力。
  • 线性变换: \(f\’=af+b\)
  • 幂函数变换:\(f\’=f^K\)
  • 指数变换: \(f\’=e^{-af}\)

选择(复制)

目的

从当前群体中按照一定概率选出优良的个体,使它们有机会作为父代繁殖下一代子孙

方法

概率确定

  • 适应度比例方法(蒙特卡罗法):\(p_{si}=\frac{f_i}{\sum^M_{i=1}f_i}\)
  • 排序方法:对于 \(P(x_i)\) ,满足 \(\forall\ f(x_i)\geq f(x_j),\ P(x_i)\geq P(x_j)\ 且\ \sum P(x)=1\)
    • 线性排序:\(p_i=\frac{a-bi}{M(M+1)}\)
    • 非线性排序:\(p_i=\left\{
      \begin{aligned}
      q(1-q)^{i-1} &\quad i=1,2, …, M-1 \\
      (1-q)^{M-1} &\quad i=M
      \end{aligned}
      \right.\)

选择方法

  • 转盘赌选择:按选择概率产生一个轮盘, 轮盘每个区的角度与概率成比例
  • 锦标赛选择
    • 锦标赛选择方法:随机选择个体,保存最高适应度个体,迭代达到预定数量
    • 随机竞争方法:赌轮选择一对个体,保存最高适应度个体,迭代达到预定数量
  • 最佳个体保存方法:把群体中适应度最高的个体不进行交叉而直接复制到下一代

优化

  • 期望值模型
  • 排挤模型
  • 浓度控制策略
  • 共享机制
  • 截断选择

交叉

基本的交叉算子

  • 一点交叉:随机设定一个交叉点,该点前或后的两个个体的部分结构进行互换
  • 二点交叉:随机设置两个交叉点,将两个交叉点之间的码串相互交换

优化

  • 平坦交叉:二者之间均匀随机产生
  • 算术交叉:双亲的凸组合
  • 线性交叉:1:1,3:1,1:3,比较最好的两个留下
  • 混合交叉
  • 离散交叉
  • 启发式交叉
  • 模拟二进制交叉
  • 单峰正态分布交叉
  • 单纯形交叉
  • 父体中心交叉
  • 几何交叉
  • 均匀交叉
  • 基于模糊联接的交叉

变异

  • 位点变异:随机挑选一个或多个基因座,并以变异概率作变动
  • 逆转变异:随机选择两点(逆转点),将之间基因值以逆向排序插入到原位置中
  • 插入变异:随机选择一个码,插入随机选择的插入点中间
  • 互换变异:随机选取染色体的两个基因进行简单互换
  • 移动变异:随机选取一个基因,向左或者向右移动一个随机位数

优化

  • 随机变异:区间内均匀随机取
  • 非一致变异:某个区间内随机扰动
  • 边界变异:取边界值
  • 多项式变异
  • 高斯变异
  • Cauthy变异
  • 自适应变异
  • Muhlenbein变异

遗传算法参数

群体规模:

  • 太小:优化性能不太好,易陷入局部最优解
  • 太大:计算复杂

选择比例:

  • 太大:收敛速度很快,易陷入局部最优解

交叉率:

  • 太大:导致群体中的优良模式遭到破坏,走向随机化

变异率:

  • 太大:退化为随机搜索,易陷入局部最优解

示例

一元函数的最大值

  • 编码:二进制编码(串长取决于求解精度)
  • 初始种群:随机
  • 适应度函数:目标函数变换
  • 种群大小50;交叉概率0.75;变异概率0.05;最大代数200
  1. 选择:比例选择法
  2. 交叉:单点交叉
  3. 变异:小概率变异

TSP问题

  • 编码:城市编号向量(路径)
  • 初始种群:随机顺序
  • 适应度函数:\(Fit(x)=1/L\)
  1. 选择:适应度较大的C个个体直接替换适应度较小的C个个体
  2. 交叉:
    • 保留交叉点的中间部分,交换对应位置的子串
    • OX算子:一个子序列 + 另一个的相对次序
  3. 变异:倒置该两点的中间部分

约束最优化问题

  • 罚函数:无约束问题
    • 适应度函数:超范围适应度降低
    • 交叉/变异 :方向梯度平移
  • 协同进化遗传算法:一个种群由问题的解组成,另一个种群由约束组成

多目标优化

  • 聚合函数法:权值加和,自适应权值
  • 向量评价遗传算法
graph TB
a[下一种群]
a–>|”目标1~n”|1
subgraph 子种群
1
2
n
end
1–>c
2–>c
n–>c
c[交叉+变异]–>a

改进遗传算法

双倍体遗传算法

  • 采用显性和隐性两个染色体同时进行进化
  • 采用显性遗传

优点

  • 延长了有用基因块寿命,易于收敛能力,变异概率低时能保持一定水平的多样性

方法

  • 编码/解码:两个染色体
  • 复制算子:计算显性染色体的适应度
  • 交叉算子:显隐同时交叉
  • 变异算子:显性按正常概率;隐性按较大概率
  • 重排算子:个体中适应值较大的染色体设为显性染色体

双种群遗传算法

两个遗传算法群体,复制、交叉、变异操作后交换最优与其他个体

  • 杂交算子:选择两群体随机个个体与最优个体,交换两者

自适应遗传算法 AGA

动态的交叉概率 \(P_c\) 与变异概率 \(P_m\)

  • 适应度趋于一致或者趋于局部最优时:概率增
  • 适应度分散:概率减
  • 适应度高个体:概率减
  • 适应度低个体:概率增
\[P_c=\left\{
\begin{aligned}
\frac{k_1(f_{max}-f\’)}{f_{max}-f\’} &\quad f\’>\overline f \\
k2 &\quad f\’\leq \overline f
\end{aligned}
\right.
\]

\[P_m=\left\{
\begin{aligned}
\frac{k_3(f_{max}-f\’)}{f_{max}-f\’} &\quad f\’>\overline f \\
k4 &\quad f\’\leq \overline f
\end{aligned}
\right.
\]

群智能算法概述

  • 每个个体,其运动只遵循简单的规则
  • 群成员之间是平等关系,而没有主从关系

蚁群

蚁群优化算法 ACO

  • 路径概率选择机制:信息素浓度越高的路线,被选中的概率越大。
  • 信息素更新机制:路径越短,信息素的浓度增长得越快。
  • 协同工作机制:蚂蚁个体之间通过信息素进行信息传递。

鸟群

粒子群优化算法 PSO

  • 当一群鸟在随机搜寻食物时,发现某个区域内有一块食物,鸟会先后飞向食物,以及在食物最近的鸟的周围区域继续搜寻食物。
  • 数目庞大的鸟群在飞行中可以有形的改变方向,散开,或者队形的重组。

鱼群

人工鱼群算法 AFSA

  • 觅食行为:当鱼群发现食物时,会向着食物的方向快速游去
  • 追尾行为:一条鱼向其视野内的另一条游向食物的鱼游去
  • 聚群行为:为了避免被其他动物捕食,游向伙伴多的地方
  • 随机游动:无目的的游动

蚁群算法 ACO

概述

  • 1991年,M.Dorigo 以此解决了旅行商(TSP)问题
  • 正反馈机制
  • 通用型随机优化
  • 分布式优化
  • 全局优化
  • 启发式

流程

流程图

st=>start: 开始
ed=>end: 结束
op1=>operation: 初始化
op2=>operation: 迭代次数 Nc=Nc+1
op3=>operation: 蚂蚁k=1
op4=>operation: 蚂蚁k=k+1
op5=>operation: 按照状态转移概率公式
选择下一个元素
op6=>operation: 修改禁忌表
cond1=>condition: K>=蚂蚁总数m?
op7=>operation: 按照公式进行信息量更新
cond2=>condition: 结束条件?
op8=>operation: 输出程序计算结果

st->op1->op2->op3->op4->op5->op6(right)->cond1
cond1(yes)->op7(right)->cond2
cond1(no)->op4
cond2(yes)->op8->ed
cond2(no)->op2

禁忌表

体现了人工蚂蚁的记忆性,使得蚂蚁不会走重复道路,提高了效率

选择路径的转移概率

\(t\) 时刻,蚂蚁 \(k\) 从城市 \(i\) 转移到城市 \(j\) 的概率为

\[p^k(i, j)=\left\{
\begin{aligned}
\frac{[\tau(i, j)]^\alpha*[\eta(i,j)]^\beta}{\sum} &\quad j\notin Tabu_k\\
0 &\quad j\in Tabu_k
\end{aligned}
\right.
\]

  • \(\tau(i,j)\):信息素强度
  • \(\eta(i,j)\):期望强度,TSP为 \(1/L_{ij}\)
  • \(\alpha\):信息素影响程度
  • \(\beta\):距离影响程度

信息素更新公式

\[\tau_{ij}=(1-\rho)*\tau_{ij}+\sum \Delta\tau^k_{ij}\\
\Delta\tau^k_{ij}=\left\{
\begin{aligned}
Q/L_k &\quad 蚂蚁有经过\\
0 &\quad 蚂蚁没有经过
\end{aligned}
\right.
\]

  • \(\rho\):信息素挥发速率

    • 防止信息素无限累积
    • 防止陷入当前最优解
  • \(\Delta\tau\):路径留下的信息素强度
  • \(\Delta\tau^k\):蚂蚁 \(k\) 留下的信息素强度
  • \(Q\):蚂蚁所留轨迹的正常数
  • \(L_k\):第 \(k\) 只蚂蚁周游路径总长

终止条件

  • 达到最大循环次数
  • 最优解连续 K 次
  • 达到给定精度

关键参数选取

蚂蚁数量

  • 常用:城市数目的 1.5 倍
  • 过大:信息素趋于平均
  • 过小:易使未搜索的路径信息素减少到0,早熟

信息素因子 \(\alpha\)

  • 常用:\([1,4]\)
  • 过大:选择已走路径概率大,搜索的随机性降低
  • 过小:等同于贪婪算法,易陷入局部最优

启发函数因子 \(\beta\)

  • 常用:\([3,4.5]\)
  • 过大:收敛速度快,易陷入局部最优
  • 过小:陷入随机搜索,找不到最优

信息素挥发因子 \(\rho\)

  • 常用:\([0.2,0.5]\)

信息素常数

  • 常用:\([10,1000]\)
  • 过大:信息素积累较块,快速收敛

最大迭代次数

  • 常用:\([100,500]\)
  • 过大:导致资源浪费
  • 过小:导致算法还没有收敛就结束

一般调节策略:

  1. 确定蚂蚁数量 = 城市规模 * 1.5
  2. 参数粗调:\(\alpha\)\(\beta\)\(Q\) —— 取值范围较大
  3. 参数微调:\(\rho\) —— 取值范围较小

改进算法

最优解保留策略蚂蚁系统(带精英策略的蚂蚁系统ASelite)

  • 给最优蚂蚁额外的信息素

蚁群系统(ACS)

  • 状态转移规则:伪随机比率规则,阈值 \(q_0\)\(q\) 为随机数

    • \(P=[\tau(i, j)]^\alpha*[\eta(i,j)]^\beta\),有:
    \[p\’=\left\{
    \begin{aligned}
    p &\quad q>q_0\\
    \max(P) &\quad q\leq q_0
    \end{aligned}
    \right.
    \]

  • 全局更新规则:只有最优蚂蚁才允许释放信息素

  • 局部更新规则:蚂蚁途经边信息素减少

最大-最小蚂蚁系统(MMAS)

  • 每次迭代后,只对最优解所属路径上的信息素更新
  • 信息素量限制范围

基于优化排序的蚂蚁系统(ASrank)

  • 信息素更新时对 \(\Delta\tau^k_{ij}\) 考虑权重的影响,权值 \(\propto\) \(1/L_k\)

最优最差蚂蚁系统(BWAS)

  • 对 ACS 中最差解进行削弱

一种新的自适应蚁群算法(AACA)

  • ACS 中状态转移规则中 \(q_0\) 改为自适应伪随机比率规则
    • 避免出现停滞现象

基于混合行为的蚁群算法(HBACA)

  • 按蚂蚁的行为特征将蚂蚁分成4群,分开迭代,最优积累。蚂蚁行为:
    • 随机选取
    • 贪婪选取
    • 信息素强度选取
    • 信息素强度与距离选取

粒子群算法 PSO

概述

  • 1995,Kennedy和Eberhart提出

流程

流程图

st=>start: 开始
ed=>end: 结束
op1=>operation: 初始化粒子群
op2=>operation: 计算每个粒子的适应度
op3=>operation: 根据适应度更新 pBest、gBest
更新粒子位置速度
cond=>condition: 最大迭代次数
达到精度?

st->op1->op2->op3(right)->cond
cond(yes)->ed
cond(no)->op2

粒子速度更新公式

\[v_{i}=wv_i+c_1r_1(pbest_i-x_i)+c_2r_2(gbest_i-x_i)
\]

  • \(r_1\ r_2\):随机数
  • \(c_1r_1(pbest_i-x_i)\):自我认知部分

    • \(c_1\):学习因子

      • 过小:迅速丧失群体多样性,易陷入局优而无法跳出
  • \(c_2r_2(gbest_i-x_i)\):社会经验部分

    • \(c_2\):学习因子

      • 过小:完全没有信息的社会共享,导致算法收敛速度缓慢
  • \(w\):惯性因子

    • \(w=1\):基本粒子群算法
    • \(w=0\):失去对粒子本身的速度的记忆
  • \(V_m\):最大速度

    • 常用:维度范围 10%~20%
    • 过大:探索能力增强,容易飞过最优解
    • 过小:开发能力增强,易陷入局部最优

邻域设定

决定社会经验部分

  • 全局邻域:全局粒子群算法
  • 局部邻域:局部粒子群算法

特殊问题求解 – TSP

交换子:交换两个位置的城市编号,记为 \((SO_1, SO_2)\)

交换序:记为 \((SO_1, SO_2,…, SO_n)\)

合并计算:\(\oplus\)

速度更新公式:

\[\left\{
\begin{aligned}
&v_i\’=v_i\oplus\alpha(p_i-x_i)\oplus\beta(p_g-x_i)\\
&x_i=x_i+v_i,\ 一定概率为\ v_i\’
\end{aligned}
\right.
\]

优化

标准PSO算法

动态权重 —— 权重递减

\[w=w_{max}-(w_{max}-w_{min})*\frac{run}{run_{max}}
\]

收缩因子法

速度更新公式:可以有效搜索不同区域,最终收敛

\[v_i\’=Kv_i\\
K=\frac{2}{|2-c-\sqrt{c^2-4c}|}\\
c=c_1+c_2,\ \varphi>4
\]

不确定推理方法

概述

区别

  • 推理:从已知事实(证据)出发,运用知识推出结论或证明成立或不成立
  • 不确定性推理:从不确定性的初始证据出发,运用不确定性的知识,推出具有不确定性的结论

基本问题

  • 不确定性知识表示
  • 不确定性证据表示
  • 不确定性算法

概率方法

  • 经典概率方法:AND OR

  • 逆概率方法:【P(B|A) A条件下B的概率】

    • 单证据
    \[P(H_i|E)=\frac{P(E|H_i)P(H_i)}{\sum\limits_{j=1}^{n}P(E|H_j)P(H_j)}
    \]

    • 多证据
    \[P(H_i|E_1E_2..E_m)=\frac{P(E_1|H_i)P(E_2|H_i)..P(E_m|H_i)P(H_i)}{\sum\limits_{j=1}^{n}P(E|H_j)P(H_j)}
    \]

可信度方法

概念

  • 可信度:根据经验对一个事物或现象为真的相信程度
    • 带有较大的主观性和经验性,其准确性难以把握
  • C-F 模型:基于可信度表示的不确定性推理的基本方法

C-F 模型

知识不确定性的表示

静态强度 CFHE):知识的强度

IF E THEN H CF(H,E)		# CF(H,E):可信度因子,[-1, 1]
证据不确定性的表示

动态强度 CFE):证据 E 当前的不确定性程度

CF(E)=0.6				# E的可信度为0.6
组合证据不确定性的算法
  • AND(合取):\(\min\{CF_1, CF_2, …, CF_n\}\)
  • OR(析取):\(\max\{CF_1, CF_2, …, CF_n\}\)
不确定性的传递算法

\[CF(H)=CF(H,E)\times max\{0, CF(E)\}
\]

结论不确定性的合成算法

\[CF_{1,2}=\left\{
\begin{aligned}
&CF_1(H)+CF_2(H)-CF_1(H)CF_2(H)\ &CF_1(H)\geq 0,CF_2(H)\geq 0\\
&CF_1(H)+CF_2(H)+CF_1(H)CF_2(H)\ &CF_1(H)< 0,CF_2(H)< 0\\
&\frac{CF_1(H)+CF_2(H)}{1-min\{|CF_1(H)|,|CF_2(H)|\}}\ &CF_1(H)\times CF_2(H)<0
\end{aligned}
\right.
\]

证据理论 (D-S理论)

概念

概率分配函数

函数有 \(M:2^D\rightarrow [0,1]\) ,且

\[M(\empty)=0\\
\sum\limits_{A\subseteq D}M(A)=1
\]

信任函数

\[Bel(A)=\sum\limits_{B\subseteq A}M(B)\\ \forall\ A\subseteq D\qquad Bel:2^D\rightarrow [0,1]
\]

似然函数

不可驳斥函数或上限函数

\[Pl(A)=1-Bel(\neg A)\\ \forall\ A\subseteq D\qquad Pl:2^D\rightarrow [0,1]
\]

信任函数与似然函数的关系:\(Bel(A)\leq Pl(A)\)

概率分配函数的正交和

对于同一空间的两个概率分配函数,其组合证据的概率分配函数为

\[M(A)
=\frac
{\sum\limits_{x\cap y=A}M_1(x)M_2(y)}
{1-\sum\limits_{x\cap y= \empty}M_1(x)M_2(y)}
=\frac
{\sum\limits_{x\cap y=A}M_1(x)M_2(y)}
{\sum\limits_{x\cap y\neq \empty}M_1(x)M_2(y)}
\]

一般步骤

  1. 建立问题的样本空间D
  2. 由经验给出,或者由随机性规则和事实的信度度量算基本概率分配函数
  3. 计算所关心的子集的信任函数值、似然函数值
  4. 由信任函数值、似然函数值得出结论

机器学习之分类

机器学习概述

机器学习与传统程序设计区别

  • 传统程序:修订程序逻辑,复杂程序艺术
  • 机器学习:数据积累,同一算法

分类:根据反馈的不同

  • 监督学习
  • 非监督学习
  • 半监督学习
  • 强化学习

完整的机器学习过程

  1. 数据预处理
  2. 特征工程
  3. 数据建模
  4. 结果评估

贝叶斯分类

概念

条件概率

\[P(A|B)=\frac{P(AB)}{P(B)}
\]

乘法定理

\[P(ABC)=P(A)P(B|A)P(C|AB)
\]

全概率公式

\[P(A)=\sum\limits^n_{i=1}P(B)P(A|B_i)
\]

贝叶斯公式

\[P(B_i|A)=\frac{P(A|B_i)P(B_i)}{\sum\limits^n_{j=1}P(A|B_j)P(B_j)}
\]

朴素贝叶斯公式

假定 \(C_i\) 是等概率的

\[P(C_i|X)=\frac{P(X|C_i)P(C_i)}{P(X)}
\]

特点

优点:

  • 方法简单,分类准确率高,速度快,所需估计的参数少,对于缺失数据不敏感
  • 能运用于大型数据库

缺点:

  • 独立性假设一般不成立
  • 需要知道先验概率

决策树分类

概述

常见:ID3、 C4.5、 CART

信息熵:信息的复杂程度,\(entropy=\sum -p\log_2p\)

信息增益:划分数据集前后信息熵的差值,\(=\sum \Delta entropy_i\times 比例\)

优化 – 剪枝

预剪枝更块,后剪枝更精确

  • 预剪枝干:设定一个树高度,当构建的树达到高度时,停止
  • 后剪枝:构建完成后再剪枝

特点

优点

  • 易于理解和实现
  • 数据准备简单或不必要
  • 能通过静态测试对模型评测

缺点

  • 连续性的字段比较难预测
  • 时间顺序的数据,需要很多预处理工作
  • 类别太多时,错误可能增加比较快
  • 一般算法分类,都只是根据一个字段来分类

KNN分类

思想

一个样本与数据集中的k个样本最相似, 如果这k个样本中的大多数属于某一个类别, 则该样本也属于这个类别。

参数选择 – K

通常采用交叉验证法来选取最优的K值

  • 近似误差:对现有训练集的训练误差,值小会过拟合。

  • 估计误差:对测试集的测试误差,值小说明对未知数据的预测能力好。

  • 较小:近似误差小,估计误差大

  • 较大:估计误差小,近似误差大

流程

  1. 计算已知点与当前点距离
  2. 排序
  3. 选取与当前点距离最小的k个点
  4. 统计前k个点所在的类别出现的频率
  5. 返回前k个点出现频率最高的类别作为当前点的预测分类

融合分类方法

  • Bagging:训练集子集给子学习器,投票或平均
  • Stacking:多个子学习器输出做父学习器输入

机器学习之回归

线性回归

R2 判定系数判定一个线性回归直线的拟合程度

一元线性回归

\(y=\beta_0+\beta_1x+\varepsilon\)

多元线性回归

\(y=b_0+b_1x_1+…+b_nx_n\)

逐步回归分析

“最优”的回归方程:包含所有对Y有影响的变量, 而不包含对Y影响不显著的变量回归方程

最优选取方法:

  • 从所有组合中选择最优者
  • 从全部变量中逐次剔除不显著因子
  • 从一个变量开始,把变量逐个引入方程
  • 逐步回归分析

思想

  • 从一个自变量开始,视自变量Y作用的显著程度,从大到小地依次逐个引入回归方程
  • 当引入的自变量由于后面变量的引入而变得不显著时,要将其剔除掉
  • 引入一个自变量或从回归方程中剔除一个自变量,为逐步回归的一步
  • 每步都要进行Y值检验,以确保每次引入新的显著性变量前回归方程中只包含对Y作用显著的变量
  • 反复直至既无不显著的变量从回归方程中剔除,又无显著变量可引入回归方程

回归问题的常规步骤

  1. 寻找模型函数
  2. 构造损失函数
  3. 最小化损失求得回归参数

逻辑回归

逻辑回归不是回归,是用回归的办法做分类任务

Sigmoid函数

想参考我如何作图的可以先瞅瞅这几个:

https://www.desmos.com/calculator?lang=zh-CN
npm install -g svgo
svgo *.svg -o *.min.svg

0011

损失函数

\[Cost=\frac{1}{m}\sum\limits_{i=1}^m\cos[Y(x)*y]
\]

版权声明:本文为rsmx原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/rsmx/p/14295677.html