중갤에서 인공지능과 관련된 재밌는 글을 봤음.
괴도애기, 게임으로 인공지능을 훈련시켰을때 의도되지 않은 결과들
http://gall.dcinside.com/mgallery/board/view/?id=aoegame&no=5608362&exception_mode=recommend&page=1
위 글의 출처는 바로 여기인데, 꽤 많은 리스트 중에 재밌는것 몇개만 뽑아온거 같음
근데 중겔에서 뽑은것 말고도 내가보기에 흥미로운게 많은거 같아서 여기다 정리를 하기로 했음.
본인은 아직 아마추어라 틀린정보가 있을수도있음... 혹시 찾으면 정정해주길 바람.
비행기 착륙
비행기 착륙 알고리즘이 물리엔진 상에서 엄청 큰 힘을 발생시켜서 오버플로 에러를 일으키도록 진화함. 그 결과 측정값이 0으로 평가되서 완벽한 점수를 받음.
자전거
에이전트가 자전거를 조종해서 넘어뜨리지 않고 목표지점을 향해 나아가면 보상을 주도록 했음(하지만 목표지점에서 멀어지는걸 처벌하지는 않았음). 그러자 에이전트는 목표지점 주위에서 물리적으로 안정된 원을 그리며 영원히 빙긍빙글 돔.
블럭 옮기기
로봇팔이 테이블 위의 블럭을 목표지점으로 옮기도록 학습을 시켰는데, 아얘 테이블자체를 옮김
보트 경주
보트 경주 게임이 있는데, 레이스를 빨리 끝낼수록, 중간중간 리스폰되는 아이템을 먹을수록 점수를 얻을 수 있었음. 에이전트를 학습시키자 경주를 끝낼생각을 하지 않고 계속 리스폰되는 아이템을 빙글빙글 원을 그리면서 먹기만함
천장에 붙이기
어떤 생명체가 천장에 붙어있게 만들기 위해 실행하는 동안 생명체의 평균 높이를 리워드로 주고 유전 알고리즘으로 학습시켰음. 알고리즘은 천장에 붙는 대신 물리엔진의 버그를 찾아내서 천장 밖으로 빠져나감.
스테가노그래피(Steganography)
이미지의 장르를 변환시키는(초상화<->카툰렌더링 처럼) CycleGAN 모델이 있었는데, Cycle GAN은 두개의 뉴럴넷 A와 B가 있고, 둘이 경쟁적으로 뉴럴넷 A는 장르 X를 장르 Y로, 뉴럴넷 B는 장르 Y를 장르 X로 변형시키는 방식으로 학습함. 여기서 리워드는 뉴럴넷 A가 X를 Y로 변환하고, 뉴럴넷 B가 다시 Y를 X'로 변환했을 때, X와 X'이 얼마나 정확하게 재구성됬는지에 대해 리워드를 줬음. 근데 모델이 장르를 변환시키기 위해 이미지의 의미(시멘틱)을 학습하는 대신, 이미지를 변환시킬 때 평가에 영향을 거의 주지않는 정보를 끼워넣어서(steganographically) 서로한테 전달했음(스누라이프에서 게시글 배경에 투명한 문자를 넣어서 퍼가면 출처를 알수있게 조작했었잖아. 그거랑 비슷함)
데이타 순서 패턴
뉴럴넷에 식용 버섯과 독버섯 이미지를 교대로 보여주면서 둘을 구분하도록 학습시켰는데, 버섯 이미지는 학습안하고 교대로 보여주는 패턴을 학습함
Eurisko - 이름써넣기
Eurisko라는 유전 알고리즘 해상전투 게임 AI가 있는데, 휴리스틱을 자연선택시켜서 점점 진화시킴. 근데 휴리스틱이 게임을 어떻게 이길지를 배우지 않고, 휴리스틱 평가방식의 맹점을 이용해서 학습하는 경우가 생김(설명하기 좀 복잡함.. 굳이 설명하자면.. 휴리스틱 자연선택 방식이 어떻냐면 일단 여러 게임 컨셉들(ex 무기 A는 가벼운 무기다, 무기 A 공격력은 X다)이 있으면 휴리스틱은 그걸 어떻게 조합할지 결정하고(ex 장소 P에 가벼운 무기를 둔다 등등), 그래서 휴리스틱끼리 붙여서 승리한 휴리스틱이 썼던 컨셉들(ex 가벼운 무기들)의 가치점수를 높임. 그래서 휴리스틱이 조합했던 컨셉들의 가치의 총 합이 높으면 대체로 괜찮은 휴리스틱인거임. 근데 휴리스틱이 어떤 컨셉을 조합했다는걸 표시하기위해 컨셉의 MyCreator 란에 자기 이름(휴리스틱마다 이름이 있음)을 써넣는데, 어떤 야비한 휴리스틱이 컨셉들을 어떻게 조합할지를 배우지 않고, 그냥 가장 높은 가치를 가지는 컨셉에 자기 이름을 써넣기만 하는 방법을 배운거임)
Eurisko - 함대
Eurisko 해전 게임 AI가 대회에서 사람을 상대로 2년연속 이겼는데, 게임 규칙의 맹점을 이용해서 이겨왔음(예를들면 제한된 자원을 가지고 배를 구성해서 만들어야되는데, AI는 무기만 달려있고 움직이지도 않고 방어장갑도 없는(그래서 엄청 싼) 조그만 배를 엄청 많이 만들어서 편법적으로 이김. 17년도에 세종대 스타AI대회에서 AI가 보여준 수십마리 뮤탈컨트롤 생각하면 될듯)
생물체진화 - 파닥거리기
가상생물 진화 프로그램에서 어떤 가상생물이 충돌판별함수의 버그를 이용해서 자기 몸 부위들을 파닥거리면서 부딪혀서 여분의 에너지를 얻음
생물체진화 - 넘어지기
가상생물이 빠른 속도로 움직이는 방법을 배우도록 진화시켰는데, 아예 움직이지 않고 엄청 길게 자라난 뒤에 그냥 넘어지는 방식으로 최고속도를 냈음
생물체진화 - 바닥 충돌
가상생물이 물리 엔진 충돌감지를 피해서 타임스텝 중간에 바닥을 통과하려고함. 그 결과 바닥에서 반발력을 받아서 여분의 에너지를 얻음
생물체진화 - 장대높이뛰기
가상생물을 높이 점프시키기 위해 (가장 땅에 가까이 있던 부위의 최대 높이, 사람으로 치면 점프했을 때 발의 높이)로 리워드를 줬음. 그러자 길고 얇은 장대모양 다리를 만들어서 빙글 돌아버림
생물체진화 - 찡긋거리기
가상생물이 자꾸 몸을 찡긋거려서 물리엔진의 시뮬레이션 에러를 누적시켜서 비현실적인 속도로 움직임
붙잡기
로봇팔을 집게부위를 쓰지 않고 상자를 움직이게 학습하려고 했음. 근데 로봇팔이 교묘하게 박스를 쳐서 집게를 강제로 열리게 만든 뒤 박스를 붙잡음.
흠좀무..
인공지능한테 인류를 행복하게 해라고 명령을 내리면
타노스가 되버리는 시나리오 있잖아.. 그렇게 허무맹랑한 시나리오는 아닌가봐..
그거랑 비슷한듯 도전골든벨 방송 남은시간으로 골든벨 치나 못치나 미리 예측 - dc App
ㅇㅇ그거랑 거의 똑같은게 리스트에 있더라구. 이미지를 분류하는데 두개의 데이터베이스에서 각각 종류의 이미지를 가져옴. 근데 두 데이타베이스의 반응 시간이 달랐단말야. 그래서 AI가 이미지를 직접 분류하는 대신에 타이밍 루프를 만들어서 데이타베이스에서 이미지를 가져오는 시간을 측정해서 각 이미지가 어떤 데이타베이스에서 왔는지를 알아내버림.
명쾌한 설명입니다
개추 ㅋㅋㅋ
재밌당 ㄷㄷ 남은 ㅇ리스트도 올려주라!! 땡큐
지금 결론만 보면 신기한데 실제 개발하다가 저러면 혈압일듯
응 허무맹랑한 이야기야. 단순 미션하고 추상적 명령 인지 및 미션 설계랑 차이를 모르네
ㅋㅋㅋㅋㅋㅋㅋ재밌네
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 개추
타노스 ㅋ
까다롭네 ..변수가 너무 많아서.. ai가 인류를 대체하는 시대가 생각보다 빨리 오지는 않을 것 같다. 나는 머신러닝과 엄청난 데이터들로 인해 무지막지하게 빠르게 발전 할 거라 생각했는데....
역시 경쟁에서 이기려면 걸리지 않고 룰을 파괴하는 방법이 가장 효과적이구나
버그 찾을 때 좋겠네
그러게 해킹할때도 좋겠다
이제는 아주 예전이 된 2014년경에 테트리스 ai한테 시도한 거 생각나네. 어차피 죽는다는 거 학습하고 무한 pause로 멈춘거.
아 그거도 리스트에 있는데 쫌만 기달 번역하는중
너ㅏ모 재밌다.. 마지막 붙잡기 정말 힙하구나
정말 갈길이 멀고도 험하구나...