2021年3月多投了一些公司的实习,想增加一下自己的能力,下面整理一下当时的面试,希望给后面的人一些帮助。
本人本科学的控制,研究所主要方向是强化学习,所以主要是投递强化学习方向的岗位。
强化学习中主要在工业界的应用就说游戏,游戏AI的训练就投递了
西山居游戏「【校招】强化学习算法工程师」
下面是面试当时的问题不完全整理:
- 自我介绍
- 介绍AC算法
-
A2C, A3C做了哪些升级
A2C全称为优势动作评论算法(Advantage Actor Critic);
A2C使用优势函数代替Critic网络中的原始回报,可以作为衡量选取动作值和所有动作平均值好坏的指标。
A3C全称为异步优势动作评价算法(Asynchronous advantage actor-critic
这里有个连接,写的很好,重要的博客关于AC算法的 - A3C是on-policy还是off-policy算法的?二者有什么区别吗?
- 经验回访是怎么回事?为啥需要经验回访?
-
AC的优点在哪?缺点是?直接Actor的输出作为策略输出,有什么问题吗?
网上百度的:缺点:(1)Actor的行为取决于 Critic 的Value,但是因为 Critic本身就很难收敛,和actor一起更新的话就更难收敛了。
(2)Actor-Critic 涉及到了两个神经网络, 而且每次都是在连续状态中更新参数, 每次参数更新前后都存在相关性, 导致神经网络只能片面的看待问题, 甚至导致神经网络学不到东西
-
RL和DL的目标函数有什么区别吗?
个人见解:首先,RL的目标函数和DL的差距不是很大,因为DRL计算就是依托于DL来执行的,但是RL的目标函数是为了获取最优的策略所设置的,组成元素必然含有和策略相关的参数,而这些元素有些是通过分析智能体与环境交互的数据得到而不是提前设定好的,不像DL的目标函数有一部分是带‘标签’的数据提供的。 - 多臂老虎机问题
- 多臂老虎机其实代表了RL学习中一个重要的问题:探索和利用的平衡问题
-
DDPG算法,分别介绍DDPG四个网络?
-
PPO算法?DDPG和PPO算法的联系是什么?
-
PPO和DDPG都基于AC框架的RL算法
尽管PPO的算法学习效率比较高,但PPO算法所使用的策略还是随机策略。随机策略本身就存在一些难以逾越的问题,比如动作空间维数很大时,利用随机策略就需要采集很多样本才能对该策略进行评估。对于像机器人等动作空间维数很高的系统,随机策略并不是一个很好的选择。Silver等提出利用确定性策略代替随机策略
DDPG也是解决连续控制型问题的的一个算法,不过和PPO不一样,PPO输出的是一个策略,也就是一个概率分布,而DDPG输出的直接是一个动作。
-
-
场景题 CS游戏?训练CS中玩家,定义action,state,reward如何设置?
-
当时举了一个类似于CS的游戏
-
-
如何解决稀疏奖励问题?
数据方面——如何利用好已有数据,如何使用外部数据和信息;
模型方面——如何提高模型解决大状态空间大动作空间下复杂问题的能力。
1. 如何利用好已有数据 

13.tensorflow用到多吗?模型保存为PD?pytorch的模型保存?
Tensorflow:
主要有两种:
(1)传统的使用ckpt模型,然后需要把网络模型整体框架重写一次;
(2)较高版本的tf,使用checkpoint,再使用meta文件,直接将训练好的图导入。
pytorch保存模型:
def save_model():
checkpoint = {
'model': dqn.eval_net.state_dict(), # if self.ngpu > 1 else self.model.state_dict(),
'optimizer_state_dict': dqn.optimizer.state_dict()
}
torch.save(checkpoint, 'dqn_model2.pth')
save_model()
本文作者分享了自己在2021年3月强化学习岗位的面试经历,重点讨论了A2C和A3C算法的区别、经验回访的作用、RL与DL目标函数的差异、多臂老虎机问题、DDPG和PPO算法,并给出了在CS游戏中应用强化学习的思考,同时探讨了解决稀疏奖励问题的方法。此外,还提及了模型保存与Tensorflow、Pytorch的相关知识。
1981

被折叠的 条评论
为什么被折叠?



