7cef8174b3866afe3fec85e14f827c732e4ba9d6069ee35d65ea0fdb0e98

바야흐로 AI가 글을 쓰고 그림을 그리는 특이점의 시대
AI는 포켓몬도 클리어할 수 있을 것인가? 한 유튜버가 실험했다


?si=q1HmKo4oGUK8Hztf



실험에서 AI가 게임과 상호작용하는 방식은 기본적으로 인간과 다를 바 없다. 화면의 이미지를 인식하고, 그런 다음 입력할 버튼을 선택한다.

7cef8174b3866afe3fec85e14f827d739ac15c6b8e1807d6a7eab5912fd9


차이점은, 실험에 사용할 AI에겐 어떠한 배경지식도 없다는 것이다. 포켓몬이란 게임은 어떻게 플레이하는 것이며 목표는 무엇인지, 아무것도 알지 못하는 백지상태이다.

그러나 "십자키를 조작해서 1번도로로 가라."
"꼬렛이 출현하면 몸통박치기를 선택하라."
따위의 직접적인 명령을 입력하지는 않을 것이다.

그 대신, 강화학습(Reinforcement Learning)으로 백지장 AI를 포켓몬 마스터로 만들어나갈 것이다.

강화학습이란?
지도학습, 비지도학습과 함께 머신러닝의 주된 학습 방법이다.

7cef8174b3866afe3fec85e14f8574738a696f1068aeeaaf44f6b71ea4cd

강화학습이 나머지 두 방법과 가장 다른 점은 훈련 데이터가 주어지지 않는다는 것이다. 정답 또한 존재하지 않는다.

강화학습에서 AI는 우선 행동한다. 그 행동에 따라 정해진 보상이 지급되고, AI는 보상을 더 얻기 위한 시도를 거듭하며 전략을 생성한다.

단, 행동을 취하기 위한 행동 목록(방향키, 버튼 등)은 사전에 정의되어야 한다.

강화학습은 행동심리학의 영향을 받은 개념이다. 보상 체계에 따라 포켓몬을 플레이하는 AI를 보며, 어쩌면 우리는 인간의 행동 심리까지 되새길 수 있을지 모른다.

7cef8174b3866afe3fec85e14f8575734d483af8817d22f2dea0bd1a026c



그럼 시작해 보자. 열일 제쳐두고 학습시켜야 할 부분은 이동, 나아가 탐색이다. 맵을 탐색할 줄 모르면 배틀을 박세준급으로 잘해도 의미가 없으니.

앞에서 말했듯,  "A에서 B까지 이동하라" 식의 명령은 내릴 수 없다. 강화학습에는 오로지 보상의 개념만 있다. AI가 맵을 탐색하면 보상을 줌으로써 AI의 탐색을 유도해야 한다.

7cef8174b3866afe3fec85e14f857673d4fd0fac90c3b00dc89201b10180

그렇다면 탐색이라는 행위를 어떻게 정의해야 할까?

7cef8174b3866afe3fec85e14f857773f5b39e0ff02326000fec360b18fc00

AI의 플레이 화면을 모조리 녹화하자.

7cef8174b3866afe3fec85e14f857073c07471f069b2eb3d508ddf180fbb

모든 화면을 녹화하고 실시간으로 서로 비교하는 것이다.

비교를 통해 전에 보지 못한 화면이 인식된다면, AI가 새로운 장소에 도달했다고 볼 수 있을 것이다. 이를 "탐색"이라고 정의하고, 보상을 설정한 뒤 실험해 보자.

7cef8174b3866afe3fec85e14f857173ad979eb70a02e38bdc5cb47b18945c08

몇 번의 실험을 거친 결과, 오박사로부터 스타팅을 받기까지의 과정이 눈에 띄게 빨라졌다.

그런데 문제가 발생했다. 스타팅을 받은 AI가 하라는 모험은 안 하고, 태초마을의 특정 장소에 눌러앉은 것이다. 그 원인은 무엇일까?

