概述领域自适应(Domain Adaptation)
训练资料和测试资料有差异时,可能会坏掉,叫做Domain Shift
训练资料与测试资料有差异时,如何做得更好?
有标注资料,但是资料量很少的情况下,要小心不要overfit。
有大量的资料,但是资料是没有标注的情况下,应该要怎么解?Feature Extractor,输入图片输出feature,分别输入Source Domain的图片和Target Domain上的图片,输出feature,找出相同的distribution。
image–>feature extractor–>feature–>label predictor–>class distribution
source domain和target domain中间输出的feature,应该看不出两个feature的差异。需要用到domain adversarial training。
image–>feature extractor(generator)–>domain classifier(discriminator)–>判断是source还是target
feature extractor的目标是让domain classifier分辨不出图片的来源是哪一个domain,就是说feature extractor的LOSS应该和domain classifier相反。domain classifier相当于一个二元分类器,将输入的图片分为两个domain。
Limitation
unlabelled的图片输入feature extractor和label predictor之后输出的distribution应当离boundary越远越好,就是说应当输出的值的分布更加确定,而不是结果的概率平均分布。
source和target中图片的data类型,可能有包含关系、交叉关系、重合关系。
如果既没有label,同时data还很少,testing time training可能可以train起来。
domain generalization,不管来的是哪个domain都可以处理。
又有两种情况,1.训练资料很丰富,包含了多个domain,模型可以判断各个domain之间的差异。2.训练资料只有一个domain,而测试资料有多个domain。这种情况可以尝试data augmentation。
RL技术 Refinforeement Learning
机器可以知道现在的输出是good还是bad
Actor与Environment进行互动,Environment–Observation(Function input)–>Actor,同时 Actor–Action(Function output)–>Environment
Space Invader Game
Actor–人工智能
Environment–游戏机
Reward–分数
Action–开火或左右移动
Observation–游戏画面
围棋
Actor–人工智能
Environment–对方棋手
Reward–胜利的概率
Action–落子到某个位置
Observation–当前局面
step1:function with unknown
step2:define loss from training data
step3:optimization
输入:游戏画面像素(游戏的参数)
Policy Network(Actor)
输出:移动方向或者开火所得的分数,各个操作的分数之和为 1
类似于classification task分类任务
用负的total reward作为loss
用训练资料训练一个actor,将训练资料中的二元问题转为分数问题
Reward Delay:有时需要牺牲短期的利益,从而可以获得更大的、更长远的利益
可能飞机会为了得到短期利益而疯狂开火,这样可以非常方便地获得分数
Policy Gradient
Cumulate Reward
如果过程非常长的话,前面的action对距离很远的reward的影响很小
这样的话,离ai越远就受到ai的影响越小
不同的RL的方法主要是给予评价的A的定义不同
Reward应该是相对的,所以应该做标准化,所有的
A减去一个b(baseline),使得有正有负
RL的过程是非常花时间的,因为收集训练资料的过程是在for循环之内的
不应该用上一步的reward来推测这一步的reward,而是应该用所有步骤来推测这一步的行为,就是说每次都需要重新收集资料
Off-policy,收集一次资料就训练很多次
Exploration
Action在采取行为时有一定的随机性,不然可能会Train不起来,只有采取了某些行为才能知道这个行为是好的或者不好的。随机性大一点,可以收集到更加丰富的资料。
Critic
value function,输入游戏的状况,输出一个数值,预测某个action会得到怎样的结果。
Critic的训练方法
1.Monte-Carlo(MC),把actor和环境互动多轮,得到多个记录,用来作为训练资料
2.Temporal-Difference(TD),不用等到结束才得到训练资料,而是一边训练一边得到训练资料
A=G-b
b的值合理设置应该为V(s)
训练技巧
Actor和Critic可以共用大部分的network
Sparse Reward
假设reward几乎都是0,比如让机器手臂拿起螺丝并且拧起来。
定义额外的reward提供给机器进行学习,叫做reward shaping,用来引导机器进行学习。
使用reward shaping时,需要充分地理解问题。
Reward Shaping Curiosity,当机器看到有意义的新事物时,可以获得额外的奖励,可以激励机器尽可能去探索环境,比如横向卷轴游戏过关。
逆向增强学习:从示范中进行学习
在进行训练时,需要根据机器的反应而去添加、修改或者删除相应的reward,这就造成了很大的麻烦。
将人类和环境的互动作为示范,拿给机器学习,比如行车记录、人类手把手教机器进行学习
有两个问题,一是人类几乎不会犯错,那么机器就学习不到错误的情况。二是人类会有一些个人特征、习惯被机器学习到,这是没有必要的。
Inverse Reinforcement Learning
基本原则:老师的行为是最好的,可以获得最高的reward,高于学生的行为得到的reward。
IRL类似于GAN,Actor对应Generator,Reward Function对应Discriminator,常被用来训练机械手臂