<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>跳帧 &#8211; 编码无悔 /  Intent &amp; Focused</title>
	<atom:link href="https://www.codelast.com/tag/%E8%B7%B3%E5%B8%A7/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.codelast.com</link>
	<description>最优化之路</description>
	<lastBuildDate>Mon, 27 Apr 2020 17:22:43 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>[原创] 强化学习的Atari环境下的frame skipping(跳帧)是指什么</title>
		<link>https://www.codelast.com/%e5%8e%9f%e5%88%9b-%e5%bc%ba%e5%8c%96%e5%ad%a6%e4%b9%a0%e7%9a%84atari%e7%8e%af%e5%a2%83%e4%b8%8b%e7%9a%84frame-skipping%e8%b7%b3%e5%b8%a7%e6%98%af%e6%8c%87%e4%bb%80%e4%b9%88/</link>
					<comments>https://www.codelast.com/%e5%8e%9f%e5%88%9b-%e5%bc%ba%e5%8c%96%e5%ad%a6%e4%b9%a0%e7%9a%84atari%e7%8e%af%e5%a2%83%e4%b8%8b%e7%9a%84frame-skipping%e8%b7%b3%e5%b8%a7%e6%98%af%e6%8c%87%e4%bb%80%e4%b9%88/#respond</comments>
		
		<dc:creator><![CDATA[learnhard]]></dc:creator>
		<pubDate>Sat, 14 Dec 2019 17:24:26 +0000</pubDate>
				<category><![CDATA[Algorithm]]></category>
		<category><![CDATA[原创]]></category>
		<category><![CDATA[Atari]]></category>
		<category><![CDATA[frame skipping]]></category>
		<category><![CDATA[Reinforcement Learning]]></category>
		<category><![CDATA[强化学习]]></category>
		<category><![CDATA[跳帧]]></category>
		<guid isPermaLink="false">https://www.codelast.com/?p=11387</guid>

					<description><![CDATA[<p>
查看更多强化学习的文章请点击<a href="https://www.codelast.com/?p=10907" rel="noopener noreferrer" target="_blank"><span style="background-color: rgb(255, 160, 122);">这里</span></a>。</p>
<p>Atari是强化学习领域最常用的一个游戏实验环境，在很多文章以及代码中，会看到frame skipping（跳帧）这个概念，那么它到底是指什么呢？<br />
<span id="more-11387"></span><br />
使用<a href="https://github.com/mgbellemare/Arcade-Learning-Environment" rel="noopener noreferrer" target="_blank"><span style="background-color:#ffa07a;">ALE</span></a>接口来实现agent与Atari环境的交互时，Atari环境会返回游戏的每一帧图像作为observation，agent需要为这个observation选择一个action，再让Atari环境去执行这个action。<br />
由于游戏是一个持续不断进行的过程，因此，为了减少运算量，一种叫做 <a href="http://nn.cs.utexas.edu/pub-view.php?PubID=127530" rel="noopener noreferrer" target="_blank"><span style="color:#0000ff;"><span style="background-color:#ffa07a;">frame skipping</span></span></a>（<span style="color:#b22222;">跳帧</span>）的技术被发明出来了，即，原来agent与environment的交互应该是这种画风：<br />
<span style="color:#b22222;">Atari给出一帧图像&#8594;agent选择一个action&#8594;Atari执行该action给出下一帧图像&#8594;agent选择下一个action&#8594;（如此循环下去）</span><br />
现在变成了这种画风：<br />
Atari给出一帧图像&#8594;agent选择一个action&#8594;Atari执行该action给出下一帧图像&#8594;<span style="color:#008000;">agent重复使用上次的action给Atari执行&#8594;Atari执行该action给出下一帧图像</span>&#8594;<span style="color:#008000;">agent重复使用上次的action给Atari执行&#8594;Atari执行该action给出下一帧图像</span>&#8594;（<span style="color:#0000ff;">如此重复N帧</span>）&#8594;agent重新选择一个action&#8594;Atari执行该action给出下一帧图像&#8594;......<br />
<span style="color: rgb(255, 255, 255);">文章来源：</span><a href="https://www.codelast.com/" rel="noopener noreferrer" target="_blank"><span style="color: rgb(255, 255, 255);">https://www.codelast.com/</span></a><br />
注意上面的重复部分，简单地说就是：每经过N帧，agent才会选择一次action，在接下来的N帧内，会重复使用之前最后一次选择的那个action。<br />
为什么要这样做？因为action&#160;selection的过程是一个计算量较大的过程（想像成model的inference过程），而Atari环境向前走一步相对来说是计算量较小的过程，让Atari每走N步才选择一次action的话，可以让玩一次游戏的时间大幅减少，因此agent就能在单位时间内得到更充分的训练。<br />
这种每跳过N帧才选择一次action的技术，就叫&#160;<span style="color: rgb(0, 0, 255);">frame skipping</span>（<span style="color: rgb(178, 34, 34);">跳帧</span>），在很多强化学习框架中，也会看到这个参数的设定。<br />
<span style="color: rgb(255, 255, 255);">文章来源：</span><a href="https://www.codelast.com/" rel="noopener noreferrer" target="_blank"><span style="color: rgb(255, 255, 255);">https://www.codelast.com/</span></a><br />
<span style="color: rgb(255, 0, 0);">➤➤</span>&#160;版权声明&#160;<span style="color: rgb(255, 0, 0);">➤➤</span>&#160;<br />
转载需注明出处：<u><a href="https://www.codelast.com/" rel="noopener noreferrer" target="_blank"><em><span style="color: rgb(0, 0, 255);"><strong style="font-size: 16px;"><span style="font-family: arial, helvetica, sans-serif;">codelast.com</span></strong></span></em></a></u>&#8230; <a href="https://www.codelast.com/%e5%8e%9f%e5%88%9b-%e5%bc%ba%e5%8c%96%e5%ad%a6%e4%b9%a0%e7%9a%84atari%e7%8e%af%e5%a2%83%e4%b8%8b%e7%9a%84frame-skipping%e8%b7%b3%e5%b8%a7%e6%98%af%e6%8c%87%e4%bb%80%e4%b9%88/" class="read-more">Read More </a></p>]]></description>
										<content:encoded><![CDATA[<p>
查看更多强化学习的文章请点击<a href="https://www.codelast.com/?p=10907" rel="noopener noreferrer" target="_blank"><span style="background-color: rgb(255, 160, 122);">这里</span></a>。</p>
<p>Atari是强化学习领域最常用的一个游戏实验环境，在很多文章以及代码中，会看到frame skipping（跳帧）这个概念，那么它到底是指什么呢？<br />
<span id="more-11387"></span><br />
使用<a href="https://github.com/mgbellemare/Arcade-Learning-Environment" rel="noopener noreferrer" target="_blank"><span style="background-color:#ffa07a;">ALE</span></a>接口来实现agent与Atari环境的交互时，Atari环境会返回游戏的每一帧图像作为observation，agent需要为这个observation选择一个action，再让Atari环境去执行这个action。<br />
由于游戏是一个持续不断进行的过程，因此，为了减少运算量，一种叫做 <a href="http://nn.cs.utexas.edu/pub-view.php?PubID=127530" rel="noopener noreferrer" target="_blank"><span style="color:#0000ff;"><span style="background-color:#ffa07a;">frame skipping</span></span></a>（<span style="color:#b22222;">跳帧</span>）的技术被发明出来了，即，原来agent与environment的交互应该是这种画风：<br />
<span style="color:#b22222;">Atari给出一帧图像&rarr;agent选择一个action&rarr;Atari执行该action给出下一帧图像&rarr;agent选择下一个action&rarr;（如此循环下去）</span><br />
现在变成了这种画风：<br />
Atari给出一帧图像&rarr;agent选择一个action&rarr;Atari执行该action给出下一帧图像&rarr;<span style="color:#008000;">agent重复使用上次的action给Atari执行&rarr;Atari执行该action给出下一帧图像</span>&rarr;<span style="color:#008000;">agent重复使用上次的action给Atari执行&rarr;Atari执行该action给出下一帧图像</span>&rarr;（<span style="color:#0000ff;">如此重复N帧</span>）&rarr;agent重新选择一个action&rarr;Atari执行该action给出下一帧图像&rarr;......<br />
<span style="color: rgb(255, 255, 255);">文章来源：</span><a href="https://www.codelast.com/" rel="noopener noreferrer" target="_blank"><span style="color: rgb(255, 255, 255);">https://www.codelast.com/</span></a><br />
注意上面的重复部分，简单地说就是：每经过N帧，agent才会选择一次action，在接下来的N帧内，会重复使用之前最后一次选择的那个action。<br />
为什么要这样做？因为action&nbsp;selection的过程是一个计算量较大的过程（想像成model的inference过程），而Atari环境向前走一步相对来说是计算量较小的过程，让Atari每走N步才选择一次action的话，可以让玩一次游戏的时间大幅减少，因此agent就能在单位时间内得到更充分的训练。<br />
这种每跳过N帧才选择一次action的技术，就叫&nbsp;<span style="color: rgb(0, 0, 255);">frame skipping</span>（<span style="color: rgb(178, 34, 34);">跳帧</span>），在很多强化学习框架中，也会看到这个参数的设定。<br />
<span style="color: rgb(255, 255, 255);">文章来源：</span><a href="https://www.codelast.com/" rel="noopener noreferrer" target="_blank"><span style="color: rgb(255, 255, 255);">https://www.codelast.com/</span></a><br />
<span style="color: rgb(255, 0, 0);">➤➤</span>&nbsp;版权声明&nbsp;<span style="color: rgb(255, 0, 0);">➤➤</span>&nbsp;<br />
转载需注明出处：<u><a href="https://www.codelast.com/" rel="noopener noreferrer" target="_blank"><em><span style="color: rgb(0, 0, 255);"><strong style="font-size: 16px;"><span style="font-family: arial, helvetica, sans-serif;">codelast.com</span></strong></span></em></a></u>&nbsp;<br />
感谢关注我的微信公众号（微信扫一扫）：</p>
<p style="border: 0px; font-size: 13px; margin: 0px 0px 9px; outline: 0px; padding: 0px; color: rgb(77, 77, 77);">
	<img decoding="async" alt="wechat qrcode of codelast" src="https://www.codelast.com/codelast_wechat_qr_code.jpg" style="width: 200px; height: 200px;" /></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.codelast.com/%e5%8e%9f%e5%88%9b-%e5%bc%ba%e5%8c%96%e5%ad%a6%e4%b9%a0%e7%9a%84atari%e7%8e%af%e5%a2%83%e4%b8%8b%e7%9a%84frame-skipping%e8%b7%b3%e5%b8%a7%e6%98%af%e6%8c%87%e4%bb%80%e4%b9%88/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