7cef8174b3866afe3fec85e14f8572731d0ed9803481c0150f5f7149f75906ec

문제의 장소. 움직이는 NPC가 둘 있고, 흔들리는 꽃밭 스프라이트가 있고, 수면에는 물결이 인다.

7cef8174b3866afe3fec85e14f857373a6bd243088ca357c96083f62834f08

바로 이것들이 원인이었다. 움직이는 NPC와 플레이어 캐릭터, 흔들리는 꽃밭, 물결, 이것들이 시시각각 다르게 조합되는 것만으로도 전에 보지 못한 화면이 인식됐고, 탐색의 보상이 지급됐던 것이다.

그렇기에 AI는 귀찮게 나가서 모험을 하는 대신, 효율적으로 태초마을에 눌러앉는 편을 선택했다.

이 문제에 대한 조정은 간단했다.

7cef8174b3866afe3fec85e14f857c7388ee8337423d6419e2e524eb176c60

"전에 보지 못한 화면"의 기준을 빡세게 높이는 것. 이제 화면 상의 사소한 변화로는 보상을 획득하지 못한다. 보상 체계를 수정했으니 처음부터 다시 실험해 보자.

7cef8174b3866afe3fec85e14f857d735047ce3cf31b01c07f8f9ccce117

AI는 태초마을을 나섰고, 8차 실험에 이르러 상록시티에 도착했다.
그러나 또 다른 문제가 관찰되는데...

7cef8174b3866afe3fec85e14f847473b5321d40bb918aa0b45ead721c17

AI가 영 배틀에 소극적인 것이다. 야생 포켓몬을 만나면 무조건 도망만 친다. 이래서야 탐색이 가능해져도 꼭 이겨야 하는 NPC들을 이길 수 없다.

이 역시 보상 체계의 문제로 볼 수 있다. 아까 전의 수정으로 인해, 화면상의 웬만한 변화로는 탐색 보상을 획득할 수 없게 되었다.

7cef8174b3866afe3fec85e14f8475732310c8bf0a5540dec13ed744799e65

즉, 화면상의 변화가 적은 배틀은 아무런 보상을 획득할 수 없는 영양가 없는 행위가 돼버린 것이고, AI는 가장 효율적인 선택지인 "도망치다"만 골랐던 것이다.

문제해결을 위해 새로운 보상을 만들자.

7cef8174b3866afe3fec85e14f847673f548fedb39e94a060dfce6c91e2a

바로 지닌 포켓몬 레벨 총합이다.

이제 배틀은 더 이상 영양가 없는 행위가 아니다. AI는 배틀로 스타팅을 키울뿐만 아니라, 야생 포켓몬을 잡아 육성시키기 시작한다.

7cef8174b3866afe3fec85e14f84777307a4bcbaabb2540988231af692c8f7


물론 모든 것이 일사천리는 아니었다. AI는 종종 진화 화면에서 B를 눌러, 향후 진행에 유용할 진화를 캔슬시키는 찐빠를 저질렀다.

7cef8174b3866afe3fec85e14f8470730afe070a94e43ef2c76d0b424b68


또한 1번 기술의 PP가 떨어지면 어찌할 줄 몰라 한동안 수렁에 빠지기도 했다.

7cef8174b3866afe3fec85e14f847173db79e29474995af42135a8de7603eb


그러나 AI는 진화가 궁극적으로 도움이 된다는 것을 인지하고, 어느 시점에서부턴가 B버튼을 누르지 않게 되었다.

7cef8174b3866afe3fec85e14f8472738e9019803f79e841219c109a0bef2e

성공적으로 학습이 이루어진 것이다.

7cef8174b3866afe3fec85e14f8473732e197e031719bed6f742516d2551a2

또한 45차 실험에 이르러, 1번 기술의 PP가 0이 된 상황에 한해 다른 기술을 선택할 수 있게 되었다.

이는 조금 뒤에 벌어질 중대한 사건의 방아쇠가 된다...

