<?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>Arquivos Deep Learning - Estatidados</title>
	<atom:link href="http://estatidados.com.br/category/deep-learning/feed/" rel="self" type="application/rss+xml" />
	<link>http://estatidados.com.br</link>
	<description>Comunidade de Estatística</description>
	<lastBuildDate>Thu, 09 Jun 2022 19:49:32 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.0.5</generator>
	<item>
		<title>Hackeando o Xadrez com Decision Making Deep Reinforcement Learning</title>
		<link>http://estatidados.com.br/hackeando-o-xadrez-com-decision-making-deep-reinforcement-learning/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=hackeando-o-xadrez-com-decision-making-deep-reinforcement-learning</link>
					<comments>http://estatidados.com.br/hackeando-o-xadrez-com-decision-making-deep-reinforcement-learning/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Thu, 29 Apr 2021 17:06:29 +0000</pubDate>
				<category><![CDATA[Deep Learning]]></category>
		<category><![CDATA[Octavio Santiago]]></category>
		<guid isPermaLink="false">http://estatidados.com.br/?p=602</guid>

					<description><![CDATA[<p>A imagem abaixo é um checkmate aplicado por um algoritmo de Inteligência Artificial em uma Engine do site Chess.com que simula um Grande Mestre de rating 2650 (que é bem alto) — Daniel Naroditsky “Danya”. Neste artigo eu irei introduzir<a class="leiamais" href="http://estatidados.com.br/hackeando-o-xadrez-com-decision-making-deep-reinforcement-learning/" title="Hackeando o Xadrez com Decision Making Deep Reinforcement Learning">...[Continuar lendo]</a></p>
<p>O post <a rel="nofollow" href="http://estatidados.com.br/hackeando-o-xadrez-com-decision-making-deep-reinforcement-learning/">Hackeando o Xadrez com Decision Making Deep Reinforcement Learning</a> apareceu primeiro em <a rel="nofollow" href="http://estatidados.com.br">Estatidados</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image"><img src="https://miro.medium.com/max/1318/1*pRAAA-d3B48yMRmFurEAbQ.jpeg" alt=""/></figure>



<p>A imagem abaixo é um checkmate aplicado por um algoritmo de Inteligência Artificial em uma Engine do site Chess.com que simula um Grande Mestre de rating 2650 (que é bem alto) — Daniel Naroditsky “Danya”.</p>



<p>Neste artigo eu irei introduzir o conceito desenvolvido para este algoritmo de Deep Reinforcement Learning e como ele ganhou esta acirrada Briga de máquinas!</p>



<figure class="wp-block-image"><img src="https://miro.medium.com/max/1382/0*qSFIJd4WCQu0R8I1" alt=""/><figcaption>CharlesChessAI x Danya — Checkmate</figcaption></figure>



<blockquote class="wp-block-quote"><p>“Oooof.. well, you have defeated Danya. I hope you feel good about yourself :)” — Danya engine</p></blockquote>



<p>O Xadrez é um jogo de tabuleiro estratégico bem antigo e sua tradição já o transformou em um esporte, uma arte e por fim uma ciência.</p>



<p>Devido a sua complexidade o ser humano tenta por muitos anos criar modelos para hackear o xadrez e desvendar de uma vez por todas uma maneira de se tornar invencível. Hoje com o grande avanço computacional temos modelos que podem calcular vários lances a frente e atingir excelentes resultados como o modelo alpha-zero do Google.</p>



<p>Gostando bastante de xadrez e mesmo sem ter os recursos do Google, agora é a minha vez de mostrar que sabendo pouco de xadrez mas conhecendo bem de algoritmos eu consigo criar um campeão, e tentar desafiar os algoritmos mais fortes da área.</p>



<h1 id="b840">Decision Making Deep Reinforcement Learning</h1>



<p>Decision Making Deep Reinforcement Learning é um conceito que utiliza o Deep Reinforcement Learning para otimizar uma tomada de decisão através de estratégias definidas previamente. A ideia principal é que a partir de um conjunto diversificado de boas estratégias o algoritmo possa escolha a melhor estratégia para cada situação.</p>



<p>Um modelo de Deep Reinforcement Learning observa cada estado dentro de um ambiente e utiliza uma rede neural para escolher uma determinada ação. Esta ação então é tomada no ambiente, que é alterado, e então o agente realiza uma nova observação do novo estado e prepara a próxima ação. Cada ação gera uma recompensa para o agente e o objetivo do agente é sempre escolher uma ação que maximize este recompensa em cada estado.</p>



<figure class="wp-block-image"><img src="https://miro.medium.com/max/1380/0*YZm3JdWQ6WVpYxC7" alt=""/><figcaption>CharlesChessAI Architecture</figcaption></figure>



<blockquote class="wp-block-quote"><p>E com esta mistura de partidas de xadrez, Deep Q Learning, LSTM e engine nasce o CharlesChessAI!</p></blockquote>



<h1 id="84f3">Simulação — Biblioteca Python Chess e Gym-AI</h1>



<p>O primeiro passo é criar um ambiente de simulação para que o modelo possa observar os estados e tomar as ações, basicamente um playground para jogar xadrez. Para isto fiz uso de várias bibliotecas combinadas no Python: chess, gym e gym chess. Estas bibliotecas me possibilitaram reproduzir e observar todos os movimentos no board de xadrez simulando uma partida além de obter scores analíticos e boas definições dos estados e movimentos, com check, checkmate, movimentos possíveis e mais.</p>



<h1 id="edcb">CharlesChessAI — A inteligência</h1>



<p>A inteligência do CharlesChessAI é baseada em 3 estratégias pré definidas:</p>



<ul><li>id:0 — Memória com Plano Longo: Utiliza uma sequência de jogadas dentro de uma base de 20 mil partidas jogadas por humanos e filtrada somente com as partidas finalizadas em checkmate.</li><li>id:1 — Memória com Plano Curto: Next Word Predictor com LSTM treinado previamente em uma grande base de jogos considerando uma sequência de 10 lances. O modelo utiliza os movimentos do xadrez como string e interpretando os movimentos dentro de uma partida como palavras em uma frase. O xadrez se comportando como uma conversa entre os jogadores.</li><li>id:2 — Engine: O uso da Engine Stockfish. Stockfish é uma engine de xadrez gratuita e de código aberto que analisa a partida e calcula alguns lances à frente para escolher o melhor movimento.</li></ul>



<h1 id="e96e">CharlesChessAI x Danya</h1>



<p>Segue abaixo um video completo mostrando todos os movimentos da partida do CharlesChessAI contra Danya que durou cerca de 60 lances e 10 minutos.</p>



<figure><iframe loading="lazy" src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FGAJWB5ellAY%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DGAJWB5ellAY&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FGAJWB5ellAY%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" allowfullscreen="" height="480" width="640"></iframe><figcaption>CharlesChessAI x Danya</figcaption></figure>



<p>Durante a partida com Danny o modelo armazena todas as suas decisões e podemos analisá-las no gráfico abaixo e entender qual foi o comportamento e a tomada de decisão durante a partida.</p>



<figure class="wp-block-image"><img src="https://miro.medium.com/max/1210/0*fSHAYS5dH6e-pvgG" alt=""/></figure>



<p>No início do jogo, até o lance 25, vemos o modelo fazer uma alternância bem equilibrada entre as estratégias mas usando bastante a memória de curto prazo com o LSTM. No meio jogo, até o lance 45, vemos o modelo utilizando mais a engine do que no começo e alternando mais com a memória humana de longo prazo, o que garante bons lances para levar o jogo para um final com vantagem. No fim da partida vemos então o modelo utilizar bastante da opção de memória humana para chegar ao checkmate.</p>



<p>O código, ainda em desenvolvimento, está no meu repositório do GitHub abaixo:<a href="https://github.com/octavio-santiago/CharlesChess_Reinforcement_Learning" target="_blank" rel="noreferrer noopener">octavio-santiago/CharlesChess_Reinforcement_LearningContribute to octavio-santiago/CharlesChess_Reinforcement_Learning development by creating an account on GitHub.github.com</a></p>



<h1 id="be98">Conclusão</h1>



<p>O modelo de decision making faz com que o algoritmo escolha a melhor estratégia para cada situação de jogo e o portfólio de estratégias diversificadas traz uma criatividade extra advinda de grandes players para uma engine, uma excelente combinação entre homem e máquina. Este algoritmo também é extremamente dinâmico e adaptativo, visto que de acordo com que o modelo joga mais partidas e enfrenta novas situações ele aprende como otimizar a decisão para cada situação. Da mesma forma que este tipo de modelo foi aplicado ao Xadrez, ele pode ser aplicado em outros diversos ambientes para tomada de decisão.</p>



<p>Deixo para vocês esta uma outra partida de xadrez jogada entre o CharlesChessAI (de brancas) e uma engine do aplicativo do Windows chamado Xadrez Lv100 na sua dificuldade máxima.</p>



<p>Por enquanto o modelo está invicto tanto com partidas contra engines e humanos e irei fazer mais partidas com eles e disponibilizar no mesmo canal. Um bom nome para a partida abaixo “A dança das torres” e vocês podem acompanhar melhor pelo vídeo.</p>



<p>Vitória do CharlesChess !</p>



<figure><iframe loading="lazy" src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F26X6SBJNY24%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D26X6SBJNY24&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F26X6SBJNY24%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" allowfullscreen="" height="480" width="640"></iframe><figcaption>CharlesChessAI x XadrezLv.100</figcaption></figure>



<p>Espero que tenha sido uma boa leitura! Estarei disponibilizando mais informações e partidas do CharlesChess e fico disponível para contato no </p>



<p>LinkedIn: <a href="https://www.linkedin.com/in/octavio-b-santiago/">https://www.linkedin.com/in/octavio-b-santiago/</a></p>



<p class="has-text-align-left">Post original: <a href="https://medium.com/data-hackers/hackeando-o-xadrez-com-decision-making-deep-reinforcement-learning-438167468410">https://medium.com/data-hackers/hackeando-o-xadrez-com-decision-making-deep-reinforcement-learning-438167468410</a></p>
<p>O post <a rel="nofollow" href="http://estatidados.com.br/hackeando-o-xadrez-com-decision-making-deep-reinforcement-learning/">Hackeando o Xadrez com Decision Making Deep Reinforcement Learning</a> apareceu primeiro em <a rel="nofollow" href="http://estatidados.com.br">Estatidados</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>http://estatidados.com.br/hackeando-o-xadrez-com-decision-making-deep-reinforcement-learning/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
