저는 건물에있는 우주 사수 게임에서 적들을 공격하기 위해 신경망을 사용하는 것을 고려하고 있습니다. 네트워크에 대한 확실한 결과물 세트가 없을 때 신경 네트워크를 어떻게 훈련합니까?신경 네트워크를 사용하여 "소프트"솔루션을 해결하는 방법은 무엇입니까?
답변
나는 지금 신경 네트워크를 연구 중이며 잘 정의 된 입력 및 출력 인코딩이 없다면 꽤 쓸모없는 것처럼 보입니다. 전혀 복잡하지 않습니다 (http://en.wikipedia.org/wiki/VC_dimension 참조). 그렇기 때문에 뉴런 네트워크 연구는 20-30 년 전 초기 과장된 이래로 응용 프로그램이 거의 없었기 때문에 의미/상태 기반 인공 지능이 실제 응용 프로그램에서 성공했기 때문에 모든 사람의 관심을 이끌어 냈습니다.
- 그래서 시작하는 좋은 장소는 게임의 상태를 신경망의 입력으로 나타내는 방법을 알아내는 것일 수 있습니다.
- 다음으로 어떤 종류의 출력이 게임의 동작에 해당하는지 파악해야합니다.
- 사용할 신경망의 구조에 대해 생각해보십시오. 신경 네트워크에서 흥미로운 복잡한 동작을 얻으려면 네트워크가 거의 재발해야합니다. '메모리'가 있기 때문에 반복적 인 네트워크가 필요합니다. 그러나 그 이상의 경우에는 더 이상 할 일이 없습니다. 그러나 복잡한 구조를 가진 반복적 인 네트워크는 실제로 행동하기 위해 훈련하기가 어렵습니다.
- 신경망이 성공한 분야는 분류 (이미지, 오디오, 문법 등) 및 통계적 예측의 제한된 성공 인 경향이 있습니다 (어떤 단어가이 단어 뒤에 올 것으로 예상됩니까? 내일 주가가 어떻게됩니까?)
간단히 말해서 핵심 적 AI가 아닌 게임의 작은 부분에 신경망을 사용하는 것이 좋습니다.
저는 건강, 현재 속도, 입력에 대한 방향 및 거리와 같은 기본 입력을 사용할 수 있고 촬영 방향, 현재 촬영 값 및 추력 벡터 또는 회전 속도를 가속/감속 값으로 가질 수 있다고 생각합니다. 또한 "반복적 인"신경 네트워크에 대한 더 많은 정보에 대한 링크를 제공 할 수 있습니까? 나는 그들에게 익숙하지 않다. – RCIX
반복적 인 네트워크는 출력이 입력으로 뉴런에 피드백된다는 것을 의미합니다. 다른 행동을하는 신경망의 종류가 많이 있습니다. 몇 가지 간단한 것들은 elman 네트워크입니다 http://wiki.tcl.tk/15206 및 hopfield 네트워크 http://en.wikipedia.org/wiki/Hopfield_network 어떻게 작동하는지, 그래서 대학 강의 노트와 Google 학자를 통해 검색하는 것이 좋습니다. 다시 말하자면,이 연구의 대부분은 학계를 떠나지 않았기 때문에 실제 문제를 해결하기가 어렵 기 때문입니다. –
AI Dynamic game difficulty balancing에서 다양한 AI 기술과 참조를 확인할 수 있습니다.
편집 (고급 AI 개념으로 탐구하지 않고, 정말 멋진 될 것 "적을 둘러싸고"와 같은 IMO, 당신은 적 행동 구현할 수) : 당신이 공간 사수 게임을하고 있기 때문에 그리고 당신은 당신의 적을위한 인공 지능을 원한다면, 나는 당신이이 링크를 흥미롭게 찾을 것이라고 믿는다 : Steering Behaviors For Autonomous Characters
이것은 흥미 롭습니다. 그것은 적어도 선수들이 재미있게 놀고있을 때 신경망으로 역동적 인 어려움을 제공하는 게임을 만들 수있는 것처럼 보입니다. – RCIX
자극에 대한 반응으로 FSM을 쉽게 수정할 수 있다고 생각 했습니까? 그것은 결국 숫자의 테이블 일뿐입니다. 여러분은 어딘가에 그것을 메모리에 저장할 수 있고, 숫자를 바꿀 수 있습니다. 나는 그것에 대해 블로그에 delerium을 연료로 조금 적어 썼다. 그것은 게임 AI 뉴스 사이트에서 이상하게 받아 들여졌다. 그렇다면 인간을 이길 수 있고 실제 소식을 접했던 Pacman AI를 지은 사람은 내 블로그에 더 유용한 정보에 대한 링크가있는 의견을 남겼습니다.
여기 내 의견은 내 블로그 게시물입니다. 게임 환경에 지속적으로 적응하기 위해 마크로프 체인을 사용했고, 플레이어가 게임 상황에 어떻게 반응하는지에 대해 컴퓨터가 배운 것을 오버레이하고 결합했습니다.
http://bustingseams.blogspot.com/2008/03/funny-obsessive-ideas.html
여기에 그 씨 강화 학습에 대한 굉장한 자원에 대한 링크입니다. 멋진 mcpacman이 나를 위해 게시했습니다.
http://www.cs.ualberta.ca/%7Esutton/book/ebook/the-book.html
여기이 신경 그물 접근하지
http://aigamedev.com/open/architecture/online-adaptation-game-opponent/
또 다른 멋진 링크를하지만 그들은 적응하고 지속적으로 배우고, 아마 신경 네트워크보다 게임에 더 적합 않습니다.
흥미로운 접근 방식과 그 링크를 확인해 보겠습니다. – RCIX
Matthew Buckland의 두 권의 책을 소개합니다.
두 번째 책
-
는 어쨌든 NN에 대해 이야기 때 대부분의 사람들이 무엇을 의미 인 역 전파 ANN로 이동합니다.
즉, 의미있는 게임 AI를 만들고 싶다면 첫 번째 책이 더 유용하다고 생각합니다. FSM을 성공적으로 사용하는 것에 대해 좋은, 육감적 인 섹션이 있습니다. (예, FSM으로 쉽게 넘어갈 수 있습니다.)
- 1. 인공 신경 네트워크를 코딩하는 방법 (Tic-tac-toe)?
- 2. va_list를 사용하여 오류를 해결하는 방법은 무엇입니까?
- 3. 컴퓨터 네트워크를 모방하는 신경 네트워크 (Jeff Heaton의 Encog 포함)
- 4. 네트워크를 고유하게 식별하는 방법은 무엇입니까?
- 5. JSON 응답을 해결하는 방법은 무엇입니까?
- 6. 신경 네트워크
- 7. matlab 신경 네트워크 도구 상자
- 8. 게으른 로딩을 해결하는 방법은 무엇입니까?
- 9. 반올림 오류를 해결하는 방법은 무엇입니까?
- 10. .hgtags 충돌을 해결하는 방법은 무엇입니까?
- 11. GC_concurrent 문제를 해결하는 방법은 무엇입니까?
- 12. imageadpter 오류를 해결하는 방법은 무엇입니까? ....
- 13. 방향 문제를 해결하는 방법은 무엇입니까?
- 14. 목록으로이 문제를 해결하는 방법은 무엇입니까?
- 15. Eclipse에서 javax.xml.bind.JAXBContext를 해결하는 방법은 무엇입니까?
- 16. pybrain 네트워크를 직렬화/직렬화하는 방법은 무엇입니까?
- 17. 프로토 타입 신경 네트워크
- 18. 안전한 분산 소셜 네트워크를 구현하는 방법은 무엇입니까?
- 19. 웹 앱 P2P 네트워크를 코딩하는 방법은 무엇입니까?
- 20. autofac을 사용하여 WCF 데이터 서비스를 해결하는 방법은 무엇입니까?
- 21. jQuery.noConflict()를 사용하여 IE에서 jQuery 충돌을 해결하는 방법은 무엇입니까?
- 22. 낙관적 동시성 제어를 사용하여 연속 캐시의 충돌을 해결하는 방법은 무엇입니까?
- 23. jQuery를 사용하여 동적 로딩 페이지에서 중복 객체를 해결하는 방법은 무엇입니까?
- 24. JasperReport에서이 그룹화 문제를 해결하는 방법은 무엇입니까?
- 25. C# :이 순환 종속성을 해결하는 방법은 무엇입니까?
- 26. 해결되지 않은 기호를 해결하는 방법은 무엇입니까?
- 27. 이 이중 인코딩을 해결하는 방법은 무엇입니까?
- 28. 교대조/해결 방법을 해결하는 방법은 무엇입니까?
- 29. CFRuntimeCreateInstance 객체 누출 문제를 해결하는 방법은 무엇입니까?
- 30. 예약 된 작업에서 LazyInitializationException을 해결하는 방법은 무엇입니까?
나는 당신을 싫어하지만, 유한 상태 기계는 프로그래밍과 밸런스가 훨씬 쉬우 며, 비정상적인 상황과 게임 AI에 대한 일반적인 해결책을 처리합니다. http://au.gamespy.com/pc/fear/698080p1.html 참조 –
죄송합니다. 나는이 페이지로 연결됩니다 - FEAR AI - 그들이 어떻게했는지 (훌륭한 읽을 거리, 적어도 아이디어를 찾으십시오) http : //web.media.mit.edu/~jorkin/gdc2006_orkin_jeff_fear.pdf –
필자는 FSM이 아닌 다른 것을 사용하고 싶습니다. 그들은 충분한 시간으로 쉽게 능가 할 수 있으며, 이제는 더 이상 놀 수있는 재미가 없습니다. 끊임없이 학습하는 신경 네트워크를 사용하면 적의 전술에 적응할 수 있습니다. 그 외에도 여전히 학문적 인 질문으로 취급하는 것은 나쁜 생각이라고 생각합니다. – RCIX