2017-07-12 13 views
7

मेरे पास एक एआई एजेंट बनाने का असाइनमेंट है जो एमएल का उपयोग करके एक वीडियो गेम खेलना सीखेंगे। मैं ओपनएआई में एक नया वातावरण बनाना चाहता हूं क्योंकि मैं मौजूदा वातावरण पर काम नहीं करना चाहता हूं। मैं एक नया पर्यावरण कैसे बना सकता हूं। इसके अलावा, क्या कोई अन्य तरीका है कि मैं एआई एजेंट को ओपनएआई की सहायता के बिना एक विशिष्ट वीडियो गेम खेलने के लिए विकसित करना शुरू कर सकता हूं? मैं इस में एक नौसिखिया हूं इसलिए किसी भी प्रकार की सहायता/प्रारंभिक दिशा की सराहना की जाएगी।ओपनएआई में एक नया जिम पर्यावरण बनाना संभव है?

उत्तर

4

यह निश्चित रूप से संभव है। वे दस्तावेज़ीकरण पृष्ठ में, अंत के करीब, ऐसा कहते हैं।

https://gym.openai.com/docs

इसे कैसे करना के लिए के रूप में, आप प्रेरणा के लिए मौजूदा वातावरण के स्रोत कोड पर गौर करना चाहिए। GitHub में इसकी उपलब्ध:

https://github.com/openai/gym#installation

अपने वातावरण में से अधिकांश वे खरोंच से लागू नहीं किया था, बल्कि आसपास के मौजूदा वातावरण एक आवरण बनाया है और यह सब एक अंतरफलक है कि सुदृढीकरण सीखने के लिए सुविधाजनक है दे दी है।

यदि आप अपना खुद का बनाना चाहते हैं, तो आपको शायद इस दिशा में जाना चाहिए और जिम इंटरफ़ेस में पहले से मौजूद कुछ अनुकूलित करने का प्रयास करना चाहिए। यद्यपि एक अच्छा मौका है कि यह बहुत समय ले रहा है।

एक और विकल्प है जो आपके उद्देश्य के लिए दिलचस्प हो सकता है। यह OpenAI के ब्रह्मांड

https://universe.openai.com/

यह वेबसाइटों के साथ एकीकृत कर सकते हैं ताकि आप उदाहरण के लिए kongregate खेल पर अपने मॉडल को प्रशिक्षित, है। लेकिन यूनिवर्स जिम के रूप में उपयोग करना उतना आसान नहीं है।

यदि आप एक नौसिखिया हैं, तो मेरी सिफारिश यह है कि आप एक मानक वातावरण पर एक वेनिला कार्यान्वयन के साथ शुरू करते हैं। मूल बातें के साथ समस्याओं को पारित करने के बाद, वृद्धि पर जाएं ...

+0

एक चाहते टिक-टैक-पैर की अंगुली या रूबिक क्यूब जहां जैसी गैर-डिजिटल गतिविधियों के लिए एक वातावरण बनाने के क्या होगा अगर संभव राज्य सीमित हैं और अच्छी तरह से परिभाषित किया जा सकता है? क्या मैं सिर्फ सभी संभावित राज्यों के साथ एक सूची तैयार करूंगा? एक सिमुलेशन कैसे पता लगा सकता है कि किसी दिए गए स्थान से वैध गंतव्य स्थितियां क्या हैं? – Hendrik

12

मेरे banana-gym को एक बेहद छोटे वातावरण के लिए देखें।

बनाएं नए वातावरण

भंडार के मुख्य पृष्ठ देखें:

https://github.com/openai/gym/tree/master/gym/envs#how-to-create-new-environments-for-gym

कदम हैं:

  1. एक PIP पैकेज संरचना के साथ एक नया भंडार बनाने

यह इस

gym-foo/ 
    README.md 
    setup.py 
    gym_foo/ 
    __init__.py 
    envs/ 
     __init__.py 
     foo_env.py 
     foo_extrahard_env.py 

यह की सामग्री के लिए की तरह लग रहे, ऊपर के लिंक का पालन करना चाहिए। विवरण का उल्लेख नहीं किया गया है, विशेष रूप से foo_env.py में कुछ फ़ंक्शंस कैसा दिखना चाहिए। उदाहरण देख रहे हैं और gym.openai.com/docs/ पर सहायता करता है।

class FooEnv(gym.Env): 
    metadata = {'render.modes': ['human']} 

    def __init__(self): 
     pass 

    def _step(self, action): 
     """ 

     Parameters 
     ---------- 
     action : 

     Returns 
     ------- 
     ob, reward, episode_over, info : tuple 
      ob (object) : 
       an environment-specific object representing your observation of 
       the environment. 
      reward (float) : 
       amount of reward achieved by the previous action. The scale 
       varies between environments, but the goal is always to increase 
       your total reward. 
      episode_over (bool) : 
       whether it's time to reset the environment again. Most (but not 
       all) tasks are divided up into well-defined episodes, and done 
       being True indicates the episode has terminated. (For example, 
       perhaps the pole tipped too far, or you lost your last life.) 
      info (dict) : 
       diagnostic information useful for debugging. It can sometimes 
       be useful for learning (for example, it might contain the raw 
       probabilities behind the environment's last state change). 
       However, official evaluations of your agent are not allowed to 
       use this for learning. 
     """ 
     self._take_action(action) 
     self.status = self.env.step() 
     reward = self._get_reward() 
     ob = self.env.getState() 
     episode_over = self.status != hfo_py.IN_GAME 
     return ob, reward, episode_over, {} 

    def _reset(self): 
     pass 

    def _render(self, mode='human', close=False): 
     pass 

    def _take_action(self, action): 
     pass 

    def _get_reward(self): 
     """ Reward is given for XY. """ 
     if self.status == FOOBAR: 
      return 1 
     elif self.status == ABC: 
      return self.somestate ** 2 
     else: 
      return 0 

का प्रयोग कर अपने पर्यावरण

import gym 
import gym_foo 
env = gym.make('MyEnv-v0') 

उदाहरण

  1. https://github.com/openai/gym-soccer
  2. https://github.com/openai/gym-wikinav
  3. https://github.com/alibaba/gym-starcraft
  4. 0: यहाँ एक उदाहरण है
  5. https://github.com/hackthemarket/gym-trading
  6. https://github.com/tambetm/gym-minecraft
  7. https://github.com/ppaquette/gym-doom
  8. https://github.com/ppaquette/gym-super-mario
  9. https://github.com/tuzzer/gym-maze
+0

मुझे एक बदसूरत "जिम_फू 'आयात किया गया है लेकिन अप्रयुक्त"। मुझे इससे कैसे छुटकारा मिल सकता है? – hipoglucido

संबंधित मुद्दे