深度学习知识点整理(四)——GAN / 强化学习RL
11-GAN
基本思想(方法)
初始化一个生成器G判别器D,每一次迭代,
step1(先固定G,训练D):G生成一组图片,再从数据库采样真实图片,用这两组对D进行训练,目标是使D对真实图片的评分高,而对G生成的图片的评分低
step2(固定D,训练G):G+D构成大网络,G产生图片,D对其识别评分,以此对G进行训练,使得输出数值越大越好
结构学习 Structured learning
传统机器学习可以表示为函数,即X与Y关系(如回归、分类),忽略成分之间的关系
结构学习具有挑战性,机器需要有大局意识和规划意识,考虑元素之间的关系(如图片布局)
为什么G不能自己学习
G就是给定向量,生成图片,如果自己学习,应该不断得到输入向量-图片对进行学习。当输出类似的时候,输入向量由于是随机的,有很大差别。而且在G的训练中,可能每一类只有一个图片,使得训练集测试集类不重合,生成不存在的图片。
Auto-encoder
解决上述问题。由一个编码器和一个解码器构成,编码器根据规则,将图片编码为一个向量,解码器根据规则将向量解码为图片。generator相当于解码器
Variational Auto-encoder (VAE)
在encoder产生的编码上增加噪音,使得训练出来的模型泛化性能更好,减缓过拟合
识别器可以生成图像吗?
可以穷举所有的输入X,然后让判别器挑出分数高的作为生成。
但是这种算法无法实现
生成器判别器优缺点
生成器:容易生成有意义的内容,但是容易过度模仿,难以学习元素间的相关性。
识别器:能从大局考虑,但是在没有办法获取所有可能样本的情况下,难以生成合理内容,负样本采样也困难
参考 https://zhuanlan.zhihu.com/p/57174645
https://zhuanlan.zhihu.com/p/49750523
https://www.jianshu.com/p/ddab090b1e28
15-RL
agent学习采取行动以获得最大的回报,如AlphaGo大多数情况reward=0,输-1,赢1
聊天机器人
让两个agent互相对话(可能有好有坏),产生大量对话,依据规则对其质量打分
机器人游戏
s观察->a行为->r反馈
强化学习特性
奖励延迟:机器知道得分与开火关系,但不知和右移的关系,从而不断开火;围棋中没有及时奖励会更好(诱敌之术)
agent的行为会影响之后输入的data(改变环境)
基于策略训练一个actor
输入:机器观察的向量或矩阵;输出:每个动作都对应于输出层中的一个神经元
为什么使用NN而非查询表:泛化能力强
评估函式
让actor(函式)玩游戏(随机方式选择策略),一个总回合得到总奖励R。可以表达每次奖励与几率,但是不能穷举,所以玩N次,除N,作为奖励的期望值
基于价值训练一个critic
critic不会决定动作,但会评定动作好坏
Monte-Carlo based approach:对于输入状态,把未来积累奖励输出
Temporal-difference approach:输入两状态,从两状态中间求reward