课程目标:
理解人工智能原理脉络,了解可实现的思维架构。
课程地址:
人工智能:模型与算法 https://www.icourse163.org/course/ZJU-1003377027)
1、搜索求解
a.启发式搜索
又称:有信息搜索。
模型:2个城市之间的最短路径
代表算法:贪婪最佳优先搜索(Greedy best-first search)、A*搜索。
辅助信息 | 任何一个节点与目的地的距离 | |
评价函数 | f(n): evvaluation function | 从当前节点n出发,评价选择后续节点 |
启发函数 | h(n): heuristic function | 计算从当前节点n到目标节点、路径的最小代价值,这个最小代价称为启发函数 |
- 贪婪最佳优先搜索
评价函数f(n) = 启发函数h(n)
基本。每次节点均指向代价最小,这个代价最小这一目标,可能会进入死循环。
- A* 算法
评价函数f(n) = 当前最小开销代价g(n) + 后续最小开销代价h(n)
改进,整体思维。每次把之前、至后开销之和,计入当前启发开销,指向不大于启发(可容性)的更小的目标(单调性)。
b.对抗式搜索
模型:确定的、全局可观察的、竞争对手轮流行动、零和的,2人对决游戏
max(min(),min(),min...) ==> 行进过程中:(total max)a.单调增, (partical min)b单调减
又称:博弈搜索,一方利益最大化、则另一方利益最小化。
- 最小最大搜索(Minimax Search)
基本。穷举
- Alpha-beta剪枝搜索(Pruning Search)
改进,减除无用。
如果有比当前目标a更小的值,忽略此组,直到有更大的时,以a为准:逐一检出、是最小且大于a则替换之,同样存在比a小的跳过,即(-~上探,+~下行) ==> (a, b:current.min_>a_ok, [b.i<a,break and next])。
- 蒙特卡洛树搜索(Monte-Carlo Tree Search)
改变,采样不穷举。
蒙特卡罗方法思想
:表示采样越多,越近似最优解。
蒙特卡罗方法解题过程的三个主要步骤:(1)构造或描述概率过程,(2)实现从已知概率分布抽样,随机数是我们实现蒙特卡罗模拟的基本工具(3)建立各种估计量。
蒙特卡洛树搜索算法(Upper Confidence Bounds on Trees: UCT)
上限置信区间
(Upper Confidence Bound:UCB算法):
下一次的选择得分权重,倾向于以往的平均值,加上 c平衡因子/权衡参数 乘以 置信权重(N是实验/仿真总次数、n是几点验证次数[所有节点的验证次数和等于N])。
伪代码图解
S 状态集
A(s) 在状态s能采取的有效行动的集合
s(v) 节点v的状态
a(v) 到达v采取的行动
f: S x A → S 状态转移函数
N(v) 节点v被访问的次数
Q(v) 节点v获得的奖赏值(目前、平均)
Δ(v,p) 玩家p选择节点v所得到的的奖赏值
2、逻辑推理
a.命题逻辑
- 命题连接符号
与(and) 𝑝⋀𝑞 命题合取(conjunction),即“𝑝且𝑞”
或(or) 𝑝⋁𝑞 命题析取(disjunction),即“ 𝑝或 𝑞 ”
非(not) ¬𝑝 命题否定(negation),即“非𝑝”
条件(conditional) 𝑝 → 𝑞 命题蕴含(implication),即“如果𝑝 则 𝑞”
双向条件(bi-conditional) 𝑝 ↔ 𝑞 命题双向蕴含(bi-implication),即“𝑝 当且仅当 𝑞”
逻辑真值表,逻辑等价≡,命题: {,多个命题并行成立} => {成立吗}?
- 逻辑等价
𝛼⋀𝛽 ≡ 𝛽⋀𝛼 (⋀的交互律) (𝛼⇒𝛽) ≡ ¬α∨β (蕴涵消除)
𝛼∨𝛽 ≡ 𝛽∨𝛼 (∨的交互律) (𝛼⟺𝛽) ≡ (𝛼⇒𝛽)∧(𝛽⇒𝛼)(双向消除)
(𝛼∧𝛽)∧𝛾 ≡ 𝛼∧(𝛽∧𝛾) (∧的结合律) ¬𝛼∧𝛽 ≡ (¬𝛼∨¬𝛽) (De Morgan)德·摩根定律
(𝛼∨𝛽)∨𝛾 ≡ 𝛼∨(𝛽∨𝛾) (∨的结合律) ¬𝛼∨𝛽 ≡ (¬𝛼∧¬𝛽) (De Morgan)
¬¬𝛼 ≡ 𝛼 (双重否定) (𝛼∧𝛽∨𝛾) ≡ (𝛼∧𝛽)∨(𝛼∧𝛾) (∧对∨的分配律)
(𝛼⇒𝛽) ≡ ¬𝛽⇒¬𝛼(逆否命题) (𝛼∨𝛽∧𝛾) ≡ (𝛼∨𝛽)∧(𝛼∨𝛾) (∨对∧的分配律)
- 推理规则
{α⇒β, α} => β 假言推理: 如果α成立则β成立、α成立⇒β成立
{𝛼1∧𝛼2∧⋯∧𝛼n} 与消解: 𝛼𝑖(1≤𝑖≤𝑛)
{𝛼1,𝛼2,…,𝛼𝑛} 与导入: 𝛼1∧𝛼2∧⋯∧𝛼n
b.谓词逻辑
基础:个体、谓词、量词(∀、∃)
∀x┐P(x) ≡ ┐∃xP(x) //任意|整体 使得不成立,不存在个体使得成立
┐∀xP(x) ≡ ∃x┐P(x) //不是 任意|整体 使得成立,即存在使得不成立
∀xP(x) ≡ ┐∃x┐P(x) //任意|整体 使得成立,不存在使得不成立
∃xP(x) ≡ ┐∀x┐P(x) //存在个体使得成立,不是 任意|全体 使得不成立
自然语言的形式化:前提 => 结论 形式化
;
专家系统:数据 => 知识 => 服务
c.知识图谱推理
ontology本体|存在;
predicate谓词;
entity实体;
inductive归纳的;
Convolutional卷积的;
- 概念
1) 层次化关系(ontology): 如:工程 → 水利工程
与Wordnet等早期本体知识构建不同,现有方法多在传统分类法(Taxonomy)中结合大众分类(Folksonomy)和机器学习来构建语义网络分类体系
2) 例子或实体(instance/entity)
一般通过分类识别等手段实现
3) 概念或实体的属性
概念或实体的属性描述和关系表达一般通过三元组来表示
(entity, relation, entity)或 (subject, predicate, object )
- 知识图谱的构成
• 概念:层次化组织
• 实体:概念的示例化描述
• 属性:对概念或实体的描述信息
• 关系:概念或实体之间的关联
• 推理规则:可产生语义网络中上述新的元素
- 归纳学习
归纳逻辑程序设计 (inductive logic programming,ILP)算法;
序贯覆盖(sequential covering):序贯结构是一种卷积神经网络,由多个卷积层堆叠而成,下一层以上一层的输出作为输入。序贯结构只有单个输入和输出;
序贯覆盖:在训练集上学到每一条规则,就将改规则覆盖的样例去除;然后以剩下的样例组成训练集重复上述过程(分治策略)
五大常见算法策略
1> 分治策略:分而治之
2> 动态规划:与分治法类似,分治,下一个子阶段的求解是建立在上一个子阶段的解的基础上,进行进一步的求解
3> 贪心算法:总是做出在当前看来是最好的选择
4> 回溯策略:一个类似枚举的搜索尝试过程,不满返回重试,回溯法深度优先搜索队列
5> 分支限界法:类似于回溯法,分支限界法广度优先搜索队列
卷积神经网(Convolutional Neural Networks, CNN):是一类包含卷积计算且具有深度结构的前馈神经网络;
前馈神经网络:是一种最简单的神经网络,各神经元分层排列。每个神经元只与前一层的神经元相连。接收前一层的输出,并输出给下一层.各层间没有反馈。
FOIL(First Order Inductive Learner一阶归纳型学习者)通过序贯覆盖实现规则推理。推理思路:从一般到特殊,逐步给目标谓词添加前提约束谓词,直到所构成的推理规则不覆盖任何反例。
//前提约束谓词(学习得到)
(∀𝑥)(∀𝑦)(∀𝑧) 𝑀𝑜𝑡ℎ𝑒𝑟(𝑧, 𝑦) ∧ 𝐶𝑜𝑢𝑝𝑙𝑒(𝑥, 𝑧) → 𝐹𝑎𝑡ℎ𝑒𝑟(𝑥, 𝑦)
//目标谓词(已知)
其中,𝑚 +和𝑚 −是增加前提约束谓词后所得新推理规则覆盖的正例和反例的数量,𝑚+和𝑚−是原推理规则所覆盖的正例和反例数量。
3、机器学习
a.机器学习基本概念
- 从数据中学习知识
a) 原始数据中提取特征;
b) 学习映射函数𝑓;
c) 通过映射函数𝑓将原始数据映射到语义空间,即寻找数据和任务目标之间的关系;
- 机器学习的分类
a) 半监督学习(semi-supervised learning)
监督学习(supervised learning)
数据有标签、一般为回归或分类等任务
无监督学习(un-supervised learning)
数据无标签、一般为聚类或若干降维任务
b) 强化学习(reinforcement learning)
序列数据决策学习,一般为与从环境交互中学习
重要元素:标注数据、学习模型、损失函数,训练数据与测试数据、经验风险与期望风险、过学习(over-fitting)与欠学习(under-fitting)、结构风险最小。
- 监督学习两种方法:判别模型与生成模型
判别模型关心在给定输入数据下,预测该数据的输出是什么。 典型判别模型包括回归模型、神经网络、支持向量机和Ada boosting等。
生成模型的典型方法为贝叶斯方法、隐马尔可夫链,授之于鱼、不如授之于“渔”,联合分布概率𝑃(𝑋, 𝑌)或似然概率𝑃(𝑋|𝑌)求取很困难。
- 线性回归
这种分析不同变量之间存在关系的研究叫回归分析,刻画不同变量之间关系的模型被称为回归模型。如果这个模型是线性的,则称为线性回归模型。
b.提升算法 (Ada Boost)
1) 概念相关
Boosting (adaptive boosting, 自适应提升):能用众力,则无敌于天下矣;能用众智,则无畏于圣人矣。
计算学习理论 ( Computational Learning Theory):可计算、可学习。
霍夫丁不等式(Hoeffding’s inequality):抽样数逼近实际概率的统计算式
概率近似正确 (probably approximately correct, PAC):“强可学习模型”和“弱可学习模型”
强可学习模型:学习模型能够以较高精度对绝大多数样本完成识别分类任务
弱可学习模型:学习模型仅能完成若干部分样本识别与分类,其精度略高于随机猜测
2) 算法
## Ada Boosting:思路描述
Ada Boosting算法中两个核心问题:
1> 在每个弱分类器学习过程中,如何改变训练数据的权重:提高在上一轮中分类错误样本的权重。
2> 如何将一系列弱分类器组合成强分类器:通过加权多数表决方法来提高分类误差小的弱分类器的权重,让其在最终分类中起到更大作用。同时减少分类误差大的弱分类器的权重,让其在最终分类中仅起到较小作用。
1-m:
## Ada Boosting:算法描述---数据样本权重初始化
初始化每个训练样本的权重
算法描述---第𝒎个弱分类器训练
算法描述---弱分类器组合成强分类器
第𝒎个在训练数据集上产生的分类误差,权重
m+1:
在开始训练第𝒎+𝟏个弱分类器之前对训练数据集中数据权重进行调整
如果某个样本无法被第𝒎个弱分类器𝑮𝒎 𝒙 分类成功,则需要增大该样本权重,否则减少该样本权重。这样,被错误分类样本会在训练第m+1个弱分类器时会被“重点关注” 。
在每一轮学习过程中,Ada Boosting算法均在划重点
弱分类器构造强分类器
在第𝑚次迭代中,Ada Boosting总是趋向于将具有最小误差的学习模型选做本轮生成的 弱分类器,使得累积误差快速下降
c.统计机器学习:无监督学习
- 无监督学习的重要因素
数据特征 | 图像中颜色、纹理或形状等特征 | 听觉信息中旋律和音高等特征 | 文本中单词出现频率等特征 |
相似度函数 | 定义一个相似度计算函数,基于所提取的特征来计算数据之间的相似性 |
K均值聚类(K-means 聚类)
1) 算法描述:
𝑛个𝑚-维数据:两个𝑚维数据之间的欧氏距离,𝑑(xi,xj)值越小,表示𝑥𝑖和𝑥𝑗越相似
𝑛个𝑚-维数据,分别聚类到𝑘个集合,使得每个数据仅属于一个聚类集合。算法:
第一步:初始化,初始化𝑘个聚类质心;
第二步:对数据进行聚类,将每个待聚类数据放入唯一一个聚类集合中;
第三步:更新聚类质心,根据聚类结果、更新聚类质心;
第四步:继续迭代,在新聚类质心基础上,算法循环迭代,直到满足条件。
//聚类迭代满足如下任意一个条件,则聚类停止:
a) 已经达到了迭代次数上限
b) 前后两次迭代中,聚类质心基本保持不变
2) 应用
图像分类、文本分类。
欧氏距离与方差量纲相同,K均值聚类算法的另一个视角:最小化每个类簇的方差。算法的不足:
a) 需要事先确定聚类数目,很多时候我们并不知道数据应被聚类的数目
b) 需要初始化聚类质心,初始化聚类中心对聚类结果有较大的影响
c) 算法是迭代执行,时间开销非常大
d) 欧氏距离假设数据每个维度之间的重要性是一样的
主成分分析 Principle Component Analysis (PCA)
1) 概念思维
主成分分析是一种特征降维方法,人类在认知过程中会主动“化繁为简”。
降维后的结果要保持原始数据固有结构
//原始数据中的结构
图像数据中结构:视觉对象区域构成的空间分布
文本数据中结构:单词之间的(共现)相似或不相似
假设有𝒏个两维变量数据:
皮尔逊相关系数,上面是协方差:
算法动机:保证样本投影后方差最大。
//相关性(correlation)与独立性(independence)
a) 如果𝑿和𝒀的线性不相关,则 𝑐𝑜𝑟𝑟 𝑋, 𝑌 = 0
b) 如果𝑿和𝒀的彼此独立,则一定 𝑐𝑜𝑟𝑟 𝑋, 𝑌 = 0,且𝑿和𝒀不存在任何线性或非线性关系
c) “不相关”是一个比“独立”要弱的概念,即独立一定不相关,但是不相关不一定相互
独立(可能存在其他复杂的关联关系)。独立指两个变量彼此之间不相互影响。
//主成分分析: 算法动机
在数理统计中,方差被经常用来度量数据和其数学期望(即均值)之间偏离程度,这个偏离程度反映了数据分布结构。
在许多实际问题中,研究数据和其均值之间的偏离程度有着很重要的意义。
在降维之中,需要尽可能将数据向方差最大方向进行投影,使得数据所蕴含信息没有丢失,彰显个性。如左下图所示,向𝑦方向投影(使得二维数据映射为一维)就比向𝑥方向投影结果在降维这个意义上而言要好;右下图则是黄线方向投影要好。
主成分分析思想是将𝑛维特征数据映射到𝑙维空间(𝑛 ≫ 𝑙),去除原始数据之间的冗余性(通过去除相关性手段达到这一目的)。
将原始数据向这些数据方差最大的方向进行投影。一旦发现了方差最大的投影方向,则继续寻找保持方差第二的方向且进行投影。
将每个数据从𝑛维高维空间映射到𝑙维低维空间,每个数据所得到最好的𝑘维特征就是使得每一维上样本方差都尽可能大。
在降维之中,需要尽可能将数据向方差最大方向进行投影,使得数据所蕴含信息没有丢失,彰显个性。
`
Y = X W
降维 原始 映射
结果 数据 矩阵
输入: 𝑛个𝑑维样本数据所构成的矩阵𝐗,降维后的维数𝑙
输出:映射矩阵𝐖 = {𝒘𝟏, 𝒘𝟐, … , 𝒘𝒍}
算法步骤:
1:对于每个样本数据𝒙𝑖进行中心化处理: 𝒙𝑖=𝒙𝑖-𝜇, 𝜇 =1/𝑛𝚺[j=1,n]𝑥𝑗;
2: 计算原始样本数据的协方差矩阵:𝚺=1/𝑛−1 𝐗[𝐓]𝑿;
3: 对协方差矩阵𝚺进行特征值分解,对所得特征根按其值大到小排序𝜆1≥𝜆2≥⋯≥𝜆𝑙;
4: 取前𝑙个最大特征根所对应特征向量𝒘𝟏, 𝒘𝟐, … , 𝒘𝒍组成映射矩阵𝐖;
5:将每个样本数据𝒙𝑖按照如下方法降维: (𝒙𝑖)1×𝑑(𝐖)𝑑×𝑙=1×𝑙提纲。
特征人脸方法(Eigenface)
1) 概念思维
特征人脸方法是一种应用主成份分析来实现人脸图像降维的方法,本质是用一种称为“特征人脸(eigenface)”的特征向量按照线性组合形式来表达每一张原始人脸图像,进而实现人脸识别。由此可见,这一方法的关键之处在于如何得到特征人脸。
2) 算法描述:特征人脸(基于特征人脸基准映射矩阵的降维)
将每幅人脸图像转换成列向量,如将一幅32 × 32的人脸图像转成1024 × 1的列向量。
输入: 𝑛个1024维人脸样本数据所构成的矩阵𝐗,降维后的维数l
输出:映射矩阵𝐖 = {𝒘𝟏, 𝒘𝟐, … , 𝒘𝒍}(其中每个𝒘𝒋(1 ≤ j ≤ 𝑙)是一个特征人脸)
算法步骤:
1:对于每个样本数据𝒙𝑖进行中心化处理: 𝒙𝑖=𝒙𝑖-𝜇, 𝜇 =1/𝑛𝚺[j=1,n]𝑥𝑗;
2: 计算原始样本数据的协方差矩阵:𝚺=1/𝑛−1 𝐗[𝐓]𝑿;
3: 对协方差矩阵𝚺进行特征值分解,对所得特征根按其值大到小排序𝜆1≥𝜆2≥⋯≥𝜆d;
4: 取前𝑙个最大特征根所对应特征向量𝒘𝟏, 𝒘𝟐, … , 𝒘l组成映射矩阵𝐖;
5:将每个样本数据𝒙𝑖按照如下方法降维: (𝒙𝑖)1×𝑑(𝐖)𝑑×𝑙=1×𝑙提纲
每个人脸特征向量𝐰𝑖与原始人脸数据𝒙𝑖的维数是一样的,均为1024。可将每个特征向量还原为32 × 32的人脸图像,称之为特征人脸,因此可得到𝑙个特征人脸。
由于每幅人脸是所有特征人脸的线性组合,因此就实现人脸从“像素点表达”到“特征人脸表达”的转变。每幅人脸从1024维约减到𝑙维。
人脸表达的方法对比:聚类、主成份分析、非负矩阵分解。非负矩阵人脸分解方法表示:通过若干个特征人脸的线性组合来表达原始人脸数据 𝒙𝑖 ,体现了“部分组成整体”。
4、统计机器学习算法应用
a.基于逻辑斯蒂回归模型的分类
回归与分类的区别
在回归分析中,学习得到一个函数将输入变量映射到连续输出空间,如价格和温度等,即值域是连续空间。
在分类模型中,学习得到一个函数将输入变量映射到离散输出空间,如人脸和汽车等,即值域是离散空间。
回归分析:从线性到非线性
非线性回归分析模型:逻辑斯蒂回归(logistic regression)就是在回归模型中引入 sigmoid函数(Logistic函数)的一种非线性回归模型。
[常用数学符号读法大全](http://www.fhdq.net/sx/14.html)
大写 小写 英文注音 国际音标注音 中文注音
Α α alpha alfa 阿耳法
Β β beta beta 贝塔
Γ γ gamma gamma 伽马
Δ δ deta delta 德耳塔
Ε ε epsilon epsilon 艾普西隆
Ζ ζ zeta zeta 截塔
Η η eta eta 艾塔
Θ θ theta θita 西塔
Ι ι iota iota 约塔
Κ κ kappa kappa 卡帕
∧ λ lambda lambda 兰姆达
Μ μ mu miu 缪
Ν ν nu niu 纽
Ξ ξ xi ksi 可塞
Ο ο omicron omikron 奥密可戎
∏ π pi pai 派
Ρ ρ rho rou 柔
∑ σ sigma sigma 西格马
Τ τ tau tau 套
Υ υ upsilon jupsilon 衣普西隆
Φ φ phi fai 斐
Χ χ chi khai 喜
Ψ ψ psi psai 普西
Ω ω omega omiga 欧米伽
对于线性回归模型而言,可以使用最小二乘法,但对于逻辑斯蒂回归而言使用传统最小二乘法求解是不合适的,需要考虑使用迭代算法进行优化求解,常见的就是“梯度下降法(gradient descent )”。
logistic回归只能用于解决二分类问题,将它进行推广为多项逻辑斯蒂回归模型(multi-nominal logistic model,也即softmax函数),用于处理多类分类问题,可以得到处理多类分类问题的softmax回归。从回归到分类(softmax分类):从两类分类到多类分类。
b.基于矩阵分解的潜在语义分析
潜在语义分析(Latent Semantic Analysis, LSA或者Latent Semantic Indexing, LSI)是一种从海量文本数据中学习单词-单词、单词-文档以及文档-文档之间隐性关系,进而得到文档和单词表达特征的方法。
该方法的基本思想是综合考虑某些单词在哪些文档中同时出现,以此来决定该词语的含义与其他的词语的相似度。潜在语义分析先构建一个单词-文档(term-document)矩阵A,进而寻找该矩阵的低秩逼近(low rank approximation),来挖掘单词-单词、单词-文档以及文档-文档之间的关联关系。
- 单词-文档矩阵(term-document):构造与分解
单词-文档矩阵A:
1) 从9篇论文标题中,筛选有实际意义且至少出现在两篇文章标题中的10个单词,分别是nonconvex,regression, optimization, network, analysis, minimization, gene, syndrome, editing, human,这样,十个单词和九篇文章就可以形成一个10 × 9大小的单词-文档矩阵A。每一行表示某个单词在不同文档标题中所出现次数。
当用户输入“optimization”这一检索请求,由于文档a3标题中不包含这一单词,则文档a3被认为是不相关文档,但实际上文档a3所涉及“minimization”内容与优化问题相关。出现这一问题是因为单词-文档矩阵只是刻画了单词是否在文档中出现与否这一现象,而无法对单词-单词、单词-文档以及文档-文档之间语义关系进行建模。
如果用户检索“eat an apple”,则文档“Apple is a great company”会被检索出来,而实际上该文档中单词“Apple”所指苹果公司、而非水果,造成这一结果的原因是一些单词具有“一词多义”。
因此需要一种方法能够建模单词-单词、单词-文档以及文档-文档之间语义关系,解决包括“异词同义”和“一词多义”在内的诸多挑战。
2) 歧义值分解(Singular Value Decomposition, SVD)将一个矩阵分解为两个正交矩阵与一个对角矩阵的乘积。
A=QR 【QR分解】
A=UΣVT 【奇异值分解】
其中U和V均为单位正交阵,即有UUT=I和VVT=I,U称为左奇异矩阵,V称为右奇异矩阵,Σ仅在主对角线上有值,我们称它为奇异值,其它元素均为0。
3) 选取(E中主对角线上数排序,奇异值)最大的前两个特征根及其对应的特征向量对矩阵A进行重建。
由于𝐴2是从最大两个特征根及其对应特征向量重建得到,因此𝐴2与𝐴不是完全一样的,两者存在一定的误差。
𝐴2捕获得到了原始单词-文档矩阵𝐴中所蕴含的单词与单词之间的关联关系
如果两个单词在原始单词-文档矩阵𝐴中分布一致,则其在重建矩阵𝐴2中分布也可能一致的,如editing和syndrome。
对于归属于同一类别文档的单词,可以发现它们之间的值彼此接近,而与不是归属于同一个类别中的单词不相似, 如minimization在机器学习类别文档中均为正数、其在基因编辑类别文档中几乎为负数。
将每个单词映射到维度为𝑹的隐性空间、将每个文档映射到维度为𝑹的隐性空间:统一空间,隐性空间可视为“主题空间(topic)”。
c.线性区别分析及分类
线性区别分析(linear discriminant analysis, LDA)是一种基于监督学习的降维方法,也称为Fisher线性区别分析(Fisher's Discriminant analysis,FDA)。
对于一组具有标签信息的高维数据样本,LDA利用其类别信息,将其线性投影到一个低维空间上,在低维空间中同一类别样本尽可能靠近,不同类别样本尽可能彼此远离。
主成分分析(PCA)是一种无监督学习的降维方法(无需样本类别标签),线性区别分析(LDA)是一种监督学习的降维方法(需要样本类别标签。PCA和LDA均是优化寻找一定特征向量𝐰来实现降维,其中PCA寻找投影后数据之间方差最大的投影方向、LDA寻找“类内方差小、类间距离大”投影方向。
PCA对高维数据降维后的维数是与原始数据特征维度相关(与数据类别标签无关)。假设原始数据维度为 d,那么PCA所得数据的降维维度可以为小于d的任意维度。LDA降维后所得到维度是与数据样本的类别个数K有关(与数据本身维度无关)。假设原始数据一共有K个类别,那么LDA所得数据的降维维度小于或等于K − 1。
5、深度学习
neural 神经的
feedforward 前馈,正反馈
鲁棒性:Robustness 健壮性,耐操性
a.前馈神经网络(feedforward neural network)
- 浅层学习 Versus 深度学习:从分段学习到端到端学习
深度学习所得模型可视为一个复杂函数,非线性变换与映射的过程:像素点→语义。
- 刻画神经元功能的数学模型
神经元是深度学习模型中基本单位,可以如下刻画神经元功能:
1. 对相邻前向神经元输入信息进行加权累加:𝐼𝑛 = 𝑤𝑖 ∗ 𝑎𝑖 𝑛𝑖=1
2. 对累加结果进行非线性变换(通过激活函数):𝑔 𝑥
3. 神经元的输出:𝑂𝑢𝑡 = 𝑔(𝐼𝑛)
神经元越多、非线性映射越复杂
对输入信息进行非线性变换
各个神经元接受前一级的输入,并输出到下一级,模型中没有反馈;层与层之间通过“全连接”进行链接,即两个相邻层之间的神经元完全成对连接,但层内的神经元不相互连接【前1-->后all】。
- 感知机网络(Perceptron Networks)
是一种特殊的前馈神经网络:无隐藏层,只有输入层/输出层;无法拟合复杂的数据。
- 优化网络参数
从标注数据出发,优化模型参数
1. 标注数据:(𝑥𝑖, 𝑦𝑖)(1 ≤ 𝑖 ≤ 𝑁)
2. 评分函数(scoring function) 将输入数据映射为类别置信度大小:s=𝑓(𝑥)= 𝑊𝜑(𝑥)
3. 损失函数来估量模型预测值与真实值之间的差距。损失函数给出的差距越小,则模型健壮性就越好。
常用的损失函数有softmax或者SVM。
使得损失函数最小化的方法:梯度下降 ( Gradient Descent)算法;
输出层误差反向传播给隐藏层进行参数更新的方法:误差反向传播 (error back propagation, BP),计算过程:
前向传播【正向】
反向传播:梯度计算
反向传播:参数更新
参数初始化
前向传播
反向传播【修正】
梯度计算
参数更新
b.卷积神经网络(convolution neural network, CNN)
- 卷积操作
有一张32*3*3(RGB)的图像,使用5*5*3的卷积核
𝑊1,步长为1对其进行卷积操作。卷积核𝑊1在原始图像上从左到右、从上到下进行计算,改变5*5子块区域中的中心像素点值,得到28*28的特征图𝑚1;使用另一个5*5*3的卷积核𝑊2与原始图像做卷积操作,得到特征图𝑚2; 使用6个5*5*3的卷积核与原始图像做卷积操作,则得到6个28*28的特征图。注意: 6个5*5*3的卷积核均是数据驱动学习得到,其刻画了不同的视觉模式。
卷积+激活函数(非线性映射):在对原始图像做卷积操作后,可使用ReLu激活函数对卷积后结果进行处理
原始图像 32*32
6个 5*5*3卷积核
6个 28*28特征图
10个 5*5*6卷积核
10个 24*24特征图
- 池化(pooling)操作
对输入的特征图进行下采样,以获得最主要信息,常用的池化操作有:最大池化(在输入特征图中每一个区域寻找最大值)、平均池化(对输入特征图的每一个区域的值求平均值、取整)。
卷积神经网络基本架构
[图像]输入
卷积
Relu
卷积
Relu
池化
卷积
Relu
卷积
Relu
池化
卷积
Relu
卷积
Relu
池化
全连接层[特征图转换成向量]
分类层[输出识别分类的置信度值]
所需学习参数:卷积核、全连接层权重、激活函数参数
体现了数据、模型和算力的结合
c.自然语言理解与视觉分析
- 学习单词的表达-----词向量(Word2Vec)
One-hot向量:在基于规则和统计的自然语言传统方法中,将单词视为独立符号;在向量空间中,一个单词按照其在文档中出现的有无,被表示为如下向量(按照字典序):[0, 0, 0, 1, 0, 0, … , 0, 0, 0, 0]。单词之间的关联丢失。
通过深度学习方法,将单词表征为K维实数值向量(distribution representation)。这样,把对文本内容分析简化为 K 维向量空间中的向量运算,而向量空间上的相似度可以用来表示文本语义上的相似。用深度学习算法生成每个单词的向量表达所有单词的向量表达组成了一个“词向量空间”。单词表达为词向量后,很多 NLP 相关工作(如聚类、同义词计算、主题挖掘等)可以顺利开展。
词向量(一般为100-200维)。词向量模型的训练,关键词:对数似然函数;Continue Bag-of-Words (CBoW): 根据某个单词的上下文单词来预测该单词,Skip-gram:利用某个单词来分别预测该单词的上下文单词。词向量模型的基本思想
:
词向量模型由一层输入层,一层隐藏层,一层输出层构成:实现了每个单词𝑁维向量的表达。
- Word2Vec的改进算法
对一个包含10000个单词的语料库,每个单词的词向量设为200维,则需要200*10000(2000000)和10000*200(2000000)异常庞大的权重矩阵
在如此大神经网络上进行梯度下降耗时
为了解决这个不足,后续出现了如下改进手段:
• Hierarchical Softmax (引入霍夫曼树)
• Negative Sampling
基于词向量的操作:单词类比,𝑘𝑖𝑛𝑔 − 𝑚𝑎𝑛 + 𝑤𝑜𝑚𝑎𝑛 = 𝑞𝑢𝑒𝑒
卷积神经网络应用:图像分类与定位
- 学习算法的改造:从浅层模型到深层模型
浅层模型 深层模型
Language model Neural language model
Bayesian Learning Bayesian deep learning
Turing Machine Neural Turing Machine
Reinforcement Learning Deep Reinforcement Learning
Generative Model Deep Generative Model
X Deep or Neural + X
6、强化学习
a.定义:在与环境交互之中进行学习
机器学习的不同类型
有监督学习:分类问题,从数据𝑋和标签𝑦中学习映射𝑓: 𝑋 ↦ y
无监督学习:聚类问题,寻找数据𝑋中存在的结构和模式
强化学习的应用:机器人运动: learning to learn;自然语言理解;
- 离散马尔可夫过程(Discrete Markov Process)
马尔可夫链(Markov Chain):满足马尔可夫性(Markov Property 在给定现在状态时,它与过去状态(即该过程的历史路径)是条件独立的)的离散随机过程(变量随机、时间离散),也被称为离散马尔科夫过程。
引入奖励:先苦后甜,先甜后苦,折扣系数/衰退系数𝛾小于1时,越是遥远的未来对累加反馈的贡献越少。
引入动作。
在机器人移动问题
1. 随机变量序列 𝑆𝑡 𝑡=0,1,2,⋯:𝑆𝑡表示机器人第𝑡步所在位置(即状态),每个随机变量𝑆𝑡的取值范围为𝑆 = {𝑠1, 𝑠2, ⋯ , 𝑠9, 𝑠𝑑}
2. 动作集合:𝐴 = {上,右}
3. 状态转移概率𝑃𝑟(𝑆𝑡+1|𝑆𝑡, 𝑎𝑡):满足马尔可夫性,其中𝑎𝑡 ∈ 𝐴。
4. 奖励函数:𝑅(𝑆𝑡, 𝑎𝑡, 𝑆𝑡+1)
5. 衰退系数:𝛾 ∈ [0, 1]
马尔科夫决策刻画:
𝑀𝐷𝑃 = {𝑆, 𝐴, 𝑃𝑟, 𝑅, 𝛾}
在机器人移动问题中:状态、行为、衰退系数、起始/终止状态、反馈、状态转移概率矩阵
策略学习,价值函数与动作-价值函数的关系:对策略进行评估;贝尔曼方程(Bellman Equation):刻画了价值函数和行动-价值函数自身以及两者相互之间的递推关系,利用贝尔曼方程进行策略评估,进而进行策略优化。
b.策略优化与策略评估
强化学习的求解方法
• 基于价值(Value-based)的方法
对价值函数进行建模和估计,以此为依据制订策略
• 基于策略(Policy-based)的方法
对策略函数直接进行建模和估计,优化策略函数使反馈最大化
• 基于模型(Model-based)的方法
对环境的运作机制建模,然后进行规划(planning)等
- 价值的求解方法
第一部分:策略优化(Policy Improvement),第二部分:策略评估(Policy Evaluation)
如基于动态规划的价值函数更新:使用迭代的方法求解贝尔曼方程组。
通过迭代计算贝尔曼方程进行策略评估
• 动态规划,
缺点:1) 智能主体需要事先知道状态转移概率;2) 无法处理状态集合大小无限的情况。
• 蒙特卡洛采样
优点:1) 智能主体不必知道状态转移概率;2) 容易扩展到无限状态集合的问题中。
缺点:1) 状态集合比较大时,一个状态在轨迹可能非常稀疏,不利于估计期望;2) 在实际问题中,最终反馈需要在终止状态才能知晓,导致反馈周期较长。
• 时序差分(Temporal Difference)
c.求解:Q-Learning
第一部分和第二部分结合:策略优化与策略评估结合,基于时序差分的方法 – Q学习(Q-Learning)[ Q: quality ]
基于价值的方法 – Q学习
策略学习中探索(exploration)与利用(exploitation)的平衡
探索与利用之间如何取得平衡
• 只利用而不探索
• 只探索而不利用(则训练过程完全没有意义 )
• 大体上利用,偶尔探索
将动作采样从“确定地选取最优动作”改为“按照𝜖贪心策略选取动作”;更新时仍保持用max操作选取最佳策略。像这样更新时的目标策略与采样策略不同的方法,叫做离策略(off-policy)方法。
d.学习:深度学习+强化学习
用神经网络拟合(行动)价值函数
如果用深度神经网络来拟合𝑞函数,则算法称为深度Q学习:
两个不稳定因素
1. 相邻的样本来自同一条轨迹,样本之间相关性太强,集中优化相关性强的样本可能导致神经网络在其他样本上效果下降。
2. 在损失函数中,𝑞函数的值既用来估计目标值,又用来计算当前值。现在这两处的𝑞函数通过𝜃有所关联,可能导致优化时不稳定。
经验重现(Experience Replay)
相邻的样本来自同一条轨迹,样本之间相关性太强,集中优化相关性强的样本可能
导致神经网络在其他样本上效果下降。
将过去的经验存储下来,每次将新的样本加入到存储中去,并从存储中采样一批样本进行优化
• 解决了样本相关性强的问题
• 重用经验,提高了信息利用的效率
目标网络(Target Network)
损失函数的两个𝑞函数使用不同的参数计算
• 用于计算估计值的𝑞使用参数𝜃−计算,这个网络叫做目标网络
• 用于计算当前值的𝑞使用参数𝜃计算
• 保持𝜃−的值相对稳定,例如𝜃每更新多次后才同步两者的值 𝜃− ← 𝜃
7、人工智能博弈与安全
a.概念、算法
田忌赛马;
研究范式:两害相权取其轻,两利相权取其重;
要素:玩家(player),策略(strategy),收益(payoff),规则(rule)
囚徒困境:在囚徒困境中,最优解为两人同时沉默,但是两人实际倾向于选择同时认罪(均衡解)
博弈的分类:合作博弈与非合作博弈,静态博弈与动态博弈,完全信息博弈与不完全信息博弈
博弈的稳定局势即为纳什均衡
遗憾最小化算法
是一种根据过去博弈中的遗憾程度来决定将来动作选择的方法;如果不能遍历计算所有节点的遗憾值,那么可以采用虚拟遗憾最小化算法
来进行模拟计算。
博弈规则的设计
问题描述
• 假设博弈的参与者都是足够理性的
• 如何设计一个博弈规则能确保公正性或者达到设计者的最大利益
挑战
• 规则复杂
• 计算量大
应用领域
• 拍卖竞价:互联网广告投放、车牌竞价
• 供需匹配:污染权、学校录取
• 公正选举:选举制度、表决制度、议席分配
- G-S算法(Gale-Shapley):稳定婚姻问题
- 最大交易圈算法(Top-Trading Cycle algorithm):室友匹配问题
b.人工智能安全
1) 加密技术:有安全哈希算法(Secure Hash Algorithm, SHA)和高级加密标准(Advanced Encryption Standard, AES)。
2) 使用神经网络的加密算法:2016年谷歌大脑的研究团队提出了使用对抗生成网络生成的一个加密算法,其使用了三个神经网络分别完成加密、解密和攻击的工作,以保证通信双方信息的无损传输以及第三方无法破译通信内容。
3) 数字水印:将特定信息(版权信息等)嵌入在数字信号中
近年来通过神经网络来添加水印和提取水印信息的成为学术研究热点。
4) 数据安全与模型安全:对模型的攻击(对抗样本)、白盒攻击(图片识别:女性样本改参数识别为男性,应对:生成对抗网络
),黑盒攻击(无针对攻击 Non-Targeted Attack、有针对攻击 Targeted Attack)
总结
- 样本关系
高维欧氏距离小【K均值聚类】 ==形容==> 数据的特征与目标模型的关联度紧密
- 特征降维
多样本映射偏离性最大【主成分分析】 ==形容==> 映射矩阵下,保留最多特征
特征根
就是提取到的所有标化后原始变量的变异(方差)的总和,
理解1:线性递推数列:可以通过的通项公式来理解,多阶即多个通项变量;
理解2:高阶常系数线性微分方程:因变情况是通项变量的高阶导数存在,即有通项变量参照求导阶数是指数级变量,特征方程是通变量的线性约束条件;
理解3:方阵Ann的特征向量、特征根:~一维方向-长度映射 Avi=λivi,对称阵、实矩阵v两两正交;
- 文档语义分析
歧义值分解(SVD)、QR分解(QQt=I、Q是标准正交矩阵,R右上三角矩阵)
SVD(奇异值分解)Python实现
A=UΣVT (m*n: m*m.m*n.n*n)
AAT=UΣVT VΣTUT=U(ΣΣT)UT = U(Σ2)UT
//矩阵AAT特征值分解,得到的特征矩阵即为U,ΣΣT(对角线的特征值开方,可以得到所有的奇异值)
ATA=VΣTUT UΣVT=V(ΣTΣ)VT = V(Σ2)VT
//矩阵AAT特征值分解,V,ΣTΣ
其中U和V均为单位正交阵,即有UUT=I和VVT=I,Σ仅在主对角线上有值(m*n)
降维的过程就是舍弃不重要的特征向量的过程
重建之后与原图对比:均方误差MSE随奇异值的增加(从大到小排序,其余取0)而减少
卷积神经网络
卷积层:功能是对输入数据进行特征提取,使用卷积核|模板(卷积核大小、步长和填充),与原图像数据做了点积操作,两个向量相应位置相乘然后求和。点积的物理意义是两个向量之间的相似度。如果卷积结果越大,说明图像中的某位置和卷积模板类似,如果卷积结果小,说明图像中某位置和卷积模板的相似度很小。
ReLU:通常使用线性整流函数(Rectified Linear Unit, ReLU),使得输出(输入为线性函数,一级多项式,线性函数的组合解决的问题太有限了)更加复杂,提高表达能力。
池化:即取区域平均或最大,特征维数减少,训练参数减少,泛化能力加强,进而防止过拟合。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。