바야흐로 AI가 글을 쓰고 그림을 그리는 특이점의 시대
AI는 포켓몬도 클리어할 수 있을 것인가? 한 유튜버가 실험했다
?si=q1HmKo4oGUK8Hztf
실험에서 AI가 게임과 상호작용하는 방식은 기본적으로 인간과 다를 바 없다. 화면의 이미지를 인식하고, 그런 다음 입력할 버튼을 선택한다.
차이점은, 실험에 사용할 AI에겐 어떠한 배경지식도 없다는 것이다. 포켓몬이란 게임은 어떻게 플레이하는 것이며 목표는 무엇인지, 아무것도 알지 못하는 백지상태이다.
그러나 "십자키를 조작해서 1번도로로 가라."
"꼬렛이 출현하면 몸통박치기를 선택하라."
따위의 직접적인 명령을 입력하지는 않을 것이다.
그 대신, 강화학습(Reinforcement Learning)으로 백지장 AI를 포켓몬 마스터로 만들어나갈 것이다.
강화학습이란?
지도학습, 비지도학습과 함께 머신러닝의 주된 학습 방법이다.
강화학습이 나머지 두 방법과 가장 다른 점은 훈련 데이터가 주어지지 않는다는 것이다. 정답 또한 존재하지 않는다.
강화학습에서 AI는 우선 행동한다. 그 행동에 따라 정해진 보상이 지급되고, AI는 보상을 더 얻기 위한 시도를 거듭하며 전략을 생성한다.
단, 행동을 취하기 위한 행동 목록(방향키, 버튼 등)은 사전에 정의되어야 한다.
강화학습은 행동심리학의 영향을 받은 개념이다. 보상 체계에 따라 포켓몬을 플레이하는 AI를 보며, 어쩌면 우리는 인간의 행동 심리까지 되새길 수 있을지 모른다.
그럼 시작해 보자. 열일 제쳐두고 학습시켜야 할 부분은 이동, 나아가 탐색이다. 맵을 탐색할 줄 모르면 배틀을 박세준급으로 잘해도 의미가 없으니.
앞에서 말했듯, "A에서 B까지 이동하라" 식의 명령은 내릴 수 없다. 강화학습에는 오로지 보상의 개념만 있다. AI가 맵을 탐색하면 보상을 줌으로써 AI의 탐색을 유도해야 한다.
그렇다면 탐색이라는 행위를 어떻게 정의해야 할까?
AI의 플레이 화면을 모조리 녹화하자.
모든 화면을 녹화하고 실시간으로 서로 비교하는 것이다.
비교를 통해 전에 보지 못한 화면이 인식된다면, AI가 새로운 장소에 도달했다고 볼 수 있을 것이다. 이를 "탐색"이라고 정의하고, 보상을 설정한 뒤 실험해 보자.
몇 번의 실험을 거친 결과, 오박사로부터 스타팅을 받기까지의 과정이 눈에 띄게 빨라졌다.
그런데 문제가 발생했다. 스타팅을 받은 AI가 하라는 모험은 안 하고, 태초마을의 특정 장소에 눌러앉은 것이다. 그 원인은 무엇일까?
문제의 장소. 움직이는 NPC가 둘 있고, 흔들리는 꽃밭 스프라이트가 있고, 수면에는 물결이 인다.
바로 이것들이 원인이었다. 움직이는 NPC와 플레이어 캐릭터, 흔들리는 꽃밭, 물결, 이것들이 시시각각 다르게 조합되는 것만으로도 전에 보지 못한 화면이 인식됐고, 탐색의 보상이 지급됐던 것이다.
그렇기에 AI는 귀찮게 나가서 모험을 하는 대신, 효율적으로 태초마을에 눌러앉는 편을 선택했다.
이 문제에 대한 조정은 간단했다.
"전에 보지 못한 화면"의 기준을 빡세게 높이는 것. 이제 화면 상의 사소한 변화로는 보상을 획득하지 못한다. 보상 체계를 수정했으니 처음부터 다시 실험해 보자.
AI는 태초마을을 나섰고, 8차 실험에 이르러 상록시티에 도착했다.
그러나 또 다른 문제가 관찰되는데...
AI가 영 배틀에 소극적인 것이다. 야생 포켓몬을 만나면 무조건 도망만 친다. 이래서야 탐색이 가능해져도 꼭 이겨야 하는 NPC들을 이길 수 없다.
이 역시 보상 체계의 문제로 볼 수 있다. 아까 전의 수정으로 인해, 화면상의 웬만한 변화로는 탐색 보상을 획득할 수 없게 되었다.
즉, 화면상의 변화가 적은 배틀은 아무런 보상을 획득할 수 없는 영양가 없는 행위가 돼버린 것이고, AI는 가장 효율적인 선택지인 "도망치다"만 골랐던 것이다.
문제해결을 위해 새로운 보상을 만들자.
바로 지닌 포켓몬의 레벨 총합이다.
이제 배틀은 더 이상 영양가 없는 행위가 아니다. AI는 배틀로 스타팅을 키울뿐만 아니라, 야생 포켓몬을 잡아 육성시키기 시작한다.
물론 모든 것이 일사천리는 아니었다. AI는 종종 진화 화면에서 B를 눌러, 향후 진행에 유용할 진화를 캔슬시키는 찐빠를 저질렀다.
또한 1번 기술의 PP가 떨어지면 어찌할 줄 몰라 한동안 수렁에 빠지기도 했다.
그러나 AI는 진화가 궁극적으로 도움이 된다는 것을 인지하고, 어느 시점에서부턴가 B버튼을 누르지 않게 되었다.
성공적으로 학습이 이루어진 것이다.
또한 45차 실험에 이르러, 1번 기술의 PP가 0이 된 상황에 한해서 다른 기술을 선택할 수 있게 되었다.
이는 조금 뒤에 벌어질 중대한 사건의 방아쇠가 된다...
어느덧 60차 실험에 이르러 AI는 상록숲에 진입했다.
지금까지의 학습을 바탕으로 상록숲을 탐색한 결과, AI는 무사히 NPC 배틀에서 이긴 뒤 출구를 찾아냈고
65차 실험에서 회색시티에 도착했다.
그러나 회색시티 체육관 관장 웅이는 강했다. 1번 기술 몸통박치기와 바람일으키기만 난사하는 AI에게, 노말 타입을 반감하는 꼬마돌과 롱스톤은 너무도 거대한 벽이었다.
깨알 상식) 바람일으키기는 1세대에서 노말 타입 기술이었다.
또한 AI는 이상하리만큼 포켓몬 센터에 접근하지 않아서, 웅이에게 털린 뒤 태초마을에서부터 다시 시작하기 일쑤였다. 이는 실험의 효율을 저하시켰다.
방법을 생각해 보자. 지금까지 보상으로 AI를 이끌었듯, 감점으로 패배를 방지할 수는 없을까?
실패다. 감점이 너무나 무서웠던 AI는 선 채로 죽기를 택했다. 패배 화면이 출력되면, 이어지는 감점을 피하기 위해 그 즉시 조작을 멈추는 것이었다.
다른 방법을 고안해야 했다.
그리하여 이제까지의 학습을 돌아보던 중, 이상한 사건이 일어났던 것이 눈에 띄었다.
-12점이라는 감점... +만 있고 -는 없는 보상 체계에서 무슨 재앙이 벌어졌길래 이런 점수가 나올 수 있었을까? 블랙박스를 뜯어보자.
어쩌다 포켓몬 센터에 들어갔던 감점의 주인공
PC 주변을 서성이다가
구구(Lv13)을 맡겼다.
그랬다. 지금의 보상 체계는 지닌 포켓몬의 레벨 총합.
구구(Lv13)가 지닌 포켓몬에서 박스로 이동하자, AI는 그 즉시 13점을 잃었다. (탐색 보상으로 +1되어 결과적으로 -12)
감점의 충격은 이후로도 AI가 포켓몬 센터 자체를 기피하게 만들었다. PTSD가 생긴 것이다.
보상 체계를 지닌 포켓몬의 레벨 총합에서 누적 레벨로 변경하자, AI는 다시금 포켓몬 센터에 발을 들이기 시작했다.
그러나 웅이와의 혈전은 끝나지 않았다.
이전까지 AI는 1번 기술, 몸통박치기와 바람일으키기만으로 쉽게 승리했다. 그것이 가장 효율적인 방법이었다. 그러나 노말 기술을 반감하는 바위 타입은 1번 기술로 뚫을 수 없었다.
과거에 학습으로 만들어진 고정관념이 발목을 붙잡은 셈이다.
실험은 어느덧 100차에 다다랐다.
지닌 포켓몬은 딸피의 꼬부기 한 마리. 보통이라면 절대 이길 수 없는 상황
그런데 1번 기술, 몸통박치기의 PP가 0이었다.
AI는 몸통박치기 대신 거품을 선택했고, 바위/땅 타입 꼬마돌과 롱스톤을 4배 상성으로 잡아냈다.
마침 지닌 포켓몬이 꼬부기뿐이었고,
마침 몸통박치기의 PP가 0인 상황에서,
앞서 1번 기술의 PP가 0인 상황에서의 대처법을 학습했기에 이뤄낸 쾌거.
이때의 경험이 이어져, 210차 실험에서는 거품을 몸통박치기 대신 기본 기술로 사용하기까지 한다. 체육관의 상성을 강화 학습으로 습득한 것이다.
다음 목적지는 블루시티로 이어지는 달맞이산
그곳 포켓몬 센터에는 500원에 잉어킹을 파는 아저씨가 있다.
쓸모없는 포켓몬의 대명사 잉어킹...
그런데 의외로 AI는 매 실험마다 잉어킹을 샀다. 잉어킹(Lv5)을 사는 것은 5레벨만큼의 보상을 얻을 수 있는 아주 편리한 방법이기 때문이다.
사람들이 낮은 가격으로 높은 만족감을 얻을 수 있는 정크 푸드를 선호하는 것과도 비슷하다.
정크푸드와 정크 포켓몬
야생 포켓몬과의 전투에서 절대 도망치지 않던 AI가, 잉어킹에 한해서는 무조건 도망을 시전하는 새로운 학습의 성과도 관찰되었다.
그러나 달맞이산은 험난했다.
꼬부기가 거북왕이 되도록 돌아다녀도 돌파될 기미는 보이지 않았다. 실험자는 달맞이산의 단조로운 풍경이 탐색 보상 기준을 만족하지 못한 것을 원인으로 추정했다.
실험자는 여기서 AI의 도전을 일단락하고 지금까지의 학습을 검토해 보기로 한다...
뒷이야기는 기술적인 분석이 주를 이룸. 그만큼 어려운 내용이라 가져올지 모르겠는데... 그중 가장 흥미로웠던 내용은 AI가 난수를 조작해서 원하는 결과를 이끌어내는, 고전게임에서 스피드러너들이 사용하는 테크닉을 깨우쳤다는 것임.
궁금하면 영상으로 직접 보자. 긴 글 읽어줘서 감사
정책망 최적화 알고리즘 뭐썼는지만 적고가
다음에 영상 한번 더볼게요
보고왔는데 ppo인가봐 얘도 참 스테디셀러야
ai도 날먹 좋아하는건 사람이랑 똑같구나
ㅈㄴ재밌네
맡겨서 렙 줄어드는 거 ㅋㅋ 재밌다 이런 거
이런거 ㄹㅇ 개재밌음
뒷이야기도 글로 써와 너 지금 영어 못하는 새끼들 무시하는거냐?
역시 아직 AI는 멀엇구맘
정말 재밌다 ㅋㅋㅋ - dc App
감점으로 PTSD 오는 거 존나 웃기네 ㅋㅋㅋ
12점 감점이라는 꿈도 못꿔본 고통을 겪어 충격과 혼란에 빠진 ai의 몸부림과 표정을 상상하니 좀 껄리네...
존나 재밌으니깐 다음영상 나오면 빨 리 연 재 해 줘
재밌네ㅋㅋㅋ 나중에 영상나오면 또 연재해줘
오
더갖고와!!
지도에 간곳 늘어나는거나 뱃지 이런것도 조건을 추가해야하나 ㅋㅋㅋ
ptsd 생기는 거 신기하네
이거 ㅈㄴ 재밌게 봤는데 - dc App
감점될거 무서워서 패배화면에서 안넘어가는게 존나웃기네ㅋㅋㅋㅋㅋ - dc App
실험의 1차 2차는 무슨 기준으로 나누는 거임?
읽기 편하라고 n차 실험이라 적었는데, Agent Version: n의 Agent가 강화학습의 주체를 말함. 그니까 AI 버전 1, 버전 2, 그렇게 이해하면 될듯. 이전에 학습한 내용을 적용해서 강화한 것으로 버전을 구분한거지.
꼬인 보상 체계 때문에 뻘짓하는 것도 재밌지만 감점 때문에 포켓몬 센터 기피하거나 배틀 화면 안 넘기는 게 재밌네 ㅋㅋ
유튜브에서 ai끼리 살아가는 마을 영상도 재미있었는데 이런 것도 재밌네 실험이 완벽해지고 인간의 영역을 넘어서는 날엔 웃지 못하겠지만ㅋㅋ 이런 발전이 게임에 어떻게 적용될지 흥미로움
재밌당
2편도써줘
재밌다 2편도 갖고와주셈
와 이게대체 뭐노 ㅋㅋㅋ
ai로 별게 다 되네 전에 ai가 마크 하는것도 되게 신기했는데
재밌다 ai 왜케 바부바부임
흥미롭다
와
재밌네
2편...
트켓몬 보는 느낌이노
개재밌네 와 ㅋㅋ
진화를 학습한게 제일 신기하네
잼네 - dc App
알버트라고 별명 지어준 ai한테 두 발로 서서 장애물 건너게하던 영상도 재밌었는데 이런것도 시행착오 같은거 보는 맛이 있네
이거 영상보니까 2편 만들기가 힘드네… 애초에 이후 까지 쭉 깬 내용이 없는 듯? - dc App
이거 돌린다고 서버비 천달러들었대
ptsdㅋㅋㅋㅋㅋㅋㅋ
ai게이 감점무서워서 확인안누르는거 보니 회피형 성격이노ㅋㅋㅋ
와 보상 위해서 태초마을에 눌러앉는거랑 이런거 존나 신기하다 보더콜리 같은 애들이 꾀 부리는거 보는 느낌임 기술 발전이란게 진짜 신기하네
1. 포켓몬센터에 간다 5. 다신 가지 않겠다고 다짐한다 - dc App
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
안녕하세요 현직 고등학교 교사입니다. 강화학습에 대한 수업때 예시자료로 사용해도 될까요?
마음껏 쓰세요! 학습에 참고가 된다니 영광이네요.
감사합니다!
와 지리네