7cef8174b3866afe3fec85e14f847c731359a64fe97ead11bc2d6b026ce4

어느덧 60차 실험에 이르러 AI는 상록숲에 진입했다.

지금까지의 학습을 바탕으로 상록숲을 탐색한 결과, AI는 무사히 NPC 배틀에서 이긴 뒤 출구를 찾아냈고

7cef8174b3866afe3fec85e14f847d737af3ddf6213d3f23a017215788b1cf5f

7cef8174b3866afe3fec85e14f8774733be5502b6ddc228418c83d0bb966

65차 실험에서 회색시티에 도착했다.

7cef8174b3866afe3fec85e14f8775734b2327423fef7b069da65cc0455a

그러나 회색시티 체육관 관장 웅이는 강했다. 1번 기술 몸통박치기와 바람일으키기 난사하는 AI에게, 노말 타입을 반감하는 꼬마돌과 롱스톤은 너무도 거대한 벽이었다.

깨알 상식) 바람일으키기는 1세대에서 노말 타입 기술이었다.

또한 AI는 이상하리만큼 포켓몬 센터에 접근하지 않아서, 웅이에게 털린 뒤 태초마을에서부터 다시 시작하기 일쑤였다. 이는 실험의 효율을 저하시켰다.

방법을 생각해 보자. 지금까지 보상으로 AI를 이끌었듯, 감점으로 패배를 방지할 수는 없을까?

7cef8174b3866afe3fec85e14f877673b93343b5d204fce33120a99b8bad

7cef8174b3866afe3fec85e14f877773acf53e98de983aede64a08f2a594

실패다. 감점이 너무나 무서웠던 AI는 선 채로 죽기를 택했다. 패배 화면이 출력되면, 이어지는 감점을 피하기 위해 그 즉시 조작을 멈추는 것이었다.

다른 방법을 고안해야 했다.

그리하여 이제까지의 학습을 돌보던 중, 이상한 사건이 일어났던 것이 눈에 띄었다.

7cef8174b3866afe3fec85e14f877073323776cd0c88c2354589ea3f9113

-12점이라는 감점... +만 있고 -는 없는 보상 체계에서 무슨 재앙이 벌어졌길래 이런 점수가 나올 수 있었을까? 블랙박스를 뜯어보자.

7cef8174b3866afe3fec85e14f877173838b024e552e05da94af318592064e

어쩌다 포켓몬 센터에 들어갔던 감점의 주인공

7cef8174b3866afe3fec85e14f87727356e858d76af836b0e6852c67276161

PC 주변을 서성이다가

7cef8174b3866afe3fec85e14f877373e05aefd9704515ddf730c9c2d3294c

구구(Lv13)을 맡겼다.

그랬다. 지금의 보상 체계는 지닌 포켓몬의 레벨 총합.

구구(Lv13)가 지닌 포켓몬에서 박스로 이동하자, AI는 그 즉시 13 잃었다. (탐색 보상으로 +1되어 결과적으로 -12)

감점의 충격은 이후로도 AI가 포켓몬 센터 자체를 기피하게 만들었다. PTSD가 돼버린 것이다.

7cef8174b3866afe3fec85e14f877c7388704814312df49834825ce32f0984

보상 체계를 지닌 포켓몬의 레벨 총합에서 누적 레벨로 변경하자, AI는 다시금 포켓몬 센터에 발을 들이기 시작했다.

7cef8174b3866afe3fec85e14f877d7396b92cafad58ad183563a9d3223dbd69


그러나 웅이와의 혈전은 끝나지 않았다.

7cef8174b3866afe3fec85e14f867473492f3b7729155507cffced567fbd

이전까지 AI는 1번 기술, 몸통박치기와 바람일으키기만으로 쉽게 승리했다. 그것이 가장 효율적인 방법이었다. 그러나 노말 기술을 반감하는 바위 타입은 1번 기술로 뚫을 수 없었다.

