课程笔记来源:2020公开课【人工智能:模型与算法】-浙江大学
P11.1可计算思想起源与发展
智能: 从感知、到理解、到认知、到决策与行动
计算的诞生:从可计算到不可计算->20世纪初,人们发现有许多问题无法找到解决的方法。于是开始怀疑,是否对这些问题来说,根本就不存在算法,即不可计算。
人工智能:以机器为载体的人类智能或生物智能
算术公理的相容性:
- 完备性:所有能够从该形式化系统推导出来的命题,都可以从这个形式化系统推导出来。
- 一致性:一个命题不可能同时为真或为假
- 可判定性:算法在有限步内判定命题的真伪
哥德尔不完全性定理:任何表达力足够强的(递归可枚举)形式系统都不可能同时具有一致性和完备性
图灵测试:指测试者与被测试者(一个人和一台机器)隔开的情况下,通过一些装置(如键盘)向被测试者随意提问。进行多次测试后,如果机器让平均每个参与者做出超过30%的误判,那么这台机器就通过了测试,并被认为具有人类智能。
摩尔定律:(计算机速度1年半增长1倍),亿级晶体管、千亿指令/秒
P21.2人工智能的发展简史
人工智能发展中的主流方法(1):符号主义人工智能(SymbolicAl)为核心的逻辑推理
人工智能发展中的主流方法(2):数据驱动(data-driven)为核心的机器学习
人工智能发展中的主流方法(3):在“探索(未知空间)与利用(已有经验)(exploration vs.exploitation)”之间取得平衡为核心的强化学习
P31.3人工智能研究的基本内容
人工智能特点:至小有内、至大无外,多学科交叉内禀
从模拟人类智能角度而言,人工智能应具备如下能力:
- 具备视觉感知和语言交流的能力。即能够识别和理解外界信息(计算机视觉研究范畴)、能够与人通过语言交流(自然语言理解研究范畴)。
- 具备推理与问题求解能力。即基于已有知识,对所见事物和现象进行演绎推理以解决问题。
- 具备协同控制能力。即将视觉(看)、语言(说)、推理(悟)等能力统一协调,加以控制,这是常见的机器人研究领域内容。
- 具备遵守伦理道德能力。即模拟人类智能的智能体在社会环境中要遵从一定的伦理道德。阿西莫夫在科幻小说中按照优先级定义了机器人需要遵从的三条伦理原则:不得伤人,或弃人于危难;需服从人;在不违反上述两条原则情况下,保护机器人自己。
- 具备从数据中进行归纳总结的能力。即需要从数据中进行知识、规律和模式学习的模型和方法,这是机器学习研究范畴。
授课基本内容:
人工智能概述
- 1.1可计算思想起源与发展
- 1-2人工智能的发展简史
- 1.3人工智能研究的基本内容
搜索求解
- 2.1启发式搜索
- 2.2对抗搜索(Minimax及Alpha-Beta剪枝搜索)
- 2.3蒙特卡洛树搜索
逻辑与推理
- 3.1命题逻辑
- 3.2谓词逻辑
- 3.3兴国格推理
- 3.4因果推理
统计机器学习|监督学习
- 4.1机器学习基本概念
- 4.2线性回归与分类
- 4.3Ada Boosting
- 4.4线性区别分析
统计机器学习|非监督学习
- 5.1K-means
- 5.2主成分分析
- 5.3特征人脸方法
- 5.4期望极大算法(EM)
深度学习(监督学习+端到端)
- 6.1前馈神经网络(误差后向传播)
- 6.2卷积神经网络
- 6.3自然语言理解与视觉分析
强化学习
- 7.1马尔科夫决策过程
- 7.2强化学习中策略优化与策略评估
- 7.3Q-Learning
- 7.4深度强化学习
人工智能博弈
- 8.1博弈相关概念(纳什均衡)
- 8.2遗憾最小化算法
- 8.3虚拟遗憾最小化算法
搜索求解
P42.1启发式搜索
给定搜索目标,设计启发函数,来保证搜索目标最优化的求解
P52.2对抗搜索
在游戏里搜索一种解决方案,但在搜索过程中对手会阻止我们,这种情况下我们能获得最大收益的搜索方式。本文中主要讲解Minmax搜索+alpha-beta剪枝搜索
对抗搜索(Adversarial Search)也称为博弈搜索(Game Search),在一个竞争的环境中,智能体(agents)之间通过竞争实现相反的利益,一方最大化这个利益,另外一方最小化这个利益。
本课程目前主要讨论在确定的、全局可观察的、竞争对手轮流行动、零和游戏(zero-sum)下的对抗搜索
- 零和博弈是博弈论的一个概念,属非合作博弈。指参与博弈的各方,在严格竞争下,一方的收益必然意味着另一方的损失,博弈各方的收益和损失相加总和永远为“零”,双方不存在合作的可能。
- 与“零和”对应,“双赢博弈”的基本理论就是“利己”不“损人”,通过谈判、合作达到皆大欢喜的结果。
最大最小搜索
给定一个游戏搜索树,minimax算法通过每个节点的minimax值来决定最优策略。当然,MAX节点希望最大化minimax值,而MIN节点则相反,希望最小化minimax值—>让自己的收益最大,让对方的收益or己方的损失最小
优点:
- 算法是一种简单有效的对抗搜索手段
- 在对手也“尽力而为”前提下,算法可返回最优结果
缺点:
- 如果搜索树极大,则无法在有效时间内返回结果
改善:
- 使用alpha-beta pruning算法来减少搜索节点
- 对节点进行采样、而非逐一搜索(ie.,MCTS)
alpha-beta剪枝搜索
一种对最小最大搜索进行改进的算法,即在搜索过程中可剪除无需搜索的分支节点,且不影响搜索结果。.
P62.3蒙特卡洛树搜索
alphaGo三大法宝:深度学习、强化学习、MCTS
通过采样而非穷举方法来实现搜索,从而跟上述两种搜索有本质上的区别。
多臂赌博机问题是一种序列决策问题,这种问题需要在利用(exploitation)和探索(exploration)之间保持平衡。
- 利用(exploitation):保证在过去决策中得到最佳回报
- 探索(exploration):寄希望在未来能够得到更大回报
exploitation component(利用)
第一部分是 ,也称作exploitation component。 Q(Vi)为子节点获胜次数,N(Vi)为子节点参与模拟的次数
可以看做是子节点Vi的胜率估计(总收益/总次数=平均每次的收益)。但是不能只选择胜率高的下一步,因为这种贪婪方式的搜索会很快导致游戏结束,这往往会导致搜索不充分,错过最优解。
举个简单的例子。现在假设MCTS的UCT函数只用了探索成分,从根节点开始,我们对所有子节点进行了一次模拟,然后在下一步中只访问至少赢了一次的子节点。那么在第一次模拟中那些不幸未被选中的节点(实际中rollout策略函数通常是随机的)将会被立刻抛弃
exploration component(探索)
c* \sqrt{\frac{\log(N(v))}{N(v_{i})} }$$,这个成分更倾向于那些想对较少被探索的节点N(Vi)小。 参数c是exploitation和exploration之间的折中系数。 ##### MCTS的终止 终止条件(or): - 达到一定的迭代次数 - 达到规定的搜索时间 当MSCT程序结束时,最佳的移动通常是访问次数最多的那个节点,也是UCT最大的点。 将上限置信区间算法UCB应用于游戏树的搜索方法,由Kocsis和Szepesvari在2006年提出包括了四个步骤:**选举(selection)**,**扩展(expansion)**,**模拟(simulation)**,**反向传播(Back-Propagation)** **选择** <img src="./《人工智能-模型与算法——浙江大学公开课》笔记\MCTS1.jpg" alt="MCTS1" style="zoom:67%;" /> **拓展** <img src="./《人工智能-模型与算法——浙江大学公开课》笔记\MCTS2.jpg" alt="MCTS2" style="zoom:67%;" /> **模拟、反向传播** <img src="./《人工智能-模型与算法——浙江大学公开课》笔记\MCTS3.jpg" alt="MCTS3" style="zoom:67%;" /> ##### MCTS学习策略: <img src="./《人工智能-模型与算法——浙江大学公开课》笔记\MCTS学习策略.jpg" alt="MCTS学习策略" style="zoom:67%;" /> ##### MCTS算法执行 <img src="./《人工智能-模型与算法——浙江大学公开课》笔记\processure.png" alt="processure" style="zoom:67%;" /> <img src="./《人工智能-模型与算法——浙江大学公开课》笔记\MCTS算法执行.jpg" alt="MCTS算法执行" style="zoom:67%;" /> # [P125.1机器学习基本概念](https://www.bilibili.com/video/BV1c7411n7EY?p=12) <img src="./《人工智能-模型与算法——浙江大学公开课》笔记/监督学习.jpg" alt="监督学习" style="zoom:67%;" /> **机器学习的目的:** 1.原始数据中提取特征 2.学习映射函数f 3.通过映射函数f将<u>原始数据映射到语义空间</u>,即寻找<u>数据和任务目标</u>之间的关系 ## 监督学习 ### 监督学习的两种方法: - 判别模型 - 判别方法直接学习判别函数f(X)或者条件概率分布P(YIX)作为预测的模型,即判别模型。 - 判别模型关心在给定输入数据下,预测该数据的输出是什么。 - 典型判别模型包括回归模型、神经网络、支持向量机和Ada boosting等。 - 生成模型 - 生成模型从数据中学习联合概率分布P(X,Y)(通过似然概率P(X|Y)->从输入数据产生输出、类概率P(Y)的乘积来求取) $P(Y|X)= \frac{P(X,Y)}{P(x)}$或者$P(Y|X)= \frac{P(X|Y)*P(Y)}{P(x)}$ - 典型方法为贝叶斯方法、隐马尔可夫链授之于鱼、不如授之于“渔” - 联合分布概率P(X,Y)或似然概率P(YIX)求取很困难 ## [P135.2线性回归分析](https://www.bilibili.com/video/BV1c7411n7EY?p=13) 线性回归定义:分析不同变量之间存在关系的研究叫回归分析,刻画不同变量之间关系的模型被称为回归模型。如果这个模型是线性的,则称为线性回归模型。 例如y = k*x + b,就是一个回归模型,其中的参数k和b需要从标注的数据中学习得到(监督学习) **线性回归模型例子** 背景:给出了莫纳罗亚山(夏威夷岛的活火山)从1970年到2005年每5年的二氧化碳浓度,单位是百万分比浓度(Parts Per Million,ppm)。 <img src="./《人工智能-模型与算法——浙江大学公开课》笔记/线性回归.jpg" alt="线性回归" style="zoom:67%;" /> 问题Q:1)给出1984年二氧化碳浓度值;2)预测2010年二氧化碳浓度值 解答A 1. 目标:建立回归模型y = a*x + b, 通过最佳回归模型求解参数a和b, 最佳回归模型是最小化残差平方和的均值,即要求8组(x,y)数据得到的残差平均值$\frac{1}{N} \sum(y-\tilde{y})^{2}$最小。残差平均值最小只与参数a和b有关,最优解即是使得残差最小所对应的a和b的值。 2. 具体步骤: - 记在当前参数下第i个训练样本xi的预测值为$\hat{y_i}$; - xi的标注值(实际值)yi,与预测值$\hat{y_i}$,之差记为$\left(y_{i}-\hat{y}_{i}\right)^{2}$ - 训练集中n个样本所产生误差总和为$L(a, b)=\sum_{i=1}^{n}\left(y_{i}-a \times x_{i}-b\right)^{2}$--》**误差函数** - 目标:寻找一组a和b,使得误差总和L(a,b)值最小。在线性回归中,解决如此目标的方法叫**最小二乘法**。 一般而言,要使函数具有最小值,可<u>对L(a, b)参数a和b分别求导,令其导数值为零-->偏导</u>,再求取参数a和b的取值。 ▲线性回归,可以从已标注数据出发,找寻两组变量之间的线性关系,并且可拓展为多维变量 ## [P145.3提升算法(boosting)](https://www.bilibili.com/video/BV1c7411n7EY?p=14) 对于一个复杂的分类任务,可以将其分解为若干子任务,然后将若干子任务完成方法**综合**,最终完成该复杂任务。即将弱分类器(weak classifiers)**组合**起来,形成强分类器(strong classifier) ### 为什么这样是能work的呢? > 计算学习理论(Computational Learning Theory) > - 可计算:什么任务是可以计算的?Ans: 图灵可停机 > - 可学习:什么任务是可以被学习的、从而被学习模型来完成? > > 学习任务:统计某个电视节目在全国的收视率。 > 方法:不可能去统计整个国家中每个人是否观看电视节目、进而算出收视率。只能**抽样**一部分人口,然后将抽样人口中观看该电视节目的比例作为该电视节目的全国收视率。 > 霍夫丁不等式:全国人口中看该电视节目的人口比例(记作x)与抽样人口中观看该电视节目的人口比例(记作y)满足如下关系: > > <mark>当N足够大时,“全国人口中电视节目收视率”与“样本人口中电视节目收视率”差值超过误差范围e的概率非常小。</mark> > > 对于统计电视节目收视率这样的任务,可以通过<u>不同的采样方法(即不同模型)</u>来计算收视率。每个模型会产生不同的误差。 问题:如果得到完成该任务的若干“弱模型”,是否可以将这些弱模型组合起来,形成一个“强模型”。该“强模型”产生误差很小呢? 这就是**概率近似正确(PAC)**要回答的问题。 <img src="./《人工智能-模型与算法——浙江大学公开课》笔记/PAC.jpg" alt="PAC" style="zoom:67%;" /> ### adaboosting > 将一系列弱分类器组合成强分类器 Ada Boosting算法中两个核心问题: - 在每个弱分类器学习过程中,如何改变训练数据的权重:提高在上一轮中分类错误样本的权重。 - 如何将一系列弱分类器组合成强分类器:通过加权多数表决方法来提高分类误差小的弱分类器的权重,让其在最终分类中起到更大作用。同时减少分类误差大的弱分类器的权重,让其在最终分类中仅起到较小作用。 算法步骤: 1. 数据样本权重初始化——初始化每个训练样本的权重 - $D_{1}=\left(w_{11}, \ldots, w_{1 i}, \ldots, w_{1 N}\right),$ 其中 $w_{1 i}=\frac{1}{N}(1 \leq i \leq N)$,初始情况下每个分类器的权重是一样的 2. -第m个弱分类器训练 $\quad$ 对 $m=1,2, \ldots, M$ a) 使用具有分布权重 $D_{m}$ 的训练数据来学习得到第m个基分类器(弱分类器) $G_{m}$ :
G_{m}(x): X \rightarrow{-1,1}
b) 计算 在训练数据集上的分类误差 这里: 如果 否则为 0 c) <u>计算弱分类器 的权重</u> ,如果意味着每个样本都分类错,则,当=1/2, 则性能相当于随机分类;权重随分类误差errm减小而增大,也就是说分类越少,分类器的权重越大。 d) 更新训练样本数据的分布权重: 其中 是归一化因子以使得 为概率分布, - 对数据不断划重点: 可见,如果某个样本无法被第m个弱分类器Gm(x)分类成功,则需要增大该样本权重,否则减少该样本权重。这样,被错误分类样本会在训练第m+1个弱分类器Gm+1(x)时会被“重点关注”。 在每一轮学习过程中,Ada Boosting算法均在划重点(重视当前尚未被正确分类的样本) 3. 弱分类器组合成强分类器 以线性加权形式来组合弱分类器
f(x)=\sum_{i=1}^{M} \alpha_{m} G_{m}(x)
得到强分类器
G(x)=\operatorname{sign}(f(x))=\operatorname{sign}\left(\sum_{i=1}^{M} \alpha_{m} G_{m}(x)\right)
- f(x)是M个弱分类器的**加权线性**累加。分类能力越强的弱分类器具有更大权重。 - 累加之和并不等于1。 - 符号决定样本 分类为 1 或- 1 。如果 为正,则强分类器 将样本 分类为1 ; 否则为-1。 **回看霍夫丁不等式** > 假设有M个弱分类器Gm(1sm≤M),则M个弱分类器线性组合所产生误差满足如下条件: - 是真实分类函数、∈(0,1)。上式表明,如果所“组合”弱分类器越多,则学习分类误差呈指数级下降,直至为零。 - 上述不等式成立有两个前提条件:1)每个弱分类器产生的误差相互独立;2)每个弱分类器的误差率小于50%。因为每个弱分类器均是在同一个训练集上产生,条件1)难以满足。也就说,“准确性(对分类结果而言)”和“差异性(对每个弱分类器而言)”难以同时满足。---->Ada Boosting采取了序列化学习机制。 #### 优化目标 Ada Boost实际在最小化如下指数损失函数(minimization of exponential loss): Ada Boost的分类误差上界如下所示: 在第m次迭代中,Ada Boosting总是趋向于将具有最小误差的学习模型选做本轮生成的弱分类器Gm,使得累积误差快速下降。 ## 无监督学习 > 无监督学习中,由于数据本身没有语义标签,因此我们对聚类结果无法知道到底代表的是怎样的高层语义 ![无监督学习](./《人工智能-模型与算法——浙江大学公开课》笔记/无监督学习.jpg) <img src="./《人工智能-模型与算法——浙江大学公开课》笔记/无监督相似度.jpg" alt="无监督相似度" style="zoom:67%;" /> 数据特征和相似度函数都很重要 ### [P156.1K均值聚类](https://www.bilibili.com/video/BV1c7411n7EY?p=15)-kmeans 输入:n个数据(无任何标注信息) 输出:k个聚类结果 目的:将n个数据聚类到k个集合(也称为类簇) **算法描述** 若干定义: n个m 维数据 - 两个 维数据之间的欧氏距离为
d\left(x_{i}, x_{j}\right)=\sqrt{\left(x_{i 1}-x_{j 1}\right)^{2}+\left(x_{i 2}-x_{j 2}\right)^{2}+\cdots+\left(x_{i m}-x_{j m}\right)^{2}}
值越小,表示 和 越相似; 反之越不相似 - 聚类集合数目 问题:如何将n个数据依据其相似度大小将它们分别聚类到 个集合,使得每个数据仅属于一个聚类集合。 1. 初始化——初始化聚类质心 - 初始化 个聚类质心 - 每个聚类质心 所在集合记为 2. 对数据进行聚类——将每个待聚类数据放入唯一一个聚类集合中 - 计算待聚类数据 和质心 之间的欧氏距离 - 将每个 <u>放入与之距离最近聚类质心所在聚类集合</u>中,即 3. 更新聚类质心——根据聚类结果、更新聚类质心 - 根据每个聚类集合中所包含的数据,更新该聚类集合质心值, 即 4. 继续迭代——算法循环迭代,直到满足条件 聚类迭代满足如下任意一个条件,则聚类停止: - 已经达到了迭代次数上限 - 前后两次迭代中,聚类质心基本保持不变 **K均值聚类算法的另一个视角:最小化每个类簇的方差** - 欧氏距离与方差量纲相同 - **最小化每个类簇方差**将使得最终**聚类结果中每个聚类集合中所包含数据呈现出来差异性最小**。 <img src="./《人工智能-模型与算法——浙江大学公开课》笔记/kmeans.jpg" alt="kmeans" style="zoom:67%;" /> #### K均值聚类算法的不足 - 需要事先确定聚类数目,很多时候我们并不知道数据应被聚类的数目 - 需要初始化聚类质心,初始化聚类中心对聚类结果有较大的影响 - 算法是迭代执行,时间开销非常大 - 欧氏距离假设数据每个维度之间的重要性是一样的 ### [P166.2主成分分析](https://www.bilibili.com/video/BV1c7411n7EY?p=16)——Principle Component Analysis (PCA) > 主成份分析是一种特征降维方法。人类在认知过程中会主动“化繁为简” > 奥卡姆剃刀定律(Occam's Razor):“如无必要,勿增实体”,即“简单有效原理” 主成份分析:**降维后的结果要保持原始数据固有结构** 啥是原始数据中的结构?: 1.图像数据中结构:视觉对象区域构成的空间分布 ; 2.文本数据中结构:单词之间的(共现)相似或不相似 若干相关概念:方差和协方差、皮尔逊相关系数 **方差** - 方差等于各个数据与样本均值之差的平方和之平均数 - 方差描述了样本数据的波动程度 **协方差** - 衡量两个变量之间的相关度 **皮尔逊相关系数** 我们可通过皮尔逊相关系数(Pearson Correlation coefficient)将两组变量之间的关联度规整到一定的取值范围内。 注:相关系数表达的是线性相关程度 **皮尔逊相关系数所具有的性质**如下: - | corr(X,Y)| ≤1 - corr(X,Y)=1的充要条件是存在常数a和b,使得Y=ax+b - 皮尔逊相关系数是对称的,即corr(X,Y)=corr(Y,X) - 由此衍生出如下性质:皮尔逊相关系数刻画了变量x和Y之间线性相关程度,如果| corr(x,Y)|的取值越大,则两者在线性相关的意义下相关程度越大。Icorr(x,Y)l=0表示两者不存在线性相关关系(可能存在其他非线性相关的关系)。 - 正线性相关意味着变量x增加的情况下,变量Y也随之增加;负线性相关意味着变量X减少的情况下,变量Y也随之增加。 **相关性(correlation)与独立性(independence)** - 如果X和Y的线性不相关,则|corr(xX,Y)l=0 - 如果X和Y的彼此独立,则一定lcorr(x,Y)l=0,且x和Y不存在任何线性或非线性关系 - “不相关”是一个比“独立”要弱的概念,即<u>独立一定不相关,但是不相关不一定相互独立</u>(可能存在其他复杂的关联关系)。独立指两个变量彼此之间不相互影响。 #### 算法动机 <img src="./《人工智能-模型与算法——浙江大学公开课》笔记/PCA1.jpg" alt="PCA1" style="zoom:67%;" /> - 主成份分析思想是将n维特征数据映射到l维空间(n >> l),去除原始数据之间的冗余性(通过去除相关性手段达到这一目的)。 - 将原始数据向这些**数据方差最大的方向**进行投影。一旦发现了方差最大的投影方向,则继续寻找保持方差第二的方向且进行投影。 - 将每个数据从n维高维空间映射到l维低维空间,每个数据所得到最好的k维特征就是使得每一维上样本方差都尽可能大。 #### 算法描述 <img src="./《人工智能-模型与算法——浙江大学公开课》笔记/PCA2.jpg" alt="PCA2" style="zoom:67%;" /> #### 算法步骤 <img src="./《人工智能-模型与算法——浙江大学公开课》笔记/PCA3.jpg" alt="PCA3" style="zoom:67%;" /> 具体如何运行的可以看下节的特征人脸算法,讲的还是比较清楚的。 ### [P176.3特征人脸算法](https://www.bilibili.com/video/BV1c7411n7EY?p=17) > 特征人脸方法是一种<u>应用主成份分析PCA</u>来实现<u>人脸图像降维</u>的方法,其本质是用一种称为“特征人脸(eigenface)”的特征向量按照线性组合形式来表达每一张原始人脸图像,进而实现人脸识别。==》将原有的像素点降维后,提取出新的PCA变量,即人脸特征===>用(特征)人脸表示人脸,而非用像、素点表示人脸 > > 由此可见,这一方法的关键之处在于如何得到特征人脸。 **PCA降维计算:** <img src="./《人工智能-模型与算法——浙江大学公开课》笔记/特征人脸-PCA运算.jpg" alt="特征人脸-PCA运算" style="zoom:67%;" /> #### 人脸对比方法:聚类、主成分分析、非负矩阵分解 <img src="./《人工智能-模型与算法——浙江大学公开课》笔记/人脸对比.jpg" alt="人脸对比" style="zoom:67%;" /> #### 特征人脸识别流程 ![人脸识别](./《人工智能-模型与算法——浙江大学公开课》笔记/人脸识别.jpg) ## 统计机器学习算法应用 ### [P187.1逻辑斯蒂回归与分类](https://www.bilibili.com/video/BV1c7411n7EY?p=18) #### 分类和回归的区别: - 在回归分析中,学习得到一个函数将输入变量映射到连续输出空间,如价格和温度等,即值域是连续空间。 - 在分类模型中,学习得到一个函数将输入变量映射到离散输出空间,如人脸和汽车等,即值域是离散空间。 问题:回归与分类可否统一,即用回归模型来完成分类任务?-->demo:逻辑斯蒂回归(logistic regression) 回归分析:线性->非线性,线性回归模型难以刻画数据的复杂分布,需要寻找非线性回归模型——demo:逻辑斯蒂回归(logistic regression) #### sigmod函数性质 概率形式输出。sigmoid函数是单调递增的,其值域为**(0,1)**,因此使sigmoid函数输出可作为**概率值**。在前面介绍的线性回归中,回归函数的值域一般为(一oo,+oo) 数据特征加权累加。对输入z取值范围没有限制,但当z大于一定数值后,函数输出无限趋近于1,而小于一定数值后,函数输出无限趋近于0。特别地,当z=0时,函数输出为0.5。 这里z是输入数据x和回归函数的参数w相乘结果(可视为x各维度进行加权叠加)非线性变化。x各维度加权叠加之和结果取值在0附近时,函数输出值的变化幅度比较大(函数值变化陡峭),且是非线性变化。但是,各维度加权叠加之和结果取值很大或很小时,函数输出值几乎不变化,这是基于概率的一种认识与需要。 缺点:梯度消失 #### 概率输出:从回归到分类 <img src="./《人工智能-模型与算法——浙江大学公开课》笔记/logistics.jpg" alt="logistics" style="zoom:67%;" /> 对p(y=1|x)取对数的结果为 - 对x作为正例可能性取对数得到线性回归模型 - x为正例的概率越大,几率取值就越大 - 线性回归模型输出结果去逼近(拟合)真实标记结果的对数几率 - 逻辑斯蒂回归函数被称为“对数几率回归(log-odds regression)"。 - 对数几率回归模型的输出y可作为将输入数据x分类为某一类别概率的大小。 - 输出值越接近1,说明输入数据x分类为该类别的可能性越大。与此相反,输出值越接近0,输入数据x不属于该类别的概率越大。 - 根据具体应用设置一个阈值,将大于该阀值的输入数据x都归属到某个类别,小于该阈值的输入数据x都归属到另外一个类别。 <img src="./《人工智能-模型与算法——浙江大学公开课》笔记/logistics2.jpg" alt="logistics2" style="zoom:67%;" /> ★.从这里可以看出,logistic回归是一个线性模型。在预测时,可以通过计算线性函数wx+b取值是否大于0来判断输入数据x的类别归属。 #### 参数求解:最大似然函数 假定数据都是独立同分布的-->最大似然函数==得到了-->交叉熵(求解交叉熵,如果是线性模型可以用最小二乘法,但是logistics不行,可以考虑使用迭代算法——梯度下降法) **多分类**——output的时候加个softmax,并做归一化,概率最大的那个类别就是分类结果 ### [P197.2基于矩阵分解的潜在语义分析](https://www.bilibili.com/video/BV1c7411n7EY?p=19)——LSA 潜在语义分析(Latent Semantic Analysis,LSA或者Latent Semantic Indexing,LSI)是一种从海量文本数据中学习<u>单词-单词、单词-文档以及文档-文档之间</u>隐性关系,进而得到文档和单词表达特征的方法。该方法的基本思想是综合考虑某些单词在哪些文档中同时出现,以此来决定该词语的含义与其他的词语的相似度。 潜在语义分析先构建一个单词-文档(term-document)矩阵A,进而寻找该矩阵的低秩逼近(low rank approximation)矩阵,从而来挖掘单词-单词、单词-文档以及文档·文档之间的关联关系。 举例 <img src="./《人工智能-模型与算法——浙江大学公开课》笔记/LSA.jpg" alt="LSA" style="zoom:67%;" /> - 当用户输入“optimization"这一检索请求,由于文档a3标题中不包含这一单词,则文档a3被认为是不相关文档,但实际上文档a3所涉及“minimization"内容与优化问题相关。出现这一问题是因为**单词-文档矩阵**只是刻画了<u>单词是否在文档中出现与否这一现象,而无法对单词-单词、单词-文档以及文档-文档之间语义关系进行建模。</u> - 如果用户检索“eat an apple",则文档"Apple is a great company”会被检索出来,而实际上该文档中单词"Apple"所指苹果公司、而非水果,造成这一结果的原因是一些单词具有“一词多义”。 - 因此需要一种方法能够建模单词-单词、单词-文档以及文档-文档之间语义关系,解决包括“异词同义”和“一词多义” 在内的诸多挑战。 #### 单词-文档矩阵(term-document):构造与分解 > 基于Latent Dirichlet Allocation(隐狄利克雷分配模型) ![LSA-TD](./《人工智能-模型与算法——浙江大学公开课》笔记/LSA-TD.jpg) 选取最大的前两个特征根及其对应的特征向量对矩阵A进行重建。下面给出了选取矩阵U、矩阵D和矩阵V的子部分重建所得矩阵A,效果如下: - 回到之前举的一个例子,用户输入“optimization”来检索与之相关的文档。尽管单词“optimization"在文档a3中没有出现,但是在重建矩阵A2中,对应的位置被0.68取代,说明单词"optimization"对表征文档a3所蕴含内容具有重要作用,这也符合文档a3描述的minimization问题是一个optimization问题的事实。 - 在单词-矩阵A中,文档b3所对应network、gene和human三个单词取值为1,在重建矩阵A2中,network、gene和human三个单词取值分别为0.32、0.66和0.53。可见,network在表征文档b3时重要性降低,因为算法认为这一单词在机器学习所相关文档表达中更具有区别性。 为什么work? 通过单词-文档矩阵(term-document)的构造与分解,可以将每个单词映射到维度为R的隐性空间、将每个文档映射到维度为R的隐性空间:统一空间,隐性空间可视为“主题空间(topic),因此就可以比较两个单词、两篇文章的主题是否一致了。 ### [P207.3线性区别分析及分类](https://www.bilibili.com/video/BV1c7411n7EY?p=20) 线性区别分析(linear discriminant analysis,LDA)是一种基于监督学习的降维方法,也称为Fisher线性区别分析(Fisher's Discriminant analysis,FDA)。 对于一组具有标签信息的高维数据样本,LDA利用其类别信息,将其线性投影到一个低维空间上,<u>在低维空间中同一类别样本尽可能靠近,不同类别样本尽可能彼此远离</u>。==>**为了获得“类内汇聚、类间间隔”的最佳投影结果** <img src="./《人工智能-模型与算法——浙江大学公开课》笔记/LDA.jpg" alt="LDA" style="zoom:67%;" /> #### PCA和LDA区别 - 主成分分析(PCA)是一种<u>无监督学习</u>的降维方法(无需样本类别标签),线性区别分析(LDA)是一种<u>监督学习</u>的降维方法(需要样本类别标签。PCA和LDA均是优化寻找一定特征向量w来实现降维,其中PCA寻找投影后<u>数据之间方差最大</u>的投影方向、LDA寻找“<u>类内方差小、类间距离大</u>”投影方向。 - PCA对高维数据降维后的维数是与原始数据特征维度相关(<u>与数据类别标签无关</u>)。假设原始数据维度为d,那么PCA所得数据的降维维度可以为小于d的任意维度;LDA降维后所得到维度是与<u>数据样本的类别个数K有关</u>(与数据本身维度无关)。假设原始数据一共有K个类别,那么LDA所得数据的降维维度小于或等于K-1。 ## [P218.1深度学习基本概念](https://www.bilibili.com/video/BV1c7411n7EY?p=21)——深度学习 > 浅层学习Versus深度学习:从分段学习到端到端学习;传统学习需要人工提取特征,深度神经网络可以通过层层网络自动提取特征。 > > <img src="./《人工智能-模型与算法——浙江大学公开课》笔记/DL.jpg" alt="DL" style="zoom: 67%;" /> #### 神经元数学模型 1. 对相邻的前向神经元输入通过加权累加 : In 2. 对累加结果进行非线性变换(通过激活函数): 3. 神经元的输出: <img src="./《人工智能-模型与算法——浙江大学公开课》笔记/神经元.jpg" alt="神经元" style="zoom:67%;" /> 注:神经元越多,非线性表达能力越强,同时参数也很变得更多,网络也会变得越复杂 ### [P228.2前馈神经网络](https://www.bilibili.com/video/BV1c7411n7EY?p=22)、[P238.3误差后向传播(BP)](https://www.bilibili.com/video/BV1c7411n7EY?p=23) - 各个神经元<u>接受前一级的输入</u>,<u>并输出到下一级</u>,模型中没有反馈 - 层与层之间通过“<u>全连接</u>”进行链接,即两个相邻层之间的神经元完全成对连接,但层内的神经元不相互连接。 #### 感知机网络 感知机网络(Perceptron Networks)是一种特殊的前馈神经网络: - 无隐藏层,只有输入层/输出层 - 无法拟合复杂的数据 <img src="./《人工智能-模型与算法——浙江大学公开课》笔记/FNN-感知机.jpg" alt="FNN-感知机" style="zoom:67%;" /> #### 参数优化 ##### 1.GD梯度下降法 梯度下降算法是一种使得损失函数最小化的方法。一元变量所构成函数f在x处梯度为: - 在多元函数中,梯度是对每一变量所求导数组成的向量 - 梯度的反方向是函数值下降最快的方向 ##### 2.误差反向传播BP - BP算法是一种将输出层误差反向传播给隐藏层进行参数更新的方法。= - 将误差从后向前传递,将误差分摊给各层所有单元,从而获得各层单元所产生的误差,进而依据这个误差来让各层单元负起各自责任、修正各单元参数。 ### [P249.1卷积神经网络](https://www.bilibili.com/video/BV1c7411n7EY?p=24) #### 卷积 Q:什么是卷积操作?A:可以理解为是滤波器,图像经过特定卷积矩阵滤波后,所得到的卷积结果可认为是保留了像素点所构成的特定空间分布模式 <img src="./《人工智能-模型与算法——浙江大学公开课》笔记/卷积.jpg" alt="卷积" style="zoom:67%;" /> <img src="./《人工智能-模型与算法——浙江大学公开课》笔记/卷积-神经元.jpg" alt="卷积-神经元" style="zoom:67%;" /> 实际上卷积操作可以理解为是神经元的变形。 有一张32*32*3(RGB)的图像,使用5*5*3的卷积核Wi,步长为1对其进行卷积操作。卷积核W,在原始图像上从左到右、从上到下进行计算,改变5*5子块区域中的中心像素点值,得到28*28的特征图m1。 特征图:在深度学习里被定义为,原始图像经过卷积后得到的结果 ▲卷积参数的确定都是通过数据驱动来确定的 #### 池化 对输入的特征图进行**下采样**,以在区域内获得最主要信息 常用的池化操作有:最大池化、平均池化 ![平均池化](./《人工智能-模型与算法——浙江大学公开课》笔记/平均池化.jpg) #### 全连接、输出层 将特征从卷积操作后向输出层映射,最后通过输出层进行输出 <img src="./《人工智能-模型与算法——浙江大学公开课》笔记/全连接.jpg" alt="全连接" style="zoom:67%;" /> 综上:所需学习参数:卷积核、全连接层权重、激活函数参数 AlexNet:经典用来分类(识别)图像的卷积神经网络,包含5个卷积层、3个全连接层,有六千多万个参数,最终吧一个RGB的图像转换成了一个4096维的特征向量,接着将这个特征向量输入给分类函数,最后输出一个一千维的向量,一千维向量每个维度上的值表示该图像被识别为该维度指代对象的概率大小。 ### [P259.2-自然语言理解与视觉分析](https://www.bilibili.com/video/BV1c7411n7EY?p=25) #### 深度学习的应用:学习单词的表达----词向量(Word2Vec) 在基于规则和统计的自然语言传统方法中,将单词视为独立符号在向量空间中,一个单词按照其在文档中出现的有无,被表示为如下向量(按照字典序):[0,0,0,1,...,0,0,0](只有一个位置为1,其余为0) 上述表示方法称为One-hot向量。 缺点: - 维数灾难的困扰 - 无法刻画词与词之间的相似性:任意两个词之间都是孤立的 one-hot -> 词向量: 可基于单词形成的向量进行后续操作 ##### 词向量模型的训练 通过单词 上下文单词的词向量来预测该单词 的词向量 :
f\left(w_{t}, w_{t-1}, \ldots, w_{t-n+2}, w_{t-n+1}\right)=p\left(w_{t} \mid \text { context }\right)
如下优化模型参数 以最大化训练数据的对数似然函数 :
J=\max {\theta}\left(\log f\left(w{t}, w_{t-1}, \ldots, w_{t-n+2}, w_{t-n+1} ; \theta\right)+R(\theta)\right)
<img src="./《人工智能-模型与算法——浙江大学公开课》笔记/词向量.jpg" alt="词向量" style="zoom:67%;" /> 词向量模型:两种训练模式 - Continue Bag-of-Words(CBoW):根据某个单词的上下文单词来预测该单词 - Skip-gram:利用某个单词来分别预测该单词的上下文单词 Word2 Vec的改进算法 - 对一个包含10000个单词的语料库,每个单词的词向量设为200维,则需要200*10000(2000000)和10000*200(2000000)异常庞大的权重矩阵 - 在如此大神经网络上进行梯度下降耗时为了解决这个不足,后续出现了如下改进手段: - Hierarchical Softmax(引入霍夫曼树) - Negative Sampling <img src="./《人工智能-模型与算法——浙江大学公开课》笔记/词向量-单词类比.jpg" alt="词向量-单词类比" style="zoom:67%;" /> #### CNN-图像分类和定位 <img src="./《人工智能-模型与算法——浙江大学公开课》笔记/CNN图像分类和定位.jpg" alt="CNN图像分类和定位" style="zoom:67%;" /> #### 学习算法的改造:从浅层模型到深层模型 <img src="./《人工智能-模型与算法——浙江大学公开课》笔记/学习算法的改造从浅层模型到深层模型.jpg" alt="学习算法的改造从浅层模型到深层模型" style="zoom:67%;" /> ## [P2610.1强化学习定义](https://www.bilibili.com/video/BV1c7411n7EY?p=26) > 人工智能领域中有三种学习的方法:1.以逻辑推理为核心的符号主义人工智能; 2.以数据建模为核心的机器学习; 3.以环境交互为核心的强化学习 建立在马尔科夫决策过程的基础之上,so what's MDP? <img src="./《人工智能-模型与算法——浙江大学公开课》笔记/RL.jpg" alt="RL" style="zoom:67%;" /> #### 强化学习特点: <img src="./《人工智能-模型与算法——浙江大学公开课》笔记/RL特点.jpg" alt="RL特点" style="zoom:67%;" /> #### 机器人移动:DMP->MRP->MDP ##### 离散马尔科夫过程DMP 一阶马尔科夫链:、t+1时刻状态仅与t时刻状态相关 二阶马尔科夫链:、t+1时刻状态与t和t-1时刻状态相关 <img src="./《人工智能-模型与算法——浙江大学公开课》笔记/DMP1.jpg" alt="DMP" style="zoom:67%;" /> ##### 马尔可夫奖励过程(Markov Reward Process): 引入奖励为了在序列决策中对目标进行优化,在马尔可夫随机过程框架中加入了奖励机制: - 奖励函数 其中 描述了从第 步状态转移到第 步状态所获 得奖励 - 在一个序列决策过程中,不同状态之间的转移产生了一系列的奖励 其中 为 的简便记法。 - 引入奖励机制,这样可以衡量任意序列的优劣,即对序列决策进行评价。 问题:给定两个因为状态转移而产生的奖励序列(1,1,0,0)和(0,0,1,1),哪个奖励序列更好? A:为了比较不同的奖励序列,定义反馈(return),用来反映累加奖励:$$G_{t}=R_{t+1}+\gamma R_{t+2}+\gamma^{2} R_{t+3}+\cdots
其中衰退系数( decay factor) ,来表示当前的奖励越是重要,远的奖励虽然需要考虑,但是重要程度是衰减的。
假设
(1,1,0,0)
(0,0,1,1)
可见,前一种反馈的累加更大,虽然(1,1,0,0)更好。
马尔可夫决策过程(Markov Decision Process)
马尔可夫决策过程(Markov Decision Process):引入动作
在强化学习问题中,智能主体与环境交互过程中可自主决定所采取的动作,不同动作会对环境产生不同影响,为此:
- 定义智能主体能够采取的动作集合为A
- 由于不同的动作对环境造成的影响不同,因此状态转移概率定义为,其中atE A为第t步采取的动作
- 奖励可能受动作的影响,因此修改奖励函数为
相关术语
啥是策略
策略函数:
- 策略函数π:S×A→[0,1],其中π(s,a)的值表示在状态s下采取动作a的概率。
- 策略函数的输出可以是确定的,即给定s情况下,只有一个动作a使得概率π(s,a)取值为1。
对于确定的策略,记为a=π(s)。
如何进行策略学习:一个好的策略是在当前状态下采取了一个行动后,该行动能够在未来收到最大化的反馈:
为了对策略函数工进行评估,定义。
- 价值函数(Value Function) 其中 ,即在第t步状态为s时,按照策略π行动后在未来所获得反馈值的期望.(由马尔可夫性,未来的状态和奖励只与当前状态相关,与t无关。因此t取任意值该等式均成立,如“逢山开路,遇水搭桥”。)
- 动作-价值函数(Action-Value Function) 其中
表示在第t步状态为s时,按照策略π采取动作a后,在未来所获得反馈值的期望
==>这样,策略学习转换为如下优化问题:寻找一个最优策略,对任意s∈S使得值最大
价值函数与动作-价值函数的关系:对策略进行评估
贝尔曼方程(Bellman Equation):
刻画了价值函数和行动-价值函数自身以及两者相互之间的递推关系
将右式带入左式,得到价值函数的贝尔曼方程
将左式带入右式,得到行动-价值函数的贝尔曼方程
将利用贝尔曼方程进行策略评估,进而进行策略优化
P2710.2策略优化与策略评估
基于价值的求解方法:
第一部分:策略优化;
第二部分:策略评估
通过迭代计算贝尔曼方程进行策略评估
-
动态规划
- 动态规划法的缺点:
1)智能主体需要事先知道状态转移概率(model-base);
2)无法处理状态集合大小无限的情况
- 动态规划法的缺点:
-
蒙特卡洛采样
蒙特卡洛采样法的优点
- 智能主体不必知道状态转移概率·
- 容易扩展到无限状态集合的问题中
蒙特卡洛采样法的缺点
- 状态集合比较大时,一个状态在轨迹可能非常稀疏,不利于估计期望
- 在实际问题中,最终反馈需要在终止状态才能知晓,导致反馈周期较长
-
时序差分(Temporal Difference)
P2810.3强化学习求解QLearning
基于时序差分的方法-Q学习(Q-Learning)[Q:quality]
无探索的Qlearning
使用e贪心策略的Q学习
P2910.4深度强化学习
用神经网络拟合(行动)价值函数
问题:
- 状态数量太多时,有些状态可能始终无法采样到,因此对这些状态的q函数进行估计是很困难的
- 状态数量无限时,不可能用一张表(数组)来记录q函数的值
解决思路:
将q函数参数化(parametrize),用一个非线性回归模型来拟合q函数,例如(深度)神经网络
- 能够用有限的参数刻画无限的状态
- 由于回归函数的连续性,没有探索过的状态也可通过周围的状态来估计
深度Q学习与梯度下降法
深度Q学习的两个不稳定因素->DQN
- 样本相关性太强
- 在损失函数中,q函数的值既用来估计目标值,又用来计算当前值。现在这两处的q函数通过e有所关联,可能导致优化时不稳定
DQN
经验重现
样本相关性太强=>经验重现
目标网络
在损失函数中,q函数的值既用来估计目标值,又用来计算当前值。现在这两处的q函数通过e有所关联,可能导致优化时不稳定->目标网络
P3011.1博弈相关概念——人工智能博弈
博弈行为:带有相互竞争性质的主体,为了达到各自目标和利益,采取的带有对抗性质的行为。
博弈论主要研究博弈行为中最优的对抗策略及其稳定局势,协助人们在一定规则范围内寻求最合理的行为方式。
博弈的要素
- 参与者或玩家(player):参与博弈的决策主体
- 策略(strategy):参与者可以采取的行动方案,是一整套在采取行动之前就已经准备好的完整方案。
- 某个参与者可采纳策略的全体组合形成了策略集(strategy set)
- 所有参与者各自采取行动后形成的状态被称为局势(outcome)
- 如果参与者可以通过一定概率分布来选择若干个不同的策略,这样的策略称为混合策略(mixed strategy)。若参与者每次行动都选择某个确定的策略,这样的策略称为纯策略(pure strategy)
- 收益(payoff):各个参与者在不同局势下得到的利益
- 混合策略意义下的收益应为期望收益(expected payoff)规则(rule):对参与者行动的先后顺序、参与者获得信息多少等内容的规定
囚徒困境(prisoner’s dilemma)
数学家阿尔伯特·塔克:警方逮捕了共同犯罪的甲、乙两人,由于警方没有掌握充分的证据,所以将两人分开审讯:
- 若一人认罪并指证对方,而另一方保持沉默,则此人会被当即释放,沉默者会被判监禁10年
- 若两人都保持沉默,则根据已有的犯罪事实(无充分证据)两人各判半年
- 若两人都认罪并相互指证,则两人各判5年
在囚徒困境中,最优解为两人同时沉默,但是两人实际倾向于选择同时认罪(均衡解)
囚徒困境产生的原因:
- 对甲而言,若乙沉默,自己认罪的收益为0,而自己也沉默则收益为-0.5;若乙认罪,自己认罪则收益为-5,自己沉默则收益为-10
- 对乙而言,若甲沉默,自己认罪的收益为0,而自己也沉默则收益为-0.5;若甲认罪,自己认罪的收益为-5,自己沉默则收益为-10
- 即对个人而言,认罪的收益在任何情况下都比沉默的收益高,所以两人同时认罪是一个稳定的局势,其他三种情况都不是稳定局势
▲.囚徒困境表明稳定局势并不一定是最优局势
博弈的分类
合作博弈与非合作博弈
- 合作博弈(cooperative game):部分参与者可以组成联盟以获得更大的收益
- 非合作博弈(non-cooperative game):参与者在决策中都彼此独立,不事先达成合作
意向静态博弈与动态博弈
- 静态博弈(static game):所有参与者同时决策,或参与者互相不知道对方的决策
- 动态博弈(dynamic game):参与者所采取行为的先后顺序由规则决定,且后行动者知道先行动者所采取的行为
完全信息博弈与不完全信息博弈
- 完全信息(complete information):所有参与者均了解其他参与者的策略集、收益等信息
- 不完全信息(incomplete information):并非所有参与者均掌握了所有信息
囚徒困境是一种非合作、不完全信息的静态博弈
纳什均衡
博弈的稳定局势即为纳什均衡(Nash equilibrium):
指的是参与者所作出的这样一种策略组合,在该策略组合上,任何参与者单独改变策略都不会得到好处。换句话说,如果在一个策略组合上,当所有其他人都不改变策略时,没有人会改变自己的策略,则该策略组合就是一个纳什均衡。
Nash定理:若参与者有限,每位参与者的策略集有限,收益函数为实值函数,则博弈必存在混合策略意义下的纳什均衡。
囚徒困境中两人同时认罪就是这一问题的纳什均衡。
another Example:
P3111.2遗憾最小化算法
博弈论与计算机科学的交叉领域非常多
- 理论计算机科学:算法博弈论
- 人工智能:多智能体系统、AI游戏玩家、人机交互、机器学习、广告推荐
- 互联网:互联网经济、共享经济
- 分布式系统:区块链
人工智能与博弈论相互结合,形成了两个主要研究方向
- 博弈策略的求解
- 为什么引入博弈论的动机
·博弈论提供了许多问题的数学模型
·纳什定理确定了博弈过程问题存在解
·人工智能的方法可用来求解均衡局面或者最优策略 - 应用领域
·大规模搜索空间的问题求解:围棋
·非完全信息博弈问题求解:德州扑克
·网络对战游戏智能:Dota、星球大战
·动态博弈的均衡解:厂家竞争、信息安全
- 为什么引入博弈论的动机
- 博弈规则的设计
- 问题描述
·假设博弈的参与者都是足够理性的
·如何设计一个博弈规则能确保公正性或者达到设计者的最大利益 - 挑战
·规则复杂
·计算量大 - 应用领域
·拍卖竞价:互联网广告投放、车牌竞价
·供需匹配:污染权、学校录取
·公正选举:选举制度、表决制度、议席分配
- 问题描述
RM算法若干定义
- 假设一共有N个玩家。玩家 所采用的策略表示为 。
- 对于每个信息集 是在动作集 上的概率分布函数。玩家 的策 略空间用 表示。
- 一个策略组包含所有玩家策略,用
- 表示 中除了 之外的策略(即除去玩家 所采用的策略
- 在博亦对决中,不同玩家在不同时刻会采取相应策略以及行动。策略\sigma下对应的行动序列 发生的概率表示为 。于是, 这里 表示玩家 使用策略 促 使行动序列 发生的概率。除玩家 以外,其他玩家通过各自策略促使行动序列h发生的概率 可表示为
- 对于每个玩家 表示玩家 的收益函数,即在到达终止序列集合Z中某个终 止序列时,玩家 所得到的收益。
- 玩家 在给定策略 下所能得到的期望收益可如下计算:
悔值:
遗憾最小化算法:策略选择介绍
- 遗憾最小化算法是一种根据过去博将中的遗憾程度来决定将来动作选择的方法
- 在博亦中,玩家i在第T轮次(每一轮表示一次博将完成)采取策略 的遗憾值定义如
下(累加遗憾):
- 通常遗憾值为负数的策略被认为不能提升下一时刻收益,所以这里考虑的遗憾值均为
正数或0 - 计算得到玩家 在第T轮次采取策略 的遗憾值后,在第 轮次玩家 选择策略 的概
率如下(悔值越大、越选择,即亡羊补牢)
demo石头剪刀布
为了解决博弈状态空间大的问题->虚拟遗憾最小化算法
P3211.3虚拟遗憾最小化算法
-
如果不能遍历计算所有节点的遗憾值,那么可以采用虚拟遗憾最小化算法来进行模拟计算
假设:- 集合 是博亦中所有玩家所能采用的行为集(如在石头-剪刀-布游戏中出石头、出剪刀或出布三种行 为
- I为信息集,包含了博亦的规则以及玩家采取的历史行动,在信息集I下所能采取的行为集合记为
-
玩家 在第 轮次采取的行动 反映了其在该轮次所采取的策略 。包含玩家 在内的 所有玩家在第t轮次采取的行动 构成了一组策略组合
-
在信息集I下采取行动a所反映的策略记为 。
-
在第t轮次所有玩家采取的行动是一条序列,记为 采取某个策略 计算行动序列
出现的概率记为 -
每个信息集I发生的概率 表示所有能够到达该信息集的行动序
列的概率累加。 -
给定博亦的终结局势z 玩家 在游戏结束后的收益记作
-
在策略组合 下,施加博亦行动序列 后达到最终局势z的概率为
-
当采取策略\sigma时,其所对应的行动序列h的虚拟价值(Counterfactual Value)如下 计算(注:行动序列 未能使博亦进入终结局势):
玩家i采取行动a所得到的虚拟遗憾值:
行动序列 所对应的信息集I遗憾值为
玩家 在第T轮次采取行动a的遗憾值为 :
同样,对于遗憾值为负数的情况,我们不予考虑,记:
在 轮次,玩家 选择行动 的概率计算如下
玩家i根据遗憾值大小来选择下一时刻行为,如果遗憾值为负数,则随机挑选一种行 为进行博亦(由于规定regret不为负数,因此随机取的概率不会出现)
demo库恩扑克(Kunh’s pocker)
- 库恩扑克是最简单的限注扑克游戏,由两名玩家进行游戏博弈,牌值只有1,2和3三种情况
- 每轮每位玩家各持一张手牌,根据各自判断来决定加定额赌注
- 游戏没有公共牌,摊牌阶段比较未弃牌玩家的底牌大小,底牌牌值最大的玩家即为胜者
游戏规则定义:
|玩家A|玩家B|玩家A|结果|
| ---- | ---- | ---- |
|过牌|过牌||牌值大的玩家+1|
|加注|加注||牌值大的玩家+2|
|过牌|加注|过牌|玩家B+1|
|过牌|加注|加注|牌值大的玩家+2|
|加注|过牌||玩家A+1|
算法步骤
该问题中进行策略选择的算法步骤如下:
1.初始化遗憾值和累加策略表为02.采用随机选择的方法来决定策略
3.利用当前策略与对手进行博弈4.计算每个玩家采取每次行为后的遗憾值5.根据博弈结果计算每个行动的累加遗憾值大小来更新策略
6.重复博弈若干次
7.根据重复博弈最终的策略,完成最终的动作选择
G-S算法(Gale-Shapley)
- 在生活中,人们常常会碰到与资源匹配相关的决策问题(如求职就业、报考录取等),这些需要双向选择的情况被称为是双边匹配问题。在双边匹配问题中,需要双方互相满足对方的需求才会达成匹配
- 匹配的稳定是指没有任何人能从偏离稳定状态中获益。如果将匹配问题看做是一种合作博弈的话,稳定状态解就是纳什均衡解
- 1962年,美国数学家大卫·盖尔和博弈论学家沙普利提出了针对双边稳定匹配问题的解决算法,并将其应用于稳定婚姻问题的求解
- 稳定婚姻问题(stable marriage problem)是指在给定成员偏好的条件下,为两组成员寻找稳定匹配。由于这种匹配并不是简单地价高者得,所以匹配解法应考虑双方意愿
- 稳定婚姻问题的稳定解是指不存在未达成匹配的两个人都更倾向于选择对方胜过自己当前的匹配对象
最大交易圈算法(Top-Trading Cycle algorithm)
- 在匹配问题中,还有一类交换不可分的标的物的匹配问题,被称为单边匹配问题,如远古时期以物易物、或者宿舍的床位分配
- 1974年,沙普利和斯卡夫提出了针对单边匹配问题的稳定匹配算法:最大交易圈算法(TTC),算法过程如下:
- 首先每个交易者连接一条指向他最喜欢的标的物的边,并从每一个标的物连接到其占有者或是具有高优先权的交易者。
- 此时形成一张有向图,且必存在交易圈,对于交易圈中的交易者,将每人指向节点所代表的标的物赋予其,同时交易者放弃原先占有的标的物,占有者和匹配成功的标的物离开匹配市场。
- 接着从剩余的交易者和标的物之间重复进行交易圈匹配,直到无法形成交易圈,算法停止。
P3311.4人工智能安全
基于人工智能的信息安全技术:加密技术
- 将明文信息处理为难以读取的密文内容,使之不可读。
- 在网络环境中保障通信安全,保证数据的完整性
- 目前常用的加密算法有安全哈希算法(Secure Hash Algorithm,SHA)和高级加密标准(Advanced Encryption Standard,AES)
使用神经网络的加密算法
- 2016年谷歌大脑的研究团队提出了使用对抗生成网络GAN生成的一个加密算法,其使用了三个神经网络分别完成加密、解密和攻击的工作,以保证通信双方信息的无损传输以及第三方无法破译通信内容
基于人工智能的信息安全技术:数字水印
- 将特定信息(版权信息等)嵌入在数字信号中,数字信号可能是音频、视频、图片等。
- 当拷贝信息时,水印内容会被同时拷贝,所以水印内容可作为版权信息的证明,这样能避免或阻止数字媒体未经授权的复制和拷贝
近年来通过神经网络来添加水印和提取水印信息的成为学术研究热点。
人工智能的安全:数据安全与模型安全
人工智能很大程度是依靠数据驱动学习
可用性(availability)
- 训练数据是否充足且可靠
- 训练数据是否有足够的标注
完整性(completeness)
- 数据是否具有代表性
隐私性(privacy)
- 数据是否涉及隐私安全问题
- 如何保障数据不被窃取
人工智能所使用的的模型是由有限的训练数据训练得到的
鲁棒性(robustness)
- 模型是否易于受到噪声干扰或攻击
正确性(correctness)
- 模型是否正确
通用性(generality)
- 模型是否能够应用于现实场景
- 模型对输入数据是否有过高的要求
人工智能的安全:对模型的攻击
对模型的攻击
- 使用特定技术对输入样本进行微小的修改就可骗过模型而得到错误的结果
- 这种经过修改,使得模型判断错误的样本被称为对抗样本
白盒攻击
-
攻击者熟知人工智能模型的算法和模型参数,生成对抗样本的过程可以与模型的每一部分进行交互
对人工智能模型的白盒攻击通常会对模型的每一部分进行逐层分解,然后对每一部分添加一定的扰动,使得模型的结果逐步向误判目标类别偏移
这是一种非常隐蔽的攻击手段,通过限制扰动的大小可以使得对抗样本看起来与原样本差别很小白盒攻击的防御策略:生成对抗网络
黑盒攻击
-
攻击者只能给定输入去获得模型输出,但并不知道被攻击模型所使用的算法和参数
-
黑盒攻击可以针对任何一个人工智能模型
常用的黑盒攻击防御策略有:
·数据压缩:通过对输入数据进行压缩或者降维,在保证识别准确率的情况下提升模型对干扰攻击的鲁棒性
·数据随机化:对训练数据进行随机缩放、增强等操作,提升模型的鲁棒性
·训练额外的网络来判断训练数据是否为攻击样本
P3412.1记忆驱动的智能计算
P3512.2可计算社会学
P3612.3若干挑战
Author: Mrli
Link: https://nymrli.top/2020/12/08/《人工智能-模型与算法——浙江大学公开课》笔记/
Copyright: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.