火炏焱燚 發表於 2021-7-30 23:00:00

多智能体强化学习

<ol>
<li>
<p>多智能体的常见设定:</p>
<ol>
<li>合作关系。比如工业机器人</li>
<li>竞争关系。比如拳击比赛</li>
<li>合作-竞争混合。比如机器人足球比赛</li>
<li>利己主义。比如股票自动交易系统</li>
</ol>
</li>
<li>
<p>多智能体系统的术语:</p>
<ol>
<li>
<p>有n个智能体;</p>
</li>
<li>
<p><span class="math inline">\(S\)</span>为状态;</p>
</li>
<li>
<p><span class="math inline">\(A^i\)</span>表示第<span class="math inline">\(i\)</span>个智能体的动作;</p>
</li>
<li>
<p>状态转移:</p>
<p></p><div class="math display">\[p(s^{\prime} | s,a^1,a^2...a^n) = \mathbb{P}(S^{\prime} = s^{\prime} | S = s, A^1 = a^1 ... A^n = a^n)
\]</div><p></p><p>下一个状态受到所有agent的影响。</p>
</li>
<li>
<p><span class="math inline">\(R^i\)</span>是第<span class="math inline">\(i\)</span>个智能体获得的奖励,<span class="math inline">\(R^i_t\)</span>是第<span class="math inline">\(i\)</span>个智能体在时间<span class="math inline">\(t\)</span>获得的奖励。</p>
</li>
<li>
<p>回报<span class="math inline">\(U^i_t = R_t^i + R_{t+1}^i + ... + R_{\tau}^i\)</span>,折扣回报<span class="math inline">\(U^i_t = R_t^i + \lambda R_{t+1}^i + ... + \lambda^{\tau - t} R_{\tau}^i\)</span>。</p>
</li>
<li>
<p>策略网络<span class="math inline">\(\pi(a^i | s;\theta^i)\)</span>,每个智能体都有自己的策略网络。</p>
</li>
<li>
<p>状态价值函数:<span class="math inline">\(V^i(s_t;\theta^1,...,\theta^n) = \mathbb{E}\)</span>,第<span class="math inline">\(i\)</span>个agent的状态价值函数受所有其他策略网络的影响。</p>
</li>
</ol>
</li>
<li>
<p>多智能体系统的收敛问题(无法通过改变策略来获得更大的期望回报)</p>
<ol>
<li>多个智能体达到收敛的标准是纳什均衡。即所有agent都不能通过改变自身策略来获得更高回报。</li>
</ol>
</li>
<li>
<p>单智能体策略梯度</p>
<ol>
<li>
<p>系统中某一个智能体的状态价值受其他智能体的影响,将其他智能体的参数固定,对第<span class="math inline">\(i\)</span>个智能体的状态价值关于状态取期望(状态具有随机性),得到目标函数:</p>
<p></p><div class="math display">\
\]</div><p></p></li>
<li>
<p>第<span class="math inline">\(i\)</span>个网络的目标就是使用梯度上升最大化<span class="math inline">\(J^i(\theta^1,...,\theta^n)\)</span>。</p>
</li>
<li>
<p>这种每个agent只更新自己的参数的方式可能永远也无法收敛。</p>
</li>
</ol>
</li>
<li>
<p>多智能体训练三种常见方法:</p>
<ol>
<li>
<p>完全去中心化,就是上面所提的单智能体策略梯度,各个智能体只管优化自己的参数,不和其他智能体共享信息。</p>
</li>
<li>
<p>完全中心化,智能体本身不做决策,而是完全交由一个中央控制器负责训练和决策,agent执行来自中央控制器的动作指令。</p>
<ol>
<li>agent没有策略网络。</li>
<li>训练时每个agent将自己的观测<span class="math inline">\(o^i\)</span>和奖励<span class="math inline">\(r^i\)</span>告诉给中央控制器,由中央控制器告诉agent动作。</li>
<li>中央控制器的策略网络结构只有一个<span class="math inline">\(\pi(a^i|o^1,...,o^n;\theta^i)\)</span>,但每个agent有对应的一套参数<span class="math inline">\(\theta^i\)</span>。</li>
<li>做决策时策略网络要用到所有agent的观测。使用不同的网络参数给不同的agent动作指令。</li>
<li>中央控制器有n个策略网络和n个动作价值网络(actor-critic),价值网络输入是所有agent的观测和动作。</li>
</ol>
<ul>
<li>完全中心化的缺点:训练和使用阶段都要和中央控制器通信和同步,导致反应速度慢。</li>
</ul>
</li>
<li>
<p>中心化训练+去中心化执行。使用中央控制器来训练,等训练结束后舍弃之,决策交由agent来做。</p>
<ol>
<li>每个agent都有一个自己的策略网络。</li>
<li>训练时有一个中央控制器帮助agent训练策略网络,执行阶段每个agent根据自己的局部观测做出决策。</li>
<li>中央控制器上有n个动作价值网络<span class="math inline">\(q(o,a;w^i)\)</span>;</li>
</ol>
</li>
</ol>
</li>
<li>
<p>局部观测</p>
<ol>
<li>多智能体系统中某一个agent可能不能完全观察到当前的状态state;</li>
<li>令<span class="math inline">\(o^i\)</span>表示第<span class="math inline">\(i\)</span>个agent的观测,<span class="math inline">\(o^i \ne s\)</span>。</li>
</ol>
</li>
</ol><br><br>
来源:https://www.cnblogs.com/strolling-leisurely/p/15082887.html
頁: [1]
查看完整版本: 多智能体强化学习