李飞飞计算机视觉-自用笔记(七)
13 生成模型
无监督学习:
1.K-means聚类算法
2.降维;3d->2d
3.学习数据的特征表达(自动编码器)
4.密度估计
生成式模型属于无监督学习的一种,在该任务中,通过给定训练数据的情况下,我们的目标是从相同的数据分布中生成新的样本
生成式模型可以解决密度估计的问题,关于估计训练数据的潜在分布的任务,这也是无监督学习的核心问题
具体类别和今天要学习的内容:
13.1 pixelRNNs 和 CNNs
pixelRNN:从图片的一角开始生成像素,序列中的每一个对之前像素的依赖关系都会通过RNN(LSTM)来建模
缺点:顺序生成,速度相当慢
pixelCNN:从图片的一角开始生成像素,通过CNN建模
总结:
1.pixelRNNs 和 CNNs可以显式地计算可优化的显式密度模型似然p(x)【易处理的密度函数】
2.有很好的评估度量,可以通过所能计算的数据的似然来度量出样本性能
3.生成相当不错的样本
4.生成过程序列化,速度缓慢
13.2 变分自编码器
【不易处理的密度函数】
先导:
自动编码器:将模型训练成一个能够用来重构原始数据的模型
输入数据x通过不同编码器进行映射得到特征z,编码器的形式可为sigmoid;fully-connected;ReLU CNN
变分自编码器:通过向自编码器中加入随机因子获得的一种模型,首先需要选择一个关于z的先验分布(如高斯分布)
优化下界:
数学公式:略
训练结果:
总结:
1.使用VAE时并不是直接取得确定的输入x,而是采取了随机分布和采样的思想
2.为了训练模型,VAEs定义了一个难解的密度分布,需要推导并优化下界,变分实际上表示用近似来解决这一问题
3.优点:就生成模型来说,有据可循
4.缺点:最大化似然函数下界时不能像pixelRNNs 和 CNNs所做的优化和计算来得直接;生成的像素会模糊不清
13.3 GANs
不再需要显式的密度函数,而是采用博弈论方法,利用样本来隐式表示该函数
首先取得一些具有某一指定维度的噪声向量作为输入,将向量传给一个生成网络,之后从训练分布中采样并输出结果
训练过程将被看作两个玩家博弈的过程,分别对应两个神经网络,玩家一对应生成器网络,会试图生成能够骗过判别器,看起来逼真的图像;玩家二对应判别器网络,要试图区分真实和虚假的图片
数学模型:
训练:
对判别器进行梯度上升,最大化目标函数
对生成器进行梯度下降,最小化目标函数,这个过程在实际中效果并不好,于是采用反向计算方法最大化判别器,用梯度上升计算出出错的概率
GAN算法:
训练判别器:在每一个训练迭代期,先训练判别器网络,然后训练生成器网络,对于判别器的k的训练步,会从噪声先验分布中采样得到一个小批量样本,然后从训练数据中采样获得小批量真实样本,之后将噪声样本传给生成器网络,在生成器输出端得到伪造图像;用小批量数据在判别器上进行梯度计算,更新判别器参数。
训练生成器:采样获得小批量噪声样本,传入生成器,对生成器进行后向传播,优化目标函数
上述两个步骤交替进行
14 强化学习
Agent:智能体
目标:智能体学会如何采取行动以最大限度地获得奖励
Markov决策:
强化学习问题的数学表达
(γ:对奖励分配权重)
工作方式:
初始时步骤t=0,环境会从状态分布p(s)中采样并初始化,然后进入循环:
智能体选择一个动作
环境从状态获得奖励
抽样下一个状态
智能体获得奖励,进入下一状态
重复以上,直至循环结束
求解最优策略:
1.迭代算法
缺点:计算代价大
解决方法:函数逼近器
2.Q-learning算法
使用函数逼近器来估计动作值函数
Q-值函数由神经网络权值决定
训练Q网络:经验回放
保持状态转换的重放记忆表,游戏中不断获得新的转换,用得到的经验更新此表格;从回放记忆中取出小批量的转移样本
完整算法过程:
3.策略梯度算法
由于现实世界状态的复杂,导致Q函数非常复杂;对每个存在的策略,定义一个策略价值,接计算每个状态对应的动作或者动作的概率,对策略函数进行建模,然后用梯度下降更新网络的参数
减少方差:
1.通过影响来自该状态的未来奖励来提高行为的概率
2.使用折扣因子来忽略延迟效应
3.使用依赖于状态的基线函数
4.reinforce算法
5.Actor-Critic算法
策略梯度和Q-learning的结合
角色将决定采取哪一种行动,然后评价(Q函数)将告诉角色其行为如何以及怎么调整
Recurrent Attention Model(RAM)【强制聚焦】
通过在图像周围一系列的细节实现,有选择地集中在一些细节周围观察并建立信息;降低了计算量,有助于图像分类(忽略不相关的信息)
AlphaGo:
结合了监督学习和强化学习;结合了蒙特卡洛树搜索和深度强化学习方法
1.以棋盘作为特征进行训练
2.与职业棋手进行监督训练,初始化决策网络,利用决策梯度进行训练
3.学习价值网络
4.在蒙特卡洛树搜索中结合结合策略和价值网络选择下一步围棋的走法