week6强化学习与推荐系统

582 阅读7分钟

什么是强化学习

强化学习(Reinforcement Learning):

机器学习的一个分支:监督学习、无监督学习、强化学习

强化学习的思路和人比较类似,是在实践中学习

比如学习走路,如果摔倒了,那么我们大脑后面会给一个负面的奖励值 => 这个走路姿势不好;如果后面正常走了一步,那么大脑会给一个正面的奖励值 => 这是一个好的走路姿势

与监督学习的区别,没有监督学习已经准备好的训练数据输出值,强化学习只有奖励值,但是这个奖励值和监督学习的输出值不一样,它不是事先给出的,而是延后给出的(比如走路摔倒)

与非监督学习的区别,在非监督学习中既没有输出值也没有奖励值的,只有数据特征,而强化学习有奖励值(为负是为惩罚),此外非舰队学习与监督学习一样,数据之间也都是独立的,没有强化学习这样的前后依赖关系

强化学习(Reinforcement Learning):

可以应用于不同领域:神经科学、心理学、计算机科学、工程领域、数学、经济学等

强化学习的特点:

没有监督数据、只有奖励信号

奖励信号不一定是实时的,很可能是延后的,甚至延后很多

时间(序列)是一个重要因素

当前的行为影响后续接收到的数据

强化学习有广泛的应用:游戏AI,推荐系统,机器人仿真,投资管理,发电站控制

基本概念(个体,环境,动作,装填,奖励,策略,状态转移概率)

基本概念:

个体,Agent,学习器的角色,也称为智能体

环境,Environment,Agent之外一切组成的、与之交互的事物

动作,Action,Agent的行为

状态,State,Agent从环境获取的信息

奖励,Reward,环境对于动作的反馈

策略,Policy,Agent根据状态进行下一步动作的函数

状态转移概率,Agent做出动作后进入下一状态的概率

四个重要的要素:状态(state)、动作(action)、策略(policy)、奖励(reward)

RL的目标是什么

RL考虑的是个体(Agent)与环境(Environment)的交互问题

目标是找到一个最优策略,使Agent获得尽可能多的来自环境的奖励

比如赛车游戏,游戏场景是环境,赛车是Agent,赛车的位置是状态,对赛车的操作是动作,怎样操作赛车是策略,比赛得分是奖励

很多情况下,Agent无法获取全部的环境信息,而是通过观察(Observation)来表示环境(environment),也就是得到的是自身周围的信息

马尔科夫决策过程 MDP

(Markov Decision Process,MDP): MDP是一类不确定性的搜索问题,目标是结合奖励函数,搜索一个可行的状态转换路径(state 和 action 的序列)使得奖励最大化

使用MDP(马尔科夫决策过程),是因为认为状态转换,只跟当前时刻的 state 和 action 有关:

决策体现在需要根据state和潜在的奖励,选择一个 action

不确定性体现在转换函数,状态s下执行动作a,最后到达的状态s’ 具有不确定性,获得奖励R也具有不确定性

Markov状态

指马尔可夫性质的随机变量序列X1,X2,...,Xn的当前状态,过去状态和未来状态

给定当前状态,将来状态和过去状态是相互独立的,即t+1时刻系统状态的概率分布只与t时刻的状态有关,与t时刻以前的状态无关

从t时刻到t+1时刻的状态转移与t的值无关

马尔可夫链模型可以表示为=(S,P,Q)

S是系统所有可能的状态所组成的状态集(也称为状态空间)

P是状态转移矩阵

Q是系统的初始概率分布,

Agent分类(Value-Based, Policy-Based, Actor-Critic)

强化学习Agent:

基于价值的强化学习,Value-Based

通过学习价值函数指导策略制定(例如Ɛ-greedy执行方法)

基于策略强化学习,Policy-Based

没有价值函数,直接学习策略

结合策略梯度以及价值函数的强化学习,Actor-Critic

既学习价值函数也学习策略的方法

演员-评论,相当于演员在演戏的同时有评论家指点继而演员演得越来越好

什么是策略网络

策略网络:

任何游戏,玩家的输入被认为是行为a,每个输入(行为)导致一个不同的输出,这些输出称为游戏的状态s

可以得到一个不同状态-行动的配对的列表

S包括了策略网络中的所有策略

比如,在游戏中输入a1导致状态s1(向上移动),输入a2会导致状态s2(向下移动)

S:状态集

A:动作集

R:奖励分布,给定(state,action)

P:状态转移概率,对于给定的(state,action),下一个状态的概率分布

:贴现因子,为了防止奖励r达到无穷大的预防措施 => 无穷大的奖励会忽略掉智能体采取不同行动的区别

:最优策略

什么是价值网络

价值网络(数值网络):

通过计算目前状态s的累积分数的期望,价值网络给游戏中的状态赋予一个分数(数值),每个状态都经历了整个数值网络

奖励更多的状态,会在数值网络中的数值Value更大

这里的奖励是奖励期望值,我们会从状态集合中选择最优的

V :价值期望

MCTS的原理(选择,拓展,模拟,回传)

MCTS原理:

每个节点代表一个局面,A/B代表被访问B次,黑棋赢了A次

我们将不断重复一个过程:

Step1,选择Select,从根节点往下走,每次都选一个“最有价值的子节点”,直到找到“存在未扩展的子节点”,即这个局面存在未走过的后续着法的节点,比如 3/3 节点

Step2,扩展Expansion,给这个节点加上一个 0/0 子节点,对应之前所说的“未扩展的子节点”

Step3,模拟Simluation,用快速走子策略(Rollout policy)走到底,得到一个胜负结果(Thinking:为什么不采用AlphaGo的策略价值网络走棋)

Step4,回传Backup,把模拟的结果加到它的所有父节点上,假设模拟的结果是 0/1,就把0/1加到所有父节点上

MCTS(Monte Carlo Tree Search):

蒙特卡洛树搜索,结合了随机模拟的一般性和树搜索的准确性

MCTS是一个搜索算法,它采用的各种方法都是为了有效地减少搜索空间。在MCTS的每一个回合,起始内容是一个半展开的搜索树,目标是原先的半展开+再多展开一个/一层节点的搜索树

MCTS的作用是通过模拟来进行预测输出结果,理论上可以用于以{state,action}为定义的任何领域

使用主要步骤:

选择,从根节点开始,按一定策略,搜索到叶子节点

扩展,对叶子节点扩展一个或多个合法的子节点

模拟,对子节点采用随机的方式(这也是为什么称之为蒙特卡洛的原因)模拟若干次实验。模拟到最终状态时即可得到当前模拟所得的分数

回传,根据子节点若干次模拟的得分,更新当前子节点的模拟次数与得分值。同时将模拟次数与得分值回传到其所有祖先节点并更新祖先节点

AlphaGo主逻辑

AI = Policy Value Network + MCTS

Policy Value Network,策略价值网络

策略网络,输入当前的状态,神经网络输出在这个状态下采取每个动作的概率

价值网络,对于价值网络,当前局面的价值=对终局的估计

MCTS,蒙特卡洛树搜索

可以提供很好的策略改善,它的输入是个普通的策略(normal policy),我们可以通过MCTS得到一个更好的策略(good policy)输出

通过MCTS完成自我对弈,从而更新策略网络