Inteligência Artificial jogando 2048!!
Vložit
- čas přidán 7. 09. 2020
- Seja muito bem vindo ao Universo Programado!
Neste vídeo você verá como uma Inteligência Artificial aprendeu a jogar o jogo 2048 e foi superada por um outro algoritmo ainda mais eficiente!
O algoritmo implementado foi uma Rede Neural Artificial (Perceptron Multilayer).
A função de ativação utilizada em todos os neurônios foi a ReLU.
O método de aprendizagem é comumente chamado de ''Random Mutations".
A linguagem utilizada em todo o processo foi a Linguagem C juntamente da biblioteca gráfica SDL.
🔴 - Mais informações sobre a área de MEMBROS aqui do canal:
/ @universoprogramado
🔹 - Alguns outros vídeos interessantes sobre esse assunto:
Código Fonte TV:
Deep Learning // Dicionário do Programador - • Deep Learning // Dicio...
Filipe Deschamps:
Brasileiro programa Inteligência Artificial que aprende a DIRIGIR SOZINHA!!! [Machine Learning] - • Brasileiro programa In...
Discovery Brasil:
Discovery Brasil | Inteligência Artificial - IBM - • Discovery Brasil | Int...
🤖 - Outros vídeos aqui do canal que talvez te interessem:
Inteligência Artificial aprendendo a ESTACIONAR!!:
• Inteligência Artificia...
Inteligência Artificial ZERANDO o jogo mais difícil do mundo!:
• Inteligência Artificia...
Inteligência Artificial destruindo no dinossauro da Google! (Rede Neural):
• Inteligência Artificia...
📌 - Redes Sociais do Canal:
Instagram: / universoprogramado
Discord: / discord
📌- Minhas Redes Sociais:
Github: github.com/JVi...
LinkedIn: / victor-dias-41109117a
❤️- Um grande abraço e um ótimo estudo pra você!
#inteligenciaartificial #programação #cienciadacomputacao #machinelearning - Věda a technologie
✅ - Se você quiser aprender a programar (do zero) todos esses algoritmos que aparecem nos vídeos, aqui está a Lista de Espera para o Curso Universo Programado: hotm.art/ListaDeEsperaUniversoProgramado Qualquer dúvida é só me chamar lá no Instagram @universoprogramado!! Valeeeu!
primero a comentaaaa
Sô que não
Tinha postado um comentário a 15 segundos após o vídeo. Só tinha 1 visualização que no caso era eu.
@@jonybrow6857 eu postei 1 comentario litelamnete asim que o video comeco eu nem vi ele e ja tinha comentado
E nao so tao bom em progamaçao, mais nao da pra mistura eles nao?(fazer um ensina ao outro)
Faz uma IA jogando guitar hero! Pra alcançar a maior pontuação possível (lembrando q tem o poder especial q faz você ganhar mais pontos)
Assim o cara não monetiza nada!
@@Henriqueoliv25 Não é obrigatório usar o som do jogo, ele pode simplesmente comentar durante uma música.
Manoooo gostei da ideia. up!
Muito boa ideia
uma pergunta que pode ser meio burra: o Guitar Hero não é só um jogo de visão e tempo de reação? acho que uma IA não seria boa porque é muito deterministico
O pulo do gato esta na hora do "game over", a estratégia do Monte Carlo no inicio não é tão relevante, mas quando esta próximo do "game over", a estratégia do Monte Carlo claramente vai separar as teclas que vão te "matar" em poucos movimentos, das teclas que te darão muito mais opções de "fuga da morte".
boa Robson! é isso mesmo hahaha
@@UniversoProgramado Eu acho que você quebrou demais a cabeça criando uma métrica pra avaliar a posição, sendo que o que você quer é simplesmente maximizar a quantidade de movimentos antes de perder. Se você fizer simplesmente um MCTS com cada nó com a probabilidade de perder e seguir o caminho mais proveitoso, o algoritmo vai ser mil vezes melhor. Se quiser usar rede neural, usa a rede neural no nó folha da MCTS igual ao AlphaZero.
@@UniversoProgramado na resposta eu acrescentaria que o bot de monte carlos nao faz decisoes baseadas em jogadas ruins, como vc falou mas sim na melhor das jogadas aleatórias, mesmo que 99% das jogadas aleatórias sejam ruins, ele só precisa que a melhor seja boa, e não é tão difícil achar uma jogada aleatória boa em um jogo com poucas variaveis como esse. Além disso, o bot com rede neural tenta se prender ao modelo gabarito, que de vez em quando nao é possivel ser seguido, fazendo ele fazer um movimento aleatório que abre uma brecha para numeros errados entrarem no gabarito, fazendo ele se embaraçar com a situaçao.
Se é esse o caso, talvez fosse interessante que a IA jogasse até que chegasse o tal ponto do game over para o Monte Carlo recuperar o jogo. Tipo, quando um número 2, por exemplo, acabasse na primeira fila. Quero dizer, o Monte Carlo ser um recurso da própria IA.
@@1daniel2678 realmente isso poderia dar certo, mas também tem que pensar que ele empurra as peças para cima toda hora , ele pode fazer o " game over " bem mais rápido que o Carlo
Que vídeo incrível, abri e me surpreendi demais, parabéns pelo seu trabalho cara, sem palavras!! 👏🏻👏🏻
Krl, vc por aqui? Só pq vi recentemente teu vídeo da evolução no CS. Joga pra KRL
2 anos dps tava aqui assistindo vídeos e cai nesse vídeo dnv kkkk e ia comentar q video foda
Impressão minha ou vc tem uma BELA máquina pra rodar tudo isso, ou os vídeos demoram alguns meses pra ficarem prontos??? Entre programação, testes, ajustes, gravação e edição devem ter umas boas várias horas, fora o tempo rodando o algoritmo... Só te digo uma coisa: 👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻👏🏻
Oi, você poderia colocar a I.A. para jogar "Tetris"
Edit: Vlw pelas curtidas e comentários
Up
Up
Up
Up.
czcams.com/video/QOJfyp0KMmM/video.html
Victor: a
Google: Contratado!
Microsoft: Contratado!
Apple: Contratado!
Contratado
@@lucieneguimaraes7536 contratado
@@lucieneguimaraes7536 Eu vou ser Hokage tô certo dattebayo
OBVIO né
ele é muito bom e ainda explica tudo cheio de paciencia e faz muito bem. VICTOR TU É O MELHOR!
sony:
15:20 Revendo o vídeo depois de ter bastante conhecimento, isso acontece pois ele simula diversas situações que podem acontecer, enquanto a inteligência artificial criada no vídeo foca em deixar o mais parecido com o gabarito o algoritmo de monte carlo faz o que tu queria inicialmente com a inteligência artificial, simula varios jogos e pega a pontuação dessas posições, como o jogo é aleatório, utilizando a média vc obtém a tecla que na maioria dos cenários fez ir para uma posição melhor levando em conta a aleatoriedade.
Outros algotimos parecidos são o minimax, onde vc tenta obter a melhor jogada porem a sua melhor jogada tem que levar em conta a melhor jogada do seu adversario, assim criando uma arvore parecida onde os ramos se dividiram entre o maior valor e o menor valor (melhor pra mim e melhor para o adversario), no final da analise vc faz o lance que leva para a melhor jogada.
O Algoritmo usado no vídeo faz basicamente a mesma coisa, mas em um jogo onde apenas a sua decisão importa, por isso ele é mais eficiente que a IA, ele calcula as melhores posições em diversos cenarios enquanto a IA é enviessada e seu objetivo tecnicamente é seguir o gabarito
Uma função bastante interessante no 2048 que já joguei é a de voltar. E ao fazer voltar e realizar o mesmo movimento de antes é possível "escolher" posição em que nasce um 2 ou um 4, ou até se nasce um 2 ou um 4. Tenta implementar isso no código do jogo! Vai ficar super interessante, e talvez até consiga zera-lo.
Galera, se der pra curtir pra chegar nele.
Pessoas em 2020: Em 2048 teremos carros voadores.
2048: Assistindo vídeos de 2020 de como ganhar em 2048.
Daqui a 28 anos vai ter um monte de caras te chamando de vidente kkkkkkkkkkkkkkkkk
@@gustav5674 vc tbm
Genial
@@1lusca vc tb kkkkk
*paradox awakening*
Cara, faz um curso básico de IA em python e vende da Udemy. Eu compro.
UP!
Ele consegue explicar as coisas com uma clareza muito grande!
Eu compro
PLEASEEEE
Cara ele faz um trabalho brilhante, de verdade. Seria dahora.
Simplesmente incrível seu conhecimento. E sobre o logaritmo tá de parabéns!
Pensei nisso na hora que estava assistindo. Boa sacada a do logaritmo.
A arvore de monte carlo me lembra o que acontece na realidade quanto a noção de espaço das pessoas. Não lembro o nome da teoria, só que vi na TV ahahhahah. O exemplo que lembro disso é o seguinte:
Imagine uma caixa com varias bolinhas de gude. Varias pessoas chutam quantas bolinhas há na caixa algumas vão passar longe para mais e outras para menos, meio q se anulando, outras passam perto. A média dos chutes é um valor muito proximo da quantidade real. Então mesmo chutes ruins (para cima ou para baixo) são importantes para equilibrar a média da realidade.
Olá, gostaria de dar uma ideia pra melhora do código, seu "jogo perfeito" coloca em ordem da esquerda pra direita e de cima pra baixo do valor mais alto para o mais baixo, entretanto, se rotacionar o jogo ele também será perfeito, tanto lateralmente quanto espelhado, isso não irá diminuir a qualidade do jogo. Em suma, se o maior valor estiver em qualquer um dos cantos e estiver diminuindo para qualquer canto oposto com uma diminuição gradual, pode ser considerado um jogo perfeito sem obrigar a ia jogar somente em cima. Se do maior para o menor estiver debaixo para cima da esquerda pra direita, também será um jogo perfeito. Ou seja, existem no mínimo 8 posições de jogo perfeito, não uma. Espero que tenha ficado claro. Obrigado pelo vídeo!!!
Como jogador posso dizer que alterar essa posição durante o jogo ajuda a corrigir a jogada quando um númeno nasce onde não devia
Up.
Exatamente
Up
Up
Vou tentar fazer a melhor explicação pra qur todos entendam, aqui temos 2 propositos diferentes e duas funçoes a mais, exemplo 1 rede neural: organizar e padronizar para tem maior taxa de susesso por partidas e exemplo 2
Arvore: finalizar com o modo mais promissor a cada jogada, o que difere aqui é a soma das percentagens e por isso a arvore tem uma maior pontuação, apezar das 2 conseguir o objetivo final que é 2048 e ganhar o jogo, a árvore se atualiza a cada jogada, e nao a cada rodada, tendo menos estabilidade mas por contra partida mais experiencia em caso versos resultado, resumindo uma copia seus resultado e os aprimora ou os obseva e se re-aprimora,fazendo assim o dobro de esforço por ação, mais um maior resultado, obrigado por ler até aqui ❤
Pô man, coloca a IA para jogar Subway Surfers kkkkkkkk é legal pq ela vai ter muitas possibilidades no game, e vai acabar deixando mais complicado e divertido kkkk. UP!
@@Samn47_ A IA pode até ser simples, é proximo do jogo do dinosauro do chrome que ele ja fez, mas oq deve da de trampo é clonar o jogo
Como ele vai recriar o jogo acho q dá mt trabalho, pois p jogo é em 3D (eu acho) por isso demoraria muiyo pra ele recriar
Mas mesmo assim...
Up
Up
Cara, sinto mt orgulho de saber que tu é uffiano. Comecei agr nesse mundo de programação e meu foco é IA/ML e fico sempre mt encantado com os teus videos! Sacana demais, parabens mlk
o que diabos é um uffiano?
@@joaopedrobaptista2337 quem estudou na UFF
Aew tava esperando, já tinha visto o seu tweet antes
Tb
Finalmente, video novo
Mas eu ainda quero ver uma I.A jogar pokemon hahaha
Uau quantos likes, não sabia que seria tão interessante hehe
up
Up
up²
4.13 x up²³
Up
Mano faz uma série ensinando a programar em c, já sou bom no nível básico mas querja melhorar.
Não sei quase nada de programação, mas acho os vídeos excelentes, as animações do vídeos explicando o que está acontecendo são incríveis e super didáticas, da até vontade de começar a programar.
O Monte Carlo quando faz muitas jogadas e escolhe a mais promissora, está prevendo o futuro mais provável e assim fazendo a melhor jogada, e conseguindo um bom jogo.
4:00 KKKK MDS
na hora q vc falou: "vamos adicionar os sprites" carregou um anúncio da sprite kkk
Meu adblock:kkkjj humor
IA trabalhando, kkkkk
Pra mim foi da coca cola
pra mim foi do ifood
Pra eu foi o dove demarquilante kkkkkk
Esperando até hoje a continuação
Adoro teus videos cara, parabéns por ser tão incrível e incentivar a galera a ser melhor também
Depois que o 2048 já ficou até esquecido, uma galera fez uma versão audiogame dele pra ser jogada por cegos que usam leitores de telas (meu caso). Aí, pude perceber a complexidade desse game conforme caminhava pelo tabuleiro com as setas (e mexia as peças com Shift+setas, naturalmente).
Conforme o cursor passava por cada peça e com isso o leitor de telas falava como estava o tabuleiro, minha cabeça foi literalmente dando nó! Fico tranqüilo em saber que até inteligência artificial tem trabalho pra finalizar esse jogo, risos.
Sobre a Busca em Árvore Monte Carlo:
Bom, ainda não pesquisei nada sobre o algoritmo, meu comentário está mais relacionado a “forma de enxergar o problema”. Acredito que, muitas vezes, o “intuitivo” nos leva a pensar no “resultado final” apenas através do pressuposto de UMA proposição. Mas a verdade é que, em certas situações, pode haver OUTRAS proposições totalmente equivalentes a qual estamos enxergando. A mudança no ponto de vista pode resultar em uma solução mais otimizada, como foi o caso do algoritmo Monte Carlo.
Enquanto a sua IA está buscando “se aproximar cada vez mais do resultado ideal”, a lógica por trás do Monte Carlo se baseia em “se afastar cada vez mais dos resultados não-ideais” (pelo que entendi). No fundo, ambos estão buscando a mesma coisa, pois são proposições equivalentes. Mas a diferença no “ponto de vista”, faz com que a implementação do Monte Carlo seja baseada apenas no “presente”, enquanto a sua IA está interessada no “futuro”.
Ressalto que o “presente” do Monte Carlo é, na verdade, a testagem de vários “futuros” ... e é claro que, quanto maior o número de testagens, melhor a qualidade do código. Provavelmente o número de testagens deve se estagnar em temos de “qualidade” em algum momento (mais ou menos, da mesma maneira que você encontrou a probabilidade de nascer um 2 ou um 4 no jogo). Já a ideia de “futuro” como um “gabarito final” é difícil de contribuir (como feedback) em cada jogada individual no caso deste jogo. Acho que a estratégia de ordenar peças de maior valor torna a evolução da IA meio travadona.
Então, o bracelete do tempo do Dr. Estranho é um "Monte Carlo"?
@@claudiohenriques26 ele é o monte carlo. o bracelete é só a IDE que ele usa, haha.
Like com certeza, mano... Mas tenta variar nos jogos...
Já pensou em fazer speed run de algum jogo? Com essas redes? Só pra saber se ela supera os feras das speedrun...
Acho que não seria possivel em, jogos são muito grandes, e a AI não chegaria a encontrar bugs no jogo como é o caso de alguns speed runs de God of war e Super Mario 64. Porem, se você viu o vídeo da AI jogando o joguinho do dinossauro da pra ver que ela achou um atalho pra ganhar maior tempo de reação (quando ela pula e aperta pra baixo) então talvez ela chegue até mesmo a descobrir as técnicas de andar mais rápido em jogos como os Zelda do 64 (a técnica em questão é mirar pra frente e pular pra tras) Mas acho que jogos como esse são complexos de mais, principalmente os 3D
czcams.com/video/qv6UVOQ0F44/video.html
Nesse video aqui a rede neural funciona atravéz de visão computacional, realmente consegue um ótimo tempo no jogo, mas não tenho certeza se chega a bater um speed Runner. Ainda assim seria uma boa testar em jogos como os mários mais antigos onde o objetivo é só chegar ao final da fase na horizontal. Enfim, uma boa ideia, espero que ele tente algo do tipo
(estou sem corretor BR então talvez tenha errado muitas palavras, liga não)
@@renatocesar9972 eu fiz esse comentário com Mario em mente, seria mais difícil e demorado pra ele, mas vale o desafio fazer isso com um jogo que ele não tenha programado, seria foda!
@@renatocesar9972 jogos possui muitos erros de programação principalmente os grandes, mas o problema é que IA também demoria muito para encontrar esses erros para encurta caminho e ganhar mais tempo, demoria dias talvez meses para superar um speed runner Pro.
@@MrRafinha50 sim, as speed runs mais impressionantes (e rápidas) sao aquelas onde o jogador encontrou atalhos lógicos na programação. Porem se for para concorrer a uma categoria %n, ou seja, sem usar glits, bugs e etc, a IA teria uma boa chance acredito eu. Mesmo assim completar um jogo inteiro continuaria sendo um grande desafio, visto a quantidade de fases e variações que existem, como no super mario bros por exemplo, as técnicas usadas nele sao, em toda fase, as mesmas, é só uma variação, mas será que a IA saberia lidar com essa variação?
@@renatocesar9972 meio que poderia, ensinar a I.A, com vídeos das speed runs
Já que usou Monte Carlo até onde entendo, ocupar vai usar a aleatoriedade pra ter uma distribuição das probabilidade de cada direção (da 4 existentes). Como tu pega de melhor média ela já melhor que uma grande parte.
Sugestão usar uma Ai mais tradicional que faz a busca extensiva no espaço amostal. Otimiza com o minimax com algum(s) corte(s). Não vai fugir de ter que a função de avaliação. O problema vai ser modelar a aleatoriedade das peças novas, talvez com se fosse um 2º jogador que 'quer' fazer você perder.
Mas olha. Uma das poucas vezes que o YT faz uma boa recomendação.
Ótimo canal. E é incrível como um jogo simples gera uma "rede" de pensamentos tão grande.
manooooo, vc é fera demais! Ótimo trabalho, terá sempre meu like.
ps: pare agora, vai que vc cria a "skynet" hahahaha
muito massa Vitor! alguns meses atrás eu tinha lido que o MCTS é o toque especial do AlphaGo. Seria legal mostrar alguns conceitos de Tree Search Algo. 😍
“The majority of AI problems can be cast as search problems, which can be solved by finding the best plan, path, model or function.”
com certeza mano, falar de arvore é sempre uma coisa linda!! e quanto a IA, essa frase aí resumiu tudo mesmo! Tamo junto!
@@UniversoProgramado esse feitiço que ele falou faz oque?
Tô estudando para futuramente gerenciar um projeto para o mercado financeiro. Estou curtindo bastante seu conteúdo, obrigado!
De tudo, o que eu mais gosto de ver nos seus vídeos é sua clareza na definição do problema e explicação. Sou leigo na área porém com sua explicação fica muito mais fácil.
Parabéns!
Amei o vídeo, mas talvez uma série do mesmo jogo enjoe, mas se for uma continuação que sempre parte do "nível" de conhecimento do vídeo anterior, seja legal, no mais, amo seu canal, e não ligue pro que eu digo aqui, faça o que gosta, e eu virei assisti-lo.
Muitissimo obrigado pelo feedback e pelo apoio hahahah tamo junto :)
Seu vídeo demora para sair, mas quando sai vale por cada segundo ;)
uma melhoria que pode ser feito é a comparação pelo melhor gabarito para uma dada posição das peças. note que podemos 'rotacionar ' o gabarito que ele continuará tendo a mesma pontuação. tanto faz se as peças do gabarito estão em ordem decrescente da esquerda para a direita, da direita para esquerda, de baixo pra cima...
Uma forma de resolver o problema da gulosidade de Monte Carlo é utilizar da estratégia GRASP, avaliar essa resposta de melhor classificada, jogar em um busca local e atualizar o problema usando uma função de gulosidade, repetir esse processo até encontrar o ótimo local. Foi assim que resolvi um problema parecido no meu TCC.
Cheguei mais rápido que a taxa que o C processa a IA! Ansiedade tava matando aqui! Kkkkkk Muito massa Victor! Lancei ontem um vídeo falando de visão computacional, depois da um pulo lá para ver! 💪🤖🔥
E eu, quase tão devagar quanto uma IA em python
@@guigazalu hauhauahau no nosso caso o importante é chegar e ver esse vídeo! Lento ou rápido chegue!
Eu:sim sim sim estoul entenderndo tudo claro !!!!
Eu de verdade:de que tipo de bruxaria ele tá falando ??
meme óbvio e saturado
@@lucasvictor2488 pode crítico de memes no grupo?
@@placidhitz pode
@@placidhitz Não
@@lucasvictor2488 discordo! Pois de fato o que o vitor está ensinando é realmente muito complicado!
Acho que a questão do segundo método é um foco maior no momento que na estrutura final. Tentai tirar o máximo de cada movimento que você tem. Ele leva em consideração que ele tem uma série de cenários possíveis pra cada movimento que ele fizer. Sendo assim, já que é impossível prever qual vai ser o próximo cenário (onde as próximas peças aleatórias vão aparecer) , ele vai pela opção que sobrevive em mais cenários diferentes. Você não determina qual vai te manter vivo até o final do jogo, mas qual vai te manter vivo até o final da próxima jogada, e isso te mantém vivo até o final do jogo.
A busca Monte Carlo é mais fácil de se entender se pensarmos no xadrez, onde ela é muito usada: você precisa pensar em cada movimento como tendo um impacto direto na avaliação atual do tabuleiro. Por exemplo: sacrificar uma torre aleatoriamente até permite algumas sequências vitoriosas se o adversário errar muito, mas em geral, qualquer jogador razoavelmente bom (aka o jogador médio) vai conseguir ganhar do campeão mundial se estiver jogando com uma torre a mais.
Da mesma forma, cada uma das 4 setas objetivamente contribui positiva ou negativamente para a solução. Para nós, só faz sentido depois de combinar muitos lances seguidos, mas voltando ao xadrez, um jogador forte entende, mesmo sem um motivo claro, por que um cavalo fica melhor em d5 do que em a8 (embora existam algumas raras posições em que o contrário é verdade, daí a importância da média!). E é isso que a Monte Carlo faz: ao traçar uma média entre as possibilidades, ela emula uma compreensão abstrata do quanto aquele movimento contribui ou não para a posição!
Eu comecei a estudar programação novamente tem uns dois meses. Seu nível é minha meta
edit: bicho como você não tem 1M ainda?
Simples..., porque o Brasileiro gosta mais de Putaria e Divertimento "quase que o tempo todo"
10:18 fez-me lembram do Sistema de Ensino
A monte Carlos bate a rede neural simplesmente pq uma realiza ações mediante o q tem! (rede neural), já a outra se utiliza do q pode fazer (monte carlos), avaliando os cenário e escolhendo o mais promissor.
Incrível !!!
Orgulha o Brasileiro !
Faz uma I.A pro xadrez, até ela alcancar um nível melhor que o do campeao mundial, estudando posições, melhores lances, partidas antigas e tals
Ótima ideia
Up
Up
Pede pra outras pessoas comentárem isso no proximo vídeo dele
Cara xadrez sao posibilidades quase infinitas, ja existe engines de xadrez que faz isso os mais fortes são stockfish e lella zero, nao importa oq vc criar sempre vai perder pro stockfish
12:34 kkkk cai pra ca
ai ai eu nao te aguente cara vc e o melhor
Cheguei agora nesse canal e nesse vídeo, achei impressionante. Sobre a rede neural, ela parece seguir apenas a melhor estratégia e aprender com isso (quase igual a lei da evolução na biologia), já a árvore de monte carlo faz justamente o contrário, pego todos que deram "errado" de alguma maneira e exclui até o menos pior, ao longo prazo redução de efeitos colaterais é mais benéfica do que grandes ganhos em curtos espaços de tempo, é assim que gira nosso sentido de sobrevivência ao menos, logo a árvore de monte carlo reproduz isso.
PS: não sou da área de programção, longe disso, nem programar eu sei, foi mais minha dedução lógica mesmo, me corrigem se estiver errado a idéia.
Acredito que a tendência para a rede neural "preferir' usar a seta para cima se dê pelo viés do tabuleiro perfeito onde ela aprendeu que maiores pontos = padrão do maior para o menor da esquerda para a direita e de cima para baixo, onde em ultima instância a maior importância é a da linha superior, depois da coluna da esquerda e assim por diante.
O Monte Carlo não tenta fazer isso, o que resulta em "micro situações" otimizadas que favorecem a resolução de um problema local que acabariam por colapsar o tabuleiro todo se a ordem enviesada fosse prioridade.
Acho que pode melhorar o programa da seguinte forma: sempre q eu jogo com preferencia a um lado do tabuleiro para reorganizar dps de um 2 ou 4 nascer num cahti indesejavel eu mudo o lado que esta com as maiores peças, rotacionando apenas uma vez, isso muda prolonga o temoo de jogo se voce souber usar as peças indesejadas pra formar par com outras q vao surgundo dps de rotacionar, isso q faz talvez conseguir "zerar" o jogo, eu infelizmente nunca consegui kkk
Vou te dar a solução forte desse jogo (se já não tiver encontrado):
Lado direito, baixo, lado esquerdo, cima - lado direito, baixo... Enfim, continuadamente
Eu já fiz mais de 50 mil desse jeito (configurei um autoclicker), e só não fiz mais porque a paciência tinha acabado
Sim, é simples desse jeito porque se trata de um quadrado e, além disso, quando você move em alguma direção você move todos os elementos de uma vez
Você _nunca_ perde, a aleatoriedade não te afetará tanto já que no instante em que você mover, não irá aparecer novos números no canto (para o qual você acabou de ir), e você vai ainda acabar aproveitando os quatro cantos do jogo o tempo inteiro...
Eu observei que, por conta da primeira característica apontada ali, todos os elementos, novos ou não, vão se somar com correspondentes em 2 ou 3 movimentos no máximo...
E eu já estou me estendendo demais, teste aí
Muito interessante, parabéns pelo vídeo! abraço.
Sou fã de xadrez e esse video, primeiro q vejo do canal, me fez enxergar de forma diferente as maquinas do xadrez. Vlw
Cara! Eu espero muito que você esteja ganhando muito dinheiro. Porque eu acho sensacional isso que você faz. De uma inteligência bem acima da média. Sempre que dá, eu assisto seus vídeos. Parabéns!
mano você é muito genial cara, meu deus
Cara me amarrei muito no seu canal! Já me inscrevi e estou compartilhando com amigos.
Queria fazer um pedido, manja aqueles jogos que você precisa fazer um desenho e então o desenho é aplicado no jogo vencer os obstáculos?(Draw Climbing - Draw Legs & Run) Fazer uma IA desenhar padrões(contra intuitivos) que vença esse jogo com maior eficiência:
Eu lembro quando aprendi o 2048, depois de um tempo fuçando, acabei por aprender o padrão de jogar tudo pra um canto (parecido com o modelo utilizado), esse padrão com um tiquinho de sorte é o suficiente pra fazer a pontuação proposta no nome do jogo. Mas, resolvi que dava pra fazer mais e pra além do padrão comecei a fazer certas correções e com isso da pra ir bem longe. O negócio da árvore de monte carlo me parece bem o deep blue, ele usa de um poder de calculo muito grande pra pensar em diversas probabilidades e consequências, mas faz um jogo contra intuitivo pra nós humanos, que usamos mais um reconhecimento de padrão do que o calculo bruto. A chave da árvore de monte carlo parece ser o número de variantes pensadas. Com uma amostragem muito grande ela acaba indo pra resultados melhores mesmo sem o reconhecimento dos padrões (que é como nós e a rede neural pensamos - pelo menos majoritariamente). Talvez se a rede neural fosse programada em busca do resultado mais alto ou diminuir o valor que ela dá para a semelhança com o jogo ideal (diminuir apenas, não excluir) e somar isso ao potencial de calculo da árvore de monte carlo você consiga uma IA que faça absurdos no jogo.
Acho que também pode tentar adicionar no monte carlo o padrão do jogo ideal, pra servir como um modelo desejado, mas que fique em segundo plano em relação ao calculo das amostragens. Não sei qual a possibilidade de se combinar as duas formas de IA e quais seriam as limitações (sou bem fraquinho em programação, não é minha área de estudo), mas parece que se for possível essa somatória (reconhecimento do padrão ideal + Calculo bruto) deve dar pra fazer um absurdo de jogo... Desculpa a possível redundância do argumento, escrevi meio na pressa
do mais fica o elogio da profundidade que você pensa no jogo e nas soluções pra IA e também da capacidade de comunicação que tem. Parabéns
Recomendo você fazer um curso e divulgar, seria muito mais aproveitado pelos programadores e para vc.
"é errando que se aprende" expliquei o monte carlo
A rede que você criou construiu para si uma lógica de busca por um resultado em específico. O algoritmo de Monte Carlo pode ser usado para diversas coisas mesmo sendo guloso. E a vantagem dele, nesse caso, é que ele sempre está buscando o melhor resultado dentre as possibilidades que ele vislumbra. Como os número surgem de forma aleatória ele se sai bem analisando os cenários futuros e escolhendo os melhores.
Bem, tomar a melhor decisão depende apenas do estado atual do tabuleiro.
A estrategia de manter o jogo organizado e um pressuposição questionável.
Pela natureza aleatória do jogo, o desempenho de uma mesma IA, para o mesmo cenário inicial pode variar. Assim sendo, uma amostragem estatistica do desempenho de uma IA seria mais representativo.
Uma sugestão seria realizar múltiplos testes para cada IA gerada e representar a pela pontuação media. Como os problemas enfrentados numa IA podem variar muito no decorrer do jogo devido suas escolhas mas também por fatores alem da sua escolha, pode-se treinar as maquinas em situações avançadas, criando um comparativo mais fidedigno entre comportamento vs resultado.
Professora: onde você aprendeu a falar difícil desse jeito
Eu : então é uma longa história...... literalmente
😆😆😆😆😆😆😆😆
7:32 na hora onde ele fala "um pouco diferente, apareceu um anúncio de uma menina dizendo "só um pouquinhO KAKKAKAKA
cara, eu e meu amigo eramos viciado nisso no ensino médio lá pra 2012, 2013... eu lembro q dps de vários dias jogando, a gnt meio q "simultaneamente", sem falar a estratégia um pro outro, percebeu q ficar juntando as peças num canto quase sempre dava certo.
saudades daquela época...
Conheci teu canal por agr e achei incrivel, principalmente porque estou no inicio do curso de engenharia de Software e é muito interessante ver essas aplicações mais casuais. Pena que esses vídeos dão muito trabalho e acabam levando muito tempo pra ser produzido, mas o resultado é muito bom, parabéns
Sujestão para vídeo
Ia aprendendo a resolver o cubo mágico
I.A resolver isso é impossivel afinal esse cubo é material e não digital, por isso a I.A não consegue fazer nada não é mesmo?
@@Juliane89 mas tem apps no Pc q eh um cubo mágico
@@ionsir.9132 ata;-;
O que será necessário aprender pra codar estes tipos algoritmos de IA, é possível aprender de maneira autodidata ? valeu pelo vídeo e sempre acompanho o seu canal desde os primordios.🤘🔥
Primeira vez em contato com canal. Excelente conteúdo, parabéns!
Cara, acho que um dos motivos para um resultado tão diferente entre a rede neural e a técnica de Monte Carlo foi a forma como apresentou o gabarito, pois você colocou o gabarito sendo visualmente "um efeito dominó" decrescente em que o maior valor se situa no canto superior esquerdo, sendo que talvez para determinado jogo fosse mais promissor que o maior valor estivesse em qualquer dos outros 3 cantos. Assim você pode ter eliminado algum comportamento promissor apenas por não escolher a organização do maior no canto superior esquerdo e o segundo maior como segundo elemento da fila (já que também poderia ter sido o segundo elemento da coluna). Abração, cara! Conheci agora e já me inscrevi, tmjj!
“As vezes é preciso dar um passo pra trás pra conseguir dar 2 pra frente”, vc disse q o monte carlo não fazia isso e outro sim
Mas mano, é exatamente o contrário, o monte Carlo tecla baixo diversas vezes justamente pq as vezes é necessário teclar baixo pra conseguir prorrogar o jogo e depois deixar tudo pra cima e esquerda.
A rede neural tem preferência de sempre deixar tudo ajustado e acaba travando em um momento, é igual tentar resolver um lado do cubo mágico sem mexer nos outros lados já montados
Não foi isso que ele quis dizer, na verdade ele estava falando sobre a evolução do problema.
Por vezes a rede neural em seu desenvolvimento teve que encontrar uma solução pior para ai sim encontrar uma solução melhor.
Já o Monte Carlo simplesmente escolhe a melhor opção (a opção que permite maior pontuação) sempre. Então se a melhor opção naquele momento é teclar para baixo é isso que ele vai fazer, ele jamais vai tentar ver se outra opção aparentemente pior não resulta em um resultado melhor.
Exatamente, o ponto é que a rede neural ta fazendo movimentos limitados pelo tabuleiro visando o maior número no lugar certo enquanto o outro vida apenas o maior número independente do lugar
Finalmente 😃 esperei meses
Que incrível! Difícilmente comento em algum vídeo mas o seus mecerecem parabéns! Esse jeito intuitivo de explicar algo que parece "bobinho" como um jogo, possui inúmeras aplicações no cotidiano, principalmente no mundo corporativo, independente do segmento. Sem dúvidas é a base do nosso futuro.
cara que doideira, já cheguei em 4096 e demorou muito kkkkk. é triste ver a maquina fazendo tão rápido, mas pensando bem, acho que ela jogou mais do que eu.
eu acho que a aleatoriedade da arvore funciona melhor pq a rede neural não consegue prever como evitar tocar pra baixo. nessa estrategia onde você exclui uma direção você precisa fazer de tudo pra evitar a direção indesejada. então acredito que seja mais um problema na estrategia do que a ineficiência. eu fazia pra direita e pra baixo, então eu sempre evitava colocar pra esquerda ou pra cima caso a fileira da direita não estivesse completa ou tivesse uma possível soma.
acho que se conseguir fazer a rede neural entender isso você consegue ir bem longe.
Minha mãe conseguiu 131.072 num tabuleiro 5×5, mas eu mal consigo 2048 ;-;
E se você ao invés de colocar movimentos aleatórios no algoritmo de Monte Carlo, colocar a IA para jogar e ver qual foi o melhor movimento que ela fez
Qual seria o parametro pra ela identificar o melhor movimento?
Cara como vc só tem 300K de inscritos? Vc merecia mais de 1M, tu é foda mlk
se ele tivesse conteudo lixo ia bater os 2 milhoes facil
ACABEI DE CONHECER O CANAL, E OLHA, QUE COISA LINDA É VER O ALGORITIMO TRABALHANDO
Mano na moral te admiro, você é muito inteligente, deveria estar em uma empresa foda de computação tipo Playstation ou Nintendo ... Ou até Microsoft
Voce acha q é possível criar um app de IA que jogue jogos do estilo "candy crush"? Seria algo parecido com esse, que teria q determinar a melhor jogada, ou seria mais puxado para o reconhecimento das cores?
O tal gabarito estaria melhor se englobasse diversas situações
Assim a AI não ficaria viciada em mandar o maior número para cima, ela poderia ao invés disso mandar o maior número para baixo, ou quem sabe para o canto superior direito
Nesse jogo não há como ficar preso em movimentos, você tem que pensar em cada passo singularmente, e outras vezes você tem que esperar pela oportunidade certa sem tirar as peças boas da posição
Sobre o algoritmo de árvore, eu acho que ele é bom assim pelo fato que ele simula muitas probabilidades, assim ele acaba escolhendo a melhor pontuação, e, apesar dele dar muitos passos pra frente muito rápido, as vezes ele acaba dando um passo pra trás, se as probabilidades demandarem assim
Gostaria de um video ensinando como vc faz as simulações, pode ser um caso super simples seria um grande incentivo. Parabéns pelo canal
é fácil perceber o problema de padrão da a.i, julgando que a.i sempre vai buscar uma porta logica com o padrão em cima acaba limitando as jogadas dela, assim e a interpretação dos problemas acaba ficando de forma repetitiva e se matando pois não consegue fazer a otimização do espaço, já que ela esta trancada a sempre utilizar as peças para cima e a direita, ja o monte carlo mesmo sendo "aleatório" e buscando sempre o melhor cenário de interpretar o problema com a junção da peça que pode sem tentar atrapalhar o próximo movimento faz com que ele tenha um melhor desempenho, mas ainda tem a falha de interpretação pois a peça nascendo aleatória e com valor aleatório torna a fazer jogadas que futuramente vão te matar, se tua ia previsse em qual quadrado vira o novo 2 ou 4 ou tivesse uma base por porcentagem(ja que o jogo não tende a ter novas peças no lugar anterior) conseguiria desempenhar um melhor resultado
Que legal está canal
oi
simm
Mano É pra isso que matemática se aplica kkkkk eu nunca vi matemática bruta na prática
Se isso fosse ensinado na escola todo mundo conversava em binário Kkkķkkk
Amei seu canal
Melhor canal de tecnologia
manooooo!!!! Tu é foda d++++++++++++. finalmente os vídeos vão voltar😭😭😭😭 sempre tive esperanças desse grande dia chegar
Olá Victor, eu sou leigo na área apesar de gostar do assunto mas vou dar meu pitaco como jogador de 2048.
Já vi alguns comentários neste sentido e acredito que o grande segredo seja identificar a possibilidade de evitar que uma peça apareça em um lugar ruim que vai terminar no "Game Over". A minha sugestão é de que você faça uma mescla entre uma boa pontuação para o jogo organizado e uma punição muito grande para os jogos que terminem em game over.
É claro que para isto a ideia do Monte Carlo é a melhor, fazendo com que o algoritmo simule 3,4,5,ou 10(ou mais!!)jogadas à frente. O Monte Carlo "puro" eu vejo como limitado, pois, no meu entender, o Monte Carlo se aproveita para tentar esvaziar o meio do tabuleiro, dando a possibilidade de todas as peças cruzarem para o outro lado em todas as direções. No modo organizado da Rede Neural, você fica com os movimentos muito mais limitados. A diferença então se dá quando o tabuleiro enche, pois a organização feita pela Rede Neural consegue transformar tudo em uma grande peça enquanto o Monte Carlo vai travar pela região central ficar preenchida.
Já li em outros artigos sobre o assunto que quanto mais peças tiver no tabuleiro, mais o "jogador" força a aparecer a peça onde ele quer. Seria um jogo então onde a fusão das peças ficaria engatilhada mas o jogador retardaria o máximo possível esta fusão. Para nós humanos seria um pouco difícil, mas para a Rede Neural pode ser viável. É algo a se pensar.
Acho que dificilmente você irá ler meu comentário, mas queria muito ver você colocando a IA jogando poker de uma forma lucrativa, sempre tomando as melhores decisões.
Se alguém ler esse comentário e quiser ajudar, curte aqui para ele ler, por favor!
Up
@@mariareginadasilvamafessol1299
Up
dificilmente alcançaria um resultado promissor. Ias em geral são péssimas quando se trata da burrice humana, poderia ser tentado pode ser que dê certo mas acho muito difícil. Pois poker é sobre seres humanos e suas decisões e blefes.
ja existe e venceu varios cara monstros do poker
@@palacystudios9350 ja existe mano.czcams.com/video/u90TbxK7VEA/video.html
Eu queria ver a IA jogar um jogo bullet hell, tipo touhou seria massa!
@universoprogramado, acho que a tendência de ir pra cima é porcausa do gabarito. Não daria pra ter 4 possiveis? O seu gabarito espelhado na horizontal,(maior numero no canto superior direito)na vertical(maior número no canto inferior esquerdo) e com 2 espelhamentos(maior número no canto inferior direito). Assim o algoritimo entende que os 4 são tão bons quantos e consegue escolher para qual vai convergir.
Vc era pra ter no mínimo 1 bilhão de inscritos.
Que trabalho foda!!
Cara, acho que se você programasse a IA para fazer operações no mercado financeiro, bolsa de valores e tal, você já seria mais do que milionário kkkkk
pensei a mesma coisa, usando esse algoritmo poderia testar inúmeras ações e escolher a que mais daria lucro em fração de segundos
Hoje: Vamos escravizar a IA
Amanhã: Vamos escravizar os humanos
Praticamente um artigo científico sobre IA, só que mais legal de ver kk muito parabéns
O Monte Carlo Tree Search consegue sim garantir a solução ótima com número infinito de iterações (tem várias provas formais)
O ponto é que existe dois conceitos de aprendizado: exploration e exploitation. No primeiro, a estratégia é testar a maior quantidade possíveis de ramos da árvore, enquanto o segundo visa aprofundar nos nós promissores.
Quanto mais bem elaborado eles forem, melhor vai ser a observação de estados, conseguindo, na teoria, pegar a distribuição de todas as possíveis combinações do jogo (limitado apenas por tempo e memória ram)
Esse método Monte Carlo é praticamente um cheat ou uma cola na prova. Primeiro vê se dá certo, depois executa. Aí obviamente vai se sair melhor.
Esse jogo é simplesmente incrível (literalmente). Eu fico imaginando o porquê de ninguém da Atari não ter tido essa ideia antes!
Bruto demais Vitão! Monte Carlo é uma das ferramentas mais bem desenvolvidas para gerenciamento de riscos em projetos. É extremamente poderosa! Mandou bem pra caramba na didática!
Apenas algumas dicas, estatística mesmo:
1. Seria legal olhar tbm o desvio padrão além da média. Assim vc poderia optar pela direção que gere a maior média com o menor "risco".
2. Outro teste legal seria a Análise da Variância (Anova). Assim vc conseguiria checar se os resultados das 4 direções não são estatisticamente iguais mesmo com uma maior média e menor desvio.
Abraços!!
Cara, vc e muito inteligente meu querido, sucesso!!
Faz a I. A jogar geometry dash
Up
Faz uma inteligencia artificial que reconhece imagens
Igual a que o google faz com o hcaptcha
Olá, Vitor!
Eu que jogo esse jogo faz bastante tempo, mas não entendo nada de programação, vou dar a minha opinião. Acho que a técnica de Monte Carlo é melhor a curto prazo, mas a longo prazo, a rede neural vai mais longe porque ela tenta manter a ordem. É isso que eu faço quando estou jogando.
Eu jogo a versão 2048 extreme no celular, é um tabuleiro 5x5. Eu estou com 2 elevado a 21, 2 elevado a 19, 2 elevado a 17 e outras números menores. Eu mantenho os números maires na linha da baixo da esquerda para a direita, essa foi a disposição que mais me agradou. Também já joguei com os números organizados de cima para baixo, mas não gostei muito.
Resumindo, a técnica de Monte Carlo não vai conseguir chegar ao fim do jogo porque esse jogo exige uma disposição sequencial dos números no tabuleiro, do maior para o menor. Por exemplo, essa versão do tabuleiro 4x4 possibilita um número máximo 2 elevado a 16, para isso os números (potências de dois) deverão estar obrigatoriamente um ao lado do outro em uma sequência que possibilite ir do menor para o maior varrendo todo o tabuleiro andando em linhas (ou colunas) passando de uma linha (ou coluna) para a adjacente. Por isso a técnica de Monte Carlo não vai conseguir chegar ao fim do jogo, porque ela não organiza o jogo. Qualquer coisa, a gente pode conversar mais.
O feedback da IA é quem deveria dar conta do ótimo local. Toda IA que tem ótimo local deveria sair dele pro si própria. Criar o gabarito apenas selecionou o ótimo local que vc achou que é o melhor, mas na verdade existem muitos gabaritos. Como o tabuleiro tem dimensão 4x4, existem 16 valores possíveis para 16 posições, então existem 16x16=256 gabaritos. O Monte Carlo apenas ajudou a chegar no gabarito que você escolheu, mas o MC não está analisando outros 255 gabaritos. Além disso, se aumentar o tabuleiro pra 20x20, a quantidade de combinações aumentaria tanto que o MC iria rodar tanto que esse vídeo não ficaria pronto tão cedo. Acho que o melhor seria manter a IA como no início e deixar ela se virar com o ótimo local. Talvez modificar a rede neural, ou colocando mais camadas ou mais neurônios, ou usando alguma técnica de Feature Crossing ou de Regularization