과거에 학습으로 만들어진 고정관념이 발목을 붙잡은 셈이다.

실험은 어느덧 100차에 다다랐다.

7cef8174b3866afe3fec85e14f867573e7d9a0fb745d1bb70c2e54370d18

지닌 포켓몬은 딸피의 꼬부기 한 마리. 보통이라면 절대 이길 수 없는 상황

7cef8174b3866afe3fec85e14f867673f4bd7473ab197c537a62f84c0782

그런데 1번 기술, 몸통박치기의 PP가 0이었고

7cef8174b3866afe3fec85e14f867773b3c3094b9be036787777492f1293cb

AI는 대신 거품을 선택하고, 바위/땅 타입 꼬마돌과 롱스톤을 4배 상성으로 잡아냈다.

마침 지닌 포켓몬이 꼬부기뿐이었고,
마침 몸통박치기의 PP가 0인 상황에서,
앞서 1번 기술의 PP가 0인 상황에서의 대처법을 학습했기에 이뤄낸 쾌거.

7cef8174b3866afe3fec85e14f867073513a05f08b27278d7f456f3d57d969

이때의 경험이어져, 210차 실험에서는 거품을 몸통박치기 대신 기본 기술로 사용하기까지 한다. 체육관 상성을 강화 학습으로 습득한 것이다.

7cef8174b3866afe3fec85e14f867173e68bd4c6da2fb5831502f67c0c50e8

다음 목적지는 블루시티로 이어지는 달맞이산

7cef8174b3866afe3fec85e14f867273ff9dfb83ac5cc79060177c74ed59

그곳 포켓몬 센터에는 500원에 잉어킹을 파는 아저씨가 있다.
쓸모없는 포켓몬의 대명사 잉어킹...

7cef8174b3866afe3fec85e14f86737367bd3fa7ca0406a0e20bfd9192f0

그런데 의외로 AI는 매 실험마다 잉어킹을 샀다. 잉어킹(Lv5)을 사는 것은 5레벨만큼의 보상을 얻을 수 있는 아주 편리한 방법이기 때문이다.

사람들이 낮은 가격으로 높은 만족감을 얻을 수 있는 정크 푸드를 선호하는 것과도 비슷하다.

7cef8174b3866afe3fec85e14f867c738373d195b16c0120fea12c8dc785

정크푸드와 정크 포켓몬

7cef8174b3866afe3fec85e14f867d73689f7cab549849439646d5fbc648

야생 포켓몬과의 전투에서 절대 도망치지 않던 AI가, 잉어킹에 한해서는 무조건 도망을 시전하는 새로운 학습의 성과도 관찰되었다.


그러나 달맞이산은 험난했다.

7cef8174b3866afe3fec85e14f8974735545c7d7beaca1e5a5f9f1858326be

7cef8174b3866afe3fec85e14f8975734ec229469f0bdc0041ad96852df0

꼬부기가 거북왕이 되도록 돌아다녀도 돌파될 기미는 보이지 않았다. 실험자는 달맞이산의 단조로운 풍경이 탐색 보상 기준을 만족하지 못한 것을 원인으로 추정했다.

실험자는 여기서 AI의 도전을 일단락하고 지금까지의 학습을 검토해 보기로 한다...



뒷이야기는 기술적인 분석이 주를 이룸. 그만큼 어려운 내용이라 가져올지 모르겠는데... 그중 가장 흥미로웠던 내용은 AI가 난수를 조작해서 원하는 결과를 이끌어내는, 고전게임에서 스피드러너들이 사용하는 테크닉을 깨우쳤다는 것임.

궁금하면 영상으로 직접 보자. 긴 글 읽어줘서 감사

dccon.php?no=62b5df2be09d3ca567b1c5bc12d46b394aa3b1058c6e4d0ca41648b65de3236ecf62ce1d5d644b5499cb86509c6e1c0ba47ccfc0b497b5d8c9ec24c44b60eab744ba9a3445f7e8f3e8dbd3