zoukankan      html  css  js  c++  java
  • 推荐系统(10)—— 进化算法、强化学习

    1、进化策略(ES:evolution strategy)

      在一定的抽象程度上,进化方法可被视为这样一个过程:从个体构成的群体中采样并让其中成功的个体引导未来后代的分布。但是,其数学细节在生物进化方法的基础上实现了很大的抽象,我们最好将进化策略看作是一类黑箱的随机优化技术。

      策略作用方式以交叉熵CEM(一种进化算法)为例:算法先随机初始化参数和确定根据参数生成解的规则,根据参数生成N组解并评价每组解的好坏,选出评估结果在前百分之ρ的解并根据这些精英解采取重要性采样方法更新参数,新参数被用作下一轮生成N组解,如此循环直到收敛~

      特别的几点包括:进化策略的实现更加简单(不需要反向传播),更容易在分布式环境中扩展,不会受到奖励稀疏的影响,有更少的超参数。这个结果令人吃惊,因为进化策略就好像是在一个高维空间中简单地爬山,每一步都沿着一些随机的方向实现一些有限的差异。

      进化算法的目标与强化学习优化的目标都是预期奖励。但是,强化学习是将噪声注入动作空间并使用反向传播来计算参数更新,而进化策略则是直接向参数空间注入噪声。换个说话,强化学习是在「猜测然后检验」动作,而进化策略则是在「猜测然后检验」参数。因为我们是在向参数注入噪声,所以就有可能使用确定性的策略(而且我们在实验中也确实是这么做的)。也有可能同时将噪声注入到动作和参数中,这样就有可能实现两种方法的结合。

    进化策略和强化学习区别:

    1. RL通过与环境交互来进行学习,而EA通过种群迭代来进行学习;
    2. 强化学习一般在动作空间(Action Space)进行探索(Exploration)。而相应的Credit或者奖励,必须在动作空间起作用,因此,存在梯度回传(back propagation)。进化算法直接在参数空间探索,不关心动作空间多大,以及对动作空间造成多大影响。

    3. RL通过最大化累计回报来解决序列问题,而EAs通过最大化适应函数(Fitness Function)来寻求单步最优;
    4. RL对于state过于依赖,而EA在agent不能准确感知环境的状态类问题上也能适用。

    2、强化学习(Reinforcement Learning)

      (1)原理

      本质是:基于环境而行动,以取得最大化的预期收益。

      强化学习具有高分导向性,和监督学习中的标签有些类似。但是又有些区别,区别就在于数据和标签一开始都不存在,需要模型自己来不断摸索。通过不断尝试,找到那些能带来高分的行为。强化学习是机器学习中的一个领域,强调如何基于环境而行动,以取得最大化的预期利益。强化学习是除了监督学习和非监督学习之外的第三种基本的机器学习方法。<A,S,R,P>就是强化学习中的经典四元组了。其中A代表的是Agent的所有动作;State是Agent所能感知的世界的状态;Reward是一个实数值,代表奖励或惩罚;P则是Agent所交互世界,也被称为model。

     

    强化学习与有监督学习区别:

    • 有监督学习的训练样本是有标签的,强化学习的训练是没有标签的,它是通过环境给出的奖惩来学习;
    • 有监督学习的学习过程是静态的,强化学习的学习过程是动态的。这里静态与动态的区别在于是否会与环境进行交互,有监督学习是给什么样本就学什么,而强化学习是要和环境进行交互,再通过环境给出的奖惩来学习;
    • 有监督学习解决的更多是感知问题,尤其是深度学习,强化学习解决的主要是决策问题。因此有监督学习更像是五官,而强化学习更像大脑。

    监督学习:

    • Open loop
    • Learning from labeled data
    • Passive data

    强化学习:

    • Closed loop
    • Learning from decayed reward
    • Explore environment

     (2)在推荐混排中的应用

      我们需要引入强化学习来优化系统的长期收益。首先,我们可以利用Markov Progress来对用户在推荐场景的浏览行为进行建模。其中,Agent就是我们的推荐系统本身,Action是我们推荐的内容,Reward是用户给予的反馈信息,包括点击、负反馈以及退出等。每次我们的推荐系统Agent采取某个Action,给用户推荐了一定的内容,用户会给到我们相应的反馈。强化学习的整体效果是会优于监督学习的,一般的监督学习的方式通常给出的是点击率最大的方案,而强化学习给出的最优解是总收益最大的方案。

    参考文献:

    强化学习在推荐系统中作用

    强化学习应用

    强化学习与监督学习区别

  • 相关阅读:
    iOS开发多线程篇—GCD介绍
    IOS UI篇—UILabel的文字顶部对齐
    TableView编辑中实现多行删除的2中方法以及注意
    UITableView的新手——层次注意
    UITabBarItem编写的时候出现得图片显示异常,和有一些比较忽略的方法总结
    在ios开发中nil和NUll和Nilde区别————和如何判断连个对象的关系和UISlider不能拖动的问题
    iphone 手机屏幕和UIView和UIWindowde 的主要的区别
    iOS平常注意1
    ios优化复制大文件时,如何使内存运用最少且效率最高
    property在括号中应该怎样写
  • 原文地址:https://www.cnblogs.com/eilearn/p/14824174.html
Copyright © 2011-2022 走看看